diff --git a/.drone.yml b/.drone.yml index ebd47ae8..7818e1a3 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,12 +3,12 @@ kind: pipeline name: coopcloud.tech/abra steps: - name: make check - image: golang:1.22 + image: golang:1.24 commands: - make check - name: make test - image: golang:1.22 + image: golang:1.24 environment: CATL_URL: https://git.coopcloud.tech/toolshed/recipes-catalogue-json.git commands: diff --git a/Dockerfile b/Dockerfile index c4cb8196..38e9e2f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build image -FROM golang:1.22-alpine AS build +FROM golang:1.24-alpine AS build ENV GOPRIVATE=coopcloud.tech diff --git a/Makefile b/Makefile index 8072a5bc..d103ae4c 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ ABRA := ./cmd/abra KADABRA := ./cmd/kadabra COMMIT := $(shell git rev-list -1 HEAD) GOPATH := $(shell go env GOPATH) -GOVERSION := 1.22 +GOVERSION := 1.24 LDFLAGS := "-X 'main.Commit=$(COMMIT)'" DIST_LDFLAGS := $(LDFLAGS)" -s -w" GCFLAGS := "all=-l -B" diff --git a/cli/app/cp.go b/cli/app/cp.go index ab167167..2d700879 100644 --- a/cli/app/cp.go +++ b/cli/app/cp.go @@ -18,7 +18,7 @@ import ( "coopcloud.tech/abra/pkg/log" "coopcloud.tech/abra/pkg/upstream/container" "github.com/docker/cli/cli/command" - "github.com/docker/docker/api/types" + containertypes "github.com/docker/docker/api/types/container" dockerClient "github.com/docker/docker/client" "github.com/docker/docker/errdefs" "github.com/docker/docker/pkg/archive" @@ -134,7 +134,7 @@ func CopyToContainer(cl *dockerClient.Client, containerID, srcPath, dstPath stri if err != nil { return err } - if _, err := container.RunExec(dcli, cl, containerID, &types.ExecConfig{ + if _, err := container.RunExec(dcli, cl, containerID, &containertypes.ExecOptions{ AttachStderr: true, AttachStdin: true, AttachStdout: true, @@ -162,7 +162,7 @@ func CopyToContainer(cl *dockerClient.Client, containerID, srcPath, dstPath stri } log.Debugf("copy %s from local to %s on container", srcPath, dstPath) - copyOpts := types.CopyToContainerOptions{AllowOverwriteDirWithFile: false, CopyUIDGID: false} + copyOpts := containertypes.CopyToContainerOptions{AllowOverwriteDirWithFile: false, CopyUIDGID: false} if err := cl.CopyToContainer(context.Background(), containerID, dstPath, content, copyOpts); err != nil { return err } @@ -173,7 +173,7 @@ func CopyToContainer(cl *dockerClient.Client, containerID, srcPath, dstPath stri if err != nil { return err } - if _, err := container.RunExec(dcli, cl, containerID, &types.ExecConfig{ + if _, err := container.RunExec(dcli, cl, containerID, &containertypes.ExecOptions{ AttachStderr: true, AttachStdin: true, AttachStdout: true, diff --git a/cli/app/run.go b/cli/app/run.go index 637531ed..21c0f1ea 100644 --- a/cli/app/run.go +++ b/cli/app/run.go @@ -11,7 +11,7 @@ import ( "coopcloud.tech/abra/pkg/log" "coopcloud.tech/abra/pkg/upstream/container" "github.com/docker/cli/cli/command" - "github.com/docker/docker/api/types" + containertypes "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" "github.com/spf13/cobra" ) @@ -64,7 +64,7 @@ var AppRunCommand = &cobra.Command{ } userCmd := args[2:] - execCreateOpts := types.ExecConfig{ + execCreateOpts := containertypes.ExecOptions{ AttachStderr: true, AttachStdin: true, AttachStdout: true, diff --git a/cli/internal/backup.go b/cli/internal/backup.go index 1080d7ce..7554f973 100644 --- a/cli/internal/backup.go +++ b/cli/internal/backup.go @@ -12,6 +12,7 @@ import ( "coopcloud.tech/abra/pkg/upstream/container" "github.com/docker/cli/cli/command" "github.com/docker/docker/api/types" + containertypes "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" dockerClient "github.com/docker/docker/client" ) @@ -47,7 +48,7 @@ func RunBackupCmdRemote( backupCmd string, containerID string, execEnv []string) (io.Writer, error) { - execBackupListOpts := types.ExecConfig{ + execBackupListOpts := containertypes.ExecOptions{ AttachStderr: true, AttachStdin: true, AttachStdout: true, diff --git a/cli/internal/command.go b/cli/internal/command.go index e14893ac..4998ab83 100644 --- a/cli/internal/command.go +++ b/cli/internal/command.go @@ -14,7 +14,7 @@ import ( "coopcloud.tech/abra/pkg/log" "coopcloud.tech/abra/pkg/upstream/container" "github.com/docker/cli/cli/command" - "github.com/docker/docker/api/types" + containertypes "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" dockerClient "github.com/docker/docker/client" "github.com/docker/docker/pkg/archive" @@ -42,7 +42,7 @@ func RunCmdRemote( return err } - copyOpts := types.CopyToContainerOptions{AllowOverwriteDirWithFile: false, CopyUIDGID: false} + copyOpts := containertypes.CopyToContainerOptions{AllowOverwriteDirWithFile: false, CopyUIDGID: false} if err := cl.CopyToContainer(context.Background(), targetContainer.ID, "/tmp", content, copyOpts); err != nil { return err } @@ -55,7 +55,7 @@ func RunCmdRemote( shell := "/bin/bash" findShell := []string{"test", "-e", shell} - execCreateOpts := types.ExecConfig{ + execCreateOpts := containertypes.ExecOptions{ AttachStderr: true, AttachStdin: true, AttachStdout: true, diff --git a/go.mod b/go.mod index 083e0c13..9d0ecdb9 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module coopcloud.tech/abra -go 1.22.7 +go 1.23.0 toolchain go1.23.1 @@ -8,21 +8,21 @@ require ( coopcloud.tech/tagcmp v0.0.0-20230809071031-eb3e7758d4eb git.coopcloud.tech/toolshed/godotenv v1.5.2-0.20250103171850-4d0ca41daa5c github.com/AlecAivazis/survey/v2 v2.3.7 - github.com/charmbracelet/lipgloss v1.0.0 - github.com/charmbracelet/log v0.4.0 + github.com/charmbracelet/lipgloss v1.1.0 + github.com/charmbracelet/log v0.4.1 github.com/distribution/reference v0.6.0 - github.com/docker/cli v27.4.1+incompatible - github.com/docker/docker v27.4.1+incompatible + github.com/docker/cli v28.0.1+incompatible + github.com/docker/docker v28.0.1+incompatible github.com/docker/go-units v0.5.0 - github.com/go-git/go-git/v5 v5.13.1 - github.com/google/go-cmp v0.6.0 + github.com/go-git/go-git/v5 v5.14.0 + github.com/google/go-cmp v0.7.0 github.com/moby/sys/signal v0.7.1 github.com/moby/term v0.5.2 github.com/pkg/errors v0.9.1 - github.com/schollz/progressbar/v3 v3.17.1 - golang.org/x/term v0.28.0 + github.com/schollz/progressbar/v3 v3.18.0 + golang.org/x/term v0.30.0 gopkg.in/yaml.v3 v3.0.1 - gotest.tools/v3 v3.5.1 + gotest.tools/v3 v3.5.2 ) require ( @@ -31,16 +31,19 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect github.com/BurntSushi/toml v1.4.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/ProtonMail/go-crypto v1.1.3 // indirect + github.com/ProtonMail/go-crypto v1.1.6 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/charmbracelet/x/ansi v0.6.0 // indirect - github.com/cloudflare/circl v1.5.0 // indirect + github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect + github.com/charmbracelet/x/ansi v0.8.0 // indirect + github.com/charmbracelet/x/cellbuf v0.0.13 // indirect + github.com/charmbracelet/x/term v0.2.1 // indirect + github.com/cloudflare/circl v1.6.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect - github.com/cyphar/filepath-securejoin v0.3.6 // indirect + github.com/cyphar/filepath-securejoin v0.4.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c // indirect @@ -52,7 +55,7 @@ require ( github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.6.1 // indirect + github.com/go-git/go-billy/v5 v5.6.2 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -60,15 +63,15 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/klauspost/compress v1.17.11 // indirect + github.com/klauspost/compress v1.18.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect @@ -81,49 +84,50 @@ require ( github.com/moby/sys/user v0.3.0 // indirect github.com/moby/sys/userns v0.1.0 // indirect github.com/morikuni/aec v1.0.0 // indirect - github.com/muesli/termenv v0.15.2 // indirect + github.com/muesli/termenv v0.16.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/runc v1.1.13 // indirect github.com/opencontainers/runtime-spec v1.1.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pjbgf/sha1cd v0.3.1 // indirect + github.com/pjbgf/sha1cd v0.3.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.61.0 // indirect + github.com/prometheus/common v0.63.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/skeema/knownhosts v1.3.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect + github.com/skeema/knownhosts v1.3.1 // indirect + github.com/spf13/pflag v1.0.6 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect + github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.33.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect + go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.33.0 // indirect - go.opentelemetry.io/otel/sdk v1.33.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.33.0 // indirect - go.opentelemetry.io/otel/trace v1.33.0 // indirect + go.opentelemetry.io/otel/metric v1.35.0 // indirect + go.opentelemetry.io/otel/sdk v1.35.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.35.0 // indirect + go.opentelemetry.io/otel/trace v1.35.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect - golang.org/x/crypto v0.32.0 // indirect - golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect - golang.org/x/mod v0.22.0 // indirect - golang.org/x/net v0.34.0 // indirect - golang.org/x/sync v0.10.0 // indirect - golang.org/x/text v0.21.0 // indirect - golang.org/x/time v0.9.0 // indirect - golang.org/x/tools v0.29.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 // indirect - google.golang.org/grpc v1.69.2 // indirect - google.golang.org/protobuf v1.36.2 // indirect + golang.org/x/crypto v0.36.0 // indirect + golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect + golang.org/x/mod v0.24.0 // indirect + golang.org/x/net v0.37.0 // indirect + golang.org/x/sync v0.12.0 // indirect + golang.org/x/text v0.23.0 // indirect + golang.org/x/time v0.11.0 // indirect + golang.org/x/tools v0.31.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 // indirect + google.golang.org/grpc v1.71.0 // indirect + google.golang.org/protobuf v1.36.5 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) @@ -132,19 +136,19 @@ require ( github.com/containers/image v3.0.2+incompatible github.com/containers/storage v1.38.2 // indirect github.com/decentral1se/passgen v1.0.1 - github.com/docker/docker-credential-helpers v0.8.2 // indirect + github.com/docker/docker-credential-helpers v0.9.3 // indirect github.com/fvbommel/sortorder v1.1.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/gorilla/mux v1.8.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 github.com/moby/patternmatcher v0.6.0 // indirect github.com/moby/sys/sequential v0.6.0 // indirect - github.com/opencontainers/image-spec v1.1.0 // indirect - github.com/prometheus/client_golang v1.20.5 // indirect + github.com/opencontainers/image-spec v1.1.1 // indirect + github.com/prometheus/client_golang v1.21.1 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect - github.com/spf13/cobra v1.8.1 + github.com/spf13/cobra v1.9.1 github.com/stretchr/testify v1.10.0 github.com/theupdateframework/notary v0.7.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect - golang.org/x/sys v0.29.0 + golang.org/x/sys v0.31.0 ) diff --git a/go.sum b/go.sum index 70da56cc..22f50a95 100644 --- a/go.sum +++ b/go.sum @@ -81,6 +81,8 @@ github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDe github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v1.1.3 h1:nRBOetoydLeUb4nHajyO2bKqMLfWQ/ZPwkXqXxPxCFk= github.com/ProtonMail/go-crypto v1.1.3/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.6 h1:ZcV+Ropw6Qn0AX9brlQLAUXfqLBc7Bl+f/DmNxpLfdw= +github.com/ProtonMail/go-crypto v1.1.6/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= @@ -136,14 +138,26 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs= +github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc/go.mod h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk= github.com/charmbracelet/lipgloss v1.0.0 h1:O7VkGDvqEdGi93X+DeqsQ7PKHDgtQfF8j8/O2qFMQNg= github.com/charmbracelet/lipgloss v1.0.0/go.mod h1:U5fy9Z+C38obMs+T+tJqst9VGzlOYGj4ri9reL3qUlo= +github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= +github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= github.com/charmbracelet/log v0.4.0 h1:G9bQAcx8rWA2T3pWvx7YtPTPwgqpk7D68BX21IRW8ZM= github.com/charmbracelet/log v0.4.0/go.mod h1:63bXt/djrizTec0l11H20t8FDSvA4CRZJ1KH22MdptM= +github.com/charmbracelet/log v0.4.1 h1:6AYnoHKADkghm/vt4neaNEXkxcXLSV2g1rdyFDOpTyk= +github.com/charmbracelet/log v0.4.1/go.mod h1:pXgyTsqsVu4N9hGdHmQ0xEA4RsXof402LX9ZgiITn2I= github.com/charmbracelet/x/ansi v0.6.0 h1:qOznutrb93gx9oMiGf7caF7bqqubh6YIM0SWKyA08pA= github.com/charmbracelet/x/ansi v0.6.0/go.mod h1:KBUFw1la39nl0dLl10l5ORDAqGXaeurTQmwyyVKse/Q= +github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE= +github.com/charmbracelet/x/ansi v0.8.0/go.mod h1:wdYl/ONOLHLIVmQaxbIYEC/cRKOQyjTkowiI4blgS9Q= +github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k= +github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= github.com/charmbracelet/x/exp/golden v0.0.0-20240806155701-69247e0abc2a h1:G99klV19u0QnhiizODirwVksQB91TJKV/UaTnACcG30= github.com/charmbracelet/x/exp/golden v0.0.0-20240806155701-69247e0abc2a/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U= +github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= +github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= @@ -163,6 +177,8 @@ github.com/cloudflare/cfssl v0.0.0-20180223231731-4e2dcbde5004 h1:lkAMpLVBDaj17e github.com/cloudflare/cfssl v0.0.0-20180223231731-4e2dcbde5004/go.mod h1:yMWuSON2oQp+43nFtAV/uvKQIFpSPerB57DCt9t8sSA= github.com/cloudflare/circl v1.5.0 h1:hxIWksrX6XN5a1L2TI/h53AGPhNHoUBo+TD1ms9+pys= github.com/cloudflare/circl v1.5.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= +github.com/cloudflare/circl v1.6.0 h1:cr5JKic4HI+LkINy2lg3W2jF8sHCVTBncJr5gIIq7qk= +github.com/cloudflare/circl v1.6.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= @@ -288,6 +304,8 @@ github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2 github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.3.6 h1:4d9N5ykBnSp5Xn2JkhocYDkOpURL/18CYMpo6xB9uWM= github.com/cyphar/filepath-securejoin v0.3.6/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= +github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s= +github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= @@ -308,6 +326,8 @@ github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyG github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/cli v27.4.1+incompatible h1:VzPiUlRJ/xh+otB75gva3r05isHMo5wXDfPRi5/b4hI= github.com/docker/cli v27.4.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v28.0.1+incompatible h1:g0h5NQNda3/CxIsaZfH4Tyf6vpxFth7PYl3hgCPOKzs= +github.com/docker/cli v28.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= @@ -316,9 +336,13 @@ github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4Kfc github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v27.4.1+incompatible h1:ZJvcY7gfwHn1JF48PfbyXg7Jyt9ZCWDW+GGXOIxEwp4= github.com/docker/docker v27.4.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v28.0.1+incompatible h1:FCHjSRdXhNRFjlHMTv4jUNlIBbTeRjrWfeFuJp7jpo0= +github.com/docker/docker v28.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= +github.com/docker/docker-credential-helpers v0.9.3 h1:gAm/VtF9wgqJMoxzT3Gj5p4AqIjCBS4wrsOh9yRqcz8= +github.com/docker/docker-credential-helpers v0.9.3/go.mod h1:x+4Gbw9aGmChi3qTLZj8Dfn0TD20M/fuWy0E5+WDeCo= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c/go.mod h1:CADgU4DSXK5QUlFslkQu2yW2TKzFZcXq/leZfM0UH5Q= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= @@ -343,6 +367,7 @@ github.com/dvsekhvalnov/jose2go v0.0.0-20170216131308-f21a8cedbbae/go.mod h1:7Bv github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v1.2.3 h1:xwIyKHbaP5yfT6O9KIeYJR5549MXRQkoQMRXGztz8YQ= github.com/elazarl/goproxy v1.2.3/go.mod h1:YfEbZtqP4AetfO6d40vWchF3znWX7C7Vd6ZMfdL8z64= +github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= @@ -379,10 +404,14 @@ github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66D github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= github.com/go-git/go-billy/v5 v5.6.1 h1:u+dcrgaguSSkbjzHwelEjc0Yj300NUevrrPphk/SoRA= github.com/go-git/go-billy/v5 v5.6.1/go.mod h1:0AsLr1z2+Uksi4NlElmMblP5rPcDZNRCD8ujZCRR2BE= +github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM= +github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= github.com/go-git/go-git/v5 v5.13.1 h1:DAQ9APonnlvSWpvolXWIuV6Q6zXy2wHbN4cVlNR5Q+M= github.com/go-git/go-git/v5 v5.13.1/go.mod h1:qryJB4cSBoq3FRoBRf5A77joojuBcmPJ0qu3XXXVixc= +github.com/go-git/go-git/v5 v5.14.0 h1:/MD3lCrGjCen5WfEAzKg00MJJffKhC8gzS80ycmCi60= +github.com/go-git/go-git/v5 v5.14.0/go.mod h1:Z5Xhoia5PcWA3NF8vRLURn9E5FRhSl7dGj9ItW3Wk5k= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -481,6 +510,8 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= github.com/google/go-intervals v0.0.2/go.mod h1:MkaR3LNRfeKLPmqgJYs4E66z5InYjmCjbbr4TQlcT6Y= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -524,6 +555,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 h1:VNqngBF40hVlDloBruUehVYC3ArSgIyScOAyMRqBxRg= github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1/go.mod h1:RBRO7fro65R6tjKzYgLAFo0t1QEXY1Dp+i/bvpRiqiQ= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -587,6 +620,8 @@ github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdY github.com/klauspost/compress v1.14.2/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -620,6 +655,8 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= @@ -687,6 +724,8 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= +github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= +github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= @@ -725,6 +764,8 @@ github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zM github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= +github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= @@ -756,6 +797,8 @@ github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pjbgf/sha1cd v0.3.1 h1:Dh2GYdpJnO84lIw0LJwTFXjcNbasP/bklicSznyAaPI= github.com/pjbgf/sha1cd v0.3.1/go.mod h1:Y8t7jSB/dEI/lQE04A1HVKteqjj9bX5O4+Cex0TCu8s= +github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4= +github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -773,6 +816,8 @@ github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQ github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.21.1 h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk= +github.com/prometheus/client_golang v1.21.1/go.mod h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -788,6 +833,8 @@ github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+ github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= +github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= +github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -810,7 +857,9 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= +github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -818,6 +867,8 @@ github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiB github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/schollz/progressbar/v3 v3.17.1 h1:bI1MTaoQO+v5kzklBjYNRQLoVpe0zbyRZNK6DFkVC5U= github.com/schollz/progressbar/v3 v3.17.1/go.mod h1:RzqpnsPQNjUyIgdglUjRLgD7sVnxN1wpmBMV+UiEbL4= +github.com/schollz/progressbar/v3 v3.18.0 h1:uXdoHABRFmNIjUfte/Ex7WtuyVslrw2wVPQmCN62HpA= +github.com/schollz/progressbar/v3 v3.18.0/go.mod h1:IsO3lpbaGuzh8zIMzgY3+J8l4C8GjO0Y9S69eFvNsec= github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= @@ -836,6 +887,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skeema/knownhosts v1.3.0 h1:AM+y0rI04VksttfwjkSTNQorvGqmwATnvnAHpSgc0LY= github.com/skeema/knownhosts v1.3.0/go.mod h1:sPINvnADmT/qYH1kfv+ePMmOBTH6Tbl7b5LvTDjFK7M= +github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8= +github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -852,6 +905,8 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/jwalterweatherman v0.0.0-20141219030609-3d60171a6431/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= @@ -862,6 +917,8 @@ github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v0.0.0-20150530192845-be5ff3e4840c/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM= github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= @@ -916,6 +973,8 @@ github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -938,24 +997,42 @@ go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJyS go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= +go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 h1:7F29RDmnlqk6B5d+sUqemt8TBfDqxryYW5gX6L74RFA= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0/go.mod h1:ZiGDq7xwDMKmWDrN1XsXAj0iC7hns+2DhxBFSncNHSE= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 h1:QcFwRrZLc82r8wODjvyCbP7Ifp3UANaBSmhDSFjnqSc= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0/go.mod h1:CXIWhUomyWBG/oY2/r/kLp6K/cmx9e/7DLpBuuGdLCA= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 h1:1fTNlAIJZGWLP5FVu0fikVry1IsiUnXjf7QFvoNN3Xw= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 h1:m639+BofXTvcY1q8CGs4ItwQarYtJPOWmVobfM1HpVI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= +go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= +go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM= go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM= +go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY= +go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg= go.opentelemetry.io/otel/sdk/metric v1.33.0 h1:Gs5VK9/WUJhNXZgn8MR6ITatvAmKeIuCtNbsP3JkNqU= go.opentelemetry.io/otel/sdk/metric v1.33.0/go.mod h1:dL5ykHZmm1B1nVRk9dDjChwDmt81MjVp3gLkQRwKf/Q= +go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o= +go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w= go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= +go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= +go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg= go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY= @@ -989,6 +1066,8 @@ golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= +golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1003,6 +1082,8 @@ golang.org/x/exp v0.0.0-20250103183323-7d7fa50e5329 h1:9kj3STMvgqy3YA4VQXBrN7925 golang.org/x/exp v0.0.0-20250103183323-7d7fa50e5329/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c= golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= +golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1027,6 +1108,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1072,6 +1155,8 @@ golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c= +golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1091,6 +1176,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw= +golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1174,6 +1261,8 @@ golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1181,6 +1270,8 @@ golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= +golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= +golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1192,6 +1283,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1202,6 +1295,8 @@ golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= +golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1251,6 +1346,8 @@ golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= +golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1303,10 +1400,14 @@ google.golang.org/genproto/googleapis/api v0.0.0-20250102185135-69823020774d h1: google.golang.org/genproto/googleapis/api v0.0.0-20250102185135-69823020774d/go.mod h1:2v7Z7gP2ZUOGsaFyxATQSRoBnKygqVq2Cwnvom7QiqY= google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 h1:GVIKPyP/kLIyVOgOnTwFOrvQaQUzOzGMCxgFUOEmm24= google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422/go.mod h1:b6h1vNKhxaSoEI+5jc3PJUCustfli/mRab7295pY7rw= +google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4 h1:IFnXJq3UPB3oBREOodn1v1aGQeZYQclEmvWRMN0PSsY= +google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4/go.mod h1:c8q6Z6OCqnfVIqUFJkCzKcrj8eCvUrz+K4KRzSTuANg= google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d h1:xJJRGY7TJcvIlpSrN3K6LAWgNFUILlO+OMAqtg9aqnw= google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw= google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 h1:iK2jbkWL86DXjEx0qiHcRE9dE4/Ahua5k6V8OWFb//c= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.0.5/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1328,6 +1429,8 @@ google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU= google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg= +google.golang.org/grpc v1.71.0/go.mod h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1345,6 +1448,8 @@ google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/g google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= +google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/cenkalti/backoff.v2 v2.2.1 h1:eJ9UAg01/HIHG987TwxvnzK2MgxXq97YY6rYDpY9aII= @@ -1390,6 +1495,8 @@ gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= +gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/upstream/container/exec.go b/pkg/upstream/container/exec.go index 584b9206..ff551008 100644 --- a/pkg/upstream/container/exec.go +++ b/pkg/upstream/container/exec.go @@ -9,14 +9,14 @@ import ( "coopcloud.tech/abra/pkg/log" "github.com/docker/cli/cli" "github.com/docker/cli/cli/command" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" apiclient "github.com/docker/docker/client" ) // RunExec runs a command on a remote container. io.Writer corresponds to the // command output. func RunExec(dockerCli command.Cli, client *apiclient.Client, containerID string, - execConfig *types.ExecConfig) (io.Writer, error) { + execOptions *container.ExecOptions) (io.Writer, error) { ctx := context.Background() // We need to check the tty _before_ we do the ContainerExecCreate, because @@ -26,13 +26,13 @@ func RunExec(dockerCli command.Cli, client *apiclient.Client, containerID string if _, err := client.ContainerInspect(ctx, containerID); err != nil { return nil, err } - if !execConfig.Detach { - if err := dockerCli.In().CheckTty(execConfig.AttachStdin, execConfig.Tty); err != nil { + if !execOptions.Detach { + if err := dockerCli.In().CheckTty(execOptions.AttachStdin, execOptions.Tty); err != nil { return nil, err } } - response, err := client.ContainerExecCreate(ctx, containerID, *execConfig) + response, err := client.ContainerExecCreate(ctx, containerID, *execOptions) if err != nil { return nil, err } @@ -42,40 +42,40 @@ func RunExec(dockerCli command.Cli, client *apiclient.Client, containerID string return nil, errors.New("exec ID empty") } - if execConfig.Detach { - execStartCheck := types.ExecStartCheck{ - Detach: execConfig.Detach, - Tty: execConfig.Tty, + if execOptions.Detach { + execStartCheck := container.ExecStartOptions{ + Detach: execOptions.Detach, + Tty: execOptions.Tty, } return nil, client.ContainerExecStart(ctx, execID, execStartCheck) } - return interactiveExec(ctx, dockerCli, client, execConfig, execID) + return interactiveExec(ctx, dockerCli, client, execOptions, execID) } func interactiveExec(ctx context.Context, dockerCli command.Cli, client *apiclient.Client, - execConfig *types.ExecConfig, execID string) (io.Writer, error) { + execOpts *container.ExecOptions, execID string) (io.Writer, error) { // Interactive exec requested. var ( out, stderr io.Writer in io.ReadCloser ) - if execConfig.AttachStdin { + if execOpts.AttachStdin { in = dockerCli.In() } - if execConfig.AttachStdout { + if execOpts.AttachStdout { out = dockerCli.Out() } - if execConfig.AttachStderr { - if execConfig.Tty { + if execOpts.AttachStderr { + if execOpts.Tty { stderr = dockerCli.Out() } else { stderr = dockerCli.Err() } } - execStartCheck := types.ExecStartCheck{ - Tty: execConfig.Tty, + execStartCheck := container.ExecStartOptions{ + Tty: execOpts.Tty, } resp, err := client.ContainerExecAttach(ctx, execID, execStartCheck) if err != nil { @@ -94,15 +94,15 @@ func interactiveExec(ctx context.Context, dockerCli command.Cli, client *apiclie outputStream: out, errorStream: stderr, resp: resp, - tty: execConfig.Tty, - detachKeys: execConfig.DetachKeys, + tty: execOpts.Tty, + detachKeys: execOpts.DetachKeys, } return streamer.stream(ctx) }() }() - if execConfig.Tty && dockerCli.In().IsTerminal() { + if execOpts.Tty && dockerCli.In().IsTerminal() { if err := MonitorTtySize(ctx, client, dockerCli, execID, true); err != nil { fmt.Fprintln(dockerCli.Err(), "Error monitoring TTY size:", err) } diff --git a/pkg/upstream/convert/compose.go b/pkg/upstream/convert/compose.go index e397ab19..af3ca930 100644 --- a/pkg/upstream/convert/compose.go +++ b/pkg/upstream/convert/compose.go @@ -5,7 +5,6 @@ import ( "strings" composetypes "github.com/docker/cli/cli/compose/types" - "github.com/docker/docker/api/types" networktypes "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/swarm" ) @@ -52,13 +51,13 @@ func AddStackLabel(namespace Namespace, labels map[string]string) map[string]str type networkMap map[string]composetypes.NetworkConfig // Networks from the compose-file type to the engine API type -func Networks(namespace Namespace, networks networkMap, servicesNetworks map[string]struct{}) (map[string]types.NetworkCreate, []string) { +func Networks(namespace Namespace, networks networkMap, servicesNetworks map[string]struct{}) (map[string]networktypes.CreateOptions, []string) { if networks == nil { networks = make(map[string]composetypes.NetworkConfig) } externalNetworks := []string{} - result := make(map[string]types.NetworkCreate) + result := make(map[string]networktypes.CreateOptions) for internalName := range servicesNetworks { network := networks[internalName] if network.External.External { @@ -66,7 +65,7 @@ func Networks(namespace Namespace, networks networkMap, servicesNetworks map[str continue } - createOpts := types.NetworkCreate{ + createOpts := networktypes.CreateOptions{ Labels: AddStackLabel(namespace, network.Labels), Driver: network.Driver, Options: network.DriverOpts, diff --git a/pkg/upstream/convert/compose_test.go b/pkg/upstream/convert/compose_test.go index b90395fa..c13783ea 100644 --- a/pkg/upstream/convert/compose_test.go +++ b/pkg/upstream/convert/compose_test.go @@ -4,7 +4,6 @@ import ( "testing" composetypes "github.com/docker/cli/cli/compose/types" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/network" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" @@ -67,7 +66,7 @@ func TestNetworks(t *testing.T) { Name: "othername", }, } - expected := map[string]types.NetworkCreate{ + expected := map[string]network.CreateOptions{ "foo_default": { Labels: map[string]string{ LabelNamespace: "foo", diff --git a/pkg/upstream/stack/remove.go b/pkg/upstream/stack/remove.go index 3a201cdd..3bd59a63 100644 --- a/pkg/upstream/stack/remove.go +++ b/pkg/upstream/stack/remove.go @@ -8,6 +8,7 @@ import ( "coopcloud.tech/abra/pkg/log" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/api/types/versions" "github.com/docker/docker/client" @@ -99,7 +100,7 @@ func removeServices( func removeNetworks( ctx context.Context, client *apiclient.Client, - networks []types.NetworkResource, + networks []network.Inspect, ) bool { var hasError bool for _, network := range networks { diff --git a/pkg/upstream/stack/stack.go b/pkg/upstream/stack/stack.go index 179c9090..e1f7988d 100644 --- a/pkg/upstream/stack/stack.go +++ b/pkg/upstream/stack/stack.go @@ -22,6 +22,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" + networktypes "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/api/types/versions" "github.com/docker/docker/client" @@ -296,7 +297,7 @@ func validateExternalNetworks(ctx context.Context, client dockerClient.NetworkAP // local-scoped networks, so there's no need to inspect them. continue } - network, err := client.NetworkInspect(ctx, networkName, types.NetworkInspectOptions{}) + network, err := client.NetworkInspect(ctx, networkName, networktypes.InspectOptions{}) switch { case dockerClient.IsErrNotFound(err): return errors.Errorf("network %q is declared as external, but could not be found. You need to create a swarm-scoped network before the stack is deployed, which you can do by running this on the server: docker network create -d overlay proxy", networkName) @@ -353,13 +354,13 @@ func createConfigs(ctx context.Context, cl *dockerClient.Client, configs []swarm return nil } -func createNetworks(ctx context.Context, cl *dockerClient.Client, namespace convert.Namespace, networks map[string]types.NetworkCreate) error { +func createNetworks(ctx context.Context, cl *dockerClient.Client, namespace convert.Namespace, networks map[string]networktypes.CreateOptions) error { existingNetworks, err := getStackNetworks(ctx, cl, namespace.Name()) if err != nil { return err } - existingNetworkMap := make(map[string]types.NetworkResource) + existingNetworkMap := make(map[string]networktypes.Inspect) for _, network := range existingNetworks { existingNetworkMap[network.Name] = network } @@ -473,8 +474,8 @@ func deployServices( return serviceIDs, nil } -func getStackNetworks(ctx context.Context, dockerclient client.APIClient, namespace string) ([]types.NetworkResource, error) { - return dockerclient.NetworkList(ctx, types.NetworkListOptions{Filters: getStackFilter(namespace)}) +func getStackNetworks(ctx context.Context, dockerclient client.APIClient, namespace string) ([]networktypes.Inspect, error) { + return dockerclient.NetworkList(ctx, networktypes.ListOptions{Filters: getStackFilter(namespace)}) } func getStackSecrets(ctx context.Context, dockerclient client.APIClient, namespace string) ([]swarm.Secret, error) { diff --git a/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go b/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go index affb74a7..d558b9bd 100644 --- a/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go +++ b/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go @@ -49,16 +49,16 @@ func ShiftNBytesLeft(dst, x []byte, n int) { dst = append(dst, make([]byte, n/8)...) } -// XorBytesMut assumes equal input length, replaces X with X XOR Y +// XorBytesMut replaces X with X XOR Y. len(X) must be >= len(Y). func XorBytesMut(X, Y []byte) { - for i := 0; i < len(X); i++ { + for i := 0; i < len(Y); i++ { X[i] ^= Y[i] } } -// XorBytes assumes equal input length, puts X XOR Y into Z +// XorBytes puts X XOR Y into Z. len(Z) and len(X) must be >= len(Y). func XorBytes(Z, X, Y []byte) { - for i := 0; i < len(X); i++ { + for i := 0; i < len(Y); i++ { Z[i] = X[i] ^ Y[i] } } diff --git a/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go b/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go index 5022285b..24f89301 100644 --- a/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go +++ b/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go @@ -109,8 +109,10 @@ func (o *ocb) Seal(dst, nonce, plaintext, adata []byte) []byte { if len(nonce) > o.nonceSize { panic("crypto/ocb: Incorrect nonce length given to OCB") } - ret, out := byteutil.SliceForAppend(dst, len(plaintext)+o.tagSize) - o.crypt(enc, out, nonce, adata, plaintext) + sep := len(plaintext) + ret, out := byteutil.SliceForAppend(dst, sep+o.tagSize) + tag := o.crypt(enc, out[:sep], nonce, adata, plaintext) + copy(out[sep:], tag) return ret } @@ -122,12 +124,10 @@ func (o *ocb) Open(dst, nonce, ciphertext, adata []byte) ([]byte, error) { return nil, ocbError("Ciphertext shorter than tag length") } sep := len(ciphertext) - o.tagSize - ret, out := byteutil.SliceForAppend(dst, len(ciphertext)) + ret, out := byteutil.SliceForAppend(dst, sep) ciphertextData := ciphertext[:sep] - tag := ciphertext[sep:] - o.crypt(dec, out, nonce, adata, ciphertextData) - if subtle.ConstantTimeCompare(ret[sep:], tag) == 1 { - ret = ret[:sep] + tag := o.crypt(dec, out, nonce, adata, ciphertextData) + if subtle.ConstantTimeCompare(tag, ciphertext[sep:]) == 1 { return ret, nil } for i := range out { @@ -137,7 +137,8 @@ func (o *ocb) Open(dst, nonce, ciphertext, adata []byte) ([]byte, error) { } // On instruction enc (resp. dec), crypt is the encrypt (resp. decrypt) -// function. It returns the resulting plain/ciphertext with the tag appended. +// function. It writes the resulting plain/ciphertext into Y and returns +// the tag. func (o *ocb) crypt(instruction int, Y, nonce, adata, X []byte) []byte { // // Consider X as a sequence of 128-bit blocks @@ -194,13 +195,14 @@ func (o *ocb) crypt(instruction int, Y, nonce, adata, X []byte) []byte { byteutil.XorBytesMut(offset, o.mask.L[bits.TrailingZeros(uint(i+1))]) blockX := X[i*blockSize : (i+1)*blockSize] blockY := Y[i*blockSize : (i+1)*blockSize] - byteutil.XorBytes(blockY, blockX, offset) switch instruction { case enc: + byteutil.XorBytesMut(checksum, blockX) + byteutil.XorBytes(blockY, blockX, offset) o.block.Encrypt(blockY, blockY) byteutil.XorBytesMut(blockY, offset) - byteutil.XorBytesMut(checksum, blockX) case dec: + byteutil.XorBytes(blockY, blockX, offset) o.block.Decrypt(blockY, blockY) byteutil.XorBytesMut(blockY, offset) byteutil.XorBytesMut(checksum, blockY) @@ -216,31 +218,24 @@ func (o *ocb) crypt(instruction int, Y, nonce, adata, X []byte) []byte { o.block.Encrypt(pad, offset) chunkX := X[blockSize*m:] chunkY := Y[blockSize*m : len(X)] - byteutil.XorBytes(chunkY, chunkX, pad[:len(chunkX)]) - // P_* || bit(1) || zeroes(127) - len(P_*) switch instruction { case enc: - paddedY := append(chunkX, byte(128)) - paddedY = append(paddedY, make([]byte, blockSize-len(chunkX)-1)...) - byteutil.XorBytesMut(checksum, paddedY) + byteutil.XorBytesMut(checksum, chunkX) + checksum[len(chunkX)] ^= 128 + byteutil.XorBytes(chunkY, chunkX, pad[:len(chunkX)]) + // P_* || bit(1) || zeroes(127) - len(P_*) case dec: - paddedX := append(chunkY, byte(128)) - paddedX = append(paddedX, make([]byte, blockSize-len(chunkY)-1)...) - byteutil.XorBytesMut(checksum, paddedX) + byteutil.XorBytes(chunkY, chunkX, pad[:len(chunkX)]) + // P_* || bit(1) || zeroes(127) - len(P_*) + byteutil.XorBytesMut(checksum, chunkY) + checksum[len(chunkY)] ^= 128 } - byteutil.XorBytes(tag, checksum, offset) - byteutil.XorBytesMut(tag, o.mask.lDol) - o.block.Encrypt(tag, tag) - byteutil.XorBytesMut(tag, o.hash(adata)) - copy(Y[blockSize*m+len(chunkY):], tag[:o.tagSize]) - } else { - byteutil.XorBytes(tag, checksum, offset) - byteutil.XorBytesMut(tag, o.mask.lDol) - o.block.Encrypt(tag, tag) - byteutil.XorBytesMut(tag, o.hash(adata)) - copy(Y[blockSize*m:], tag[:o.tagSize]) } - return Y + byteutil.XorBytes(tag, checksum, offset) + byteutil.XorBytesMut(tag, o.mask.lDol) + o.block.Encrypt(tag, tag) + byteutil.XorBytesMut(tag, o.hash(adata)) + return tag[:o.tagSize] } // This hash function is used to compute the tag. Per design, on empty input it diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go index 112f98b8..550efddf 100644 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go @@ -7,6 +7,7 @@ package armor import ( "encoding/base64" "io" + "sort" ) var armorHeaderSep = []byte(": ") @@ -159,8 +160,15 @@ func encode(out io.Writer, blockType string, headers map[string]string, checksum return } - for k, v := range headers { - err = writeSlices(out, []byte(k), armorHeaderSep, []byte(v), newline) + keys := make([]string, len(headers)) + i := 0 + for k := range headers { + keys[i] = k + i++ + } + sort.Strings(keys) + for _, k := range keys { + err = writeSlices(out, []byte(k), armorHeaderSep, []byte(headers[k]), newline) if err != nil { return } diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go index 0eb3937b..e44b4573 100644 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go @@ -6,6 +6,7 @@ package errors // import "github.com/ProtonMail/go-crypto/openpgp/errors" import ( + "fmt" "strconv" ) @@ -178,3 +179,22 @@ type ErrMalformedMessage string func (dke ErrMalformedMessage) Error() string { return "openpgp: malformed message " + string(dke) } + +// ErrEncryptionKeySelection is returned if encryption key selection fails (v2 API). +type ErrEncryptionKeySelection struct { + PrimaryKeyId string + PrimaryKeyErr error + EncSelectionKeyId *string + EncSelectionErr error +} + +func (eks ErrEncryptionKeySelection) Error() string { + prefix := fmt.Sprintf("openpgp: key selection for primary key %s:", eks.PrimaryKeyId) + if eks.PrimaryKeyErr != nil { + return fmt.Sprintf("%s invalid primary key: %s", prefix, eks.PrimaryKeyErr) + } + if eks.EncSelectionKeyId != nil { + return fmt.Sprintf("%s invalid encryption key %s: %s", prefix, *eks.EncSelectionKeyId, eks.EncSelectionErr) + } + return fmt.Sprintf("%s no encryption key: %s", prefix, eks.EncSelectionErr) +} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go index 2eecd062..5e460465 100644 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go @@ -3,7 +3,6 @@ package packet import ( - "bytes" "crypto/cipher" "encoding/binary" "io" @@ -15,12 +14,11 @@ import ( type aeadCrypter struct { aead cipher.AEAD chunkSize int - initialNonce []byte + nonce []byte associatedData []byte // Chunk-independent associated data chunkIndex []byte // Chunk counter packetTag packetType // SEIP packet (v2) or AEAD Encrypted Data packet bytesProcessed int // Amount of plaintext bytes encrypted/decrypted - buffer bytes.Buffer // Buffered bytes across chunks } // computeNonce takes the incremental index and computes an eXclusive OR with @@ -28,12 +26,12 @@ type aeadCrypter struct { // 5.16.1 and 5.16.2). It returns the resulting nonce. func (wo *aeadCrypter) computeNextNonce() (nonce []byte) { if wo.packetTag == packetTypeSymmetricallyEncryptedIntegrityProtected { - return append(wo.initialNonce, wo.chunkIndex...) + return wo.nonce } - nonce = make([]byte, len(wo.initialNonce)) - copy(nonce, wo.initialNonce) - offset := len(wo.initialNonce) - 8 + nonce = make([]byte, len(wo.nonce)) + copy(nonce, wo.nonce) + offset := len(wo.nonce) - 8 for i := 0; i < 8; i++ { nonce[i+offset] ^= wo.chunkIndex[i] } @@ -62,8 +60,9 @@ func (wo *aeadCrypter) incrementIndex() error { type aeadDecrypter struct { aeadCrypter // Embedded ciphertext opener reader io.Reader // 'reader' is a partialLengthReader + chunkBytes []byte peekedBytes []byte // Used to detect last chunk - eof bool + buffer []byte // Buffered decrypted bytes } // Read decrypts bytes and reads them into dst. It decrypts when necessary and @@ -71,59 +70,44 @@ type aeadDecrypter struct { // and an error. func (ar *aeadDecrypter) Read(dst []byte) (n int, err error) { // Return buffered plaintext bytes from previous calls - if ar.buffer.Len() > 0 { - return ar.buffer.Read(dst) - } - - // Return EOF if we've previously validated the final tag - if ar.eof { - return 0, io.EOF + if len(ar.buffer) > 0 { + n = copy(dst, ar.buffer) + ar.buffer = ar.buffer[n:] + return } // Read a chunk tagLen := ar.aead.Overhead() - cipherChunkBuf := new(bytes.Buffer) - _, errRead := io.CopyN(cipherChunkBuf, ar.reader, int64(ar.chunkSize+tagLen)) - cipherChunk := cipherChunkBuf.Bytes() - if errRead != nil && errRead != io.EOF { + copy(ar.chunkBytes, ar.peekedBytes) // Copy bytes peeked in previous chunk or in initialization + bytesRead, errRead := io.ReadFull(ar.reader, ar.chunkBytes[tagLen:]) + if errRead != nil && errRead != io.EOF && errRead != io.ErrUnexpectedEOF { return 0, errRead } - if len(cipherChunk) > 0 { - decrypted, errChunk := ar.openChunk(cipherChunk) + if bytesRead > 0 { + ar.peekedBytes = ar.chunkBytes[bytesRead:bytesRead+tagLen] + + decrypted, errChunk := ar.openChunk(ar.chunkBytes[:bytesRead]) if errChunk != nil { return 0, errChunk } // Return decrypted bytes, buffering if necessary - if len(dst) < len(decrypted) { - n = copy(dst, decrypted[:len(dst)]) - ar.buffer.Write(decrypted[len(dst):]) - } else { - n = copy(dst, decrypted) - } + n = copy(dst, decrypted) + ar.buffer = decrypted[n:] + return } - // Check final authentication tag - if errRead == io.EOF { - errChunk := ar.validateFinalTag(ar.peekedBytes) - if errChunk != nil { - return n, errChunk - } - ar.eof = true // Mark EOF for when we've returned all buffered data - } - return + return 0, io.EOF } -// Close is noOp. The final authentication tag of the stream was already -// checked in the last Read call. In the future, this function could be used to -// wipe the reader and peeked, decrypted bytes, if necessary. +// Close checks the final authentication tag of the stream. +// In the future, this function could also be used to wipe the reader +// and peeked & decrypted bytes, if necessary. func (ar *aeadDecrypter) Close() (err error) { - if !ar.eof { - errChunk := ar.validateFinalTag(ar.peekedBytes) - if errChunk != nil { - return errChunk - } + errChunk := ar.validateFinalTag(ar.peekedBytes) + if errChunk != nil { + return errChunk } return nil } @@ -132,20 +116,13 @@ func (ar *aeadDecrypter) Close() (err error) { // the underlying plaintext and an error. It accesses peeked bytes from next // chunk, to identify the last chunk and decrypt/validate accordingly. func (ar *aeadDecrypter) openChunk(data []byte) ([]byte, error) { - tagLen := ar.aead.Overhead() - // Restore carried bytes from last call - chunkExtra := append(ar.peekedBytes, data...) - // 'chunk' contains encrypted bytes, followed by an authentication tag. - chunk := chunkExtra[:len(chunkExtra)-tagLen] - ar.peekedBytes = chunkExtra[len(chunkExtra)-tagLen:] - adata := ar.associatedData if ar.aeadCrypter.packetTag == packetTypeAEADEncrypted { adata = append(ar.associatedData, ar.chunkIndex...) } nonce := ar.computeNextNonce() - plainChunk, err := ar.aead.Open(nil, nonce, chunk, adata) + plainChunk, err := ar.aead.Open(data[:0:len(data)], nonce, data, adata) if err != nil { return nil, errors.ErrAEADTagVerification } @@ -183,27 +160,29 @@ func (ar *aeadDecrypter) validateFinalTag(tag []byte) error { type aeadEncrypter struct { aeadCrypter // Embedded plaintext sealer writer io.WriteCloser // 'writer' is a partialLengthWriter + chunkBytes []byte + offset int } // Write encrypts and writes bytes. It encrypts when necessary and buffers extra // plaintext bytes for next call. When the stream is finished, Close() MUST be // called to append the final tag. func (aw *aeadEncrypter) Write(plaintextBytes []byte) (n int, err error) { - // Append plaintextBytes to existing buffered bytes - n, err = aw.buffer.Write(plaintextBytes) - if err != nil { - return n, err - } - // Encrypt and write chunks - for aw.buffer.Len() >= aw.chunkSize { - plainChunk := aw.buffer.Next(aw.chunkSize) - encryptedChunk, err := aw.sealChunk(plainChunk) - if err != nil { - return n, err - } - _, err = aw.writer.Write(encryptedChunk) - if err != nil { - return n, err + for n != len(plaintextBytes) { + copied := copy(aw.chunkBytes[aw.offset:aw.chunkSize], plaintextBytes[n:]) + n += copied + aw.offset += copied + + if aw.offset == aw.chunkSize { + encryptedChunk, err := aw.sealChunk(aw.chunkBytes[:aw.offset]) + if err != nil { + return n, err + } + _, err = aw.writer.Write(encryptedChunk) + if err != nil { + return n, err + } + aw.offset = 0 } } return @@ -215,9 +194,8 @@ func (aw *aeadEncrypter) Write(plaintextBytes []byte) (n int, err error) { func (aw *aeadEncrypter) Close() (err error) { // Encrypt and write a chunk if there's buffered data left, or if we haven't // written any chunks yet. - if aw.buffer.Len() > 0 || aw.bytesProcessed == 0 { - plainChunk := aw.buffer.Bytes() - lastEncryptedChunk, err := aw.sealChunk(plainChunk) + if aw.offset > 0 || aw.bytesProcessed == 0 { + lastEncryptedChunk, err := aw.sealChunk(aw.chunkBytes[:aw.offset]) if err != nil { return err } @@ -263,7 +241,7 @@ func (aw *aeadEncrypter) sealChunk(data []byte) ([]byte, error) { } nonce := aw.computeNextNonce() - encrypted := aw.aead.Seal(nil, nonce, data, adata) + encrypted := aw.aead.Seal(data[:0], nonce, data, adata) aw.bytesProcessed += len(data) if err := aw.aeadCrypter.incrementIndex(); err != nil { return nil, err diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go index 98bd876b..583765d8 100644 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go @@ -65,24 +65,28 @@ func (ae *AEADEncrypted) decrypt(key []byte) (io.ReadCloser, error) { blockCipher := ae.cipher.new(key) aead := ae.mode.new(blockCipher) // Carry the first tagLen bytes + chunkSize := decodeAEADChunkSize(ae.chunkSizeByte) tagLen := ae.mode.TagLength() - peekedBytes := make([]byte, tagLen) + chunkBytes := make([]byte, chunkSize+tagLen*2) + peekedBytes := chunkBytes[chunkSize+tagLen:] n, err := io.ReadFull(ae.Contents, peekedBytes) if n < tagLen || (err != nil && err != io.EOF) { return nil, errors.AEADError("Not enough data to decrypt:" + err.Error()) } - chunkSize := decodeAEADChunkSize(ae.chunkSizeByte) + return &aeadDecrypter{ aeadCrypter: aeadCrypter{ aead: aead, chunkSize: chunkSize, - initialNonce: ae.initialNonce, + nonce: ae.initialNonce, associatedData: ae.associatedData(), chunkIndex: make([]byte, 8), packetTag: packetTypeAEADEncrypted, }, reader: ae.Contents, - peekedBytes: peekedBytes}, nil + chunkBytes: chunkBytes, + peekedBytes: peekedBytes, + }, nil } // associatedData for chunks: tag, version, cipher, mode, chunk size byte diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go index 8bf8e6e5..257398d9 100644 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go @@ -173,6 +173,11 @@ type Config struct { // weaknesses in the hash algo, potentially hindering e.g. some chosen-prefix attacks. // The default behavior, when the config or flag is nil, is to enable the feature. NonDeterministicSignaturesViaNotation *bool + + // InsecureAllowAllKeyFlagsWhenMissing determines how a key without valid key flags is handled. + // When set to true, a key without flags is treated as if all flags are enabled. + // This behavior is consistent with GPG. + InsecureAllowAllKeyFlagsWhenMissing bool } func (c *Config) Random() io.Reader { @@ -403,6 +408,13 @@ func (c *Config) RandomizeSignaturesViaNotation() bool { return *c.NonDeterministicSignaturesViaNotation } +func (c *Config) AllowAllKeyFlagsWhenMissing() bool { + if c == nil { + return false + } + return c.InsecureAllowAllKeyFlagsWhenMissing +} + // BoolPointer is a helper function to set a boolean pointer in the Config. // e.g., config.CheckPacketSequence = BoolPointer(true) func BoolPointer(value bool) *bool { diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go index f8da781b..e2813396 100644 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go @@ -1048,12 +1048,17 @@ func (pk *PublicKey) VerifyDirectKeySignature(sig *Signature) (err error) { // KeyIdString returns the public key's fingerprint in capital hex // (e.g. "6C7EE1B8621CC013"). func (pk *PublicKey) KeyIdString() string { - return fmt.Sprintf("%X", pk.Fingerprint[12:20]) + return fmt.Sprintf("%016X", pk.KeyId) } // KeyIdShortString returns the short form of public key's fingerprint // in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). +// This function will return the full key id for v5 and v6 keys +// since the short key id is undefined for them. func (pk *PublicKey) KeyIdShortString() string { + if pk.Version >= 5 { + return pk.KeyIdString() + } return fmt.Sprintf("%X", pk.Fingerprint[16:20]) } diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go index 3a4b366d..84dd3b86 100644 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go @@ -1288,7 +1288,9 @@ func (sig *Signature) buildSubpackets(issuer PublicKey) (subpackets []outputSubp if sig.IssuerKeyId != nil && sig.Version == 4 { keyId := make([]byte, 8) binary.BigEndian.PutUint64(keyId, *sig.IssuerKeyId) - subpackets = append(subpackets, outputSubpacket{true, issuerSubpacket, true, keyId}) + // Note: making this critical breaks RPM <=4.16. + // See: https://github.com/ProtonMail/go-crypto/issues/263 + subpackets = append(subpackets, outputSubpacket{true, issuerSubpacket, false, keyId}) } // Notation Data for _, notation := range sig.Notations { diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go index 3957b2d5..3ddc4fe4 100644 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go +++ b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go @@ -70,8 +70,10 @@ func (se *SymmetricallyEncrypted) decryptAead(inputKey []byte) (io.ReadCloser, e aead, nonce := getSymmetricallyEncryptedAeadInstance(se.Cipher, se.Mode, inputKey, se.Salt[:], se.associatedData()) // Carry the first tagLen bytes + chunkSize := decodeAEADChunkSize(se.ChunkSizeByte) tagLen := se.Mode.TagLength() - peekedBytes := make([]byte, tagLen) + chunkBytes := make([]byte, chunkSize+tagLen*2) + peekedBytes := chunkBytes[chunkSize+tagLen:] n, err := io.ReadFull(se.Contents, peekedBytes) if n < tagLen || (err != nil && err != io.EOF) { return nil, errors.StructuralError("not enough data to decrypt:" + err.Error()) @@ -81,12 +83,13 @@ func (se *SymmetricallyEncrypted) decryptAead(inputKey []byte) (io.ReadCloser, e aeadCrypter: aeadCrypter{ aead: aead, chunkSize: decodeAEADChunkSize(se.ChunkSizeByte), - initialNonce: nonce, + nonce: nonce, associatedData: se.associatedData(), - chunkIndex: make([]byte, 8), + chunkIndex: nonce[len(nonce)-8:], packetTag: packetTypeSymmetricallyEncryptedIntegrityProtected, }, reader: se.Contents, + chunkBytes: chunkBytes, peekedBytes: peekedBytes, }, nil } @@ -130,16 +133,20 @@ func serializeSymmetricallyEncryptedAead(ciphertext io.WriteCloser, cipherSuite aead, nonce := getSymmetricallyEncryptedAeadInstance(cipherSuite.Cipher, cipherSuite.Mode, inputKey, salt, prefix) + chunkSize := decodeAEADChunkSize(chunkSizeByte) + tagLen := aead.Overhead() + chunkBytes := make([]byte, chunkSize+tagLen) return &aeadEncrypter{ aeadCrypter: aeadCrypter{ aead: aead, - chunkSize: decodeAEADChunkSize(chunkSizeByte), + chunkSize: chunkSize, associatedData: prefix, - chunkIndex: make([]byte, 8), - initialNonce: nonce, + nonce: nonce, + chunkIndex: nonce[len(nonce)-8:], packetTag: packetTypeSymmetricallyEncryptedIntegrityProtected, }, - writer: ciphertext, + writer: ciphertext, + chunkBytes: chunkBytes, }, nil } @@ -149,10 +156,10 @@ func getSymmetricallyEncryptedAeadInstance(c CipherFunction, mode AEADMode, inpu encryptionKey := make([]byte, c.KeySize()) _, _ = readFull(hkdfReader, encryptionKey) - // Last 64 bits of nonce are the counter - nonce = make([]byte, mode.IvLength()-8) + nonce = make([]byte, mode.IvLength()) - _, _ = readFull(hkdfReader, nonce) + // Last 64 bits of nonce are the counter + _, _ = readFull(hkdfReader, nonce[:len(nonce)-8]) blockCipher := c.new(encryptionKey) aead = mode.new(blockCipher) diff --git a/vendor/github.com/charmbracelet/lipgloss/.golangci-soft.yml b/vendor/github.com/charmbracelet/colorprofile/.golangci-soft.yml similarity index 96% rename from vendor/github.com/charmbracelet/lipgloss/.golangci-soft.yml rename to vendor/github.com/charmbracelet/colorprofile/.golangci-soft.yml index 87837137..d325d4fc 100644 --- a/vendor/github.com/charmbracelet/lipgloss/.golangci-soft.yml +++ b/vendor/github.com/charmbracelet/colorprofile/.golangci-soft.yml @@ -1,5 +1,6 @@ run: tests: false + issues-exit-code: 0 issues: include: @@ -36,5 +37,4 @@ linters: - govet - ineffassign - staticcheck - - typecheck - unused diff --git a/vendor/github.com/charmbracelet/colorprofile/.golangci.yml b/vendor/github.com/charmbracelet/colorprofile/.golangci.yml new file mode 100644 index 00000000..d6789e01 --- /dev/null +++ b/vendor/github.com/charmbracelet/colorprofile/.golangci.yml @@ -0,0 +1,28 @@ +run: + tests: false + +issues: + include: + - EXC0001 + - EXC0005 + - EXC0011 + - EXC0012 + - EXC0013 + + max-issues-per-linter: 0 + max-same-issues: 0 + +linters: + enable: + - bodyclose + - gofumpt + - goimports + - gosec + - nilerr + - revive + - rowserrcheck + - sqlclosecheck + - tparallel + - unconvert + - unparam + - whitespace diff --git a/vendor/github.com/charmbracelet/colorprofile/.goreleaser.yml b/vendor/github.com/charmbracelet/colorprofile/.goreleaser.yml new file mode 100644 index 00000000..40d9f298 --- /dev/null +++ b/vendor/github.com/charmbracelet/colorprofile/.goreleaser.yml @@ -0,0 +1,6 @@ +includes: + - from_url: + url: charmbracelet/meta/main/goreleaser-lib.yaml + +# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json + diff --git a/vendor/github.com/charmbracelet/colorprofile/LICENSE b/vendor/github.com/charmbracelet/colorprofile/LICENSE new file mode 100644 index 00000000..b7974b07 --- /dev/null +++ b/vendor/github.com/charmbracelet/colorprofile/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020-2024 Charmbracelet, Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/charmbracelet/colorprofile/README.md b/vendor/github.com/charmbracelet/colorprofile/README.md new file mode 100644 index 00000000..c72b2f4b --- /dev/null +++ b/vendor/github.com/charmbracelet/colorprofile/README.md @@ -0,0 +1,103 @@ +# Colorprofile + +

+ Latest Release + GoDoc + Build Status +

+ +A simple, powerful—and at times magical—package for detecting terminal color +profiles and performing color (and CSI) degradation. + +## Detecting the terminal’s color profile + +Detecting the terminal’s color profile is easy. + +```go +import "github.com/charmbracelet/colorprofile" + +// Detect the color profile. If you’re planning on writing to stderr you'd want +// to use os.Stderr instead. +p := colorprofile.Detect(os.Stdout, os.Environ()) + +// Comment on the profile. +fmt.Printf("You know, your colors are quite %s.", func() string { + switch p { + case colorprofile.TrueColor: + return "fancy" + case colorprofile.ANSI256: + return "1990s fancy" + case colorprofile.ANSI: + return "normcore" + case colorprofile.Ascii: + return "ancient" + case colorprofile.NoTTY: + return "naughty!" + } + return "...IDK" // this should never happen +}()) +``` + +## Downsampling colors + +When necessary, colors can be downsampled to a given profile, or manually +downsampled to a specific profile. + +```go +p := colorprofile.Detect(os.Stdout, os.Environ()) +c := color.RGBA{0x6b, 0x50, 0xff, 0xff} // #6b50ff + +// Downsample to the detected profile, when necessary. +convertedColor := p.Convert(c) + +// Or manually convert to a given profile. +ansi256Color := colorprofile.ANSI256.Convert(c) +ansiColor := colorprofile.ANSI.Convert(c) +noColor := colorprofile.Ascii.Convert(c) +noANSI := colorprofile.NoTTY.Convert(c) +``` + +## Automatic downsampling with a Writer + +You can also magically downsample colors in ANSI output, when necessary. If +output is not a TTY ANSI will be dropped entirely. + +```go +myFancyANSI := "\x1b[38;2;107;80;255mCute \x1b[1;3mpuppy!!\x1b[m" + +// Automatically downsample for the terminal at stdout. +w := colorprofile.NewWriter(os.Stdout, os.Environ()) +fmt.Fprintf(w, myFancyANSI) + +// Downsample to 4-bit ANSI. +w.Profile = colorprofile.ANSI +fmt.Fprintf(w, myFancyANSI) + +// Ascii-fy, no colors. +w.Profile = colorprofile.Ascii +fmt.Fprintf(w, myFancyANSI) + +// Strip ANSI altogether. +w.Profile = colorprofile.NoTTY +fmt.Fprintf(w, myFancyANSI) // not as fancy +``` + +## Feedback + +We’d love to hear your thoughts on this project. Feel free to drop us a note! + +- [Twitter](https://twitter.com/charmcli) +- [The Fediverse](https://mastodon.social/@charmcli) +- [Discord](https://charm.sh/chat) + +## License + +[MIT](https://github.com/charmbracelet/bubbletea/raw/master/LICENSE) + +--- + +Part of [Charm](https://charm.sh). + +The Charm logo + +Charm热爱开源 • Charm loves open source • نحنُ نحب المصادر المفتوحة diff --git a/vendor/github.com/charmbracelet/colorprofile/env.go b/vendor/github.com/charmbracelet/colorprofile/env.go new file mode 100644 index 00000000..8df3d8f7 --- /dev/null +++ b/vendor/github.com/charmbracelet/colorprofile/env.go @@ -0,0 +1,287 @@ +package colorprofile + +import ( + "bytes" + "io" + "os/exec" + "runtime" + "strconv" + "strings" + + "github.com/charmbracelet/x/term" + "github.com/xo/terminfo" +) + +// Detect returns the color profile based on the terminal output, and +// environment variables. This respects NO_COLOR, CLICOLOR, and CLICOLOR_FORCE +// environment variables. +// +// The rules as follows: +// - TERM=dumb is always treated as NoTTY unless CLICOLOR_FORCE=1 is set. +// - If COLORTERM=truecolor, and the profile is not NoTTY, it gest upgraded to TrueColor. +// - Using any 256 color terminal (e.g. TERM=xterm-256color) will set the profile to ANSI256. +// - Using any color terminal (e.g. TERM=xterm-color) will set the profile to ANSI. +// - Using CLICOLOR=1 without TERM defined should be treated as ANSI if the +// output is a terminal. +// - NO_COLOR takes precedence over CLICOLOR/CLICOLOR_FORCE, and will disable +// colors but not text decoration, i.e. bold, italic, faint, etc. +// +// See https://no-color.org/ and https://bixense.com/clicolors/ for more information. +func Detect(output io.Writer, env []string) Profile { + out, ok := output.(term.File) + isatty := ok && term.IsTerminal(out.Fd()) + environ := newEnviron(env) + term := environ.get("TERM") + isDumb := term == "dumb" + envp := colorProfile(isatty, environ) + if envp == TrueColor || envNoColor(environ) { + // We already know we have TrueColor, or NO_COLOR is set. + return envp + } + + if isatty && !isDumb { + tip := Terminfo(term) + tmuxp := tmux(environ) + + // Color profile is the maximum of env, terminfo, and tmux. + return max(envp, max(tip, tmuxp)) + } + + return envp +} + +// Env returns the color profile based on the terminal environment variables. +// This respects NO_COLOR, CLICOLOR, and CLICOLOR_FORCE environment variables. +// +// The rules as follows: +// - TERM=dumb is always treated as NoTTY unless CLICOLOR_FORCE=1 is set. +// - If COLORTERM=truecolor, and the profile is not NoTTY, it gest upgraded to TrueColor. +// - Using any 256 color terminal (e.g. TERM=xterm-256color) will set the profile to ANSI256. +// - Using any color terminal (e.g. TERM=xterm-color) will set the profile to ANSI. +// - Using CLICOLOR=1 without TERM defined should be treated as ANSI if the +// output is a terminal. +// - NO_COLOR takes precedence over CLICOLOR/CLICOLOR_FORCE, and will disable +// colors but not text decoration, i.e. bold, italic, faint, etc. +// +// See https://no-color.org/ and https://bixense.com/clicolors/ for more information. +func Env(env []string) (p Profile) { + return colorProfile(true, newEnviron(env)) +} + +func colorProfile(isatty bool, env environ) (p Profile) { + isDumb := env.get("TERM") == "dumb" + envp := envColorProfile(env) + if !isatty || isDumb { + // Check if the output is a terminal. + // Treat dumb terminals as NoTTY + p = NoTTY + } else { + p = envp + } + + if envNoColor(env) && isatty { + if p > Ascii { + p = Ascii + } + return + } + + if cliColorForced(env) { + if p < ANSI { + p = ANSI + } + if envp > p { + p = envp + } + + return + } + + if cliColor(env) { + if isatty && !isDumb && p < ANSI { + p = ANSI + } + } + + return p +} + +// envNoColor returns true if the environment variables explicitly disable color output +// by setting NO_COLOR (https://no-color.org/). +func envNoColor(env environ) bool { + noColor, _ := strconv.ParseBool(env.get("NO_COLOR")) + return noColor +} + +func cliColor(env environ) bool { + cliColor, _ := strconv.ParseBool(env.get("CLICOLOR")) + return cliColor +} + +func cliColorForced(env environ) bool { + cliColorForce, _ := strconv.ParseBool(env.get("CLICOLOR_FORCE")) + return cliColorForce +} + +func colorTerm(env environ) bool { + colorTerm := strings.ToLower(env.get("COLORTERM")) + return colorTerm == "truecolor" || colorTerm == "24bit" || + colorTerm == "yes" || colorTerm == "true" +} + +// envColorProfile returns infers the color profile from the environment. +func envColorProfile(env environ) (p Profile) { + term, ok := env.lookup("TERM") + if !ok || len(term) == 0 || term == "dumb" { + p = NoTTY + if runtime.GOOS == "windows" { + // Use Windows API to detect color profile. Windows Terminal and + // cmd.exe don't define $TERM. + if wcp, ok := windowsColorProfile(env); ok { + p = wcp + } + } + } else { + p = ANSI + } + + parts := strings.Split(term, "-") + switch parts[0] { + case "alacritty", + "contour", + "foot", + "ghostty", + "kitty", + "rio", + "st", + "wezterm": + return TrueColor + case "xterm": + if len(parts) > 1 { + switch parts[1] { + case "ghostty", "kitty": + // These terminals can be defined as xterm-TERMNAME + return TrueColor + } + } + case "tmux", "screen": + if p < ANSI256 { + p = ANSI256 + } + } + + if isCloudShell, _ := strconv.ParseBool(env.get("GOOGLE_CLOUD_SHELL")); isCloudShell { + return TrueColor + } + + // GNU Screen doesn't support TrueColor + // Tmux doesn't support $COLORTERM + if colorTerm(env) && !strings.HasPrefix(term, "screen") && !strings.HasPrefix(term, "tmux") { + return TrueColor + } + + if strings.HasSuffix(term, "256color") && p < ANSI256 { + p = ANSI256 + } + + return +} + +// Terminfo returns the color profile based on the terminal's terminfo +// database. This relies on the Tc and RGB capabilities to determine if the +// terminal supports TrueColor. +// If term is empty or "dumb", it returns NoTTY. +func Terminfo(term string) (p Profile) { + if len(term) == 0 || term == "dumb" { + return NoTTY + } + + p = ANSI + ti, err := terminfo.Load(term) + if err != nil { + return + } + + extbools := ti.ExtBoolCapsShort() + if _, ok := extbools["Tc"]; ok { + return TrueColor + } + + if _, ok := extbools["RGB"]; ok { + return TrueColor + } + + return +} + +// Tmux returns the color profile based on `tmux info` output. Tmux supports +// overriding the terminal's color capabilities, so this function will return +// the color profile based on the tmux configuration. +func Tmux(env []string) Profile { + return tmux(newEnviron(env)) +} + +// tmux returns the color profile based on the tmux environment variables. +func tmux(env environ) (p Profile) { + if tmux, ok := env.lookup("TMUX"); !ok || len(tmux) == 0 { + // Not in tmux + return NoTTY + } + + // Check if tmux has either Tc or RGB capabilities. Otherwise, return + // ANSI256. + p = ANSI256 + cmd := exec.Command("tmux", "info") + out, err := cmd.Output() + if err != nil { + return + } + + for _, line := range bytes.Split(out, []byte("\n")) { + if (bytes.Contains(line, []byte("Tc")) || bytes.Contains(line, []byte("RGB"))) && + bytes.Contains(line, []byte("true")) { + return TrueColor + } + } + + return +} + +// environ is a map of environment variables. +type environ map[string]string + +// newEnviron returns a new environment map from a slice of environment +// variables. +func newEnviron(environ []string) environ { + m := make(map[string]string, len(environ)) + for _, e := range environ { + parts := strings.SplitN(e, "=", 2) + var value string + if len(parts) == 2 { + value = parts[1] + } + m[parts[0]] = value + } + return m +} + +// lookup returns the value of an environment variable and a boolean indicating +// if it exists. +func (e environ) lookup(key string) (string, bool) { + v, ok := e[key] + return v, ok +} + +// get returns the value of an environment variable and empty string if it +// doesn't exist. +func (e environ) get(key string) string { + v, _ := e.lookup(key) + return v +} + +func max[T ~byte | ~int](a, b T) T { + if a > b { + return a + } + return b +} diff --git a/vendor/github.com/charmbracelet/colorprofile/env_other.go b/vendor/github.com/charmbracelet/colorprofile/env_other.go new file mode 100644 index 00000000..080994bc --- /dev/null +++ b/vendor/github.com/charmbracelet/colorprofile/env_other.go @@ -0,0 +1,8 @@ +//go:build !windows +// +build !windows + +package colorprofile + +func windowsColorProfile(map[string]string) (Profile, bool) { + return 0, false +} diff --git a/vendor/github.com/charmbracelet/colorprofile/env_windows.go b/vendor/github.com/charmbracelet/colorprofile/env_windows.go new file mode 100644 index 00000000..3b9c28f9 --- /dev/null +++ b/vendor/github.com/charmbracelet/colorprofile/env_windows.go @@ -0,0 +1,45 @@ +//go:build windows +// +build windows + +package colorprofile + +import ( + "strconv" + + "golang.org/x/sys/windows" +) + +func windowsColorProfile(env map[string]string) (Profile, bool) { + if env["ConEmuANSI"] == "ON" { + return TrueColor, true + } + + if len(env["WT_SESSION"]) > 0 { + // Windows Terminal supports TrueColor + return TrueColor, true + } + + major, _, build := windows.RtlGetNtVersionNumbers() + if build < 10586 || major < 10 { + // No ANSI support before WindowsNT 10 build 10586 + if len(env["ANSICON"]) > 0 { + ansiconVer := env["ANSICON_VER"] + cv, err := strconv.Atoi(ansiconVer) + if err != nil || cv < 181 { + // No 8 bit color support before ANSICON 1.81 + return ANSI, true + } + + return ANSI256, true + } + + return NoTTY, true + } + + if build < 14931 { + // No true color support before build 14931 + return ANSI256, true + } + + return TrueColor, true +} diff --git a/vendor/github.com/charmbracelet/colorprofile/profile.go b/vendor/github.com/charmbracelet/colorprofile/profile.go new file mode 100644 index 00000000..97e37ac3 --- /dev/null +++ b/vendor/github.com/charmbracelet/colorprofile/profile.go @@ -0,0 +1,399 @@ +package colorprofile + +import ( + "image/color" + "math" + + "github.com/charmbracelet/x/ansi" + "github.com/lucasb-eyer/go-colorful" +) + +// Profile is a color profile: NoTTY, Ascii, ANSI, ANSI256, or TrueColor. +type Profile byte + +const ( + // NoTTY, not a terminal profile. + NoTTY Profile = iota + // Ascii, uncolored profile. + Ascii //nolint:revive + // ANSI, 4-bit color profile. + ANSI + // ANSI256, 8-bit color profile. + ANSI256 + // TrueColor, 24-bit color profile. + TrueColor +) + +// String returns the string representation of a Profile. +func (p Profile) String() string { + switch p { + case TrueColor: + return "TrueColor" + case ANSI256: + return "ANSI256" + case ANSI: + return "ANSI" + case Ascii: + return "Ascii" + case NoTTY: + return "NoTTY" + } + return "Unknown" +} + +// Convert transforms a given Color to a Color supported within the Profile. +func (p Profile) Convert(c color.Color) color.Color { + if p <= Ascii { + return nil + } + + switch c := c.(type) { + case ansi.BasicColor: + return c + + case ansi.ExtendedColor: + if p == ANSI { + return ansi256ToANSIColor(c) + } + return c + + case ansi.TrueColor, color.Color: + h, ok := colorful.MakeColor(c) + if !ok { + return nil + } + if p != TrueColor { + ac := hexToANSI256Color(h) + if p == ANSI { + return ansi256ToANSIColor(ac) + } + return ac + } + return c + } + + return c +} + +func hexToANSI256Color(c colorful.Color) ansi.ExtendedColor { + v2ci := func(v float64) int { + if v < 48 { + return 0 + } + if v < 115 { + return 1 + } + return int((v - 35) / 40) + } + + // Calculate the nearest 0-based color index at 16..231 + r := v2ci(c.R * 255.0) // 0..5 each + g := v2ci(c.G * 255.0) + b := v2ci(c.B * 255.0) + ci := 36*r + 6*g + b /* 0..215 */ + + // Calculate the represented colors back from the index + i2cv := [6]int{0, 0x5f, 0x87, 0xaf, 0xd7, 0xff} + cr := i2cv[r] // r/g/b, 0..255 each + cg := i2cv[g] + cb := i2cv[b] + + // Calculate the nearest 0-based gray index at 232..255 + var grayIdx int + average := (cr + cg + cb) / 3 + if average > 238 { + grayIdx = 23 + } else { + grayIdx = (average - 3) / 10 // 0..23 + } + gv := 8 + 10*grayIdx // same value for r/g/b, 0..255 + + // Return the one which is nearer to the original input rgb value + c2 := colorful.Color{R: float64(cr) / 255.0, G: float64(cg) / 255.0, B: float64(cb) / 255.0} + g2 := colorful.Color{R: float64(gv) / 255.0, G: float64(gv) / 255.0, B: float64(gv) / 255.0} + colorDist := c.DistanceHSLuv(c2) + grayDist := c.DistanceHSLuv(g2) + + if colorDist <= grayDist { + return ansi.ExtendedColor(16 + ci) //nolint:gosec + } + return ansi.ExtendedColor(232 + grayIdx) //nolint:gosec +} + +func ansi256ToANSIColor(c ansi.ExtendedColor) ansi.BasicColor { + var r int + md := math.MaxFloat64 + + h, _ := colorful.Hex(ansiHex[c]) + for i := 0; i <= 15; i++ { + hb, _ := colorful.Hex(ansiHex[i]) + d := h.DistanceHSLuv(hb) + + if d < md { + md = d + r = i + } + } + + return ansi.BasicColor(r) //nolint:gosec +} + +// RGB values of ANSI colors (0-255). +var ansiHex = []string{ + "#000000", + "#800000", + "#008000", + "#808000", + "#000080", + "#800080", + "#008080", + "#c0c0c0", + "#808080", + "#ff0000", + "#00ff00", + "#ffff00", + "#0000ff", + "#ff00ff", + "#00ffff", + "#ffffff", + "#000000", + "#00005f", + "#000087", + "#0000af", + "#0000d7", + "#0000ff", + "#005f00", + "#005f5f", + "#005f87", + "#005faf", + "#005fd7", + "#005fff", + "#008700", + "#00875f", + "#008787", + "#0087af", + "#0087d7", + "#0087ff", + "#00af00", + "#00af5f", + "#00af87", + "#00afaf", + "#00afd7", + "#00afff", + "#00d700", + "#00d75f", + "#00d787", + "#00d7af", + "#00d7d7", + "#00d7ff", + "#00ff00", + "#00ff5f", + "#00ff87", + "#00ffaf", + "#00ffd7", + "#00ffff", + "#5f0000", + "#5f005f", + "#5f0087", + "#5f00af", + "#5f00d7", + "#5f00ff", + "#5f5f00", + "#5f5f5f", + "#5f5f87", + "#5f5faf", + "#5f5fd7", + "#5f5fff", + "#5f8700", + "#5f875f", + "#5f8787", + "#5f87af", + "#5f87d7", + "#5f87ff", + "#5faf00", + "#5faf5f", + "#5faf87", + "#5fafaf", + "#5fafd7", + "#5fafff", + "#5fd700", + "#5fd75f", + "#5fd787", + "#5fd7af", + "#5fd7d7", + "#5fd7ff", + "#5fff00", + "#5fff5f", + "#5fff87", + "#5fffaf", + "#5fffd7", + "#5fffff", + "#870000", + "#87005f", + "#870087", + "#8700af", + "#8700d7", + "#8700ff", + "#875f00", + "#875f5f", + "#875f87", + "#875faf", + "#875fd7", + "#875fff", + "#878700", + "#87875f", + "#878787", + "#8787af", + "#8787d7", + "#8787ff", + "#87af00", + "#87af5f", + "#87af87", + "#87afaf", + "#87afd7", + "#87afff", + "#87d700", + "#87d75f", + "#87d787", + "#87d7af", + "#87d7d7", + "#87d7ff", + "#87ff00", + "#87ff5f", + "#87ff87", + "#87ffaf", + "#87ffd7", + "#87ffff", + "#af0000", + "#af005f", + "#af0087", + "#af00af", + "#af00d7", + "#af00ff", + "#af5f00", + "#af5f5f", + "#af5f87", + "#af5faf", + "#af5fd7", + "#af5fff", + "#af8700", + "#af875f", + "#af8787", + "#af87af", + "#af87d7", + "#af87ff", + "#afaf00", + "#afaf5f", + "#afaf87", + "#afafaf", + "#afafd7", + "#afafff", + "#afd700", + "#afd75f", + "#afd787", + "#afd7af", + "#afd7d7", + "#afd7ff", + "#afff00", + "#afff5f", + "#afff87", + "#afffaf", + "#afffd7", + "#afffff", + "#d70000", + "#d7005f", + "#d70087", + "#d700af", + "#d700d7", + "#d700ff", + "#d75f00", + "#d75f5f", + "#d75f87", + "#d75faf", + "#d75fd7", + "#d75fff", + "#d78700", + "#d7875f", + "#d78787", + "#d787af", + "#d787d7", + "#d787ff", + "#d7af00", + "#d7af5f", + "#d7af87", + "#d7afaf", + "#d7afd7", + "#d7afff", + "#d7d700", + "#d7d75f", + "#d7d787", + "#d7d7af", + "#d7d7d7", + "#d7d7ff", + "#d7ff00", + "#d7ff5f", + "#d7ff87", + "#d7ffaf", + "#d7ffd7", + "#d7ffff", + "#ff0000", + "#ff005f", + "#ff0087", + "#ff00af", + "#ff00d7", + "#ff00ff", + "#ff5f00", + "#ff5f5f", + "#ff5f87", + "#ff5faf", + "#ff5fd7", + "#ff5fff", + "#ff8700", + "#ff875f", + "#ff8787", + "#ff87af", + "#ff87d7", + "#ff87ff", + "#ffaf00", + "#ffaf5f", + "#ffaf87", + "#ffafaf", + "#ffafd7", + "#ffafff", + "#ffd700", + "#ffd75f", + "#ffd787", + "#ffd7af", + "#ffd7d7", + "#ffd7ff", + "#ffff00", + "#ffff5f", + "#ffff87", + "#ffffaf", + "#ffffd7", + "#ffffff", + "#080808", + "#121212", + "#1c1c1c", + "#262626", + "#303030", + "#3a3a3a", + "#444444", + "#4e4e4e", + "#585858", + "#626262", + "#6c6c6c", + "#767676", + "#808080", + "#8a8a8a", + "#949494", + "#9e9e9e", + "#a8a8a8", + "#b2b2b2", + "#bcbcbc", + "#c6c6c6", + "#d0d0d0", + "#dadada", + "#e4e4e4", + "#eeeeee", +} diff --git a/vendor/github.com/charmbracelet/colorprofile/writer.go b/vendor/github.com/charmbracelet/colorprofile/writer.go new file mode 100644 index 00000000..d04b3b99 --- /dev/null +++ b/vendor/github.com/charmbracelet/colorprofile/writer.go @@ -0,0 +1,166 @@ +package colorprofile + +import ( + "bytes" + "image/color" + "io" + "strconv" + + "github.com/charmbracelet/x/ansi" +) + +// NewWriter creates a new color profile writer that downgrades color sequences +// based on the detected color profile. +// +// If environ is nil, it will use os.Environ() to get the environment variables. +// +// It queries the given writer to determine if it supports ANSI escape codes. +// If it does, along with the given environment variables, it will determine +// the appropriate color profile to use for color formatting. +// +// This respects the NO_COLOR, CLICOLOR, and CLICOLOR_FORCE environment variables. +func NewWriter(w io.Writer, environ []string) *Writer { + return &Writer{ + Forward: w, + Profile: Detect(w, environ), + } +} + +// Writer represents a color profile writer that writes ANSI sequences to the +// underlying writer. +type Writer struct { + Forward io.Writer + Profile Profile +} + +// Write writes the given text to the underlying writer. +func (w *Writer) Write(p []byte) (int, error) { + switch w.Profile { + case TrueColor: + return w.Forward.Write(p) + case NoTTY: + return io.WriteString(w.Forward, ansi.Strip(string(p))) + default: + return w.downsample(p) + } +} + +// downsample downgrades the given text to the appropriate color profile. +func (w *Writer) downsample(p []byte) (int, error) { + var buf bytes.Buffer + var state byte + + parser := ansi.GetParser() + defer ansi.PutParser(parser) + + for len(p) > 0 { + parser.Reset() + seq, _, read, newState := ansi.DecodeSequence(p, state, parser) + + switch { + case ansi.HasCsiPrefix(seq) && parser.Command() == 'm': + handleSgr(w, parser, &buf) + default: + // If we're not a style SGR sequence, just write the bytes. + if n, err := buf.Write(seq); err != nil { + return n, err + } + } + + p = p[read:] + state = newState + } + + return w.Forward.Write(buf.Bytes()) +} + +// WriteString writes the given text to the underlying writer. +func (w *Writer) WriteString(s string) (n int, err error) { + return w.Write([]byte(s)) +} + +func handleSgr(w *Writer, p *ansi.Parser, buf *bytes.Buffer) { + var style ansi.Style + params := p.Params() + for i := 0; i < len(params); i++ { + param := params[i] + + switch param := param.Param(0); param { + case 0: + // SGR default parameter is 0. We use an empty string to reduce the + // number of bytes written to the buffer. + style = append(style, "") + case 30, 31, 32, 33, 34, 35, 36, 37: // 8-bit foreground color + if w.Profile < ANSI { + continue + } + style = style.ForegroundColor( + w.Profile.Convert(ansi.BasicColor(param - 30))) //nolint:gosec + case 38: // 16 or 24-bit foreground color + var c color.Color + if n := ansi.ReadStyleColor(params[i:], &c); n > 0 { + i += n - 1 + } + if w.Profile < ANSI { + continue + } + style = style.ForegroundColor(w.Profile.Convert(c)) + case 39: // default foreground color + if w.Profile < ANSI { + continue + } + style = style.DefaultForegroundColor() + case 40, 41, 42, 43, 44, 45, 46, 47: // 8-bit background color + if w.Profile < ANSI { + continue + } + style = style.BackgroundColor( + w.Profile.Convert(ansi.BasicColor(param - 40))) //nolint:gosec + case 48: // 16 or 24-bit background color + var c color.Color + if n := ansi.ReadStyleColor(params[i:], &c); n > 0 { + i += n - 1 + } + if w.Profile < ANSI { + continue + } + style = style.BackgroundColor(w.Profile.Convert(c)) + case 49: // default background color + if w.Profile < ANSI { + continue + } + style = style.DefaultBackgroundColor() + case 58: // 16 or 24-bit underline color + var c color.Color + if n := ansi.ReadStyleColor(params[i:], &c); n > 0 { + i += n - 1 + } + if w.Profile < ANSI { + continue + } + style = style.UnderlineColor(w.Profile.Convert(c)) + case 59: // default underline color + if w.Profile < ANSI { + continue + } + style = style.DefaultUnderlineColor() + case 90, 91, 92, 93, 94, 95, 96, 97: // 8-bit bright foreground color + if w.Profile < ANSI { + continue + } + style = style.ForegroundColor( + w.Profile.Convert(ansi.BasicColor(param - 90 + 8))) //nolint:gosec + case 100, 101, 102, 103, 104, 105, 106, 107: // 8-bit bright background color + if w.Profile < ANSI { + continue + } + style = style.BackgroundColor( + w.Profile.Convert(ansi.BasicColor(param - 100 + 8))) //nolint:gosec + default: + // If this is not a color attribute, just append it to the style. + style = append(style, strconv.Itoa(param)) + } + } + + _, _ = buf.WriteString(style.String()) +} diff --git a/vendor/github.com/charmbracelet/lipgloss/.gitignore b/vendor/github.com/charmbracelet/lipgloss/.gitignore index 53e1c2b7..db482015 100644 --- a/vendor/github.com/charmbracelet/lipgloss/.gitignore +++ b/vendor/github.com/charmbracelet/lipgloss/.gitignore @@ -1 +1,2 @@ ssh_example_ed25519* +dist/ diff --git a/vendor/github.com/charmbracelet/lipgloss/.golangci.yml b/vendor/github.com/charmbracelet/lipgloss/.golangci.yml index d6789e01..90c5c08b 100644 --- a/vendor/github.com/charmbracelet/lipgloss/.golangci.yml +++ b/vendor/github.com/charmbracelet/lipgloss/.golangci.yml @@ -15,10 +15,22 @@ issues: linters: enable: - bodyclose + - exhaustive + - goconst + - godot + - godox - gofumpt - goimports + - gomoddirectives + - goprintffuncname - gosec + - misspell + - nakedret + - nestif - nilerr + - noctx + - nolintlint + - prealloc - revive - rowserrcheck - sqlclosecheck @@ -26,3 +38,4 @@ linters: - unconvert - unparam - whitespace + - wrapcheck diff --git a/vendor/github.com/charmbracelet/lipgloss/.goreleaser.yml b/vendor/github.com/charmbracelet/lipgloss/.goreleaser.yml index c61970e0..3353d020 100644 --- a/vendor/github.com/charmbracelet/lipgloss/.goreleaser.yml +++ b/vendor/github.com/charmbracelet/lipgloss/.goreleaser.yml @@ -1,5 +1,5 @@ +# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json +version: 2 includes: - from_url: url: charmbracelet/meta/main/goreleaser-lib.yaml -# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json - diff --git a/vendor/github.com/charmbracelet/lipgloss/README.md b/vendor/github.com/charmbracelet/lipgloss/README.md index f171e7d0..cee2371c 100644 --- a/vendor/github.com/charmbracelet/lipgloss/README.md +++ b/vendor/github.com/charmbracelet/lipgloss/README.md @@ -10,7 +10,7 @@ Style definitions for nice terminal layouts. Built with TUIs in mind. -![Lip Gloss example](https://github.com/user-attachments/assets/99c5c015-551b-4897-8cd1-bcaafa0aad5a) +![Lip Gloss example](https://github.com/user-attachments/assets/7950b1c1-e0e3-427e-8e7d-6f7f6ad17ca7) Lip Gloss takes an expressive, declarative approach to terminal rendering. Users familiar with CSS will feel at home with Lip Gloss. @@ -425,17 +425,28 @@ rows := [][]string{ Use the table package to style and render the table. ```go +var ( + purple = lipgloss.Color("99") + gray = lipgloss.Color("245") + lightGray = lipgloss.Color("241") + + headerStyle = lipgloss.NewStyle().Foreground(purple).Bold(true).Align(lipgloss.Center) + cellStyle = lipgloss.NewStyle().Padding(0, 1).Width(14) + oddRowStyle = cellStyle.Foreground(gray) + evenRowStyle = cellStyle.Foreground(lightGray) +) + t := table.New(). Border(lipgloss.NormalBorder()). - BorderStyle(lipgloss.NewStyle().Foreground(lipgloss.Color("99"))). + BorderStyle(lipgloss.NewStyle().Foreground(purple)). StyleFunc(func(row, col int) lipgloss.Style { switch { - case row == 0: - return HeaderStyle + case row == table.HeaderRow: + return headerStyle case row%2 == 0: - return EvenRowStyle + return evenRowStyle default: - return OddRowStyle + return oddRowStyle } }). Headers("LANGUAGE", "FORMAL", "INFORMAL"). @@ -453,6 +464,45 @@ fmt.Println(t) ![Table Example](https://github.com/charmbracelet/lipgloss/assets/42545625/6e4b70c4-f494-45da-a467-bdd27df30d5d) +> [!WARNING] +> Table `Rows` need to be declared before `Offset` otherwise it does nothing. + +### Table Borders + +There are helpers to generate tables in markdown or ASCII style: + +#### Markdown Table + +```go +table.New().Border(lipgloss.MarkdownBorder()).BorderTop(false).BorderBottom(false) +``` + +``` +| LANGUAGE | FORMAL | INFORMAL | +|----------|--------------|-----------| +| Chinese | Nǐn hǎo | Nǐ hǎo | +| French | Bonjour | Salut | +| Russian | Zdravstvuyte | Privet | +| Spanish | Hola | ¿Qué tal? | +``` + +#### ASCII Table + +```go +table.New().Border(lipgloss.ASCIIBorder()) +``` + +``` ++----------+--------------+-----------+ +| LANGUAGE | FORMAL | INFORMAL | ++----------+--------------+-----------+ +| Chinese | Nǐn hǎo | Nǐ hǎo | +| French | Bonjour | Salut | +| Russian | Zdravstvuyte | Privet | +| Spanish | Hola | ¿Qué tal? | ++----------+--------------+-----------+ +``` + For more on tables see [the docs](https://pkg.go.dev/github.com/charmbracelet/lipgloss?tab=doc) and [examples](https://github.com/charmbracelet/lipgloss/tree/master/examples/table). ## Rendering Lists diff --git a/vendor/github.com/charmbracelet/lipgloss/Taskfile.yaml b/vendor/github.com/charmbracelet/lipgloss/Taskfile.yaml new file mode 100644 index 00000000..0b4a7711 --- /dev/null +++ b/vendor/github.com/charmbracelet/lipgloss/Taskfile.yaml @@ -0,0 +1,19 @@ +# https://taskfile.dev + +version: '3' + +tasks: + lint: + desc: Run base linters + cmds: + - golangci-lint run + + test: + desc: Run tests + cmds: + - go test ./... {{.CLI_ARGS}} + + test:table: + desc: Run table tests + cmds: + - go test ./table {{.CLI_ARGS}} diff --git a/vendor/github.com/charmbracelet/lipgloss/align.go b/vendor/github.com/charmbracelet/lipgloss/align.go index 805d1e0d..ce654b23 100644 --- a/vendor/github.com/charmbracelet/lipgloss/align.go +++ b/vendor/github.com/charmbracelet/lipgloss/align.go @@ -30,8 +30,8 @@ func alignTextHorizontal(str string, pos Position, width int, style *termenv.Sty l = s + l case Center: // Note: remainder goes on the right. - left := shortAmount / 2 //nolint:gomnd - right := left + shortAmount%2 //nolint:gomnd + left := shortAmount / 2 //nolint:mnd + right := left + shortAmount%2 //nolint:mnd leftSpaces := strings.Repeat(" ", left) rightSpaces := strings.Repeat(" ", right) @@ -69,7 +69,7 @@ func alignTextVertical(str string, pos Position, height int, _ *termenv.Style) s case Top: return str + strings.Repeat("\n", height-strHeight) case Center: - topPadding, bottomPadding := (height-strHeight)/2, (height-strHeight)/2 //nolint:gomnd + topPadding, bottomPadding := (height-strHeight)/2, (height-strHeight)/2 //nolint:mnd if strHeight+topPadding+bottomPadding > height { topPadding-- } else if strHeight+topPadding+bottomPadding < height { diff --git a/vendor/github.com/charmbracelet/lipgloss/borders.go b/vendor/github.com/charmbracelet/lipgloss/borders.go index deb6b35a..b36f8743 100644 --- a/vendor/github.com/charmbracelet/lipgloss/borders.go +++ b/vendor/github.com/charmbracelet/lipgloss/borders.go @@ -100,14 +100,19 @@ var ( } blockBorder = Border{ - Top: "█", - Bottom: "█", - Left: "█", - Right: "█", - TopLeft: "█", - TopRight: "█", - BottomLeft: "█", - BottomRight: "█", + Top: "█", + Bottom: "█", + Left: "█", + Right: "█", + TopLeft: "█", + TopRight: "█", + BottomLeft: "█", + BottomRight: "█", + MiddleLeft: "█", + MiddleRight: "█", + Middle: "█", + MiddleTop: "█", + MiddleBottom: "█", } outerHalfBlockBorder = Border{ @@ -179,6 +184,38 @@ var ( MiddleTop: " ", MiddleBottom: " ", } + + markdownBorder = Border{ + Top: "-", + Bottom: "-", + Left: "|", + Right: "|", + TopLeft: "|", + TopRight: "|", + BottomLeft: "|", + BottomRight: "|", + MiddleLeft: "|", + MiddleRight: "|", + Middle: "|", + MiddleTop: "|", + MiddleBottom: "|", + } + + asciiBorder = Border{ + Top: "-", + Bottom: "-", + Left: "|", + Right: "|", + TopLeft: "+", + TopRight: "+", + BottomLeft: "+", + BottomRight: "+", + MiddleLeft: "+", + MiddleRight: "+", + Middle: "+", + MiddleTop: "+", + MiddleBottom: "+", + } ) // NormalBorder returns a standard-type border with a normal weight and 90 @@ -226,13 +263,23 @@ func HiddenBorder() Border { return hiddenBorder } +// MarkdownBorder return a table border in markdown style. +// +// Make sure to disable top and bottom border for the best result. This will +// ensure that the output is valid markdown. +// +// table.New().Border(lipgloss.MarkdownBorder()).BorderTop(false).BorderBottom(false) +func MarkdownBorder() Border { + return markdownBorder +} + +// ASCIIBorder returns a table border with ASCII characters. +func ASCIIBorder() Border { + return asciiBorder +} + func (s Style) applyBorder(str string) string { var ( - topSet = s.isSet(borderTopKey) - rightSet = s.isSet(borderRightKey) - bottomSet = s.isSet(borderBottomKey) - leftSet = s.isSet(borderLeftKey) - border = s.getBorderStyle() hasTop = s.getAsBool(borderTopKey, false) hasRight = s.getAsBool(borderRightKey, false) @@ -252,7 +299,7 @@ func (s Style) applyBorder(str string) string { // If a border is set and no sides have been specifically turned on or off // render borders on all sides. - if border != noBorder && !(topSet || rightSet || bottomSet || leftSet) { + if s.implicitBorders() { hasTop = true hasRight = true hasBottom = true diff --git a/vendor/github.com/charmbracelet/lipgloss/color.go b/vendor/github.com/charmbracelet/lipgloss/color.go index 5dfb3cfe..6caf3a3d 100644 --- a/vendor/github.com/charmbracelet/lipgloss/color.go +++ b/vendor/github.com/charmbracelet/lipgloss/color.go @@ -35,7 +35,7 @@ func (NoColor) color(*Renderer) termenv.Color { // // Deprecated. func (n NoColor) RGBA() (r, g, b, a uint32) { - return 0x0, 0x0, 0x0, 0xFFFF //nolint:gomnd + return 0x0, 0x0, 0x0, 0xFFFF //nolint:mnd } // Color specifies a color by hex or ANSI value. For example: diff --git a/vendor/github.com/charmbracelet/lipgloss/get.go b/vendor/github.com/charmbracelet/lipgloss/get.go index 9c2f06fe..422b4ce9 100644 --- a/vendor/github.com/charmbracelet/lipgloss/get.go +++ b/vendor/github.com/charmbracelet/lipgloss/get.go @@ -300,7 +300,7 @@ func (s Style) GetBorderTopWidth() int { // runes of varying widths, the widest rune is returned. If no border exists on // the top edge, 0 is returned. func (s Style) GetBorderTopSize() int { - if !s.getAsBool(borderTopKey, false) { + if !s.getAsBool(borderTopKey, false) && !s.implicitBorders() { return 0 } return s.getBorderStyle().GetTopSize() @@ -310,7 +310,7 @@ func (s Style) GetBorderTopSize() int { // runes of varying widths, the widest rune is returned. If no border exists on // the left edge, 0 is returned. func (s Style) GetBorderLeftSize() int { - if !s.getAsBool(borderLeftKey, false) { + if !s.getAsBool(borderLeftKey, false) && !s.implicitBorders() { return 0 } return s.getBorderStyle().GetLeftSize() @@ -320,7 +320,7 @@ func (s Style) GetBorderLeftSize() int { // contain runes of varying widths, the widest rune is returned. If no border // exists on the left edge, 0 is returned. func (s Style) GetBorderBottomSize() int { - if !s.getAsBool(borderBottomKey, false) { + if !s.getAsBool(borderBottomKey, false) && !s.implicitBorders() { return 0 } return s.getBorderStyle().GetBottomSize() @@ -330,7 +330,7 @@ func (s Style) GetBorderBottomSize() int { // contain runes of varying widths, the widest rune is returned. If no border // exists on the right edge, 0 is returned. func (s Style) GetBorderRightSize() int { - if !s.getAsBool(borderRightKey, false) { + if !s.getAsBool(borderRightKey, false) && !s.implicitBorders() { return 0 } return s.getBorderStyle().GetRightSize() @@ -519,6 +519,20 @@ func (s Style) getBorderStyle() Border { return s.borderStyle } +// Returns whether or not the style has implicit borders. This happens when +// a border style has been set but no border sides have been explicitly turned +// on or off. +func (s Style) implicitBorders() bool { + var ( + borderStyle = s.getBorderStyle() + topSet = s.isSet(borderTopKey) + rightSet = s.isSet(borderRightKey) + bottomSet = s.isSet(borderBottomKey) + leftSet = s.isSet(borderLeftKey) + ) + return borderStyle != noBorder && !(topSet || rightSet || bottomSet || leftSet) +} + func (s Style) getAsTransform(propKey) func(string) string { if !s.isSet(transformKey) { return nil diff --git a/vendor/github.com/charmbracelet/lipgloss/ranges.go b/vendor/github.com/charmbracelet/lipgloss/ranges.go new file mode 100644 index 00000000..d1716998 --- /dev/null +++ b/vendor/github.com/charmbracelet/lipgloss/ranges.go @@ -0,0 +1,48 @@ +package lipgloss + +import ( + "strings" + + "github.com/charmbracelet/x/ansi" +) + +// StyleRanges allows to, given a string, style ranges of it differently. +// The function will take into account existing styles. +// Ranges should not overlap. +func StyleRanges(s string, ranges ...Range) string { + if len(ranges) == 0 { + return s + } + + var buf strings.Builder + lastIdx := 0 + stripped := ansi.Strip(s) + + // Use Truncate and TruncateLeft to style match.MatchedIndexes without + // losing the original option style: + for _, rng := range ranges { + // Add the text before this match + if rng.Start > lastIdx { + buf.WriteString(ansi.Cut(s, lastIdx, rng.Start)) + } + // Add the matched range with its highlight + buf.WriteString(rng.Style.Render(ansi.Cut(stripped, rng.Start, rng.End))) + lastIdx = rng.End + } + + // Add any remaining text after the last match + buf.WriteString(ansi.TruncateLeft(s, lastIdx, "")) + + return buf.String() +} + +// NewRange returns a range that can be used with [StyleRanges]. +func NewRange(start, end int, style Style) Range { + return Range{start, end, style} +} + +// Range to be used with [StyleRanges]. +type Range struct { + Start, End int + Style Style +} diff --git a/vendor/github.com/charmbracelet/lipgloss/set.go b/vendor/github.com/charmbracelet/lipgloss/set.go index ed6e272c..fde38fae 100644 --- a/vendor/github.com/charmbracelet/lipgloss/set.go +++ b/vendor/github.com/charmbracelet/lipgloss/set.go @@ -710,19 +710,19 @@ func whichSidesInt(i ...int) (top, right, bottom, left int, ok bool) { left = i[0] right = i[0] ok = true - case 2: //nolint:gomnd + case 2: //nolint:mnd top = i[0] bottom = i[0] left = i[1] right = i[1] ok = true - case 3: //nolint:gomnd + case 3: //nolint:mnd top = i[0] left = i[1] right = i[1] bottom = i[2] ok = true - case 4: //nolint:gomnd + case 4: //nolint:mnd top = i[0] right = i[1] bottom = i[2] @@ -743,19 +743,19 @@ func whichSidesBool(i ...bool) (top, right, bottom, left bool, ok bool) { left = i[0] right = i[0] ok = true - case 2: //nolint:gomnd + case 2: //nolint:mnd top = i[0] bottom = i[0] left = i[1] right = i[1] ok = true - case 3: //nolint:gomnd + case 3: //nolint:mnd top = i[0] left = i[1] right = i[1] bottom = i[2] ok = true - case 4: //nolint:gomnd + case 4: //nolint:mnd top = i[0] right = i[1] bottom = i[2] @@ -776,19 +776,19 @@ func whichSidesColor(i ...TerminalColor) (top, right, bottom, left TerminalColor left = i[0] right = i[0] ok = true - case 2: //nolint:gomnd + case 2: //nolint:mnd top = i[0] bottom = i[0] left = i[1] right = i[1] ok = true - case 3: //nolint:gomnd + case 3: //nolint:mnd top = i[0] left = i[1] right = i[1] bottom = i[2] ok = true - case 4: //nolint:gomnd + case 4: //nolint:mnd top = i[0] right = i[1] bottom = i[2] diff --git a/vendor/github.com/charmbracelet/lipgloss/style.go b/vendor/github.com/charmbracelet/lipgloss/style.go index 0eb5c016..59fa3ab2 100644 --- a/vendor/github.com/charmbracelet/lipgloss/style.go +++ b/vendor/github.com/charmbracelet/lipgloss/style.go @@ -5,6 +5,7 @@ import ( "unicode" "github.com/charmbracelet/x/ansi" + "github.com/charmbracelet/x/cellbuf" "github.com/muesli/termenv" ) @@ -364,7 +365,7 @@ func (s Style) Render(strs ...string) string { // Word wrap if !inline && width > 0 { wrapAt := width - leftPadding - rightPadding - str = ansi.Wrap(str, wrapAt, "") + str = cellbuf.Wrap(str, wrapAt, "") } // Render core text @@ -431,7 +432,7 @@ func (s Style) Render(strs ...string) string { { numLines := strings.Count(str, "\n") - if !(numLines == 0 && width == 0) { + if numLines != 0 || width != 0 { var st *termenv.Style if colorWhitespace || styleWhitespace { st = &teWhitespace diff --git a/vendor/github.com/charmbracelet/lipgloss/table/resizing.go b/vendor/github.com/charmbracelet/lipgloss/table/resizing.go new file mode 100644 index 00000000..2bbacfc7 --- /dev/null +++ b/vendor/github.com/charmbracelet/lipgloss/table/resizing.go @@ -0,0 +1,418 @@ +package table + +import ( + "math" + "strings" + + "github.com/charmbracelet/lipgloss" + "github.com/charmbracelet/x/ansi" +) + +// resize resizes the table to fit the specified width. +// +// Given a user defined table width, we must ensure the table is exactly that +// width. This must account for all borders, column, separators, and column +// data. +// +// In the case where the table is narrower than the specified table width, +// we simply expand the columns evenly to fit the width. +// For example, a table with 3 columns takes up 50 characters total, and the +// width specified is 80, we expand each column by 10 characters, adding 30 +// to the total width. +// +// In the case where the table is wider than the specified table width, we +// _could_ simply shrink the columns evenly but this would result in data +// being truncated (perhaps unnecessarily). The naive approach could result +// in very poor cropping of the table data. So, instead of shrinking columns +// evenly, we calculate the median non-whitespace length of each column, and +// shrink the columns based on the largest median. +// +// For example, +// +// ┌──────┬───────────────┬──────────┐ +// │ Name │ Age of Person │ Location │ +// ├──────┼───────────────┼──────────┤ +// │ Kini │ 40 │ New York │ +// │ Eli │ 30 │ London │ +// │ Iris │ 20 │ Paris │ +// └──────┴───────────────┴──────────┘ +// +// Median non-whitespace length vs column width of each column: +// +// Name: 4 / 5 +// Age of Person: 2 / 15 +// Location: 6 / 10 +// +// The biggest difference is 15 - 2, so we can shrink the 2nd column by 13. +func (t *Table) resize() { + hasHeaders := len(t.headers) > 0 + rows := dataToMatrix(t.data) + r := newResizer(t.width, t.height, t.headers, rows) + r.wrap = t.wrap + r.borderColumn = t.borderColumn + r.yPaddings = make([][]int, len(r.allRows)) + + var allRows [][]string + if hasHeaders { + allRows = append([][]string{t.headers}, rows...) + } else { + allRows = rows + } + + r.rowHeights = r.defaultRowHeights() + + for i, row := range allRows { + r.yPaddings[i] = make([]int, len(row)) + + for j := range row { + column := &r.columns[j] + + // Making sure we're passing the right index to `styleFunc`. The header row should be `-1` and + // the others should start from `0`. + rowIndex := i + if hasHeaders { + rowIndex-- + } + style := t.styleFunc(rowIndex, j) + + topMargin, rightMargin, bottomMargin, leftMargin := style.GetMargin() + topPadding, rightPadding, bottomPadding, leftPadding := style.GetPadding() + + totalHorizontalPadding := leftMargin + rightMargin + leftPadding + rightPadding + column.xPadding = max(column.xPadding, totalHorizontalPadding) + column.fixedWidth = max(column.fixedWidth, style.GetWidth()) + + r.rowHeights[i] = max(r.rowHeights[i], style.GetHeight()) + + totalVerticalPadding := topMargin + bottomMargin + topPadding + bottomPadding + r.yPaddings[i][j] = totalVerticalPadding + } + } + + // A table width wasn't specified. In this case, detect according to + // content width. + if r.tableWidth <= 0 { + r.tableWidth = r.detectTableWidth() + } + + t.widths, t.heights = r.optimizedWidths() +} + +// resizerColumn is a column in the resizer. +type resizerColumn struct { + index int + min int + max int + median int + rows [][]string + xPadding int // horizontal padding + fixedWidth int +} + +// resizer is a table resizer. +type resizer struct { + tableWidth int + tableHeight int + headers []string + allRows [][]string + rowHeights []int + columns []resizerColumn + + wrap bool + borderColumn bool + yPaddings [][]int // vertical paddings +} + +// newResizer creates a new resizer. +func newResizer(tableWidth, tableHeight int, headers []string, rows [][]string) *resizer { + r := &resizer{ + tableWidth: tableWidth, + tableHeight: tableHeight, + headers: headers, + } + + if len(headers) > 0 { + r.allRows = append([][]string{headers}, rows...) + } else { + r.allRows = rows + } + + for _, row := range r.allRows { + for i, cell := range row { + cellLen := lipgloss.Width(cell) + + // Header or first row. Just add as is. + if len(r.columns) <= i { + r.columns = append(r.columns, resizerColumn{ + index: i, + min: cellLen, + max: cellLen, + median: cellLen, + }) + continue + } + + r.columns[i].rows = append(r.columns[i].rows, row) + r.columns[i].min = min(r.columns[i].min, cellLen) + r.columns[i].max = max(r.columns[i].max, cellLen) + } + } + for j := range r.columns { + widths := make([]int, len(r.columns[j].rows)) + for i, row := range r.columns[j].rows { + widths[i] = lipgloss.Width(row[j]) + } + r.columns[j].median = median(widths) + } + + return r +} + +// optimizedWidths returns the optimized column widths and row heights. +func (r *resizer) optimizedWidths() (colWidths, rowHeights []int) { + if r.maxTotal() <= r.tableWidth { + return r.expandTableWidth() + } + return r.shrinkTableWidth() +} + +// detectTableWidth detects the table width. +func (r *resizer) detectTableWidth() int { + return r.maxCharCount() + r.totalHorizontalPadding() + r.totalHorizontalBorder() +} + +// expandTableWidth expands the table width. +func (r *resizer) expandTableWidth() (colWidths, rowHeights []int) { + colWidths = r.maxColumnWidths() + + for { + totalWidth := sum(colWidths) + r.totalHorizontalBorder() + if totalWidth >= r.tableWidth { + break + } + + shorterColumnIndex := 0 + shorterColumnWidth := math.MaxInt32 + + for j, width := range colWidths { + if width == r.columns[j].fixedWidth { + continue + } + if width < shorterColumnWidth { + shorterColumnWidth = width + shorterColumnIndex = j + } + } + + colWidths[shorterColumnIndex]++ + } + + rowHeights = r.expandRowHeigths(colWidths) + return +} + +// shrinkTableWidth shrinks the table width. +func (r *resizer) shrinkTableWidth() (colWidths, rowHeights []int) { + colWidths = r.maxColumnWidths() + + // Cut width of columns that are way too big. + shrinkBiggestColumns := func(veryBigOnly bool) { + for { + totalWidth := sum(colWidths) + r.totalHorizontalBorder() + if totalWidth <= r.tableWidth { + break + } + + bigColumnIndex := -math.MaxInt32 + bigColumnWidth := -math.MaxInt32 + + for j, width := range colWidths { + if width == r.columns[j].fixedWidth { + continue + } + if veryBigOnly { + if width >= (r.tableWidth/2) && width > bigColumnWidth { //nolint:mnd + bigColumnWidth = width + bigColumnIndex = j + } + } else { + if width > bigColumnWidth { + bigColumnWidth = width + bigColumnIndex = j + } + } + } + + if bigColumnIndex < 0 || colWidths[bigColumnIndex] == 0 { + break + } + colWidths[bigColumnIndex]-- + } + } + + // Cut width of columns that differ the most from the median. + shrinkToMedian := func() { + for { + totalWidth := sum(colWidths) + r.totalHorizontalBorder() + if totalWidth <= r.tableWidth { + break + } + + biggestDiffToMedian := -math.MaxInt32 + biggestDiffToMedianIndex := -math.MaxInt32 + + for j, width := range colWidths { + if width == r.columns[j].fixedWidth { + continue + } + diffToMedian := width - r.columns[j].median + if diffToMedian > 0 && diffToMedian > biggestDiffToMedian { + biggestDiffToMedian = diffToMedian + biggestDiffToMedianIndex = j + } + } + + if biggestDiffToMedianIndex <= 0 || colWidths[biggestDiffToMedianIndex] == 0 { + break + } + colWidths[biggestDiffToMedianIndex]-- + } + } + + shrinkBiggestColumns(true) + shrinkToMedian() + shrinkBiggestColumns(false) + + return colWidths, r.expandRowHeigths(colWidths) +} + +// expandRowHeigths expands the row heights. +func (r *resizer) expandRowHeigths(colWidths []int) (rowHeights []int) { + rowHeights = r.defaultRowHeights() + if !r.wrap { + return rowHeights + } + for i, row := range r.allRows { + for j, cell := range row { + height := r.detectContentHeight(cell, colWidths[j]-r.xPaddingForCol(j)) + r.xPaddingForCell(i, j) + if height > rowHeights[i] { + rowHeights[i] = height + } + } + } + return +} + +// defaultRowHeights returns the default row heights. +func (r *resizer) defaultRowHeights() (rowHeights []int) { + rowHeights = make([]int, len(r.allRows)) + for i := range rowHeights { + if i < len(r.rowHeights) { + rowHeights[i] = r.rowHeights[i] + } + if rowHeights[i] < 1 { + rowHeights[i] = 1 + } + } + return +} + +// maxColumnWidths returns the maximum column widths. +func (r *resizer) maxColumnWidths() []int { + maxColumnWidths := make([]int, len(r.columns)) + for i, col := range r.columns { + if col.fixedWidth > 0 { + maxColumnWidths[i] = col.fixedWidth + } else { + maxColumnWidths[i] = col.max + r.xPaddingForCol(col.index) + } + } + return maxColumnWidths +} + +// columnCount returns the column count. +func (r *resizer) columnCount() int { + return len(r.columns) +} + +// maxCharCount returns the maximum character count. +func (r *resizer) maxCharCount() int { + var count int + for _, col := range r.columns { + if col.fixedWidth > 0 { + count += col.fixedWidth - r.xPaddingForCol(col.index) + } else { + count += col.max + } + } + return count +} + +// maxTotal returns the maximum total width. +func (r *resizer) maxTotal() (maxTotal int) { + for j, column := range r.columns { + if column.fixedWidth > 0 { + maxTotal += column.fixedWidth + } else { + maxTotal += column.max + r.xPaddingForCol(j) + } + } + return +} + +// totalHorizontalPadding returns the total padding. +func (r *resizer) totalHorizontalPadding() (totalHorizontalPadding int) { + for _, col := range r.columns { + totalHorizontalPadding += col.xPadding + } + return +} + +// xPaddingForCol returns the horizontal padding for a column. +func (r *resizer) xPaddingForCol(j int) int { + if j >= len(r.columns) { + return 0 + } + return r.columns[j].xPadding +} + +// xPaddingForCell returns the horizontal padding for a cell. +func (r *resizer) xPaddingForCell(i, j int) int { + if i >= len(r.yPaddings) || j >= len(r.yPaddings[i]) { + return 0 + } + return r.yPaddings[i][j] +} + +// totalHorizontalBorder returns the total border. +func (r *resizer) totalHorizontalBorder() int { + return (r.columnCount() * r.borderPerCell()) + r.extraBorder() +} + +// borderPerCell returns number of border chars per cell. +func (r *resizer) borderPerCell() int { + if r.borderColumn { + return 1 + } + return 0 +} + +// extraBorder returns the number of the extra border char at the end of the table. +func (r *resizer) extraBorder() int { + if r.borderColumn { + return 1 + } + return 0 +} + +// detectContentHeight detects the content height. +func (r *resizer) detectContentHeight(content string, width int) (height int) { + if width == 0 { + return 1 + } + content = strings.ReplaceAll(content, "\r\n", "\n") + for _, line := range strings.Split(content, "\n") { + height += strings.Count(ansi.Wrap(line, width, ""), "\n") + 1 + } + return +} diff --git a/vendor/github.com/charmbracelet/lipgloss/table/rows.go b/vendor/github.com/charmbracelet/lipgloss/table/rows.go index 051ec114..a48bc794 100644 --- a/vendor/github.com/charmbracelet/lipgloss/table/rows.go +++ b/vendor/github.com/charmbracelet/lipgloss/table/rows.go @@ -111,3 +111,19 @@ func (m *Filter) Rows() int { return j } + +// dataToMatrix converts an object that implements the Data interface to a table. +func dataToMatrix(data Data) (rows [][]string) { + numRows := data.Rows() + numCols := data.Columns() + rows = make([][]string, numRows) + + for i := 0; i < numRows; i++ { + rows[i] = make([]string, numCols) + + for j := 0; j < numCols; j++ { + rows[i][j] = data.At(i, j) + } + } + return +} diff --git a/vendor/github.com/charmbracelet/lipgloss/table/table.go b/vendor/github.com/charmbracelet/lipgloss/table/table.go index 2a970ffc..1aae4aeb 100644 --- a/vendor/github.com/charmbracelet/lipgloss/table/table.go +++ b/vendor/github.com/charmbracelet/lipgloss/table/table.go @@ -61,6 +61,7 @@ type Table struct { height int useManualHeight bool offset int + wrap bool // widths tracks the width of each column. widths []int @@ -83,6 +84,7 @@ func New() *Table { borderLeft: true, borderRight: true, borderTop: true, + wrap: true, data: NewStringData(), } } @@ -209,11 +211,20 @@ func (t *Table) Height(h int) *Table { } // Offset sets the table rendering offset. +// +// Warning: you may declare Offset only after setting Rows. Otherwise it will be +// ignored. func (t *Table) Offset(o int) *Table { t.offset = o return t } +// Wrap dictates whether or not the table content should wrap. +func (t *Table) Wrap(w bool) *Table { + t.wrap = w + return t +} + // String returns the table as a string. func (t *Table) String() string { hasHeaders := len(t.headers) > 0 @@ -231,120 +242,8 @@ func (t *Table) String() string { } } - // Initialize the widths. - t.widths = make([]int, max(len(t.headers), t.data.Columns())) - t.heights = make([]int, btoi(hasHeaders)+t.data.Rows()) - - // The style function may affect width of the table. It's possible to set - // the StyleFunc after the headers and rows. Update the widths for a final - // time. - for i, cell := range t.headers { - t.widths[i] = max(t.widths[i], lipgloss.Width(t.style(HeaderRow, i).Render(cell))) - t.heights[0] = max(t.heights[0], lipgloss.Height(t.style(HeaderRow, i).Render(cell))) - } - - for r := 0; r < t.data.Rows(); r++ { - for i := 0; i < t.data.Columns(); i++ { - cell := t.data.At(r, i) - - rendered := t.style(r, i).Render(cell) - t.heights[r+btoi(hasHeaders)] = max(t.heights[r+btoi(hasHeaders)], lipgloss.Height(rendered)) - t.widths[i] = max(t.widths[i], lipgloss.Width(rendered)) - } - } - - // Table Resizing Logic. - // - // Given a user defined table width, we must ensure the table is exactly that - // width. This must account for all borders, column, separators, and column - // data. - // - // In the case where the table is narrower than the specified table width, - // we simply expand the columns evenly to fit the width. - // For example, a table with 3 columns takes up 50 characters total, and the - // width specified is 80, we expand each column by 10 characters, adding 30 - // to the total width. - // - // In the case where the table is wider than the specified table width, we - // _could_ simply shrink the columns evenly but this would result in data - // being truncated (perhaps unnecessarily). The naive approach could result - // in very poor cropping of the table data. So, instead of shrinking columns - // evenly, we calculate the median non-whitespace length of each column, and - // shrink the columns based on the largest median. - // - // For example, - // ┌──────┬───────────────┬──────────┐ - // │ Name │ Age of Person │ Location │ - // ├──────┼───────────────┼──────────┤ - // │ Kini │ 40 │ New York │ - // │ Eli │ 30 │ London │ - // │ Iris │ 20 │ Paris │ - // └──────┴───────────────┴──────────┘ - // - // Median non-whitespace length vs column width of each column: - // - // Name: 4 / 5 - // Age of Person: 2 / 15 - // Location: 6 / 10 - // - // The biggest difference is 15 - 2, so we can shrink the 2nd column by 13. - - width := t.computeWidth() - - if width < t.width && t.width > 0 { - // Table is too narrow, expand the columns evenly until it reaches the - // desired width. - var i int - for width < t.width { - t.widths[i]++ - width++ - i = (i + 1) % len(t.widths) - } - } else if width > t.width && t.width > 0 { - // Table is too wide, calculate the median non-whitespace length of each - // column, and shrink the columns based on the largest difference. - columnMedians := make([]int, len(t.widths)) - for c := range t.widths { - trimmedWidth := make([]int, t.data.Rows()) - for r := 0; r < t.data.Rows(); r++ { - renderedCell := t.style(r+btoi(hasHeaders), c).Render(t.data.At(r, c)) - nonWhitespaceChars := lipgloss.Width(strings.TrimRight(renderedCell, " ")) - trimmedWidth[r] = nonWhitespaceChars + 1 - } - - columnMedians[c] = median(trimmedWidth) - } - - // Find the biggest differences between the median and the column width. - // Shrink the columns based on the largest difference. - differences := make([]int, len(t.widths)) - for i := range t.widths { - differences[i] = t.widths[i] - columnMedians[i] - } - - for width > t.width { - index, _ := largest(differences) - if differences[index] < 1 { - break - } - - shrink := min(differences[index], width-t.width) - t.widths[index] -= shrink - width -= shrink - differences[index] = 0 - } - - // Table is still too wide, begin shrinking the columns based on the - // largest column. - for width > t.width { - index, _ := largest(t.widths) - if t.widths[index] < 1 { - break - } - t.widths[index]-- - width-- - } - } + // Do all the sizing calculations for width and height. + t.resize() var sb strings.Builder @@ -393,15 +292,6 @@ func (t *Table) String() string { Render(sb.String()) } -// computeWidth computes the width of the table in it's current configuration. -func (t *Table) computeWidth() int { - width := sum(t.widths) + btoi(t.borderLeft) + btoi(t.borderRight) - if t.borderColumn { - width += len(t.widths) - 1 - } - return width -} - // computeHeight computes the height of the table in it's current configuration. func (t *Table) computeHeight() int { hasHeaders := len(t.headers) > 0 @@ -553,13 +443,17 @@ func (t *Table) constructRow(index int, isOverflow bool) string { } cellStyle := t.style(index, c) + if !t.wrap { + length := (cellWidth * height) - cellStyle.GetHorizontalPadding() + cell = ansi.Truncate(cell, length, "…") + } cells = append(cells, cellStyle. // Account for the margins in the cell sizing. Height(height-cellStyle.GetVerticalMargins()). MaxHeight(height). Width(t.widths[c]-cellStyle.GetHorizontalMargins()). MaxWidth(t.widths[c]). - Render(ansi.Truncate(cell, cellWidth*height, "…"))) + Render(cell)) if c < t.data.Columns()-1 && t.borderColumn { cells = append(cells, left) diff --git a/vendor/github.com/charmbracelet/lipgloss/table/util.go b/vendor/github.com/charmbracelet/lipgloss/table/util.go index 4d152aa7..74bcdffe 100644 --- a/vendor/github.com/charmbracelet/lipgloss/table/util.go +++ b/vendor/github.com/charmbracelet/lipgloss/table/util.go @@ -20,7 +20,7 @@ func max(a, b int) int { //nolint:predeclared return b } -// min returns the greater of two integers. +// min returns the smaller of two integers. func min(a, b int) int { //nolint:predeclared if a < b { return a @@ -45,20 +45,8 @@ func median(n []int) int { return 0 } if len(n)%2 == 0 { - h := len(n) / 2 //nolint:gomnd - return (n[h-1] + n[h]) / 2 //nolint:gomnd + h := len(n) / 2 //nolint:mnd + return (n[h-1] + n[h]) / 2 //nolint:mnd } return n[len(n)/2] } - -// largest returns the largest element and it's index from a slice of integers. -func largest(n []int) (int, int) { //nolint:unparam - var largest, index int - for i, e := range n { - if n[i] > n[index] { - largest = e - index = i - } - } - return index, largest -} diff --git a/vendor/github.com/charmbracelet/log/.golangci.yml b/vendor/github.com/charmbracelet/log/.golangci.yml index 8d9f5fe6..90c5c08b 100644 --- a/vendor/github.com/charmbracelet/log/.golangci.yml +++ b/vendor/github.com/charmbracelet/log/.golangci.yml @@ -15,20 +15,27 @@ issues: linters: enable: - bodyclose - - dupl - - exportloopref + - exhaustive - goconst - godot - godox + - gofumpt - goimports + - gomoddirectives - goprintffuncname - gosec - misspell + - nakedret + - nestif + - nilerr + - noctx - nolintlint - prealloc - revive - rowserrcheck - sqlclosecheck + - tparallel - unconvert - unparam - whitespace + - wrapcheck diff --git a/vendor/github.com/charmbracelet/log/json.go b/vendor/github.com/charmbracelet/log/json.go index 5bdc0976..19d4ddd1 100644 --- a/vendor/github.com/charmbracelet/log/json.go +++ b/vendor/github.com/charmbracelet/log/json.go @@ -1,61 +1,151 @@ package log import ( + "bytes" "encoding/json" "fmt" "time" ) func (l *Logger) jsonFormatter(keyvals ...interface{}) { - m := make(map[string]interface{}, len(keyvals)/2) - for i := 0; i < len(keyvals); i += 2 { - switch keyvals[i] { - case TimestampKey: - if t, ok := keyvals[i+1].(time.Time); ok { - m[TimestampKey] = t.Format(l.timeFormat) - } - case LevelKey: - if level, ok := keyvals[i+1].(Level); ok { - m[LevelKey] = level.String() - } - case CallerKey: - if caller, ok := keyvals[i+1].(string); ok { - m[CallerKey] = caller - } - case PrefixKey: - if prefix, ok := keyvals[i+1].(string); ok { - m[PrefixKey] = prefix - } - case MessageKey: - if msg := keyvals[i+1]; msg != nil { - m[MessageKey] = fmt.Sprint(msg) - } + jw := &jsonWriter{w: &l.b} + jw.start() + + i := 0 + for i < len(keyvals) { + switch kv := keyvals[i].(type) { + case slogAttr: + l.jsonFormatterRoot(jw, kv.Key, kv.Value) + i++ default: - var ( - key string - val interface{} - ) - switch k := keyvals[i].(type) { - case fmt.Stringer: - key = k.String() - case error: - key = k.Error() - default: - key = fmt.Sprint(k) + if i+1 < len(keyvals) { + l.jsonFormatterRoot(jw, keyvals[i], keyvals[i+1]) } - switch v := keyvals[i+1].(type) { - case error: - val = v.Error() - case fmt.Stringer: - val = v.String() - default: - val = v - } - m[key] = val + i += 2 } } - e := json.NewEncoder(&l.b) - e.SetEscapeHTML(false) - _ = e.Encode(m) + jw.end() + l.b.WriteRune('\n') +} + +func (l *Logger) jsonFormatterRoot(jw *jsonWriter, key, value any) { + switch key { + case TimestampKey: + if t, ok := value.(time.Time); ok { + jw.objectItem(TimestampKey, t.Format(l.timeFormat)) + } + case LevelKey: + if level, ok := value.(Level); ok { + jw.objectItem(LevelKey, level.String()) + } + case CallerKey: + if caller, ok := value.(string); ok { + jw.objectItem(CallerKey, caller) + } + case PrefixKey: + if prefix, ok := value.(string); ok { + jw.objectItem(PrefixKey, prefix) + } + case MessageKey: + if msg := value; msg != nil { + jw.objectItem(MessageKey, fmt.Sprint(msg)) + } + default: + l.jsonFormatterItem(jw, key, value) + } +} + +func (l *Logger) jsonFormatterItem(jw *jsonWriter, key, value any) { + switch k := key.(type) { + case fmt.Stringer: + jw.objectKey(k.String()) + case error: + jw.objectKey(k.Error()) + default: + jw.objectKey(fmt.Sprint(k)) + } + switch v := value.(type) { + case error: + jw.objectValue(v.Error()) + case slogLogValuer: + l.writeSlogValue(jw, v.LogValue()) + case slogValue: + l.writeSlogValue(jw, v.Resolve()) + case fmt.Stringer: + jw.objectValue(v.String()) + default: + jw.objectValue(v) + } +} + +func (l *Logger) writeSlogValue(jw *jsonWriter, v slogValue) { + switch v.Kind() { //nolint:exhaustive + case slogKindGroup: + jw.start() + for _, attr := range v.Group() { + l.jsonFormatterItem(jw, attr.Key, attr.Value) + } + jw.end() + default: + jw.objectValue(v.Any()) + } +} + +type jsonWriter struct { + w *bytes.Buffer + d int +} + +func (w *jsonWriter) start() { + w.w.WriteRune('{') + w.d = 0 +} + +func (w *jsonWriter) end() { + w.w.WriteRune('}') +} + +func (w *jsonWriter) objectItem(key string, value any) { + w.objectKey(key) + w.objectValue(value) +} + +func (w *jsonWriter) objectKey(key string) { + if w.d > 0 { + w.w.WriteRune(',') + } + w.d++ + + pos := w.w.Len() + err := w.writeEncoded(key) + if err != nil { + w.w.Truncate(pos) + w.w.WriteString(`"invalid key"`) + } + w.w.WriteRune(':') +} + +func (w *jsonWriter) objectValue(value any) { + pos := w.w.Len() + err := w.writeEncoded(value) + if err != nil { + w.w.Truncate(pos) + w.w.WriteString(`"invalid value"`) + } +} + +func (w *jsonWriter) writeEncoded(v any) error { + e := json.NewEncoder(w.w) + e.SetEscapeHTML(false) + if err := e.Encode(v); err != nil { + return fmt.Errorf("failed to encode value: %w", err) + } + + // trailing \n added by json.Encode + b := w.w.Bytes() + if len(b) > 0 && b[len(b)-1] == '\n' { + w.w.Truncate(w.w.Len() - 1) + } + return nil } diff --git a/vendor/github.com/charmbracelet/log/level.go b/vendor/github.com/charmbracelet/log/level.go index cba22970..6876e344 100644 --- a/vendor/github.com/charmbracelet/log/level.go +++ b/vendor/github.com/charmbracelet/log/level.go @@ -8,7 +8,7 @@ import ( ) // Level is a logging level. -type Level int32 +type Level int const ( // DebugLevel is the debug level. @@ -22,12 +22,12 @@ const ( // FatalLevel is the fatal level. FatalLevel Level = 12 // noLevel is used with log.Print. - noLevel Level = math.MaxInt32 + noLevel Level = math.MaxInt ) // String returns the string representation of the level. func (l Level) String() string { - switch l { + switch l { //nolint:exhaustive case DebugLevel: return "debug" case InfoLevel: diff --git a/vendor/github.com/charmbracelet/log/level_121.go b/vendor/github.com/charmbracelet/log/level_121.go deleted file mode 100644 index c602bef6..00000000 --- a/vendor/github.com/charmbracelet/log/level_121.go +++ /dev/null @@ -1,15 +0,0 @@ -//go:build go1.21 -// +build go1.21 - -package log - -import "log/slog" - -// fromSlogLevel converts slog.Level to log.Level. -var fromSlogLevel = map[slog.Level]Level{ - slog.LevelDebug: DebugLevel, - slog.LevelInfo: InfoLevel, - slog.LevelWarn: WarnLevel, - slog.LevelError: ErrorLevel, - slog.Level(12): FatalLevel, -} diff --git a/vendor/github.com/charmbracelet/log/level_no121.go b/vendor/github.com/charmbracelet/log/level_no121.go deleted file mode 100644 index b505c087..00000000 --- a/vendor/github.com/charmbracelet/log/level_no121.go +++ /dev/null @@ -1,15 +0,0 @@ -//go:build !go1.21 -// +build !go1.21 - -package log - -import "golang.org/x/exp/slog" - -// fromSlogLevel converts slog.Level to log.Level. -var fromSlogLevel = map[slog.Level]Level{ - slog.LevelDebug: DebugLevel, - slog.LevelInfo: InfoLevel, - slog.LevelWarn: WarnLevel, - slog.LevelError: ErrorLevel, - slog.Level(12): FatalLevel, -} diff --git a/vendor/github.com/charmbracelet/log/logger.go b/vendor/github.com/charmbracelet/log/logger.go index 2d240601..19ed409d 100644 --- a/vendor/github.com/charmbracelet/log/logger.go +++ b/vendor/github.com/charmbracelet/log/logger.go @@ -30,7 +30,7 @@ type Logger struct { isDiscard uint32 - level int32 + level int64 prefix string timeFunc TimeFunction timeFormat string @@ -59,7 +59,7 @@ func (l *Logger) Log(level Level, msg interface{}, keyvals ...interface{}) { } // check if the level is allowed - if atomic.LoadInt32(&l.level) > int32(level) { + if atomic.LoadInt64(&l.level) > int64(level) { return } @@ -129,6 +129,8 @@ func (l *Logger) handle(level Level, ts time.Time, frames []runtime.Frame, msg i l.logfmtFormatter(kvs...) case JSONFormatter: l.jsonFormatter(kvs...) + case TextFormatter: + fallthrough default: l.textFormatter(kvs...) } @@ -234,7 +236,7 @@ func (l *Logger) GetLevel() Level { func (l *Logger) SetLevel(level Level) { l.mu.Lock() defer l.mu.Unlock() - atomic.StoreInt32(&l.level, int32(level)) + atomic.StoreInt64(&l.level, int64(level)) } // GetPrefix returns the current prefix. @@ -334,7 +336,8 @@ func (l *Logger) With(keyvals ...interface{}) *Logger { sl.b = bytes.Buffer{} sl.mu = &sync.RWMutex{} sl.helpers = &sync.Map{} - sl.fields = append(l.fields, keyvals...) + sl.fields = append(make([]interface{}, 0, len(l.fields)+len(keyvals)), l.fields...) + sl.fields = append(sl.fields, keyvals...) sl.styles = &st return &sl } diff --git a/vendor/github.com/charmbracelet/log/logger_121.go b/vendor/github.com/charmbracelet/log/logger_121.go index 885b6cf7..b5cf9564 100644 --- a/vendor/github.com/charmbracelet/log/logger_121.go +++ b/vendor/github.com/charmbracelet/log/logger_121.go @@ -10,11 +10,20 @@ import ( "sync/atomic" ) +// type aliases for slog. +type ( + slogAttr = slog.Attr + slogValue = slog.Value + slogLogValuer = slog.LogValuer +) + +const slogKindGroup = slog.KindGroup + // Enabled reports whether the logger is enabled for the given level. // // Implements slog.Handler. func (l *Logger) Enabled(_ context.Context, level slog.Level) bool { - return atomic.LoadInt32(&l.level) <= int32(fromSlogLevel[level]) + return atomic.LoadInt64(&l.level) <= int64(level) } // Handle handles the Record. It will only be called if Enabled returns true. @@ -27,13 +36,13 @@ func (l *Logger) Handle(ctx context.Context, record slog.Record) error { fields := make([]interface{}, 0, record.NumAttrs()*2) record.Attrs(func(a slog.Attr) bool { - fields = append(fields, a.Key, a.Value.String()) + fields = append(fields, a.Key, a.Value) return true }) // Get the caller frame using the record's PC. frames := runtime.CallersFrames([]uintptr{record.PC}) frame, _ := frames.Next() - l.handle(fromSlogLevel[record.Level], l.timeFunc(record.Time), []runtime.Frame{frame}, record.Message, fields...) + l.handle(Level(record.Level), l.timeFunc(record.Time), []runtime.Frame{frame}, record.Message, fields...) return nil } diff --git a/vendor/github.com/charmbracelet/log/logger_no121.go b/vendor/github.com/charmbracelet/log/logger_no121.go index aa602d1e..ce8b8a2f 100644 --- a/vendor/github.com/charmbracelet/log/logger_no121.go +++ b/vendor/github.com/charmbracelet/log/logger_no121.go @@ -11,11 +11,20 @@ import ( "golang.org/x/exp/slog" ) +// type alises for slog. +type ( + slogAttr = slog.Attr + slogValue = slog.Value + slogLogValuer = slog.LogValuer +) + +const slogKindGroup = slog.KindGroup + // Enabled reports whether the logger is enabled for the given level. // // Implements slog.Handler. func (l *Logger) Enabled(_ context.Context, level slog.Level) bool { - return atomic.LoadInt32(&l.level) <= int32(fromSlogLevel[level]) + return atomic.LoadInt64(&l.level) <= int64(level) } // Handle handles the Record. It will only be called if Enabled returns true. @@ -24,13 +33,13 @@ func (l *Logger) Enabled(_ context.Context, level slog.Level) bool { func (l *Logger) Handle(_ context.Context, record slog.Record) error { fields := make([]interface{}, 0, record.NumAttrs()*2) record.Attrs(func(a slog.Attr) bool { - fields = append(fields, a.Key, a.Value.String()) + fields = append(fields, a.Key, a.Value) return true }) // Get the caller frame using the record's PC. frames := runtime.CallersFrames([]uintptr{record.PC}) frame, _ := frames.Next() - l.handle(fromSlogLevel[record.Level], l.timeFunc(record.Time), []runtime.Frame{frame}, record.Message, fields...) + l.handle(Level(record.Level), l.timeFunc(record.Time), []runtime.Frame{frame}, record.Message, fields...) return nil } diff --git a/vendor/github.com/charmbracelet/log/pkg.go b/vendor/github.com/charmbracelet/log/pkg.go index 9100b48d..712bb38f 100644 --- a/vendor/github.com/charmbracelet/log/pkg.go +++ b/vendor/github.com/charmbracelet/log/pkg.go @@ -7,6 +7,7 @@ import ( "log" "os" "sync" + "sync/atomic" "time" "github.com/muesli/termenv" @@ -17,25 +18,27 @@ var ( registry = sync.Map{} // defaultLogger is the default global logger instance. + defaultLogger atomic.Pointer[Logger] defaultLoggerOnce sync.Once - defaultLogger *Logger ) // Default returns the default logger. The default logger comes with timestamp enabled. func Default() *Logger { - defaultLoggerOnce.Do(func() { - if defaultLogger != nil { - // already set via SetDefault. - return - } - defaultLogger = NewWithOptions(os.Stderr, Options{ReportTimestamp: true}) - }) - return defaultLogger + dl := defaultLogger.Load() + if dl == nil { + defaultLoggerOnce.Do(func() { + defaultLogger.CompareAndSwap( + nil, NewWithOptions(os.Stderr, Options{ReportTimestamp: true}), + ) + }) + dl = defaultLogger.Load() + } + return dl } // SetDefault sets the default global logger. func SetDefault(logger *Logger) { - defaultLogger = logger + defaultLogger.Store(logger) } // New returns a new logger with the default options. @@ -49,7 +52,7 @@ func NewWithOptions(w io.Writer, o Options) *Logger { b: bytes.Buffer{}, mu: &sync.RWMutex{}, helpers: &sync.Map{}, - level: int32(o.Level), + level: int64(o.Level), reportTimestamp: o.ReportTimestamp, reportCaller: o.ReportCaller, prefix: o.Prefix, diff --git a/vendor/github.com/charmbracelet/log/stdlog.go b/vendor/github.com/charmbracelet/log/stdlog.go index 7d352c47..3a585c81 100644 --- a/vendor/github.com/charmbracelet/log/stdlog.go +++ b/vendor/github.com/charmbracelet/log/stdlog.go @@ -14,7 +14,7 @@ func (l *stdLogWriter) Write(p []byte) (n int, err error) { str := strings.TrimSuffix(string(p), "\n") if l.opt != nil { - switch l.opt.ForceLevel { + switch l.opt.ForceLevel { //nolint:exhaustive case DebugLevel: l.l.Debug(str) case InfoLevel: diff --git a/vendor/github.com/charmbracelet/log/text.go b/vendor/github.com/charmbracelet/log/text.go index c428866f..a3775e83 100644 --- a/vendor/github.com/charmbracelet/log/text.go +++ b/vendor/github.com/charmbracelet/log/text.go @@ -21,7 +21,7 @@ func (l *Logger) writeIndent(w io.Writer, str string, indent string, newline boo // kindly borrowed from hclog for { nl := strings.IndexByte(str, '\n') - if nl == -1 { + if nl == -1 { //nolint:nestif if str != "" { _, _ = w.Write([]byte(indent)) val := escapeStringForOutput(str, false) diff --git a/vendor/github.com/charmbracelet/x/ansi/color.go b/vendor/github.com/charmbracelet/x/ansi/color.go index 2ff78bd7..77f8a08d 100644 --- a/vendor/github.com/charmbracelet/x/ansi/color.go +++ b/vendor/github.com/charmbracelet/x/ansi/color.go @@ -178,7 +178,7 @@ func ansiToRGB(ansi uint32) (uint32, uint32, uint32) { // // r, g, b := hexToRGB(0x0000FF) func hexToRGB(hex uint32) (uint32, uint32, uint32) { - return hex >> 16, hex >> 8 & 0xff, hex & 0xff + return hex >> 16 & 0xff, hex >> 8 & 0xff, hex & 0xff } // toRGBA converts an RGB 8-bit color values to 32-bit color values suitable diff --git a/vendor/github.com/charmbracelet/x/ansi/csi.go b/vendor/github.com/charmbracelet/x/ansi/csi.go deleted file mode 100644 index db7f7f9e..00000000 --- a/vendor/github.com/charmbracelet/x/ansi/csi.go +++ /dev/null @@ -1,120 +0,0 @@ -package ansi - -import ( - "bytes" - "strconv" -) - -// CsiSequence represents a control sequence introducer (CSI) sequence. -// -// The sequence starts with a CSI sequence, CSI (0x9B) in a 8-bit environment -// or ESC [ (0x1B 0x5B) in a 7-bit environment, followed by any number of -// parameters in the range of 0x30-0x3F, then by any number of intermediate -// byte in the range of 0x20-0x2F, then finally with a single final byte in the -// range of 0x20-0x7E. -// -// CSI P..P I..I F -// -// See ECMA-48 § 5.4. -type CsiSequence struct { - // Params contains the raw parameters of the sequence. - // This is a slice of integers, where each integer is a 32-bit integer - // containing the parameter value in the lower 31 bits and a flag in the - // most significant bit indicating whether there are more sub-parameters. - Params []Parameter - - // Cmd contains the raw command of the sequence. - // The command is a 32-bit integer containing the CSI command byte in the - // lower 8 bits, the private marker in the next 8 bits, and the intermediate - // byte in the next 8 bits. - // - // CSI ? u - // - // Is represented as: - // - // 'u' | '?' << 8 - Cmd Command -} - -var _ Sequence = CsiSequence{} - -// Clone returns a deep copy of the CSI sequence. -func (s CsiSequence) Clone() Sequence { - return CsiSequence{ - Params: append([]Parameter(nil), s.Params...), - Cmd: s.Cmd, - } -} - -// Marker returns the marker byte of the CSI sequence. -// This is always gonna be one of the following '<' '=' '>' '?' and in the -// range of 0x3C-0x3F. -// Zero is returned if the sequence does not have a marker. -func (s CsiSequence) Marker() int { - return s.Cmd.Marker() -} - -// Intermediate returns the intermediate byte of the CSI sequence. -// An intermediate byte is in the range of 0x20-0x2F. This includes these -// characters from ' ', '!', '"', '#', '$', '%', '&', ”', '(', ')', '*', '+', -// ',', '-', '.', '/'. -// Zero is returned if the sequence does not have an intermediate byte. -func (s CsiSequence) Intermediate() int { - return s.Cmd.Intermediate() -} - -// Command returns the command byte of the CSI sequence. -func (s CsiSequence) Command() int { - return s.Cmd.Command() -} - -// Param is a helper that returns the parameter at the given index and falls -// back to the default value if the parameter is missing. If the index is out -// of bounds, it returns the default value and false. -func (s CsiSequence) Param(i, def int) (int, bool) { - if i < 0 || i >= len(s.Params) { - return def, false - } - return s.Params[i].Param(def), true -} - -// String returns a string representation of the sequence. -// The string will always be in the 7-bit format i.e (ESC [ P..P I..I F). -func (s CsiSequence) String() string { - return s.buffer().String() -} - -// buffer returns a buffer containing the sequence. -func (s CsiSequence) buffer() *bytes.Buffer { - var b bytes.Buffer - b.WriteString("\x1b[") - if m := s.Marker(); m != 0 { - b.WriteByte(byte(m)) - } - for i, p := range s.Params { - param := p.Param(-1) - if param >= 0 { - b.WriteString(strconv.Itoa(param)) - } - if i < len(s.Params)-1 { - if p.HasMore() { - b.WriteByte(':') - } else { - b.WriteByte(';') - } - } - } - if i := s.Intermediate(); i != 0 { - b.WriteByte(byte(i)) - } - if cmd := s.Command(); cmd != 0 { - b.WriteByte(byte(cmd)) - } - return &b -} - -// Bytes returns the byte representation of the sequence. -// The bytes will always be in the 7-bit format i.e (ESC [ P..P I..I F). -func (s CsiSequence) Bytes() []byte { - return s.buffer().Bytes() -} diff --git a/vendor/github.com/charmbracelet/x/ansi/ctrl.go b/vendor/github.com/charmbracelet/x/ansi/ctrl.go index e91f11d2..8ca744cf 100644 --- a/vendor/github.com/charmbracelet/x/ansi/ctrl.go +++ b/vendor/github.com/charmbracelet/x/ansi/ctrl.go @@ -14,7 +14,7 @@ import ( // // See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-PC-Style-Function-Keys const ( - RequestNameVersion = "\x1b[>0q" + RequestNameVersion = "\x1b[>q" XTVERSION = RequestNameVersion ) @@ -24,6 +24,7 @@ const ( // DCS > | text ST // // See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-PC-Style-Function-Keys +// // Deprecated: use [RequestNameVersion] instead. const RequestXTVersion = RequestNameVersion @@ -40,7 +41,7 @@ const RequestXTVersion = RequestNameVersion // See https://vt100.net/docs/vt510-rm/DA1.html func PrimaryDeviceAttributes(attrs ...int) string { if len(attrs) == 0 { - return "\x1b[c" + return RequestPrimaryDeviceAttributes } else if len(attrs) == 1 && attrs[0] == 0 { return "\x1b[0c" } @@ -75,7 +76,7 @@ const RequestPrimaryDeviceAttributes = "\x1b[c" // See https://vt100.net/docs/vt510-rm/DA2.html func SecondaryDeviceAttributes(attrs ...int) string { if len(attrs) == 0 { - return "\x1b[>c" + return RequestSecondaryDeviceAttributes } as := make([]string, len(attrs)) @@ -90,6 +91,14 @@ func DA2(attrs ...int) string { return SecondaryDeviceAttributes(attrs...) } +// RequestSecondaryDeviceAttributes is a control sequence that requests the +// terminal's secondary device attributes (DA2). +// +// CSI > c +// +// See https://vt100.net/docs/vt510-rm/DA2.html +const RequestSecondaryDeviceAttributes = "\x1b[>c" + // TertiaryDeviceAttributes (DA3) is a control sequence that reports the // terminal's tertiary device attributes. // @@ -106,7 +115,7 @@ func DA2(attrs ...int) string { func TertiaryDeviceAttributes(unitID string) string { switch unitID { case "": - return "\x1b[=c" + return RequestTertiaryDeviceAttributes case "0": return "\x1b[=0c" } @@ -118,3 +127,11 @@ func TertiaryDeviceAttributes(unitID string) string { func DA3(unitID string) string { return TertiaryDeviceAttributes(unitID) } + +// RequestTertiaryDeviceAttributes is a control sequence that requests the +// terminal's tertiary device attributes (DA3). +// +// CSI = c +// +// See https://vt100.net/docs/vt510-rm/DA3.html +const RequestTertiaryDeviceAttributes = "\x1b[=c" diff --git a/vendor/github.com/charmbracelet/x/ansi/cursor.go b/vendor/github.com/charmbracelet/x/ansi/cursor.go index 357766a4..0c364d60 100644 --- a/vendor/github.com/charmbracelet/x/ansi/cursor.go +++ b/vendor/github.com/charmbracelet/x/ansi/cursor.go @@ -36,6 +36,8 @@ const ( // // Where Pl is the line number and Pc is the column number. // See: https://vt100.net/docs/vt510-rm/CPR.html +// +// Deprecated: use [RequestCursorPositionReport] instead. const RequestCursorPosition = "\x1b[6n" // RequestExtendedCursorPosition (DECXCPR) is a sequence for requesting the @@ -51,6 +53,8 @@ const RequestCursorPosition = "\x1b[6n" // Where Pl is the line number, Pc is the column number, and Pp is the page // number. // See: https://vt100.net/docs/vt510-rm/DECXCPR.html +// +// Deprecated: use [RequestExtendedCursorPositionReport] instead. const RequestExtendedCursorPosition = "\x1b[?6n" // CursorUp (CUU) returns a sequence for moving the cursor up n cells. diff --git a/vendor/github.com/charmbracelet/x/ansi/dcs.go b/vendor/github.com/charmbracelet/x/ansi/dcs.go deleted file mode 100644 index 03d5ebfc..00000000 --- a/vendor/github.com/charmbracelet/x/ansi/dcs.go +++ /dev/null @@ -1,133 +0,0 @@ -package ansi - -import ( - "bytes" - "strconv" - "strings" -) - -// DcsSequence represents a Device Control String (DCS) escape sequence. -// -// The DCS sequence is used to send device control strings to the terminal. The -// sequence starts with the C1 control code character DCS (0x9B) or ESC P in -// 7-bit environments, followed by parameter bytes, intermediate bytes, a -// command byte, followed by data bytes, and ends with the C1 control code -// character ST (0x9C) or ESC \ in 7-bit environments. -// -// This follows the parameter string format. -// See ECMA-48 § 5.4.1 -type DcsSequence struct { - // Params contains the raw parameters of the sequence. - // This is a slice of integers, where each integer is a 32-bit integer - // containing the parameter value in the lower 31 bits and a flag in the - // most significant bit indicating whether there are more sub-parameters. - Params []Parameter - - // Data contains the string raw data of the sequence. - // This is the data between the final byte and the escape sequence terminator. - Data []byte - - // Cmd contains the raw command of the sequence. - // The command is a 32-bit integer containing the DCS command byte in the - // lower 8 bits, the private marker in the next 8 bits, and the intermediate - // byte in the next 8 bits. - // - // DCS > 0 ; 1 $ r ST - // - // Is represented as: - // - // 'r' | '>' << 8 | '$' << 16 - Cmd Command -} - -var _ Sequence = DcsSequence{} - -// Clone returns a deep copy of the DCS sequence. -func (s DcsSequence) Clone() Sequence { - return DcsSequence{ - Params: append([]Parameter(nil), s.Params...), - Data: append([]byte(nil), s.Data...), - Cmd: s.Cmd, - } -} - -// Split returns a slice of data split by the semicolon. -func (s DcsSequence) Split() []string { - return strings.Split(string(s.Data), ";") -} - -// Marker returns the marker byte of the DCS sequence. -// This is always gonna be one of the following '<' '=' '>' '?' and in the -// range of 0x3C-0x3F. -// Zero is returned if the sequence does not have a marker. -func (s DcsSequence) Marker() int { - return s.Cmd.Marker() -} - -// Intermediate returns the intermediate byte of the DCS sequence. -// An intermediate byte is in the range of 0x20-0x2F. This includes these -// characters from ' ', '!', '"', '#', '$', '%', '&', ”', '(', ')', '*', '+', -// ',', '-', '.', '/'. -// Zero is returned if the sequence does not have an intermediate byte. -func (s DcsSequence) Intermediate() int { - return s.Cmd.Intermediate() -} - -// Command returns the command byte of the CSI sequence. -func (s DcsSequence) Command() int { - return s.Cmd.Command() -} - -// Param is a helper that returns the parameter at the given index and falls -// back to the default value if the parameter is missing. If the index is out -// of bounds, it returns the default value and false. -func (s DcsSequence) Param(i, def int) (int, bool) { - if i < 0 || i >= len(s.Params) { - return def, false - } - return s.Params[i].Param(def), true -} - -// String returns a string representation of the sequence. -// The string will always be in the 7-bit format i.e (ESC P p..p i..i f ESC \). -func (s DcsSequence) String() string { - return s.buffer().String() -} - -// buffer returns a buffer containing the sequence. -func (s DcsSequence) buffer() *bytes.Buffer { - var b bytes.Buffer - b.WriteString("\x1bP") - if m := s.Marker(); m != 0 { - b.WriteByte(byte(m)) - } - for i, p := range s.Params { - param := p.Param(-1) - if param >= 0 { - b.WriteString(strconv.Itoa(param)) - } - if i < len(s.Params)-1 { - if p.HasMore() { - b.WriteByte(':') - } else { - b.WriteByte(';') - } - } - } - if i := s.Intermediate(); i != 0 { - b.WriteByte(byte(i)) - } - if cmd := s.Command(); cmd != 0 { - b.WriteByte(byte(cmd)) - } - b.Write(s.Data) - b.WriteByte(ESC) - b.WriteByte('\\') - return &b -} - -// Bytes returns the byte representation of the sequence. -// The bytes will always be in the 7-bit format i.e (ESC P p..p i..i F ESC \). -func (s DcsSequence) Bytes() []byte { - return s.buffer().Bytes() -} diff --git a/vendor/github.com/charmbracelet/x/ansi/graphics.go b/vendor/github.com/charmbracelet/x/ansi/graphics.go new file mode 100644 index 00000000..604fef47 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/ansi/graphics.go @@ -0,0 +1,199 @@ +package ansi + +import ( + "bytes" + "encoding/base64" + "errors" + "fmt" + "image" + "io" + "os" + "strings" + + "github.com/charmbracelet/x/ansi/kitty" +) + +// KittyGraphics returns a sequence that encodes the given image in the Kitty +// graphics protocol. +// +// APC G [comma separated options] ; [base64 encoded payload] ST +// +// See https://sw.kovidgoyal.net/kitty/graphics-protocol/ +func KittyGraphics(payload []byte, opts ...string) string { + var buf bytes.Buffer + buf.WriteString("\x1b_G") + buf.WriteString(strings.Join(opts, ",")) + if len(payload) > 0 { + buf.WriteString(";") + buf.Write(payload) + } + buf.WriteString("\x1b\\") + return buf.String() +} + +var ( + // KittyGraphicsTempDir is the directory where temporary files are stored. + // This is used in [WriteKittyGraphics] along with [os.CreateTemp]. + KittyGraphicsTempDir = "" + + // KittyGraphicsTempPattern is the pattern used to create temporary files. + // This is used in [WriteKittyGraphics] along with [os.CreateTemp]. + // The Kitty Graphics protocol requires the file path to contain the + // substring "tty-graphics-protocol". + KittyGraphicsTempPattern = "tty-graphics-protocol-*" +) + +// WriteKittyGraphics writes an image using the Kitty Graphics protocol with +// the given options to w. It chunks the written data if o.Chunk is true. +// +// You can omit m and use nil when rendering an image from a file. In this +// case, you must provide a file path in o.File and use o.Transmission = +// [kitty.File]. You can also use o.Transmission = [kitty.TempFile] to write +// the image to a temporary file. In that case, the file path is ignored, and +// the image is written to a temporary file that is automatically deleted by +// the terminal. +// +// See https://sw.kovidgoyal.net/kitty/graphics-protocol/ +func WriteKittyGraphics(w io.Writer, m image.Image, o *kitty.Options) error { + if o == nil { + o = &kitty.Options{} + } + + if o.Transmission == 0 && len(o.File) != 0 { + o.Transmission = kitty.File + } + + var data bytes.Buffer // the data to be encoded into base64 + e := &kitty.Encoder{ + Compress: o.Compression == kitty.Zlib, + Format: o.Format, + } + + switch o.Transmission { + case kitty.Direct: + if err := e.Encode(&data, m); err != nil { + return fmt.Errorf("failed to encode direct image: %w", err) + } + + case kitty.SharedMemory: + // TODO: Implement shared memory + return fmt.Errorf("shared memory transmission is not yet implemented") + + case kitty.File: + if len(o.File) == 0 { + return kitty.ErrMissingFile + } + + f, err := os.Open(o.File) + if err != nil { + return fmt.Errorf("failed to open file: %w", err) + } + + defer f.Close() //nolint:errcheck + + stat, err := f.Stat() + if err != nil { + return fmt.Errorf("failed to get file info: %w", err) + } + + mode := stat.Mode() + if !mode.IsRegular() { + return fmt.Errorf("file is not a regular file") + } + + // Write the file path to the buffer + if _, err := data.WriteString(f.Name()); err != nil { + return fmt.Errorf("failed to write file path to buffer: %w", err) + } + + case kitty.TempFile: + f, err := os.CreateTemp(KittyGraphicsTempDir, KittyGraphicsTempPattern) + if err != nil { + return fmt.Errorf("failed to create file: %w", err) + } + + defer f.Close() //nolint:errcheck + + if err := e.Encode(f, m); err != nil { + return fmt.Errorf("failed to encode image to file: %w", err) + } + + // Write the file path to the buffer + if _, err := data.WriteString(f.Name()); err != nil { + return fmt.Errorf("failed to write file path to buffer: %w", err) + } + } + + // Encode image to base64 + var payload bytes.Buffer // the base64 encoded image to be written to w + b64 := base64.NewEncoder(base64.StdEncoding, &payload) + if _, err := data.WriteTo(b64); err != nil { + return fmt.Errorf("failed to write base64 encoded image to payload: %w", err) + } + if err := b64.Close(); err != nil { + return err + } + + // If not chunking, write all at once + if !o.Chunk { + _, err := io.WriteString(w, KittyGraphics(payload.Bytes(), o.Options()...)) + return err + } + + // Write in chunks + var ( + err error + n int + ) + chunk := make([]byte, kitty.MaxChunkSize) + isFirstChunk := true + + for { + // Stop if we read less than the chunk size [kitty.MaxChunkSize]. + n, err = io.ReadFull(&payload, chunk) + if errors.Is(err, io.ErrUnexpectedEOF) || errors.Is(err, io.EOF) { + break + } + if err != nil { + return fmt.Errorf("failed to read chunk: %w", err) + } + + opts := buildChunkOptions(o, isFirstChunk, false) + if _, err := io.WriteString(w, KittyGraphics(chunk[:n], opts...)); err != nil { + return err + } + + isFirstChunk = false + } + + // Write the last chunk + opts := buildChunkOptions(o, isFirstChunk, true) + _, err = io.WriteString(w, KittyGraphics(chunk[:n], opts...)) + return err +} + +// buildChunkOptions creates the options slice for a chunk +func buildChunkOptions(o *kitty.Options, isFirstChunk, isLastChunk bool) []string { + var opts []string + if isFirstChunk { + opts = o.Options() + } else { + // These options are allowed in subsequent chunks + if o.Quite > 0 { + opts = append(opts, fmt.Sprintf("q=%d", o.Quite)) + } + if o.Action == kitty.Frame { + opts = append(opts, "a=f") + } + } + + if !isFirstChunk || !isLastChunk { + // We don't need to encode the (m=) option when we only have one chunk. + if isLastChunk { + opts = append(opts, "m=0") + } else { + opts = append(opts, "m=1") + } + } + return opts +} diff --git a/vendor/github.com/charmbracelet/x/ansi/iterm2.go b/vendor/github.com/charmbracelet/x/ansi/iterm2.go new file mode 100644 index 00000000..0ecb336d --- /dev/null +++ b/vendor/github.com/charmbracelet/x/ansi/iterm2.go @@ -0,0 +1,18 @@ +package ansi + +import "fmt" + +// ITerm2 returns a sequence that uses the iTerm2 proprietary protocol. Use the +// iterm2 package for a more convenient API. +// +// OSC 1337 ; key = value ST +// +// Example: +// +// ITerm2(iterm2.File{...}) +// +// See https://iterm2.com/documentation-escape-codes.html +// See https://iterm2.com/documentation-images.html +func ITerm2(data any) string { + return "\x1b]1337;" + fmt.Sprint(data) + "\x07" +} diff --git a/vendor/github.com/charmbracelet/x/ansi/kitty.go b/vendor/github.com/charmbracelet/x/ansi/kitty.go index c56d8d1c..124ab839 100644 --- a/vendor/github.com/charmbracelet/x/ansi/kitty.go +++ b/vendor/github.com/charmbracelet/x/ansi/kitty.go @@ -72,7 +72,7 @@ func PushKittyKeyboard(flags int) string { // Keyboard stack to disable the protocol. // // This is equivalent to PushKittyKeyboard(0). -const DisableKittyKeyboard = "\x1b[>0u" +const DisableKittyKeyboard = "\x1b[>u" // PopKittyKeyboard returns a sequence to pop n number of flags from the // terminal Kitty Keyboard stack. diff --git a/vendor/github.com/charmbracelet/x/ansi/kitty/decoder.go b/vendor/github.com/charmbracelet/x/ansi/kitty/decoder.go new file mode 100644 index 00000000..fbd08441 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/ansi/kitty/decoder.go @@ -0,0 +1,85 @@ +package kitty + +import ( + "compress/zlib" + "fmt" + "image" + "image/color" + "image/png" + "io" +) + +// Decoder is a decoder for the Kitty graphics protocol. It supports decoding +// images in the 24-bit [RGB], 32-bit [RGBA], and [PNG] formats. It can also +// decompress data using zlib. +// The default format is 32-bit [RGBA]. +type Decoder struct { + // Uses zlib decompression. + Decompress bool + + // Can be one of [RGB], [RGBA], or [PNG]. + Format int + + // Width of the image in pixels. This can be omitted if the image is [PNG] + // formatted. + Width int + + // Height of the image in pixels. This can be omitted if the image is [PNG] + // formatted. + Height int +} + +// Decode decodes the image data from r in the specified format. +func (d *Decoder) Decode(r io.Reader) (image.Image, error) { + if d.Decompress { + zr, err := zlib.NewReader(r) + if err != nil { + return nil, fmt.Errorf("failed to create zlib reader: %w", err) + } + + defer zr.Close() //nolint:errcheck + r = zr + } + + if d.Format == 0 { + d.Format = RGBA + } + + switch d.Format { + case RGBA, RGB: + return d.decodeRGBA(r, d.Format == RGBA) + + case PNG: + return png.Decode(r) + + default: + return nil, fmt.Errorf("unsupported format: %d", d.Format) + } +} + +// decodeRGBA decodes the image data in 32-bit RGBA or 24-bit RGB formats. +func (d *Decoder) decodeRGBA(r io.Reader, alpha bool) (image.Image, error) { + m := image.NewRGBA(image.Rect(0, 0, d.Width, d.Height)) + + var buf []byte + if alpha { + buf = make([]byte, 4) + } else { + buf = make([]byte, 3) + } + + for y := 0; y < d.Height; y++ { + for x := 0; x < d.Width; x++ { + if _, err := io.ReadFull(r, buf[:]); err != nil { + return nil, fmt.Errorf("failed to read pixel data: %w", err) + } + if alpha { + m.SetRGBA(x, y, color.RGBA{buf[0], buf[1], buf[2], buf[3]}) + } else { + m.SetRGBA(x, y, color.RGBA{buf[0], buf[1], buf[2], 0xff}) + } + } + } + + return m, nil +} diff --git a/vendor/github.com/charmbracelet/x/ansi/kitty/encoder.go b/vendor/github.com/charmbracelet/x/ansi/kitty/encoder.go new file mode 100644 index 00000000..f668b9e3 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/ansi/kitty/encoder.go @@ -0,0 +1,64 @@ +package kitty + +import ( + "compress/zlib" + "fmt" + "image" + "image/png" + "io" +) + +// Encoder is an encoder for the Kitty graphics protocol. It supports encoding +// images in the 24-bit [RGB], 32-bit [RGBA], and [PNG] formats, and +// compressing the data using zlib. +// The default format is 32-bit [RGBA]. +type Encoder struct { + // Uses zlib compression. + Compress bool + + // Can be one of [RGBA], [RGB], or [PNG]. + Format int +} + +// Encode encodes the image data in the specified format and writes it to w. +func (e *Encoder) Encode(w io.Writer, m image.Image) error { + if m == nil { + return nil + } + + if e.Compress { + zw := zlib.NewWriter(w) + defer zw.Close() //nolint:errcheck + w = zw + } + + if e.Format == 0 { + e.Format = RGBA + } + + switch e.Format { + case RGBA, RGB: + bounds := m.Bounds() + for y := bounds.Min.Y; y < bounds.Max.Y; y++ { + for x := bounds.Min.X; x < bounds.Max.X; x++ { + r, g, b, a := m.At(x, y).RGBA() + switch e.Format { + case RGBA: + w.Write([]byte{byte(r >> 8), byte(g >> 8), byte(b >> 8), byte(a >> 8)}) //nolint:errcheck + case RGB: + w.Write([]byte{byte(r >> 8), byte(g >> 8), byte(b >> 8)}) //nolint:errcheck + } + } + } + + case PNG: + if err := png.Encode(w, m); err != nil { + return fmt.Errorf("failed to encode PNG: %w", err) + } + + default: + return fmt.Errorf("unsupported format: %d", e.Format) + } + + return nil +} diff --git a/vendor/github.com/charmbracelet/x/ansi/kitty/graphics.go b/vendor/github.com/charmbracelet/x/ansi/kitty/graphics.go new file mode 100644 index 00000000..490e7a8a --- /dev/null +++ b/vendor/github.com/charmbracelet/x/ansi/kitty/graphics.go @@ -0,0 +1,414 @@ +package kitty + +import "errors" + +// ErrMissingFile is returned when the file path is missing. +var ErrMissingFile = errors.New("missing file path") + +// MaxChunkSize is the maximum chunk size for the image data. +const MaxChunkSize = 1024 * 4 + +// Placeholder is a special Unicode character that can be used as a placeholder +// for an image. +const Placeholder = '\U0010EEEE' + +// Graphics image format. +const ( + // 32-bit RGBA format. + RGBA = 32 + + // 24-bit RGB format. + RGB = 24 + + // PNG format. + PNG = 100 +) + +// Compression types. +const ( + Zlib = 'z' +) + +// Transmission types. +const ( + // The data transmitted directly in the escape sequence. + Direct = 'd' + + // The data transmitted in a regular file. + File = 'f' + + // A temporary file is used and deleted after transmission. + TempFile = 't' + + // A shared memory object. + // For POSIX see https://pubs.opengroup.org/onlinepubs/9699919799/functions/shm_open.html + // For Windows see https://docs.microsoft.com/en-us/windows/win32/memory/creating-named-shared-memory + SharedMemory = 's' +) + +// Action types. +const ( + // Transmit image data. + Transmit = 't' + // TransmitAndPut transmit image data and display (put) it. + TransmitAndPut = 'T' + // Query terminal for image info. + Query = 'q' + // Put (display) previously transmitted image. + Put = 'p' + // Delete image. + Delete = 'd' + // Frame transmits data for animation frames. + Frame = 'f' + // Animate controls animation. + Animate = 'a' + // Compose composes animation frames. + Compose = 'c' +) + +// Delete types. +const ( + // Delete all placements visible on screen + DeleteAll = 'a' + // Delete all images with the specified id, specified using the i key. If + // you specify a p key for the placement id as well, then only the + // placement with the specified image id and placement id will be deleted. + DeleteID = 'i' + // Delete newest image with the specified number, specified using the I + // key. If you specify a p key for the placement id as well, then only the + // placement with the specified number and placement id will be deleted. + DeleteNumber = 'n' + // Delete all placements that intersect with the current cursor position. + DeleteCursor = 'c' + // Delete animation frames. + DeleteFrames = 'f' + // Delete all placements that intersect a specific cell, the cell is + // specified using the x and y keys + DeleteCell = 'p' + // Delete all placements that intersect a specific cell having a specific + // z-index. The cell and z-index is specified using the x, y and z keys. + DeleteCellZ = 'q' + // Delete all images whose id is greater than or equal to the value of the x + // key and less than or equal to the value of the y. + DeleteRange = 'r' + // Delete all placements that intersect the specified column, specified using + // the x key. + DeleteColumn = 'x' + // Delete all placements that intersect the specified row, specified using + // the y key. + DeleteRow = 'y' + // Delete all placements that have the specified z-index, specified using the + // z key. + DeleteZ = 'z' +) + +// Diacritic returns the diacritic rune at the specified index. If the index is +// out of bounds, the first diacritic rune is returned. +func Diacritic(i int) rune { + if i < 0 || i >= len(diacritics) { + return diacritics[0] + } + return diacritics[i] +} + +// From https://sw.kovidgoyal.net/kitty/_downloads/f0a0de9ec8d9ff4456206db8e0814937/rowcolumn-diacritics.txt +// See https://sw.kovidgoyal.net/kitty/graphics-protocol/#unicode-placeholders for further explanation. +var diacritics = []rune{ + '\u0305', + '\u030D', + '\u030E', + '\u0310', + '\u0312', + '\u033D', + '\u033E', + '\u033F', + '\u0346', + '\u034A', + '\u034B', + '\u034C', + '\u0350', + '\u0351', + '\u0352', + '\u0357', + '\u035B', + '\u0363', + '\u0364', + '\u0365', + '\u0366', + '\u0367', + '\u0368', + '\u0369', + '\u036A', + '\u036B', + '\u036C', + '\u036D', + '\u036E', + '\u036F', + '\u0483', + '\u0484', + '\u0485', + '\u0486', + '\u0487', + '\u0592', + '\u0593', + '\u0594', + '\u0595', + '\u0597', + '\u0598', + '\u0599', + '\u059C', + '\u059D', + '\u059E', + '\u059F', + '\u05A0', + '\u05A1', + '\u05A8', + '\u05A9', + '\u05AB', + '\u05AC', + '\u05AF', + '\u05C4', + '\u0610', + '\u0611', + '\u0612', + '\u0613', + '\u0614', + '\u0615', + '\u0616', + '\u0617', + '\u0657', + '\u0658', + '\u0659', + '\u065A', + '\u065B', + '\u065D', + '\u065E', + '\u06D6', + '\u06D7', + '\u06D8', + '\u06D9', + '\u06DA', + '\u06DB', + '\u06DC', + '\u06DF', + '\u06E0', + '\u06E1', + '\u06E2', + '\u06E4', + '\u06E7', + '\u06E8', + '\u06EB', + '\u06EC', + '\u0730', + '\u0732', + '\u0733', + '\u0735', + '\u0736', + '\u073A', + '\u073D', + '\u073F', + '\u0740', + '\u0741', + '\u0743', + '\u0745', + '\u0747', + '\u0749', + '\u074A', + '\u07EB', + '\u07EC', + '\u07ED', + '\u07EE', + '\u07EF', + '\u07F0', + '\u07F1', + '\u07F3', + '\u0816', + '\u0817', + '\u0818', + '\u0819', + '\u081B', + '\u081C', + '\u081D', + '\u081E', + '\u081F', + '\u0820', + '\u0821', + '\u0822', + '\u0823', + '\u0825', + '\u0826', + '\u0827', + '\u0829', + '\u082A', + '\u082B', + '\u082C', + '\u082D', + '\u0951', + '\u0953', + '\u0954', + '\u0F82', + '\u0F83', + '\u0F86', + '\u0F87', + '\u135D', + '\u135E', + '\u135F', + '\u17DD', + '\u193A', + '\u1A17', + '\u1A75', + '\u1A76', + '\u1A77', + '\u1A78', + '\u1A79', + '\u1A7A', + '\u1A7B', + '\u1A7C', + '\u1B6B', + '\u1B6D', + '\u1B6E', + '\u1B6F', + '\u1B70', + '\u1B71', + '\u1B72', + '\u1B73', + '\u1CD0', + '\u1CD1', + '\u1CD2', + '\u1CDA', + '\u1CDB', + '\u1CE0', + '\u1DC0', + '\u1DC1', + '\u1DC3', + '\u1DC4', + '\u1DC5', + '\u1DC6', + '\u1DC7', + '\u1DC8', + '\u1DC9', + '\u1DCB', + '\u1DCC', + '\u1DD1', + '\u1DD2', + '\u1DD3', + '\u1DD4', + '\u1DD5', + '\u1DD6', + '\u1DD7', + '\u1DD8', + '\u1DD9', + '\u1DDA', + '\u1DDB', + '\u1DDC', + '\u1DDD', + '\u1DDE', + '\u1DDF', + '\u1DE0', + '\u1DE1', + '\u1DE2', + '\u1DE3', + '\u1DE4', + '\u1DE5', + '\u1DE6', + '\u1DFE', + '\u20D0', + '\u20D1', + '\u20D4', + '\u20D5', + '\u20D6', + '\u20D7', + '\u20DB', + '\u20DC', + '\u20E1', + '\u20E7', + '\u20E9', + '\u20F0', + '\u2CEF', + '\u2CF0', + '\u2CF1', + '\u2DE0', + '\u2DE1', + '\u2DE2', + '\u2DE3', + '\u2DE4', + '\u2DE5', + '\u2DE6', + '\u2DE7', + '\u2DE8', + '\u2DE9', + '\u2DEA', + '\u2DEB', + '\u2DEC', + '\u2DED', + '\u2DEE', + '\u2DEF', + '\u2DF0', + '\u2DF1', + '\u2DF2', + '\u2DF3', + '\u2DF4', + '\u2DF5', + '\u2DF6', + '\u2DF7', + '\u2DF8', + '\u2DF9', + '\u2DFA', + '\u2DFB', + '\u2DFC', + '\u2DFD', + '\u2DFE', + '\u2DFF', + '\uA66F', + '\uA67C', + '\uA67D', + '\uA6F0', + '\uA6F1', + '\uA8E0', + '\uA8E1', + '\uA8E2', + '\uA8E3', + '\uA8E4', + '\uA8E5', + '\uA8E6', + '\uA8E7', + '\uA8E8', + '\uA8E9', + '\uA8EA', + '\uA8EB', + '\uA8EC', + '\uA8ED', + '\uA8EE', + '\uA8EF', + '\uA8F0', + '\uA8F1', + '\uAAB0', + '\uAAB2', + '\uAAB3', + '\uAAB7', + '\uAAB8', + '\uAABE', + '\uAABF', + '\uAAC1', + '\uFE20', + '\uFE21', + '\uFE22', + '\uFE23', + '\uFE24', + '\uFE25', + '\uFE26', + '\U00010A0F', + '\U00010A38', + '\U0001D185', + '\U0001D186', + '\U0001D187', + '\U0001D188', + '\U0001D189', + '\U0001D1AA', + '\U0001D1AB', + '\U0001D1AC', + '\U0001D1AD', + '\U0001D242', + '\U0001D243', + '\U0001D244', +} diff --git a/vendor/github.com/charmbracelet/x/ansi/kitty/options.go b/vendor/github.com/charmbracelet/x/ansi/kitty/options.go new file mode 100644 index 00000000..a8d907bd --- /dev/null +++ b/vendor/github.com/charmbracelet/x/ansi/kitty/options.go @@ -0,0 +1,367 @@ +package kitty + +import ( + "encoding" + "fmt" + "strconv" + "strings" +) + +var ( + _ encoding.TextMarshaler = Options{} + _ encoding.TextUnmarshaler = &Options{} +) + +// Options represents a Kitty Graphics Protocol options. +type Options struct { + // Common options. + + // Action (a=t) is the action to be performed on the image. Can be one of + // [Transmit], [TransmitDisplay], [Query], [Put], [Delete], [Frame], + // [Animate], [Compose]. + Action byte + + // Quite mode (q=0) is the quiet mode. Can be either zero, one, or two + // where zero is the default, 1 suppresses OK responses, and 2 suppresses + // both OK and error responses. + Quite byte + + // Transmission options. + + // ID (i=) is the image ID. The ID is a unique identifier for the image. + // Must be a positive integer up to [math.MaxUint32]. + ID int + + // PlacementID (p=) is the placement ID. The placement ID is a unique + // identifier for the placement of the image. Must be a positive integer up + // to [math.MaxUint32]. + PlacementID int + + // Number (I=0) is the number of images to be transmitted. + Number int + + // Format (f=32) is the image format. One of [RGBA], [RGB], [PNG]. + Format int + + // ImageWidth (s=0) is the transmitted image width. + ImageWidth int + + // ImageHeight (v=0) is the transmitted image height. + ImageHeight int + + // Compression (o=) is the image compression type. Can be [Zlib] or zero. + Compression byte + + // Transmission (t=d) is the image transmission type. Can be [Direct], [File], + // [TempFile], or[SharedMemory]. + Transmission byte + + // File is the file path to be used when the transmission type is [File]. + // If [Options.Transmission] is omitted i.e. zero and this is non-empty, + // the transmission type is set to [File]. + File string + + // Size (S=0) is the size to be read from the transmission medium. + Size int + + // Offset (O=0) is the offset byte to start reading from the transmission + // medium. + Offset int + + // Chunk (m=) whether the image is transmitted in chunks. Can be either + // zero or one. When true, the image is transmitted in chunks. Each chunk + // must be a multiple of 4, and up to [MaxChunkSize] bytes. Each chunk must + // have the m=1 option except for the last chunk which must have m=0. + Chunk bool + + // Display options. + + // X (x=0) is the pixel X coordinate of the image to start displaying. + X int + + // Y (y=0) is the pixel Y coordinate of the image to start displaying. + Y int + + // Z (z=0) is the Z coordinate of the image to display. + Z int + + // Width (w=0) is the width of the image to display. + Width int + + // Height (h=0) is the height of the image to display. + Height int + + // OffsetX (X=0) is the OffsetX coordinate of the cursor cell to start + // displaying the image. OffsetX=0 is the leftmost cell. This must be + // smaller than the terminal cell width. + OffsetX int + + // OffsetY (Y=0) is the OffsetY coordinate of the cursor cell to start + // displaying the image. OffsetY=0 is the topmost cell. This must be + // smaller than the terminal cell height. + OffsetY int + + // Columns (c=0) is the number of columns to display the image. The image + // will be scaled to fit the number of columns. + Columns int + + // Rows (r=0) is the number of rows to display the image. The image will be + // scaled to fit the number of rows. + Rows int + + // VirtualPlacement (U=0) whether to use virtual placement. This is used + // with Unicode [Placeholder] to display images. + VirtualPlacement bool + + // DoNotMoveCursor (C=0) whether to move the cursor after displaying the + // image. + DoNotMoveCursor bool + + // ParentID (P=0) is the parent image ID. The parent ID is the ID of the + // image that is the parent of the current image. This is used with Unicode + // [Placeholder] to display images relative to the parent image. + ParentID int + + // ParentPlacementID (Q=0) is the parent placement ID. The parent placement + // ID is the ID of the placement of the parent image. This is used with + // Unicode [Placeholder] to display images relative to the parent image. + ParentPlacementID int + + // Delete options. + + // Delete (d=a) is the delete action. Can be one of [DeleteAll], + // [DeleteID], [DeleteNumber], [DeleteCursor], [DeleteFrames], + // [DeleteCell], [DeleteCellZ], [DeleteRange], [DeleteColumn], [DeleteRow], + // [DeleteZ]. + Delete byte + + // DeleteResources indicates whether to delete the resources associated + // with the image. + DeleteResources bool +} + +// Options returns the options as a slice of a key-value pairs. +func (o *Options) Options() (opts []string) { + opts = []string{} + if o.Format == 0 { + o.Format = RGBA + } + + if o.Action == 0 { + o.Action = Transmit + } + + if o.Delete == 0 { + o.Delete = DeleteAll + } + + if o.Transmission == 0 { + if len(o.File) > 0 { + o.Transmission = File + } else { + o.Transmission = Direct + } + } + + if o.Format != RGBA { + opts = append(opts, fmt.Sprintf("f=%d", o.Format)) + } + + if o.Quite > 0 { + opts = append(opts, fmt.Sprintf("q=%d", o.Quite)) + } + + if o.ID > 0 { + opts = append(opts, fmt.Sprintf("i=%d", o.ID)) + } + + if o.PlacementID > 0 { + opts = append(opts, fmt.Sprintf("p=%d", o.PlacementID)) + } + + if o.Number > 0 { + opts = append(opts, fmt.Sprintf("I=%d", o.Number)) + } + + if o.ImageWidth > 0 { + opts = append(opts, fmt.Sprintf("s=%d", o.ImageWidth)) + } + + if o.ImageHeight > 0 { + opts = append(opts, fmt.Sprintf("v=%d", o.ImageHeight)) + } + + if o.Transmission != Direct { + opts = append(opts, fmt.Sprintf("t=%c", o.Transmission)) + } + + if o.Size > 0 { + opts = append(opts, fmt.Sprintf("S=%d", o.Size)) + } + + if o.Offset > 0 { + opts = append(opts, fmt.Sprintf("O=%d", o.Offset)) + } + + if o.Compression == Zlib { + opts = append(opts, fmt.Sprintf("o=%c", o.Compression)) + } + + if o.VirtualPlacement { + opts = append(opts, "U=1") + } + + if o.DoNotMoveCursor { + opts = append(opts, "C=1") + } + + if o.ParentID > 0 { + opts = append(opts, fmt.Sprintf("P=%d", o.ParentID)) + } + + if o.ParentPlacementID > 0 { + opts = append(opts, fmt.Sprintf("Q=%d", o.ParentPlacementID)) + } + + if o.X > 0 { + opts = append(opts, fmt.Sprintf("x=%d", o.X)) + } + + if o.Y > 0 { + opts = append(opts, fmt.Sprintf("y=%d", o.Y)) + } + + if o.Z > 0 { + opts = append(opts, fmt.Sprintf("z=%d", o.Z)) + } + + if o.Width > 0 { + opts = append(opts, fmt.Sprintf("w=%d", o.Width)) + } + + if o.Height > 0 { + opts = append(opts, fmt.Sprintf("h=%d", o.Height)) + } + + if o.OffsetX > 0 { + opts = append(opts, fmt.Sprintf("X=%d", o.OffsetX)) + } + + if o.OffsetY > 0 { + opts = append(opts, fmt.Sprintf("Y=%d", o.OffsetY)) + } + + if o.Columns > 0 { + opts = append(opts, fmt.Sprintf("c=%d", o.Columns)) + } + + if o.Rows > 0 { + opts = append(opts, fmt.Sprintf("r=%d", o.Rows)) + } + + if o.Delete != DeleteAll || o.DeleteResources { + da := o.Delete + if o.DeleteResources { + da = da - ' ' // to uppercase + } + + opts = append(opts, fmt.Sprintf("d=%c", da)) + } + + if o.Action != Transmit { + opts = append(opts, fmt.Sprintf("a=%c", o.Action)) + } + + return +} + +// String returns the string representation of the options. +func (o Options) String() string { + return strings.Join(o.Options(), ",") +} + +// MarshalText returns the string representation of the options. +func (o Options) MarshalText() ([]byte, error) { + return []byte(o.String()), nil +} + +// UnmarshalText parses the options from the given string. +func (o *Options) UnmarshalText(text []byte) error { + opts := strings.Split(string(text), ",") + for _, opt := range opts { + ps := strings.SplitN(opt, "=", 2) + if len(ps) != 2 || len(ps[1]) == 0 { + continue + } + + switch ps[0] { + case "a": + o.Action = ps[1][0] + case "o": + o.Compression = ps[1][0] + case "t": + o.Transmission = ps[1][0] + case "d": + d := ps[1][0] + if d >= 'A' && d <= 'Z' { + o.DeleteResources = true + d = d + ' ' // to lowercase + } + o.Delete = d + case "i", "q", "p", "I", "f", "s", "v", "S", "O", "m", "x", "y", "z", "w", "h", "X", "Y", "c", "r", "U", "P", "Q": + v, err := strconv.Atoi(ps[1]) + if err != nil { + continue + } + + switch ps[0] { + case "i": + o.ID = v + case "q": + o.Quite = byte(v) + case "p": + o.PlacementID = v + case "I": + o.Number = v + case "f": + o.Format = v + case "s": + o.ImageWidth = v + case "v": + o.ImageHeight = v + case "S": + o.Size = v + case "O": + o.Offset = v + case "m": + o.Chunk = v == 0 || v == 1 + case "x": + o.X = v + case "y": + o.Y = v + case "z": + o.Z = v + case "w": + o.Width = v + case "h": + o.Height = v + case "X": + o.OffsetX = v + case "Y": + o.OffsetY = v + case "c": + o.Columns = v + case "r": + o.Rows = v + case "U": + o.VirtualPlacement = v == 1 + case "P": + o.ParentID = v + case "Q": + o.ParentPlacementID = v + } + } + } + + return nil +} diff --git a/vendor/github.com/charmbracelet/x/ansi/method.go b/vendor/github.com/charmbracelet/x/ansi/method.go new file mode 100644 index 00000000..0218809c --- /dev/null +++ b/vendor/github.com/charmbracelet/x/ansi/method.go @@ -0,0 +1,172 @@ +package ansi + +// Method is a type that represents the how the renderer should calculate the +// display width of cells. +type Method uint8 + +// Display width modes. +const ( + WcWidth Method = iota + GraphemeWidth +) + +// StringWidth returns the width of a string in cells. This is the number of +// cells that the string will occupy when printed in a terminal. ANSI escape +// codes are ignored and wide characters (such as East Asians and emojis) are +// accounted for. +func (m Method) StringWidth(s string) int { + return stringWidth(m, s) +} + +// Truncate truncates a string to a given length, adding a tail to the end if +// the string is longer than the given length. This function is aware of ANSI +// escape codes and will not break them, and accounts for wide-characters (such +// as East-Asian characters and emojis). +func (m Method) Truncate(s string, length int, tail string) string { + return truncate(m, s, length, tail) +} + +// TruncateLeft truncates a string to a given length, adding a prefix to the +// beginning if the string is longer than the given length. This function is +// aware of ANSI escape codes and will not break them, and accounts for +// wide-characters (such as East-Asian characters and emojis). +func (m Method) TruncateLeft(s string, length int, prefix string) string { + return truncateLeft(m, s, length, prefix) +} + +// Cut the string, without adding any prefix or tail strings. This function is +// aware of ANSI escape codes and will not break them, and accounts for +// wide-characters (such as East-Asian characters and emojis). Note that the +// [left] parameter is inclusive, while [right] isn't. +func (m Method) Cut(s string, left, right int) string { + return cut(m, s, left, right) +} + +// Hardwrap wraps a string or a block of text to a given line length, breaking +// word boundaries. This will preserve ANSI escape codes and will account for +// wide-characters in the string. +// When preserveSpace is true, spaces at the beginning of a line will be +// preserved. +// This treats the text as a sequence of graphemes. +func (m Method) Hardwrap(s string, length int, preserveSpace bool) string { + return hardwrap(m, s, length, preserveSpace) +} + +// Wordwrap wraps a string or a block of text to a given line length, not +// breaking word boundaries. This will preserve ANSI escape codes and will +// account for wide-characters in the string. +// The breakpoints string is a list of characters that are considered +// breakpoints for word wrapping. A hyphen (-) is always considered a +// breakpoint. +// +// Note: breakpoints must be a string of 1-cell wide rune characters. +func (m Method) Wordwrap(s string, length int, breakpoints string) string { + return wordwrap(m, s, length, breakpoints) +} + +// Wrap wraps a string or a block of text to a given line length, breaking word +// boundaries if necessary. This will preserve ANSI escape codes and will +// account for wide-characters in the string. The breakpoints string is a list +// of characters that are considered breakpoints for word wrapping. A hyphen +// (-) is always considered a breakpoint. +// +// Note: breakpoints must be a string of 1-cell wide rune characters. +func (m Method) Wrap(s string, length int, breakpoints string) string { + return wrap(m, s, length, breakpoints) +} + +// DecodeSequence decodes the first ANSI escape sequence or a printable +// grapheme from the given data. It returns the sequence slice, the number of +// bytes read, the cell width for each sequence, and the new state. +// +// The cell width will always be 0 for control and escape sequences, 1 for +// ASCII printable characters, and the number of cells other Unicode characters +// occupy. It uses the uniseg package to calculate the width of Unicode +// graphemes and characters. This means it will always do grapheme clustering +// (mode 2027). +// +// Passing a non-nil [*Parser] as the last argument will allow the decoder to +// collect sequence parameters, data, and commands. The parser cmd will have +// the packed command value that contains intermediate and prefix characters. +// In the case of a OSC sequence, the cmd will be the OSC command number. Use +// [Cmd] and [Param] types to unpack command intermediates and prefixes as well +// as parameters. +// +// Zero [Cmd] means the CSI, DCS, or ESC sequence is invalid. Moreover, checking the +// validity of other data sequences, OSC, DCS, etc, will require checking for +// the returned sequence terminator bytes such as ST (ESC \\) and BEL). +// +// We store the command byte in [Cmd] in the most significant byte, the +// prefix byte in the next byte, and the intermediate byte in the least +// significant byte. This is done to avoid using a struct to store the command +// and its intermediates and prefixes. The command byte is always the least +// significant byte i.e. [Cmd & 0xff]. Use the [Cmd] type to unpack the +// command, intermediate, and prefix bytes. Note that we only collect the last +// prefix character and intermediate byte. +// +// The [p.Params] slice will contain the parameters of the sequence. Any +// sub-parameter will have the [parser.HasMoreFlag] set. Use the [Param] type +// to unpack the parameters. +// +// Example: +// +// var state byte // the initial state is always zero [NormalState] +// p := NewParser(32, 1024) // create a new parser with a 32 params buffer and 1024 data buffer (optional) +// input := []byte("\x1b[31mHello, World!\x1b[0m") +// for len(input) > 0 { +// seq, width, n, newState := DecodeSequence(input, state, p) +// log.Printf("seq: %q, width: %d", seq, width) +// state = newState +// input = input[n:] +// } +func (m Method) DecodeSequence(data []byte, state byte, p *Parser) (seq []byte, width, n int, newState byte) { + return decodeSequence(m, data, state, p) +} + +// DecodeSequenceInString decodes the first ANSI escape sequence or a printable +// grapheme from the given data. It returns the sequence slice, the number of +// bytes read, the cell width for each sequence, and the new state. +// +// The cell width will always be 0 for control and escape sequences, 1 for +// ASCII printable characters, and the number of cells other Unicode characters +// occupy. It uses the uniseg package to calculate the width of Unicode +// graphemes and characters. This means it will always do grapheme clustering +// (mode 2027). +// +// Passing a non-nil [*Parser] as the last argument will allow the decoder to +// collect sequence parameters, data, and commands. The parser cmd will have +// the packed command value that contains intermediate and prefix characters. +// In the case of a OSC sequence, the cmd will be the OSC command number. Use +// [Cmd] and [Param] types to unpack command intermediates and prefixes as well +// as parameters. +// +// Zero [Cmd] means the CSI, DCS, or ESC sequence is invalid. Moreover, checking the +// validity of other data sequences, OSC, DCS, etc, will require checking for +// the returned sequence terminator bytes such as ST (ESC \\) and BEL). +// +// We store the command byte in [Cmd] in the most significant byte, the +// prefix byte in the next byte, and the intermediate byte in the least +// significant byte. This is done to avoid using a struct to store the command +// and its intermediates and prefixes. The command byte is always the least +// significant byte i.e. [Cmd & 0xff]. Use the [Cmd] type to unpack the +// command, intermediate, and prefix bytes. Note that we only collect the last +// prefix character and intermediate byte. +// +// The [p.Params] slice will contain the parameters of the sequence. Any +// sub-parameter will have the [parser.HasMoreFlag] set. Use the [Param] type +// to unpack the parameters. +// +// Example: +// +// var state byte // the initial state is always zero [NormalState] +// p := NewParser(32, 1024) // create a new parser with a 32 params buffer and 1024 data buffer (optional) +// input := []byte("\x1b[31mHello, World!\x1b[0m") +// for len(input) > 0 { +// seq, width, n, newState := DecodeSequenceInString(input, state, p) +// log.Printf("seq: %q, width: %d", seq, width) +// state = newState +// input = input[n:] +// } +func (m Method) DecodeSequenceInString(data string, state byte, p *Parser) (seq string, width, n int, newState byte) { + return decodeSequence(m, data, state, p) +} diff --git a/vendor/github.com/charmbracelet/x/ansi/mode.go b/vendor/github.com/charmbracelet/x/ansi/mode.go index 2e77c738..57f3f0a8 100644 --- a/vendor/github.com/charmbracelet/x/ansi/mode.go +++ b/vendor/github.com/charmbracelet/x/ansi/mode.go @@ -51,7 +51,8 @@ type Mode interface { // SetMode (SM) returns a sequence to set a mode. // The mode arguments are a list of modes to set. // -// If one of the modes is a [DECMode], the sequence will use the DEC format. +// If one of the modes is a [DECMode], the function will returns two escape +// sequences. // // ANSI format: // @@ -74,7 +75,8 @@ func SM(modes ...Mode) string { // ResetMode (RM) returns a sequence to reset a mode. // The mode arguments are a list of modes to reset. // -// If one of the modes is a [DECMode], the sequence will use the DEC format. +// If one of the modes is a [DECMode], the function will returns two escape +// sequences. // // ANSI format: // @@ -94,9 +96,9 @@ func RM(modes ...Mode) string { return ResetMode(modes...) } -func setMode(reset bool, modes ...Mode) string { +func setMode(reset bool, modes ...Mode) (s string) { if len(modes) == 0 { - return "" + return } cmd := "h" @@ -113,21 +115,24 @@ func setMode(reset bool, modes ...Mode) string { return seq + strconv.Itoa(modes[0].Mode()) + cmd } - var dec bool - list := make([]string, len(modes)) - for i, m := range modes { - list[i] = strconv.Itoa(m.Mode()) + dec := make([]string, 0, len(modes)/2) + ansi := make([]string, 0, len(modes)/2) + for _, m := range modes { switch m.(type) { case DECMode: - dec = true + dec = append(dec, strconv.Itoa(m.Mode())) + case ANSIMode: + ansi = append(ansi, strconv.Itoa(m.Mode())) } } - if dec { - seq += "?" + if len(ansi) > 0 { + s += seq + strings.Join(ansi, ";") + cmd } - - return seq + strings.Join(list, ";") + cmd + if len(dec) > 0 { + s += seq + "?" + strings.Join(dec, ";") + cmd + } + return } // RequestMode (DECRQM) returns a sequence to request a mode from the terminal. diff --git a/vendor/github.com/charmbracelet/x/ansi/mouse.go b/vendor/github.com/charmbracelet/x/ansi/mouse.go index eec77d41..95b0127f 100644 --- a/vendor/github.com/charmbracelet/x/ansi/mouse.go +++ b/vendor/github.com/charmbracelet/x/ansi/mouse.go @@ -26,19 +26,28 @@ type MouseButton byte // Other buttons are not supported. const ( MouseNone MouseButton = iota - MouseLeft - MouseMiddle - MouseRight - MouseWheelUp - MouseWheelDown - MouseWheelLeft - MouseWheelRight - MouseBackward - MouseForward + MouseButton1 + MouseButton2 + MouseButton3 + MouseButton4 + MouseButton5 + MouseButton6 + MouseButton7 + MouseButton8 + MouseButton9 MouseButton10 MouseButton11 - MouseRelease = MouseNone + MouseLeft = MouseButton1 + MouseMiddle = MouseButton2 + MouseRight = MouseButton3 + MouseWheelUp = MouseButton4 + MouseWheelDown = MouseButton5 + MouseWheelLeft = MouseButton6 + MouseWheelRight = MouseButton7 + MouseBackward = MouseButton8 + MouseForward = MouseButton9 + MouseRelease = MouseNone ) var mouseButtons = map[MouseButton]string{ @@ -61,7 +70,7 @@ func (b MouseButton) String() string { return mouseButtons[b] } -// Button returns a byte representing a mouse button. +// EncodeMouseButton returns a byte representing a mouse button. // The button is a bitmask of the following leftmost values: // // - The first two bits are the button number: @@ -85,7 +94,7 @@ func (b MouseButton) String() string { // // If button is [MouseNone], and motion is false, this returns a release event. // If button is undefined, this function returns 0xff. -func (b MouseButton) Button(motion, shift, alt, ctrl bool) (m byte) { +func EncodeMouseButton(b MouseButton, motion, shift, alt, ctrl bool) (m byte) { // mouse bit shifts const ( bitShift = 0b0000_0100 diff --git a/vendor/github.com/charmbracelet/x/ansi/notification.go b/vendor/github.com/charmbracelet/x/ansi/notification.go index 4943366f..c712f340 100644 --- a/vendor/github.com/charmbracelet/x/ansi/notification.go +++ b/vendor/github.com/charmbracelet/x/ansi/notification.go @@ -2,8 +2,8 @@ package ansi // Notify sends a desktop notification using iTerm's OSC 9. // -// OSC 9 ; Mc ST -// OSC 9 ; Mc BEL +// OSC 9 ; Mc ST +// OSC 9 ; Mc BEL // // Where Mc is the notification body. // diff --git a/vendor/github.com/charmbracelet/x/ansi/osc.go b/vendor/github.com/charmbracelet/x/ansi/osc.go deleted file mode 100644 index 25adff10..00000000 --- a/vendor/github.com/charmbracelet/x/ansi/osc.go +++ /dev/null @@ -1,70 +0,0 @@ -package ansi - -import ( - "bytes" - "strings" -) - -// OscSequence represents an OSC sequence. -// -// The sequence starts with a OSC sequence, OSC (0x9D) in a 8-bit environment -// or ESC ] (0x1B 0x5D) in a 7-bit environment, followed by positive integer identifier, -// then by arbitrary data terminated by a ST (0x9C) in a 8-bit environment, -// ESC \ (0x1B 0x5C) in a 7-bit environment, or BEL (0x07) for backwards compatibility. -// -// OSC Ps ; Pt ST -// OSC Ps ; Pt BEL -// -// See ECMA-48 § 5.7. -type OscSequence struct { - // Data contains the raw data of the sequence including the identifier - // command. - Data []byte - - // Cmd contains the raw command of the sequence. - Cmd int -} - -var _ Sequence = OscSequence{} - -// Clone returns a deep copy of the OSC sequence. -func (o OscSequence) Clone() Sequence { - return OscSequence{ - Data: append([]byte(nil), o.Data...), - Cmd: o.Cmd, - } -} - -// Split returns a slice of data split by the semicolon with the first element -// being the identifier command. -func (o OscSequence) Split() []string { - return strings.Split(string(o.Data), ";") -} - -// Command returns the OSC command. This is always gonna be a positive integer -// that identifies the OSC sequence. -func (o OscSequence) Command() int { - return o.Cmd -} - -// String returns the string representation of the OSC sequence. -// To be more compatible with different terminal, this will always return a -// 7-bit formatted sequence, terminated by BEL. -func (s OscSequence) String() string { - return s.buffer().String() -} - -// Bytes returns the byte representation of the OSC sequence. -// To be more compatible with different terminal, this will always return a -// 7-bit formatted sequence, terminated by BEL. -func (s OscSequence) Bytes() []byte { - return s.buffer().Bytes() -} - -func (s OscSequence) buffer() *bytes.Buffer { - var b bytes.Buffer - b.WriteString("\x1b]") - b.Write(s.Data) - b.WriteByte(BEL) - return &b -} diff --git a/vendor/github.com/charmbracelet/x/ansi/params.go b/vendor/github.com/charmbracelet/x/ansi/params.go deleted file mode 100644 index a1bb4249..00000000 --- a/vendor/github.com/charmbracelet/x/ansi/params.go +++ /dev/null @@ -1,45 +0,0 @@ -package ansi - -import ( - "bytes" -) - -// Params parses and returns a list of control sequence parameters. -// -// Parameters are positive integers separated by semicolons. Empty parameters -// default to zero. Parameters can have sub-parameters separated by colons. -// -// Any non-parameter bytes are ignored. This includes bytes that are not in the -// range of 0x30-0x3B. -// -// See ECMA-48 § 5.4.1. -func Params(p []byte) [][]uint { - if len(p) == 0 { - return [][]uint{} - } - - // Filter out non-parameter bytes i.e. non 0x30-0x3B. - p = bytes.TrimFunc(p, func(r rune) bool { - return r < 0x30 || r > 0x3B - }) - - parts := bytes.Split(p, []byte{';'}) - params := make([][]uint, len(parts)) - for i, part := range parts { - sparts := bytes.Split(part, []byte{':'}) - params[i] = make([]uint, len(sparts)) - for j, spart := range sparts { - params[i][j] = bytesToUint16(spart) - } - } - - return params -} - -func bytesToUint16(b []byte) uint { - var n uint - for _, c := range b { - n = n*10 + uint(c-'0') - } - return n -} diff --git a/vendor/github.com/charmbracelet/x/ansi/parser.go b/vendor/github.com/charmbracelet/x/ansi/parser.go index 618900cc..882e1ed7 100644 --- a/vendor/github.com/charmbracelet/x/ansi/parser.go +++ b/vendor/github.com/charmbracelet/x/ansi/parser.go @@ -7,9 +7,6 @@ import ( "github.com/charmbracelet/x/ansi/parser" ) -// ParserDispatcher is a function that dispatches a sequence. -type ParserDispatcher func(Sequence) - // Parser represents a DEC ANSI compatible sequence parser. // // It uses a state machine to parse ANSI escape sequences and control @@ -20,8 +17,7 @@ type ParserDispatcher func(Sequence) // //go:generate go run ./gen.go type Parser struct { - // the dispatch function to call when a sequence is complete - dispatcher ParserDispatcher + handler Handler // params contains the raw parameters of the sequence. // These parameters used when constructing CSI and DCS sequences. @@ -43,10 +39,10 @@ type Parser struct { // number of rune bytes collected. paramsLen int - // cmd contains the raw command along with the private marker and + // cmd contains the raw command along with the private prefix and // intermediate bytes of the sequence. // The first lower byte contains the command byte, the next byte contains - // the private marker, and the next byte contains the intermediate byte. + // the private prefix, and the next byte contains the intermediate byte. // // This is also used when collecting UTF-8 runes treating it as a slice of // 4 bytes. @@ -56,24 +52,17 @@ type Parser struct { state byte } -// NewParser returns a new parser with an optional [ParserDispatcher]. +// NewParser returns a new parser with the default settings. // The [Parser] uses a default size of 32 for the parameters and 64KB for the // data buffer. Use [Parser.SetParamsSize] and [Parser.SetDataSize] to set the // size of the parameters and data buffer respectively. -func NewParser(d ParserDispatcher) *Parser { +func NewParser() *Parser { p := new(Parser) - p.SetDispatcher(d) p.SetParamsSize(parser.MaxParamsSize) p.SetDataSize(1024 * 64) // 64KB data buffer return p } -// SetDispatcher sets the dispatcher function to call when a sequence is -// complete. -func (p *Parser) SetDispatcher(d ParserDispatcher) { - p.dispatcher = d -} - // SetParamsSize sets the size of the parameters buffer. // This is used when constructing CSI and DCS sequences. func (p *Parser) SetParamsSize(size int) { @@ -93,8 +82,8 @@ func (p *Parser) SetDataSize(size int) { } // Params returns the list of parsed packed parameters. -func (p *Parser) Params() []Parameter { - return unsafe.Slice((*Parameter)(unsafe.Pointer(&p.params[0])), p.paramsLen) +func (p *Parser) Params() Params { + return unsafe.Slice((*Param)(unsafe.Pointer(&p.params[0])), p.paramsLen) } // Param returns the parameter at the given index and falls back to the default @@ -104,12 +93,13 @@ func (p *Parser) Param(i, def int) (int, bool) { if i < 0 || i >= p.paramsLen { return def, false } - return Parameter(p.params[i]).Param(def), true + return Param(p.params[i]).Param(def), true } -// Cmd returns the packed command of the last dispatched sequence. -func (p *Parser) Cmd() Command { - return Command(p.cmd) +// Command returns the packed command of the last dispatched sequence. Use +// [Cmd] to unpack the command. +func (p *Parser) Command() int { + return p.cmd } // Rune returns the last dispatched sequence as a rune. @@ -122,6 +112,11 @@ func (p *Parser) Rune() rune { return r } +// Control returns the last dispatched sequence as a control code. +func (p *Parser) Control() byte { + return byte(p.cmd & 0xff) +} + // Data returns the raw data of the last dispatched sequence. func (p *Parser) Data() []byte { return p.data[:p.dataLen] @@ -183,12 +178,6 @@ func (p *Parser) collectRune(b byte) { p.paramsLen++ } -func (p *Parser) dispatch(s Sequence) { - if p.dispatcher != nil { - p.dispatcher(s) - } -} - func (p *Parser) advanceUtf8(b byte) parser.Action { // Collect UTF-8 rune bytes. p.collectRune(b) @@ -204,7 +193,9 @@ func (p *Parser) advanceUtf8(b byte) parser.Action { } // We have enough bytes to decode the rune using unsafe - p.dispatch(Rune(p.Rune())) + if p.handler.Print != nil { + p.handler.Print(p.Rune()) + } p.state = parser.GroundState p.paramsLen = 0 @@ -276,16 +267,22 @@ func (p *Parser) performAction(action parser.Action, state parser.State, b byte) p.clear() case parser.PrintAction: - p.dispatch(Rune(b)) + p.cmd = int(b) + if p.handler.Print != nil { + p.handler.Print(rune(b)) + } case parser.ExecuteAction: - p.dispatch(ControlCode(b)) + p.cmd = int(b) + if p.handler.Execute != nil { + p.handler.Execute(b) + } - case parser.MarkerAction: - // Collect private marker - // we only store the last marker - p.cmd &^= 0xff << parser.MarkerShift - p.cmd |= int(b) << parser.MarkerShift + case parser.PrefixAction: + // Collect private prefix + // we only store the last prefix + p.cmd &^= 0xff << parser.PrefixShift + p.cmd |= int(b) << parser.PrefixShift case parser.CollectAction: if state == parser.Utf8State { @@ -367,11 +364,6 @@ func (p *Parser) performAction(action parser.Action, state parser.State, b byte) p.parseStringCmd() } - if p.dispatcher == nil { - break - } - - var seq Sequence data := p.data if p.dataLen >= 0 { data = data[:p.dataLen] @@ -379,23 +371,35 @@ func (p *Parser) performAction(action parser.Action, state parser.State, b byte) switch p.state { case parser.CsiEntryState, parser.CsiParamState, parser.CsiIntermediateState: p.cmd |= int(b) - seq = CsiSequence{Cmd: Command(p.cmd), Params: p.Params()} + if p.handler.HandleCsi != nil { + p.handler.HandleCsi(Cmd(p.cmd), p.Params()) + } case parser.EscapeState, parser.EscapeIntermediateState: p.cmd |= int(b) - seq = EscSequence(p.cmd) + if p.handler.HandleEsc != nil { + p.handler.HandleEsc(Cmd(p.cmd)) + } case parser.DcsEntryState, parser.DcsParamState, parser.DcsIntermediateState, parser.DcsStringState: - seq = DcsSequence{Cmd: Command(p.cmd), Params: p.Params(), Data: data} + if p.handler.HandleDcs != nil { + p.handler.HandleDcs(Cmd(p.cmd), p.Params(), data) + } case parser.OscStringState: - seq = OscSequence{Cmd: p.cmd, Data: data} + if p.handler.HandleOsc != nil { + p.handler.HandleOsc(p.cmd, data) + } case parser.SosStringState: - seq = SosSequence{Data: data} + if p.handler.HandleSos != nil { + p.handler.HandleSos(data) + } case parser.PmStringState: - seq = PmSequence{Data: data} + if p.handler.HandlePm != nil { + p.handler.HandlePm(data) + } case parser.ApcStringState: - seq = ApcSequence{Data: data} + if p.handler.HandleApc != nil { + p.handler.HandleApc(data) + } } - - p.dispatch(seq) } } diff --git a/vendor/github.com/charmbracelet/x/ansi/parser/const.go b/vendor/github.com/charmbracelet/x/ansi/parser/const.go index 54b7383b..d62dbf37 100644 --- a/vendor/github.com/charmbracelet/x/ansi/parser/const.go +++ b/vendor/github.com/charmbracelet/x/ansi/parser/const.go @@ -8,7 +8,7 @@ const ( NoneAction Action = iota ClearAction CollectAction - MarkerAction + PrefixAction DispatchAction ExecuteAction StartAction // Start of a data string @@ -24,7 +24,7 @@ var ActionNames = []string{ "NoneAction", "ClearAction", "CollectAction", - "MarkerAction", + "PrefixAction", "DispatchAction", "ExecuteAction", "StartAction", diff --git a/vendor/github.com/charmbracelet/x/ansi/parser/seq.go b/vendor/github.com/charmbracelet/x/ansi/parser/seq.go index c99f1632..29f491d1 100644 --- a/vendor/github.com/charmbracelet/x/ansi/parser/seq.go +++ b/vendor/github.com/charmbracelet/x/ansi/parser/seq.go @@ -4,9 +4,9 @@ import "math" // Shift and masks for sequence parameters and intermediates. const ( - MarkerShift = 8 + PrefixShift = 8 IntermedShift = 16 - CommandMask = 0xff + FinalMask = 0xff HasMoreFlag = math.MinInt32 ParamMask = ^HasMoreFlag MissingParam = ParamMask @@ -22,12 +22,12 @@ const ( DefaultParamValue = 0 ) -// Marker returns the marker byte of the sequence. +// Prefix returns the prefix byte of the sequence. // This is always gonna be one of the following '<' '=' '>' '?' and in the // range of 0x3C-0x3F. -// Zero is returned if the sequence does not have a marker. -func Marker(cmd int) int { - return (cmd >> MarkerShift) & CommandMask +// Zero is returned if the sequence does not have a prefix. +func Prefix(cmd int) int { + return (cmd >> PrefixShift) & FinalMask } // Intermediate returns the intermediate byte of the sequence. @@ -36,12 +36,12 @@ func Marker(cmd int) int { // ',', '-', '.', '/'. // Zero is returned if the sequence does not have an intermediate byte. func Intermediate(cmd int) int { - return (cmd >> IntermedShift) & CommandMask + return (cmd >> IntermedShift) & FinalMask } // Command returns the command byte of the CSI sequence. func Command(cmd int) int { - return cmd & CommandMask + return cmd & FinalMask } // Param returns the parameter at the given index. diff --git a/vendor/github.com/charmbracelet/x/ansi/parser/transition_table.go b/vendor/github.com/charmbracelet/x/ansi/parser/transition_table.go index 5d368ebf..558a5eac 100644 --- a/vendor/github.com/charmbracelet/x/ansi/parser/transition_table.go +++ b/vendor/github.com/charmbracelet/x/ansi/parser/transition_table.go @@ -178,7 +178,7 @@ func GenerateTransitionTable() TransitionTable { table.AddRange(0x20, 0x2F, DcsEntryState, CollectAction, DcsIntermediateState) // Dcs_entry -> Dcs_param table.AddRange(0x30, 0x3B, DcsEntryState, ParamAction, DcsParamState) - table.AddRange(0x3C, 0x3F, DcsEntryState, MarkerAction, DcsParamState) + table.AddRange(0x3C, 0x3F, DcsEntryState, PrefixAction, DcsParamState) // Dcs_entry -> Dcs_passthrough table.AddRange(0x08, 0x0D, DcsEntryState, PutAction, DcsStringState) // Follows ECMA-48 § 8.3.27 // XXX: allows passing ESC (not a ECMA-48 standard) this to allow for @@ -254,7 +254,7 @@ func GenerateTransitionTable() TransitionTable { table.AddRange(0x20, 0x2F, CsiEntryState, CollectAction, CsiIntermediateState) // Csi_entry -> Csi_param table.AddRange(0x30, 0x3B, CsiEntryState, ParamAction, CsiParamState) - table.AddRange(0x3C, 0x3F, CsiEntryState, MarkerAction, CsiParamState) + table.AddRange(0x3C, 0x3F, CsiEntryState, PrefixAction, CsiParamState) // Osc_string table.AddRange(0x00, 0x06, OscStringState, IgnoreAction, OscStringState) diff --git a/vendor/github.com/charmbracelet/x/ansi/parser_decode.go b/vendor/github.com/charmbracelet/x/ansi/parser_decode.go index 8bc2c253..3e504739 100644 --- a/vendor/github.com/charmbracelet/x/ansi/parser_decode.go +++ b/vendor/github.com/charmbracelet/x/ansi/parser_decode.go @@ -4,6 +4,7 @@ import ( "unicode/utf8" "github.com/charmbracelet/x/ansi/parser" + "github.com/mattn/go-runewidth" "github.com/rivo/uniseg" ) @@ -14,7 +15,7 @@ type State = byte // ANSI escape sequence states used by [DecodeSequence]. const ( NormalState State = iota - MarkerState + PrefixState ParamsState IntermedState EscapeState @@ -33,25 +34,25 @@ const ( // // Passing a non-nil [*Parser] as the last argument will allow the decoder to // collect sequence parameters, data, and commands. The parser cmd will have -// the packed command value that contains intermediate and marker characters. +// the packed command value that contains intermediate and prefix characters. // In the case of a OSC sequence, the cmd will be the OSC command number. Use -// [Command] and [Parameter] types to unpack command intermediates and markers as well +// [Cmd] and [Param] types to unpack command intermediates and prefixes as well // as parameters. // -// Zero [Command] means the CSI, DCS, or ESC sequence is invalid. Moreover, checking the +// Zero [Cmd] means the CSI, DCS, or ESC sequence is invalid. Moreover, checking the // validity of other data sequences, OSC, DCS, etc, will require checking for // the returned sequence terminator bytes such as ST (ESC \\) and BEL). // -// We store the command byte in [Command] in the most significant byte, the -// marker byte in the next byte, and the intermediate byte in the least +// We store the command byte in [Cmd] in the most significant byte, the +// prefix byte in the next byte, and the intermediate byte in the least // significant byte. This is done to avoid using a struct to store the command -// and its intermediates and markers. The command byte is always the least -// significant byte i.e. [Cmd & 0xff]. Use the [Command] type to unpack the -// command, intermediate, and marker bytes. Note that we only collect the last -// marker character and intermediate byte. +// and its intermediates and prefixes. The command byte is always the least +// significant byte i.e. [Cmd & 0xff]. Use the [Cmd] type to unpack the +// command, intermediate, and prefix bytes. Note that we only collect the last +// prefix character and intermediate byte. // // The [p.Params] slice will contain the parameters of the sequence. Any -// sub-parameter will have the [parser.HasMoreFlag] set. Use the [Parameter] type +// sub-parameter will have the [parser.HasMoreFlag] set. Use the [Param] type // to unpack the parameters. // // Example: @@ -65,7 +66,63 @@ const ( // state = newState // input = input[n:] // } +// +// This function treats the text as a sequence of grapheme clusters. func DecodeSequence[T string | []byte](b T, state byte, p *Parser) (seq T, width int, n int, newState byte) { + return decodeSequence(GraphemeWidth, b, state, p) +} + +// DecodeSequenceWc decodes the first ANSI escape sequence or a printable +// grapheme from the given data. It returns the sequence slice, the number of +// bytes read, the cell width for each sequence, and the new state. +// +// The cell width will always be 0 for control and escape sequences, 1 for +// ASCII printable characters, and the number of cells other Unicode characters +// occupy. It uses the uniseg package to calculate the width of Unicode +// graphemes and characters. This means it will always do grapheme clustering +// (mode 2027). +// +// Passing a non-nil [*Parser] as the last argument will allow the decoder to +// collect sequence parameters, data, and commands. The parser cmd will have +// the packed command value that contains intermediate and prefix characters. +// In the case of a OSC sequence, the cmd will be the OSC command number. Use +// [Cmd] and [Param] types to unpack command intermediates and prefixes as well +// as parameters. +// +// Zero [Cmd] means the CSI, DCS, or ESC sequence is invalid. Moreover, checking the +// validity of other data sequences, OSC, DCS, etc, will require checking for +// the returned sequence terminator bytes such as ST (ESC \\) and BEL). +// +// We store the command byte in [Cmd] in the most significant byte, the +// prefix byte in the next byte, and the intermediate byte in the least +// significant byte. This is done to avoid using a struct to store the command +// and its intermediates and prefixes. The command byte is always the least +// significant byte i.e. [Cmd & 0xff]. Use the [Cmd] type to unpack the +// command, intermediate, and prefix bytes. Note that we only collect the last +// prefix character and intermediate byte. +// +// The [p.Params] slice will contain the parameters of the sequence. Any +// sub-parameter will have the [parser.HasMoreFlag] set. Use the [Param] type +// to unpack the parameters. +// +// Example: +// +// var state byte // the initial state is always zero [NormalState] +// p := NewParser(32, 1024) // create a new parser with a 32 params buffer and 1024 data buffer (optional) +// input := []byte("\x1b[31mHello, World!\x1b[0m") +// for len(input) > 0 { +// seq, width, n, newState := DecodeSequenceWc(input, state, p) +// log.Printf("seq: %q, width: %d", seq, width) +// state = newState +// input = input[n:] +// } +// +// This function treats the text as a sequence of wide characters and runes. +func DecodeSequenceWc[T string | []byte](b T, state byte, p *Parser) (seq T, width int, n int, newState byte) { + return decodeSequence(WcWidth, b, state, p) +} + +func decodeSequence[T string | []byte](m Method, b T, state State, p *Parser) (seq T, width int, n int, newState byte) { for i := 0; i < len(b); i++ { c := b[i] @@ -92,7 +149,7 @@ func DecodeSequence[T string | []byte](b T, state byte, p *Parser) (seq T, width p.paramsLen = 0 p.dataLen = 0 } - state = MarkerState + state = PrefixState continue case OSC, APC, SOS, PM: if p != nil { @@ -120,18 +177,21 @@ func DecodeSequence[T string | []byte](b T, state byte, p *Parser) (seq T, width if utf8.RuneStart(c) { seq, _, width, _ = FirstGraphemeCluster(b, -1) + if m == WcWidth { + width = runewidth.StringWidth(string(seq)) + } i += len(seq) return b[:i], width, i, NormalState } // Invalid UTF-8 sequence return b[:i], 0, i, NormalState - case MarkerState: + case PrefixState: if c >= '<' && c <= '?' { if p != nil { - // We only collect the last marker character. - p.cmd &^= 0xff << parser.MarkerShift - p.cmd |= int(c) << parser.MarkerShift + // We only collect the last prefix character. + p.cmd &^= 0xff << parser.PrefixShift + p.cmd |= int(c) << parser.PrefixShift } break } @@ -216,7 +276,7 @@ func DecodeSequence[T string | []byte](b T, state byte, p *Parser) (seq T, width p.paramsLen = 0 p.cmd = 0 } - state = MarkerState + state = PrefixState continue case ']', 'X', '^', '_': if p != nil { @@ -389,17 +449,17 @@ func FirstGraphemeCluster[T string | []byte](b T, state int) (T, T, int, int) { panic("unreachable") } -// Command represents a sequence command. This is used to pack/unpack a sequence -// command with its intermediate and marker characters. Those are commonly +// Cmd represents a sequence command. This is used to pack/unpack a sequence +// command with its intermediate and prefix characters. Those are commonly // found in CSI and DCS sequences. -type Command int +type Cmd int -// Marker returns the unpacked marker byte of the CSI sequence. +// Prefix returns the unpacked prefix byte of the CSI sequence. // This is always gonna be one of the following '<' '=' '>' '?' and in the // range of 0x3C-0x3F. -// Zero is returned if the sequence does not have a marker. -func (c Command) Marker() int { - return parser.Marker(int(c)) +// Zero is returned if the sequence does not have a prefix. +func (c Cmd) Prefix() byte { + return byte(parser.Prefix(int(c))) } // Intermediate returns the unpacked intermediate byte of the CSI sequence. @@ -407,37 +467,40 @@ func (c Command) Marker() int { // characters from ' ', '!', '"', '#', '$', '%', '&', ”', '(', ')', '*', '+', // ',', '-', '.', '/'. // Zero is returned if the sequence does not have an intermediate byte. -func (c Command) Intermediate() int { - return parser.Intermediate(int(c)) +func (c Cmd) Intermediate() byte { + return byte(parser.Intermediate(int(c))) } -// Command returns the unpacked command byte of the CSI sequence. -func (c Command) Command() int { - return parser.Command(int(c)) +// Final returns the unpacked command byte of the CSI sequence. +func (c Cmd) Final() byte { + return byte(parser.Command(int(c))) } -// Cmd returns a packed [Command] with the given command, marker, and -// intermediate. -// The first byte is the command, the next shift is the marker, and the next -// shift is the intermediate. +// Command packs a command with the given prefix, intermediate, and final. A +// zero byte means the sequence does not have a prefix or intermediate. // -// Even though this function takes integers, it only uses the lower 8 bits of -// each integer. -func Cmd(marker, inter, cmd int) (c Command) { - c = Command(cmd & parser.CommandMask) - c |= Command(marker&parser.CommandMask) << parser.MarkerShift - c |= Command(inter&parser.CommandMask) << parser.IntermedShift +// Prefixes are in the range of 0x3C-0x3F that is one of `<=>?`. +// +// Intermediates are in the range of 0x20-0x2F that is anything in +// `!"#$%&'()*+,-./`. +// +// Final bytes are in the range of 0x40-0x7E that is anything in the range +// `@A–Z[\]^_`a–z{|}~`. +func Command(prefix, inter, final byte) (c int) { + c = int(final) + c |= int(prefix) << parser.PrefixShift + c |= int(inter) << parser.IntermedShift return } -// Parameter represents a sequence parameter. Sequence parameters with +// Param represents a sequence parameter. Sequence parameters with // sub-parameters are packed with the HasMoreFlag set. This is used to unpack // the parameters from a CSI and DCS sequences. -type Parameter int +type Param int // Param returns the unpacked parameter at the given index. // It returns the default value if the parameter is missing. -func (s Parameter) Param(def int) int { +func (s Param) Param(def int) int { p := int(s) & parser.ParamMask if p == parser.MissingParam { return def @@ -446,16 +509,16 @@ func (s Parameter) Param(def int) int { } // HasMore unpacks the HasMoreFlag from the parameter. -func (s Parameter) HasMore() bool { +func (s Param) HasMore() bool { return s&parser.HasMoreFlag != 0 } -// Param returns a packed [Parameter] with the given parameter and whether this -// parameter has following sub-parameters. -func Param(p int, hasMore bool) (s Parameter) { - s = Parameter(p & parser.ParamMask) +// Parameter packs an escape code parameter with the given parameter and +// whether this parameter has following sub-parameters. +func Parameter(p int, hasMore bool) (s int) { + s = p & parser.ParamMask if hasMore { - s |= Parameter(parser.HasMoreFlag) + s |= parser.HasMoreFlag } return } diff --git a/vendor/github.com/charmbracelet/x/ansi/parser_handler.go b/vendor/github.com/charmbracelet/x/ansi/parser_handler.go new file mode 100644 index 00000000..03f9ed4c --- /dev/null +++ b/vendor/github.com/charmbracelet/x/ansi/parser_handler.go @@ -0,0 +1,60 @@ +package ansi + +import "unsafe" + +// Params represents a list of packed parameters. +type Params []Param + +// Param returns the parameter at the given index and if it is part of a +// sub-parameters. It falls back to the default value if the parameter is +// missing. If the index is out of bounds, it returns the default value and +// false. +func (p Params) Param(i, def int) (int, bool, bool) { + if i < 0 || i >= len(p) { + return def, false, false + } + return p[i].Param(def), p[i].HasMore(), true +} + +// ForEach iterates over the parameters and calls the given function for each +// parameter. If a parameter is part of a sub-parameter, it will be called with +// hasMore set to true. +// Use def to set a default value for missing parameters. +func (p Params) ForEach(def int, f func(i, param int, hasMore bool)) { + for i := range p { + f(i, p[i].Param(def), p[i].HasMore()) + } +} + +// ToParams converts a list of integers to a list of parameters. +func ToParams(params []int) Params { + return unsafe.Slice((*Param)(unsafe.Pointer(¶ms[0])), len(params)) +} + +// Handler handles actions performed by the parser. +// It is used to handle ANSI escape sequences, control characters, and runes. +type Handler struct { + // Print is called when a printable rune is encountered. + Print func(r rune) + // Execute is called when a control character is encountered. + Execute func(b byte) + // HandleCsi is called when a CSI sequence is encountered. + HandleCsi func(cmd Cmd, params Params) + // HandleEsc is called when an ESC sequence is encountered. + HandleEsc func(cmd Cmd) + // HandleDcs is called when a DCS sequence is encountered. + HandleDcs func(cmd Cmd, params Params, data []byte) + // HandleOsc is called when an OSC sequence is encountered. + HandleOsc func(cmd int, data []byte) + // HandlePm is called when a PM sequence is encountered. + HandlePm func(data []byte) + // HandleApc is called when an APC sequence is encountered. + HandleApc func(data []byte) + // HandleSos is called when a SOS sequence is encountered. + HandleSos func(data []byte) +} + +// SetHandler sets the handler for the parser. +func (p *Parser) SetHandler(h Handler) { + p.handler = h +} diff --git a/vendor/github.com/charmbracelet/x/ansi/parser_sync.go b/vendor/github.com/charmbracelet/x/ansi/parser_sync.go index 5768a979..65d25a9a 100644 --- a/vendor/github.com/charmbracelet/x/ansi/parser_sync.go +++ b/vendor/github.com/charmbracelet/x/ansi/parser_sync.go @@ -8,7 +8,7 @@ import ( var parserPool = sync.Pool{ New: func() any { - p := NewParser(nil) + p := NewParser() p.SetParamsSize(parser.MaxParamsSize) p.SetDataSize(1024 * 1024 * 4) // 4MB of data buffer return p diff --git a/vendor/github.com/charmbracelet/x/ansi/screen.go b/vendor/github.com/charmbracelet/x/ansi/screen.go index ab726efe..c76e4f0d 100644 --- a/vendor/github.com/charmbracelet/x/ansi/screen.go +++ b/vendor/github.com/charmbracelet/x/ansi/screen.go @@ -213,6 +213,7 @@ func DECSLRM(left, right int) string { // CSI ; r // // See: https://vt100.net/docs/vt510-rm/DECSTBM.html +// // Deprecated: use [SetTopBottomMargins] instead. func SetScrollingRegion(t, b int) string { if t < 0 { diff --git a/vendor/github.com/charmbracelet/x/ansi/sequence.go b/vendor/github.com/charmbracelet/x/ansi/sequence.go deleted file mode 100644 index 4e974d1e..00000000 --- a/vendor/github.com/charmbracelet/x/ansi/sequence.go +++ /dev/null @@ -1,217 +0,0 @@ -package ansi - -import ( - "bytes" - - "github.com/charmbracelet/x/ansi/parser" -) - -// Sequence represents an ANSI sequence. This can be a control sequence, escape -// sequence, a printable character, etc. -// A Sequence can be one of the following types: -// - [Rune] -// - [ControlCode] -// - [Grapheme] -// - [EscSequence] -// - [CsiSequence] -// - [OscSequence] -// - [DcsSequence] -// - [SosSequence] -// - [PmSequence] -// - [ApcSequence] -type Sequence interface { - // Clone returns a deep copy of the sequence. - Clone() Sequence -} - -// Rune represents a printable character. -type Rune rune - -var _ Sequence = Rune(0) - -// Clone returns a deep copy of the rune. -func (r Rune) Clone() Sequence { - return r -} - -// Grapheme represents a grapheme cluster. -type Grapheme struct { - Cluster string - Width int -} - -var _ Sequence = Grapheme{} - -// Clone returns a deep copy of the grapheme. -func (g Grapheme) Clone() Sequence { - return g -} - -// ControlCode represents a control code character. This is a character that -// is not printable and is used to control the terminal. This would be a -// character in the C0 or C1 set in the range of 0x00-0x1F and 0x80-0x9F. -type ControlCode byte - -var _ Sequence = ControlCode(0) - -// Bytes implements Sequence. -func (c ControlCode) Bytes() []byte { - return []byte{byte(c)} -} - -// String implements Sequence. -func (c ControlCode) String() string { - return string(c) -} - -// Clone returns a deep copy of the control code. -func (c ControlCode) Clone() Sequence { - return c -} - -// EscSequence represents an escape sequence. -type EscSequence Command - -var _ Sequence = EscSequence(0) - -// buffer returns the buffer of the escape sequence. -func (e EscSequence) buffer() *bytes.Buffer { - var b bytes.Buffer - b.WriteByte('\x1b') - if i := parser.Intermediate(int(e)); i != 0 { - b.WriteByte(byte(i)) - } - if cmd := e.Command(); cmd != 0 { - b.WriteByte(byte(cmd)) - } - return &b -} - -// Bytes implements Sequence. -func (e EscSequence) Bytes() []byte { - return e.buffer().Bytes() -} - -// String implements Sequence. -func (e EscSequence) String() string { - return e.buffer().String() -} - -// Clone returns a deep copy of the escape sequence. -func (e EscSequence) Clone() Sequence { - return e -} - -// Command returns the command byte of the escape sequence. -func (e EscSequence) Command() int { - return Command(e).Command() -} - -// Intermediate returns the intermediate byte of the escape sequence. -func (e EscSequence) Intermediate() int { - return Command(e).Intermediate() -} - -// SosSequence represents a SOS sequence. -type SosSequence struct { - // Data contains the raw data of the sequence. - Data []byte -} - -var _ Sequence = SosSequence{} - -// Bytes implements Sequence. -func (s SosSequence) Bytes() []byte { - return s.buffer().Bytes() -} - -// String implements Sequence. -func (s SosSequence) String() string { - return s.buffer().String() -} - -func (s SosSequence) buffer() *bytes.Buffer { - var b bytes.Buffer - b.WriteByte('\x1b') - b.WriteByte('X') - b.Write(s.Data) - b.WriteString("\x1b\\") - return &b -} - -// Clone returns a deep copy of the SOS sequence. -func (s SosSequence) Clone() Sequence { - return SosSequence{ - Data: append([]byte(nil), s.Data...), - } -} - -// PmSequence represents a PM sequence. -type PmSequence struct { - // Data contains the raw data of the sequence. - Data []byte -} - -var _ Sequence = PmSequence{} - -// Bytes implements Sequence. -func (s PmSequence) Bytes() []byte { - return s.buffer().Bytes() -} - -// String implements Sequence. -func (s PmSequence) String() string { - return s.buffer().String() -} - -// buffer returns the buffer of the PM sequence. -func (s PmSequence) buffer() *bytes.Buffer { - var b bytes.Buffer - b.WriteByte('\x1b') - b.WriteByte('^') - b.Write(s.Data) - b.WriteString("\x1b\\") - return &b -} - -// Clone returns a deep copy of the PM sequence. -func (p PmSequence) Clone() Sequence { - return PmSequence{ - Data: append([]byte(nil), p.Data...), - } -} - -// ApcSequence represents an APC sequence. -type ApcSequence struct { - // Data contains the raw data of the sequence. - Data []byte -} - -var _ Sequence = ApcSequence{} - -// Clone returns a deep copy of the APC sequence. -func (a ApcSequence) Clone() Sequence { - return ApcSequence{ - Data: append([]byte(nil), a.Data...), - } -} - -// Bytes implements Sequence. -func (s ApcSequence) Bytes() []byte { - return s.buffer().Bytes() -} - -// String implements Sequence. -func (s ApcSequence) String() string { - return s.buffer().String() -} - -// buffer returns the buffer of the APC sequence. -func (s ApcSequence) buffer() *bytes.Buffer { - var b bytes.Buffer - b.WriteByte('\x1b') - b.WriteByte('_') - b.Write(s.Data) - b.WriteString("\x1b\\") - return &b -} diff --git a/vendor/github.com/charmbracelet/x/ansi/status.go b/vendor/github.com/charmbracelet/x/ansi/status.go index 6366607a..4337e189 100644 --- a/vendor/github.com/charmbracelet/x/ansi/status.go +++ b/vendor/github.com/charmbracelet/x/ansi/status.go @@ -5,25 +5,25 @@ import ( "strings" ) -// Status represents a terminal status report. -type Status interface { - // Status returns the status report identifier. - Status() int +// StatusReport represents a terminal status report. +type StatusReport interface { + // StatusReport returns the status report identifier. + StatusReport() int } -// ANSIStatus represents an ANSI terminal status report. -type ANSIStatus int //nolint:revive +// ANSIReport represents an ANSI terminal status report. +type ANSIStatusReport int //nolint:revive -// Status returns the status report identifier. -func (s ANSIStatus) Status() int { +// Report returns the status report identifier. +func (s ANSIStatusReport) StatusReport() int { return int(s) } -// DECStatus represents a DEC terminal status report. -type DECStatus int +// DECStatusReport represents a DEC terminal status report. +type DECStatusReport int // Status returns the status report identifier. -func (s DECStatus) Status() int { +func (s DECStatusReport) StatusReport() int { return int(s) } @@ -38,14 +38,14 @@ func (s DECStatus) Status() int { // format. // // See also https://vt100.net/docs/vt510-rm/DSR.html -func DeviceStatusReport(statues ...Status) string { +func DeviceStatusReport(statues ...StatusReport) string { var dec bool list := make([]string, len(statues)) seq := "\x1b[" for i, status := range statues { - list[i] = strconv.Itoa(status.Status()) + list[i] = strconv.Itoa(status.StatusReport()) switch status.(type) { - case DECStatus: + case DECStatusReport: dec = true } } @@ -56,10 +56,39 @@ func DeviceStatusReport(statues ...Status) string { } // DSR is an alias for [DeviceStatusReport]. -func DSR(status Status) string { +func DSR(status StatusReport) string { return DeviceStatusReport(status) } +// RequestCursorPositionReport is an escape sequence that requests the current +// cursor position. +// +// CSI 6 n +// +// The terminal will report the cursor position as a CSI sequence in the +// following format: +// +// CSI Pl ; Pc R +// +// Where Pl is the line number and Pc is the column number. +// See: https://vt100.net/docs/vt510-rm/CPR.html +const RequestCursorPositionReport = "\x1b[6n" + +// RequestExtendedCursorPositionReport (DECXCPR) is a sequence for requesting +// the cursor position report including the current page number. +// +// CSI ? 6 n +// +// The terminal will report the cursor position as a CSI sequence in the +// following format: +// +// CSI ? Pl ; Pc ; Pp R +// +// Where Pl is the line number, Pc is the column number, and Pp is the page +// number. +// See: https://vt100.net/docs/vt510-rm/DECXCPR.html +const RequestExtendedCursorPositionReport = "\x1b[?6n" + // CursorPositionReport (CPR) is a control sequence that reports the cursor's // position. // diff --git a/vendor/github.com/charmbracelet/x/ansi/style.go b/vendor/github.com/charmbracelet/x/ansi/style.go index 7f391156..46ddcaa9 100644 --- a/vendor/github.com/charmbracelet/x/ansi/style.go +++ b/vendor/github.com/charmbracelet/x/ansi/style.go @@ -199,7 +199,7 @@ func (s Style) UnderlineColor(c Color) Style { // UnderlineStyle represents an ANSI SGR (Select Graphic Rendition) underline // style. -type UnderlineStyle = int +type UnderlineStyle = byte const ( doubleUnderlineStyle = "4:2" @@ -487,3 +487,174 @@ func underlineColorString(c Color) string { } return defaultUnderlineColorAttr } + +// ReadStyleColor decodes a color from a slice of parameters. It returns the +// number of parameters read and the color. This function is used to read SGR +// color parameters following the ITU T.416 standard. +// +// It supports reading the following color types: +// - 0: implementation defined +// - 1: transparent +// - 2: RGB direct color +// - 3: CMY direct color +// - 4: CMYK direct color +// - 5: indexed color +// - 6: RGBA direct color (WezTerm extension) +// +// The parameters can be separated by semicolons (;) or colons (:). Mixing +// separators is not allowed. +// +// The specs supports defining a color space id, a color tolerance value, and a +// tolerance color space id. However, these values have no effect on the +// returned color and will be ignored. +// +// This implementation includes a few modifications to the specs: +// 1. Support for legacy color values separated by semicolons (;) with respect to RGB, and indexed colors +// 2. Support ignoring and omitting the color space id (second parameter) with respect to RGB colors +// 3. Support ignoring and omitting the 6th parameter with respect to RGB and CMY colors +// 4. Support reading RGBA colors +func ReadStyleColor(params Params, co *color.Color) (n int) { + if len(params) < 2 { // Need at least SGR type and color type + return 0 + } + + // First parameter indicates one of 38, 48, or 58 (foreground, background, or underline) + s := params[0] + p := params[1] + colorType := p.Param(0) + n = 2 + + paramsfn := func() (p1, p2, p3, p4 int) { + // Where should we start reading the color? + switch { + case s.HasMore() && p.HasMore() && len(params) > 8 && params[2].HasMore() && params[3].HasMore() && params[4].HasMore() && params[5].HasMore() && params[6].HasMore() && params[7].HasMore(): + // We have color space id, a 6th parameter, a tolerance value, and a tolerance color space + n += 7 + return params[3].Param(0), params[4].Param(0), params[5].Param(0), params[6].Param(0) + case s.HasMore() && p.HasMore() && len(params) > 7 && params[2].HasMore() && params[3].HasMore() && params[4].HasMore() && params[5].HasMore() && params[6].HasMore(): + // We have color space id, a 6th parameter, and a tolerance value + n += 6 + return params[3].Param(0), params[4].Param(0), params[5].Param(0), params[6].Param(0) + case s.HasMore() && p.HasMore() && len(params) > 6 && params[2].HasMore() && params[3].HasMore() && params[4].HasMore() && params[5].HasMore(): + // We have color space id and a 6th parameter + // 48 : 4 : : 1 : 2 : 3 :4 + n += 5 + return params[3].Param(0), params[4].Param(0), params[5].Param(0), params[6].Param(0) + case s.HasMore() && p.HasMore() && len(params) > 5 && params[2].HasMore() && params[3].HasMore() && params[4].HasMore() && !params[5].HasMore(): + // We have color space + // 48 : 3 : : 1 : 2 : 3 + n += 4 + return params[3].Param(0), params[4].Param(0), params[5].Param(0), -1 + case s.HasMore() && p.HasMore() && p.Param(0) == 2 && params[2].HasMore() && params[3].HasMore() && !params[4].HasMore(): + // We have color values separated by colons (:) + // 48 : 2 : 1 : 2 : 3 + fallthrough + case !s.HasMore() && !p.HasMore() && p.Param(0) == 2 && !params[2].HasMore() && !params[3].HasMore() && !params[4].HasMore(): + // Support legacy color values separated by semicolons (;) + // 48 ; 2 ; 1 ; 2 ; 3 + n += 3 + return params[2].Param(0), params[3].Param(0), params[4].Param(0), -1 + } + // Ambiguous SGR color + return -1, -1, -1, -1 + } + + switch colorType { + case 0: // implementation defined + return 2 + case 1: // transparent + *co = color.Transparent + return 2 + case 2: // RGB direct color + if len(params) < 5 { + return 0 + } + + r, g, b, _ := paramsfn() + if r == -1 || g == -1 || b == -1 { + return 0 + } + + *co = color.RGBA{ + R: uint8(r), //nolint:gosec + G: uint8(g), //nolint:gosec + B: uint8(b), //nolint:gosec + A: 0xff, + } + return + + case 3: // CMY direct color + if len(params) < 5 { + return 0 + } + + c, m, y, _ := paramsfn() + if c == -1 || m == -1 || y == -1 { + return 0 + } + + *co = color.CMYK{ + C: uint8(c), //nolint:gosec + M: uint8(m), //nolint:gosec + Y: uint8(y), //nolint:gosec + K: 0, + } + return + + case 4: // CMYK direct color + if len(params) < 6 { + return 0 + } + + c, m, y, k := paramsfn() + if c == -1 || m == -1 || y == -1 || k == -1 { + return 0 + } + + *co = color.CMYK{ + C: uint8(c), //nolint:gosec + M: uint8(m), //nolint:gosec + Y: uint8(y), //nolint:gosec + K: uint8(k), //nolint:gosec + } + return + + case 5: // indexed color + if len(params) < 3 { + return 0 + } + switch { + case s.HasMore() && p.HasMore() && !params[2].HasMore(): + // Colon separated indexed color + // 38 : 5 : 234 + case !s.HasMore() && !p.HasMore() && !params[2].HasMore(): + // Legacy semicolon indexed color + // 38 ; 5 ; 234 + default: + return 0 + } + *co = ExtendedColor(params[2].Param(0)) //nolint:gosec + return 3 + + case 6: // RGBA direct color + if len(params) < 6 { + return 0 + } + + r, g, b, a := paramsfn() + if r == -1 || g == -1 || b == -1 || a == -1 { + return 0 + } + + *co = color.RGBA{ + R: uint8(r), //nolint:gosec + G: uint8(g), //nolint:gosec + B: uint8(b), //nolint:gosec + A: uint8(a), //nolint:gosec + } + return + + default: + return 0 + } +} diff --git a/vendor/github.com/charmbracelet/x/ansi/truncate.go b/vendor/github.com/charmbracelet/x/ansi/truncate.go index 414826b6..1fa3efef 100644 --- a/vendor/github.com/charmbracelet/x/ansi/truncate.go +++ b/vendor/github.com/charmbracelet/x/ansi/truncate.go @@ -4,14 +4,65 @@ import ( "bytes" "github.com/charmbracelet/x/ansi/parser" + "github.com/mattn/go-runewidth" "github.com/rivo/uniseg" ) -// Truncate truncates a string to a given length, adding a tail to the -// end if the string is longer than the given length. -// This function is aware of ANSI escape codes and will not break them, and -// accounts for wide-characters (such as East Asians and emojis). +// Cut the string, without adding any prefix or tail strings. This function is +// aware of ANSI escape codes and will not break them, and accounts for +// wide-characters (such as East-Asian characters and emojis). Note that the +// [left] parameter is inclusive, while [right] isn't. +// This treats the text as a sequence of graphemes. +func Cut(s string, left, right int) string { + return cut(GraphemeWidth, s, left, right) +} + +// CutWc the string, without adding any prefix or tail strings. This function is +// aware of ANSI escape codes and will not break them, and accounts for +// wide-characters (such as East-Asian characters and emojis). Note that the +// [left] parameter is inclusive, while [right] isn't. +// This treats the text as a sequence of wide characters and runes. +func CutWc(s string, left, right int) string { + return cut(WcWidth, s, left, right) +} + +func cut(m Method, s string, left, right int) string { + if right <= left { + return "" + } + + truncate := Truncate + truncateLeft := TruncateLeft + if m == WcWidth { + truncate = TruncateWc + truncateLeft = TruncateWc + } + + if left == 0 { + return truncate(s, right, "") + } + return truncateLeft(Truncate(s, right, ""), left, "") +} + +// Truncate truncates a string to a given length, adding a tail to the end if +// the string is longer than the given length. This function is aware of ANSI +// escape codes and will not break them, and accounts for wide-characters (such +// as East-Asian characters and emojis). +// This treats the text as a sequence of graphemes. func Truncate(s string, length int, tail string) string { + return truncate(GraphemeWidth, s, length, tail) +} + +// TruncateWc truncates a string to a given length, adding a tail to the end if +// the string is longer than the given length. This function is aware of ANSI +// escape codes and will not break them, and accounts for wide-characters (such +// as East-Asian characters and emojis). +// This treats the text as a sequence of wide characters and runes. +func TruncateWc(s string, length int, tail string) string { + return truncate(WcWidth, s, length, tail) +} + +func truncate(m Method, s string, length int, tail string) string { if sw := StringWidth(s); sw <= length { return s } @@ -33,6 +84,7 @@ func Truncate(s string, length int, tail string) string { // Here we iterate over the bytes of the string and collect printable // characters and runes. We also keep track of the width of the string // in cells. + // // Once we reach the given length, we start ignoring characters and only // collect ANSI escape codes until we reach the end of string. for i < len(b) { @@ -41,6 +93,9 @@ func Truncate(s string, length int, tail string) string { // This action happens when we transition to the Utf8State. var width int cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) + if m == WcWidth { + width = runewidth.StringWidth(string(cluster)) + } // increment the index by the length of the cluster i += len(cluster) @@ -106,13 +161,27 @@ func Truncate(s string, length int, tail string) string { return buf.String() } -// TruncateLeft truncates a string from the left side to a given length, adding -// a prefix to the beginning if the string is longer than the given length. +// TruncateLeft truncates a string from the left side by removing n characters, +// adding a prefix to the beginning if the string is longer than n. // This function is aware of ANSI escape codes and will not break them, and -// accounts for wide-characters (such as East Asians and emojis). -func TruncateLeft(s string, length int, prefix string) string { - if length == 0 { - return "" +// accounts for wide-characters (such as East-Asian characters and emojis). +// This treats the text as a sequence of graphemes. +func TruncateLeft(s string, n int, prefix string) string { + return truncateLeft(GraphemeWidth, s, n, prefix) +} + +// TruncateLeftWc truncates a string from the left side by removing n characters, +// adding a prefix to the beginning if the string is longer than n. +// This function is aware of ANSI escape codes and will not break them, and +// accounts for wide-characters (such as East-Asian characters and emojis). +// This treats the text as a sequence of wide characters and runes. +func TruncateLeftWc(s string, n int, prefix string) string { + return truncateLeft(WcWidth, s, n, prefix) +} + +func truncateLeft(m Method, s string, n int, prefix string) string { + if n <= 0 { + return s } var cluster []byte @@ -133,11 +202,14 @@ func TruncateLeft(s string, length int, prefix string) string { if state == parser.Utf8State { var width int cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) + if m == WcWidth { + width = runewidth.StringWidth(string(cluster)) + } i += len(cluster) curWidth += width - if curWidth > length && ignoring { + if curWidth > n && ignoring { ignoring = false buf.WriteString(prefix) } @@ -146,7 +218,7 @@ func TruncateLeft(s string, length int, prefix string) string { continue } - if curWidth > length { + if curWidth > n { buf.Write(cluster) } @@ -158,7 +230,7 @@ func TruncateLeft(s string, length int, prefix string) string { case parser.PrintAction: curWidth++ - if curWidth > length && ignoring { + if curWidth > n && ignoring { ignoring = false buf.WriteString(prefix) } @@ -175,7 +247,7 @@ func TruncateLeft(s string, length int, prefix string) string { } pstate = state - if curWidth > length && ignoring { + if curWidth > n && ignoring { ignoring = false buf.WriteString(prefix) } @@ -183,3 +255,28 @@ func TruncateLeft(s string, length int, prefix string) string { return buf.String() } + +// ByteToGraphemeRange takes start and stop byte positions and converts them to +// grapheme-aware char positions. +// You can use this with [Truncate], [TruncateLeft], and [Cut]. +func ByteToGraphemeRange(str string, byteStart, byteStop int) (charStart, charStop int) { + bytePos, charPos := 0, 0 + gr := uniseg.NewGraphemes(str) + for byteStart > bytePos { + if !gr.Next() { + break + } + bytePos += len(gr.Str()) + charPos += max(1, gr.Width()) + } + charStart = charPos + for byteStop > bytePos { + if !gr.Next() { + break + } + bytePos += len(gr.Str()) + charPos += max(1, gr.Width()) + } + charStop = charPos + return +} diff --git a/vendor/github.com/charmbracelet/x/ansi/util.go b/vendor/github.com/charmbracelet/x/ansi/util.go index 49cf2730..301ef15f 100644 --- a/vendor/github.com/charmbracelet/x/ansi/util.go +++ b/vendor/github.com/charmbracelet/x/ansi/util.go @@ -90,3 +90,17 @@ func XParseColor(s string) color.Color { } return nil } + +type ordered interface { + ~int | ~int8 | ~int16 | ~int32 | ~int64 | + ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr | + ~float32 | ~float64 | + ~string +} + +func max[T ordered](a, b T) T { //nolint:predeclared + if a > b { + return a + } + return b +} diff --git a/vendor/github.com/charmbracelet/x/ansi/width.go b/vendor/github.com/charmbracelet/x/ansi/width.go index 80890e42..d0487d35 100644 --- a/vendor/github.com/charmbracelet/x/ansi/width.go +++ b/vendor/github.com/charmbracelet/x/ansi/width.go @@ -4,6 +4,7 @@ import ( "bytes" "github.com/charmbracelet/x/ansi/parser" + "github.com/mattn/go-runewidth" "github.com/rivo/uniseg" ) @@ -62,7 +63,21 @@ func Strip(s string) string { // cells that the string will occupy when printed in a terminal. ANSI escape // codes are ignored and wide characters (such as East Asians and emojis) are // accounted for. +// This treats the text as a sequence of grapheme clusters. func StringWidth(s string) int { + return stringWidth(GraphemeWidth, s) +} + +// StringWidthWc returns the width of a string in cells. This is the number of +// cells that the string will occupy when printed in a terminal. ANSI escape +// codes are ignored and wide characters (such as East Asians and emojis) are +// accounted for. +// This treats the text as a sequence of wide characters and runes. +func StringWidthWc(s string) int { + return stringWidth(WcWidth, s) +} + +func stringWidth(m Method, s string) int { if s == "" { return 0 } @@ -78,6 +93,9 @@ func StringWidth(s string) int { if state == parser.Utf8State { var w int cluster, _, w, _ = uniseg.FirstGraphemeClusterInString(s[i:], -1) + if m == WcWidth { + w = runewidth.StringWidth(cluster) + } width += w i += len(cluster) - 1 pstate = parser.GroundState diff --git a/vendor/github.com/charmbracelet/x/ansi/winop.go b/vendor/github.com/charmbracelet/x/ansi/winop.go new file mode 100644 index 00000000..0238780d --- /dev/null +++ b/vendor/github.com/charmbracelet/x/ansi/winop.go @@ -0,0 +1,53 @@ +package ansi + +import ( + "strconv" + "strings" +) + +const ( + // ResizeWindowWinOp is a window operation that resizes the terminal + // window. + ResizeWindowWinOp = 4 + + // RequestWindowSizeWinOp is a window operation that requests a report of + // the size of the terminal window in pixels. The response is in the form: + // CSI 4 ; height ; width t + RequestWindowSizeWinOp = 14 + + // RequestCellSizeWinOp is a window operation that requests a report of + // the size of the terminal cell size in pixels. The response is in the form: + // CSI 6 ; height ; width t + RequestCellSizeWinOp = 16 +) + +// WindowOp (XTWINOPS) is a sequence that manipulates the terminal window. +// +// CSI Ps ; Ps ; Ps t +// +// Ps is a semicolon-separated list of parameters. +// See https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character-lparen-s-rparen:CSI-Ps;Ps;Ps-t.1EB0 +func WindowOp(p int, ps ...int) string { + if p <= 0 { + return "" + } + + if len(ps) == 0 { + return "\x1b[" + strconv.Itoa(p) + "t" + } + + params := make([]string, 0, len(ps)+1) + params = append(params, strconv.Itoa(p)) + for _, p := range ps { + if p >= 0 { + params = append(params, strconv.Itoa(p)) + } + } + + return "\x1b[" + strings.Join(params, ";") + "t" +} + +// XTWINOPS is an alias for [WindowOp]. +func XTWINOPS(p int, ps ...int) string { + return WindowOp(p, ps...) +} diff --git a/vendor/github.com/charmbracelet/x/ansi/wrap.go b/vendor/github.com/charmbracelet/x/ansi/wrap.go index c49cbdeb..6b995800 100644 --- a/vendor/github.com/charmbracelet/x/ansi/wrap.go +++ b/vendor/github.com/charmbracelet/x/ansi/wrap.go @@ -6,6 +6,7 @@ import ( "unicode/utf8" "github.com/charmbracelet/x/ansi/parser" + "github.com/mattn/go-runewidth" "github.com/rivo/uniseg" ) @@ -17,7 +18,22 @@ const nbsp = 0xA0 // wide-characters in the string. // When preserveSpace is true, spaces at the beginning of a line will be // preserved. +// This treats the text as a sequence of graphemes. func Hardwrap(s string, limit int, preserveSpace bool) string { + return hardwrap(GraphemeWidth, s, limit, preserveSpace) +} + +// HardwrapWc wraps a string or a block of text to a given line length, breaking +// word boundaries. This will preserve ANSI escape codes and will account for +// wide-characters in the string. +// When preserveSpace is true, spaces at the beginning of a line will be +// preserved. +// This treats the text as a sequence of wide characters and runes. +func HardwrapWc(s string, limit int, preserveSpace bool) string { + return hardwrap(WcWidth, s, limit, preserveSpace) +} + +func hardwrap(m Method, s string, limit int, preserveSpace bool) string { if limit < 1 { return s } @@ -42,6 +58,9 @@ func Hardwrap(s string, limit int, preserveSpace bool) string { if state == parser.Utf8State { var width int cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) + if m == WcWidth { + width = runewidth.StringWidth(string(cluster)) + } i += len(cluster) if curWidth+width > limit { @@ -108,7 +127,27 @@ func Hardwrap(s string, limit int, preserveSpace bool) string { // breakpoint. // // Note: breakpoints must be a string of 1-cell wide rune characters. +// +// This treats the text as a sequence of graphemes. func Wordwrap(s string, limit int, breakpoints string) string { + return wordwrap(GraphemeWidth, s, limit, breakpoints) +} + +// WordwrapWc wraps a string or a block of text to a given line length, not +// breaking word boundaries. This will preserve ANSI escape codes and will +// account for wide-characters in the string. +// The breakpoints string is a list of characters that are considered +// breakpoints for word wrapping. A hyphen (-) is always considered a +// breakpoint. +// +// Note: breakpoints must be a string of 1-cell wide rune characters. +// +// This treats the text as a sequence of wide characters and runes. +func WordwrapWc(s string, limit int, breakpoints string) string { + return wordwrap(WcWidth, s, limit, breakpoints) +} + +func wordwrap(m Method, s string, limit int, breakpoints string) string { if limit < 1 { return s } @@ -154,6 +193,9 @@ func Wordwrap(s string, limit int, breakpoints string) string { if state == parser.Utf8State { var width int cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) + if m == WcWidth { + width = runewidth.StringWidth(string(cluster)) + } i += len(cluster) r, _ := utf8.DecodeRune(cluster) @@ -236,7 +278,26 @@ func Wordwrap(s string, limit int, breakpoints string) string { // (-) is always considered a breakpoint. // // Note: breakpoints must be a string of 1-cell wide rune characters. +// +// This treats the text as a sequence of graphemes. func Wrap(s string, limit int, breakpoints string) string { + return wrap(GraphemeWidth, s, limit, breakpoints) +} + +// WrapWc wraps a string or a block of text to a given line length, breaking word +// boundaries if necessary. This will preserve ANSI escape codes and will +// account for wide-characters in the string. The breakpoints string is a list +// of characters that are considered breakpoints for word wrapping. A hyphen +// (-) is always considered a breakpoint. +// +// Note: breakpoints must be a string of 1-cell wide rune characters. +// +// This treats the text as a sequence of wide characters and runes. +func WrapWc(s string, limit int, breakpoints string) string { + return wrap(WcWidth, s, limit, breakpoints) +} + +func wrap(m Method, s string, limit int, breakpoints string) string { if limit < 1 { return s } @@ -282,6 +343,9 @@ func Wrap(s string, limit int, breakpoints string) string { if state == parser.Utf8State { var width int cluster, _, width, _ = uniseg.FirstGraphemeCluster(b[i:], -1) + if m == WcWidth { + width = runewidth.StringWidth(string(cluster)) + } i += len(cluster) r, _ := utf8.DecodeRune(cluster) diff --git a/vendor/github.com/charmbracelet/x/ansi/xterm.go b/vendor/github.com/charmbracelet/x/ansi/xterm.go index 129bd5fe..83fd4bdc 100644 --- a/vendor/github.com/charmbracelet/x/ansi/xterm.go +++ b/vendor/github.com/charmbracelet/x/ansi/xterm.go @@ -91,6 +91,7 @@ const ( // // See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ // See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys +// // Deprecated: use [SetModifyOtherKeys1] or [SetModifyOtherKeys2] instead. func ModifyOtherKeys(mode int) string { return "\x1b[>4;" + strconv.Itoa(mode) + "m" @@ -102,6 +103,7 @@ func ModifyOtherKeys(mode int) string { // // See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ // See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys +// // Deprecated: use [ResetModifyOtherKeys] instead. const DisableModifyOtherKeys = "\x1b[>4;0m" @@ -111,6 +113,7 @@ const DisableModifyOtherKeys = "\x1b[>4;0m" // // See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ // See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys +// // Deprecated: use [SetModifyOtherKeys1] instead. const EnableModifyOtherKeys1 = "\x1b[>4;1m" @@ -120,6 +123,7 @@ const EnableModifyOtherKeys1 = "\x1b[>4;1m" // // See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ // See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys +// // Deprecated: use [SetModifyOtherKeys2] instead. const EnableModifyOtherKeys2 = "\x1b[>4;2m" @@ -129,5 +133,6 @@ const EnableModifyOtherKeys2 = "\x1b[>4;2m" // // See: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Functions-using-CSI-_-ordered-by-the-final-character_s_ // See: https://invisible-island.net/xterm/manpage/xterm.html#VT100-Widget-Resources:modifyOtherKeys +// // Deprecated: use [QueryModifyOtherKeys] instead. const RequestModifyOtherKeys = "\x1b[?4m" diff --git a/vendor/github.com/charmbracelet/x/cellbuf/LICENSE b/vendor/github.com/charmbracelet/x/cellbuf/LICENSE new file mode 100644 index 00000000..65a5654e --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Charmbracelet, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/charmbracelet/x/cellbuf/buffer.go b/vendor/github.com/charmbracelet/x/cellbuf/buffer.go new file mode 100644 index 00000000..790d1f7c --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/buffer.go @@ -0,0 +1,473 @@ +package cellbuf + +import ( + "strings" + + "github.com/mattn/go-runewidth" + "github.com/rivo/uniseg" +) + +// NewCell returns a new cell. This is a convenience function that initializes a +// new cell with the given content. The cell's width is determined by the +// content using [runewidth.RuneWidth]. +// This will only account for the first combined rune in the content. If the +// content is empty, it will return an empty cell with a width of 0. +func NewCell(r rune, comb ...rune) (c *Cell) { + c = new(Cell) + c.Rune = r + c.Width = runewidth.RuneWidth(r) + for _, r := range comb { + if runewidth.RuneWidth(r) > 0 { + break + } + c.Comb = append(c.Comb, r) + } + c.Comb = comb + c.Width = runewidth.StringWidth(string(append([]rune{r}, comb...))) + return +} + +// NewCellString returns a new cell with the given string content. This is a +// convenience function that initializes a new cell with the given content. The +// cell's width is determined by the content using [runewidth.StringWidth]. +// This will only use the first combined rune in the string. If the string is +// empty, it will return an empty cell with a width of 0. +func NewCellString(s string) (c *Cell) { + c = new(Cell) + for i, r := range s { + if i == 0 { + c.Rune = r + // We only care about the first rune's width + c.Width = runewidth.RuneWidth(r) + } else { + if runewidth.RuneWidth(r) > 0 { + break + } + c.Comb = append(c.Comb, r) + } + } + return +} + +// NewGraphemeCell returns a new cell. This is a convenience function that +// initializes a new cell with the given content. The cell's width is determined +// by the content using [uniseg.FirstGraphemeClusterInString]. +// This is used when the content is a grapheme cluster i.e. a sequence of runes +// that form a single visual unit. +// This will only return the first grapheme cluster in the string. If the +// string is empty, it will return an empty cell with a width of 0. +func NewGraphemeCell(s string) (c *Cell) { + g, _, w, _ := uniseg.FirstGraphemeClusterInString(s, -1) + return newGraphemeCell(g, w) +} + +func newGraphemeCell(s string, w int) (c *Cell) { + c = new(Cell) + c.Width = w + for i, r := range s { + if i == 0 { + c.Rune = r + } else { + c.Comb = append(c.Comb, r) + } + } + return +} + +// Line represents a line in the terminal. +// A nil cell represents an blank cell, a cell with a space character and a +// width of 1. +// If a cell has no content and a width of 0, it is a placeholder for a wide +// cell. +type Line []*Cell + +// Width returns the width of the line. +func (l Line) Width() int { + return len(l) +} + +// Len returns the length of the line. +func (l Line) Len() int { + return len(l) +} + +// String returns the string representation of the line. Any trailing spaces +// are removed. +func (l Line) String() (s string) { + for _, c := range l { + if c == nil { + s += " " + } else if c.Empty() { + continue + } else { + s += c.String() + } + } + s = strings.TrimRight(s, " ") + return +} + +// At returns the cell at the given x position. +// If the cell does not exist, it returns nil. +func (l Line) At(x int) *Cell { + if x < 0 || x >= len(l) { + return nil + } + + c := l[x] + if c == nil { + newCell := BlankCell + return &newCell + } + + return c +} + +// Set sets the cell at the given x position. If a wide cell is given, it will +// set the cell and the following cells to [EmptyCell]. It returns true if the +// cell was set. +func (l Line) Set(x int, c *Cell) bool { + return l.set(x, c, true) +} + +func (l Line) set(x int, c *Cell, clone bool) bool { + width := l.Width() + if x < 0 || x >= width { + return false + } + + // When a wide cell is partially overwritten, we need + // to fill the rest of the cell with space cells to + // avoid rendering issues. + prev := l.At(x) + if prev != nil && prev.Width > 1 { + // Writing to the first wide cell + for j := 0; j < prev.Width && x+j < l.Width(); j++ { + l[x+j] = prev.Clone().Blank() + } + } else if prev != nil && prev.Width == 0 { + // Writing to wide cell placeholders + for j := 1; j < maxCellWidth && x-j >= 0; j++ { + wide := l.At(x - j) + if wide != nil && wide.Width > 1 && j < wide.Width { + for k := 0; k < wide.Width; k++ { + l[x-j+k] = wide.Clone().Blank() + } + break + } + } + } + + if clone && c != nil { + // Clone the cell if not nil. + c = c.Clone() + } + + if c != nil && x+c.Width > width { + // If the cell is too wide, we write blanks with the same style. + for i := 0; i < c.Width && x+i < width; i++ { + l[x+i] = c.Clone().Blank() + } + } else { + l[x] = c + + // Mark wide cells with an empty cell zero width + // We set the wide cell down below + if c != nil && c.Width > 1 { + for j := 1; j < c.Width && x+j < l.Width(); j++ { + var wide Cell + l[x+j] = &wide + } + } + } + + return true +} + +// Buffer is a 2D grid of cells representing a screen or terminal. +type Buffer struct { + // Lines holds the lines of the buffer. + Lines []Line +} + +// NewBuffer creates a new buffer with the given width and height. +// This is a convenience function that initializes a new buffer and resizes it. +func NewBuffer(width int, height int) *Buffer { + b := new(Buffer) + b.Resize(width, height) + return b +} + +// String returns the string representation of the buffer. +func (b *Buffer) String() (s string) { + for i, l := range b.Lines { + s += l.String() + if i < len(b.Lines)-1 { + s += "\r\n" + } + } + return +} + +// Line returns a pointer to the line at the given y position. +// If the line does not exist, it returns nil. +func (b *Buffer) Line(y int) Line { + if y < 0 || y >= len(b.Lines) { + return nil + } + return b.Lines[y] +} + +// Cell implements Screen. +func (b *Buffer) Cell(x int, y int) *Cell { + if y < 0 || y >= len(b.Lines) { + return nil + } + return b.Lines[y].At(x) +} + +// maxCellWidth is the maximum width a terminal cell can get. +const maxCellWidth = 4 + +// SetCell sets the cell at the given x, y position. +func (b *Buffer) SetCell(x, y int, c *Cell) bool { + return b.setCell(x, y, c, true) +} + +// setCell sets the cell at the given x, y position. This will always clone and +// allocates a new cell if c is not nil. +func (b *Buffer) setCell(x, y int, c *Cell, clone bool) bool { + if y < 0 || y >= len(b.Lines) { + return false + } + return b.Lines[y].set(x, c, clone) +} + +// Height implements Screen. +func (b *Buffer) Height() int { + return len(b.Lines) +} + +// Width implements Screen. +func (b *Buffer) Width() int { + if len(b.Lines) == 0 { + return 0 + } + return b.Lines[0].Width() +} + +// Bounds returns the bounds of the buffer. +func (b *Buffer) Bounds() Rectangle { + return Rect(0, 0, b.Width(), b.Height()) +} + +// Resize resizes the buffer to the given width and height. +func (b *Buffer) Resize(width int, height int) { + if width == 0 || height == 0 { + b.Lines = nil + return + } + + if width > b.Width() { + line := make(Line, width-b.Width()) + for i := range b.Lines { + b.Lines[i] = append(b.Lines[i], line...) + } + } else if width < b.Width() { + for i := range b.Lines { + b.Lines[i] = b.Lines[i][:width] + } + } + + if height > len(b.Lines) { + for i := len(b.Lines); i < height; i++ { + b.Lines = append(b.Lines, make(Line, width)) + } + } else if height < len(b.Lines) { + b.Lines = b.Lines[:height] + } +} + +// FillRect fills the buffer with the given cell and rectangle. +func (b *Buffer) FillRect(c *Cell, rect Rectangle) { + cellWidth := 1 + if c != nil && c.Width > 1 { + cellWidth = c.Width + } + for y := rect.Min.Y; y < rect.Max.Y; y++ { + for x := rect.Min.X; x < rect.Max.X; x += cellWidth { + b.setCell(x, y, c, false) //nolint:errcheck + } + } +} + +// Fill fills the buffer with the given cell and rectangle. +func (b *Buffer) Fill(c *Cell) { + b.FillRect(c, b.Bounds()) +} + +// Clear clears the buffer with space cells and rectangle. +func (b *Buffer) Clear() { + b.ClearRect(b.Bounds()) +} + +// ClearRect clears the buffer with space cells within the specified +// rectangles. Only cells within the rectangle's bounds are affected. +func (b *Buffer) ClearRect(rect Rectangle) { + b.FillRect(nil, rect) +} + +// InsertLine inserts n lines at the given line position, with the given +// optional cell, within the specified rectangles. If no rectangles are +// specified, it inserts lines in the entire buffer. Only cells within the +// rectangle's horizontal bounds are affected. Lines are pushed out of the +// rectangle bounds and lost. This follows terminal [ansi.IL] behavior. +// It returns the pushed out lines. +func (b *Buffer) InsertLine(y, n int, c *Cell) { + b.InsertLineRect(y, n, c, b.Bounds()) +} + +// InsertLineRect inserts new lines at the given line position, with the +// given optional cell, within the rectangle bounds. Only cells within the +// rectangle's horizontal bounds are affected. Lines are pushed out of the +// rectangle bounds and lost. This follows terminal [ansi.IL] behavior. +func (b *Buffer) InsertLineRect(y, n int, c *Cell, rect Rectangle) { + if n <= 0 || y < rect.Min.Y || y >= rect.Max.Y || y >= b.Height() { + return + } + + // Limit number of lines to insert to available space + if y+n > rect.Max.Y { + n = rect.Max.Y - y + } + + // Move existing lines down within the bounds + for i := rect.Max.Y - 1; i >= y+n; i-- { + for x := rect.Min.X; x < rect.Max.X; x++ { + // We don't need to clone c here because we're just moving lines down. + b.setCell(x, i, b.Lines[i-n][x], false) + } + } + + // Clear the newly inserted lines within bounds + for i := y; i < y+n; i++ { + for x := rect.Min.X; x < rect.Max.X; x++ { + b.setCell(x, i, c, true) + } + } +} + +// DeleteLineRect deletes lines at the given line position, with the given +// optional cell, within the rectangle bounds. Only cells within the +// rectangle's bounds are affected. Lines are shifted up within the bounds and +// new blank lines are created at the bottom. This follows terminal [ansi.DL] +// behavior. +func (b *Buffer) DeleteLineRect(y, n int, c *Cell, rect Rectangle) { + if n <= 0 || y < rect.Min.Y || y >= rect.Max.Y || y >= b.Height() { + return + } + + // Limit deletion count to available space in scroll region + if n > rect.Max.Y-y { + n = rect.Max.Y - y + } + + // Shift cells up within the bounds + for dst := y; dst < rect.Max.Y-n; dst++ { + src := dst + n + for x := rect.Min.X; x < rect.Max.X; x++ { + // We don't need to clone c here because we're just moving cells up. + // b.lines[dst][x] = b.lines[src][x] + b.setCell(x, dst, b.Lines[src][x], false) + } + } + + // Fill the bottom n lines with blank cells + for i := rect.Max.Y - n; i < rect.Max.Y; i++ { + for x := rect.Min.X; x < rect.Max.X; x++ { + b.setCell(x, i, c, true) + } + } +} + +// DeleteLine deletes n lines at the given line position, with the given +// optional cell, within the specified rectangles. If no rectangles are +// specified, it deletes lines in the entire buffer. +func (b *Buffer) DeleteLine(y, n int, c *Cell) { + b.DeleteLineRect(y, n, c, b.Bounds()) +} + +// InsertCell inserts new cells at the given position, with the given optional +// cell, within the specified rectangles. If no rectangles are specified, it +// inserts cells in the entire buffer. This follows terminal [ansi.ICH] +// behavior. +func (b *Buffer) InsertCell(x, y, n int, c *Cell) { + b.InsertCellRect(x, y, n, c, b.Bounds()) +} + +// InsertCellRect inserts new cells at the given position, with the given +// optional cell, within the rectangle bounds. Only cells within the +// rectangle's bounds are affected, following terminal [ansi.ICH] behavior. +func (b *Buffer) InsertCellRect(x, y, n int, c *Cell, rect Rectangle) { + if n <= 0 || y < rect.Min.Y || y >= rect.Max.Y || y >= b.Height() || + x < rect.Min.X || x >= rect.Max.X || x >= b.Width() { + return + } + + // Limit number of cells to insert to available space + if x+n > rect.Max.X { + n = rect.Max.X - x + } + + // Move existing cells within rectangle bounds to the right + for i := rect.Max.X - 1; i >= x+n && i-n >= rect.Min.X; i-- { + // We don't need to clone c here because we're just moving cells to the + // right. + // b.lines[y][i] = b.lines[y][i-n] + b.setCell(i, y, b.Lines[y][i-n], false) + } + + // Clear the newly inserted cells within rectangle bounds + for i := x; i < x+n && i < rect.Max.X; i++ { + b.setCell(i, y, c, true) + } +} + +// DeleteCell deletes cells at the given position, with the given optional +// cell, within the specified rectangles. If no rectangles are specified, it +// deletes cells in the entire buffer. This follows terminal [ansi.DCH] +// behavior. +func (b *Buffer) DeleteCell(x, y, n int, c *Cell) { + b.DeleteCellRect(x, y, n, c, b.Bounds()) +} + +// DeleteCellRect deletes cells at the given position, with the given +// optional cell, within the rectangle bounds. Only cells within the +// rectangle's bounds are affected, following terminal [ansi.DCH] behavior. +func (b *Buffer) DeleteCellRect(x, y, n int, c *Cell, rect Rectangle) { + if n <= 0 || y < rect.Min.Y || y >= rect.Max.Y || y >= b.Height() || + x < rect.Min.X || x >= rect.Max.X || x >= b.Width() { + return + } + + // Calculate how many positions we can actually delete + remainingCells := rect.Max.X - x + if n > remainingCells { + n = remainingCells + } + + // Shift the remaining cells to the left + for i := x; i < rect.Max.X-n; i++ { + if i+n < rect.Max.X { + // We don't need to clone c here because we're just moving cells to + // the left. + // b.lines[y][i] = b.lines[y][i+n] + b.setCell(i, y, b.Lines[y][i+n], false) + } + } + + // Fill the vacated positions with the given cell + for i := rect.Max.X - n; i < rect.Max.X; i++ { + b.setCell(i, y, c, true) + } +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/cell.go b/vendor/github.com/charmbracelet/x/cellbuf/cell.go new file mode 100644 index 00000000..4d49d45e --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/cell.go @@ -0,0 +1,508 @@ +package cellbuf + +import ( + "github.com/charmbracelet/x/ansi" +) + +var ( + // BlankCell is a cell with a single space, width of 1, and no style or link. + BlankCell = Cell{Rune: ' ', Width: 1} + + // EmptyCell is just an empty cell used for comparisons and as a placeholder + // for wide cells. + EmptyCell = Cell{} +) + +// Cell represents a single cell in the terminal screen. +type Cell struct { + // The style of the cell. Nil style means no style. Zero value prints a + // reset sequence. + Style Style + + // Link is the hyperlink of the cell. + Link Link + + // Comb is the combining runes of the cell. This is nil if the cell is a + // single rune or if it's a zero width cell that is part of a wider cell. + Comb []rune + + // Width is the mono-space width of the grapheme cluster. + Width int + + // Rune is the main rune of the cell. This is zero if the cell is part of a + // wider cell. + Rune rune +} + +// Append appends runes to the cell without changing the width. This is useful +// when we want to use the cell to store escape sequences or other runes that +// don't affect the width of the cell. +func (c *Cell) Append(r ...rune) { + for i, r := range r { + if i == 0 && c.Rune == 0 { + c.Rune = r + continue + } + c.Comb = append(c.Comb, r) + } +} + +// String returns the string content of the cell excluding any styles, links, +// and escape sequences. +func (c Cell) String() string { + if c.Rune == 0 { + return "" + } + if len(c.Comb) == 0 { + return string(c.Rune) + } + return string(append([]rune{c.Rune}, c.Comb...)) +} + +// Equal returns whether the cell is equal to the other cell. +func (c *Cell) Equal(o *Cell) bool { + return o != nil && + c.Width == o.Width && + c.Rune == o.Rune && + runesEqual(c.Comb, o.Comb) && + c.Style.Equal(&o.Style) && + c.Link.Equal(&o.Link) +} + +// Empty returns whether the cell is an empty cell. An empty cell is a cell +// with a width of 0, a rune of 0, and no combining runes. +func (c Cell) Empty() bool { + return c.Width == 0 && + c.Rune == 0 && + len(c.Comb) == 0 +} + +// Reset resets the cell to the default state zero value. +func (c *Cell) Reset() { + c.Rune = 0 + c.Comb = nil + c.Width = 0 + c.Style.Reset() + c.Link.Reset() +} + +// Clear returns whether the cell consists of only attributes that don't +// affect appearance of a space character. +func (c *Cell) Clear() bool { + return c.Rune == ' ' && len(c.Comb) == 0 && c.Width == 1 && c.Style.Clear() && c.Link.Empty() +} + +// Clone returns a copy of the cell. +func (c *Cell) Clone() (n *Cell) { + n = new(Cell) + *n = *c + return +} + +// Blank makes the cell a blank cell by setting the rune to a space, comb to +// nil, and the width to 1. +func (c *Cell) Blank() *Cell { + c.Rune = ' ' + c.Comb = nil + c.Width = 1 + return c +} + +// Link represents a hyperlink in the terminal screen. +type Link struct { + URL string + Params string +} + +// String returns a string representation of the hyperlink. +func (h Link) String() string { + return h.URL +} + +// Reset resets the hyperlink to the default state zero value. +func (h *Link) Reset() { + h.URL = "" + h.Params = "" +} + +// Equal returns whether the hyperlink is equal to the other hyperlink. +func (h *Link) Equal(o *Link) bool { + return o != nil && h.URL == o.URL && h.Params == o.Params +} + +// Empty returns whether the hyperlink is empty. +func (h Link) Empty() bool { + return h.URL == "" && h.Params == "" +} + +// AttrMask is a bitmask for text attributes that can change the look of text. +// These attributes can be combined to create different styles. +type AttrMask uint8 + +// These are the available text attributes that can be combined to create +// different styles. +const ( + BoldAttr AttrMask = 1 << iota + FaintAttr + ItalicAttr + SlowBlinkAttr + RapidBlinkAttr + ReverseAttr + ConcealAttr + StrikethroughAttr + + ResetAttr AttrMask = 0 +) + +// Contains returns whether the attribute mask contains the attribute. +func (a AttrMask) Contains(attr AttrMask) bool { + return a&attr == attr +} + +// UnderlineStyle is the style of underline to use for text. +type UnderlineStyle = ansi.UnderlineStyle + +// These are the available underline styles. +const ( + NoUnderline = ansi.NoUnderlineStyle + SingleUnderline = ansi.SingleUnderlineStyle + DoubleUnderline = ansi.DoubleUnderlineStyle + CurlyUnderline = ansi.CurlyUnderlineStyle + DottedUnderline = ansi.DottedUnderlineStyle + DashedUnderline = ansi.DashedUnderlineStyle +) + +// Style represents the Style of a cell. +type Style struct { + Fg ansi.Color + Bg ansi.Color + Ul ansi.Color + Attrs AttrMask + UlStyle UnderlineStyle +} + +// Sequence returns the ANSI sequence that sets the style. +func (s Style) Sequence() string { + if s.Empty() { + return ansi.ResetStyle + } + + var b ansi.Style + + if s.Attrs != 0 { + if s.Attrs&BoldAttr != 0 { + b = b.Bold() + } + if s.Attrs&FaintAttr != 0 { + b = b.Faint() + } + if s.Attrs&ItalicAttr != 0 { + b = b.Italic() + } + if s.Attrs&SlowBlinkAttr != 0 { + b = b.SlowBlink() + } + if s.Attrs&RapidBlinkAttr != 0 { + b = b.RapidBlink() + } + if s.Attrs&ReverseAttr != 0 { + b = b.Reverse() + } + if s.Attrs&ConcealAttr != 0 { + b = b.Conceal() + } + if s.Attrs&StrikethroughAttr != 0 { + b = b.Strikethrough() + } + } + if s.UlStyle != NoUnderline { + switch s.UlStyle { + case SingleUnderline: + b = b.Underline() + case DoubleUnderline: + b = b.DoubleUnderline() + case CurlyUnderline: + b = b.CurlyUnderline() + case DottedUnderline: + b = b.DottedUnderline() + case DashedUnderline: + b = b.DashedUnderline() + } + } + if s.Fg != nil { + b = b.ForegroundColor(s.Fg) + } + if s.Bg != nil { + b = b.BackgroundColor(s.Bg) + } + if s.Ul != nil { + b = b.UnderlineColor(s.Ul) + } + + return b.String() +} + +// DiffSequence returns the ANSI sequence that sets the style as a diff from +// another style. +func (s Style) DiffSequence(o Style) string { + if o.Empty() { + return s.Sequence() + } + + var b ansi.Style + + if !colorEqual(s.Fg, o.Fg) { + b = b.ForegroundColor(s.Fg) + } + + if !colorEqual(s.Bg, o.Bg) { + b = b.BackgroundColor(s.Bg) + } + + if !colorEqual(s.Ul, o.Ul) { + b = b.UnderlineColor(s.Ul) + } + + var ( + noBlink bool + isNormal bool + ) + + if s.Attrs != o.Attrs { + if s.Attrs&BoldAttr != o.Attrs&BoldAttr { + if s.Attrs&BoldAttr != 0 { + b = b.Bold() + } else if !isNormal { + isNormal = true + b = b.NormalIntensity() + } + } + if s.Attrs&FaintAttr != o.Attrs&FaintAttr { + if s.Attrs&FaintAttr != 0 { + b = b.Faint() + } else if !isNormal { + b = b.NormalIntensity() + } + } + if s.Attrs&ItalicAttr != o.Attrs&ItalicAttr { + if s.Attrs&ItalicAttr != 0 { + b = b.Italic() + } else { + b = b.NoItalic() + } + } + if s.Attrs&SlowBlinkAttr != o.Attrs&SlowBlinkAttr { + if s.Attrs&SlowBlinkAttr != 0 { + b = b.SlowBlink() + } else if !noBlink { + noBlink = true + b = b.NoBlink() + } + } + if s.Attrs&RapidBlinkAttr != o.Attrs&RapidBlinkAttr { + if s.Attrs&RapidBlinkAttr != 0 { + b = b.RapidBlink() + } else if !noBlink { + b = b.NoBlink() + } + } + if s.Attrs&ReverseAttr != o.Attrs&ReverseAttr { + if s.Attrs&ReverseAttr != 0 { + b = b.Reverse() + } else { + b = b.NoReverse() + } + } + if s.Attrs&ConcealAttr != o.Attrs&ConcealAttr { + if s.Attrs&ConcealAttr != 0 { + b = b.Conceal() + } else { + b = b.NoConceal() + } + } + if s.Attrs&StrikethroughAttr != o.Attrs&StrikethroughAttr { + if s.Attrs&StrikethroughAttr != 0 { + b = b.Strikethrough() + } else { + b = b.NoStrikethrough() + } + } + } + + if s.UlStyle != o.UlStyle { + b = b.UnderlineStyle(s.UlStyle) + } + + return b.String() +} + +// Equal returns true if the style is equal to the other style. +func (s *Style) Equal(o *Style) bool { + return s.Attrs == o.Attrs && + s.UlStyle == o.UlStyle && + colorEqual(s.Fg, o.Fg) && + colorEqual(s.Bg, o.Bg) && + colorEqual(s.Ul, o.Ul) +} + +func colorEqual(c, o ansi.Color) bool { + if c == nil && o == nil { + return true + } + if c == nil || o == nil { + return false + } + cr, cg, cb, ca := c.RGBA() + or, og, ob, oa := o.RGBA() + return cr == or && cg == og && cb == ob && ca == oa +} + +// Bold sets the bold attribute. +func (s *Style) Bold(v bool) *Style { + if v { + s.Attrs |= BoldAttr + } else { + s.Attrs &^= BoldAttr + } + return s +} + +// Faint sets the faint attribute. +func (s *Style) Faint(v bool) *Style { + if v { + s.Attrs |= FaintAttr + } else { + s.Attrs &^= FaintAttr + } + return s +} + +// Italic sets the italic attribute. +func (s *Style) Italic(v bool) *Style { + if v { + s.Attrs |= ItalicAttr + } else { + s.Attrs &^= ItalicAttr + } + return s +} + +// SlowBlink sets the slow blink attribute. +func (s *Style) SlowBlink(v bool) *Style { + if v { + s.Attrs |= SlowBlinkAttr + } else { + s.Attrs &^= SlowBlinkAttr + } + return s +} + +// RapidBlink sets the rapid blink attribute. +func (s *Style) RapidBlink(v bool) *Style { + if v { + s.Attrs |= RapidBlinkAttr + } else { + s.Attrs &^= RapidBlinkAttr + } + return s +} + +// Reverse sets the reverse attribute. +func (s *Style) Reverse(v bool) *Style { + if v { + s.Attrs |= ReverseAttr + } else { + s.Attrs &^= ReverseAttr + } + return s +} + +// Conceal sets the conceal attribute. +func (s *Style) Conceal(v bool) *Style { + if v { + s.Attrs |= ConcealAttr + } else { + s.Attrs &^= ConcealAttr + } + return s +} + +// Strikethrough sets the strikethrough attribute. +func (s *Style) Strikethrough(v bool) *Style { + if v { + s.Attrs |= StrikethroughAttr + } else { + s.Attrs &^= StrikethroughAttr + } + return s +} + +// UnderlineStyle sets the underline style. +func (s *Style) UnderlineStyle(style UnderlineStyle) *Style { + s.UlStyle = style + return s +} + +// Underline sets the underline attribute. +// This is a syntactic sugar for [UnderlineStyle]. +func (s *Style) Underline(v bool) *Style { + if v { + return s.UnderlineStyle(SingleUnderline) + } + return s.UnderlineStyle(NoUnderline) +} + +// Foreground sets the foreground color. +func (s *Style) Foreground(c ansi.Color) *Style { + s.Fg = c + return s +} + +// Background sets the background color. +func (s *Style) Background(c ansi.Color) *Style { + s.Bg = c + return s +} + +// UnderlineColor sets the underline color. +func (s *Style) UnderlineColor(c ansi.Color) *Style { + s.Ul = c + return s +} + +// Reset resets the style to default. +func (s *Style) Reset() *Style { + s.Fg = nil + s.Bg = nil + s.Ul = nil + s.Attrs = ResetAttr + s.UlStyle = NoUnderline + return s +} + +// Empty returns true if the style is empty. +func (s *Style) Empty() bool { + return s.Fg == nil && s.Bg == nil && s.Ul == nil && s.Attrs == ResetAttr && s.UlStyle == NoUnderline +} + +// Clear returns whether the style consists of only attributes that don't +// affect appearance of a space character. +func (s *Style) Clear() bool { + return s.UlStyle == NoUnderline && + s.Attrs&^(BoldAttr|FaintAttr|ItalicAttr|SlowBlinkAttr|RapidBlinkAttr) == 0 && + s.Fg == nil && + s.Bg == nil && + s.Ul == nil +} + +func runesEqual(a, b []rune) bool { + if len(a) != len(b) { + return false + } + for i, r := range a { + if r != b[i] { + return false + } + } + return true +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/errors.go b/vendor/github.com/charmbracelet/x/cellbuf/errors.go new file mode 100644 index 00000000..64258fe3 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/errors.go @@ -0,0 +1,6 @@ +package cellbuf + +import "errors" + +// ErrOutOfBounds is returned when the given x, y position is out of bounds. +var ErrOutOfBounds = errors.New("out of bounds") diff --git a/vendor/github.com/charmbracelet/x/cellbuf/geom.go b/vendor/github.com/charmbracelet/x/cellbuf/geom.go new file mode 100644 index 00000000..c12e6fb1 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/geom.go @@ -0,0 +1,21 @@ +package cellbuf + +import ( + "image" +) + +// Position represents an x, y position. +type Position = image.Point + +// Pos is a shorthand for Position{X: x, Y: y}. +func Pos(x, y int) Position { + return image.Pt(x, y) +} + +// Rectange represents a rectangle. +type Rectangle = image.Rectangle + +// Rect is a shorthand for Rectangle. +func Rect(x, y, w, h int) Rectangle { + return image.Rect(x, y, x+w, y+h) +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/hardscroll.go b/vendor/github.com/charmbracelet/x/cellbuf/hardscroll.go new file mode 100644 index 00000000..402ac06a --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/hardscroll.go @@ -0,0 +1,272 @@ +package cellbuf + +import ( + "strings" + + "github.com/charmbracelet/x/ansi" +) + +// scrollOptimize optimizes the screen to transform the old buffer into the new +// buffer. +func (s *Screen) scrollOptimize() { + height := s.newbuf.Height() + if s.oldnum == nil || len(s.oldnum) < height { + s.oldnum = make([]int, height) + } + + // Calculate the indices + s.updateHashmap() + if len(s.hashtab) < height { + return + } + + // Pass 1 - from top to bottom scrolling up + for i := 0; i < height; { + for i < height && (s.oldnum[i] == newIndex || s.oldnum[i] <= i) { + i++ + } + if i >= height { + break + } + + shift := s.oldnum[i] - i // shift > 0 + start := i + + i++ + for i < height && s.oldnum[i] != newIndex && s.oldnum[i]-i == shift { + i++ + } + end := i - 1 + shift + + if !s.scrolln(shift, start, end, height-1) { + continue + } + } + + // Pass 2 - from bottom to top scrolling down + for i := height - 1; i >= 0; { + for i >= 0 && (s.oldnum[i] == newIndex || s.oldnum[i] >= i) { + i-- + } + if i < 0 { + break + } + + shift := s.oldnum[i] - i // shift < 0 + end := i + + i-- + for i >= 0 && s.oldnum[i] != newIndex && s.oldnum[i]-i == shift { + i-- + } + + start := i + 1 - (-shift) + if !s.scrolln(shift, start, end, height-1) { + continue + } + } +} + +// scrolln scrolls the screen up by n lines. +func (s *Screen) scrolln(n, top, bot, maxY int) (v bool) { //nolint:unparam + const ( + nonDestScrollRegion = false + memoryBelow = false + ) + + blank := s.clearBlank() + if n > 0 { + // Scroll up (forward) + v = s.scrollUp(n, top, bot, 0, maxY, blank) + if !v { + s.buf.WriteString(ansi.SetTopBottomMargins(top+1, bot+1)) + + // XXX: How should we handle this in inline mode when not using alternate screen? + s.cur.X, s.cur.Y = -1, -1 + v = s.scrollUp(n, top, bot, top, bot, blank) + s.buf.WriteString(ansi.SetTopBottomMargins(1, maxY+1)) + s.cur.X, s.cur.Y = -1, -1 + } + + if !v { + v = s.scrollIdl(n, top, bot-n+1, blank) + } + + // Clear newly shifted-in lines. + if v && + (nonDestScrollRegion || (memoryBelow && bot == maxY)) { + if bot == maxY { + s.move(0, bot-n+1) + s.clearToBottom(nil) + } else { + for i := 0; i < n; i++ { + s.move(0, bot-i) + s.clearToEnd(nil, false) + } + } + } + } else if n < 0 { + // Scroll down (backward) + v = s.scrollDown(-n, top, bot, 0, maxY, blank) + if !v { + s.buf.WriteString(ansi.SetTopBottomMargins(top+1, bot+1)) + + // XXX: How should we handle this in inline mode when not using alternate screen? + s.cur.X, s.cur.Y = -1, -1 + v = s.scrollDown(-n, top, bot, top, bot, blank) + s.buf.WriteString(ansi.SetTopBottomMargins(1, maxY+1)) + s.cur.X, s.cur.Y = -1, -1 + + if !v { + v = s.scrollIdl(-n, bot+n+1, top, blank) + } + + // Clear newly shifted-in lines. + if v && + (nonDestScrollRegion || (memoryBelow && top == 0)) { + for i := 0; i < -n; i++ { + s.move(0, top+i) + s.clearToEnd(nil, false) + } + } + } + } + + if !v { + return + } + + s.scrollBuffer(s.curbuf, n, top, bot, blank) + + // shift hash values too, they can be reused + s.scrollOldhash(n, top, bot) + + return true +} + +// scrollBuffer scrolls the buffer by n lines. +func (s *Screen) scrollBuffer(b *Buffer, n, top, bot int, blank *Cell) { + if top < 0 || bot < top || bot >= b.Height() { + // Nothing to scroll + return + } + + if n < 0 { + // shift n lines downwards + limit := top - n + for line := bot; line >= limit && line >= 0 && line >= top; line-- { + copy(b.Lines[line], b.Lines[line+n]) + } + for line := top; line < limit && line <= b.Height()-1 && line <= bot; line++ { + b.FillRect(blank, Rect(0, line, b.Width(), 1)) + } + } + + if n > 0 { + // shift n lines upwards + limit := bot - n + for line := top; line <= limit && line <= b.Height()-1 && line <= bot; line++ { + copy(b.Lines[line], b.Lines[line+n]) + } + for line := bot; line > limit && line >= 0 && line >= top; line-- { + b.FillRect(blank, Rect(0, line, b.Width(), 1)) + } + } + + s.touchLine(b.Width(), b.Height(), top, bot-top+1, true) +} + +// touchLine marks the line as touched. +func (s *Screen) touchLine(width, height, y, n int, changed bool) { + if n < 0 || y < 0 || y >= height { + return // Nothing to touch + } + + for i := y; i < y+n && i < height; i++ { + if changed { + s.touch[i] = lineData{firstCell: 0, lastCell: width - 1} + } else { + delete(s.touch, i) + } + } +} + +// scrollUp scrolls the screen up by n lines. +func (s *Screen) scrollUp(n, top, bot, minY, maxY int, blank *Cell) bool { + if n == 1 && top == minY && bot == maxY { + s.move(0, bot) + s.updatePen(blank) + s.buf.WriteByte('\n') + } else if n == 1 && bot == maxY { + s.move(0, top) + s.updatePen(blank) + s.buf.WriteString(ansi.DeleteLine(1)) + } else if top == minY && bot == maxY { + if s.xtermLike { + s.move(0, bot) + } else { + s.move(0, top) + } + s.updatePen(blank) + if s.xtermLike { + s.buf.WriteString(ansi.ScrollUp(n)) + } else { + s.buf.WriteString(strings.Repeat("\n", n)) + } + } else if bot == maxY { + s.move(0, top) + s.updatePen(blank) + s.buf.WriteString(ansi.DeleteLine(n)) + } else { + return false + } + return true +} + +// scrollDown scrolls the screen down by n lines. +func (s *Screen) scrollDown(n, top, bot, minY, maxY int, blank *Cell) bool { + if n == 1 && top == minY && bot == maxY { + s.move(0, top) + s.updatePen(blank) + s.buf.WriteString(ansi.ReverseIndex) + } else if n == 1 && bot == maxY { + s.move(0, top) + s.updatePen(blank) + s.buf.WriteString(ansi.InsertLine(1)) + } else if top == minY && bot == maxY { + s.move(0, top) + s.updatePen(blank) + if s.xtermLike { + s.buf.WriteString(ansi.ScrollDown(n)) + } else { + s.buf.WriteString(strings.Repeat(ansi.ReverseIndex, n)) + } + } else if bot == maxY { + s.move(0, top) + s.updatePen(blank) + s.buf.WriteString(ansi.InsertLine(n)) + } else { + return false + } + return true +} + +// scrollIdl scrolls the screen n lines by using [ansi.DL] at del and using +// [ansi.IL] at ins. +func (s *Screen) scrollIdl(n, del, ins int, blank *Cell) bool { + if n < 0 { + return false + } + + // Delete lines + s.move(0, del) + s.updatePen(blank) + s.buf.WriteString(ansi.DeleteLine(n)) + + // Insert lines + s.move(0, ins) + s.updatePen(blank) + s.buf.WriteString(ansi.InsertLine(n)) + + return true +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/hashmap.go b/vendor/github.com/charmbracelet/x/cellbuf/hashmap.go new file mode 100644 index 00000000..0d25b549 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/hashmap.go @@ -0,0 +1,301 @@ +package cellbuf + +import ( + "github.com/charmbracelet/x/ansi" +) + +// hash returns the hash value of a [Line]. +func hash(l Line) (h uint64) { + for _, c := range l { + var r rune + if c == nil { + r = ansi.SP + } else { + r = c.Rune + } + h += (h << 5) + uint64(r) + } + return +} + +// hashmap represents a single [Line] hash. +type hashmap struct { + value uint64 + oldcount, newcount int + oldindex, newindex int +} + +// The value used to indicate lines created by insertions and scrolls. +const newIndex = -1 + +// updateHashmap updates the hashmap with the new hash value. +func (s *Screen) updateHashmap() { + height := s.newbuf.Height() + if len(s.oldhash) >= height && len(s.newhash) >= height { + // rehash changed lines + for i := 0; i < height; i++ { + _, ok := s.touch[i] + if ok { + s.oldhash[i] = hash(s.curbuf.Line(i)) + s.newhash[i] = hash(s.newbuf.Line(i)) + } + } + } else { + // rehash all + if len(s.oldhash) != height { + s.oldhash = make([]uint64, height) + } + if len(s.newhash) != height { + s.newhash = make([]uint64, height) + } + for i := 0; i < height; i++ { + s.oldhash[i] = hash(s.curbuf.Line(i)) + s.newhash[i] = hash(s.newbuf.Line(i)) + } + } + + s.hashtab = make([]hashmap, height*2) + for i := 0; i < height; i++ { + hashval := s.oldhash[i] + + // Find matching hash or empty slot + idx := 0 + for idx < len(s.hashtab) && s.hashtab[idx].value != 0 { + if s.hashtab[idx].value == hashval { + break + } + idx++ + } + + s.hashtab[idx].value = hashval // in case this is a new hash + s.hashtab[idx].oldcount++ + s.hashtab[idx].oldindex = i + } + for i := 0; i < height; i++ { + hashval := s.newhash[i] + + // Find matching hash or empty slot + idx := 0 + for idx < len(s.hashtab) && s.hashtab[idx].value != 0 { + if s.hashtab[idx].value == hashval { + break + } + idx++ + } + + s.hashtab[idx].value = hashval // in case this is a new hash + s.hashtab[idx].newcount++ + s.hashtab[idx].newindex = i + + s.oldnum[i] = newIndex // init old indices slice + } + + // Mark line pair corresponding to unique hash pairs. + for i := 0; i < len(s.hashtab) && s.hashtab[i].value != 0; i++ { + hsp := &s.hashtab[i] + if hsp.oldcount == 1 && hsp.newcount == 1 && hsp.oldindex != hsp.newindex { + s.oldnum[hsp.newindex] = hsp.oldindex + } + } + + s.growHunks() + + // Eliminate bad or impossible shifts. This includes removing those hunks + // which could not grow because of conflicts, as well those which are to be + // moved too far, they are likely to destroy more than carry. + for i := 0; i < height; { + var start, shift, size int + for i < height && s.oldnum[i] == newIndex { + i++ + } + if i >= height { + break + } + start = i + shift = s.oldnum[i] - i + i++ + for i < height && s.oldnum[i] != newIndex && s.oldnum[i]-i == shift { + i++ + } + size = i - start + if size < 3 || size+min(size/8, 2) < abs(shift) { + for start < i { + s.oldnum[start] = newIndex + start++ + } + } + } + + // After clearing invalid hunks, try grow the rest. + s.growHunks() +} + +// scrollOldhash +func (s *Screen) scrollOldhash(n, top, bot int) { + if len(s.oldhash) == 0 { + return + } + + size := bot - top + 1 - abs(n) + if n > 0 { + // Move existing hashes up + copy(s.oldhash[top:], s.oldhash[top+n:top+n+size]) + // Recalculate hashes for newly shifted-in lines + for i := bot; i > bot-n; i-- { + s.oldhash[i] = hash(s.curbuf.Line(i)) + } + } else { + // Move existing hashes down + copy(s.oldhash[top-n:], s.oldhash[top:top+size]) + // Recalculate hashes for newly shifted-in lines + for i := top; i < top-n; i++ { + s.oldhash[i] = hash(s.curbuf.Line(i)) + } + } +} + +func (s *Screen) growHunks() { + var ( + backLimit int // limits for cells to fill + backRefLimit int // limit for references + i int + nextHunk int + ) + + height := s.newbuf.Height() + for i < height && s.oldnum[i] == newIndex { + i++ + } + for ; i < height; i = nextHunk { + var ( + forwardLimit int + forwardRefLimit int + end int + start = i + shift = s.oldnum[i] - i + ) + + // get forward limit + i = start + 1 + for i < height && + s.oldnum[i] != newIndex && + s.oldnum[i]-i == shift { + i++ + } + + end = i + for i < height && s.oldnum[i] == newIndex { + i++ + } + + nextHunk = i + forwardLimit = i + if i >= height || s.oldnum[i] >= i { + forwardRefLimit = i + } else { + forwardRefLimit = s.oldnum[i] + } + + i = start - 1 + + // grow back + if shift < 0 { + backLimit = backRefLimit + (-shift) + } + for i >= backLimit { + if s.newhash[i] == s.oldhash[i+shift] || + s.costEffective(i+shift, i, shift < 0) { + s.oldnum[i] = i + shift + } else { + break + } + i-- + } + + i = end + // grow forward + if shift > 0 { + forwardLimit = forwardRefLimit - shift + } + for i < forwardLimit { + if s.newhash[i] == s.oldhash[i+shift] || + s.costEffective(i+shift, i, shift > 0) { + s.oldnum[i] = i + shift + } else { + break + } + i++ + } + + backLimit = i + backRefLimit = backLimit + if shift > 0 { + backRefLimit += shift + } + } +} + +// costEffective returns true if the cost of moving line 'from' to line 'to' seems to be +// cost effective. 'blank' indicates whether the line 'to' would become blank. +func (s *Screen) costEffective(from, to int, blank bool) bool { + if from == to { + return false + } + + newFrom := s.oldnum[from] + if newFrom == newIndex { + newFrom = from + } + + // On the left side of >= is the cost before moving. On the right side -- + // cost after moving. + + // Calculate costs before moving. + var costBeforeMove int + if blank { + // Cost of updating blank line at destination. + costBeforeMove = s.updateCostBlank(s.newbuf.Line(to)) + } else { + // Cost of updating exiting line at destination. + costBeforeMove = s.updateCost(s.curbuf.Line(to), s.newbuf.Line(to)) + } + + // Add cost of updating source line + costBeforeMove += s.updateCost(s.curbuf.Line(newFrom), s.newbuf.Line(from)) + + // Calculate costs after moving. + var costAfterMove int + if newFrom == from { + // Source becomes blank after move + costAfterMove = s.updateCostBlank(s.newbuf.Line(from)) + } else { + // Source gets updated from another line + costAfterMove = s.updateCost(s.curbuf.Line(newFrom), s.newbuf.Line(from)) + } + + // Add cost of moving source line to destination + costAfterMove += s.updateCost(s.curbuf.Line(from), s.newbuf.Line(to)) + + // Return true if moving is cost effective (costs less or equal) + return costBeforeMove >= costAfterMove +} + +func (s *Screen) updateCost(from, to Line) (cost int) { + var fidx, tidx int + for i := s.newbuf.Width() - 1; i > 0; i, fidx, tidx = i-1, fidx+1, tidx+1 { + if !cellEqual(from.At(fidx), to.At(tidx)) { + cost++ + } + } + return +} + +func (s *Screen) updateCostBlank(to Line) (cost int) { + var tidx int + for i := s.newbuf.Width() - 1; i > 0; i, tidx = i-1, tidx+1 { + if !cellEqual(nil, to.At(tidx)) { + cost++ + } + } + return +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/link.go b/vendor/github.com/charmbracelet/x/cellbuf/link.go new file mode 100644 index 00000000..112f8e8a --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/link.go @@ -0,0 +1,14 @@ +package cellbuf + +import ( + "github.com/charmbracelet/colorprofile" +) + +// Convert converts a hyperlink to respect the given color profile. +func ConvertLink(h Link, p colorprofile.Profile) Link { + if p == colorprofile.NoTTY { + return Link{} + } + + return h +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/screen.go b/vendor/github.com/charmbracelet/x/cellbuf/screen.go new file mode 100644 index 00000000..963b9cac --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/screen.go @@ -0,0 +1,1457 @@ +package cellbuf + +import ( + "bytes" + "errors" + "io" + "os" + "strings" + "sync" + + "github.com/charmbracelet/colorprofile" + "github.com/charmbracelet/x/ansi" + "github.com/charmbracelet/x/term" +) + +// ErrInvalidDimensions is returned when the dimensions of a window are invalid +// for the operation. +var ErrInvalidDimensions = errors.New("invalid dimensions") + +// notLocal returns whether the coordinates are not considered local movement +// using the defined thresholds. +// This takes the number of columns, and the coordinates of the current and +// target positions. +func notLocal(cols, fx, fy, tx, ty int) bool { + // The typical distance for a [ansi.CUP] sequence. Anything less than this + // is considered local movement. + const longDist = 8 - 1 + return (tx > longDist) && + (tx < cols-1-longDist) && + (abs(ty-fy)+abs(tx-fx) > longDist) +} + +// relativeCursorMove returns the relative cursor movement sequence using one or two +// of the following sequences [ansi.CUU], [ansi.CUD], [ansi.CUF], [ansi.CUB], +// [ansi.VPA], [ansi.HPA]. +// When overwrite is true, this will try to optimize the sequence by using the +// screen cells values to move the cursor instead of using escape sequences. +func relativeCursorMove(s *Screen, fx, fy, tx, ty int, overwrite, useTabs, useBackspace bool) string { + var seq strings.Builder + + width, height := s.newbuf.Width(), s.newbuf.Height() + if ty != fy { + var yseq string + if s.xtermLike && !s.opts.RelativeCursor { + yseq = ansi.VerticalPositionAbsolute(ty + 1) + } + + // OPTIM: Use [ansi.LF] and [ansi.ReverseIndex] as optimizations. + + if ty > fy { + n := ty - fy + if cud := ansi.CursorDown(n); yseq == "" || len(cud) < len(yseq) { + yseq = cud + } + shouldScroll := !s.opts.AltScreen && fy+n >= s.scrollHeight + if lf := strings.Repeat("\n", n); shouldScroll || (fy+n < height && len(lf) < len(yseq)) { + // TODO: Ensure we're not unintentionally scrolling the screen down. + yseq = lf + s.scrollHeight = max(s.scrollHeight, fy+n) + } + } else if ty < fy { + n := fy - ty + if cuu := ansi.CursorUp(n); yseq == "" || len(cuu) < len(yseq) { + yseq = cuu + } + if n == 1 && fy-1 > 0 { + // TODO: Ensure we're not unintentionally scrolling the screen up. + yseq = ansi.ReverseIndex + } + } + + seq.WriteString(yseq) + } + + if tx != fx { + var xseq string + if s.xtermLike && !s.opts.RelativeCursor { + xseq = ansi.HorizontalPositionAbsolute(tx + 1) + } + + if tx > fx { + n := tx - fx + if useTabs { + var tabs int + var col int + for col = fx; s.tabs.Next(col) <= tx; col = s.tabs.Next(col) { + tabs++ + if col == s.tabs.Next(col) || col >= width-1 { + break + } + } + + if tabs > 0 { + cht := ansi.CursorHorizontalForwardTab(tabs) + tab := strings.Repeat("\t", tabs) + if false && s.xtermLike && len(cht) < len(tab) { + // TODO: The linux console and some terminals such as + // Alacritty don't support [ansi.CHT]. Enable this when + // we have a way to detect this, or after 5 years when + // we're sure everyone has updated their terminals :P + seq.WriteString(cht) + } else { + seq.WriteString(tab) + } + + n = tx - col + fx = col + } + } + + if cuf := ansi.CursorForward(n); xseq == "" || len(cuf) < len(xseq) { + xseq = cuf + } + + // If we have no attribute and style changes, overwrite is cheaper. + var ovw string + if overwrite && ty >= 0 { + for i := 0; i < n; i++ { + cell := s.newbuf.Cell(fx+i, ty) + if cell != nil && cell.Width > 0 { + i += cell.Width - 1 + if !cell.Style.Equal(&s.cur.Style) || !cell.Link.Equal(&s.cur.Link) { + overwrite = false + break + } + } + } + } + + if overwrite && ty >= 0 { + for i := 0; i < n; i++ { + cell := s.newbuf.Cell(fx+i, ty) + if cell != nil && cell.Width > 0 { + ovw += cell.String() + i += cell.Width - 1 + } else { + ovw += " " + } + } + } + + if overwrite && len(ovw) < len(xseq) { + xseq = ovw + } + } else if tx < fx { + n := fx - tx + if useTabs && s.xtermLike { + // VT100 does not support backward tabs [ansi.CBT]. + + col := fx + + var cbt int // cursor backward tabs count + for s.tabs.Prev(col) >= tx { + col = s.tabs.Prev(col) + cbt++ + if col == s.tabs.Prev(col) || col <= 0 { + break + } + } + + if cbt > 0 { + seq.WriteString(ansi.CursorBackwardTab(cbt)) + n = col - tx + } + } + + if cub := ansi.CursorBackward(n); xseq == "" || len(cub) < len(xseq) { + xseq = cub + } + + if useBackspace && n < len(xseq) { + xseq = strings.Repeat("\b", n) + } + } + + seq.WriteString(xseq) + } + + return seq.String() +} + +// moveCursor moves and returns the cursor movement sequence to move the cursor +// to the specified position. +// When overwrite is true, this will try to optimize the sequence by using the +// screen cells values to move the cursor instead of using escape sequences. +func moveCursor(s *Screen, x, y int, overwrite bool) (seq string) { + fx, fy := s.cur.X, s.cur.Y + + if !s.opts.RelativeCursor { + // Method #0: Use [ansi.CUP] if the distance is long. + seq = ansi.CursorPosition(x+1, y+1) + if fx == -1 || fy == -1 || notLocal(s.newbuf.Width(), fx, fy, x, y) { + return + } + } + + // Optimize based on options. + trials := 0 + if s.opts.HardTabs { + trials |= 2 // 0b10 in binary + } + if s.opts.Backspace { + trials |= 1 // 0b01 in binary + } + + // Try all possible combinations of hard tabs and backspace optimizations. + for i := 0; i <= trials; i++ { + // Skip combinations that are not enabled. + if i & ^trials != 0 { + continue + } + + useHardTabs := i&2 != 0 + useBackspace := i&1 != 0 + + // Method #1: Use local movement sequences. + nseq := relativeCursorMove(s, fx, fy, x, y, overwrite, useHardTabs, useBackspace) + if (i == 0 && len(seq) == 0) || len(nseq) < len(seq) { + seq = nseq + } + + // Method #2: Use [ansi.CR] and local movement sequences. + nseq = "\r" + relativeCursorMove(s, 0, fy, x, y, overwrite, useHardTabs, useBackspace) + if len(nseq) < len(seq) { + seq = nseq + } + + if !s.opts.RelativeCursor { + // Method #3: Use [ansi.CursorHomePosition] and local movement sequences. + nseq = ansi.CursorHomePosition + relativeCursorMove(s, 0, 0, x, y, overwrite, useHardTabs, useBackspace) + if len(nseq) < len(seq) { + seq = nseq + } + } + } + + return +} + +// moveCursor moves the cursor to the specified position. +func (s *Screen) moveCursor(x, y int, overwrite bool) { + if !s.opts.AltScreen && s.cur.X == -1 && s.cur.Y == -1 { + // First cursor movement in inline mode, move the cursor to the first + // column before moving to the target position. + s.buf.WriteByte('\r') //nolint:errcheck + s.cur.X, s.cur.Y = 0, 0 + } + s.buf.WriteString(moveCursor(s, x, y, overwrite)) //nolint:errcheck + s.cur.X, s.cur.Y = x, y +} + +func (s *Screen) move(x, y int) { + // XXX: Make sure we use the max height and width of the buffer in case + // we're in the middle of a resize operation. + width := max(s.newbuf.Width(), s.curbuf.Width()) + height := max(s.newbuf.Height(), s.curbuf.Height()) + + if width > 0 && x >= width { + // Handle autowrap + y += (x / width) + x %= width + } + + // XXX: Disable styles if there's any + // Some move operations such as [ansi.LF] can apply styles to the new + // cursor position, thus, we need to reset the styles before moving the + // cursor. + blank := s.clearBlank() + resetPen := y != s.cur.Y && !blank.Equal(&BlankCell) + if resetPen { + s.updatePen(nil) + } + + // Reset wrap around (phantom cursor) state + if s.atPhantom { + s.cur.X = 0 + s.buf.WriteByte('\r') //nolint:errcheck + s.atPhantom = false // reset phantom cell state + } + + // TODO: Investigate if we need to handle this case and/or if we need the + // following code. + // + // if width > 0 && s.cur.X >= width { + // l := (s.cur.X + 1) / width + // + // s.cur.Y += l + // if height > 0 && s.cur.Y >= height { + // l -= s.cur.Y - height - 1 + // } + // + // if l > 0 { + // s.cur.X = 0 + // s.buf.WriteString("\r" + strings.Repeat("\n", l)) //nolint:errcheck + // } + // } + + if height > 0 { + if s.cur.Y > height-1 { + s.cur.Y = height - 1 + } + if y > height-1 { + y = height - 1 + } + } + + if x == s.cur.X && y == s.cur.Y { + // We give up later because we need to run checks for the phantom cell + // and others before we can determine if we can give up. + return + } + + // We set the new cursor in [Screen.moveCursor]. + s.moveCursor(x, y, true) // Overwrite cells if possible +} + +// Cursor represents a terminal Cursor. +type Cursor struct { + Style + Link + Position +} + +// ScreenOptions are options for the screen. +type ScreenOptions struct { + // Term is the terminal type to use when writing to the screen. When empty, + // `$TERM` is used from [os.Getenv]. + Term string + // Profile is the color profile to use when writing to the screen. + Profile colorprofile.Profile + // RelativeCursor is whether to use relative cursor movements. This is + // useful when alt-screen is not used or when using inline mode. + RelativeCursor bool + // AltScreen is whether to use the alternate screen buffer. + AltScreen bool + // ShowCursor is whether to show the cursor. + ShowCursor bool + // HardTabs is whether to use hard tabs to optimize cursor movements. + HardTabs bool + // Backspace is whether to use backspace characters to move the cursor. + Backspace bool +} + +// lineData represents the metadata for a line. +type lineData struct { + // first and last changed cell indices + firstCell, lastCell int + // old index used for scrolling + oldIndex int //nolint:unused +} + +// Screen represents the terminal screen. +type Screen struct { + w io.Writer + buf *bytes.Buffer // buffer for writing to the screen + curbuf *Buffer // the current buffer + newbuf *Buffer // the new buffer + tabs *TabStops + touch map[int]lineData + queueAbove []string // the queue of strings to write above the screen + oldhash, newhash []uint64 // the old and new hash values for each line + hashtab []hashmap // the hashmap table + oldnum []int // old indices from previous hash + cur, saved Cursor // the current and saved cursors + opts ScreenOptions + mu sync.Mutex + method ansi.Method + scrollHeight int // keeps track of how many lines we've scrolled down (inline mode) + altScreenMode bool // whether alternate screen mode is enabled + cursorHidden bool // whether text cursor mode is enabled + clear bool // whether to force clear the screen + xtermLike bool // whether to use xterm-like optimizations, otherwise, it uses vt100 only + queuedText bool // whether we have queued non-zero width text queued up + atPhantom bool // whether the cursor is out of bounds and at a phantom cell +} + +// SetMethod sets the method used to calculate the width of cells. +func (s *Screen) SetMethod(method ansi.Method) { + s.method = method +} + +// UseBackspaces sets whether to use backspace characters to move the cursor. +func (s *Screen) UseBackspaces(v bool) { + s.opts.Backspace = v +} + +// UseHardTabs sets whether to use hard tabs to optimize cursor movements. +func (s *Screen) UseHardTabs(v bool) { + s.opts.HardTabs = v +} + +// SetColorProfile sets the color profile to use when writing to the screen. +func (s *Screen) SetColorProfile(p colorprofile.Profile) { + s.opts.Profile = p +} + +// SetRelativeCursor sets whether to use relative cursor movements. +func (s *Screen) SetRelativeCursor(v bool) { + s.opts.RelativeCursor = v +} + +// EnterAltScreen enters the alternate screen buffer. +func (s *Screen) EnterAltScreen() { + s.opts.AltScreen = true + s.clear = true + s.saved = s.cur +} + +// ExitAltScreen exits the alternate screen buffer. +func (s *Screen) ExitAltScreen() { + s.opts.AltScreen = false + s.clear = true + s.cur = s.saved +} + +// ShowCursor shows the cursor. +func (s *Screen) ShowCursor() { + s.opts.ShowCursor = true +} + +// HideCursor hides the cursor. +func (s *Screen) HideCursor() { + s.opts.ShowCursor = false +} + +// Bounds implements Window. +func (s *Screen) Bounds() Rectangle { + // Always return the new buffer bounds. + return s.newbuf.Bounds() +} + +// Cell implements Window. +func (s *Screen) Cell(x int, y int) *Cell { + return s.newbuf.Cell(x, y) +} + +// Redraw forces a full redraw of the screen. +func (s *Screen) Redraw() { + s.mu.Lock() + s.clear = true + s.mu.Unlock() +} + +// Clear clears the screen with blank cells. This is a convenience method for +// [Screen.Fill] with a nil cell. +func (s *Screen) Clear() bool { + return s.ClearRect(s.newbuf.Bounds()) +} + +// ClearRect clears the given rectangle with blank cells. This is a convenience +// method for [Screen.FillRect] with a nil cell. +func (s *Screen) ClearRect(r Rectangle) bool { + return s.FillRect(nil, r) +} + +// SetCell implements Window. +func (s *Screen) SetCell(x int, y int, cell *Cell) (v bool) { + s.mu.Lock() + defer s.mu.Unlock() + cellWidth := 1 + if cell != nil { + cellWidth = cell.Width + } + if prev := s.curbuf.Cell(x, y); !cellEqual(prev, cell) { + chg, ok := s.touch[y] + if !ok { + chg = lineData{firstCell: x, lastCell: x + cellWidth} + } else { + chg.firstCell = min(chg.firstCell, x) + chg.lastCell = max(chg.lastCell, x+cellWidth) + } + s.touch[y] = chg + } + + return s.newbuf.SetCell(x, y, cell) +} + +// Fill implements Window. +func (s *Screen) Fill(cell *Cell) bool { + return s.FillRect(cell, s.newbuf.Bounds()) +} + +// FillRect implements Window. +func (s *Screen) FillRect(cell *Cell, r Rectangle) bool { + s.mu.Lock() + defer s.mu.Unlock() + s.newbuf.FillRect(cell, r) + for i := r.Min.Y; i < r.Max.Y; i++ { + s.touch[i] = lineData{firstCell: r.Min.X, lastCell: r.Max.X} + } + return true +} + +// isXtermLike returns whether the terminal is xterm-like. This means that the +// terminal supports ECMA-48 and ANSI X3.64 escape sequences. +// TODO: Should this be a lookup table into each $TERM terminfo database? Like +// we could keep a map of ANSI escape sequence to terminfo capability name and +// check if the database supports the escape sequence. Instead of keeping a +// list of terminal names here. +func isXtermLike(termtype string) (v bool) { + parts := strings.Split(termtype, "-") + if len(parts) == 0 { + return + } + + switch parts[0] { + case + "alacritty", + "contour", + "foot", + "ghostty", + "kitty", + "linux", + "rio", + "screen", + "st", + "tmux", + "wezterm", + "xterm": + v = true + } + + return +} + +// NewScreen creates a new Screen. +func NewScreen(w io.Writer, width, height int, opts *ScreenOptions) (s *Screen) { + s = new(Screen) + s.w = w + if opts != nil { + s.opts = *opts + } + + if s.opts.Term == "" { + s.opts.Term = os.Getenv("TERM") + } + + if width <= 0 || height <= 0 { + if f, ok := w.(term.File); ok { + width, height, _ = term.GetSize(f.Fd()) + } + } + if width < 0 { + width = 0 + } + if height < 0 { + height = 0 + } + + s.buf = new(bytes.Buffer) + s.xtermLike = isXtermLike(s.opts.Term) + s.curbuf = NewBuffer(width, height) + s.newbuf = NewBuffer(width, height) + s.cur = Cursor{Position: Pos(-1, -1)} // start at -1 to force a move + s.saved = s.cur + s.reset() + + return +} + +// Width returns the width of the screen. +func (s *Screen) Width() int { + return s.newbuf.Width() +} + +// Height returns the height of the screen. +func (s *Screen) Height() int { + return s.newbuf.Height() +} + +// cellEqual returns whether the two cells are equal. A nil cell is considered +// a [BlankCell]. +func cellEqual(a, b *Cell) bool { + if a == b { + return true + } + if a == nil { + a = &BlankCell + } + if b == nil { + b = &BlankCell + } + return a.Equal(b) +} + +// putCell draws a cell at the current cursor position. +func (s *Screen) putCell(cell *Cell) { + width, height := s.newbuf.Width(), s.newbuf.Height() + if s.opts.AltScreen && s.cur.X == width-1 && s.cur.Y == height-1 { + s.putCellLR(cell) + } else { + s.putAttrCell(cell) + } +} + +// wrapCursor wraps the cursor to the next line. +// +//nolint:unused +func (s *Screen) wrapCursor() { + const autoRightMargin = true + if autoRightMargin { + // Assume we have auto wrap mode enabled. + s.cur.X = 0 + s.cur.Y++ + } else { + s.cur.X-- + } +} + +func (s *Screen) putAttrCell(cell *Cell) { + if cell != nil && cell.Empty() { + // XXX: Zero width cells are special and should not be written to the + // screen no matter what other attributes they have. + // Zero width cells are used for wide characters that are split into + // multiple cells. + return + } + + if cell == nil { + cell = s.clearBlank() + } + + // We're at pending wrap state (phantom cell), incoming cell should + // wrap. + if s.atPhantom { + s.wrapCursor() + s.atPhantom = false + } + + s.updatePen(cell) + s.buf.WriteRune(cell.Rune) //nolint:errcheck + for _, c := range cell.Comb { + s.buf.WriteRune(c) //nolint:errcheck + } + + s.cur.X += cell.Width + + if cell.Width > 0 { + s.queuedText = true + } + + if s.cur.X >= s.newbuf.Width() { + s.atPhantom = true + } +} + +// putCellLR draws a cell at the lower right corner of the screen. +func (s *Screen) putCellLR(cell *Cell) { + // Optimize for the lower right corner cell. + curX := s.cur.X + if cell == nil || !cell.Empty() { + s.buf.WriteString(ansi.ResetAutoWrapMode) //nolint:errcheck + s.putAttrCell(cell) + // Writing to lower-right corner cell should not wrap. + s.atPhantom = false + s.cur.X = curX + s.buf.WriteString(ansi.SetAutoWrapMode) //nolint:errcheck + } +} + +// updatePen updates the cursor pen styles. +func (s *Screen) updatePen(cell *Cell) { + if cell == nil { + cell = &BlankCell + } + + if s.opts.Profile != 0 { + // Downsample colors to the given color profile. + cell.Style = ConvertStyle(cell.Style, s.opts.Profile) + cell.Link = ConvertLink(cell.Link, s.opts.Profile) + } + + if !cell.Style.Equal(&s.cur.Style) { + seq := cell.Style.DiffSequence(s.cur.Style) + if cell.Style.Empty() && len(seq) > len(ansi.ResetStyle) { + seq = ansi.ResetStyle + } + s.buf.WriteString(seq) //nolint:errcheck + s.cur.Style = cell.Style + } + if !cell.Link.Equal(&s.cur.Link) { + s.buf.WriteString(ansi.SetHyperlink(cell.Link.URL, cell.Link.Params)) //nolint:errcheck + s.cur.Link = cell.Link + } +} + +// emitRange emits a range of cells to the buffer. It it equivalent to calling +// [Screen.putCell] for each cell in the range. This is optimized to use +// [ansi.ECH] and [ansi.REP]. +// Returns whether the cursor is at the end of interval or somewhere in the +// middle. +func (s *Screen) emitRange(line Line, n int) (eoi bool) { + for n > 0 { + var count int + for n > 1 && !cellEqual(line.At(0), line.At(1)) { + s.putCell(line.At(0)) + line = line[1:] + n-- + } + + cell0 := line[0] + if n == 1 { + s.putCell(cell0) + return false + } + + count = 2 + for count < n && cellEqual(line.At(count), cell0) { + count++ + } + + ech := ansi.EraseCharacter(count) + cup := ansi.CursorPosition(s.cur.X+count, s.cur.Y) + rep := ansi.RepeatPreviousCharacter(count) + if s.xtermLike && count > len(ech)+len(cup) && cell0 != nil && cell0.Clear() { + s.updatePen(cell0) + s.buf.WriteString(ech) //nolint:errcheck + + // If this is the last cell, we don't need to move the cursor. + if count < n { + s.move(s.cur.X+count, s.cur.Y) + } else { + return true // cursor in the middle + } + } else if s.xtermLike && count > len(rep) && + (cell0 == nil || (len(cell0.Comb) == 0 && cell0.Rune < 256)) { + // We only support ASCII characters. Most terminals will handle + // non-ASCII characters correctly, but some might not, ahem xterm. + // + // NOTE: [ansi.REP] only repeats the last rune and won't work + // if the last cell contains multiple runes. + + wrapPossible := s.cur.X+count >= s.newbuf.Width() + repCount := count + if wrapPossible { + repCount-- + } + + s.updatePen(cell0) + s.putCell(cell0) + repCount-- // cell0 is a single width cell ASCII character + + s.buf.WriteString(ansi.RepeatPreviousCharacter(repCount)) //nolint:errcheck + s.cur.X += repCount + if wrapPossible { + s.putCell(cell0) + } + } else { + for i := 0; i < count; i++ { + s.putCell(line.At(i)) + } + } + + line = line[clamp(count, 0, len(line)):] + n -= count + } + + return +} + +// putRange puts a range of cells from the old line to the new line. +// Returns whether the cursor is at the end of interval or somewhere in the +// middle. +func (s *Screen) putRange(oldLine, newLine Line, y, start, end int) (eoi bool) { + inline := min(len(ansi.CursorPosition(start+1, y+1)), + min(len(ansi.HorizontalPositionAbsolute(start+1)), + len(ansi.CursorForward(start+1)))) + if (end - start + 1) > inline { + var j, same int + for j, same = start, 0; j <= end; j++ { + oldCell, newCell := oldLine.At(j), newLine.At(j) + if same == 0 && oldCell != nil && oldCell.Empty() { + continue + } + if cellEqual(oldCell, newCell) { + same++ + } else { + if same > end-start { + s.emitRange(newLine[start:], j-same-start) + s.move(j, y) + start = j + } + same = 0 + } + } + + i := s.emitRange(newLine[start:], j-same-start) + + // Always return 1 for the next [Screen.move] after a [Screen.putRange] if + // we found identical characters at end of interval. + if same == 0 { + return i + } + return true + } + + return s.emitRange(newLine[start:], end-start+1) +} + +// clearToEnd clears the screen from the current cursor position to the end of +// line. +func (s *Screen) clearToEnd(blank *Cell, force bool) { //nolint:unparam + if s.cur.Y >= 0 { + curline := s.curbuf.Line(s.cur.Y) + for j := s.cur.X; j < s.curbuf.Width(); j++ { + if j >= 0 { + c := curline.At(j) + if !cellEqual(c, blank) { + curline.Set(j, blank) + force = true + } + } + } + } + + if force { + s.updatePen(blank) + count := s.newbuf.Width() - s.cur.X + if s.el0Cost() <= count { + s.buf.WriteString(ansi.EraseLineRight) //nolint:errcheck + } else { + for i := 0; i < count; i++ { + s.putCell(blank) + } + } + } +} + +// clearBlank returns a blank cell based on the current cursor background color. +func (s *Screen) clearBlank() *Cell { + c := BlankCell + if !s.cur.Style.Empty() || !s.cur.Link.Empty() { + c.Style = s.cur.Style + c.Link = s.cur.Link + } + return &c +} + +// insertCells inserts the count cells pointed by the given line at the current +// cursor position. +func (s *Screen) insertCells(line Line, count int) { + if s.xtermLike { + // Use [ansi.ICH] as an optimization. + s.buf.WriteString(ansi.InsertCharacter(count)) //nolint:errcheck + } else { + // Otherwise, use [ansi.IRM] mode. + s.buf.WriteString(ansi.SetInsertReplaceMode) //nolint:errcheck + } + + for i := 0; count > 0; i++ { + s.putAttrCell(line[i]) + count-- + } + + if !s.xtermLike { + s.buf.WriteString(ansi.ResetInsertReplaceMode) //nolint:errcheck + } +} + +// el0Cost returns the cost of using [ansi.EL] 0 i.e. [ansi.EraseLineRight]. If +// this terminal supports background color erase, it can be cheaper to use +// [ansi.EL] 0 i.e. [ansi.EraseLineRight] to clear +// trailing spaces. +func (s *Screen) el0Cost() int { + if s.xtermLike { + return 0 + } + return len(ansi.EraseLineRight) +} + +// transformLine transforms the given line in the current window to the +// corresponding line in the new window. It uses [ansi.ICH] and [ansi.DCH] to +// insert or delete characters. +func (s *Screen) transformLine(y int) { + var firstCell, oLastCell, nLastCell int // first, old last, new last index + oldLine := s.curbuf.Line(y) + newLine := s.newbuf.Line(y) + + // Find the first changed cell in the line + var lineChanged bool + for i := 0; i < s.newbuf.Width(); i++ { + if !cellEqual(newLine.At(i), oldLine.At(i)) { + lineChanged = true + break + } + } + + const ceolStandoutGlitch = false + if ceolStandoutGlitch && lineChanged { + s.move(0, y) + s.clearToEnd(nil, false) + s.putRange(oldLine, newLine, y, 0, s.newbuf.Width()-1) + } else { + blank := newLine.At(0) + + // It might be cheaper to clear leading spaces with [ansi.EL] 1 i.e. + // [ansi.EraseLineLeft]. + if blank == nil || blank.Clear() { + var oFirstCell, nFirstCell int + for oFirstCell = 0; oFirstCell < s.curbuf.Width(); oFirstCell++ { + if !cellEqual(oldLine.At(oFirstCell), blank) { + break + } + } + for nFirstCell = 0; nFirstCell < s.newbuf.Width(); nFirstCell++ { + if !cellEqual(newLine.At(nFirstCell), blank) { + break + } + } + + if nFirstCell == oFirstCell { + firstCell = nFirstCell + + // Find the first differing cell + for firstCell < s.newbuf.Width() && + cellEqual(oldLine.At(firstCell), newLine.At(firstCell)) { + firstCell++ + } + } else if oFirstCell > nFirstCell { + firstCell = nFirstCell + } else if oFirstCell < nFirstCell { + firstCell = oFirstCell + el1Cost := len(ansi.EraseLineLeft) + if el1Cost < nFirstCell-oFirstCell { + if nFirstCell >= s.newbuf.Width() { + s.move(0, y) + s.updatePen(blank) + s.buf.WriteString(ansi.EraseLineRight) //nolint:errcheck + } else { + s.move(nFirstCell-1, y) + s.updatePen(blank) + s.buf.WriteString(ansi.EraseLineLeft) //nolint:errcheck + } + + for firstCell < nFirstCell { + oldLine.Set(firstCell, blank) + firstCell++ + } + } + } + } else { + // Find the first differing cell + for firstCell < s.newbuf.Width() && cellEqual(newLine.At(firstCell), oldLine.At(firstCell)) { + firstCell++ + } + } + + // If we didn't find one, we're done + if firstCell >= s.newbuf.Width() { + return + } + + blank = newLine.At(s.newbuf.Width() - 1) + if blank != nil && !blank.Clear() { + // Find the last differing cell + nLastCell = s.newbuf.Width() - 1 + for nLastCell > firstCell && cellEqual(newLine.At(nLastCell), oldLine.At(nLastCell)) { + nLastCell-- + } + + if nLastCell >= firstCell { + s.move(firstCell, y) + s.putRange(oldLine, newLine, y, firstCell, nLastCell) + if firstCell < len(oldLine) && firstCell < len(newLine) { + copy(oldLine[firstCell:], newLine[firstCell:]) + } else { + copy(oldLine, newLine) + } + } + + return + } + + // Find last non-blank cell in the old line. + oLastCell = s.curbuf.Width() - 1 + for oLastCell > firstCell && cellEqual(oldLine.At(oLastCell), blank) { + oLastCell-- + } + + // Find last non-blank cell in the new line. + nLastCell = s.newbuf.Width() - 1 + for nLastCell > firstCell && cellEqual(newLine.At(nLastCell), blank) { + nLastCell-- + } + + if nLastCell == firstCell && s.el0Cost() < oLastCell-nLastCell { + s.move(firstCell, y) + if !cellEqual(newLine.At(firstCell), blank) { + s.putCell(newLine.At(firstCell)) + } + s.clearToEnd(blank, false) + } else if nLastCell != oLastCell && + !cellEqual(newLine.At(nLastCell), oldLine.At(oLastCell)) { + s.move(firstCell, y) + if oLastCell-nLastCell > s.el0Cost() { + if s.putRange(oldLine, newLine, y, firstCell, nLastCell) { + s.move(nLastCell+1, y) + } + s.clearToEnd(blank, false) + } else { + n := max(nLastCell, oLastCell) + s.putRange(oldLine, newLine, y, firstCell, n) + } + } else { + nLastNonBlank := nLastCell + oLastNonBlank := oLastCell + + // Find the last cells that really differ. + // Can be -1 if no cells differ. + for cellEqual(newLine.At(nLastCell), oldLine.At(oLastCell)) { + if !cellEqual(newLine.At(nLastCell-1), oldLine.At(oLastCell-1)) { + break + } + nLastCell-- + oLastCell-- + if nLastCell == -1 || oLastCell == -1 { + break + } + } + + n := min(oLastCell, nLastCell) + if n >= firstCell { + s.move(firstCell, y) + s.putRange(oldLine, newLine, y, firstCell, n) + } + + if oLastCell < nLastCell { + m := max(nLastNonBlank, oLastNonBlank) + if n != 0 { + for n > 0 { + wide := newLine.At(n + 1) + if wide == nil || !wide.Empty() { + break + } + n-- + oLastCell-- + } + } else if n >= firstCell && newLine.At(n) != nil && newLine.At(n).Width > 1 { + next := newLine.At(n + 1) + for next != nil && next.Empty() { + n++ + oLastCell++ + } + } + + s.move(n+1, y) + ichCost := 3 + nLastCell - oLastCell + if s.xtermLike && (nLastCell < nLastNonBlank || ichCost > (m-n)) { + s.putRange(oldLine, newLine, y, n+1, m) + } else { + s.insertCells(newLine[n+1:], nLastCell-oLastCell) + } + } else if oLastCell > nLastCell { + s.move(n+1, y) + dchCost := 3 + oLastCell - nLastCell + if dchCost > len(ansi.EraseLineRight)+nLastNonBlank-(n+1) { + if s.putRange(oldLine, newLine, y, n+1, nLastNonBlank) { + s.move(nLastNonBlank+1, y) + } + s.clearToEnd(blank, false) + } else { + s.updatePen(blank) + s.deleteCells(oLastCell - nLastCell) + } + } + } + } + + // Update the old line with the new line + if firstCell < len(oldLine) && firstCell < len(newLine) { + copy(oldLine[firstCell:], newLine[firstCell:]) + } else { + copy(oldLine, newLine) + } +} + +// deleteCells deletes the count cells at the current cursor position and moves +// the rest of the line to the left. This is equivalent to [ansi.DCH]. +func (s *Screen) deleteCells(count int) { + // [ansi.DCH] will shift in cells from the right margin so we need to + // ensure that they are the right style. + s.buf.WriteString(ansi.DeleteCharacter(count)) //nolint:errcheck +} + +// clearToBottom clears the screen from the current cursor position to the end +// of the screen. +func (s *Screen) clearToBottom(blank *Cell) { + row, col := s.cur.Y, s.cur.X + if row < 0 { + row = 0 + } + + s.updatePen(blank) + s.buf.WriteString(ansi.EraseScreenBelow) //nolint:errcheck + // Clear the rest of the current line + s.curbuf.ClearRect(Rect(col, row, s.curbuf.Width()-col, 1)) + // Clear everything below the current line + s.curbuf.ClearRect(Rect(0, row+1, s.curbuf.Width(), s.curbuf.Height()-row-1)) +} + +// clearBottom tests if clearing the end of the screen would satisfy part of +// the screen update. Scan backwards through lines in the screen checking if +// each is blank and one or more are changed. +// It returns the top line. +func (s *Screen) clearBottom(total int) (top int) { + if total <= 0 { + return + } + + top = total + last := s.newbuf.Width() + blank := s.clearBlank() + canClearWithBlank := blank == nil || blank.Clear() + + if canClearWithBlank { + var row int + for row = total - 1; row >= 0; row-- { + oldLine := s.curbuf.Line(row) + newLine := s.newbuf.Line(row) + + var col int + ok := true + for col = 0; ok && col < last; col++ { + ok = cellEqual(newLine.At(col), blank) + } + if !ok { + break + } + + for col = 0; ok && col < last; col++ { + ok = len(oldLine) == last && cellEqual(oldLine.At(col), blank) + } + if !ok { + top = row + } + } + + if top < total { + s.move(0, top-1) // top is 1-based + s.clearToBottom(blank) + if s.oldhash != nil && s.newhash != nil && + row < len(s.oldhash) && row < len(s.newhash) { + for row := top; row < s.newbuf.Height(); row++ { + s.oldhash[row] = s.newhash[row] + } + } + } + } + + return +} + +// clearScreen clears the screen and put cursor at home. +func (s *Screen) clearScreen(blank *Cell) { + s.updatePen(blank) + s.buf.WriteString(ansi.CursorHomePosition) //nolint:errcheck + s.buf.WriteString(ansi.EraseEntireScreen) //nolint:errcheck + s.cur.X, s.cur.Y = 0, 0 + s.curbuf.Fill(blank) +} + +// clearBelow clears everything below and including the row. +func (s *Screen) clearBelow(blank *Cell, row int) { + s.move(0, row) + s.clearToBottom(blank) +} + +// clearUpdate forces a screen redraw. +func (s *Screen) clearUpdate() { + blank := s.clearBlank() + var nonEmpty int + if s.opts.AltScreen { + // XXX: We're using the maximum height of the two buffers to ensure + // we write newly added lines to the screen in [Screen.transformLine]. + nonEmpty = max(s.curbuf.Height(), s.newbuf.Height()) + s.clearScreen(blank) + } else { + nonEmpty = s.newbuf.Height() + s.clearBelow(blank, 0) + } + nonEmpty = s.clearBottom(nonEmpty) + for i := 0; i < nonEmpty; i++ { + s.transformLine(i) + } +} + +// Flush flushes the buffer to the screen. +func (s *Screen) Flush() (err error) { + s.mu.Lock() + defer s.mu.Unlock() + return s.flush() +} + +func (s *Screen) flush() (err error) { + // Write the buffer + if s.buf.Len() > 0 { + _, err = s.w.Write(s.buf.Bytes()) //nolint:errcheck + if err == nil { + s.buf.Reset() + } + } + + return +} + +// Render renders changes of the screen to the internal buffer. Call +// [Screen.Flush] to flush pending changes to the screen. +func (s *Screen) Render() { + s.mu.Lock() + s.render() + s.mu.Unlock() +} + +func (s *Screen) render() { + // Do we need to render anything? + if s.opts.AltScreen == s.altScreenMode && + !s.opts.ShowCursor == s.cursorHidden && + !s.clear && + len(s.touch) == 0 && + len(s.queueAbove) == 0 { + return + } + + // TODO: Investigate whether this is necessary. Theoretically, terminals + // can add/remove tab stops and we should be able to handle that. We could + // use [ansi.DECTABSR] to read the tab stops, but that's not implemented in + // most terminals :/ + // // Are we using hard tabs? If so, ensure tabs are using the + // // default interval using [ansi.DECST8C]. + // if s.opts.HardTabs && !s.initTabs { + // s.buf.WriteString(ansi.SetTabEvery8Columns) + // s.initTabs = true + // } + + // Do we need alt-screen mode? + if s.opts.AltScreen != s.altScreenMode { + if s.opts.AltScreen { + s.buf.WriteString(ansi.SetAltScreenSaveCursorMode) + } else { + s.buf.WriteString(ansi.ResetAltScreenSaveCursorMode) + } + s.altScreenMode = s.opts.AltScreen + } + + // Do we need text cursor mode? + if !s.opts.ShowCursor != s.cursorHidden { + s.cursorHidden = !s.opts.ShowCursor + if s.cursorHidden { + s.buf.WriteString(ansi.HideCursor) + } + } + + // Do we have queued strings to write above the screen? + if len(s.queueAbove) > 0 { + // TODO: Use scrolling region if available. + // TODO: Use [Screen.Write] [io.Writer] interface. + + // We need to scroll the screen up by the number of lines in the queue. + // We can't use [ansi.SU] because we want the cursor to move down until + // it reaches the bottom of the screen. + s.move(0, s.newbuf.Height()-1) + s.buf.WriteString(strings.Repeat("\n", len(s.queueAbove))) + s.cur.Y += len(s.queueAbove) + // XXX: Now go to the top of the screen, insert new lines, and write + // the queued strings. It is important to use [Screen.moveCursor] + // instead of [Screen.move] because we don't want to perform any checks + // on the cursor position. + s.moveCursor(0, 0, false) + s.buf.WriteString(ansi.InsertLine(len(s.queueAbove))) + for _, line := range s.queueAbove { + s.buf.WriteString(line + "\r\n") + } + + // Clear the queue + s.queueAbove = s.queueAbove[:0] + } + + var nonEmpty int + + // XXX: In inline mode, after a screen resize, we need to clear the extra + // lines at the bottom of the screen. This is because in inline mode, we + // don't use the full screen height and the current buffer size might be + // larger than the new buffer size. + partialClear := !s.opts.AltScreen && s.cur.X != -1 && s.cur.Y != -1 && + s.curbuf.Width() == s.newbuf.Width() && + s.curbuf.Height() > 0 && + s.curbuf.Height() > s.newbuf.Height() + + if !s.clear && partialClear { + s.clearBelow(nil, s.newbuf.Height()-1) + } + + if s.clear { + s.clearUpdate() + s.clear = false + } else if len(s.touch) > 0 { + if s.opts.AltScreen { + // Optimize scrolling for the alternate screen buffer. + // TODO: Should we optimize for inline mode as well? If so, we need + // to know the actual cursor position to use [ansi.DECSTBM]. + s.scrollOptimize() + } + + var changedLines int + var i int + + if s.opts.AltScreen { + nonEmpty = min(s.curbuf.Height(), s.newbuf.Height()) + } else { + nonEmpty = s.newbuf.Height() + } + + nonEmpty = s.clearBottom(nonEmpty) + for i = 0; i < nonEmpty; i++ { + _, ok := s.touch[i] + if ok { + s.transformLine(i) + changedLines++ + } + } + } + + // Sync windows and screen + s.touch = make(map[int]lineData, s.newbuf.Height()) + + if s.curbuf.Width() != s.newbuf.Width() || s.curbuf.Height() != s.newbuf.Height() { + // Resize the old buffer to match the new buffer. + _, oldh := s.curbuf.Width(), s.curbuf.Height() + s.curbuf.Resize(s.newbuf.Width(), s.newbuf.Height()) + // Sync new lines to old lines + for i := oldh - 1; i < s.newbuf.Height(); i++ { + copy(s.curbuf.Line(i), s.newbuf.Line(i)) + } + } + + s.updatePen(nil) // nil indicates a blank cell with no styles + + // Do we have enough changes to justify toggling the cursor? + if s.buf.Len() > 1 && s.opts.ShowCursor && !s.cursorHidden && s.queuedText { + nb := new(bytes.Buffer) + nb.Grow(s.buf.Len() + len(ansi.HideCursor) + len(ansi.ShowCursor)) + nb.WriteString(ansi.HideCursor) + nb.Write(s.buf.Bytes()) + nb.WriteString(ansi.ShowCursor) + *s.buf = *nb + } + + s.queuedText = false +} + +// Close writes the final screen update and resets the screen. +func (s *Screen) Close() (err error) { + s.mu.Lock() + defer s.mu.Unlock() + + s.render() + s.updatePen(nil) + // Go to the bottom of the screen + s.move(0, s.newbuf.Height()-1) + + if s.altScreenMode { + s.buf.WriteString(ansi.ResetAltScreenSaveCursorMode) + s.altScreenMode = false + } + + if s.cursorHidden { + s.buf.WriteString(ansi.ShowCursor) + s.cursorHidden = false + } + + // Write the buffer + err = s.flush() + if err != nil { + return + } + + s.reset() + return +} + +// reset resets the screen to its initial state. +func (s *Screen) reset() { + s.scrollHeight = 0 + s.cursorHidden = false + s.altScreenMode = false + s.touch = make(map[int]lineData, s.newbuf.Height()) + if s.curbuf != nil { + s.curbuf.Clear() + } + if s.newbuf != nil { + s.newbuf.Clear() + } + s.buf.Reset() + s.tabs = DefaultTabStops(s.newbuf.Width()) + s.oldhash, s.newhash = nil, nil + + // We always disable HardTabs when termtype is "linux". + if strings.HasPrefix(s.opts.Term, "linux") { + s.opts.HardTabs = false + } +} + +// Resize resizes the screen. +func (s *Screen) Resize(width, height int) bool { + oldw := s.newbuf.Width() + oldh := s.newbuf.Height() + + if s.opts.AltScreen || width != oldw { + // We only clear the whole screen if the width changes. Adding/removing + // rows is handled by the [Screen.render] and [Screen.transformLine] + // methods. + s.clear = true + } + + // Clear new columns and lines + if width > oldh { + s.ClearRect(Rect(max(oldw-1, 0), 0, width-oldw, height)) + } else if width < oldw { + s.ClearRect(Rect(max(width-1, 0), 0, oldw-width, height)) + } + + if height > oldh { + s.ClearRect(Rect(0, max(oldh-1, 0), width, height-oldh)) + } else if height < oldh { + s.ClearRect(Rect(0, max(height-1, 0), width, oldh-height)) + } + + s.mu.Lock() + s.newbuf.Resize(width, height) + s.tabs.Resize(width) + s.oldhash, s.newhash = nil, nil + s.scrollHeight = 0 // reset scroll lines + s.mu.Unlock() + + return true +} + +// MoveTo moves the cursor to the given position. +func (s *Screen) MoveTo(x, y int) { + s.mu.Lock() + s.move(x, y) + s.mu.Unlock() +} + +// InsertAbove inserts string above the screen. The inserted string is not +// managed by the screen. This does nothing when alternate screen mode is +// enabled. +func (s *Screen) InsertAbove(str string) { + if s.opts.AltScreen { + return + } + s.mu.Lock() + for _, line := range strings.Split(str, "\n") { + s.queueAbove = append(s.queueAbove, s.method.Truncate(line, s.Width(), "")) + } + s.mu.Unlock() +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/sequence.go b/vendor/github.com/charmbracelet/x/cellbuf/sequence.go new file mode 100644 index 00000000..613eefef --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/sequence.go @@ -0,0 +1,131 @@ +package cellbuf + +import ( + "bytes" + "image/color" + + "github.com/charmbracelet/x/ansi" +) + +// ReadStyle reads a Select Graphic Rendition (SGR) escape sequences from a +// list of parameters. +func ReadStyle(params ansi.Params, pen *Style) { + if len(params) == 0 { + pen.Reset() + return + } + + for i := 0; i < len(params); i++ { + param, hasMore, _ := params.Param(i, 0) + switch param { + case 0: // Reset + pen.Reset() + case 1: // Bold + pen.Bold(true) + case 2: // Dim/Faint + pen.Faint(true) + case 3: // Italic + pen.Italic(true) + case 4: // Underline + nextParam, _, ok := params.Param(i+1, 0) + if hasMore && ok { // Only accept subparameters i.e. separated by ":" + switch nextParam { + case 0, 1, 2, 3, 4, 5: + i++ + switch nextParam { + case 0: // No Underline + pen.UnderlineStyle(NoUnderline) + case 1: // Single Underline + pen.UnderlineStyle(SingleUnderline) + case 2: // Double Underline + pen.UnderlineStyle(DoubleUnderline) + case 3: // Curly Underline + pen.UnderlineStyle(CurlyUnderline) + case 4: // Dotted Underline + pen.UnderlineStyle(DottedUnderline) + case 5: // Dashed Underline + pen.UnderlineStyle(DashedUnderline) + } + } + } else { + // Single Underline + pen.Underline(true) + } + case 5: // Slow Blink + pen.SlowBlink(true) + case 6: // Rapid Blink + pen.RapidBlink(true) + case 7: // Reverse + pen.Reverse(true) + case 8: // Conceal + pen.Conceal(true) + case 9: // Crossed-out/Strikethrough + pen.Strikethrough(true) + case 22: // Normal Intensity (not bold or faint) + pen.Bold(false).Faint(false) + case 23: // Not italic, not Fraktur + pen.Italic(false) + case 24: // Not underlined + pen.Underline(false) + case 25: // Blink off + pen.SlowBlink(false).RapidBlink(false) + case 27: // Positive (not reverse) + pen.Reverse(false) + case 28: // Reveal + pen.Conceal(false) + case 29: // Not crossed out + pen.Strikethrough(false) + case 30, 31, 32, 33, 34, 35, 36, 37: // Set foreground + pen.Foreground(ansi.Black + ansi.BasicColor(param-30)) //nolint:gosec + case 38: // Set foreground 256 or truecolor + var c color.Color + n := ReadStyleColor(params[i:], &c) + if n > 0 { + pen.Foreground(c) + i += n - 1 + } + case 39: // Default foreground + pen.Foreground(nil) + case 40, 41, 42, 43, 44, 45, 46, 47: // Set background + pen.Background(ansi.Black + ansi.BasicColor(param-40)) //nolint:gosec + case 48: // Set background 256 or truecolor + var c color.Color + n := ReadStyleColor(params[i:], &c) + if n > 0 { + pen.Background(c) + i += n - 1 + } + case 49: // Default Background + pen.Background(nil) + case 58: // Set underline color + var c color.Color + n := ReadStyleColor(params[i:], &c) + if n > 0 { + pen.UnderlineColor(c) + i += n - 1 + } + case 59: // Default underline color + pen.UnderlineColor(nil) + case 90, 91, 92, 93, 94, 95, 96, 97: // Set bright foreground + pen.Foreground(ansi.BrightBlack + ansi.BasicColor(param-90)) //nolint:gosec + case 100, 101, 102, 103, 104, 105, 106, 107: // Set bright background + pen.Background(ansi.BrightBlack + ansi.BasicColor(param-100)) //nolint:gosec + } + } +} + +// ReadLink reads a hyperlink escape sequence from a data buffer. +func ReadLink(p []byte, link *Link) { + params := bytes.Split(p, []byte{';'}) + if len(params) != 3 { + return + } + link.Params = string(params[1]) + link.URL = string(params[2]) +} + +// ReadStyleColor reads a color from a list of parameters. +// See [ansi.ReadStyleColor] for more information. +func ReadStyleColor(params ansi.Params, c *color.Color) int { + return ansi.ReadStyleColor(params, c) +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/style.go b/vendor/github.com/charmbracelet/x/cellbuf/style.go new file mode 100644 index 00000000..82c4afb7 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/style.go @@ -0,0 +1,31 @@ +package cellbuf + +import ( + "github.com/charmbracelet/colorprofile" +) + +// Convert converts a style to respect the given color profile. +func ConvertStyle(s Style, p colorprofile.Profile) Style { + switch p { + case colorprofile.TrueColor: + return s + case colorprofile.Ascii: + s.Fg = nil + s.Bg = nil + s.Ul = nil + case colorprofile.NoTTY: + return Style{} + } + + if s.Fg != nil { + s.Fg = p.Convert(s.Fg) + } + if s.Bg != nil { + s.Bg = p.Convert(s.Bg) + } + if s.Ul != nil { + s.Ul = p.Convert(s.Ul) + } + + return s +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/tabstop.go b/vendor/github.com/charmbracelet/x/cellbuf/tabstop.go new file mode 100644 index 00000000..24eec449 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/tabstop.go @@ -0,0 +1,137 @@ +package cellbuf + +// DefaultTabInterval is the default tab interval. +const DefaultTabInterval = 8 + +// TabStops represents horizontal line tab stops. +type TabStops struct { + stops []int + interval int + width int +} + +// NewTabStops creates a new set of tab stops from a number of columns and an +// interval. +func NewTabStops(width, interval int) *TabStops { + ts := new(TabStops) + ts.interval = interval + ts.width = width + ts.stops = make([]int, (width+(interval-1))/interval) + ts.init(0, width) + return ts +} + +// DefaultTabStops creates a new set of tab stops with the default interval. +func DefaultTabStops(cols int) *TabStops { + return NewTabStops(cols, DefaultTabInterval) +} + +// Resize resizes the tab stops to the given width. +func (ts *TabStops) Resize(width int) { + if width == ts.width { + return + } + + if width < ts.width { + size := (width + (ts.interval - 1)) / ts.interval + ts.stops = ts.stops[:size] + } else { + size := (width - ts.width + (ts.interval - 1)) / ts.interval + ts.stops = append(ts.stops, make([]int, size)...) + } + + ts.init(ts.width, width) + ts.width = width +} + +// IsStop returns true if the given column is a tab stop. +func (ts TabStops) IsStop(col int) bool { + mask := ts.mask(col) + i := col >> 3 + if i < 0 || i >= len(ts.stops) { + return false + } + return ts.stops[i]&mask != 0 +} + +// Next returns the next tab stop after the given column. +func (ts TabStops) Next(col int) int { + return ts.Find(col, 1) +} + +// Prev returns the previous tab stop before the given column. +func (ts TabStops) Prev(col int) int { + return ts.Find(col, -1) +} + +// Find returns the prev/next tab stop before/after the given column and delta. +// If delta is positive, it returns the next tab stop after the given column. +// If delta is negative, it returns the previous tab stop before the given column. +// If delta is zero, it returns the given column. +func (ts TabStops) Find(col, delta int) int { + if delta == 0 { + return col + } + + var prev bool + count := delta + if count < 0 { + count = -count + prev = true + } + + for count > 0 { + if !prev { + if col >= ts.width-1 { + return col + } + + col++ + } else { + if col < 1 { + return col + } + + col-- + } + + if ts.IsStop(col) { + count-- + } + } + + return col +} + +// Set adds a tab stop at the given column. +func (ts *TabStops) Set(col int) { + mask := ts.mask(col) + ts.stops[col>>3] |= mask +} + +// Reset removes the tab stop at the given column. +func (ts *TabStops) Reset(col int) { + mask := ts.mask(col) + ts.stops[col>>3] &= ^mask +} + +// Clear removes all tab stops. +func (ts *TabStops) Clear() { + ts.stops = make([]int, len(ts.stops)) +} + +// mask returns the mask for the given column. +func (ts *TabStops) mask(col int) int { + return 1 << (col & (ts.interval - 1)) +} + +// init initializes the tab stops starting from col until width. +func (ts *TabStops) init(col, width int) { + for x := col; x < width; x++ { + if x%ts.interval == 0 { + ts.Set(x) + } else { + ts.Reset(x) + } + } +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/utils.go b/vendor/github.com/charmbracelet/x/cellbuf/utils.go new file mode 100644 index 00000000..b0452fa9 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/utils.go @@ -0,0 +1,38 @@ +package cellbuf + +import ( + "strings" +) + +// Height returns the height of a string. +func Height(s string) int { + return strings.Count(s, "\n") + 1 +} + +func min(a, b int) int { //nolint:predeclared + if a > b { + return b + } + return a +} + +func max(a, b int) int { //nolint:predeclared + if a > b { + return a + } + return b +} + +func clamp(v, low, high int) int { + if high < low { + low, high = high, low + } + return min(high, max(low, v)) +} + +func abs(a int) int { + if a < 0 { + return -a + } + return a +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/wrap.go b/vendor/github.com/charmbracelet/x/cellbuf/wrap.go new file mode 100644 index 00000000..f89f52f6 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/wrap.go @@ -0,0 +1,185 @@ +package cellbuf + +import ( + "bytes" + "unicode" + "unicode/utf8" + + "github.com/charmbracelet/x/ansi" +) + +const nbsp = '\u00a0' + +// Wrap returns a string that is wrapped to the specified limit applying any +// ANSI escape sequences in the string. It tries to wrap the string at word +// boundaries, but will break words if necessary. +// +// The breakpoints string is a list of characters that are considered +// breakpoints for word wrapping. A hyphen (-) is always considered a +// breakpoint. +// +// Note: breakpoints must be a string of 1-cell wide rune characters. +func Wrap(s string, limit int, breakpoints string) string { + if len(s) == 0 { + return "" + } + + if limit < 1 { + return s + } + + p := ansi.GetParser() + defer ansi.PutParser(p) + + var ( + buf bytes.Buffer + word bytes.Buffer + space bytes.Buffer + style, curStyle Style + link, curLink Link + curWidth int + wordLen int + ) + + hasBlankStyle := func() bool { + // Only follow reverse attribute, bg color and underline style + return !style.Attrs.Contains(ReverseAttr) && style.Bg == nil && style.UlStyle == NoUnderline + } + + addSpace := func() { + curWidth += space.Len() + buf.Write(space.Bytes()) + space.Reset() + } + + addWord := func() { + if word.Len() == 0 { + return + } + + curLink = link + curStyle = style + + addSpace() + curWidth += wordLen + buf.Write(word.Bytes()) + word.Reset() + wordLen = 0 + } + + addNewline := func() { + if !curStyle.Empty() { + buf.WriteString(ansi.ResetStyle) + } + if !curLink.Empty() { + buf.WriteString(ansi.ResetHyperlink()) + } + buf.WriteByte('\n') + if !curLink.Empty() { + buf.WriteString(ansi.SetHyperlink(curLink.URL, curLink.Params)) + } + if !curStyle.Empty() { + buf.WriteString(curStyle.Sequence()) + } + curWidth = 0 + space.Reset() + } + + var state byte + for len(s) > 0 { + seq, width, n, newState := ansi.DecodeSequence(s, state, p) + switch width { + case 0: + if ansi.Equal(seq, "\t") { + addWord() + space.WriteString(seq) + break + } else if ansi.Equal(seq, "\n") { + if wordLen == 0 { + if curWidth+space.Len() > limit { + curWidth = 0 + } else { + // preserve whitespaces + buf.Write(space.Bytes()) + } + space.Reset() + } + + addWord() + addNewline() + break + } else if ansi.HasCsiPrefix(seq) && p.Command() == 'm' { + // SGR style sequence [ansi.SGR] + ReadStyle(p.Params(), &style) + } else if ansi.HasOscPrefix(seq) && p.Command() == 8 { + // Hyperlink sequence [ansi.SetHyperlink] + ReadLink(p.Data(), &link) + } + + word.WriteString(seq) + default: + if len(seq) == 1 { + // ASCII + r, _ := utf8.DecodeRuneInString(seq) + if r != nbsp && unicode.IsSpace(r) && hasBlankStyle() { + addWord() + space.WriteRune(r) + break + } else if r == '-' || runeContainsAny(r, breakpoints) { + addSpace() + if curWidth+wordLen+width <= limit { + addWord() + buf.WriteString(seq) + curWidth += width + break + } + } + } + + if wordLen+width > limit { + // Hardwrap the word if it's too long + addWord() + } + + word.WriteString(seq) + wordLen += width + + if curWidth+wordLen+space.Len() > limit { + addNewline() + } + } + + s = s[n:] + state = newState + } + + if wordLen == 0 { + if curWidth+space.Len() > limit { + curWidth = 0 + } else { + // preserve whitespaces + buf.Write(space.Bytes()) + } + space.Reset() + } + + addWord() + + if !curLink.Empty() { + buf.WriteString(ansi.ResetHyperlink()) + } + if !curStyle.Empty() { + buf.WriteString(ansi.ResetStyle) + } + + return buf.String() +} + +func runeContainsAny[T string | []rune](r rune, s T) bool { + for _, c := range []rune(s) { + if c == r { + return true + } + } + return false +} diff --git a/vendor/github.com/charmbracelet/x/cellbuf/writer.go b/vendor/github.com/charmbracelet/x/cellbuf/writer.go new file mode 100644 index 00000000..ae8b2a81 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/cellbuf/writer.go @@ -0,0 +1,339 @@ +package cellbuf + +import ( + "bytes" + "fmt" + "strings" + + "github.com/charmbracelet/x/ansi" +) + +// CellBuffer is a cell buffer that represents a set of cells in a screen or a +// grid. +type CellBuffer interface { + // Cell returns the cell at the given position. + Cell(x, y int) *Cell + // SetCell sets the cell at the given position to the given cell. It + // returns whether the cell was set successfully. + SetCell(x, y int, c *Cell) bool + // Bounds returns the bounds of the cell buffer. + Bounds() Rectangle +} + +// FillRect fills the rectangle within the cell buffer with the given cell. +// This will not fill cells outside the bounds of the cell buffer. +func FillRect(s CellBuffer, c *Cell, rect Rectangle) { + for y := rect.Min.Y; y < rect.Max.Y; y++ { + for x := rect.Min.X; x < rect.Max.X; x++ { + s.SetCell(x, y, c) //nolint:errcheck + } + } +} + +// Fill fills the cell buffer with the given cell. +func Fill(s CellBuffer, c *Cell) { + FillRect(s, c, s.Bounds()) +} + +// ClearRect clears the rectangle within the cell buffer with blank cells. +func ClearRect(s CellBuffer, rect Rectangle) { + FillRect(s, nil, rect) +} + +// Clear clears the cell buffer with blank cells. +func Clear(s CellBuffer) { + Fill(s, nil) +} + +// SetContentRect clears the rectangle within the cell buffer with blank cells, +// and sets the given string as its content. If the height or width of the +// string exceeds the height or width of the cell buffer, it will be truncated. +func SetContentRect(s CellBuffer, str string, rect Rectangle) { + // Replace all "\n" with "\r\n" to ensure the cursor is reset to the start + // of the line. Make sure we don't replace "\r\n" with "\r\r\n". + str = strings.ReplaceAll(str, "\r\n", "\n") + str = strings.ReplaceAll(str, "\n", "\r\n") + ClearRect(s, rect) + printString(s, ansi.GraphemeWidth, rect.Min.X, rect.Min.Y, rect, str, true, "") +} + +// SetContent clears the cell buffer with blank cells, and sets the given string +// as its content. If the height or width of the string exceeds the height or +// width of the cell buffer, it will be truncated. +func SetContent(s CellBuffer, str string) { + SetContentRect(s, str, s.Bounds()) +} + +// Render returns a string representation of the grid with ANSI escape sequences. +func Render(d CellBuffer) string { + var buf bytes.Buffer + height := d.Bounds().Dy() + for y := 0; y < height; y++ { + _, line := RenderLine(d, y) + buf.WriteString(line) + if y < height-1 { + buf.WriteString("\r\n") + } + } + return buf.String() +} + +// RenderLine returns a string representation of the yth line of the grid along +// with the width of the line. +func RenderLine(d CellBuffer, n int) (w int, line string) { + var pen Style + var link Link + var buf bytes.Buffer + var pendingLine string + var pendingWidth int // this ignores space cells until we hit a non-space cell + + writePending := func() { + // If there's no pending line, we don't need to do anything. + if len(pendingLine) == 0 { + return + } + buf.WriteString(pendingLine) + w += pendingWidth + pendingWidth = 0 + pendingLine = "" + } + + for x := 0; x < d.Bounds().Dx(); x++ { + if cell := d.Cell(x, n); cell != nil && cell.Width > 0 { + // Convert the cell's style and link to the given color profile. + cellStyle := cell.Style + cellLink := cell.Link + if cellStyle.Empty() && !pen.Empty() { + writePending() + buf.WriteString(ansi.ResetStyle) //nolint:errcheck + pen.Reset() + } + if !cellStyle.Equal(&pen) { + writePending() + seq := cellStyle.DiffSequence(pen) + buf.WriteString(seq) // nolint:errcheck + pen = cellStyle + } + + // Write the URL escape sequence + if cellLink != link && link.URL != "" { + writePending() + buf.WriteString(ansi.ResetHyperlink()) //nolint:errcheck + link.Reset() + } + if cellLink != link { + writePending() + buf.WriteString(ansi.SetHyperlink(cellLink.URL, cellLink.Params)) //nolint:errcheck + link = cellLink + } + + // We only write the cell content if it's not empty. If it is, we + // append it to the pending line and width to be evaluated later. + if cell.Equal(&BlankCell) { + pendingLine += cell.String() + pendingWidth += cell.Width + } else { + writePending() + buf.WriteString(cell.String()) + w += cell.Width + } + } + } + if link.URL != "" { + buf.WriteString(ansi.ResetHyperlink()) //nolint:errcheck + } + if !pen.Empty() { + buf.WriteString(ansi.ResetStyle) //nolint:errcheck + } + return w, strings.TrimRight(buf.String(), " ") // Trim trailing spaces +} + +// ScreenWriter represents a writer that writes to a [Screen] parsing ANSI +// escape sequences and Unicode characters and converting them into cells that +// can be written to a cell [Buffer]. +type ScreenWriter struct { + *Screen +} + +// NewScreenWriter creates a new ScreenWriter that writes to the given Screen. +// This is a convenience function for creating a ScreenWriter. +func NewScreenWriter(s *Screen) *ScreenWriter { + return &ScreenWriter{s} +} + +// Write writes the given bytes to the screen. +// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape +// sequences. +func (s *ScreenWriter) Write(p []byte) (n int, err error) { + printString(s.Screen, s.method, + s.cur.X, s.cur.Y, s.Bounds(), + p, false, "") + return len(p), nil +} + +// SetContent clears the screen with blank cells, and sets the given string as +// its content. If the height or width of the string exceeds the height or +// width of the screen, it will be truncated. +// +// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape sequences. +func (s *ScreenWriter) SetContent(str string) { + s.SetContentRect(str, s.Bounds()) +} + +// SetContentRect clears the rectangle within the screen with blank cells, and +// sets the given string as its content. If the height or width of the string +// exceeds the height or width of the screen, it will be truncated. +// +// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape +// sequences. +func (s *ScreenWriter) SetContentRect(str string, rect Rectangle) { + // Replace all "\n" with "\r\n" to ensure the cursor is reset to the start + // of the line. Make sure we don't replace "\r\n" with "\r\r\n". + str = strings.ReplaceAll(str, "\r\n", "\n") + str = strings.ReplaceAll(str, "\n", "\r\n") + s.ClearRect(rect) + printString(s.Screen, s.method, + rect.Min.X, rect.Min.Y, rect, + str, true, "") +} + +// Print prints the string at the current cursor position. It will wrap the +// string to the width of the screen if it exceeds the width of the screen. +// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape +// sequences. +func (s *ScreenWriter) Print(str string, v ...interface{}) { + if len(v) > 0 { + str = fmt.Sprintf(str, v...) + } + printString(s.Screen, s.method, + s.cur.X, s.cur.Y, s.Bounds(), + str, false, "") +} + +// PrintAt prints the string at the given position. It will wrap the string to +// the width of the screen if it exceeds the width of the screen. +// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape +// sequences. +func (s *ScreenWriter) PrintAt(x, y int, str string, v ...interface{}) { + if len(v) > 0 { + str = fmt.Sprintf(str, v...) + } + printString(s.Screen, s.method, + x, y, s.Bounds(), + str, false, "") +} + +// PrintCrop prints the string at the current cursor position and truncates the +// text if it exceeds the width of the screen. Use tail to specify a string to +// append if the string is truncated. +// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape +// sequences. +func (s *ScreenWriter) PrintCrop(str string, tail string) { + printString(s.Screen, s.method, + s.cur.X, s.cur.Y, s.Bounds(), + str, true, tail) +} + +// PrintCropAt prints the string at the given position and truncates the text +// if it exceeds the width of the screen. Use tail to specify a string to append +// if the string is truncated. +// This will recognize ANSI [ansi.SGR] style and [ansi.SetHyperlink] escape +// sequences. +func (s *ScreenWriter) PrintCropAt(x, y int, str string, tail string) { + printString(s.Screen, s.method, + x, y, s.Bounds(), + str, true, tail) +} + +// printString draws a string starting at the given position. +func printString[T []byte | string]( + s CellBuffer, + m ansi.Method, + x, y int, + bounds Rectangle, str T, + truncate bool, tail string, +) { + p := ansi.GetParser() + defer ansi.PutParser(p) + + var tailc Cell + if truncate && len(tail) > 0 { + if m == ansi.WcWidth { + tailc = *NewCellString(tail) + } else { + tailc = *NewGraphemeCell(tail) + } + } + + decoder := ansi.DecodeSequenceWc[T] + if m == ansi.GraphemeWidth { + decoder = ansi.DecodeSequence[T] + } + + var cell Cell + var style Style + var link Link + var state byte + for len(str) > 0 { + seq, width, n, newState := decoder(str, state, p) + + switch width { + case 1, 2, 3, 4: // wide cells can go up to 4 cells wide + cell.Width += width + cell.Append([]rune(string(seq))...) + + if !truncate && x+cell.Width > bounds.Max.X && y+1 < bounds.Max.Y { + // Wrap the string to the width of the window + x = bounds.Min.X + y++ + } + if Pos(x, y).In(bounds) { + if truncate && tailc.Width > 0 && x+cell.Width > bounds.Max.X-tailc.Width { + // Truncate the string and append the tail if any. + cell := tailc + cell.Style = style + cell.Link = link + s.SetCell(x, y, &cell) + x += tailc.Width + } else { + // Print the cell to the screen + cell.Style = style + cell.Link = link + s.SetCell(x, y, &cell) //nolint:errcheck + x += width + } + } + + // String is too long for the line, truncate it. + // Make sure we reset the cell for the next iteration. + cell.Reset() + default: + // Valid sequences always have a non-zero Cmd. + // TODO: Handle cursor movement and other sequences + switch { + case ansi.HasCsiPrefix(seq) && p.Command() == 'm': + // SGR - Select Graphic Rendition + ReadStyle(p.Params(), &style) + case ansi.HasOscPrefix(seq) && p.Command() == 8: + // Hyperlinks + ReadLink(p.Data(), &link) + case ansi.Equal(seq, T("\n")): + y++ + case ansi.Equal(seq, T("\r")): + x = bounds.Min.X + default: + cell.Append([]rune(string(seq))...) + } + } + + // Advance the state and data + state = newState + str = str[n:] + } + + // Make sure to set the last cell if it's not empty. + if !cell.Empty() { + s.SetCell(x, y, &cell) //nolint:errcheck + cell.Reset() + } +} diff --git a/vendor/github.com/charmbracelet/x/term/LICENSE b/vendor/github.com/charmbracelet/x/term/LICENSE new file mode 100644 index 00000000..65a5654e --- /dev/null +++ b/vendor/github.com/charmbracelet/x/term/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Charmbracelet, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/charmbracelet/x/term/term.go b/vendor/github.com/charmbracelet/x/term/term.go new file mode 100644 index 00000000..58d6522c --- /dev/null +++ b/vendor/github.com/charmbracelet/x/term/term.go @@ -0,0 +1,49 @@ +package term + +// State contains platform-specific state of a terminal. +type State struct { + state +} + +// IsTerminal returns whether the given file descriptor is a terminal. +func IsTerminal(fd uintptr) bool { + return isTerminal(fd) +} + +// MakeRaw puts the terminal connected to the given file descriptor into raw +// mode and returns the previous state of the terminal so that it can be +// restored. +func MakeRaw(fd uintptr) (*State, error) { + return makeRaw(fd) +} + +// GetState returns the current state of a terminal which may be useful to +// restore the terminal after a signal. +func GetState(fd uintptr) (*State, error) { + return getState(fd) +} + +// SetState sets the given state of the terminal. +func SetState(fd uintptr, state *State) error { + return setState(fd, state) +} + +// Restore restores the terminal connected to the given file descriptor to a +// previous state. +func Restore(fd uintptr, oldState *State) error { + return restore(fd, oldState) +} + +// GetSize returns the visible dimensions of the given terminal. +// +// These dimensions don't include any scrollback buffer height. +func GetSize(fd uintptr) (width, height int, err error) { + return getSize(fd) +} + +// ReadPassword reads a line of input from a terminal without local echo. This +// is commonly used for inputting passwords and other sensitive data. The slice +// returned does not include the \n. +func ReadPassword(fd uintptr) ([]byte, error) { + return readPassword(fd) +} diff --git a/vendor/github.com/charmbracelet/x/term/term_other.go b/vendor/github.com/charmbracelet/x/term/term_other.go new file mode 100644 index 00000000..092c7e9d --- /dev/null +++ b/vendor/github.com/charmbracelet/x/term/term_other.go @@ -0,0 +1,39 @@ +//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !zos && !windows && !solaris && !plan9 +// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!zos,!windows,!solaris,!plan9 + +package term + +import ( + "fmt" + "runtime" +) + +type state struct{} + +func isTerminal(fd uintptr) bool { + return false +} + +func makeRaw(fd uintptr) (*State, error) { + return nil, fmt.Errorf("terminal: MakeRaw not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func getState(fd uintptr) (*State, error) { + return nil, fmt.Errorf("terminal: GetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func restore(fd uintptr, state *State) error { + return fmt.Errorf("terminal: Restore not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func getSize(fd uintptr) (width, height int, err error) { + return 0, 0, fmt.Errorf("terminal: GetSize not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func setState(fd uintptr, state *State) error { + return fmt.Errorf("terminal: SetState not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} + +func readPassword(fd uintptr) ([]byte, error) { + return nil, fmt.Errorf("terminal: ReadPassword not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) +} diff --git a/vendor/github.com/charmbracelet/x/term/term_unix.go b/vendor/github.com/charmbracelet/x/term/term_unix.go new file mode 100644 index 00000000..1459cb1b --- /dev/null +++ b/vendor/github.com/charmbracelet/x/term/term_unix.go @@ -0,0 +1,96 @@ +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos + +package term + +import ( + "golang.org/x/sys/unix" +) + +type state struct { + unix.Termios +} + +func isTerminal(fd uintptr) bool { + _, err := unix.IoctlGetTermios(int(fd), ioctlReadTermios) + return err == nil +} + +func makeRaw(fd uintptr) (*State, error) { + termios, err := unix.IoctlGetTermios(int(fd), ioctlReadTermios) + if err != nil { + return nil, err + } + + oldState := State{state{Termios: *termios}} + + // This attempts to replicate the behaviour documented for cfmakeraw in + // the termios(3) manpage. + termios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON + termios.Oflag &^= unix.OPOST + termios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN + termios.Cflag &^= unix.CSIZE | unix.PARENB + termios.Cflag |= unix.CS8 + termios.Cc[unix.VMIN] = 1 + termios.Cc[unix.VTIME] = 0 + if err := unix.IoctlSetTermios(int(fd), ioctlWriteTermios, termios); err != nil { + return nil, err + } + + return &oldState, nil +} + +func setState(fd uintptr, state *State) error { + var termios *unix.Termios + if state != nil { + termios = &state.Termios + } + return unix.IoctlSetTermios(int(fd), ioctlWriteTermios, termios) +} + +func getState(fd uintptr) (*State, error) { + termios, err := unix.IoctlGetTermios(int(fd), ioctlReadTermios) + if err != nil { + return nil, err + } + + return &State{state{Termios: *termios}}, nil +} + +func restore(fd uintptr, state *State) error { + return unix.IoctlSetTermios(int(fd), ioctlWriteTermios, &state.Termios) +} + +func getSize(fd uintptr) (width, height int, err error) { + ws, err := unix.IoctlGetWinsize(int(fd), unix.TIOCGWINSZ) + if err != nil { + return 0, 0, err + } + return int(ws.Col), int(ws.Row), nil +} + +// passwordReader is an io.Reader that reads from a specific file descriptor. +type passwordReader int + +func (r passwordReader) Read(buf []byte) (int, error) { + return unix.Read(int(r), buf) +} + +func readPassword(fd uintptr) ([]byte, error) { + termios, err := unix.IoctlGetTermios(int(fd), ioctlReadTermios) + if err != nil { + return nil, err + } + + newState := *termios + newState.Lflag &^= unix.ECHO + newState.Lflag |= unix.ICANON | unix.ISIG + newState.Iflag |= unix.ICRNL + if err := unix.IoctlSetTermios(int(fd), ioctlWriteTermios, &newState); err != nil { + return nil, err + } + + defer unix.IoctlSetTermios(int(fd), ioctlWriteTermios, termios) + + return readPasswordLine(passwordReader(fd)) +} diff --git a/vendor/github.com/charmbracelet/x/term/term_unix_bsd.go b/vendor/github.com/charmbracelet/x/term/term_unix_bsd.go new file mode 100644 index 00000000..b435031a --- /dev/null +++ b/vendor/github.com/charmbracelet/x/term/term_unix_bsd.go @@ -0,0 +1,11 @@ +//go:build darwin || dragonfly || freebsd || netbsd || openbsd +// +build darwin dragonfly freebsd netbsd openbsd + +package term + +import "golang.org/x/sys/unix" + +const ( + ioctlReadTermios = unix.TIOCGETA + ioctlWriteTermios = unix.TIOCSETA +) diff --git a/vendor/github.com/charmbracelet/x/term/term_unix_other.go b/vendor/github.com/charmbracelet/x/term/term_unix_other.go new file mode 100644 index 00000000..ee2a29eb --- /dev/null +++ b/vendor/github.com/charmbracelet/x/term/term_unix_other.go @@ -0,0 +1,11 @@ +//go:build aix || linux || solaris || zos +// +build aix linux solaris zos + +package term + +import "golang.org/x/sys/unix" + +const ( + ioctlReadTermios = unix.TCGETS + ioctlWriteTermios = unix.TCSETS +) diff --git a/vendor/github.com/charmbracelet/x/term/term_windows.go b/vendor/github.com/charmbracelet/x/term/term_windows.go new file mode 100644 index 00000000..fe7afdec --- /dev/null +++ b/vendor/github.com/charmbracelet/x/term/term_windows.go @@ -0,0 +1,87 @@ +//go:build windows +// +build windows + +package term + +import ( + "os" + + "golang.org/x/sys/windows" +) + +type state struct { + Mode uint32 +} + +func isTerminal(fd uintptr) bool { + var st uint32 + err := windows.GetConsoleMode(windows.Handle(fd), &st) + return err == nil +} + +func makeRaw(fd uintptr) (*State, error) { + var st uint32 + if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil { + return nil, err + } + raw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT) + raw |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT + if err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil { + return nil, err + } + return &State{state{st}}, nil +} + +func setState(fd uintptr, state *State) error { + var mode uint32 + if state != nil { + mode = state.Mode + } + return windows.SetConsoleMode(windows.Handle(fd), mode) +} + +func getState(fd uintptr) (*State, error) { + var st uint32 + if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil { + return nil, err + } + return &State{state{st}}, nil +} + +func restore(fd uintptr, state *State) error { + return windows.SetConsoleMode(windows.Handle(fd), state.Mode) +} + +func getSize(fd uintptr) (width, height int, err error) { + var info windows.ConsoleScreenBufferInfo + if err := windows.GetConsoleScreenBufferInfo(windows.Handle(fd), &info); err != nil { + return 0, 0, err + } + return int(info.Window.Right - info.Window.Left + 1), int(info.Window.Bottom - info.Window.Top + 1), nil +} + +func readPassword(fd uintptr) ([]byte, error) { + var st uint32 + if err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil { + return nil, err + } + old := st + + st &^= (windows.ENABLE_ECHO_INPUT | windows.ENABLE_LINE_INPUT) + st |= (windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_PROCESSED_INPUT) + if err := windows.SetConsoleMode(windows.Handle(fd), st); err != nil { + return nil, err + } + + defer windows.SetConsoleMode(windows.Handle(fd), old) + + var h windows.Handle + p, _ := windows.GetCurrentProcess() + if err := windows.DuplicateHandle(p, windows.Handle(fd), p, &h, 0, false, windows.DUPLICATE_SAME_ACCESS); err != nil { + return nil, err + } + + f := os.NewFile(uintptr(h), "stdin") + defer f.Close() + return readPasswordLine(f) +} diff --git a/vendor/github.com/charmbracelet/x/term/terminal.go b/vendor/github.com/charmbracelet/x/term/terminal.go new file mode 100644 index 00000000..8963163f --- /dev/null +++ b/vendor/github.com/charmbracelet/x/term/terminal.go @@ -0,0 +1,12 @@ +package term + +import ( + "io" +) + +// File represents a file that has a file descriptor and can be read from, +// written to, and closed. +type File interface { + io.ReadWriteCloser + Fd() uintptr +} diff --git a/vendor/github.com/charmbracelet/x/term/util.go b/vendor/github.com/charmbracelet/x/term/util.go new file mode 100644 index 00000000..b7313418 --- /dev/null +++ b/vendor/github.com/charmbracelet/x/term/util.go @@ -0,0 +1,47 @@ +package term + +import ( + "io" + "runtime" +) + +// readPasswordLine reads from reader until it finds \n or io.EOF. +// The slice returned does not include the \n. +// readPasswordLine also ignores any \r it finds. +// Windows uses \r as end of line. So, on Windows, readPasswordLine +// reads until it finds \r and ignores any \n it finds during processing. +func readPasswordLine(reader io.Reader) ([]byte, error) { + var buf [1]byte + var ret []byte + + for { + n, err := reader.Read(buf[:]) + if n > 0 { + switch buf[0] { + case '\b': + if len(ret) > 0 { + ret = ret[:len(ret)-1] + } + case '\n': + if runtime.GOOS != "windows" { + return ret, nil + } + // otherwise ignore \n + case '\r': + if runtime.GOOS == "windows" { + return ret, nil + } + // otherwise ignore \r + default: + ret = append(ret, buf[0]) + } + continue + } + if err != nil { + if err == io.EOF && len(ret) > 0 { + return ret, nil + } + return ret, err + } + } +} diff --git a/vendor/github.com/cloudflare/circl/internal/conv/conv.go b/vendor/github.com/cloudflare/circl/internal/conv/conv.go index 649a8e93..3fd0df49 100644 --- a/vendor/github.com/cloudflare/circl/internal/conv/conv.go +++ b/vendor/github.com/cloudflare/circl/internal/conv/conv.go @@ -5,6 +5,8 @@ import ( "fmt" "math/big" "strings" + + "golang.org/x/crypto/cryptobyte" ) // BytesLe2Hex returns an hexadecimal string of a number stored in a @@ -138,3 +140,34 @@ func BigInt2Uint64Le(z []uint64, x *big.Int) { z[i] = 0 } } + +// MarshalBinary encodes a value into a byte array in a format readable by UnmarshalBinary. +func MarshalBinary(v cryptobyte.MarshalingValue) ([]byte, error) { + const DefaultSize = 32 + b := cryptobyte.NewBuilder(make([]byte, 0, DefaultSize)) + b.AddValue(v) + return b.Bytes() +} + +// MarshalBinaryLen encodes a value into an array of n bytes in a format readable by UnmarshalBinary. +func MarshalBinaryLen(v cryptobyte.MarshalingValue, length uint) ([]byte, error) { + b := cryptobyte.NewFixedBuilder(make([]byte, 0, length)) + b.AddValue(v) + return b.Bytes() +} + +// A UnmarshalingValue decodes itself from a cryptobyte.String and advances the pointer. +// It reports whether the read was successful. +type UnmarshalingValue interface { + Unmarshal(*cryptobyte.String) bool +} + +// UnmarshalBinary recovers a value from a byte array. +// It returns an error if the read was unsuccessful. +func UnmarshalBinary(v UnmarshalingValue, data []byte) (err error) { + s := cryptobyte.String(data) + if data == nil || !v.Unmarshal(&s) || !s.Empty() { + err = fmt.Errorf("cannot read %T from input string", v) + } + return +} diff --git a/vendor/github.com/cloudflare/circl/math/integer.go b/vendor/github.com/cloudflare/circl/math/integer.go new file mode 100644 index 00000000..9c80c23b --- /dev/null +++ b/vendor/github.com/cloudflare/circl/math/integer.go @@ -0,0 +1,16 @@ +package math + +import "math/bits" + +// NextPow2 finds the next power of two (N=2^k, k>=0) greater than n. +// If n is already a power of two, then this function returns n, and log2(n). +func NextPow2(n uint) (N uint, k uint) { + if bits.OnesCount(n) == 1 { + k = uint(bits.TrailingZeros(n)) + N = n + } else { + k = uint(bits.Len(n)) + N = uint(1) << k + } + return +} diff --git a/vendor/github.com/cyphar/filepath-securejoin/CHANGELOG.md b/vendor/github.com/cyphar/filepath-securejoin/CHANGELOG.md index cb1252b5..ca0e3c62 100644 --- a/vendor/github.com/cyphar/filepath-securejoin/CHANGELOG.md +++ b/vendor/github.com/cyphar/filepath-securejoin/CHANGELOG.md @@ -6,6 +6,51 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] ## +## [0.4.1] - 2025-01-28 ## + +### Fixed ### +- The restrictions added for `root` paths passed to `SecureJoin` in 0.4.0 was + found to be too strict and caused some regressions when folks tried to + update, so this restriction has been relaxed to only return an error if the + path contains a `..` component. We still recommend users use `filepath.Clean` + (and even `filepath.EvalSymlinks`) on the `root` path they are using, but at + least you will no longer be punished for "trivial" unclean paths. + +## [0.4.0] - 2025-01-13 ## + +### Breaking #### +- `SecureJoin(VFS)` will now return an error if the provided `root` is not a + `filepath.Clean`'d path. + + While it is ultimately the responsibility of the caller to ensure the root is + a safe path to use, passing a path like `/symlink/..` as a root would result + in the `SecureJoin`'d path being placed in `/` even though `/symlink/..` + might be a different directory, and so we should more strongly discourage + such usage. + + All major users of `securejoin.SecureJoin` already ensure that the paths they + provide are safe (and this is ultimately a question of user error), but + removing this foot-gun is probably a good idea. Of course, this is + necessarily a breaking API change (though we expect no real users to be + affected by it). + + Thanks to [Erik Sjölund](https://github.com/eriksjolund), who initially + reported this issue as a possible security issue. + +- `MkdirAll` and `MkdirHandle` now take an `os.FileMode`-style mode argument + instead of a raw `unix.S_*`-style mode argument, which may cause compile-time + type errors depending on how you use `filepath-securejoin`. For most users, + there will be no change in behaviour aside from the type change (as the + bottom `0o777` bits are the same in both formats, and most users are probably + only using those bits). + + However, if you were using `unix.S_ISVTX` to set the sticky bit with + `MkdirAll(Handle)` you will need to switch to `os.ModeSticky` otherwise you + will get a runtime error with this update. In addition, the error message you + will get from passing `unix.S_ISUID` and `unix.S_ISGID` will be different as + they are treated as invalid bits now (note that previously passing said bits + was also an error). + ## [0.3.6] - 2024-12-17 ## ### Compatibility ### @@ -193,7 +238,9 @@ This is our first release of `github.com/cyphar/filepath-securejoin`, containing a full implementation with a coverage of 93.5% (the only missing cases are the error cases, which are hard to mocktest at the moment). -[Unreleased]: https://github.com/cyphar/filepath-securejoin/compare/v0.3.6...HEAD +[Unreleased]: https://github.com/cyphar/filepath-securejoin/compare/v0.4.1...HEAD +[0.4.1]: https://github.com/cyphar/filepath-securejoin/compare/v0.4.0...v0.4.1 +[0.4.0]: https://github.com/cyphar/filepath-securejoin/compare/v0.3.6...v0.4.0 [0.3.6]: https://github.com/cyphar/filepath-securejoin/compare/v0.3.5...v0.3.6 [0.3.5]: https://github.com/cyphar/filepath-securejoin/compare/v0.3.4...v0.3.5 [0.3.4]: https://github.com/cyphar/filepath-securejoin/compare/v0.3.3...v0.3.4 diff --git a/vendor/github.com/cyphar/filepath-securejoin/VERSION b/vendor/github.com/cyphar/filepath-securejoin/VERSION index 449d7e73..267577d4 100644 --- a/vendor/github.com/cyphar/filepath-securejoin/VERSION +++ b/vendor/github.com/cyphar/filepath-securejoin/VERSION @@ -1 +1 @@ -0.3.6 +0.4.1 diff --git a/vendor/github.com/cyphar/filepath-securejoin/join.go b/vendor/github.com/cyphar/filepath-securejoin/join.go index e0ee3f2b..e6634d47 100644 --- a/vendor/github.com/cyphar/filepath-securejoin/join.go +++ b/vendor/github.com/cyphar/filepath-securejoin/join.go @@ -1,5 +1,5 @@ // Copyright (C) 2014-2015 Docker Inc & Go Authors. All rights reserved. -// Copyright (C) 2017-2024 SUSE LLC. All rights reserved. +// Copyright (C) 2017-2025 SUSE LLC. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -24,6 +24,31 @@ func IsNotExist(err error) bool { return errors.Is(err, os.ErrNotExist) || errors.Is(err, syscall.ENOTDIR) || errors.Is(err, syscall.ENOENT) } +// errUnsafeRoot is returned if the user provides SecureJoinVFS with a path +// that contains ".." components. +var errUnsafeRoot = errors.New("root path provided to SecureJoin contains '..' components") + +// stripVolume just gets rid of the Windows volume included in a path. Based on +// some godbolt tests, the Go compiler is smart enough to make this a no-op on +// Linux. +func stripVolume(path string) string { + return path[len(filepath.VolumeName(path)):] +} + +// hasDotDot checks if the path contains ".." components in a platform-agnostic +// way. +func hasDotDot(path string) bool { + // If we are on Windows, strip any volume letters. It turns out that + // C:..\foo may (or may not) be a valid pathname and we need to handle that + // leading "..". + path = stripVolume(path) + // Look for "/../" in the path, but we need to handle leading and trailing + // ".."s by adding separators. Doing this with filepath.Separator is ugly + // so just convert to Unix-style "/" first. + path = filepath.ToSlash(path) + return strings.Contains("/"+path+"/", "/../") +} + // SecureJoinVFS joins the two given path components (similar to [filepath.Join]) except // that the returned path is guaranteed to be scoped inside the provided root // path (when evaluated). Any symbolic links in the path are evaluated with the @@ -46,7 +71,22 @@ func IsNotExist(err error) bool { // provided via direct input or when evaluating symlinks. Therefore: // // "C:\Temp" + "D:\path\to\file.txt" results in "C:\Temp\path\to\file.txt" +// +// If the provided root is not [filepath.Clean] then an error will be returned, +// as such root paths are bordering on somewhat unsafe and using such paths is +// not best practice. We also strongly suggest that any root path is first +// fully resolved using [filepath.EvalSymlinks] or otherwise constructed to +// avoid containing symlink components. Of course, the root also *must not* be +// attacker-controlled. func SecureJoinVFS(root, unsafePath string, vfs VFS) (string, error) { + // The root path must not contain ".." components, otherwise when we join + // the subpath we will end up with a weird path. We could work around this + // in other ways but users shouldn't be giving us non-lexical root paths in + // the first place. + if hasDotDot(root) { + return "", errUnsafeRoot + } + // Use the os.* VFS implementation if none was specified. if vfs == nil { vfs = osVFS{} @@ -59,9 +99,10 @@ func SecureJoinVFS(root, unsafePath string, vfs VFS) (string, error) { linksWalked int ) for remainingPath != "" { - if v := filepath.VolumeName(remainingPath); v != "" { - remainingPath = remainingPath[len(v):] - } + // On Windows, if we managed to end up at a path referencing a volume, + // drop the volume to make sure we don't end up with broken paths or + // escaping the root volume. + remainingPath = stripVolume(remainingPath) // Get the next path component. var part string diff --git a/vendor/github.com/cyphar/filepath-securejoin/mkdir_linux.go b/vendor/github.com/cyphar/filepath-securejoin/mkdir_linux.go index 5e559bb7..a17ae3b0 100644 --- a/vendor/github.com/cyphar/filepath-securejoin/mkdir_linux.go +++ b/vendor/github.com/cyphar/filepath-securejoin/mkdir_linux.go @@ -21,6 +21,33 @@ var ( errPossibleAttack = errors.New("possible attack detected") ) +// modePermExt is like os.ModePerm except that it also includes the set[ug]id +// and sticky bits. +const modePermExt = os.ModePerm | os.ModeSetuid | os.ModeSetgid | os.ModeSticky + +//nolint:cyclop // this function needs to handle a lot of cases +func toUnixMode(mode os.FileMode) (uint32, error) { + sysMode := uint32(mode.Perm()) + if mode&os.ModeSetuid != 0 { + sysMode |= unix.S_ISUID + } + if mode&os.ModeSetgid != 0 { + sysMode |= unix.S_ISGID + } + if mode&os.ModeSticky != 0 { + sysMode |= unix.S_ISVTX + } + // We don't allow file type bits. + if mode&os.ModeType != 0 { + return 0, fmt.Errorf("%w %+.3o (%s): type bits not permitted", errInvalidMode, mode, mode) + } + // We don't allow other unknown modes. + if mode&^modePermExt != 0 || sysMode&unix.S_IFMT != 0 { + return 0, fmt.Errorf("%w %+.3o (%s): unknown mode bits", errInvalidMode, mode, mode) + } + return sysMode, nil +} + // MkdirAllHandle is equivalent to [MkdirAll], except that it is safer to use // in two respects: // @@ -39,17 +66,17 @@ var ( // a brand new lookup of unsafePath (such as with [SecureJoin] or openat2) after // doing [MkdirAll]. If you intend to open the directory after creating it, you // should use MkdirAllHandle. -func MkdirAllHandle(root *os.File, unsafePath string, mode int) (_ *os.File, Err error) { - // Make sure there are no os.FileMode bits set. - if mode&^0o7777 != 0 { - return nil, fmt.Errorf("%w for mkdir 0o%.3o", errInvalidMode, mode) +func MkdirAllHandle(root *os.File, unsafePath string, mode os.FileMode) (_ *os.File, Err error) { + unixMode, err := toUnixMode(mode) + if err != nil { + return nil, err } // On Linux, mkdirat(2) (and os.Mkdir) silently ignore the suid and sgid // bits. We could also silently ignore them but since we have very few // users it seems more prudent to return an error so users notice that // these bits will not be set. - if mode&^0o1777 != 0 { - return nil, fmt.Errorf("%w for mkdir 0o%.3o: suid and sgid are ignored by mkdir", errInvalidMode, mode) + if unixMode&^0o1777 != 0 { + return nil, fmt.Errorf("%w for mkdir %+.3o: suid and sgid are ignored by mkdir", errInvalidMode, mode) } // Try to open as much of the path as possible. @@ -104,9 +131,6 @@ func MkdirAllHandle(root *os.File, unsafePath string, mode int) (_ *os.File, Err return nil, fmt.Errorf("%w: yet-to-be-created path %q contains '..' components", unix.ENOENT, remainingPath) } - // Make sure the mode doesn't have any type bits. - mode &^= unix.S_IFMT - // Create the remaining components. for _, part := range remainingParts { switch part { @@ -123,7 +147,7 @@ func MkdirAllHandle(root *os.File, unsafePath string, mode int) (_ *os.File, Err // directory at the same time as us. In that case, just continue on as // if we created it (if the created inode is not a directory, the // following open call will fail). - if err := unix.Mkdirat(int(currentDir.Fd()), part, uint32(mode)); err != nil && !errors.Is(err, unix.EEXIST) { + if err := unix.Mkdirat(int(currentDir.Fd()), part, unixMode); err != nil && !errors.Is(err, unix.EEXIST) { err = &os.PathError{Op: "mkdirat", Path: currentDir.Name() + "/" + part, Err: err} // Make the error a bit nicer if the directory is dead. if deadErr := isDeadInode(currentDir); deadErr != nil { @@ -196,10 +220,7 @@ func MkdirAllHandle(root *os.File, unsafePath string, mode int) (_ *os.File, Err // If you plan to open the directory after you have created it or want to use // an open directory handle as the root, you should use [MkdirAllHandle] instead. // This function is a wrapper around [MkdirAllHandle]. -// -// NOTE: The mode argument must be set the unix mode bits (unix.S_I...), not -// the Go generic mode bits ([os.FileMode]...). -func MkdirAll(root, unsafePath string, mode int) error { +func MkdirAll(root, unsafePath string, mode os.FileMode) error { rootDir, err := os.OpenFile(root, unix.O_PATH|unix.O_DIRECTORY|unix.O_CLOEXEC, 0) if err != nil { return err diff --git a/vendor/github.com/docker/cli/cli-plugins/hooks/printer.go b/vendor/github.com/docker/cli/cli-plugins/hooks/printer.go index bedc87f9..f6d4b28e 100644 --- a/vendor/github.com/docker/cli/cli-plugins/hooks/printer.go +++ b/vendor/github.com/docker/cli/cli-plugins/hooks/printer.go @@ -11,8 +11,8 @@ func PrintNextSteps(out io.Writer, messages []string) { if len(messages) == 0 { return } - fmt.Fprintln(out, aec.Bold.Apply("\nWhat's next:")) + _, _ = fmt.Fprintln(out, aec.Bold.Apply("\nWhat's next:")) for _, n := range messages { - _, _ = fmt.Fprintf(out, " %s\n", n) + _, _ = fmt.Fprintln(out, " ", n) } } diff --git a/vendor/github.com/docker/cli/cli-plugins/manager/cobra.go b/vendor/github.com/docker/cli/cli-plugins/manager/cobra.go index feff8a8f..4bfa06fa 100644 --- a/vendor/github.com/docker/cli/cli-plugins/manager/cobra.go +++ b/vendor/github.com/docker/cli/cli-plugins/manager/cobra.go @@ -52,7 +52,6 @@ func AddPluginCommandStubs(dockerCli command.Cli, rootCmd *cobra.Command) (err e return } for _, p := range plugins { - p := p vendor := p.Vendor if vendor == "" { vendor = "unknown" @@ -82,7 +81,7 @@ func AddPluginCommandStubs(dockerCli command.Cli, rootCmd *cobra.Command) (err e cmd.HelpFunc()(rootCmd, args) return nil } - return fmt.Errorf("docker: '%s' is not a docker command.\nSee 'docker --help'", cmd.Name()) + return fmt.Errorf("docker: unknown command: docker %s\n\nRun 'docker --help' for more information", cmd.Name()) }, ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { // Delegate completion to plugin diff --git a/vendor/github.com/docker/cli/cli-plugins/manager/manager.go b/vendor/github.com/docker/cli/cli-plugins/manager/manager.go index 223f3ae0..9f795bc4 100644 --- a/vendor/github.com/docker/cli/cli-plugins/manager/manager.go +++ b/vendor/github.com/docker/cli/cli-plugins/manager/manager.go @@ -32,7 +32,7 @@ const ( // errPluginNotFound is the error returned when a plugin could not be found. type errPluginNotFound string -func (e errPluginNotFound) NotFound() {} +func (errPluginNotFound) NotFound() {} func (e errPluginNotFound) Error() string { return "Error: No such CLI plugin: " + string(e) diff --git a/vendor/github.com/docker/cli/cli/cobra.go b/vendor/github.com/docker/cli/cli/cobra.go index f6a69ae0..aa7dbef4 100644 --- a/vendor/github.com/docker/cli/cli/cobra.go +++ b/vendor/github.com/docker/cli/cli/cobra.go @@ -92,12 +92,8 @@ func FlagErrorFunc(cmd *cobra.Command, err error) error { return nil } - usage := "" - if cmd.HasSubCommands() { - usage = "\n\n" + cmd.UsageString() - } return StatusError{ - Status: fmt.Sprintf("%s\nSee '%s --help'.%s", err, cmd.CommandPath(), usage), + Status: fmt.Sprintf("%s\n\nUsage: %s\n\nRun '%s --help' for more information", err, cmd.UseLine(), cmd.CommandPath()), StatusCode: 125, } } @@ -341,8 +337,10 @@ func operationSubCommands(cmd *cobra.Command) []*cobra.Command { return cmds } +const defaultTermWidth = 80 + func wrappedFlagUsages(cmd *cobra.Command) string { - width := 80 + width := defaultTermWidth if ws, err := term.GetWinsize(0); err == nil { width = int(ws.Width) } @@ -522,4 +520,4 @@ Run '{{.CommandPath}} COMMAND --help' for more information on a command. ` const helpTemplate = ` -{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}` +{{- if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}` diff --git a/vendor/github.com/docker/cli/cli/command/cli.go b/vendor/github.com/docker/cli/cli/command/cli.go index da0802d5..227720fa 100644 --- a/vendor/github.com/docker/cli/cli/command/cli.go +++ b/vendor/github.com/docker/cli/cli/command/cli.go @@ -97,7 +97,7 @@ type DockerCli struct { } // DefaultVersion returns api.defaultVersion. -func (cli *DockerCli) DefaultVersion() string { +func (*DockerCli) DefaultVersion() string { return api.DefaultVersion } @@ -114,7 +114,7 @@ func (cli *DockerCli) CurrentVersion() string { // Client returns the APIClient func (cli *DockerCli) Client() client.APIClient { if err := cli.initialize(); err != nil { - _, _ = fmt.Fprintf(cli.Err(), "Failed to initialize: %s\n", err) + _, _ = fmt.Fprintln(cli.Err(), "Failed to initialize:", err) os.Exit(1) } return cli.client @@ -231,7 +231,7 @@ func (cli *DockerCli) HooksEnabled() bool { } // ManifestStore returns a store for local manifests -func (cli *DockerCli) ManifestStore() manifeststore.Store { +func (*DockerCli) ManifestStore() manifeststore.Store { // TODO: support override default location from config file return manifeststore.NewStore(filepath.Join(config.Dir(), "manifests")) } @@ -272,7 +272,7 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...CLIOption) debug.Enable() } if opts.Context != "" && len(opts.Hosts) > 0 { - return errors.New("conflicting options: either specify --host or --context, not both") + return errors.New("conflicting options: cannot specify both --host and --context") } cli.options = opts @@ -299,7 +299,7 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...CLIOption) // NewAPIClientFromFlags creates a new APIClient from command line flags func NewAPIClientFromFlags(opts *cliflags.ClientOptions, configFile *configfile.ConfigFile) (client.APIClient, error) { if opts.Context != "" && len(opts.Hosts) > 0 { - return nil, errors.New("conflicting options: either specify --host or --context, not both") + return nil, errors.New("conflicting options: cannot specify both --host and --context") } storeConfig := DefaultContextStoreConfig() @@ -475,7 +475,7 @@ func (cli *DockerCli) DockerEndpoint() docker.Endpoint { if err := cli.initialize(); err != nil { // Note that we're not terminating here, as this function may be used // in cases where we're able to continue. - _, _ = fmt.Fprintf(cli.Err(), "%v\n", cli.initErr) + _, _ = fmt.Fprintln(cli.Err(), cli.initErr) } return cli.dockerEndpoint } diff --git a/vendor/github.com/docker/cli/cli/command/cli_options.go b/vendor/github.com/docker/cli/cli/command/cli_options.go index 84b121f3..ef133d6a 100644 --- a/vendor/github.com/docker/cli/cli/command/cli_options.go +++ b/vendor/github.com/docker/cli/cli/command/cli_options.go @@ -177,7 +177,10 @@ func withCustomHeadersFromEnv() client.Opt { csvReader := csv.NewReader(strings.NewReader(value)) fields, err := csvReader.Read() if err != nil { - return errdefs.InvalidParameter(errors.Errorf("failed to parse custom headers from %s environment variable: value must be formatted as comma-separated key=value pairs", envOverrideHTTPHeaders)) + return errdefs.InvalidParameter(errors.Errorf( + "failed to parse custom headers from %s environment variable: value must be formatted as comma-separated key=value pairs", + envOverrideHTTPHeaders, + )) } if len(fields) == 0 { return nil @@ -191,7 +194,10 @@ func withCustomHeadersFromEnv() client.Opt { k = strings.TrimSpace(k) if k == "" { - return errdefs.InvalidParameter(errors.Errorf(`failed to set custom headers from %s environment variable: value contains a key=value pair with an empty key: '%s'`, envOverrideHTTPHeaders, kv)) + return errdefs.InvalidParameter(errors.Errorf( + `failed to set custom headers from %s environment variable: value contains a key=value pair with an empty key: '%s'`, + envOverrideHTTPHeaders, kv, + )) } // We don't currently allow empty key=value pairs, and produce an error. @@ -199,7 +205,10 @@ func withCustomHeadersFromEnv() client.Opt { // from an environment variable with the same name). In the meantime, // produce an error to prevent users from depending on this. if !hasValue { - return errdefs.InvalidParameter(errors.Errorf(`failed to set custom headers from %s environment variable: missing "=" in key=value pair: '%s'`, envOverrideHTTPHeaders, kv)) + return errdefs.InvalidParameter(errors.Errorf( + `failed to set custom headers from %s environment variable: missing "=" in key=value pair: '%s'`, + envOverrideHTTPHeaders, kv, + )) } env[http.CanonicalHeaderKey(k)] = v diff --git a/vendor/github.com/docker/cli/cli/command/formatter/container.go b/vendor/github.com/docker/cli/cli/command/formatter/container.go index 10d4e4b4..ba62efb2 100644 --- a/vendor/github.com/docker/cli/cli/command/formatter/container.go +++ b/vendor/github.com/docker/cli/cli/command/formatter/container.go @@ -12,7 +12,7 @@ import ( "time" "github.com/distribution/reference" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/pkg/stringid" "github.com/docker/go-units" ) @@ -67,10 +67,10 @@ ports: {{- pad .Ports 1 0}} } // ContainerWrite renders the context for a list of containers -func ContainerWrite(ctx Context, containers []types.Container) error { +func ContainerWrite(ctx Context, containers []container.Summary) error { render := func(format func(subContext SubContext) error) error { - for _, container := range containers { - err := format(&ContainerContext{trunc: ctx.Trunc, c: container}) + for _, ctr := range containers { + err := format(&ContainerContext{trunc: ctx.Trunc, c: ctr}) if err != nil { return err } @@ -84,7 +84,7 @@ func ContainerWrite(ctx Context, containers []types.Container) error { type ContainerContext struct { HeaderContext trunc bool - c types.Container + c container.Summary // FieldsUsed is used in the pre-processing step to detect which fields are // used in the template. It's currently only used to detect use of the .Size @@ -193,7 +193,9 @@ func (c *ContainerContext) Command() string { return strconv.Quote(command) } -// CreatedAt returns the "Created" date/time of the container as a unix timestamp. +// CreatedAt returns the formatted string representing the container's creation date/time. +// The format may include nanoseconds if present. +// e.g. "2006-01-02 15:04:05.999999999 -0700 MST" or "2006-01-02 15:04:05 -0700 MST" func (c *ContainerContext) CreatedAt() string { return time.Unix(c.c.Created, 0).String() } @@ -314,7 +316,7 @@ func (c *ContainerContext) Networks() string { // DisplayablePorts returns formatted string representing open ports of container // e.g. "0.0.0.0:80->9090/tcp, 9988/tcp" // it's used by command 'docker ps' -func DisplayablePorts(ports []types.Port) string { +func DisplayablePorts(ports []container.Port) string { type portGroup struct { first uint16 last uint16 @@ -375,12 +377,12 @@ func formGroup(key string, start, last uint16) string { group = fmt.Sprintf("%s-%d", group, last) } if ip != "" { - group = fmt.Sprintf("%s:%s->%s", ip, group, group) + group = fmt.Sprintf("%s->%s", net.JoinHostPort(ip, group), group) } return group + "/" + groupType } -func comparePorts(i, j types.Port) bool { +func comparePorts(i, j container.Port) bool { if i.PrivatePort != j.PrivatePort { return i.PrivatePort < j.PrivatePort } diff --git a/vendor/github.com/docker/cli/cli/command/formatter/custom.go b/vendor/github.com/docker/cli/cli/command/formatter/custom.go index 043e268d..6910a261 100644 --- a/vendor/github.com/docker/cli/cli/command/formatter/custom.go +++ b/vendor/github.com/docker/cli/cli/command/formatter/custom.go @@ -32,7 +32,7 @@ type SubContext interface { type SubHeaderContext map[string]string // Label returns the header label for the specified string -func (c SubHeaderContext) Label(name string) string { +func (SubHeaderContext) Label(name string) string { n := strings.Split(name, ".") r := strings.NewReplacer("-", " ", "_", " ") h := r.Replace(n[len(n)-1]) diff --git a/vendor/github.com/docker/cli/cli/command/formatter/disk_usage.go b/vendor/github.com/docker/cli/cli/command/formatter/disk_usage.go index d91df2fc..1199d571 100644 --- a/vendor/github.com/docker/cli/cli/command/formatter/disk_usage.go +++ b/vendor/github.com/docker/cli/cli/command/formatter/disk_usage.go @@ -9,6 +9,7 @@ import ( "github.com/distribution/reference" "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/image" "github.com/docker/docker/api/types/volume" units "github.com/docker/go-units" @@ -36,7 +37,7 @@ type DiskUsageContext struct { Verbose bool LayersSize int64 Images []*image.Summary - Containers []*types.Container + Containers []*container.Summary Volumes []*volume.Volume BuildCache []*types.BuildCache BuilderSize int64 @@ -124,7 +125,7 @@ func (ctx *DiskUsageContext) Write() (err error) { return err } - diskUsageContainersCtx := diskUsageContainersContext{containers: []*types.Container{}} + diskUsageContainersCtx := diskUsageContainersContext{containers: []*container.Summary{}} diskUsageContainersCtx.Header = SubHeaderContext{ "Type": typeHeader, "TotalCount": totalHeader, @@ -236,7 +237,7 @@ func (ctx *DiskUsageContext) verboseWriteTable(duc *diskUsageContext) error { if err != nil { return err } - ctx.Output.Write([]byte("\nLocal Volumes space usage:\n\n")) + _, _ = ctx.Output.Write([]byte("\nLocal Volumes space usage:\n\n")) for _, v := range duc.Volumes { if err := ctx.contextFormat(tmpl, v); err != nil { return err @@ -248,7 +249,7 @@ func (ctx *DiskUsageContext) verboseWriteTable(duc *diskUsageContext) error { if err != nil { return err } - fmt.Fprintf(ctx.Output, "\nBuild cache usage: %s\n\n", units.HumanSize(float64(ctx.BuilderSize))) + _, _ = fmt.Fprintf(ctx.Output, "\nBuild cache usage: %s\n\n", units.HumanSize(float64(ctx.BuilderSize))) for _, v := range duc.BuildCache { if err := ctx.contextFormat(tmpl, v); err != nil { return err @@ -269,7 +270,7 @@ func (c *diskUsageImagesContext) MarshalJSON() ([]byte, error) { return MarshalJSON(c) } -func (c *diskUsageImagesContext) Type() string { +func (*diskUsageImagesContext) Type() string { return "Images" } @@ -313,14 +314,14 @@ func (c *diskUsageImagesContext) Reclaimable() string { type diskUsageContainersContext struct { HeaderContext - containers []*types.Container + containers []*container.Summary } func (c *diskUsageContainersContext) MarshalJSON() ([]byte, error) { return MarshalJSON(c) } -func (c *diskUsageContainersContext) Type() string { +func (*diskUsageContainersContext) Type() string { return "Containers" } @@ -328,16 +329,16 @@ func (c *diskUsageContainersContext) TotalCount() string { return strconv.Itoa(len(c.containers)) } -func (c *diskUsageContainersContext) isActive(container types.Container) bool { - return strings.Contains(container.State, "running") || - strings.Contains(container.State, "paused") || - strings.Contains(container.State, "restarting") +func (*diskUsageContainersContext) isActive(ctr container.Summary) bool { + return strings.Contains(ctr.State, "running") || + strings.Contains(ctr.State, "paused") || + strings.Contains(ctr.State, "restarting") } func (c *diskUsageContainersContext) Active() string { used := 0 - for _, container := range c.containers { - if c.isActive(*container) { + for _, ctr := range c.containers { + if c.isActive(*ctr) { used++ } } @@ -348,22 +349,21 @@ func (c *diskUsageContainersContext) Active() string { func (c *diskUsageContainersContext) Size() string { var size int64 - for _, container := range c.containers { - size += container.SizeRw + for _, ctr := range c.containers { + size += ctr.SizeRw } return units.HumanSize(float64(size)) } func (c *diskUsageContainersContext) Reclaimable() string { - var reclaimable int64 - var totalSize int64 + var reclaimable, totalSize int64 - for _, container := range c.containers { - if !c.isActive(*container) { - reclaimable += container.SizeRw + for _, ctr := range c.containers { + if !c.isActive(*ctr) { + reclaimable += ctr.SizeRw } - totalSize += container.SizeRw + totalSize += ctr.SizeRw } if totalSize > 0 { @@ -382,7 +382,7 @@ func (c *diskUsageVolumesContext) MarshalJSON() ([]byte, error) { return MarshalJSON(c) } -func (c *diskUsageVolumesContext) Type() string { +func (*diskUsageVolumesContext) Type() string { return "Local Volumes" } @@ -443,7 +443,7 @@ func (c *diskUsageBuilderContext) MarshalJSON() ([]byte, error) { return MarshalJSON(c) } -func (c *diskUsageBuilderContext) Type() string { +func (*diskUsageBuilderContext) Type() string { return "Build Cache" } diff --git a/vendor/github.com/docker/cli/cli/command/registry.go b/vendor/github.com/docker/cli/cli/command/registry.go index cb966be1..e2581d57 100644 --- a/vendor/github.com/docker/cli/cli/command/registry.go +++ b/vendor/github.com/docker/cli/cli/command/registry.go @@ -13,9 +13,10 @@ import ( configtypes "github.com/docker/cli/cli/config/types" "github.com/docker/cli/cli/hints" "github.com/docker/cli/cli/streams" - "github.com/docker/docker/api/types" + "github.com/docker/cli/internal/tui" registrytypes "github.com/docker/docker/api/types/registry" "github.com/docker/docker/registry" + "github.com/morikuni/aec" "github.com/pkg/errors" ) @@ -29,7 +30,7 @@ const ( // RegistryAuthenticationPrivilegedFunc returns a RequestPrivilegeFunc from the specified registry index info // for the given command. -func RegistryAuthenticationPrivilegedFunc(cli Cli, index *registrytypes.IndexInfo, cmdName string) types.RequestPrivilegeFunc { +func RegistryAuthenticationPrivilegedFunc(cli Cli, index *registrytypes.IndexInfo, cmdName string) registrytypes.RequestAuthConfig { return func(ctx context.Context) (string, error) { _, _ = fmt.Fprintf(cli.Out(), "\nLogin prior to %s:\n", cmdName) indexServer := registry.GetAuthConfigKey(index) @@ -179,6 +180,9 @@ func PromptUserForCredentials(ctx context.Context, cli Cli, argUser, argPassword } }() + out := tui.NewOutput(cli.Err()) + out.PrintNote("A Personal Access Token (PAT) can be used instead.\n" + + "To create a PAT, visit " + aec.Underline.Apply("https://app.docker.com/settings") + "\n\n") argPassword, err = PromptForInput(ctx, cli.In(), cli.Out(), "Password: ") if err != nil { return registrytypes.AuthConfig{}, err diff --git a/vendor/github.com/docker/cli/cli/command/service/progress/progress.go b/vendor/github.com/docker/cli/cli/command/service/progress/progress.go index 6fa73d93..09da1877 100644 --- a/vendor/github.com/docker/cli/cli/command/service/progress/progress.go +++ b/vendor/github.com/docker/cli/cli/command/service/progress/progress.go @@ -79,14 +79,6 @@ func ServiceProgress(ctx context.Context, apiClient client.APIClient, serviceID signal.Notify(sigint, os.Interrupt) defer signal.Stop(sigint) - taskFilter := filters.NewArgs() - taskFilter.Add("service", serviceID) - taskFilter.Add("_up-to-date", "true") - - getUpToDateTasks := func() ([]swarm.Task, error) { - return apiClient.TaskList(ctx, types.TaskListOptions{Filters: taskFilter}) - } - var ( updater progressUpdater converged bool @@ -151,7 +143,10 @@ func ServiceProgress(ctx context.Context, apiClient client.APIClient, serviceID return nil } - tasks, err := getUpToDateTasks() + tasks, err := apiClient.TaskList(ctx, types.TaskListOptions{Filters: filters.NewArgs( + filters.KeyValuePair{Key: "service", Value: service.ID}, + filters.KeyValuePair{Key: "_up-to-date", Value: "true"}, + )}) if err != nil { return err } @@ -218,7 +213,10 @@ func ServiceProgress(ctx context.Context, apiClient client.APIClient, serviceID } } -func getActiveNodes(ctx context.Context, apiClient client.APIClient) (map[string]struct{}, error) { +// getActiveNodes returns all nodes that are currently not in status [swarm.NodeStateDown]. +// +// TODO(thaJeztah): this should really be a filter on [apiClient.NodeList] instead of being filtered on the client side. +func getActiveNodes(ctx context.Context, apiClient client.NodeAPIClient) (map[string]struct{}, error) { nodes, err := apiClient.NodeList(ctx, types.NodeListOptions{}) if err != nil { return nil, err @@ -275,8 +273,9 @@ func truncError(errMsg string) string { // Limit the length to 75 characters, so that even on narrow terminals // this will not overflow to the next line. - if len(errMsg) > 75 { - errMsg = errMsg[:74] + "…" + const maxWidth = 75 + if len(errMsg) > maxWidth { + errMsg = errMsg[:maxWidth-1] + "…" } return errMsg } @@ -351,7 +350,7 @@ func (u *replicatedProgressUpdater) update(service swarm.Service, tasks []swarm. return running == replicas, nil } -func (u *replicatedProgressUpdater) tasksBySlot(tasks []swarm.Task, activeNodes map[string]struct{}) map[int]swarm.Task { +func (*replicatedProgressUpdater) tasksBySlot(tasks []swarm.Task, activeNodes map[string]struct{}) map[int]swarm.Task { // If there are multiple tasks with the same slot number, favor the one // with the *lowest* desired state. This can happen in restart // scenarios. @@ -472,7 +471,7 @@ func (u *globalProgressUpdater) update(_ swarm.Service, tasks []swarm.Task, acti return running == nodeCount, nil } -func (u *globalProgressUpdater) tasksByNode(tasks []swarm.Task) map[string]swarm.Task { +func (*globalProgressUpdater) tasksByNode(tasks []swarm.Task) map[string]swarm.Task { // If there are multiple tasks with the same node ID, favor the one // with the *lowest* desired state. This can happen in restart // scenarios. @@ -573,16 +572,17 @@ type replicatedJobProgressUpdater struct { } func newReplicatedJobProgressUpdater(service swarm.Service, progressOut progress.Output) *replicatedJobProgressUpdater { - u := &replicatedJobProgressUpdater{ - progressOut: progressOut, - concurrent: int(*service.Spec.Mode.ReplicatedJob.MaxConcurrent), - total: int(*service.Spec.Mode.ReplicatedJob.TotalCompletions), - jobIteration: service.JobStatus.JobIteration.Index, - } - u.progressDigits = len(strconv.Itoa(u.total)) - u.activeDigits = len(strconv.Itoa(u.concurrent)) + concurrent := int(*service.Spec.Mode.ReplicatedJob.MaxConcurrent) + total := int(*service.Spec.Mode.ReplicatedJob.TotalCompletions) - return u + return &replicatedJobProgressUpdater{ + progressOut: progressOut, + concurrent: concurrent, + total: total, + jobIteration: service.JobStatus.JobIteration.Index, + progressDigits: len(strconv.Itoa(total)), + activeDigits: len(strconv.Itoa(concurrent)), + } } // update writes out the progress of the replicated job. diff --git a/vendor/github.com/docker/cli/cli/command/telemetry.go b/vendor/github.com/docker/cli/cli/command/telemetry.go index d18d94d4..2ee8adfb 100644 --- a/vendor/github.com/docker/cli/cli/command/telemetry.go +++ b/vendor/github.com/docker/cli/cli/command/telemetry.go @@ -14,7 +14,7 @@ import ( "go.opentelemetry.io/otel/sdk/metric/metricdata" "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.21.0" + semconv "go.opentelemetry.io/otel/semconv/v1.26.0" "go.opentelemetry.io/otel/trace" ) @@ -54,11 +54,11 @@ func (cli *DockerCli) Resource() *resource.Resource { return cli.res.Get() } -func (cli *DockerCli) TracerProvider() trace.TracerProvider { +func (*DockerCli) TracerProvider() trace.TracerProvider { return otel.GetTracerProvider() } -func (cli *DockerCli) MeterProvider() metric.MeterProvider { +func (*DockerCli) MeterProvider() metric.MeterProvider { return otel.GetMeterProvider() } diff --git a/vendor/github.com/docker/cli/cli/command/utils.go b/vendor/github.com/docker/cli/cli/command/utils.go index 2b4a885e..8a8368fb 100644 --- a/vendor/github.com/docker/cli/cli/command/utils.go +++ b/vendor/github.com/docker/cli/cli/command/utils.go @@ -199,7 +199,7 @@ func PruneFilters(dockerCli Cli, pruneFilters filters.Args) filters.Args { // AddPlatformFlag adds `platform` to a set of flags for API version 1.32 and later. func AddPlatformFlag(flags *pflag.FlagSet, target *string) { flags.StringVar(target, "platform", os.Getenv("DOCKER_DEFAULT_PLATFORM"), "Set platform if server is multi-platform capable") - flags.SetAnnotation("platform", "version", []string{"1.32"}) + _ = flags.SetAnnotation("platform", "version", []string{"1.32"}) } // ValidateOutputPath validates the output paths of the `export` and `save` commands. diff --git a/vendor/github.com/docker/cli/cli/compose/loader/loader.go b/vendor/github.com/docker/cli/cli/compose/loader/loader.go index 7bc420b2..6cd2d203 100644 --- a/vendor/github.com/docker/cli/cli/compose/loader/loader.go +++ b/vendor/github.com/docker/cli/cli/compose/loader/loader.go @@ -25,7 +25,7 @@ import ( "github.com/google/shlex" "github.com/pkg/errors" "github.com/sirupsen/logrus" - yaml "gopkg.in/yaml.v2" + "gopkg.in/yaml.v3" ) // Options supported by Load @@ -53,11 +53,11 @@ func ParseYAML(source []byte) (map[string]any, error) { if err := yaml.Unmarshal(source, &cfg); err != nil { return nil, err } - cfgMap, ok := cfg.(map[any]any) + _, ok := cfg.(map[string]any) if !ok { return nil, errors.Errorf("top-level object must be a mapping") } - converted, err := convertToStringKeysRecursive(cfgMap, "") + converted, err := convertToStringKeysRecursive(cfg, "") if err != nil { return nil, err } @@ -269,7 +269,7 @@ type ForbiddenPropertiesError struct { Properties map[string]string } -func (e *ForbiddenPropertiesError) Error() string { +func (*ForbiddenPropertiesError) Error() string { return "Configuration contains forbidden properties" } @@ -349,24 +349,20 @@ func createTransformHook(additionalTransformers ...Transformer) mapstructure.Dec // keys needs to be converted to strings for jsonschema func convertToStringKeysRecursive(value any, keyPrefix string) (any, error) { - if mapping, ok := value.(map[any]any); ok { + if mapping, ok := value.(map[string]any); ok { dict := make(map[string]any) for key, entry := range mapping { - str, ok := key.(string) - if !ok { - return nil, formatInvalidKeyError(keyPrefix, key) - } var newKeyPrefix string if keyPrefix == "" { - newKeyPrefix = str + newKeyPrefix = key } else { - newKeyPrefix = fmt.Sprintf("%s.%s", keyPrefix, str) + newKeyPrefix = fmt.Sprintf("%s.%s", keyPrefix, key) } convertedEntry, err := convertToStringKeysRecursive(entry, newKeyPrefix) if err != nil { return nil, err } - dict[str] = convertedEntry + dict[key] = convertedEntry } return dict, nil } @@ -385,16 +381,6 @@ func convertToStringKeysRecursive(value any, keyPrefix string) (any, error) { return value, nil } -func formatInvalidKeyError(keyPrefix string, key any) error { - var location string - if keyPrefix == "" { - location = "at top level" - } else { - location = "in " + keyPrefix - } - return errors.Errorf("non-string key %s: %#v", location, key) -} - // LoadServices produces a ServiceConfig map from a compose file Dict // the servicesDict is not validated if directly used. Use Load() to enable validation func LoadServices(servicesDict map[string]any, workingDir string, lookupEnv template.Mapping) ([]types.ServiceConfig, error) { diff --git a/vendor/github.com/docker/cli/cli/compose/loader/merge.go b/vendor/github.com/docker/cli/cli/compose/loader/merge.go index 34455d59..ee0a39f9 100644 --- a/vendor/github.com/docker/cli/cli/compose/loader/merge.go +++ b/vendor/github.com/docker/cli/cli/compose/loader/merge.go @@ -68,7 +68,6 @@ func mergeServices(base, override []types.ServiceConfig) ([]types.ServiceConfig, }, } for name, overrideService := range overrideServices { - overrideService := overrideService if baseService, ok := baseServices[name]; ok { if err := mergo.Merge(&baseService, &overrideService, mergo.WithAppendSlice, mergo.WithOverride, mergo.WithTransformers(specials)); err != nil { return base, errors.Wrapf(err, "cannot merge service %s", name) diff --git a/vendor/github.com/docker/cli/cli/compose/schema/schema.go b/vendor/github.com/docker/cli/cli/compose/schema/schema.go index 2ef1245b..b636ea5b 100644 --- a/vendor/github.com/docker/cli/cli/compose/schema/schema.go +++ b/vendor/github.com/docker/cli/cli/compose/schema/schema.go @@ -6,9 +6,11 @@ package schema import ( "embed" "fmt" + "math/big" "strings" "time" + "github.com/docker/go-connections/nat" "github.com/pkg/errors" "github.com/xeipuuv/gojsonschema" ) @@ -20,14 +22,23 @@ const ( type portsFormatChecker struct{} -func (checker portsFormatChecker) IsFormat(_ any) bool { - // TODO: implement this - return true +func (portsFormatChecker) IsFormat(input any) bool { + var portSpec string + + switch p := input.(type) { + case string: + portSpec = p + case *big.Rat: + portSpec = strings.Split(p.String(), "/")[0] + } + + _, err := nat.ParsePortSpec(portSpec) + return err == nil } type durationFormatChecker struct{} -func (checker durationFormatChecker) IsFormat(input any) bool { +func (durationFormatChecker) IsFormat(input any) bool { value, ok := input.(string) if !ok { return false @@ -37,7 +48,6 @@ func (checker durationFormatChecker) IsFormat(input any) bool { } func init() { - gojsonschema.FormatCheckers.Add("expose", portsFormatChecker{}) gojsonschema.FormatCheckers.Add("ports", portsFormatChecker{}) gojsonschema.FormatCheckers.Add("duration", durationFormatChecker{}) } diff --git a/vendor/github.com/docker/cli/cli/compose/types/types.go b/vendor/github.com/docker/cli/cli/compose/types/types.go index 55b80365..1377a795 100644 --- a/vendor/github.com/docker/cli/cli/compose/types/types.go +++ b/vendor/github.com/docker/cli/cli/compose/types/types.go @@ -398,6 +398,7 @@ type ServiceVolumeConfig struct { Consistency string `yaml:",omitempty" json:"consistency,omitempty"` Bind *ServiceVolumeBind `yaml:",omitempty" json:"bind,omitempty"` Volume *ServiceVolumeVolume `yaml:",omitempty" json:"volume,omitempty"` + Image *ServiceVolumeImage `yaml:",omitempty" json:"image,omitempty"` Tmpfs *ServiceVolumeTmpfs `yaml:",omitempty" json:"tmpfs,omitempty"` Cluster *ServiceVolumeCluster `yaml:",omitempty" json:"cluster,omitempty"` } @@ -409,7 +410,13 @@ type ServiceVolumeBind struct { // ServiceVolumeVolume are options for a service volume of type volume type ServiceVolumeVolume struct { - NoCopy bool `mapstructure:"nocopy" yaml:"nocopy,omitempty" json:"nocopy,omitempty"` + NoCopy bool `mapstructure:"nocopy" yaml:"nocopy,omitempty" json:"nocopy,omitempty"` + Subpath string `mapstructure:"subpath" yaml:"subpath,omitempty" json:"subpath,omitempty"` +} + +// ServiceVolumeImage are options for a service volume of type image +type ServiceVolumeImage struct { + Subpath string `mapstructure:"subpath" yaml:"subpath,omitempty" json:"subpath,omitempty"` } // ServiceVolumeTmpfs are options for a service volume of type tmpfs diff --git a/vendor/github.com/docker/cli/cli/config/config.go b/vendor/github.com/docker/cli/cli/config/config.go index 5a518432..910b3c00 100644 --- a/vendor/github.com/docker/cli/cli/config/config.go +++ b/vendor/github.com/docker/cli/cli/config/config.go @@ -143,7 +143,7 @@ func load(configDir string) (*configfile.ConfigFile, error) { defer file.Close() err = configFile.LoadFromReader(file) if err != nil { - err = errors.Wrapf(err, "loading config file: %s: ", filename) + err = errors.Wrapf(err, "parsing config file (%s)", filename) } return configFile, err } diff --git a/vendor/github.com/docker/cli/cli/config/credentials/file_store.go b/vendor/github.com/docker/cli/cli/config/credentials/file_store.go index 95406281..c69312b0 100644 --- a/vendor/github.com/docker/cli/cli/config/credentials/file_store.go +++ b/vendor/github.com/docker/cli/cli/config/credentials/file_store.go @@ -1,9 +1,12 @@ package credentials import ( + "fmt" "net" "net/url" + "os" "strings" + "sync/atomic" "github.com/docker/cli/cli/config/types" ) @@ -57,6 +60,21 @@ func (c *fileStore) GetAll() (map[string]types.AuthConfig, error) { return c.file.GetAuthConfigs(), nil } +// unencryptedWarning warns the user when using an insecure credential storage. +// After a deprecation period, user will get prompted if stdin and stderr are a terminal. +// Otherwise, we'll assume they want it (sadly), because people may have been scripting +// insecure logins and we don't want to break them. Maybe they'll see the warning in their +// logs and fix things. +const unencryptedWarning = ` +WARNING! Your credentials are stored unencrypted in '%s'. +Configure a credential helper to remove this warning. See +https://docs.docker.com/go/credential-store/ +` + +// alreadyPrinted ensures that we only print the unencryptedWarning once per +// CLI invocation (no need to warn the user multiple times per command). +var alreadyPrinted atomic.Bool + // Store saves the given credentials in the file store. This function is // idempotent and does not update the file if credentials did not change. func (c *fileStore) Store(authConfig types.AuthConfig) error { @@ -66,15 +84,19 @@ func (c *fileStore) Store(authConfig types.AuthConfig) error { return nil } authConfigs[authConfig.ServerAddress] = authConfig - return c.file.Save() -} + if err := c.file.Save(); err != nil { + return err + } -func (c *fileStore) GetFilename() string { - return c.file.GetFilename() -} + if !alreadyPrinted.Load() && authConfig.Password != "" { + // Display a warning if we're storing the users password (not a token). + // + // FIXME(thaJeztah): make output configurable instead of hardcoding to os.Stderr + _, _ = fmt.Fprintln(os.Stderr, fmt.Sprintf(unencryptedWarning, c.file.GetFilename())) + alreadyPrinted.Store(true) + } -func (c *fileStore) IsFileStore() bool { - return true + return nil } // ConvertToHostname converts a registry url which has http|https prepended diff --git a/vendor/github.com/docker/cli/cli/connhelper/commandconn/commandconn.go b/vendor/github.com/docker/cli/cli/connhelper/commandconn/commandconn.go index cfc2b86a..52888a91 100644 --- a/vendor/github.com/docker/cli/cli/connhelper/commandconn/commandconn.go +++ b/vendor/github.com/docker/cli/cli/connhelper/commandconn/commandconn.go @@ -33,18 +33,28 @@ import ( ) // New returns net.Conn -func New(_ context.Context, cmd string, args ...string) (net.Conn, error) { - var ( - c commandConn - err error - ) - c.cmd = exec.Command(cmd, args...) +func New(ctx context.Context, cmd string, args ...string) (net.Conn, error) { + // Don't kill the ssh process if the context is cancelled. Killing the + // ssh process causes an error when go's http.Client tries to reuse the + // net.Conn (commandConn). + // + // Not passing down the Context might seem counter-intuitive, but in this + // case, the lifetime of the process should be managed by the http.Client, + // not the caller's Context. + // + // Further details;; + // + // - https://github.com/docker/cli/pull/3900 + // - https://github.com/docker/compose/issues/9448#issuecomment-1264263721 + ctx = context.WithoutCancel(ctx) + c := commandConn{cmd: exec.CommandContext(ctx, cmd, args...)} // we assume that args never contains sensitive information logrus.Debugf("commandconn: starting %s with %v", cmd, args) c.cmd.Env = os.Environ() c.cmd.SysProcAttr = &syscall.SysProcAttr{} setPdeathsig(c.cmd) createSession(c.cmd) + var err error c.stdin, err = c.cmd.StdinPipe() if err != nil { return nil, err @@ -243,17 +253,17 @@ func (c *commandConn) RemoteAddr() net.Addr { return c.remoteAddr } -func (c *commandConn) SetDeadline(t time.Time) error { +func (*commandConn) SetDeadline(t time.Time) error { logrus.Debugf("unimplemented call: SetDeadline(%v)", t) return nil } -func (c *commandConn) SetReadDeadline(t time.Time) error { +func (*commandConn) SetReadDeadline(t time.Time) error { logrus.Debugf("unimplemented call: SetReadDeadline(%v)", t) return nil } -func (c *commandConn) SetWriteDeadline(t time.Time) error { +func (*commandConn) SetWriteDeadline(t time.Time) error { logrus.Debugf("unimplemented call: SetWriteDeadline(%v)", t) return nil } diff --git a/vendor/github.com/docker/cli/cli/context/store/metadatastore.go b/vendor/github.com/docker/cli/cli/context/store/metadatastore.go index 6b8975a4..e8b25675 100644 --- a/vendor/github.com/docker/cli/cli/context/store/metadatastore.go +++ b/vendor/github.com/docker/cli/cli/context/store/metadatastore.go @@ -12,7 +12,7 @@ import ( "sort" "github.com/docker/docker/errdefs" - "github.com/docker/docker/pkg/ioutils" + "github.com/docker/docker/pkg/atomicwriter" "github.com/fvbommel/sortorder" "github.com/pkg/errors" ) @@ -40,7 +40,7 @@ func (s *metadataStore) createOrUpdate(meta Metadata) error { if err != nil { return err } - return ioutils.AtomicWriteFile(filepath.Join(contextDir, metaFile), bytes, 0o644) + return atomicwriter.WriteFile(filepath.Join(contextDir, metaFile), bytes, 0o644) } func parseTypedOrMap(payload []byte, getter TypeGetter) (any, error) { diff --git a/vendor/github.com/docker/cli/cli/context/store/tlsstore.go b/vendor/github.com/docker/cli/cli/context/store/tlsstore.go index ffbbde7c..3cbfe627 100644 --- a/vendor/github.com/docker/cli/cli/context/store/tlsstore.go +++ b/vendor/github.com/docker/cli/cli/context/store/tlsstore.go @@ -5,7 +5,7 @@ import ( "path/filepath" "github.com/docker/docker/errdefs" - "github.com/docker/docker/pkg/ioutils" + "github.com/docker/docker/pkg/atomicwriter" "github.com/pkg/errors" ) @@ -32,7 +32,7 @@ func (s *tlsStore) createOrUpdate(name, endpointName, filename string, data []by if err := os.MkdirAll(endpointDir, 0o700); err != nil { return err } - return ioutils.AtomicWriteFile(filepath.Join(endpointDir, filename), data, 0o600) + return atomicwriter.WriteFile(filepath.Join(endpointDir, filename), data, 0o600) } func (s *tlsStore) getData(name, endpointName, filename string) ([]byte, error) { diff --git a/vendor/github.com/docker/cli/cli/debug/debug.go b/vendor/github.com/docker/cli/cli/debug/debug.go index 1a9a46ab..84002bd0 100644 --- a/vendor/github.com/docker/cli/cli/debug/debug.go +++ b/vendor/github.com/docker/cli/cli/debug/debug.go @@ -10,14 +10,14 @@ import ( // Enable sets the DEBUG env var to true // and makes the logger to log at debug level. func Enable() { - os.Setenv("DEBUG", "1") + _ = os.Setenv("DEBUG", "1") logrus.SetLevel(logrus.DebugLevel) } // Disable sets the DEBUG env var to false // and makes the logger to log at info level. func Disable() { - os.Setenv("DEBUG", "") + _ = os.Setenv("DEBUG", "") logrus.SetLevel(logrus.InfoLevel) } diff --git a/vendor/github.com/docker/cli/cli/error.go b/vendor/github.com/docker/cli/cli/error.go index a821f9e5..3d198917 100644 --- a/vendor/github.com/docker/cli/cli/error.go +++ b/vendor/github.com/docker/cli/cli/error.go @@ -1,35 +1,27 @@ package cli -import ( - "fmt" - "strings" -) - -// Errors is a list of errors. -// Useful in a loop if you don't want to return the error right away and you want to display after the loop, -// all the errors that happened during the loop. -// -// Deprecated: use [errors.Join] instead; will be removed in the next release. -type Errors []error - -func (errList Errors) Error() string { - if len(errList) < 1 { - return "" - } - - out := make([]string, len(errList)) - for i := range errList { - out[i] = errList[i].Error() - } - return strings.Join(out, ", ") -} - // StatusError reports an unsuccessful exit by a command. type StatusError struct { + Cause error Status string StatusCode int } +// Error formats the error for printing. If a custom Status is provided, +// it is returned as-is, otherwise it generates a generic error-message +// based on the StatusCode. func (e StatusError) Error() string { - return fmt.Sprintf("Status: %s, Code: %d", e.Status, e.StatusCode) + if e.Status != "" { + return e.Status + } + if e.Cause != nil { + return e.Cause.Error() + } + // we don't want to set a default message here, + // some commands might want to be explicit about the error message + return "" +} + +func (e StatusError) Unwrap() error { + return e.Cause } diff --git a/vendor/github.com/docker/cli/cli/flags/options.go b/vendor/github.com/docker/cli/cli/flags/options.go index 5a6df9c8..fc168984 100644 --- a/vendor/github.com/docker/cli/cli/flags/options.go +++ b/vendor/github.com/docker/cli/cli/flags/options.go @@ -138,7 +138,7 @@ func SetLogLevel(logLevel string) { if logLevel != "" { lvl, err := logrus.ParseLevel(logLevel) if err != nil { - fmt.Fprintf(os.Stderr, "Unable to parse logging level: %s\n", logLevel) + _, _ = fmt.Fprintln(os.Stderr, "Unable to parse logging level:", logLevel) os.Exit(1) } logrus.SetLevel(lvl) diff --git a/vendor/github.com/docker/cli/cli/hints/hints.go b/vendor/github.com/docker/cli/cli/hints/hints.go index f99df8fd..aed35778 100644 --- a/vendor/github.com/docker/cli/cli/hints/hints.go +++ b/vendor/github.com/docker/cli/cli/hints/hints.go @@ -5,7 +5,9 @@ import ( "strconv" ) -// Enabled returns whether cli hints are enabled or not +// Enabled returns whether cli hints are enabled or not. Hints are enabled by +// default, but can be disabled through the "DOCKER_CLI_HINTS" environment +// variable. func Enabled() bool { if v := os.Getenv("DOCKER_CLI_HINTS"); v != "" { enabled, err := strconv.ParseBool(v) diff --git a/vendor/github.com/docker/cli/cli/manifest/store/store.go b/vendor/github.com/docker/cli/cli/manifest/store/store.go index c4f8219c..e97e8628 100644 --- a/vendor/github.com/docker/cli/cli/manifest/store/store.go +++ b/vendor/github.com/docker/cli/cli/manifest/store/store.go @@ -44,7 +44,7 @@ func (s *fsStore) Get(listRef reference.Reference, manifest reference.Reference) return s.getFromFilename(manifest, filename) } -func (s *fsStore) getFromFilename(ref reference.Reference, filename string) (types.ImageManifest, error) { +func (*fsStore) getFromFilename(ref reference.Reference, filename string) (types.ImageManifest, error) { bytes, err := os.ReadFile(filename) switch { case os.IsNotExist(err): @@ -165,7 +165,7 @@ func (n *notFoundError) Error() string { } // NotFound interface -func (n *notFoundError) NotFound() {} +func (*notFoundError) NotFound() {} // IsNotFound returns true if the error is a not found error func IsNotFound(err error) bool { diff --git a/vendor/github.com/docker/cli/cli/registry/client/endpoint.go b/vendor/github.com/docker/cli/cli/registry/client/endpoint.go index e06bfea5..95312b05 100644 --- a/vendor/github.com/docker/cli/cli/registry/client/endpoint.go +++ b/vendor/github.com/docker/cli/cli/registry/client/endpoint.go @@ -22,12 +22,7 @@ type repositoryEndpoint struct { // Name returns the repository name func (r repositoryEndpoint) Name() string { - repoName := r.info.Name.Name() - // If endpoint does not support CanonicalName, use the RemoteName instead - if r.endpoint.TrimHostname { - repoName = reference.Path(r.info.Name) - } - return repoName + return reference.Path(r.info.Name) } // BaseURL returns the endpoint url @@ -128,6 +123,6 @@ func (th *existingTokenHandler) AuthorizeRequest(req *http.Request, _ map[string return nil } -func (th *existingTokenHandler) Scheme() string { +func (*existingTokenHandler) Scheme() string { return "bearer" } diff --git a/vendor/github.com/docker/cli/cli/registry/client/fetcher.go b/vendor/github.com/docker/cli/cli/registry/client/fetcher.go index 3e4b36d3..d1f255bf 100644 --- a/vendor/github.com/docker/cli/cli/registry/client/fetcher.go +++ b/vendor/github.com/docker/cli/cli/registry/client/fetcher.go @@ -304,4 +304,4 @@ func (n *notFoundError) Error() string { } // NotFound satisfies interface github.com/docker/docker/errdefs.ErrNotFound -func (n *notFoundError) NotFound() {} +func (notFoundError) NotFound() {} diff --git a/vendor/github.com/docker/cli/cli/required.go b/vendor/github.com/docker/cli/cli/required.go index e8edcaaf..6455e886 100644 --- a/vendor/github.com/docker/cli/cli/required.go +++ b/vendor/github.com/docker/cli/cli/required.go @@ -1,8 +1,6 @@ package cli import ( - "strings" - "github.com/pkg/errors" "github.com/spf13/cobra" ) @@ -14,15 +12,20 @@ func NoArgs(cmd *cobra.Command, args []string) error { } if cmd.HasSubCommands() { - return errors.New("\n" + strings.TrimRight(cmd.UsageString(), "\n")) + return errors.Errorf( + "%[1]s: unknown command: %[2]s %[3]s\n\nUsage: %[4]s\n\nRun '%[2]s --help' for more information", + binName(cmd), + cmd.CommandPath(), + args[0], + cmd.UseLine(), + ) } return errors.Errorf( - "%q accepts no arguments.\nSee '%s --help'.\n\nUsage: %s\n\n%s", - cmd.CommandPath(), + "%[1]s: '%[2]s' accepts no arguments\n\nUsage: %[3]s\n\nRun '%[2]s --help' for more information", + binName(cmd), cmd.CommandPath(), cmd.UseLine(), - cmd.Short, ) } @@ -33,13 +36,12 @@ func RequiresMinArgs(minArgs int) cobra.PositionalArgs { return nil } return errors.Errorf( - "%q requires at least %d %s.\nSee '%s --help'.\n\nUsage: %s\n\n%s", + "%[1]s: '%[2]s' requires at least %[3]d %[4]s\n\nUsage: %[5]s\n\nSee '%[2]s --help' for more information", + binName(cmd), cmd.CommandPath(), minArgs, pluralize("argument", minArgs), - cmd.CommandPath(), cmd.UseLine(), - cmd.Short, ) } } @@ -51,13 +53,12 @@ func RequiresMaxArgs(maxArgs int) cobra.PositionalArgs { return nil } return errors.Errorf( - "%q requires at most %d %s.\nSee '%s --help'.\n\nUsage: %s\n\n%s", + "%[1]s: '%[2]s' requires at most %[3]d %[4]s\n\nUsage: %[5]s\n\nSRun '%[2]s --help' for more information", + binName(cmd), cmd.CommandPath(), maxArgs, pluralize("argument", maxArgs), - cmd.CommandPath(), cmd.UseLine(), - cmd.Short, ) } } @@ -69,14 +70,13 @@ func RequiresRangeArgs(minArgs int, maxArgs int) cobra.PositionalArgs { return nil } return errors.Errorf( - "%q requires at least %d and at most %d %s.\nSee '%s --help'.\n\nUsage: %s\n\n%s", + "%[1]s: '%[2]s' requires at least %[3]d and at most %[4]d %[5]s\n\nUsage: %[6]s\n\nRun '%[2]s --help' for more information", + binName(cmd), cmd.CommandPath(), minArgs, maxArgs, pluralize("argument", maxArgs), - cmd.CommandPath(), cmd.UseLine(), - cmd.Short, ) } } @@ -88,17 +88,21 @@ func ExactArgs(number int) cobra.PositionalArgs { return nil } return errors.Errorf( - "%q requires exactly %d %s.\nSee '%s --help'.\n\nUsage: %s\n\n%s", + "%[1]s: '%[2]s' requires %[3]d %[4]s\n\nUsage: %[5]s\n\nRun '%[2]s --help' for more information", + binName(cmd), cmd.CommandPath(), number, pluralize("argument", number), - cmd.CommandPath(), cmd.UseLine(), - cmd.Short, ) } } +// binName returns the name of the binary / root command (usually 'docker'). +func binName(cmd *cobra.Command) string { + return cmd.Root().Name() +} + //nolint:unparam func pluralize(word string, number int) string { if number == 1 { diff --git a/vendor/github.com/docker/cli/cli/trust/trust.go b/vendor/github.com/docker/cli/cli/trust/trust.go index 5e08b49e..bb7e597a 100644 --- a/vendor/github.com/docker/cli/cli/trust/trust.go +++ b/vendor/github.com/docker/cli/cli/trust/trust.go @@ -89,7 +89,7 @@ func (scs simpleCredentialStore) RefreshToken(*url.URL, string) string { return scs.auth.IdentityToken } -func (scs simpleCredentialStore) SetRefreshToken(*url.URL, string, string) {} +func (simpleCredentialStore) SetRefreshToken(*url.URL, string, string) {} // GetNotaryRepository returns a NotaryRepository which stores all the // information needed to operate on a notary repository. diff --git a/vendor/github.com/docker/cli/internal/tui/chip.go b/vendor/github.com/docker/cli/internal/tui/chip.go new file mode 100644 index 00000000..bb383109 --- /dev/null +++ b/vendor/github.com/docker/cli/internal/tui/chip.go @@ -0,0 +1,12 @@ +// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16: +//go:build go1.22 + +package tui + +import "strconv" + +func Chip(fg, bg int, content string) string { + fgAnsi := "\x1b[38;5;" + strconv.Itoa(fg) + "m" + bgAnsi := "\x1b[48;5;" + strconv.Itoa(bg) + "m" + return fgAnsi + bgAnsi + content + "\x1b[0m" +} diff --git a/vendor/github.com/docker/cli/internal/tui/colors.go b/vendor/github.com/docker/cli/internal/tui/colors.go new file mode 100644 index 00000000..796aa390 --- /dev/null +++ b/vendor/github.com/docker/cli/internal/tui/colors.go @@ -0,0 +1,33 @@ +// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16: +//go:build go1.22 + +package tui + +import ( + "github.com/morikuni/aec" +) + +var ( + ColorTitle = aec.NewBuilder(aec.DefaultF, aec.Bold).ANSI + ColorPrimary = aec.NewBuilder(aec.DefaultF, aec.Bold).ANSI + ColorSecondary = aec.DefaultF + ColorTertiary = aec.NewBuilder(aec.DefaultF, aec.Faint).ANSI + ColorLink = aec.NewBuilder(aec.LightCyanF, aec.Underline).ANSI + ColorWarning = aec.LightYellowF + ColorFlag = aec.NewBuilder(aec.Bold).ANSI + ColorNone = aec.ANSI(noColor{}) +) + +type noColor struct{} + +func (a noColor) With(_ ...aec.ANSI) aec.ANSI { + return a +} + +func (noColor) Apply(s string) string { + return s +} + +func (noColor) String() string { + return "" +} diff --git a/vendor/github.com/docker/cli/internal/tui/count.go b/vendor/github.com/docker/cli/internal/tui/count.go new file mode 100644 index 00000000..319776e1 --- /dev/null +++ b/vendor/github.com/docker/cli/internal/tui/count.go @@ -0,0 +1,70 @@ +// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16: +//go:build go1.22 + +package tui + +import ( + "strings" + + "github.com/mattn/go-runewidth" +) + +func cleanANSI(s string) string { + for { + start := strings.Index(s, "\x1b") + if start == -1 { + return s + } + end := strings.Index(s[start:], "m") + if end == -1 { + return s + } + s = s[:start] + s[start+end+1:] + } +} + +// Width returns the width of the string, ignoring ANSI escape codes. +// Not all ANSI escape codes are supported yet. +func Width(s string) int { + return runewidth.StringWidth(cleanANSI(s)) +} + +// Ellipsis truncates a string to a given number of runes with an ellipsis at the end. +// It tries to persist the ANSI escape sequences. +func Ellipsis(s string, length int) string { + out := make([]rune, 0, length) + ln := 0 + inEscape := false + tooLong := false + + for _, r := range s { + if r == '\x1b' { + out = append(out, r) + inEscape = true + continue + } + if inEscape { + out = append(out, r) + if r == 'm' { + inEscape = false + if tooLong { + break + } + } + continue + } + + ln += 1 + if ln == length { + tooLong = true + } + if !tooLong { + out = append(out, r) + } + } + + if tooLong { + return string(out) + "…" + } + return string(out) +} diff --git a/vendor/github.com/docker/cli/internal/tui/note.go b/vendor/github.com/docker/cli/internal/tui/note.go new file mode 100644 index 00000000..c955b8cd --- /dev/null +++ b/vendor/github.com/docker/cli/internal/tui/note.go @@ -0,0 +1,39 @@ +// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16: +//go:build go1.22 + +package tui + +import ( + "fmt" + "strings" + + "github.com/morikuni/aec" +) + +var InfoHeader = Str{ + Plain: " Info -> ", + Fancy: aec.Bold.Apply(aec.LightCyanB.Apply(aec.BlackF.Apply("i")) + " " + aec.LightCyanF.Apply("Info → ")), +} + +func (o Output) PrintNote(format string, args ...any) { + if o.isTerminal { + // TODO: Handle all flags + format = strings.ReplaceAll(format, "--platform", ColorFlag.Apply("--platform")) + } + + header := o.Sprint(InfoHeader) + + _, _ = fmt.Fprint(o, "\n", header) + s := fmt.Sprintf(format, args...) + for idx, line := range strings.Split(s, "\n") { + if idx > 0 { + _, _ = fmt.Fprint(o, strings.Repeat(" ", Width(header))) + } + + l := line + if o.isTerminal { + l = aec.Italic.Apply(l) + } + _, _ = fmt.Fprintln(o, l) + } +} diff --git a/vendor/github.com/docker/cli/internal/tui/output.go b/vendor/github.com/docker/cli/internal/tui/output.go new file mode 100644 index 00000000..7fc194ac --- /dev/null +++ b/vendor/github.com/docker/cli/internal/tui/output.go @@ -0,0 +1,62 @@ +// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16: +//go:build go1.22 + +package tui + +import ( + "fmt" + + "github.com/docker/cli/cli/streams" + "github.com/morikuni/aec" +) + +type Output struct { + *streams.Out + isTerminal bool +} + +type terminalPrintable interface { + String(isTerminal bool) string +} + +func NewOutput(out *streams.Out) Output { + return Output{ + Out: out, + isTerminal: out.IsTerminal(), + } +} + +func (o Output) Color(clr aec.ANSI) aec.ANSI { + if o.isTerminal { + return clr + } + return ColorNone +} + +func (o Output) Sprint(all ...any) string { + var out []any + for _, p := range all { + if s, ok := p.(terminalPrintable); ok { + out = append(out, s.String(o.isTerminal)) + } else { + out = append(out, p) + } + } + return fmt.Sprint(out...) +} + +func (o Output) PrintlnWithColor(clr aec.ANSI, args ...any) { + msg := o.Sprint(args...) + if o.isTerminal { + msg = clr.Apply(msg) + } + _, _ = fmt.Fprintln(o.Out, msg) +} + +func (o Output) Println(p ...any) { + _, _ = fmt.Fprintln(o.Out, o.Sprint(p...)) +} + +func (o Output) Print(p ...any) { + _, _ = fmt.Print(o.Out, o.Sprint(p...)) +} diff --git a/vendor/github.com/docker/cli/internal/tui/str.go b/vendor/github.com/docker/cli/internal/tui/str.go new file mode 100644 index 00000000..490e474f --- /dev/null +++ b/vendor/github.com/docker/cli/internal/tui/str.go @@ -0,0 +1,19 @@ +// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16: +//go:build go1.22 + +package tui + +type Str struct { + // Fancy is the fancy string representation of the string. + Fancy string + + // Plain is the plain string representation of the string. + Plain string +} + +func (p Str) String(isTerminal bool) string { + if isTerminal { + return p.Fancy + } + return p.Plain +} diff --git a/vendor/github.com/docker/cli/opts/config.go b/vendor/github.com/docker/cli/opts/config.go index 1423ae3b..1fc0eb35 100644 --- a/vendor/github.com/docker/cli/opts/config.go +++ b/vendor/github.com/docker/cli/opts/config.go @@ -80,7 +80,7 @@ func (o *ConfigOpt) Set(value string) error { } // Type returns the type of this option -func (o *ConfigOpt) Type() string { +func (*ConfigOpt) Type() string { return "config" } diff --git a/vendor/github.com/docker/cli/opts/duration.go b/vendor/github.com/docker/cli/opts/duration.go index 5dc6eeaa..d55c51e6 100644 --- a/vendor/github.com/docker/cli/opts/duration.go +++ b/vendor/github.com/docker/cli/opts/duration.go @@ -46,7 +46,7 @@ func (d *DurationOpt) Set(s string) error { } // Type returns the type of this option, which will be displayed in `--help` output -func (d *DurationOpt) Type() string { +func (*DurationOpt) Type() string { return "duration" } diff --git a/vendor/github.com/docker/cli/opts/gpus.go b/vendor/github.com/docker/cli/opts/gpus.go index 93bf9397..993f6da9 100644 --- a/vendor/github.com/docker/cli/opts/gpus.go +++ b/vendor/github.com/docker/cli/opts/gpus.go @@ -92,7 +92,7 @@ func (o *GpuOpts) Set(value string) error { } // Type returns the type of this option -func (o *GpuOpts) Type() string { +func (*GpuOpts) Type() string { return "gpu-request" } diff --git a/vendor/github.com/docker/cli/opts/mount.go b/vendor/github.com/docker/cli/opts/mount.go index 3a4ee31a..275a4d7f 100644 --- a/vendor/github.com/docker/cli/opts/mount.go +++ b/vendor/github.com/docker/cli/opts/mount.go @@ -43,6 +43,13 @@ func (m *MountOpt) Set(value string) error { return mount.VolumeOptions } + imageOptions := func() *mounttypes.ImageOptions { + if mount.ImageOptions == nil { + mount.ImageOptions = new(mounttypes.ImageOptions) + } + return mount.ImageOptions + } + bindOptions := func() *mounttypes.BindOptions { if mount.BindOptions == nil { mount.BindOptions = new(mounttypes.BindOptions) @@ -147,6 +154,8 @@ func (m *MountOpt) Set(value string) error { volumeOptions().DriverConfig.Options = make(map[string]string) } setValueOnMap(volumeOptions().DriverConfig.Options, val) + case "image-subpath": + imageOptions().Subpath = val case "tmpfs-size": sizeBytes, err := units.RAMInBytes(val) if err != nil { @@ -175,6 +184,9 @@ func (m *MountOpt) Set(value string) error { if mount.VolumeOptions != nil && mount.Type != mounttypes.TypeVolume { return fmt.Errorf("cannot mix 'volume-*' options with mount type '%s'", mount.Type) } + if mount.ImageOptions != nil && mount.Type != mounttypes.TypeImage { + return fmt.Errorf("cannot mix 'image-*' options with mount type '%s'", mount.Type) + } if mount.BindOptions != nil && mount.Type != mounttypes.TypeBind { return fmt.Errorf("cannot mix 'bind-*' options with mount type '%s'", mount.Type) } @@ -203,7 +215,7 @@ func (m *MountOpt) Set(value string) error { } // Type returns the type of this option -func (m *MountOpt) Type() string { +func (*MountOpt) Type() string { return "mount" } diff --git a/vendor/github.com/docker/cli/opts/network.go b/vendor/github.com/docker/cli/opts/network.go index 413aec7b..c3510870 100644 --- a/vendor/github.com/docker/cli/opts/network.go +++ b/vendor/github.com/docker/cli/opts/network.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "regexp" + "strconv" "strings" ) @@ -16,6 +17,7 @@ const ( networkOptMacAddress = "mac-address" networkOptLinkLocalIP = "link-local-ip" driverOpt = "driver-opt" + gwPriorityOpt = "gw-priority" ) // NetworkAttachmentOpts represents the network options for endpoint creation @@ -28,6 +30,7 @@ type NetworkAttachmentOpts struct { IPv6Address string LinkLocalIPs []string MacAddress string + GwPriority int } // NetworkOpt represents a network config in swarm mode. @@ -83,6 +86,11 @@ func (n *NetworkOpt) Set(value string) error { //nolint:gocyclo netOpt.DriverOpts = make(map[string]string) } netOpt.DriverOpts[key] = val + case gwPriorityOpt: + netOpt.GwPriority, err = strconv.Atoi(val) + if err != nil { + return fmt.Errorf("invalid gw-priority: %w", err) + } default: return errors.New("invalid field key " + key) } @@ -98,7 +106,7 @@ func (n *NetworkOpt) Set(value string) error { //nolint:gocyclo } // Type returns the type of this option -func (n *NetworkOpt) Type() string { +func (*NetworkOpt) Type() string { return "network" } @@ -108,7 +116,7 @@ func (n *NetworkOpt) Value() []NetworkAttachmentOpts { } // String returns the network opts as a string -func (n *NetworkOpt) String() string { +func (*NetworkOpt) String() string { return "" } diff --git a/vendor/github.com/docker/cli/opts/opts.go b/vendor/github.com/docker/cli/opts/opts.go index 157b30f3..061fda57 100644 --- a/vendor/github.com/docker/cli/opts/opts.go +++ b/vendor/github.com/docker/cli/opts/opts.go @@ -110,7 +110,7 @@ func (opts *ListOpts) Len() int { } // Type returns a string name for this Option type -func (opts *ListOpts) Type() string { +func (*ListOpts) Type() string { return "list" } @@ -180,7 +180,7 @@ func (opts *MapOpts) String() string { } // Type returns a string name for this Option type -func (opts *MapOpts) Type() string { +func (*MapOpts) Type() string { return "map" } @@ -358,7 +358,7 @@ func (o *FilterOpt) Set(value string) error { } // Type returns the option type -func (o *FilterOpt) Type() string { +func (*FilterOpt) Type() string { return "filter" } @@ -386,7 +386,7 @@ func (c *NanoCPUs) Set(value string) error { } // Type returns the type -func (c *NanoCPUs) Type() string { +func (*NanoCPUs) Type() string { return "decimal" } @@ -463,7 +463,7 @@ func (m *MemBytes) Set(value string) error { } // Type returns the type -func (m *MemBytes) Type() string { +func (*MemBytes) Type() string { return "bytes" } @@ -498,7 +498,7 @@ func (m *MemSwapBytes) Set(value string) error { } // Type returns the type -func (m *MemSwapBytes) Type() string { +func (*MemSwapBytes) Type() string { return "bytes" } diff --git a/vendor/github.com/docker/cli/opts/port.go b/vendor/github.com/docker/cli/opts/port.go index 099aae35..0407355e 100644 --- a/vendor/github.com/docker/cli/opts/port.go +++ b/vendor/github.com/docker/cli/opts/port.go @@ -121,7 +121,7 @@ func (p *PortOpt) Set(value string) error { } // Type returns the type of this option -func (p *PortOpt) Type() string { +func (*PortOpt) Type() string { return "port" } diff --git a/vendor/github.com/docker/cli/opts/quotedstring.go b/vendor/github.com/docker/cli/opts/quotedstring.go index 741f450b..eb2ac7fb 100644 --- a/vendor/github.com/docker/cli/opts/quotedstring.go +++ b/vendor/github.com/docker/cli/opts/quotedstring.go @@ -13,7 +13,7 @@ func (s *QuotedString) Set(val string) error { } // Type returns the type of the value -func (s *QuotedString) Type() string { +func (*QuotedString) Type() string { return "string" } diff --git a/vendor/github.com/docker/cli/opts/secret.go b/vendor/github.com/docker/cli/opts/secret.go index 09d2b2b3..bdf232de 100644 --- a/vendor/github.com/docker/cli/opts/secret.go +++ b/vendor/github.com/docker/cli/opts/secret.go @@ -79,7 +79,7 @@ func (o *SecretOpt) Set(value string) error { } // Type returns the type of this option -func (o *SecretOpt) Type() string { +func (*SecretOpt) Type() string { return "secret" } diff --git a/vendor/github.com/docker/cli/opts/throttledevice.go b/vendor/github.com/docker/cli/opts/throttledevice.go index 8bf12880..46b09185 100644 --- a/vendor/github.com/docker/cli/opts/throttledevice.go +++ b/vendor/github.com/docker/cli/opts/throttledevice.go @@ -100,6 +100,6 @@ func (opt *ThrottledeviceOpt) GetList() []*blkiodev.ThrottleDevice { } // Type returns the option type -func (opt *ThrottledeviceOpt) Type() string { +func (*ThrottledeviceOpt) Type() string { return "list" } diff --git a/vendor/github.com/docker/cli/opts/ulimit.go b/vendor/github.com/docker/cli/opts/ulimit.go index 1409a109..48052c88 100644 --- a/vendor/github.com/docker/cli/opts/ulimit.go +++ b/vendor/github.com/docker/cli/opts/ulimit.go @@ -58,6 +58,6 @@ func (o *UlimitOpt) GetList() []*container.Ulimit { } // Type returns the option type -func (o *UlimitOpt) Type() string { +func (*UlimitOpt) Type() string { return "ulimit" } diff --git a/vendor/github.com/docker/cli/opts/weightdevice.go b/vendor/github.com/docker/cli/opts/weightdevice.go index ee377fc3..036c7c8c 100644 --- a/vendor/github.com/docker/cli/opts/weightdevice.go +++ b/vendor/github.com/docker/cli/opts/weightdevice.go @@ -79,6 +79,6 @@ func (opt *WeightdeviceOpt) GetList() []*blkiodev.WeightDevice { } // Type returns the option type -func (opt *WeightdeviceOpt) Type() string { +func (*WeightdeviceOpt) Type() string { return "list" } diff --git a/vendor/github.com/docker/docker-credential-helpers/client/command.go b/vendor/github.com/docker/docker-credential-helpers/client/command.go index 1936234b..93863480 100644 --- a/vendor/github.com/docker/docker-credential-helpers/client/command.go +++ b/vendor/github.com/docker/docker-credential-helpers/client/command.go @@ -15,27 +15,30 @@ type Program interface { // ProgramFunc is a type of function that initializes programs based on arguments. type ProgramFunc func(args ...string) Program -// NewShellProgramFunc creates programs that are executed in a Shell. -func NewShellProgramFunc(name string) ProgramFunc { - return NewShellProgramFuncWithEnv(name, nil) -} - -// NewShellProgramFuncWithEnv creates programs that are executed in a Shell with environment variables -func NewShellProgramFuncWithEnv(name string, env *map[string]string) ProgramFunc { +// NewShellProgramFunc creates a [ProgramFunc] to run command in a [Shell]. +func NewShellProgramFunc(command string) ProgramFunc { return func(args ...string) Program { - return &Shell{cmd: createProgramCmdRedirectErr(name, args, env)} + return createProgramCmdRedirectErr(command, args, nil) } } -func createProgramCmdRedirectErr(commandName string, args []string, env *map[string]string) *exec.Cmd { - programCmd := exec.Command(commandName, args...) +// NewShellProgramFuncWithEnv creates a [ProgramFunc] tu run command +// in a [Shell] with the given environment variables. +func NewShellProgramFuncWithEnv(command string, env *map[string]string) ProgramFunc { + return func(args ...string) Program { + return createProgramCmdRedirectErr(command, args, env) + } +} + +func createProgramCmdRedirectErr(command string, args []string, env *map[string]string) *Shell { + ec := exec.Command(command, args...) if env != nil { for k, v := range *env { - programCmd.Env = append(programCmd.Environ(), k+"="+v) + ec.Env = append(ec.Environ(), k+"="+v) } } - programCmd.Stderr = os.Stderr - return programCmd + ec.Stderr = os.Stderr + return &Shell{cmd: ec} } // Shell invokes shell commands to talk with a remote credentials-helper. diff --git a/vendor/github.com/docker/docker/AUTHORS b/vendor/github.com/docker/docker/AUTHORS index 5f93eeb4..88032def 100644 --- a/vendor/github.com/docker/docker/AUTHORS +++ b/vendor/github.com/docker/docker/AUTHORS @@ -2,7 +2,9 @@ # This file lists all contributors to the repository. # See hack/generate-authors.sh to make modifications. +7sunarni <710720732@qq.com> Aanand Prasad +Aarni Koskela Aaron Davidson Aaron Feng Aaron Hnatiw @@ -11,6 +13,7 @@ Aaron L. Xu Aaron Lehmann Aaron Welch Aaron Yoshitake +Abdur Rehman Abel Muiño Abhijeet Kasurde Abhinandan Prativadi @@ -24,9 +27,11 @@ Adam Avilla Adam Dobrawy Adam Eijdenberg Adam Kunk +Adam Lamers Adam Miller Adam Mills Adam Pointer +Adam Simon Adam Singer Adam Thornton Adam Walz @@ -119,6 +124,7 @@ amangoel Amen Belayneh Ameya Gawde Amir Goldstein +AmirBuddy Amit Bakshi Amit Krishnan Amit Shukla @@ -168,6 +174,7 @@ Andrey Kolomentsev Andrey Petrov Andrey Stolbovsky André Martins +Andrés Maldonado Andy Chambers andy diller Andy Goldstein @@ -219,6 +226,7 @@ Artur Meyster Arun Gupta Asad Saeeduddin Asbjørn Enge +Ashly Mathew Austin Vazquez averagehuman Avi Das @@ -345,6 +353,7 @@ Chance Zibolski Chander Govindarajan Chanhun Jeong Chao Wang +Charity Kathure Charles Chan Charles Hooper Charles Law @@ -480,6 +489,7 @@ Daniel Farrell Daniel Garcia Daniel Gasienica Daniel Grunwell +Daniel Guns Daniel Helfand Daniel Hiltgen Daniel J Walsh @@ -763,6 +773,7 @@ Frank Macreery Frank Rosquin Frank Villaro-Dixon Frank Yang +François Scala Fred Lifton Frederick F. Kautz IV Frederico F. de Oliveira @@ -798,6 +809,7 @@ GennadySpb Geoff Levand Geoffrey Bachelet Geon Kim +George Adams George Kontridze George Ma George MacRorie @@ -826,6 +838,7 @@ Gopikannan Venugopalsamy Gosuke Miyashita Gou Rao Govinda Fichtner +Grace Choi Grant Millar Grant Reaber Graydon Hoare @@ -966,6 +979,7 @@ James Nugent James Sanders James Turnbull James Watkins-Harvey +Jameson Hyde Jamie Hannaford Jamshid Afshar Jan Breig @@ -1064,13 +1078,16 @@ Jim Perrin Jimmy Cuadra Jimmy Puckett Jimmy Song +jinjiadu Jinsoo Park Jintao Zhang Jiri Appl Jiri Popelka Jiuyue Ma Jiří Župka +jjimbo137 <115816493+jjimbo137@users.noreply.github.com> Joakim Roubert +Joan Grau Joao Fernandes Joao Trindade Joe Beda @@ -1155,6 +1172,7 @@ Josiah Kiehl José Tomás Albornoz Joyce Jang JP +JSchltggr Julian Taylor Julien Barbier Julien Bisconti @@ -1289,6 +1307,7 @@ Laura Brehm Laura Frank Laurent Bernaille Laurent Erignoux +Laurent Goderre Laurie Voss Leandro Motta Barros Leandro Siqueira @@ -1369,6 +1388,7 @@ Madhan Raj Mookkandy Madhav Puri Madhu Venugopal Mageee +maggie44 <64841595+maggie44@users.noreply.github.com> Mahesh Tiyyagura malnick Malte Janduda @@ -1579,6 +1599,7 @@ Muayyad Alsadi Muhammad Zohaib Aslam Mustafa Akın Muthukumar R +Myeongjoon Kim Máximo Cuadros Médi-Rémi Hashim Nace Oroz @@ -1593,6 +1614,7 @@ Natasha Jarus Nate Brennand Nate Eagleson Nate Jones +Nathan Baulch Nathan Carlson Nathan Herald Nathan Hsieh @@ -1655,6 +1677,7 @@ Nuutti Kotivuori nzwsch O.S. Tezer objectified +Octol1ttle Odin Ugedal Oguz Bilgic Oh Jinkyun @@ -1763,6 +1786,7 @@ Pierre Carrier Pierre Dal-Pra Pierre Wacrenier Pierre-Alain RIVIERE +pinglanlu Piotr Bogdan Piotr Karbowski Porjo @@ -1790,6 +1814,7 @@ Quentin Tayssier r0n22 Rachit Sharma Radostin Stoyanov +Rafael Fernández López Rafal Jeczalik Rafe Colton Raghavendra K T @@ -1856,7 +1881,7 @@ Robin Speekenbrink Robin Thoni robpc Rodolfo Carvalho -Rodrigo Campos +Rodrigo Campos Rodrigo Vaz Roel Van Nyen Roger Peppe @@ -1995,6 +2020,7 @@ Sevki Hasirci Shane Canon Shane da Silva Shaun Kaasten +Shaun Thompson shaunol Shawn Landden Shawn Siefkas @@ -2013,6 +2039,7 @@ Shijun Qin Shishir Mahajan Shoubhik Bose Shourya Sarcar +Shreenidhi Shedi Shu-Wai Chow shuai-z Shukui Yang @@ -2100,6 +2127,7 @@ Sébastien Stormacq Sören Tempel Tabakhase Tadej Janež +Tadeusz Dudkiewicz Takuto Sato tang0th Tangi Colin @@ -2107,6 +2135,7 @@ Tatsuki Sugiura Tatsushi Inagaki Taylan Isikdemir Taylor Jones +tcpdumppy <847462026@qq.com> Ted M. Young Tehmasp Chaudhri Tejaswini Duggaraju @@ -2391,6 +2420,7 @@ You-Sheng Yang (楊有勝) youcai Youcef YEKHLEF Youfu Zhang +YR Chen Yu Changchun Yu Chengxia Yu Peng diff --git a/vendor/github.com/docker/docker/api/common.go b/vendor/github.com/docker/docker/api/common.go index 93d64cd8..2c62cd40 100644 --- a/vendor/github.com/docker/docker/api/common.go +++ b/vendor/github.com/docker/docker/api/common.go @@ -3,7 +3,7 @@ package api // import "github.com/docker/docker/api" // Common constants for daemon and client. const ( // DefaultVersion of the current REST API. - DefaultVersion = "1.47" + DefaultVersion = "1.48" // MinSupportedAPIVersion is the minimum API version that can be supported // by the API server, specified as "major.minor". Note that the daemon diff --git a/vendor/github.com/docker/docker/api/swagger.yaml b/vendor/github.com/docker/docker/api/swagger.yaml index f519806c..a4881f95 100644 --- a/vendor/github.com/docker/docker/api/swagger.yaml +++ b/vendor/github.com/docker/docker/api/swagger.yaml @@ -19,10 +19,10 @@ produces: consumes: - "application/json" - "text/plain" -basePath: "/v1.47" +basePath: "/v1.48" info: title: "Docker Engine API" - version: "1.47" + version: "1.48" x-logo: url: "https://docs.docker.com/assets/images/logo-docker-main.png" description: | @@ -55,14 +55,14 @@ info: the URL is not supported by the daemon, a HTTP `400 Bad Request` error message is returned. - If you omit the version-prefix, the current version of the API (v1.47) is used. - For example, calling `/info` is the same as calling `/v1.47/info`. Using the + If you omit the version-prefix, the current version of the API (v1.48) is used. + For example, calling `/info` is the same as calling `/v1.48/info`. Using the API without a version-prefix is deprecated and will be removed in a future release. Engine releases in the near future should support this version of the API, so your client will continue to work even if it is talking to a newer Engine. - The API uses an open schema model, which means server may add extra properties + The API uses an open schema model, which means the server may add extra properties to responses. Likewise, the server will ignore any extra query parameters and request body properties. When you write clients, you need to ignore additional properties in responses to ensure they do not break when talking to newer @@ -212,6 +212,7 @@ definitions: - `bind` a mount of a file or directory from the host into the container. - `volume` a docker volume with the given `Name`. + - `image` a docker image - `tmpfs` a `tmpfs`. - `npipe` a named pipe from the host into the container. - `cluster` a Swarm cluster volume @@ -219,6 +220,7 @@ definitions: enum: - "bind" - "volume" + - "image" - "tmpfs" - "npipe" - "cluster" @@ -350,6 +352,7 @@ definitions: - `bind` Mounts a file or directory from the host into the container. Must exist prior to creating the container. - `volume` Creates a volume with the given name and options (or uses a pre-existing volume with the same name and options). These are **not** removed when the container is removed. + - `image` Mounts an image. - `tmpfs` Create a tmpfs with the given options. The mount source cannot be specified for tmpfs. - `npipe` Mounts a named pipe from the host into the container. Must exist prior to creating the container. - `cluster` a Swarm cluster volume @@ -357,6 +360,7 @@ definitions: enum: - "bind" - "volume" + - "image" - "tmpfs" - "npipe" - "cluster" @@ -431,6 +435,14 @@ definitions: description: "Source path inside the volume. Must be relative without any back traversals." type: "string" example: "dir-inside-volume/subdirectory" + ImageOptions: + description: "Optional configuration for the `image` type." + type: "object" + properties: + Subpath: + description: "Source path inside the image. Must be relative without any back traversals." + type: "string" + example: "dir-inside-image/subdirectory" TmpfsOptions: description: "Optional configuration for the `tmpfs` type." type: "object" @@ -953,13 +965,18 @@ definitions: ContainerIDFile: type: "string" description: "Path to a file where the container ID is written" + example: "" LogConfig: type: "object" description: "The logging configuration for this container" properties: Type: + description: |- + Name of the logging driver used for the container or "none" + if logging is disabled. type: "string" enum: + - "local" - "json-file" - "syslog" - "journald" @@ -970,9 +987,14 @@ definitions: - "etwlogs" - "none" Config: + description: |- + Driver-specific configuration options for the logging driver. type: "object" additionalProperties: type: "string" + example: + "max-file": "5" + "max-size": "10m" NetworkMode: type: "string" description: | @@ -1015,6 +1037,7 @@ definitions: items: type: "integer" minimum: 0 + example: [80, 64] Annotations: type: "object" description: | @@ -1117,7 +1140,8 @@ definitions: - `"host"`: use the host's PID namespace inside the container Privileged: type: "boolean" - description: "Gives the container full access to the host." + description: |- + Gives the container full access to the host. PublishAllPorts: type: "boolean" description: | @@ -1174,18 +1198,20 @@ definitions: minimum: 0 Sysctls: type: "object" - description: | + x-nullable: true + description: |- A list of kernel parameters (sysctls) to set in the container. - For example: - ``` - {"net.ipv4.ip_forward": "1"} - ``` + This field is omitted if not set. additionalProperties: type: "string" + example: + "net.ipv4.ip_forward": "1" Runtime: type: "string" - description: "Runtime to use with this container." + x-nullable: true + description: |- + Runtime to use with this container. # Applicable to Windows Isolation: type: "string" @@ -1195,6 +1221,7 @@ definitions: - "default" - "process" - "hyperv" + - "" MaskedPaths: type: "array" description: | @@ -1202,6 +1229,18 @@ definitions: the default set of paths). items: type: "string" + example: + - "/proc/asound" + - "/proc/acpi" + - "/proc/kcore" + - "/proc/keys" + - "/proc/latency_stats" + - "/proc/timer_list" + - "/proc/timer_stats" + - "/proc/sched_debug" + - "/proc/scsi" + - "/sys/firmware" + - "/sys/devices/virtual/powercap" ReadonlyPaths: type: "array" description: | @@ -1209,6 +1248,12 @@ definitions: (this overrides the default set of paths). items: type: "string" + example: + - "/proc/bus" + - "/proc/fs" + - "/proc/irq" + - "/proc/sys" + - "/proc/sysrq-trigger" ContainerConfig: description: | @@ -1225,8 +1270,14 @@ definitions: The domain name to use for the container. type: "string" User: - description: "The user that commands are run as inside the container." + description: |- + Commands run as this user inside the container. If omitted, commands + run as the user specified in the image the container was started from. + + Can be either user-name or UID, and optional group-name or GID, + separated by a colon (`[<:group-name|GID>]`). type: "string" + example: "123:456" AttachStdin: description: "Whether to attach to `stdin`." type: "boolean" @@ -1917,7 +1968,7 @@ definitions: type: "string" example: "4443" - GraphDriverData: + DriverData: description: | Information about the storage driver used to store the container's and image's filesystem. @@ -1991,6 +2042,33 @@ definitions: type: "string" x-nullable: false example: "sha256:ec3f0931a6e6b6855d76b2d7b0be30e81860baccd891b2e243280bf1cd8ad710" + Descriptor: + description: | + Descriptor is an OCI descriptor of the image target. + In case of a multi-platform image, this descriptor points to the OCI index + or a manifest list. + + This field is only present if the daemon provides a multi-platform image store. + + WARNING: This is experimental and may change at any time without any backward + compatibility. + x-nullable: true + $ref: "#/definitions/OCIDescriptor" + Manifests: + description: | + Manifests is a list of image manifests available in this image. It + provides a more detailed view of the platform-specific image manifests or + other image-attached data like build attestations. + + Only available if the daemon provides a multi-platform image store + and the `manifests` option is set in the inspect request. + + WARNING: This is experimental and may change at any time without any backward + compatibility. + type: "array" + x-nullable: true + items: + $ref: "#/definitions/ImageManifestSummary" RepoTags: description: | List of image names/tags in the local image cache that reference this @@ -2107,7 +2185,7 @@ definitions: format: "int64" example: 1239828 GraphDriver: - $ref: "#/definitions/GraphDriverData" + $ref: "#/definitions/DriverData" RootFS: description: | Information about the image's RootFS, including the layer IDs. @@ -2278,6 +2356,18 @@ definitions: x-omitempty: true items: $ref: "#/definitions/ImageManifestSummary" + Descriptor: + description: | + Descriptor is an OCI descriptor of the image target. + In case of a multi-platform image, this descriptor points to the OCI index + or a manifest list. + + This field is only present if the daemon provides a multi-platform image store. + + WARNING: This is experimental and may change at any time without any backward + compatibility. + x-nullable: true + $ref: "#/definitions/OCIDescriptor" AuthConfig: type: "object" @@ -2497,6 +2587,11 @@ definitions: `overlay`). type: "string" example: "overlay" + EnableIPv4: + description: | + Whether the network was created with IPv4 enabled. + type: "boolean" + example: true EnableIPv6: description: | Whether the network was created with IPv6 enabled. @@ -2697,12 +2792,24 @@ definitions: type: "string" error: type: "string" + x-nullable: true + description: |- + errors encountered during the operation. + + + > **Deprecated**: This field is deprecated since API v1.4, and will be omitted in a future API version. Use the information in errorDetail instead. errorDetail: $ref: "#/definitions/ErrorDetail" status: type: "string" progress: type: "string" + x-nullable: true + description: |- + Progress is a pre-formatted presentation of progressDetail. + + + > **Deprecated**: This field is deprecated since API v1.8, and will be omitted in a future API version. Use the information in progressDetail instead. progressDetail: $ref: "#/definitions/ProgressDetail" aux: @@ -2802,12 +2909,24 @@ definitions: type: "string" error: type: "string" + x-nullable: true + description: |- + errors encountered during the operation. + + + > **Deprecated**: This field is deprecated since API v1.4, and will be omitted in a future API version. Use the information in errorDetail instead. errorDetail: $ref: "#/definitions/ErrorDetail" status: type: "string" progress: type: "string" + x-nullable: true + description: |- + Progress is a pre-formatted presentation of progressDetail. + + + > **Deprecated**: This field is deprecated since API v1.8, and will be omitted in a future API version. Use the information in progressDetail instead. progressDetail: $ref: "#/definitions/ProgressDetail" @@ -2816,10 +2935,24 @@ definitions: properties: error: type: "string" + x-nullable: true + description: |- + errors encountered during the operation. + + + > **Deprecated**: This field is deprecated since API v1.4, and will be omitted in a future API version. Use the information in errorDetail instead. + errorDetail: + $ref: "#/definitions/ErrorDetail" status: type: "string" progress: type: "string" + x-nullable: true + description: |- + Progress is a pre-formatted presentation of progressDetail. + + + > **Deprecated**: This field is deprecated since API v1.8, and will be omitted in a future API version. Use the information in progressDetail instead. progressDetail: $ref: "#/definitions/ProgressDetail" @@ -2851,9 +2984,10 @@ definitions: example: message: "Something went wrong." - IdResponse: + IDResponse: description: "Response to an API call that returns just an Id" type: "object" + x-go-name: "IDResponse" required: ["Id"] properties: Id: @@ -2898,6 +3032,16 @@ definitions: example: com.example.some-label: "some-value" com.example.some-other-label: "some-other-value" + GwPriority: + description: | + This property determines which endpoint will provide the default + gateway for a container. The endpoint with the highest priority will + be used. If multiple endpoints have the same priority, endpoints are + lexicographically sorted based on their network name, and the one + that sorts first is picked. + type: "number" + example: + - 10 # Operational data NetworkID: @@ -4180,6 +4324,7 @@ definitions: - "default" - "process" - "hyperv" + - "" Init: description: | Run an init inside the container that forwards signals and reaps @@ -4984,76 +5129,346 @@ definitions: Warnings: - "unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found" + ContainerInspectResponse: + type: "object" + title: "ContainerInspectResponse" + x-go-name: "InspectResponse" + properties: + Id: + description: |- + The ID of this container as a 128-bit (64-character) hexadecimal string (32 bytes). + type: "string" + x-go-name: "ID" + minLength: 64 + maxLength: 64 + pattern: "^[0-9a-fA-F]{64}$" + example: "aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf" + Created: + description: |- + Date and time at which the container was created, formatted in + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds. + type: "string" + format: "dateTime" + x-nullable: true + example: "2025-02-17T17:43:39.64001363Z" + Path: + description: |- + The path to the command being run + type: "string" + example: "/bin/sh" + Args: + description: "The arguments to the command being run" + type: "array" + items: + type: "string" + example: + - "-c" + - "exit 9" + State: + $ref: "#/definitions/ContainerState" + Image: + description: |- + The ID (digest) of the image that this container was created from. + type: "string" + example: "sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782" + ResolvConfPath: + description: |- + Location of the `/etc/resolv.conf` generated for the container on the + host. + + This file is managed through the docker daemon, and should not be + accessed or modified by other tools. + type: "string" + example: "/var/lib/docker/containers/aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf/resolv.conf" + HostnamePath: + description: |- + Location of the `/etc/hostname` generated for the container on the + host. + + This file is managed through the docker daemon, and should not be + accessed or modified by other tools. + type: "string" + example: "/var/lib/docker/containers/aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf/hostname" + HostsPath: + description: |- + Location of the `/etc/hosts` generated for the container on the + host. + + This file is managed through the docker daemon, and should not be + accessed or modified by other tools. + type: "string" + example: "/var/lib/docker/containers/aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf/hosts" + LogPath: + description: |- + Location of the file used to buffer the container's logs. Depending on + the logging-driver used for the container, this field may be omitted. + + This file is managed through the docker daemon, and should not be + accessed or modified by other tools. + type: "string" + x-nullable: true + example: "/var/lib/docker/containers/5b7c7e2b992aa426584ce6c47452756066be0e503a08b4516a433a54d2f69e59/5b7c7e2b992aa426584ce6c47452756066be0e503a08b4516a433a54d2f69e59-json.log" + Name: + description: |- + The name associated with this container. + + For historic reasons, the name may be prefixed with a forward-slash (`/`). + type: "string" + example: "/funny_chatelet" + RestartCount: + description: |- + Number of times the container was restarted since it was created, + or since daemon was started. + type: "integer" + example: 0 + Driver: + description: |- + The storage-driver used for the container's filesystem (graph-driver + or snapshotter). + type: "string" + example: "overlayfs" + Platform: + description: |- + The platform (operating system) for which the container was created. + + This field was introduced for the experimental "LCOW" (Linux Containers + On Windows) features, which has been removed. In most cases, this field + is equal to the host's operating system (`linux` or `windows`). + type: "string" + example: "linux" + ImageManifestDescriptor: + $ref: "#/definitions/OCIDescriptor" + description: |- + OCI descriptor of the platform-specific manifest of the image + the container was created from. + + Note: Only available if the daemon provides a multi-platform + image store. + MountLabel: + description: |- + SELinux mount label set for the container. + type: "string" + example: "" + ProcessLabel: + description: |- + SELinux process label set for the container. + type: "string" + example: "" + AppArmorProfile: + description: |- + The AppArmor profile set for the container. + type: "string" + example: "" + ExecIDs: + description: |- + IDs of exec instances that are running in the container. + type: "array" + items: + type: "string" + x-nullable: true + example: + - "b35395de42bc8abd327f9dd65d913b9ba28c74d2f0734eeeae84fa1c616a0fca" + - "3fc1232e5cd20c8de182ed81178503dc6437f4e7ef12b52cc5e8de020652f1c4" + HostConfig: + $ref: "#/definitions/HostConfig" + GraphDriver: + $ref: "#/definitions/DriverData" + SizeRw: + description: |- + The size of files that have been created or changed by this container. + + This field is omitted by default, and only set when size is requested + in the API request. + type: "integer" + format: "int64" + x-nullable: true + example: "122880" + SizeRootFs: + description: |- + The total size of all files in the read-only layers from the image + that the container uses. These layers can be shared between containers. + + This field is omitted by default, and only set when size is requested + in the API request. + type: "integer" + format: "int64" + x-nullable: true + example: "1653948416" + Mounts: + description: |- + List of mounts used by the container. + type: "array" + items: + $ref: "#/definitions/MountPoint" + Config: + $ref: "#/definitions/ContainerConfig" + NetworkSettings: + $ref: "#/definitions/NetworkSettings" + ContainerSummary: type: "object" properties: Id: - description: "The ID of this container" + description: |- + The ID of this container as a 128-bit (64-character) hexadecimal string (32 bytes). type: "string" x-go-name: "ID" + minLength: 64 + maxLength: 64 + pattern: "^[0-9a-fA-F]{64}$" + example: "aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf" Names: - description: "The names that this container has been given" + description: |- + The names associated with this container. Most containers have a single + name, but when using legacy "links", the container can have multiple + names. + + For historic reasons, names are prefixed with a forward-slash (`/`). type: "array" items: type: "string" + example: + - "/funny_chatelet" Image: - description: "The name of the image used when creating this container" + description: |- + The name or ID of the image used to create the container. + + This field shows the image reference as was specified when creating the container, + which can be in its canonical form (e.g., `docker.io/library/ubuntu:latest` + or `docker.io/library/ubuntu@sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782`), + short form (e.g., `ubuntu:latest`)), or the ID(-prefix) of the image (e.g., `72297848456d`). + + The content of this field can be updated at runtime if the image used to + create the container is untagged, in which case the field is updated to + contain the the image ID (digest) it was resolved to in its canonical, + non-truncated form (e.g., `sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782`). type: "string" + example: "docker.io/library/ubuntu:latest" ImageID: - description: "The ID of the image that this container was created from" + description: |- + The ID (digest) of the image that this container was created from. type: "string" + example: "sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782" + ImageManifestDescriptor: + $ref: "#/definitions/OCIDescriptor" + x-nullable: true + description: | + OCI descriptor of the platform-specific manifest of the image + the container was created from. + + Note: Only available if the daemon provides a multi-platform + image store. + + This field is not populated in the `GET /system/df` endpoint. Command: description: "Command to run when starting the container" type: "string" + example: "/bin/bash" Created: - description: "When the container was created" + description: |- + Date and time at which the container was created as a Unix timestamp + (number of seconds since EPOCH). type: "integer" format: "int64" + example: "1739811096" Ports: - description: "The ports exposed by this container" + description: |- + Port-mappings for the container. type: "array" items: $ref: "#/definitions/Port" SizeRw: - description: "The size of files that have been created or changed by this container" + description: |- + The size of files that have been created or changed by this container. + + This field is omitted by default, and only set when size is requested + in the API request. type: "integer" format: "int64" + x-nullable: true + example: "122880" SizeRootFs: - description: "The total size of all the files in this container" + description: |- + The total size of all files in the read-only layers from the image + that the container uses. These layers can be shared between containers. + + This field is omitted by default, and only set when size is requested + in the API request. type: "integer" format: "int64" + x-nullable: true + example: "1653948416" Labels: description: "User-defined key/value metadata." type: "object" additionalProperties: type: "string" + example: + com.example.vendor: "Acme" + com.example.license: "GPL" + com.example.version: "1.0" State: - description: "The state of this container (e.g. `Exited`)" + description: | + The state of this container. type: "string" + enum: + - "created" + - "running" + - "paused" + - "restarting" + - "exited" + - "removing" + - "dead" + example: "running" Status: - description: "Additional human-readable status of this container (e.g. `Exit 0`)" + description: |- + Additional human-readable status of this container (e.g. `Exit 0`) type: "string" + example: "Up 4 days" HostConfig: type: "object" + description: |- + Summary of host-specific runtime information of the container. This + is a reduced set of information in the container's "HostConfig" as + available in the container "inspect" response. properties: NetworkMode: + description: |- + Networking mode (`host`, `none`, `container:`) or name of the + primary network the container is using. + + This field is primarily for backward compatibility. The container + can be connected to multiple networks for which information can be + found in the `NetworkSettings.Networks` field, which enumerates + settings per network. type: "string" + example: "mynetwork" Annotations: - description: "Arbitrary key-value metadata attached to container" + description: |- + Arbitrary key-value metadata attached to the container. type: "object" x-nullable: true additionalProperties: type: "string" + example: + io.kubernetes.docker.type: "container" + io.kubernetes.sandbox.id: "3befe639bed0fd6afdd65fd1fa84506756f59360ec4adc270b0fdac9be22b4d3" NetworkSettings: - description: "A summary of the container's network settings" + description: |- + Summary of the container's network settings type: "object" properties: Networks: type: "object" + description: |- + Summary of network-settings for each network the container is + attached to. additionalProperties: $ref: "#/definitions/EndpointSettings" Mounts: type: "array" + description: |- + List of mounts used by the container. items: $ref: "#/definitions/MountPoint" @@ -5258,6 +5673,618 @@ definitions: type: "string" example: [] + ContainerUpdateResponse: + type: "object" + title: "ContainerUpdateResponse" + x-go-name: "UpdateResponse" + description: |- + Response for a successful container-update. + properties: + Warnings: + type: "array" + description: |- + Warnings encountered when updating the container. + items: + type: "string" + example: ["Published ports are discarded when using host network mode"] + + ContainerStatsResponse: + description: | + Statistics sample for a container. + type: "object" + x-go-name: "StatsResponse" + title: "ContainerStatsResponse" + properties: + name: + description: "Name of the container" + type: "string" + x-nullable: true + example: "boring_wozniak" + id: + description: "ID of the container" + type: "string" + x-nullable: true + example: "ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743" + read: + description: | + Date and time at which this sample was collected. + The value is formatted as [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) + with nano-seconds. + type: "string" + format: "date-time" + example: "2025-01-16T13:55:22.165243637Z" + preread: + description: | + Date and time at which this first sample was collected. This field + is not propagated if the "one-shot" option is set. If the "one-shot" + option is set, this field may be omitted, empty, or set to a default + date (`0001-01-01T00:00:00Z`). + + The value is formatted as [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) + with nano-seconds. + type: "string" + format: "date-time" + example: "2025-01-16T13:55:21.160452595Z" + pids_stats: + $ref: "#/definitions/ContainerPidsStats" + blkio_stats: + $ref: "#/definitions/ContainerBlkioStats" + num_procs: + description: | + The number of processors on the system. + + This field is Windows-specific and always zero for Linux containers. + type: "integer" + format: "uint32" + example: 16 + storage_stats: + $ref: "#/definitions/ContainerStorageStats" + cpu_stats: + $ref: "#/definitions/ContainerCPUStats" + precpu_stats: + $ref: "#/definitions/ContainerCPUStats" + memory_stats: + $ref: "#/definitions/ContainerMemoryStats" + networks: + description: | + Network statistics for the container per interface. + + This field is omitted if the container has no networking enabled. + x-nullable: true + additionalProperties: + $ref: "#/definitions/ContainerNetworkStats" + example: + eth0: + rx_bytes: 5338 + rx_dropped: 0 + rx_errors: 0 + rx_packets: 36 + tx_bytes: 648 + tx_dropped: 0 + tx_errors: 0 + tx_packets: 8 + eth5: + rx_bytes: 4641 + rx_dropped: 0 + rx_errors: 0 + rx_packets: 26 + tx_bytes: 690 + tx_dropped: 0 + tx_errors: 0 + tx_packets: 9 + + ContainerBlkioStats: + description: | + BlkioStats stores all IO service stats for data read and write. + + This type is Linux-specific and holds many fields that are specific to cgroups v1. + On a cgroup v2 host, all fields other than `io_service_bytes_recursive` + are omitted or `null`. + + This type is only populated on Linux and omitted for Windows containers. + type: "object" + x-go-name: "BlkioStats" + x-nullable: true + properties: + io_service_bytes_recursive: + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_serviced_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_queue_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_service_time_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_wait_time_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_merged_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + io_time_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + sectors_recursive: + description: | + This field is only available when using Linux containers with + cgroups v1. It is omitted or `null` when using cgroups v2. + x-nullable: true + type: "array" + items: + $ref: "#/definitions/ContainerBlkioStatEntry" + example: + io_service_bytes_recursive: [ + {"major": 254, "minor": 0, "op": "read", "value": 7593984}, + {"major": 254, "minor": 0, "op": "write", "value": 100} + ] + io_serviced_recursive: null + io_queue_recursive: null + io_service_time_recursive: null + io_wait_time_recursive: null + io_merged_recursive: null + io_time_recursive: null + sectors_recursive: null + + ContainerBlkioStatEntry: + description: | + Blkio stats entry. + + This type is Linux-specific and omitted for Windows containers. + type: "object" + x-go-name: "BlkioStatEntry" + x-nullable: true + properties: + major: + type: "integer" + format: "uint64" + example: 254 + minor: + type: "integer" + format: "uint64" + example: 0 + op: + type: "string" + example: "read" + value: + type: "integer" + format: "uint64" + example: 7593984 + + ContainerCPUStats: + description: | + CPU related info of the container + type: "object" + x-go-name: "CPUStats" + x-nullable: true + properties: + cpu_usage: + $ref: "#/definitions/ContainerCPUUsage" + system_cpu_usage: + description: | + System Usage. + + This field is Linux-specific and omitted for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 5 + online_cpus: + description: | + Number of online CPUs. + + This field is Linux-specific and omitted for Windows containers. + type: "integer" + format: "uint32" + x-nullable: true + example: 5 + throttling_data: + $ref: "#/definitions/ContainerThrottlingData" + + ContainerCPUUsage: + description: | + All CPU stats aggregated since container inception. + type: "object" + x-go-name: "CPUUsage" + x-nullable: true + properties: + total_usage: + description: | + Total CPU time consumed in nanoseconds (Linux) or 100's of nanoseconds (Windows). + type: "integer" + format: "uint64" + example: 29912000 + percpu_usage: + description: | + Total CPU time (in nanoseconds) consumed per core (Linux). + + This field is Linux-specific when using cgroups v1. It is omitted + when using cgroups v2 and Windows containers. + type: "array" + x-nullable: true + items: + type: "integer" + format: "uint64" + example: 29912000 + + usage_in_kernelmode: + description: | + Time (in nanoseconds) spent by tasks of the cgroup in kernel mode (Linux), + or time spent (in 100's of nanoseconds) by all container processes in + kernel mode (Windows). + + Not populated for Windows containers using Hyper-V isolation. + type: "integer" + format: "uint64" + example: 21994000 + usage_in_usermode: + description: | + Time (in nanoseconds) spent by tasks of the cgroup in user mode (Linux), + or time spent (in 100's of nanoseconds) by all container processes in + kernel mode (Windows). + + Not populated for Windows containers using Hyper-V isolation. + type: "integer" + format: "uint64" + example: 7918000 + + ContainerPidsStats: + description: | + PidsStats contains Linux-specific stats of a container's process-IDs (PIDs). + + This type is Linux-specific and omitted for Windows containers. + type: "object" + x-go-name: "PidsStats" + x-nullable: true + properties: + current: + description: | + Current is the number of PIDs in the cgroup. + type: "integer" + format: "uint64" + x-nullable: true + example: 5 + limit: + description: | + Limit is the hard limit on the number of pids in the cgroup. + A "Limit" of 0 means that there is no limit. + type: "integer" + format: "uint64" + x-nullable: true + example: 18446744073709551615 + + ContainerThrottlingData: + description: | + CPU throttling stats of the container. + + This type is Linux-specific and omitted for Windows containers. + type: "object" + x-go-name: "ThrottlingData" + x-nullable: true + properties: + periods: + description: | + Number of periods with throttling active. + type: "integer" + format: "uint64" + example: 0 + throttled_periods: + description: | + Number of periods when the container hit its throttling limit. + type: "integer" + format: "uint64" + example: 0 + throttled_time: + description: | + Aggregated time (in nanoseconds) the container was throttled for. + type: "integer" + format: "uint64" + example: 0 + + ContainerMemoryStats: + description: | + Aggregates all memory stats since container inception on Linux. + Windows returns stats for commit and private working set only. + type: "object" + x-go-name: "MemoryStats" + properties: + usage: + description: | + Current `res_counter` usage for memory. + + This field is Linux-specific and omitted for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + max_usage: + description: | + Maximum usage ever recorded. + + This field is Linux-specific and only supported on cgroups v1. + It is omitted when using cgroups v2 and for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + stats: + description: | + All the stats exported via memory.stat. when using cgroups v2. + + This field is Linux-specific and omitted for Windows containers. + type: "object" + additionalProperties: + type: "integer" + format: "uint64" + x-nullable: true + example: + { + "active_anon": 1572864, + "active_file": 5115904, + "anon": 1572864, + "anon_thp": 0, + "file": 7626752, + "file_dirty": 0, + "file_mapped": 2723840, + "file_writeback": 0, + "inactive_anon": 0, + "inactive_file": 2510848, + "kernel_stack": 16384, + "pgactivate": 0, + "pgdeactivate": 0, + "pgfault": 2042, + "pglazyfree": 0, + "pglazyfreed": 0, + "pgmajfault": 45, + "pgrefill": 0, + "pgscan": 0, + "pgsteal": 0, + "shmem": 0, + "slab": 1180928, + "slab_reclaimable": 725576, + "slab_unreclaimable": 455352, + "sock": 0, + "thp_collapse_alloc": 0, + "thp_fault_alloc": 1, + "unevictable": 0, + "workingset_activate": 0, + "workingset_nodereclaim": 0, + "workingset_refault": 0 + } + failcnt: + description: | + Number of times memory usage hits limits. + + This field is Linux-specific and only supported on cgroups v1. + It is omitted when using cgroups v2 and for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + limit: + description: | + This field is Linux-specific and omitted for Windows containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 8217579520 + commitbytes: + description: | + Committed bytes. + + This field is Windows-specific and omitted for Linux containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + commitpeakbytes: + description: | + Peak committed bytes. + + This field is Windows-specific and omitted for Linux containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + privateworkingset: + description: | + Private working set. + + This field is Windows-specific and omitted for Linux containers. + type: "integer" + format: "uint64" + x-nullable: true + example: 0 + + ContainerNetworkStats: + description: | + Aggregates the network stats of one container + type: "object" + x-go-name: "NetworkStats" + x-nullable: true + properties: + rx_bytes: + description: | + Bytes received. Windows and Linux. + type: "integer" + format: "uint64" + example: 5338 + rx_packets: + description: | + Packets received. Windows and Linux. + type: "integer" + format: "uint64" + example: 36 + rx_errors: + description: | + Received errors. Not used on Windows. + + This field is Linux-specific and always zero for Windows containers. + type: "integer" + format: "uint64" + example: 0 + rx_dropped: + description: | + Incoming packets dropped. Windows and Linux. + type: "integer" + format: "uint64" + example: 0 + tx_bytes: + description: | + Bytes sent. Windows and Linux. + type: "integer" + format: "uint64" + example: 1200 + tx_packets: + description: | + Packets sent. Windows and Linux. + type: "integer" + format: "uint64" + example: 12 + tx_errors: + description: | + Sent errors. Not used on Windows. + + This field is Linux-specific and always zero for Windows containers. + type: "integer" + format: "uint64" + example: 0 + tx_dropped: + description: | + Outgoing packets dropped. Windows and Linux. + type: "integer" + format: "uint64" + example: 0 + endpoint_id: + description: | + Endpoint ID. Not used on Linux. + + This field is Windows-specific and omitted for Linux containers. + type: "string" + x-nullable: true + instance_id: + description: | + Instance ID. Not used on Linux. + + This field is Windows-specific and omitted for Linux containers. + type: "string" + x-nullable: true + + ContainerStorageStats: + description: | + StorageStats is the disk I/O stats for read/write on Windows. + + This type is Windows-specific and omitted for Linux containers. + type: "object" + x-go-name: "StorageStats" + x-nullable: true + properties: + read_count_normalized: + type: "integer" + format: "uint64" + x-nullable: true + example: 7593984 + read_size_bytes: + type: "integer" + format: "uint64" + x-nullable: true + example: 7593984 + write_count_normalized: + type: "integer" + format: "uint64" + x-nullable: true + example: 7593984 + write_size_bytes: + type: "integer" + format: "uint64" + x-nullable: true + example: 7593984 + + ContainerTopResponse: + type: "object" + x-go-name: "TopResponse" + title: "ContainerTopResponse" + description: |- + Container "top" response. + properties: + Titles: + description: "The ps column titles" + type: "array" + items: + type: "string" + example: + Titles: + - "UID" + - "PID" + - "PPID" + - "C" + - "STIME" + - "TTY" + - "TIME" + - "CMD" + Processes: + description: |- + Each process running in the container, where each process + is an array of values corresponding to the titles. + type: "array" + items: + type: "array" + items: + type: "string" + example: + Processes: + - + - "root" + - "13642" + - "882" + - "0" + - "17:03" + - "pts/0" + - "00:00:00" + - "/bin/bash" + - + - "root" + - "13735" + - "13642" + - "0" + - "17:06" + - "pts/0" + - "00:00:00" + - "sleep 10" + ContainerWaitResponse: description: "OK response to ContainerWait operation" type: "object" @@ -5507,13 +6534,28 @@ definitions: type: "boolean" example: true BridgeNfIptables: - description: "Indicates if `bridge-nf-call-iptables` is available on the host." + description: | + Indicates if `bridge-nf-call-iptables` is available on the host when + the daemon was started. + +


+ + > **Deprecated**: netfilter module is now loaded on-demand and no longer + > during daemon startup, making this field obsolete. This field is always + > `false` and will be removed in a API v1.49. type: "boolean" - example: true + example: false BridgeNfIp6tables: - description: "Indicates if `bridge-nf-call-ip6tables` is available on the host." + description: | + Indicates if `bridge-nf-call-ip6tables` is available on the host. + +


+ + > **Deprecated**: netfilter module is now loaded on-demand, and no longer + > during daemon startup, making this field obsolete. This field is always + > `false` and will be removed in a API v1.49. type: "boolean" - example: true + example: false Debug: description: | Indicates if the daemon is running in debug-mode / with debug-level @@ -5750,6 +6792,7 @@ definitions: - "default" - "hyperv" - "process" + - "" InitBinary: description: | Name and, optional, path of the `docker-init` binary. @@ -5942,55 +6985,27 @@ definitions: List of IP ranges to which nondistributable artifacts can be pushed, using the CIDR syntax [RFC 4632](https://tools.ietf.org/html/4632). - Some images (for example, Windows base images) contain artifacts - whose distribution is restricted by license. When these images are - pushed to a registry, restricted artifacts are not included. - - This configuration override this behavior, and enables the daemon to - push nondistributable artifacts to all registries whose resolved IP - address is within the subnet described by the CIDR syntax. - - This option is useful when pushing images containing - nondistributable artifacts to a registry on an air-gapped network so - hosts on that network can pull the images without connecting to - another server. - - > **Warning**: Nondistributable artifacts typically have restrictions - > on how and where they can be distributed and shared. Only use this - > feature to push artifacts to private registries and ensure that you - > are in compliance with any terms that cover redistributing - > nondistributable artifacts. +


+ > **Deprecated**: Pushing nondistributable artifacts is now always enabled + > and this field is always `null`. This field will be removed in a API v1.49. type: "array" items: type: "string" - example: ["::1/128", "127.0.0.0/8"] + example: [] AllowNondistributableArtifactsHostnames: description: | List of registry hostnames to which nondistributable artifacts can be pushed, using the format `[:]` or `[:]`. - Some images (for example, Windows base images) contain artifacts - whose distribution is restricted by license. When these images are - pushed to a registry, restricted artifacts are not included. +


- This configuration override this behavior for the specified - registries. - - This option is useful when pushing images containing - nondistributable artifacts to a registry on an air-gapped network so - hosts on that network can pull the images without connecting to - another server. - - > **Warning**: Nondistributable artifacts typically have restrictions - > on how and where they can be distributed and shared. Only use this - > feature to push artifacts to private registries and ensure that you - > are in compliance with any terms that cover redistributing - > nondistributable artifacts. + > **Deprecated**: Pushing nondistributable artifacts is now always enabled + > and this field is always `null`. This field will be removed in a API v1.49. type: "array" items: type: "string" - example: ["registry.internal.corp.example.com:3000", "[2001:db8:a0b:12f0::1]:443"] + example: [] InsecureRegistryCIDRs: description: | List of IP ranges of insecure registries, using the CIDR syntax @@ -5998,7 +7013,7 @@ definitions: accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from unknown CAs) communication. - By default, local registries (`127.0.0.0/8`) are configured as + By default, local registries (`::1/128` and `127.0.0.0/8`) are configured as insecure. All other registries are secure. Communicating with an insecure registry is not possible if the daemon assumes that registry is secure. @@ -6163,6 +7178,8 @@ definitions: Expected: description: | Commit ID of external tool expected by dockerd as set at build time. + + **Deprecated**: This field is deprecated and will be omitted in a API v1.49. type: "string" example: "2d41c047c83e09a6d61d464906feb2a2f3c52aa4" @@ -6333,7 +7350,7 @@ definitions: description: | The media type of the object this schema refers to. type: "string" - example: "application/vnd.docker.distribution.manifest.v2+json" + example: "application/vnd.oci.image.manifest.v1+json" digest: description: | The digest of the targeted content. @@ -6344,27 +7361,52 @@ definitions: The size in bytes of the blob. type: "integer" format: "int64" - example: 3987495 - # TODO Not yet including these fields for now, as they are nil / omitted in our response. - # urls: - # description: | - # List of URLs from which this object MAY be downloaded. - # type: "array" - # items: - # type: "string" - # format: "uri" - # annotations: - # description: | - # Arbitrary metadata relating to the targeted content. - # type: "object" - # additionalProperties: - # type: "string" - # platform: - # $ref: "#/definitions/OCIPlatform" + example: 424 + urls: + description: |- + List of URLs from which this object MAY be downloaded. + type: "array" + items: + type: "string" + format: "uri" + x-nullable: true + annotations: + description: |- + Arbitrary metadata relating to the targeted content. + type: "object" + x-nullable: true + additionalProperties: + type: "string" + example: + "com.docker.official-images.bashbrew.arch": "amd64" + "org.opencontainers.image.base.digest": "sha256:0d0ef5c914d3ea700147da1bd050c59edb8bb12ca312f3800b29d7c8087eabd8" + "org.opencontainers.image.base.name": "scratch" + "org.opencontainers.image.created": "2025-01-27T00:00:00Z" + "org.opencontainers.image.revision": "9fabb4bad5138435b01857e2fe9363e2dc5f6a79" + "org.opencontainers.image.source": "https://git.launchpad.net/cloud-images/+oci/ubuntu-base" + "org.opencontainers.image.url": "https://hub.docker.com/_/ubuntu" + "org.opencontainers.image.version": "24.04" + data: + type: string + x-nullable: true + description: |- + Data is an embedding of the targeted content. This is encoded as a base64 + string when marshalled to JSON (automatically, by encoding/json). If + present, Data can be used directly to avoid fetching the targeted content. + example: null + platform: + $ref: "#/definitions/OCIPlatform" + artifactType: + description: |- + ArtifactType is the IANA media type of this artifact. + type: "string" + x-nullable: true + example: null OCIPlatform: type: "object" x-go-name: Platform + x-nullable: true description: | Describes the platform which the image in the manifest runs on, as defined in the [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md). @@ -6834,143 +7876,6 @@ paths: type: "array" items: $ref: "#/definitions/ContainerSummary" - examples: - application/json: - - Id: "8dfafdbc3a40" - Names: - - "/boring_feynman" - Image: "ubuntu:latest" - ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82" - Command: "echo 1" - Created: 1367854155 - State: "Exited" - Status: "Exit 0" - Ports: - - PrivatePort: 2222 - PublicPort: 3333 - Type: "tcp" - Labels: - com.example.vendor: "Acme" - com.example.license: "GPL" - com.example.version: "1.0" - SizeRw: 12288 - SizeRootFs: 0 - HostConfig: - NetworkMode: "default" - Annotations: - io.kubernetes.docker.type: "container" - NetworkSettings: - Networks: - bridge: - NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" - EndpointID: "2cdc4edb1ded3631c81f57966563e5c8525b81121bb3706a9a9a3ae102711f3f" - Gateway: "172.17.0.1" - IPAddress: "172.17.0.2" - IPPrefixLen: 16 - IPv6Gateway: "" - GlobalIPv6Address: "" - GlobalIPv6PrefixLen: 0 - MacAddress: "02:42:ac:11:00:02" - Mounts: - - Name: "fac362...80535" - Source: "/data" - Destination: "/data" - Driver: "local" - Mode: "ro,Z" - RW: false - Propagation: "" - - Id: "9cd87474be90" - Names: - - "/coolName" - Image: "ubuntu:latest" - ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82" - Command: "echo 222222" - Created: 1367854155 - State: "Exited" - Status: "Exit 0" - Ports: [] - Labels: {} - SizeRw: 12288 - SizeRootFs: 0 - HostConfig: - NetworkMode: "default" - Annotations: - io.kubernetes.docker.type: "container" - io.kubernetes.sandbox.id: "3befe639bed0fd6afdd65fd1fa84506756f59360ec4adc270b0fdac9be22b4d3" - NetworkSettings: - Networks: - bridge: - NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" - EndpointID: "88eaed7b37b38c2a3f0c4bc796494fdf51b270c2d22656412a2ca5d559a64d7a" - Gateway: "172.17.0.1" - IPAddress: "172.17.0.8" - IPPrefixLen: 16 - IPv6Gateway: "" - GlobalIPv6Address: "" - GlobalIPv6PrefixLen: 0 - MacAddress: "02:42:ac:11:00:08" - Mounts: [] - - Id: "3176a2479c92" - Names: - - "/sleepy_dog" - Image: "ubuntu:latest" - ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82" - Command: "echo 3333333333333333" - Created: 1367854154 - State: "Exited" - Status: "Exit 0" - Ports: [] - Labels: {} - SizeRw: 12288 - SizeRootFs: 0 - HostConfig: - NetworkMode: "default" - Annotations: - io.kubernetes.image.id: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82" - io.kubernetes.image.name: "ubuntu:latest" - NetworkSettings: - Networks: - bridge: - NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" - EndpointID: "8b27c041c30326d59cd6e6f510d4f8d1d570a228466f956edf7815508f78e30d" - Gateway: "172.17.0.1" - IPAddress: "172.17.0.6" - IPPrefixLen: 16 - IPv6Gateway: "" - GlobalIPv6Address: "" - GlobalIPv6PrefixLen: 0 - MacAddress: "02:42:ac:11:00:06" - Mounts: [] - - Id: "4cb07b47f9fb" - Names: - - "/running_cat" - Image: "ubuntu:latest" - ImageID: "d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82" - Command: "echo 444444444444444444444444444444444" - Created: 1367854152 - State: "Exited" - Status: "Exit 0" - Ports: [] - Labels: {} - SizeRw: 12288 - SizeRootFs: 0 - HostConfig: - NetworkMode: "default" - Annotations: - io.kubernetes.config.source: "api" - NetworkSettings: - Networks: - bridge: - NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" - EndpointID: "d91c7b2f0644403d7ef3095985ea0e2370325cd2332ff3a3225c4247328e66e9" - Gateway: "172.17.0.1" - IPAddress: "172.17.0.5" - IPPrefixLen: 16 - IPv6Gateway: "" - GlobalIPv6Address: "" - GlobalIPv6PrefixLen: 0 - MacAddress: "02:42:ac:11:00:05" - Mounts: [] 400: description: "bad parameter" schema: @@ -7195,238 +8100,7 @@ paths: 200: description: "no error" schema: - type: "object" - title: "ContainerInspectResponse" - properties: - Id: - description: "The ID of the container" - type: "string" - Created: - description: "The time the container was created" - type: "string" - Path: - description: "The path to the command being run" - type: "string" - Args: - description: "The arguments to the command being run" - type: "array" - items: - type: "string" - State: - $ref: "#/definitions/ContainerState" - Image: - description: "The container's image ID" - type: "string" - ResolvConfPath: - type: "string" - HostnamePath: - type: "string" - HostsPath: - type: "string" - LogPath: - type: "string" - Name: - type: "string" - RestartCount: - type: "integer" - Driver: - type: "string" - Platform: - type: "string" - MountLabel: - type: "string" - ProcessLabel: - type: "string" - AppArmorProfile: - type: "string" - ExecIDs: - description: "IDs of exec instances that are running in the container." - type: "array" - items: - type: "string" - x-nullable: true - HostConfig: - $ref: "#/definitions/HostConfig" - GraphDriver: - $ref: "#/definitions/GraphDriverData" - SizeRw: - description: | - The size of files that have been created or changed by this - container. - type: "integer" - format: "int64" - SizeRootFs: - description: "The total size of all the files in this container." - type: "integer" - format: "int64" - Mounts: - type: "array" - items: - $ref: "#/definitions/MountPoint" - Config: - $ref: "#/definitions/ContainerConfig" - NetworkSettings: - $ref: "#/definitions/NetworkSettings" - examples: - application/json: - AppArmorProfile: "" - Args: - - "-c" - - "exit 9" - Config: - AttachStderr: true - AttachStdin: false - AttachStdout: true - Cmd: - - "/bin/sh" - - "-c" - - "exit 9" - Domainname: "" - Env: - - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" - Healthcheck: - Test: ["CMD-SHELL", "exit 0"] - Hostname: "ba033ac44011" - Image: "ubuntu" - Labels: - com.example.vendor: "Acme" - com.example.license: "GPL" - com.example.version: "1.0" - MacAddress: "" - NetworkDisabled: false - OpenStdin: false - StdinOnce: false - Tty: false - User: "" - Volumes: - /volumes/data: {} - WorkingDir: "" - StopSignal: "SIGTERM" - StopTimeout: 10 - Created: "2015-01-06T15:47:31.485331387Z" - Driver: "overlay2" - ExecIDs: - - "b35395de42bc8abd327f9dd65d913b9ba28c74d2f0734eeeae84fa1c616a0fca" - - "3fc1232e5cd20c8de182ed81178503dc6437f4e7ef12b52cc5e8de020652f1c4" - HostConfig: - MaximumIOps: 0 - MaximumIOBps: 0 - BlkioWeight: 0 - BlkioWeightDevice: - - {} - BlkioDeviceReadBps: - - {} - BlkioDeviceWriteBps: - - {} - BlkioDeviceReadIOps: - - {} - BlkioDeviceWriteIOps: - - {} - ContainerIDFile: "" - CpusetCpus: "" - CpusetMems: "" - CpuPercent: 80 - CpuShares: 0 - CpuPeriod: 100000 - CpuRealtimePeriod: 1000000 - CpuRealtimeRuntime: 10000 - Devices: [] - DeviceRequests: - - Driver: "nvidia" - Count: -1 - DeviceIDs": ["0", "1", "GPU-fef8089b-4820-abfc-e83e-94318197576e"] - Capabilities: [["gpu", "nvidia", "compute"]] - Options: - property1: "string" - property2: "string" - IpcMode: "" - Memory: 0 - MemorySwap: 0 - MemoryReservation: 0 - OomKillDisable: false - OomScoreAdj: 500 - NetworkMode: "bridge" - PidMode: "" - PortBindings: {} - Privileged: false - ReadonlyRootfs: false - PublishAllPorts: false - RestartPolicy: - MaximumRetryCount: 2 - Name: "on-failure" - LogConfig: - Type: "json-file" - Sysctls: - net.ipv4.ip_forward: "1" - Ulimits: - - {} - VolumeDriver: "" - ShmSize: 67108864 - HostnamePath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hostname" - HostsPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hosts" - LogPath: "/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b-json.log" - Id: "ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39" - Image: "04c5d3b7b0656168630d3ba35d8889bd0e9caafcaeb3004d2bfbc47e7c5d35d2" - MountLabel: "" - Name: "/boring_euclid" - NetworkSettings: - Bridge: "" - SandboxID: "" - HairpinMode: false - LinkLocalIPv6Address: "" - LinkLocalIPv6PrefixLen: 0 - SandboxKey: "" - EndpointID: "" - Gateway: "" - GlobalIPv6Address: "" - GlobalIPv6PrefixLen: 0 - IPAddress: "" - IPPrefixLen: 0 - IPv6Gateway: "" - MacAddress: "" - Networks: - bridge: - NetworkID: "7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812" - EndpointID: "7587b82f0dada3656fda26588aee72630c6fab1536d36e394b2bfbcf898c971d" - Gateway: "172.17.0.1" - IPAddress: "172.17.0.2" - IPPrefixLen: 16 - IPv6Gateway: "" - GlobalIPv6Address: "" - GlobalIPv6PrefixLen: 0 - MacAddress: "02:42:ac:12:00:02" - Path: "/bin/sh" - ProcessLabel: "" - ResolvConfPath: "/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/resolv.conf" - RestartCount: 1 - State: - Error: "" - ExitCode: 9 - FinishedAt: "2015-01-06T15:47:32.080254511Z" - Health: - Status: "healthy" - FailingStreak: 0 - Log: - - Start: "2019-12-22T10:59:05.6385933Z" - End: "2019-12-22T10:59:05.8078452Z" - ExitCode: 0 - Output: "" - OOMKilled: false - Dead: false - Paused: false - Pid: 0 - Restarting: false - Running: true - StartedAt: "2015-01-06T15:47:32.072697474Z" - Status: "running" - Mounts: - - Name: "fac362...80535" - Source: "/data" - Destination: "/data" - Driver: "local" - Mode: "ro,Z" - RW: false - Propagation: "" + $ref: "#/definitions/ContainerInspectResponse" 404: description: "no such container" schema: @@ -7461,54 +8135,7 @@ paths: 200: description: "no error" schema: - type: "object" - title: "ContainerTopResponse" - description: "OK response to ContainerTop operation" - properties: - Titles: - description: "The ps column titles" - type: "array" - items: - type: "string" - Processes: - description: | - Each process running in the container, where each is process - is an array of values corresponding to the titles. - type: "array" - items: - type: "array" - items: - type: "string" - examples: - application/json: - Titles: - - "UID" - - "PID" - - "PPID" - - "C" - - "STIME" - - "TTY" - - "TIME" - - "CMD" - Processes: - - - - "root" - - "13642" - - "882" - - "0" - - "17:03" - - "pts/0" - - "00:00:00" - - "/bin/bash" - - - - "root" - - "13735" - - "13642" - - "0" - - "17:06" - - "pts/0" - - "00:00:00" - - "sleep 10" + $ref: "#/definitions/ContainerTopResponse" 404: description: "no such container" schema: @@ -7718,99 +8345,7 @@ paths: 200: description: "no error" schema: - type: "object" - examples: - application/json: - read: "2015-01-08T22:57:31.547920715Z" - pids_stats: - current: 3 - networks: - eth0: - rx_bytes: 5338 - rx_dropped: 0 - rx_errors: 0 - rx_packets: 36 - tx_bytes: 648 - tx_dropped: 0 - tx_errors: 0 - tx_packets: 8 - eth5: - rx_bytes: 4641 - rx_dropped: 0 - rx_errors: 0 - rx_packets: 26 - tx_bytes: 690 - tx_dropped: 0 - tx_errors: 0 - tx_packets: 9 - memory_stats: - stats: - total_pgmajfault: 0 - cache: 0 - mapped_file: 0 - total_inactive_file: 0 - pgpgout: 414 - rss: 6537216 - total_mapped_file: 0 - writeback: 0 - unevictable: 0 - pgpgin: 477 - total_unevictable: 0 - pgmajfault: 0 - total_rss: 6537216 - total_rss_huge: 6291456 - total_writeback: 0 - total_inactive_anon: 0 - rss_huge: 6291456 - hierarchical_memory_limit: 67108864 - total_pgfault: 964 - total_active_file: 0 - active_anon: 6537216 - total_active_anon: 6537216 - total_pgpgout: 414 - total_cache: 0 - inactive_anon: 0 - active_file: 0 - pgfault: 964 - inactive_file: 0 - total_pgpgin: 477 - max_usage: 6651904 - usage: 6537216 - failcnt: 0 - limit: 67108864 - blkio_stats: {} - cpu_stats: - cpu_usage: - percpu_usage: - - 8646879 - - 24472255 - - 36438778 - - 30657443 - usage_in_usermode: 50000000 - total_usage: 100215355 - usage_in_kernelmode: 30000000 - system_cpu_usage: 739306590000000 - online_cpus: 4 - throttling_data: - periods: 0 - throttled_periods: 0 - throttled_time: 0 - precpu_stats: - cpu_usage: - percpu_usage: - - 8646879 - - 24350896 - - 36438778 - - 30657443 - usage_in_usermode: 50000000 - total_usage: 100093996 - usage_in_kernelmode: 30000000 - system_cpu_usage: 9492140000000 - online_cpus: 4 - throttling_data: - periods: 0 - throttled_periods: 0 - throttled_time: 0 + $ref: "#/definitions/ContainerStatsResponse" 404: description: "no such container" schema: @@ -8041,14 +8576,7 @@ paths: 200: description: "The container has been updated." schema: - type: "object" - title: "ContainerUpdateResponse" - description: "OK response to ContainerUpdate operation" - properties: - Warnings: - type: "array" - items: - type: "string" + $ref: "#/definitions/ContainerUpdateResponse" 404: description: "no such container" schema: @@ -8955,10 +9483,29 @@ paths: operationId: "BuildPrune" parameters: - name: "keep-storage" + in: "query" + description: | + Amount of disk space in bytes to keep for cache + + > **Deprecated**: This parameter is deprecated and has been renamed to "reserved-space". + > It is kept for backward compatibility and will be removed in API v1.49. + type: "integer" + format: "int64" + - name: "reserved-space" in: "query" description: "Amount of disk space in bytes to keep for cache" type: "integer" format: "int64" + - name: "max-used-space" + in: "query" + description: "Maximum amount of disk space allowed to keep for cache" + type: "integer" + format: "int64" + - name: "min-free-space" + in: "query" + description: "Target amount of free disk space after pruning" + type: "integer" + format: "int64" - name: "all" in: "query" type: "boolean" @@ -9025,7 +9572,13 @@ paths: parameters: - name: "fromImage" in: "query" - description: "Name of the image to pull. The name may include a tag or digest. This parameter may only be used when pulling an image. The pull is cancelled if the HTTP connection is closed." + description: | + Name of the image to pull. If the name includes a tag or digest, specific behavior applies: + + - If only `fromImage` includes a tag, that tag is used. + - If both `fromImage` and `tag` are provided, `tag` takes precedence. + - If `fromImage` includes a digest, the image is pulled by digest, and `tag` is ignored. + - If neither a tag nor digest is specified, all tags are pulled. type: "string" - name: "fromSrc" in: "query" @@ -9119,6 +9672,12 @@ paths: description: "Image name or id" type: "string" required: true + - name: "manifests" + in: "query" + description: "Include Manifests in the image summary." + type: "boolean" + default: false + required: false tags: ["Image"] /images/{name}/history: get: @@ -9197,6 +9756,20 @@ paths: description: "Image name or ID" type: "string" required: true + - name: "platform" + type: "string" + in: "query" + description: | + JSON-encoded OCI platform to select the platform-variant. + If omitted, it defaults to any locally available platform, + prioritizing the daemon's host platform. + + If the daemon provides a multi-platform image store, this selects + the platform-variant to show the history for. If the image is + a single-platform image, or if the multi-platform image does not + provide a variant matching the given platform, an error is returned. + + Example: `{"os": "linux", "architecture": "arm", "variant": "v5"}` tags: ["Image"] /images/{name}/push: post: @@ -9656,7 +10229,7 @@ paths: 201: description: "no error" schema: - $ref: "#/definitions/IdResponse" + $ref: "#/definitions/IDResponse" 404: description: "no such container" schema: @@ -9950,7 +10523,16 @@ paths: description: "Image name or ID" type: "string" required: true - tags: ["Image"] + - name: "platform" + type: "string" + in: "query" + description: | + JSON encoded OCI platform describing a platform which will be used + to select a platform-specific image to be saved if the image is + multi-platform. + If not provided, the full multi-platform image will be saved. + + Example: `{"os": "linux", "architecture": "arm", "variant": "v5"}` /images/get: get: summary: "Export several images" @@ -10017,6 +10599,16 @@ paths: description: "Suppress progress details during load." type: "boolean" default: false + - name: "platform" + type: "string" + in: "query" + description: | + JSON encoded OCI platform describing a platform which will be used + to select a platform-specific image to be load if the image is + multi-platform. + If not provided, the full multi-platform image will be loaded. + + Example: `{"os": "linux", "architecture": "arm", "variant": "v5"}` tags: ["Image"] /containers/{id}/exec: post: @@ -10031,7 +10623,7 @@ paths: 201: description: "no error" schema: - $ref: "#/definitions/IdResponse" + $ref: "#/definitions/IDResponse" 404: description: "no such container" schema: @@ -10073,6 +10665,7 @@ paths: items: type: "integer" minimum: 0 + example: [80, 64] DetachKeys: type: "string" description: | @@ -10159,9 +10752,11 @@ paths: Detach: type: "boolean" description: "Detach from the command." + example: false Tty: type: "boolean" description: "Allocate a pseudo-TTY." + example: true ConsoleSize: type: "array" description: "Initial console size, as an `[height, width]` array." @@ -10171,10 +10766,7 @@ paths: items: type: "integer" minimum: 0 - example: - Detach: false - Tty: true - ConsoleSize: [80, 64] + example: [80, 64] - name: "id" in: "path" description: "Exec instance ID" @@ -10530,6 +11122,7 @@ paths: Created: "2016-10-19T06:21:00.416543526Z" Scope: "local" Driver: "bridge" + EnableIPv4: true EnableIPv6: false Internal: false Attachable: false @@ -10551,6 +11144,7 @@ paths: Created: "0001-01-01T00:00:00Z" Scope: "local" Driver: "null" + EnableIPv4: false EnableIPv6: false Internal: false Attachable: false @@ -10565,6 +11159,7 @@ paths: Created: "0001-01-01T00:00:00Z" Scope: "local" Driver: "host" + EnableIPv4: false EnableIPv6: false Internal: false Attachable: false @@ -10750,6 +11345,10 @@ paths: IPAM: description: "Optional custom IP scheme for the network." $ref: "#/definitions/IPAM" + EnableIPv4: + description: "Enable IPv4 on the network." + type: "boolean" + example: true EnableIPv6: description: "Enable IPv6 on the network." type: "boolean" @@ -10827,6 +11426,7 @@ paths: IPv4Address: "172.24.56.89" IPv6Address: "2001:db8::5689" MacAddress: "02:42:ac:12:05:02" + Priority: 100 tags: ["Network"] /networks/{id}/disconnect: @@ -11632,6 +12232,7 @@ paths: example: ListenAddr: "0.0.0.0:2377" AdvertiseAddr: "192.168.1.1:2377" + DataPathAddr: "192.168.1.1" RemoteAddrs: - "node1:2377" JoinToken: "SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2" @@ -12502,7 +13103,7 @@ paths: 201: description: "no error" schema: - $ref: "#/definitions/IdResponse" + $ref: "#/definitions/IDResponse" 409: description: "name conflicts with an existing object" schema: @@ -12709,7 +13310,7 @@ paths: 201: description: "no error" schema: - $ref: "#/definitions/IdResponse" + $ref: "#/definitions/IDResponse" 409: description: "name conflicts with an existing object" schema: diff --git a/vendor/github.com/docker/docker/api/types/client.go b/vendor/github.com/docker/docker/api/types/client.go index df791f02..dce8260f 100644 --- a/vendor/github.com/docker/docker/api/types/client.go +++ b/vendor/github.com/docker/docker/api/types/client.go @@ -11,7 +11,7 @@ import ( "github.com/docker/docker/api/types/registry" ) -// NewHijackedResponse intializes a HijackedResponse type +// NewHijackedResponse initializes a [HijackedResponse] type. func NewHijackedResponse(conn net.Conn, mediaType string) HijackedResponse { return HijackedResponse{Conn: conn, Reader: bufio.NewReader(conn), mediaType: mediaType} } @@ -129,14 +129,6 @@ type ImageBuildResponse struct { OSType string } -// RequestPrivilegeFunc is a function interface that -// clients can supply to retry operations after -// getting an authorization error. -// This function returns the registry authentication -// header value in base 64 format, or an error -// if the privilege request fails. -type RequestPrivilegeFunc func(context.Context) (string, error) - // NodeListOptions holds parameters to list nodes with. type NodeListOptions struct { Filters filters.Args @@ -235,11 +227,18 @@ type PluginDisableOptions struct { // PluginInstallOptions holds parameters to install a plugin. type PluginInstallOptions struct { - Disabled bool - AcceptAllPermissions bool - RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry - RemoteRef string // RemoteRef is the plugin name on the registry - PrivilegeFunc RequestPrivilegeFunc + Disabled bool + AcceptAllPermissions bool + RegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry + RemoteRef string // RemoteRef is the plugin name on the registry + + // PrivilegeFunc is a function that clients can supply to retry operations + // after getting an authorization error. This function returns the registry + // authentication header value in base64 encoded format, or an error if the + // privilege request fails. + // + // For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig]. + PrivilegeFunc func(context.Context) (string, error) AcceptPermissionsFunc func(context.Context, PluginPrivileges) (bool, error) Args []string } diff --git a/vendor/github.com/docker/docker/api/types/id_response.go b/vendor/github.com/docker/docker/api/types/common/id_response.go similarity index 87% rename from vendor/github.com/docker/docker/api/types/id_response.go rename to vendor/github.com/docker/docker/api/types/common/id_response.go index 7592d2f8..22e8c60a 100644 --- a/vendor/github.com/docker/docker/api/types/id_response.go +++ b/vendor/github.com/docker/docker/api/types/common/id_response.go @@ -1,10 +1,10 @@ -package types +package common // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command // IDResponse Response to an API call that returns just an Id -// swagger:model IdResponse +// swagger:model IDResponse type IDResponse struct { // The id of the newly created object. diff --git a/vendor/github.com/docker/docker/api/types/container/commit.go b/vendor/github.com/docker/docker/api/types/container/commit.go new file mode 100644 index 00000000..6fd1b0ea --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/commit.go @@ -0,0 +1,7 @@ +package container + +import "github.com/docker/docker/api/types/common" + +// CommitResponse response for the commit API call, containing the ID of the +// image that was produced. +type CommitResponse = common.IDResponse diff --git a/vendor/github.com/docker/docker/api/types/container/container.go b/vendor/github.com/docker/docker/api/types/container/container.go index 711af12c..65fabbf4 100644 --- a/vendor/github.com/docker/docker/api/types/container/container.go +++ b/vendor/github.com/docker/docker/api/types/container/container.go @@ -4,8 +4,22 @@ import ( "io" "os" "time" + + "github.com/docker/docker/api/types/mount" + "github.com/docker/docker/api/types/storage" + ocispec "github.com/opencontainers/image-spec/specs-go/v1" ) +// ContainerUpdateOKBody OK response to ContainerUpdate operation +// +// Deprecated: use [UpdateResponse]. This alias will be removed in the next release. +type ContainerUpdateOKBody = UpdateResponse + +// ContainerTopOKBody OK response to ContainerTop operation +// +// Deprecated: use [TopResponse]. This alias will be removed in the next release. +type ContainerTopOKBody = TopResponse + // PruneReport contains the response for Engine API: // POST "/containers/prune" type PruneReport struct { @@ -42,3 +56,133 @@ type StatsResponseReader struct { Body io.ReadCloser `json:"body"` OSType string `json:"ostype"` } + +// MountPoint represents a mount point configuration inside the container. +// This is used for reporting the mountpoints in use by a container. +type MountPoint struct { + // Type is the type of mount, see `Type` definitions in + // github.com/docker/docker/api/types/mount.Type + Type mount.Type `json:",omitempty"` + + // Name is the name reference to the underlying data defined by `Source` + // e.g., the volume name. + Name string `json:",omitempty"` + + // Source is the source location of the mount. + // + // For volumes, this contains the storage location of the volume (within + // `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains + // the source (host) part of the bind-mount. For `tmpfs` mount points, this + // field is empty. + Source string + + // Destination is the path relative to the container root (`/`) where the + // Source is mounted inside the container. + Destination string + + // Driver is the volume driver used to create the volume (if it is a volume). + Driver string `json:",omitempty"` + + // Mode is a comma separated list of options supplied by the user when + // creating the bind/volume mount. + // + // The default is platform-specific (`"z"` on Linux, empty on Windows). + Mode string + + // RW indicates whether the mount is mounted writable (read-write). + RW bool + + // Propagation describes how mounts are propagated from the host into the + // mount point, and vice-versa. Refer to the Linux kernel documentation + // for details: + // https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt + // + // This field is not used on Windows. + Propagation mount.Propagation +} + +// State stores container's running state +// it's part of ContainerJSONBase and returned by "inspect" command +type State struct { + Status string // String representation of the container state. Can be one of "created", "running", "paused", "restarting", "removing", "exited", or "dead" + Running bool + Paused bool + Restarting bool + OOMKilled bool + Dead bool + Pid int + ExitCode int + Error string + StartedAt string + FinishedAt string + Health *Health `json:",omitempty"` +} + +// Summary contains response of Engine API: +// GET "/containers/json" +type Summary struct { + ID string `json:"Id"` + Names []string + Image string + ImageID string + ImageManifestDescriptor *ocispec.Descriptor `json:"ImageManifestDescriptor,omitempty"` + Command string + Created int64 + Ports []Port + SizeRw int64 `json:",omitempty"` + SizeRootFs int64 `json:",omitempty"` + Labels map[string]string + State string + Status string + HostConfig struct { + NetworkMode string `json:",omitempty"` + Annotations map[string]string `json:",omitempty"` + } + NetworkSettings *NetworkSettingsSummary + Mounts []MountPoint +} + +// ContainerJSONBase contains response of Engine API GET "/containers/{name:.*}/json" +// for API version 1.18 and older. +// +// TODO(thaJeztah): combine ContainerJSONBase and InspectResponse into a single struct. +// The split between ContainerJSONBase (ContainerJSONBase) and InspectResponse (InspectResponse) +// was done in commit 6deaa58ba5f051039643cedceee97c8695e2af74 (https://github.com/moby/moby/pull/13675). +// ContainerJSONBase contained all fields for API < 1.19, and InspectResponse +// held fields that were added in API 1.19 and up. Given that the minimum +// supported API version is now 1.24, we no longer use the separate type. +type ContainerJSONBase struct { + ID string `json:"Id"` + Created string + Path string + Args []string + State *State + Image string + ResolvConfPath string + HostnamePath string + HostsPath string + LogPath string + Name string + RestartCount int + Driver string + Platform string + MountLabel string + ProcessLabel string + AppArmorProfile string + ExecIDs []string + HostConfig *HostConfig + GraphDriver storage.DriverData + SizeRw *int64 `json:",omitempty"` + SizeRootFs *int64 `json:",omitempty"` +} + +// InspectResponse is the response for the GET "/containers/{name:.*}/json" +// endpoint. +type InspectResponse struct { + *ContainerJSONBase + Mounts []MountPoint + Config *Config + NetworkSettings *NetworkSettings + // ImageManifestDescriptor is the descriptor of a platform-specific manifest of the image used to create the container. + ImageManifestDescriptor *ocispec.Descriptor `json:"ImageManifestDescriptor,omitempty"` +} diff --git a/vendor/github.com/docker/docker/api/types/container/container_top.go b/vendor/github.com/docker/docker/api/types/container/container_top.go deleted file mode 100644 index 63381da3..00000000 --- a/vendor/github.com/docker/docker/api/types/container/container_top.go +++ /dev/null @@ -1,22 +0,0 @@ -package container // import "github.com/docker/docker/api/types/container" - -// ---------------------------------------------------------------------------- -// Code generated by `swagger generate operation`. DO NOT EDIT. -// -// See hack/generate-swagger-api.sh -// ---------------------------------------------------------------------------- - -// ContainerTopOKBody OK response to ContainerTop operation -// swagger:model ContainerTopOKBody -type ContainerTopOKBody struct { - - // Each process running in the container, where each is process - // is an array of values corresponding to the titles. - // - // Required: true - Processes [][]string `json:"Processes"` - - // The ps column titles - // Required: true - Titles []string `json:"Titles"` -} diff --git a/vendor/github.com/docker/docker/api/types/container/container_update.go b/vendor/github.com/docker/docker/api/types/container/container_update.go deleted file mode 100644 index c10f175e..00000000 --- a/vendor/github.com/docker/docker/api/types/container/container_update.go +++ /dev/null @@ -1,16 +0,0 @@ -package container // import "github.com/docker/docker/api/types/container" - -// ---------------------------------------------------------------------------- -// Code generated by `swagger generate operation`. DO NOT EDIT. -// -// See hack/generate-swagger-api.sh -// ---------------------------------------------------------------------------- - -// ContainerUpdateOKBody OK response to ContainerUpdate operation -// swagger:model ContainerUpdateOKBody -type ContainerUpdateOKBody struct { - - // warnings - // Required: true - Warnings []string `json:"Warnings"` -} diff --git a/vendor/github.com/docker/docker/api/types/container/exec.go b/vendor/github.com/docker/docker/api/types/container/exec.go index 96093eb5..f4b22376 100644 --- a/vendor/github.com/docker/docker/api/types/container/exec.go +++ b/vendor/github.com/docker/docker/api/types/container/exec.go @@ -1,5 +1,13 @@ package container +import "github.com/docker/docker/api/types/common" + +// ExecCreateResponse is the response for a successful exec-create request. +// It holds the ID of the exec that was created. +// +// TODO(thaJeztah): make this a distinct type. +type ExecCreateResponse = common.IDResponse + // ExecOptions is a small subset of the Config struct that holds the configuration // for the exec feature of docker. type ExecOptions struct { diff --git a/vendor/github.com/docker/docker/api/types/container/health.go b/vendor/github.com/docker/docker/api/types/container/health.go new file mode 100644 index 00000000..93663746 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/health.go @@ -0,0 +1,26 @@ +package container + +import "time" + +// Health states +const ( + NoHealthcheck = "none" // Indicates there is no healthcheck + Starting = "starting" // Starting indicates that the container is not yet ready + Healthy = "healthy" // Healthy indicates that the container is running correctly + Unhealthy = "unhealthy" // Unhealthy indicates that the container has a problem +) + +// Health stores information about the container's healthcheck results +type Health struct { + Status string // Status is one of [Starting], [Healthy] or [Unhealthy]. + FailingStreak int // FailingStreak is the number of consecutive failures + Log []*HealthcheckResult // Log contains the last few results (oldest first) +} + +// HealthcheckResult stores information about a single run of a healthcheck probe +type HealthcheckResult struct { + Start time.Time // Start is the time this check started + End time.Time // End is the time this check ended + ExitCode int // ExitCode meanings: 0=healthy, 1=unhealthy, 2=reserved (considered unhealthy), else=error running probe + Output string // Output from last check +} diff --git a/vendor/github.com/docker/docker/api/types/container/hostconfig.go b/vendor/github.com/docker/docker/api/types/container/hostconfig.go index 03648fb7..83198305 100644 --- a/vendor/github.com/docker/docker/api/types/container/hostconfig.go +++ b/vendor/github.com/docker/docker/api/types/container/hostconfig.go @@ -10,7 +10,7 @@ import ( "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/strslice" "github.com/docker/go-connections/nat" - units "github.com/docker/go-units" + "github.com/docker/go-units" ) // CgroupnsMode represents the cgroup namespace mode of the container diff --git a/vendor/github.com/docker/docker/api/types/container/network_settings.go b/vendor/github.com/docker/docker/api/types/container/network_settings.go new file mode 100644 index 00000000..afec0e54 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/network_settings.go @@ -0,0 +1,56 @@ +package container + +import ( + "github.com/docker/docker/api/types/network" + "github.com/docker/go-connections/nat" +) + +// NetworkSettings exposes the network settings in the api +type NetworkSettings struct { + NetworkSettingsBase + DefaultNetworkSettings + Networks map[string]*network.EndpointSettings +} + +// NetworkSettingsBase holds networking state for a container when inspecting it. +type NetworkSettingsBase struct { + Bridge string // Bridge contains the name of the default bridge interface iff it was set through the daemon --bridge flag. + SandboxID string // SandboxID uniquely represents a container's network stack + SandboxKey string // SandboxKey identifies the sandbox + Ports nat.PortMap // Ports is a collection of PortBinding indexed by Port + + // HairpinMode specifies if hairpin NAT should be enabled on the virtual interface + // + // Deprecated: This field is never set and will be removed in a future release. + HairpinMode bool + // LinkLocalIPv6Address is an IPv6 unicast address using the link-local prefix + // + // Deprecated: This field is never set and will be removed in a future release. + LinkLocalIPv6Address string + // LinkLocalIPv6PrefixLen is the prefix length of an IPv6 unicast address + // + // Deprecated: This field is never set and will be removed in a future release. + LinkLocalIPv6PrefixLen int + SecondaryIPAddresses []network.Address // Deprecated: This field is never set and will be removed in a future release. + SecondaryIPv6Addresses []network.Address // Deprecated: This field is never set and will be removed in a future release. +} + +// DefaultNetworkSettings holds network information +// during the 2 release deprecation period. +// It will be removed in Docker 1.11. +type DefaultNetworkSettings struct { + EndpointID string // EndpointID uniquely represents a service endpoint in a Sandbox + Gateway string // Gateway holds the gateway address for the network + GlobalIPv6Address string // GlobalIPv6Address holds network's global IPv6 address + GlobalIPv6PrefixLen int // GlobalIPv6PrefixLen represents mask length of network's global IPv6 address + IPAddress string // IPAddress holds the IPv4 address for the network + IPPrefixLen int // IPPrefixLen represents mask length of network's IPv4 address + IPv6Gateway string // IPv6Gateway holds gateway address specific for IPv6 + MacAddress string // MacAddress holds the MAC address for the network +} + +// NetworkSettingsSummary provides a summary of container's networks +// in /containers/json +type NetworkSettingsSummary struct { + Networks map[string]*network.EndpointSettings +} diff --git a/vendor/github.com/docker/docker/api/types/port.go b/vendor/github.com/docker/docker/api/types/container/port.go similarity index 96% rename from vendor/github.com/docker/docker/api/types/port.go rename to vendor/github.com/docker/docker/api/types/container/port.go index d9123474..895043cf 100644 --- a/vendor/github.com/docker/docker/api/types/port.go +++ b/vendor/github.com/docker/docker/api/types/container/port.go @@ -1,4 +1,4 @@ -package types +package container // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command diff --git a/vendor/github.com/docker/docker/api/types/container/stats.go b/vendor/github.com/docker/docker/api/types/container/stats.go index 3b3fb131..3bfeb484 100644 --- a/vendor/github.com/docker/docker/api/types/container/stats.go +++ b/vendor/github.com/docker/docker/api/types/container/stats.go @@ -148,7 +148,15 @@ type PidsStats struct { } // Stats is Ultimate struct aggregating all types of stats of one container -type Stats struct { +// +// Deprecated: use [StatsResponse] instead. This type will be removed in the next release. +type Stats = StatsResponse + +// StatsResponse aggregates all types of stats of one container. +type StatsResponse struct { + Name string `json:"name,omitempty"` + ID string `json:"id,omitempty"` + // Common stats Read time.Time `json:"read"` PreRead time.Time `json:"preread"` @@ -162,20 +170,8 @@ type Stats struct { StorageStats StorageStats `json:"storage_stats,omitempty"` // Shared stats - CPUStats CPUStats `json:"cpu_stats,omitempty"` - PreCPUStats CPUStats `json:"precpu_stats,omitempty"` // "Pre"="Previous" - MemoryStats MemoryStats `json:"memory_stats,omitempty"` -} - -// StatsResponse is newly used Networks. -// -// TODO(thaJeztah): unify with [Stats]. This wrapper was to account for pre-api v1.21 changes, see https://github.com/moby/moby/commit/d3379946ec96fb6163cb8c4517d7d5a067045801 -type StatsResponse struct { - Stats - - Name string `json:"name,omitempty"` - ID string `json:"id,omitempty"` - - // Networks request version >=1.21 - Networks map[string]NetworkStats `json:"networks,omitempty"` + CPUStats CPUStats `json:"cpu_stats,omitempty"` + PreCPUStats CPUStats `json:"precpu_stats,omitempty"` // "Pre"="Previous" + MemoryStats MemoryStats `json:"memory_stats,omitempty"` + Networks map[string]NetworkStats `json:"networks,omitempty"` } diff --git a/vendor/github.com/docker/docker/api/types/container/top_response.go b/vendor/github.com/docker/docker/api/types/container/top_response.go new file mode 100644 index 00000000..b4bae5ef --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/top_response.go @@ -0,0 +1,18 @@ +package container + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +// TopResponse ContainerTopResponse +// +// Container "top" response. +// swagger:model TopResponse +type TopResponse struct { + + // Each process running in the container, where each process + // is an array of values corresponding to the titles. + Processes [][]string `json:"Processes"` + + // The ps column titles + Titles []string `json:"Titles"` +} diff --git a/vendor/github.com/docker/docker/api/types/container/update_response.go b/vendor/github.com/docker/docker/api/types/container/update_response.go new file mode 100644 index 00000000..e2b5bf5a --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/container/update_response.go @@ -0,0 +1,14 @@ +package container + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +// UpdateResponse ContainerUpdateResponse +// +// Response for a successful container-update. +// swagger:model UpdateResponse +type UpdateResponse struct { + + // Warnings encountered when updating the container. + Warnings []string `json:"Warnings"` +} diff --git a/vendor/github.com/docker/docker/api/types/filters/errors.go b/vendor/github.com/docker/docker/api/types/filters/errors.go index f52f6944..b8a690d6 100644 --- a/vendor/github.com/docker/docker/api/types/filters/errors.go +++ b/vendor/github.com/docker/docker/api/types/filters/errors.go @@ -22,16 +22,3 @@ func (e invalidFilter) Error() string { // InvalidParameter marks this error as ErrInvalidParameter func (e invalidFilter) InvalidParameter() {} - -// unreachableCode is an error indicating that the code path was not expected to be reached. -type unreachableCode struct { - Filter string - Value []string -} - -// System marks this error as ErrSystem -func (e unreachableCode) System() {} - -func (e unreachableCode) Error() string { - return fmt.Sprintf("unreachable code reached for filter: %q with values: %s", e.Filter, e.Value) -} diff --git a/vendor/github.com/docker/docker/api/types/filters/parse.go b/vendor/github.com/docker/docker/api/types/filters/parse.go index 0914b2a4..2085ff38 100644 --- a/vendor/github.com/docker/docker/api/types/filters/parse.go +++ b/vendor/github.com/docker/docker/api/types/filters/parse.go @@ -200,7 +200,6 @@ func (args Args) Match(field, source string) bool { // Error is not nil only if the filter values are not valid boolean or are conflicting. func (args Args) GetBoolOrDefault(key string, defaultValue bool) (bool, error) { fieldValues, ok := args.fields[key] - if !ok { return defaultValue, nil } @@ -211,20 +210,11 @@ func (args Args) GetBoolOrDefault(key string, defaultValue bool) (bool, error) { isFalse := fieldValues["0"] || fieldValues["false"] isTrue := fieldValues["1"] || fieldValues["true"] - - conflicting := isFalse && isTrue - invalid := !isFalse && !isTrue - - if conflicting || invalid { + if isFalse == isTrue { + // Either no or conflicting truthy/falsy value were provided return defaultValue, &invalidFilter{key, args.Get(key)} - } else if isFalse { - return false, nil - } else if isTrue { - return true, nil } - - // This code shouldn't be reached. - return defaultValue, &unreachableCode{Filter: key, Value: args.Get(key)} + return isTrue, nil } // ExactMatch returns true if the source matches exactly one of the values. diff --git a/vendor/github.com/docker/docker/api/types/image/image_inspect.go b/vendor/github.com/docker/docker/api/types/image/image_inspect.go new file mode 100644 index 00000000..78e81f05 --- /dev/null +++ b/vendor/github.com/docker/docker/api/types/image/image_inspect.go @@ -0,0 +1,140 @@ +package image + +import ( + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/storage" + ocispec "github.com/opencontainers/image-spec/specs-go/v1" +) + +// RootFS returns Image's RootFS description including the layer IDs. +type RootFS struct { + Type string `json:",omitempty"` + Layers []string `json:",omitempty"` +} + +// InspectResponse contains response of Engine API: +// GET "/images/{name:.*}/json" +type InspectResponse struct { + // ID is the content-addressable ID of an image. + // + // This identifier is a content-addressable digest calculated from the + // image's configuration (which includes the digests of layers used by + // the image). + // + // Note that this digest differs from the `RepoDigests` below, which + // holds digests of image manifests that reference the image. + ID string `json:"Id"` + + // RepoTags is a list of image names/tags in the local image cache that + // reference this image. + // + // Multiple image tags can refer to the same image, and this list may be + // empty if no tags reference the image, in which case the image is + // "untagged", in which case it can still be referenced by its ID. + RepoTags []string + + // RepoDigests is a list of content-addressable digests of locally available + // image manifests that the image is referenced from. Multiple manifests can + // refer to the same image. + // + // These digests are usually only available if the image was either pulled + // from a registry, or if the image was pushed to a registry, which is when + // the manifest is generated and its digest calculated. + RepoDigests []string + + // Parent is the ID of the parent image. + // + // Depending on how the image was created, this field may be empty and + // is only set for images that were built/created locally. This field + // is empty if the image was pulled from an image registry. + Parent string + + // Comment is an optional message that can be set when committing or + // importing the image. + Comment string + + // Created is the date and time at which the image was created, formatted in + // RFC 3339 nano-seconds (time.RFC3339Nano). + // + // This information is only available if present in the image, + // and omitted otherwise. + Created string `json:",omitempty"` + + // Container is the ID of the container that was used to create the image. + // + // Depending on how the image was created, this field may be empty. + // + // Deprecated: this field is omitted in API v1.45, but kept for backward compatibility. + Container string `json:",omitempty"` + + // ContainerConfig is an optional field containing the configuration of the + // container that was last committed when creating the image. + // + // Previous versions of Docker builder used this field to store build cache, + // and it is not in active use anymore. + // + // Deprecated: this field is omitted in API v1.45, but kept for backward compatibility. + ContainerConfig *container.Config `json:",omitempty"` + + // DockerVersion is the version of Docker that was used to build the image. + // + // Depending on how the image was created, this field may be empty. + DockerVersion string + + // Author is the name of the author that was specified when committing the + // image, or as specified through MAINTAINER (deprecated) in the Dockerfile. + Author string + Config *container.Config + + // Architecture is the hardware CPU architecture that the image runs on. + Architecture string + + // Variant is the CPU architecture variant (presently ARM-only). + Variant string `json:",omitempty"` + + // OS is the Operating System the image is built to run on. + Os string + + // OsVersion is the version of the Operating System the image is built to + // run on (especially for Windows). + OsVersion string `json:",omitempty"` + + // Size is the total size of the image including all layers it is composed of. + Size int64 + + // VirtualSize is the total size of the image including all layers it is + // composed of. + // + // Deprecated: this field is omitted in API v1.44, but kept for backward compatibility. Use Size instead. + VirtualSize int64 `json:"VirtualSize,omitempty"` + + // GraphDriver holds information about the storage driver used to store the + // container's and image's filesystem. + GraphDriver storage.DriverData + + // RootFS contains information about the image's RootFS, including the + // layer IDs. + RootFS RootFS + + // Metadata of the image in the local cache. + // + // This information is local to the daemon, and not part of the image itself. + Metadata Metadata + + // Descriptor is the OCI descriptor of the image target. + // It's only set if the daemon provides a multi-platform image store. + // + // WARNING: This is experimental and may change at any time without any backward + // compatibility. + Descriptor *ocispec.Descriptor `json:"Descriptor,omitempty"` + + // Manifests is a list of image manifests available in this image. It + // provides a more detailed view of the platform-specific image manifests or + // other image-attached data like build attestations. + // + // Only available if the daemon provides a multi-platform image store. + // + // WARNING: This is experimental and may change at any time without any backward + // compatibility. + Manifests []ManifestSummary `json:"Manifests,omitempty"` +} diff --git a/vendor/github.com/docker/docker/api/types/image/opts.go b/vendor/github.com/docker/docker/api/types/image/opts.go index 923ebe5a..919510fe 100644 --- a/vendor/github.com/docker/docker/api/types/image/opts.go +++ b/vendor/github.com/docker/docker/api/types/image/opts.go @@ -38,7 +38,7 @@ type PullOptions struct { // authentication header value in base64 encoded format, or an error if the // privilege request fails. // - // Also see [github.com/docker/docker/api/types.RequestPrivilegeFunc]. + // For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig]. PrivilegeFunc func(context.Context) (string, error) Platform string } @@ -53,7 +53,7 @@ type PushOptions struct { // authentication header value in base64 encoded format, or an error if the // privilege request fails. // - // Also see [github.com/docker/docker/api/types.RequestPrivilegeFunc]. + // For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig]. PrivilegeFunc func(context.Context) (string, error) // Platform is an optional field that selects a specific platform to push @@ -86,3 +86,31 @@ type RemoveOptions struct { Force bool PruneChildren bool } + +// HistoryOptions holds parameters to get image history. +type HistoryOptions struct { + // Platform from the manifest list to use for history. + Platform *ocispec.Platform +} + +// LoadOptions holds parameters to load images. +type LoadOptions struct { + // Quiet suppresses progress output + Quiet bool + + // Platforms selects the platforms to load if the image is a + // multi-platform image and has multiple variants. + Platforms []ocispec.Platform +} + +type InspectOptions struct { + // Manifests returns the image manifests. + Manifests bool +} + +// SaveOptions holds parameters to save images. +type SaveOptions struct { + // Platforms selects the platforms to save if the image is a + // multi-platform image and has multiple variants. + Platforms []ocispec.Platform +} diff --git a/vendor/github.com/docker/docker/api/types/image/summary.go b/vendor/github.com/docker/docker/api/types/image/summary.go index e87e216a..c5ae6ab9 100644 --- a/vendor/github.com/docker/docker/api/types/image/summary.go +++ b/vendor/github.com/docker/docker/api/types/image/summary.go @@ -1,5 +1,7 @@ package image +import ocispec "github.com/opencontainers/image-spec/specs-go/v1" + type Summary struct { // Number of containers using this image. Includes both stopped and running @@ -42,6 +44,13 @@ type Summary struct { // Required: true ParentID string `json:"ParentId"` + // Descriptor is the OCI descriptor of the image target. + // It's only set if the daemon provides a multi-platform image store. + // + // WARNING: This is experimental and may change at any time without any backward + // compatibility. + Descriptor *ocispec.Descriptor `json:"Descriptor,omitempty"` + // Manifests is a list of image manifests available in this image. It // provides a more detailed view of the platform-specific image manifests or // other image-attached data like build attestations. diff --git a/vendor/github.com/docker/docker/api/types/mount/mount.go b/vendor/github.com/docker/docker/api/types/mount/mount.go index c68dcf65..d98dbec9 100644 --- a/vendor/github.com/docker/docker/api/types/mount/mount.go +++ b/vendor/github.com/docker/docker/api/types/mount/mount.go @@ -19,6 +19,8 @@ const ( TypeNamedPipe Type = "npipe" // TypeCluster is the type for Swarm Cluster Volumes. TypeCluster Type = "cluster" + // TypeImage is the type for mounting another image's filesystem + TypeImage Type = "image" ) // Mount represents a mount (volume). @@ -34,6 +36,7 @@ type Mount struct { BindOptions *BindOptions `json:",omitempty"` VolumeOptions *VolumeOptions `json:",omitempty"` + ImageOptions *ImageOptions `json:",omitempty"` TmpfsOptions *TmpfsOptions `json:",omitempty"` ClusterOptions *ClusterOptions `json:",omitempty"` } @@ -100,6 +103,10 @@ type VolumeOptions struct { DriverConfig *Driver `json:",omitempty"` } +type ImageOptions struct { + Subpath string `json:",omitempty"` +} + // Driver represents a volume driver. type Driver struct { Name string `json:",omitempty"` diff --git a/vendor/github.com/docker/docker/api/types/network/endpoint.go b/vendor/github.com/docker/docker/api/types/network/endpoint.go index 0fbb40b3..167ac70a 100644 --- a/vendor/github.com/docker/docker/api/types/network/endpoint.go +++ b/vendor/github.com/docker/docker/api/types/network/endpoint.go @@ -19,6 +19,12 @@ type EndpointSettings struct { // generated address). MacAddress string DriverOpts map[string]string + + // GwPriority determines which endpoint will provide the default gateway + // for the container. The endpoint with the highest priority will be used. + // If multiple endpoints have the same priority, they are lexicographically + // sorted based on their network name, and the one that sorts first is picked. + GwPriority int // Operational data NetworkID string EndpointID string diff --git a/vendor/github.com/docker/docker/api/types/network/network.go b/vendor/github.com/docker/docker/api/types/network/network.go index c8db97a7..d34b8ab7 100644 --- a/vendor/github.com/docker/docker/api/types/network/network.go +++ b/vendor/github.com/docker/docker/api/types/network/network.go @@ -33,6 +33,7 @@ type CreateRequest struct { type CreateOptions struct { Driver string // Driver is the driver-name used to create the network (e.g. `bridge`, `overlay`) Scope string // Scope describes the level at which the network exists (e.g. `swarm` for cluster-wide or `local` for machine level). + EnableIPv4 *bool `json:",omitempty"` // EnableIPv4 represents whether to enable IPv4. EnableIPv6 *bool `json:",omitempty"` // EnableIPv6 represents whether to enable IPv6. IPAM *IPAM // IPAM is the network's IP Address Management. Internal bool // Internal represents if the network is used internal only. @@ -76,7 +77,8 @@ type Inspect struct { Created time.Time // Created is the time the network created Scope string // Scope describes the level at which the network exists (e.g. `swarm` for cluster-wide or `local` for machine level) Driver string // Driver is the Driver name used to create the network (e.g. `bridge`, `overlay`) - EnableIPv6 bool // EnableIPv6 represents whether to enable IPv6 + EnableIPv4 bool // EnableIPv4 represents whether IPv4 is enabled + EnableIPv6 bool // EnableIPv6 represents whether IPv6 is enabled IPAM IPAM // IPAM is the network's IP Address Management Internal bool // Internal represents if the network is used internal only Attachable bool // Attachable represents if the global scope is manually attachable by regular containers from workers in swarm mode. diff --git a/vendor/github.com/docker/docker/api/types/registry/authconfig.go b/vendor/github.com/docker/docker/api/types/registry/authconfig.go index 8e383f6e..ebd5e4b9 100644 --- a/vendor/github.com/docker/docker/api/types/registry/authconfig.go +++ b/vendor/github.com/docker/docker/api/types/registry/authconfig.go @@ -1,17 +1,29 @@ package registry // import "github.com/docker/docker/api/types/registry" import ( + "context" "encoding/base64" "encoding/json" + "fmt" "io" "strings" - - "github.com/pkg/errors" ) // AuthHeader is the name of the header used to send encoded registry // authorization credentials for registry operations (push/pull). const AuthHeader = "X-Registry-Auth" +// RequestAuthConfig is a function interface that clients can supply +// to retry operations after getting an authorization error. +// +// The function must return the [AuthHeader] value ([AuthConfig]), encoded +// in base64url format ([RFC4648, section 5]), which can be decoded by +// [DecodeAuthConfig]. +// +// It must return an error if the privilege request fails. +// +// [RFC4648, section 5]: https://tools.ietf.org/html/rfc4648#section-5 +type RequestAuthConfig func(context.Context) (string, error) + // AuthConfig contains authorization information for connecting to a Registry. type AuthConfig struct { Username string `json:"username,omitempty"` @@ -85,7 +97,7 @@ func decodeAuthConfigFromReader(rdr io.Reader) (*AuthConfig, error) { } func invalid(err error) error { - return errInvalidParameter{errors.Wrap(err, "invalid X-Registry-Auth header")} + return errInvalidParameter{fmt.Errorf("invalid X-Registry-Auth header: %w", err)} } type errInvalidParameter struct{ error } diff --git a/vendor/github.com/docker/docker/api/types/registry/registry.go b/vendor/github.com/docker/docker/api/types/registry/registry.go index 75ee07b1..b0a4d604 100644 --- a/vendor/github.com/docker/docker/api/types/registry/registry.go +++ b/vendor/github.com/docker/docker/api/types/registry/registry.go @@ -9,11 +9,29 @@ import ( // ServiceConfig stores daemon registry services configuration. type ServiceConfig struct { - AllowNondistributableArtifactsCIDRs []*NetIPNet - AllowNondistributableArtifactsHostnames []string - InsecureRegistryCIDRs []*NetIPNet `json:"InsecureRegistryCIDRs"` - IndexConfigs map[string]*IndexInfo `json:"IndexConfigs"` - Mirrors []string + AllowNondistributableArtifactsCIDRs []*NetIPNet `json:"AllowNondistributableArtifactsCIDRs,omitempty"` // Deprecated: non-distributable artifacts are deprecated and enabled by default. This field will be removed in the next release. + AllowNondistributableArtifactsHostnames []string `json:"AllowNondistributableArtifactsHostnames,omitempty"` // Deprecated: non-distributable artifacts are deprecated and enabled by default. This field will be removed in the next release. + + InsecureRegistryCIDRs []*NetIPNet `json:"InsecureRegistryCIDRs"` + IndexConfigs map[string]*IndexInfo `json:"IndexConfigs"` + Mirrors []string +} + +// MarshalJSON implements a custom marshaler to include legacy fields +// in API responses. +func (sc ServiceConfig) MarshalJSON() ([]byte, error) { + tmp := map[string]interface{}{ + "InsecureRegistryCIDRs": sc.InsecureRegistryCIDRs, + "IndexConfigs": sc.IndexConfigs, + "Mirrors": sc.Mirrors, + } + if sc.AllowNondistributableArtifactsCIDRs != nil { + tmp["AllowNondistributableArtifactsCIDRs"] = nil + } + if sc.AllowNondistributableArtifactsHostnames != nil { + tmp["AllowNondistributableArtifactsHostnames"] = nil + } + return json.Marshal(tmp) } // NetIPNet is the net.IPNet type, which can be marshalled and diff --git a/vendor/github.com/docker/docker/api/types/registry/search.go b/vendor/github.com/docker/docker/api/types/registry/search.go index a0a1eec5..994ca4c6 100644 --- a/vendor/github.com/docker/docker/api/types/registry/search.go +++ b/vendor/github.com/docker/docker/api/types/registry/search.go @@ -10,11 +10,12 @@ import ( type SearchOptions struct { RegistryAuth string - // PrivilegeFunc is a [types.RequestPrivilegeFunc] the client can - // supply to retry operations after getting an authorization error. + // PrivilegeFunc is a function that clients can supply to retry operations + // after getting an authorization error. This function returns the registry + // authentication header value in base64 encoded format, or an error if the + // privilege request fails. // - // It must return the registry authentication header value in base64 - // format, or an error if the privilege request fails. + // For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig]. PrivilegeFunc func(context.Context) (string, error) Filters filters.Args Limit int diff --git a/vendor/github.com/docker/docker/api/types/graph_driver_data.go b/vendor/github.com/docker/docker/api/types/storage/driver_data.go similarity index 75% rename from vendor/github.com/docker/docker/api/types/graph_driver_data.go rename to vendor/github.com/docker/docker/api/types/storage/driver_data.go index ce3deb33..009e2130 100644 --- a/vendor/github.com/docker/docker/api/types/graph_driver_data.go +++ b/vendor/github.com/docker/docker/api/types/storage/driver_data.go @@ -1,13 +1,13 @@ -package types +package storage // This file was generated by the swagger tool. // Editing this file might prove futile when you re-run the swagger generate command -// GraphDriverData Information about the storage driver used to store the container's and +// DriverData Information about the storage driver used to store the container's and // image's filesystem. // -// swagger:model GraphDriverData -type GraphDriverData struct { +// swagger:model DriverData +type DriverData struct { // Low-level storage metadata, provided as key/value pairs. // diff --git a/vendor/github.com/docker/docker/api/types/system/info.go b/vendor/github.com/docker/docker/api/types/system/info.go index c66a2afb..8a2444da 100644 --- a/vendor/github.com/docker/docker/api/types/system/info.go +++ b/vendor/github.com/docker/docker/api/types/system/info.go @@ -29,8 +29,8 @@ type Info struct { CPUSet bool PidsLimit bool IPv4Forwarding bool - BridgeNfIptables bool - BridgeNfIP6tables bool `json:"BridgeNfIp6tables"` + BridgeNfIptables bool `json:"BridgeNfIptables"` // Deprecated: netfilter module is now loaded on-demand and no longer during daemon startup, making this field obsolete. This field is always false and will be removed in the next release. + BridgeNfIP6tables bool `json:"BridgeNfIp6tables"` // Deprecated: netfilter module is now loaded on-demand and no longer during daemon startup, making this field obsolete. This field is always false and will be removed in the next release. Debug bool NFd int OomKillDisable bool @@ -137,8 +137,13 @@ type PluginsInfo struct { // Commit holds the Git-commit (SHA1) that a binary was built from, as reported // in the version-string of external tools, such as containerd, or runC. type Commit struct { - ID string // ID is the actual commit ID of external tool. - Expected string // Expected is the commit ID of external tool expected by dockerd as set at build time. + // ID is the actual commit ID or version of external tool. + ID string + + // Expected is the commit ID of external tool expected by dockerd as set at build time. + // + // Deprecated: this field is no longer used in API v1.49, but kept for backward-compatibility with older API versions. + Expected string } // NetworkAddressPool is a temp struct used by [Info] struct. diff --git a/vendor/github.com/docker/docker/api/types/types.go b/vendor/github.com/docker/docker/api/types/types.go index ea55813e..82ae339c 100644 --- a/vendor/github.com/docker/docker/api/types/types.go +++ b/vendor/github.com/docker/docker/api/types/types.go @@ -6,11 +6,8 @@ import ( "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/image" - "github.com/docker/docker/api/types/mount" - "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/api/types/volume" - "github.com/docker/go-connections/nat" ) const ( @@ -21,145 +18,6 @@ const ( MediaTypeMultiplexedStream = "application/vnd.docker.multiplexed-stream" ) -// RootFS returns Image's RootFS description including the layer IDs. -type RootFS struct { - Type string `json:",omitempty"` - Layers []string `json:",omitempty"` -} - -// ImageInspect contains response of Engine API: -// GET "/images/{name:.*}/json" -type ImageInspect struct { - // ID is the content-addressable ID of an image. - // - // This identifier is a content-addressable digest calculated from the - // image's configuration (which includes the digests of layers used by - // the image). - // - // Note that this digest differs from the `RepoDigests` below, which - // holds digests of image manifests that reference the image. - ID string `json:"Id"` - - // RepoTags is a list of image names/tags in the local image cache that - // reference this image. - // - // Multiple image tags can refer to the same image, and this list may be - // empty if no tags reference the image, in which case the image is - // "untagged", in which case it can still be referenced by its ID. - RepoTags []string - - // RepoDigests is a list of content-addressable digests of locally available - // image manifests that the image is referenced from. Multiple manifests can - // refer to the same image. - // - // These digests are usually only available if the image was either pulled - // from a registry, or if the image was pushed to a registry, which is when - // the manifest is generated and its digest calculated. - RepoDigests []string - - // Parent is the ID of the parent image. - // - // Depending on how the image was created, this field may be empty and - // is only set for images that were built/created locally. This field - // is empty if the image was pulled from an image registry. - Parent string - - // Comment is an optional message that can be set when committing or - // importing the image. - Comment string - - // Created is the date and time at which the image was created, formatted in - // RFC 3339 nano-seconds (time.RFC3339Nano). - // - // This information is only available if present in the image, - // and omitted otherwise. - Created string `json:",omitempty"` - - // Container is the ID of the container that was used to create the image. - // - // Depending on how the image was created, this field may be empty. - // - // Deprecated: this field is omitted in API v1.45, but kept for backward compatibility. - Container string `json:",omitempty"` - - // ContainerConfig is an optional field containing the configuration of the - // container that was last committed when creating the image. - // - // Previous versions of Docker builder used this field to store build cache, - // and it is not in active use anymore. - // - // Deprecated: this field is omitted in API v1.45, but kept for backward compatibility. - ContainerConfig *container.Config `json:",omitempty"` - - // DockerVersion is the version of Docker that was used to build the image. - // - // Depending on how the image was created, this field may be empty. - DockerVersion string - - // Author is the name of the author that was specified when committing the - // image, or as specified through MAINTAINER (deprecated) in the Dockerfile. - Author string - Config *container.Config - - // Architecture is the hardware CPU architecture that the image runs on. - Architecture string - - // Variant is the CPU architecture variant (presently ARM-only). - Variant string `json:",omitempty"` - - // OS is the Operating System the image is built to run on. - Os string - - // OsVersion is the version of the Operating System the image is built to - // run on (especially for Windows). - OsVersion string `json:",omitempty"` - - // Size is the total size of the image including all layers it is composed of. - Size int64 - - // VirtualSize is the total size of the image including all layers it is - // composed of. - // - // Deprecated: this field is omitted in API v1.44, but kept for backward compatibility. Use Size instead. - VirtualSize int64 `json:"VirtualSize,omitempty"` - - // GraphDriver holds information about the storage driver used to store the - // container's and image's filesystem. - GraphDriver GraphDriverData - - // RootFS contains information about the image's RootFS, including the - // layer IDs. - RootFS RootFS - - // Metadata of the image in the local cache. - // - // This information is local to the daemon, and not part of the image itself. - Metadata image.Metadata -} - -// Container contains response of Engine API: -// GET "/containers/json" -type Container struct { - ID string `json:"Id"` - Names []string - Image string - ImageID string - Command string - Created int64 - Ports []Port - SizeRw int64 `json:",omitempty"` - SizeRootFs int64 `json:",omitempty"` - Labels map[string]string - State string - Status string - HostConfig struct { - NetworkMode string `json:",omitempty"` - Annotations map[string]string `json:",omitempty"` - } - NetworkSettings *SummaryNetworkSettings - Mounts []MountPoint -} - // Ping contains response of Engine API: // GET "/_ping" type Ping struct { @@ -205,176 +63,6 @@ type Version struct { BuildTime string `json:",omitempty"` } -// HealthcheckResult stores information about a single run of a healthcheck probe -type HealthcheckResult struct { - Start time.Time // Start is the time this check started - End time.Time // End is the time this check ended - ExitCode int // ExitCode meanings: 0=healthy, 1=unhealthy, 2=reserved (considered unhealthy), else=error running probe - Output string // Output from last check -} - -// Health states -const ( - NoHealthcheck = "none" // Indicates there is no healthcheck - Starting = "starting" // Starting indicates that the container is not yet ready - Healthy = "healthy" // Healthy indicates that the container is running correctly - Unhealthy = "unhealthy" // Unhealthy indicates that the container has a problem -) - -// Health stores information about the container's healthcheck results -type Health struct { - Status string // Status is one of Starting, Healthy or Unhealthy - FailingStreak int // FailingStreak is the number of consecutive failures - Log []*HealthcheckResult // Log contains the last few results (oldest first) -} - -// ContainerState stores container's running state -// it's part of ContainerJSONBase and will return by "inspect" command -type ContainerState struct { - Status string // String representation of the container state. Can be one of "created", "running", "paused", "restarting", "removing", "exited", or "dead" - Running bool - Paused bool - Restarting bool - OOMKilled bool - Dead bool - Pid int - ExitCode int - Error string - StartedAt string - FinishedAt string - Health *Health `json:",omitempty"` -} - -// ContainerJSONBase contains response of Engine API: -// GET "/containers/{name:.*}/json" -type ContainerJSONBase struct { - ID string `json:"Id"` - Created string - Path string - Args []string - State *ContainerState - Image string - ResolvConfPath string - HostnamePath string - HostsPath string - LogPath string - Node *ContainerNode `json:",omitempty"` // Deprecated: Node was only propagated by Docker Swarm standalone API. It sill be removed in the next release. - Name string - RestartCount int - Driver string - Platform string - MountLabel string - ProcessLabel string - AppArmorProfile string - ExecIDs []string - HostConfig *container.HostConfig - GraphDriver GraphDriverData - SizeRw *int64 `json:",omitempty"` - SizeRootFs *int64 `json:",omitempty"` -} - -// ContainerJSON is newly used struct along with MountPoint -type ContainerJSON struct { - *ContainerJSONBase - Mounts []MountPoint - Config *container.Config - NetworkSettings *NetworkSettings -} - -// NetworkSettings exposes the network settings in the api -type NetworkSettings struct { - NetworkSettingsBase - DefaultNetworkSettings - Networks map[string]*network.EndpointSettings -} - -// SummaryNetworkSettings provides a summary of container's networks -// in /containers/json -type SummaryNetworkSettings struct { - Networks map[string]*network.EndpointSettings -} - -// NetworkSettingsBase holds networking state for a container when inspecting it. -type NetworkSettingsBase struct { - Bridge string // Bridge contains the name of the default bridge interface iff it was set through the daemon --bridge flag. - SandboxID string // SandboxID uniquely represents a container's network stack - SandboxKey string // SandboxKey identifies the sandbox - Ports nat.PortMap // Ports is a collection of PortBinding indexed by Port - - // HairpinMode specifies if hairpin NAT should be enabled on the virtual interface - // - // Deprecated: This field is never set and will be removed in a future release. - HairpinMode bool - // LinkLocalIPv6Address is an IPv6 unicast address using the link-local prefix - // - // Deprecated: This field is never set and will be removed in a future release. - LinkLocalIPv6Address string - // LinkLocalIPv6PrefixLen is the prefix length of an IPv6 unicast address - // - // Deprecated: This field is never set and will be removed in a future release. - LinkLocalIPv6PrefixLen int - SecondaryIPAddresses []network.Address // Deprecated: This field is never set and will be removed in a future release. - SecondaryIPv6Addresses []network.Address // Deprecated: This field is never set and will be removed in a future release. -} - -// DefaultNetworkSettings holds network information -// during the 2 release deprecation period. -// It will be removed in Docker 1.11. -type DefaultNetworkSettings struct { - EndpointID string // EndpointID uniquely represents a service endpoint in a Sandbox - Gateway string // Gateway holds the gateway address for the network - GlobalIPv6Address string // GlobalIPv6Address holds network's global IPv6 address - GlobalIPv6PrefixLen int // GlobalIPv6PrefixLen represents mask length of network's global IPv6 address - IPAddress string // IPAddress holds the IPv4 address for the network - IPPrefixLen int // IPPrefixLen represents mask length of network's IPv4 address - IPv6Gateway string // IPv6Gateway holds gateway address specific for IPv6 - MacAddress string // MacAddress holds the MAC address for the network -} - -// MountPoint represents a mount point configuration inside the container. -// This is used for reporting the mountpoints in use by a container. -type MountPoint struct { - // Type is the type of mount, see `Type` definitions in - // github.com/docker/docker/api/types/mount.Type - Type mount.Type `json:",omitempty"` - - // Name is the name reference to the underlying data defined by `Source` - // e.g., the volume name. - Name string `json:",omitempty"` - - // Source is the source location of the mount. - // - // For volumes, this contains the storage location of the volume (within - // `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains - // the source (host) part of the bind-mount. For `tmpfs` mount points, this - // field is empty. - Source string - - // Destination is the path relative to the container root (`/`) where the - // Source is mounted inside the container. - Destination string - - // Driver is the volume driver used to create the volume (if it is a volume). - Driver string `json:",omitempty"` - - // Mode is a comma separated list of options supplied by the user when - // creating the bind/volume mount. - // - // The default is platform-specific (`"z"` on Linux, empty on Windows). - Mode string - - // RW indicates whether the mount is mounted writable (read-write). - RW bool - - // Propagation describes how mounts are propagated from the host into the - // mount point, and vice-versa. Refer to the Linux kernel documentation - // for details: - // https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt - // - // This field is not used on Windows. - Propagation mount.Propagation -} - // DiskUsageObject represents an object type used for disk usage query filtering. type DiskUsageObject string @@ -401,7 +89,7 @@ type DiskUsageOptions struct { type DiskUsage struct { LayersSize int64 Images []*image.Summary - Containers []*Container + Containers []*container.Summary Volumes []*volume.Volume BuildCache []*BuildCache BuilderSize int64 `json:",omitempty"` // Deprecated: deprecated in API 1.38, and no longer used since API 1.40. @@ -481,9 +169,11 @@ type BuildCache struct { // BuildCachePruneOptions hold parameters to prune the build cache type BuildCachePruneOptions struct { - All bool - KeepStorage int64 - Filters filters.Args + All bool + ReservedSpace int64 + MaxUsedSpace int64 + MinFreeSpace int64 + Filters filters.Args - // FIXME(thaJeztah): add new options; see https://github.com/moby/moby/issues/48639 + KeepStorage int64 // Deprecated: deprecated in API 1.48. } diff --git a/vendor/github.com/docker/docker/api/types/types_deprecated.go b/vendor/github.com/docker/docker/api/types/types_deprecated.go index 43ffe104..93e4336a 100644 --- a/vendor/github.com/docker/docker/api/types/types_deprecated.go +++ b/vendor/github.com/docker/docker/api/types/types_deprecated.go @@ -1,210 +1,115 @@ package types import ( + "context" + + "github.com/docker/docker/api/types/common" "github.com/docker/docker/api/types/container" - "github.com/docker/docker/api/types/events" "github.com/docker/docker/api/types/image" - "github.com/docker/docker/api/types/network" - "github.com/docker/docker/api/types/registry" - "github.com/docker/docker/api/types/volume" + "github.com/docker/docker/api/types/storage" ) -// ImagesPruneReport contains the response for Engine API: -// POST "/images/prune" +// IDResponse Response to an API call that returns just an Id. // -// Deprecated: use [image.PruneReport]. -type ImagesPruneReport = image.PruneReport +// Deprecated: use either [container.CommitResponse] or [container.ExecCreateResponse]. It will be removed in the next release. +type IDResponse = common.IDResponse -// VolumesPruneReport contains the response for Engine API: -// POST "/volumes/prune". +// ContainerJSONBase contains response of Engine API GET "/containers/{name:.*}/json" +// for API version 1.18 and older. // -// Deprecated: use [volume.PruneReport]. -type VolumesPruneReport = volume.PruneReport +// Deprecated: use [container.InspectResponse] or [container.ContainerJSONBase]. It will be removed in the next release. +type ContainerJSONBase = container.ContainerJSONBase -// NetworkCreateRequest is the request message sent to the server for network create call. +// ContainerJSON is the response for the GET "/containers/{name:.*}/json" +// endpoint. // -// Deprecated: use [network.CreateRequest]. -type NetworkCreateRequest = network.CreateRequest +// Deprecated: use [container.InspectResponse]. It will be removed in the next release. +type ContainerJSON = container.InspectResponse -// NetworkCreate is the expected body of the "create network" http request message +// Container contains response of Engine API: +// GET "/containers/json" // -// Deprecated: use [network.CreateOptions]. -type NetworkCreate = network.CreateOptions +// Deprecated: use [container.Summary]. +type Container = container.Summary -// NetworkListOptions holds parameters to filter the list of networks with. +// ContainerState stores container's running state // -// Deprecated: use [network.ListOptions]. -type NetworkListOptions = network.ListOptions +// Deprecated: use [container.State]. +type ContainerState = container.State -// NetworkCreateResponse is the response message sent by the server for network create call. +// NetworkSettings exposes the network settings in the api. // -// Deprecated: use [network.CreateResponse]. -type NetworkCreateResponse = network.CreateResponse +// Deprecated: use [container.NetworkSettings]. +type NetworkSettings = container.NetworkSettings -// NetworkInspectOptions holds parameters to inspect network. +// NetworkSettingsBase holds networking state for a container when inspecting it. // -// Deprecated: use [network.InspectOptions]. -type NetworkInspectOptions = network.InspectOptions +// Deprecated: use [container.NetworkSettingsBase]. +type NetworkSettingsBase = container.NetworkSettingsBase -// NetworkConnect represents the data to be used to connect a container to the network +// DefaultNetworkSettings holds network information +// during the 2 release deprecation period. +// It will be removed in Docker 1.11. // -// Deprecated: use [network.ConnectOptions]. -type NetworkConnect = network.ConnectOptions +// Deprecated: use [container.DefaultNetworkSettings]. +type DefaultNetworkSettings = container.DefaultNetworkSettings -// NetworkDisconnect represents the data to be used to disconnect a container from the network +// SummaryNetworkSettings provides a summary of container's networks +// in /containers/json. // -// Deprecated: use [network.DisconnectOptions]. -type NetworkDisconnect = network.DisconnectOptions +// Deprecated: use [container.NetworkSettingsSummary]. +type SummaryNetworkSettings = container.NetworkSettingsSummary -// EndpointResource contains network resources allocated and used for a container in a network. -// -// Deprecated: use [network.EndpointResource]. -type EndpointResource = network.EndpointResource +// Health states +const ( + NoHealthcheck = container.NoHealthcheck // Deprecated: use [container.NoHealthcheck]. + Starting = container.Starting // Deprecated: use [container.Starting]. + Healthy = container.Healthy // Deprecated: use [container.Healthy]. + Unhealthy = container.Unhealthy // Deprecated: use [container.Unhealthy]. +) -// NetworkResource is the body of the "get network" http response message/ +// Health stores information about the container's healthcheck results. // -// Deprecated: use [network.Inspect] or [network.Summary] (for list operations). -type NetworkResource = network.Inspect +// Deprecated: use [container.Health]. +type Health = container.Health -// NetworksPruneReport contains the response for Engine API: -// POST "/networks/prune" +// HealthcheckResult stores information about a single run of a healthcheck probe. // -// Deprecated: use [network.PruneReport]. -type NetworksPruneReport = network.PruneReport +// Deprecated: use [container.HealthcheckResult]. +type HealthcheckResult = container.HealthcheckResult -// ExecConfig is a small subset of the Config struct that holds the configuration -// for the exec feature of docker. +// MountPoint represents a mount point configuration inside the container. +// This is used for reporting the mountpoints in use by a container. // -// Deprecated: use [container.ExecOptions]. -type ExecConfig = container.ExecOptions +// Deprecated: use [container.MountPoint]. +type MountPoint = container.MountPoint -// ExecStartCheck is a temp struct used by execStart -// Config fields is part of ExecConfig in runconfig package +// Port An open port on a container // -// Deprecated: use [container.ExecStartOptions] or [container.ExecAttachOptions]. -type ExecStartCheck = container.ExecStartOptions +// Deprecated: use [container.Port]. +type Port = container.Port -// ContainerExecInspect holds information returned by exec inspect. +// GraphDriverData Information about the storage driver used to store the container's and +// image's filesystem. // -// Deprecated: use [container.ExecInspect]. -type ContainerExecInspect = container.ExecInspect +// Deprecated: use [storage.DriverData]. +type GraphDriverData = storage.DriverData -// ContainersPruneReport contains the response for Engine API: -// POST "/containers/prune" +// RootFS returns Image's RootFS description including the layer IDs. // -// Deprecated: use [container.PruneReport]. -type ContainersPruneReport = container.PruneReport +// Deprecated: use [image.RootFS]. +type RootFS = image.RootFS -// ContainerPathStat is used to encode the header from -// GET "/containers/{name:.*}/archive" -// "Name" is the file or directory name. +// ImageInspect contains response of Engine API: +// GET "/images/{name:.*}/json" // -// Deprecated: use [container.PathStat]. -type ContainerPathStat = container.PathStat +// Deprecated: use [image.InspectResponse]. +type ImageInspect = image.InspectResponse -// CopyToContainerOptions holds information -// about files to copy into a container. +// RequestPrivilegeFunc is a function interface that clients can supply to +// retry operations after getting an authorization error. +// This function returns the registry authentication header value in base64 +// format, or an error if the privilege request fails. // -// Deprecated: use [container.CopyToContainerOptions], -type CopyToContainerOptions = container.CopyToContainerOptions - -// ContainerStats contains response of Engine API: -// GET "/stats" -// -// Deprecated: use [container.StatsResponseReader]. -type ContainerStats = container.StatsResponseReader - -// ThrottlingData stores CPU throttling stats of one running container. -// Not used on Windows. -// -// Deprecated: use [container.ThrottlingData]. -type ThrottlingData = container.ThrottlingData - -// CPUUsage stores All CPU stats aggregated since container inception. -// -// Deprecated: use [container.CPUUsage]. -type CPUUsage = container.CPUUsage - -// CPUStats aggregates and wraps all CPU related info of container -// -// Deprecated: use [container.CPUStats]. -type CPUStats = container.CPUStats - -// MemoryStats aggregates all memory stats since container inception on Linux. -// Windows returns stats for commit and private working set only. -// -// Deprecated: use [container.MemoryStats]. -type MemoryStats = container.MemoryStats - -// BlkioStatEntry is one small entity to store a piece of Blkio stats -// Not used on Windows. -// -// Deprecated: use [container.BlkioStatEntry]. -type BlkioStatEntry = container.BlkioStatEntry - -// BlkioStats stores All IO service stats for data read and write. -// This is a Linux specific structure as the differences between expressing -// block I/O on Windows and Linux are sufficiently significant to make -// little sense attempting to morph into a combined structure. -// -// Deprecated: use [container.BlkioStats]. -type BlkioStats = container.BlkioStats - -// StorageStats is the disk I/O stats for read/write on Windows. -// -// Deprecated: use [container.StorageStats]. -type StorageStats = container.StorageStats - -// NetworkStats aggregates the network stats of one container -// -// Deprecated: use [container.NetworkStats]. -type NetworkStats = container.NetworkStats - -// PidsStats contains the stats of a container's pids -// -// Deprecated: use [container.PidsStats]. -type PidsStats = container.PidsStats - -// Stats is Ultimate struct aggregating all types of stats of one container -// -// Deprecated: use [container.Stats]. -type Stats = container.Stats - -// StatsJSON is newly used Networks -// -// Deprecated: use [container.StatsResponse]. -type StatsJSON = container.StatsResponse - -// EventsOptions holds parameters to filter events with. -// -// Deprecated: use [events.ListOptions]. -type EventsOptions = events.ListOptions - -// ImageSearchOptions holds parameters to search images with. -// -// Deprecated: use [registry.SearchOptions]. -type ImageSearchOptions = registry.SearchOptions - -// ImageImportSource holds source information for ImageImport -// -// Deprecated: use [image.ImportSource]. -type ImageImportSource image.ImportSource - -// ImageLoadResponse returns information to the client about a load process. -// -// Deprecated: use [image.LoadResponse]. -type ImageLoadResponse = image.LoadResponse - -// ContainerNode stores information about the node that a container -// is running on. It's only used by the Docker Swarm standalone API. -// -// Deprecated: ContainerNode was used for the classic Docker Swarm standalone API. It will be removed in the next release. -type ContainerNode struct { - ID string - IPAddress string `json:"IP"` - Addr string - Name string - Cpus int - Memory int64 - Labels map[string]string -} +// Deprecated: moved to [github.com/docker/docker/api/types/registry.RequestAuthConfig]. +type RequestPrivilegeFunc func(context.Context) (string, error) diff --git a/vendor/github.com/docker/docker/client/build_cancel.go b/vendor/github.com/docker/docker/client/build_cancel.go index b76bf366..51a73cdb 100644 --- a/vendor/github.com/docker/docker/client/build_cancel.go +++ b/vendor/github.com/docker/docker/client/build_cancel.go @@ -10,7 +10,7 @@ func (cli *Client) BuildCancel(ctx context.Context, id string) error { query := url.Values{} query.Set("id", id) - serverResp, err := cli.post(ctx, "/build/cancel", query, nil, nil) - ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/build/cancel", query, nil, nil) + ensureReaderClosed(resp) return err } diff --git a/vendor/github.com/docker/docker/client/build_prune.go b/vendor/github.com/docker/docker/client/build_prune.go index 1a830f41..92b47d18 100644 --- a/vendor/github.com/docker/docker/client/build_prune.go +++ b/vendor/github.com/docker/docker/client/build_prune.go @@ -17,27 +17,38 @@ func (cli *Client) BuildCachePrune(ctx context.Context, opts types.BuildCachePru return nil, err } - report := types.BuildCachePruneReport{} - query := url.Values{} if opts.All { query.Set("all", "1") } - query.Set("keep-storage", strconv.Itoa(int(opts.KeepStorage))) + + if opts.KeepStorage != 0 { + query.Set("keep-storage", strconv.Itoa(int(opts.KeepStorage))) + } + if opts.ReservedSpace != 0 { + query.Set("reserved-space", strconv.Itoa(int(opts.ReservedSpace))) + } + if opts.MaxUsedSpace != 0 { + query.Set("max-used-space", strconv.Itoa(int(opts.MaxUsedSpace))) + } + if opts.MinFreeSpace != 0 { + query.Set("min-free-space", strconv.Itoa(int(opts.MinFreeSpace))) + } f, err := filters.ToJSON(opts.Filters) if err != nil { return nil, errors.Wrap(err, "prune could not marshal filters option") } query.Set("filters", f) - serverResp, err := cli.post(ctx, "/build/prune", query, nil, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/build/prune", query, nil, nil) + defer ensureReaderClosed(resp) if err != nil { return nil, err } - if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil { + report := types.BuildCachePruneReport{} + if err := json.NewDecoder(resp.Body).Decode(&report); err != nil { return nil, errors.Wrap(err, "error retrieving disk usage") } diff --git a/vendor/github.com/docker/docker/client/interface_experimental.go b/vendor/github.com/docker/docker/client/checkpoint.go similarity index 76% rename from vendor/github.com/docker/docker/client/interface_experimental.go rename to vendor/github.com/docker/docker/client/checkpoint.go index c585c104..f690f7c9 100644 --- a/vendor/github.com/docker/docker/client/interface_experimental.go +++ b/vendor/github.com/docker/docker/client/checkpoint.go @@ -6,11 +6,11 @@ import ( "github.com/docker/docker/api/types/checkpoint" ) -type apiClientExperimental interface { - CheckpointAPIClient -} - -// CheckpointAPIClient defines API client methods for the checkpoints +// CheckpointAPIClient defines API client methods for the checkpoints. +// +// Experimental: checkpoint and restore is still an experimental feature, +// and only available if the daemon is running with experimental features +// enabled. type CheckpointAPIClient interface { CheckpointCreate(ctx context.Context, container string, options checkpoint.CreateOptions) error CheckpointDelete(ctx context.Context, container string, options checkpoint.DeleteOptions) error diff --git a/vendor/github.com/docker/docker/client/checkpoint_create.go b/vendor/github.com/docker/docker/client/checkpoint_create.go index 9746d288..7b06fee3 100644 --- a/vendor/github.com/docker/docker/client/checkpoint_create.go +++ b/vendor/github.com/docker/docker/client/checkpoint_create.go @@ -7,8 +7,13 @@ import ( ) // CheckpointCreate creates a checkpoint from the given container with the given name -func (cli *Client) CheckpointCreate(ctx context.Context, container string, options checkpoint.CreateOptions) error { - resp, err := cli.post(ctx, "/containers/"+container+"/checkpoints", nil, options, nil) +func (cli *Client) CheckpointCreate(ctx context.Context, containerID string, options checkpoint.CreateOptions) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + + resp, err := cli.post(ctx, "/containers/"+containerID+"/checkpoints", nil, options, nil) ensureReaderClosed(resp) return err } diff --git a/vendor/github.com/docker/docker/client/checkpoint_delete.go b/vendor/github.com/docker/docker/client/checkpoint_delete.go index b968c2b2..d15162ea 100644 --- a/vendor/github.com/docker/docker/client/checkpoint_delete.go +++ b/vendor/github.com/docker/docker/client/checkpoint_delete.go @@ -9,6 +9,11 @@ import ( // CheckpointDelete deletes the checkpoint with the given name from the given container func (cli *Client) CheckpointDelete(ctx context.Context, containerID string, options checkpoint.DeleteOptions) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + query := url.Values{} if options.CheckpointDir != "" { query.Set("dir", options.CheckpointDir) diff --git a/vendor/github.com/docker/docker/client/checkpoint_list.go b/vendor/github.com/docker/docker/client/checkpoint_list.go index 8feb1f3f..9e7963f0 100644 --- a/vendor/github.com/docker/docker/client/checkpoint_list.go +++ b/vendor/github.com/docker/docker/client/checkpoint_list.go @@ -23,6 +23,6 @@ func (cli *Client) CheckpointList(ctx context.Context, container string, options return checkpoints, err } - err = json.NewDecoder(resp.body).Decode(&checkpoints) + err = json.NewDecoder(resp.Body).Decode(&checkpoints) return checkpoints, err } diff --git a/vendor/github.com/docker/docker/client/client.go b/vendor/github.com/docker/docker/client/client.go index 46832d8a..cd47f05e 100644 --- a/vendor/github.com/docker/docker/client/client.go +++ b/vendor/github.com/docker/docker/client/client.go @@ -59,7 +59,6 @@ import ( "github.com/docker/go-connections/sockets" "github.com/pkg/errors" "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" - "go.opentelemetry.io/otel/trace" ) // DummyHost is a hostname used for local communication. @@ -99,6 +98,9 @@ const DummyHost = "api.moby.localhost" // recent version before negotiation was introduced. const fallbackAPIVersion = "1.24" +// Ensure that Client always implements APIClient. +var _ APIClient = &Client{} + // Client is the API client that performs all operations // against a docker server. type Client struct { @@ -138,7 +140,7 @@ type Client struct { // negotiateLock is used to single-flight the version negotiation process negotiateLock sync.Mutex - tp trace.TracerProvider + traceOpts []otelhttp.Option // When the client transport is an *http.Transport (default) we need to do some extra things (like closing idle connections). // Store the original transport as the http.Client transport will be wrapped with tracing libs. @@ -200,6 +202,12 @@ func NewClientWithOpts(ops ...Opt) (*Client, error) { client: client, proto: hostURL.Scheme, addr: hostURL.Host, + + traceOpts: []otelhttp.Option{ + otelhttp.WithSpanNameFormatter(func(_ string, req *http.Request) string { + return req.Method + " " + req.URL.Path + }), + }, } for _, op := range ops { @@ -227,13 +235,7 @@ func NewClientWithOpts(ops ...Opt) (*Client, error) { } } - c.client.Transport = otelhttp.NewTransport( - c.client.Transport, - otelhttp.WithTracerProvider(c.tp), - otelhttp.WithSpanNameFormatter(func(_ string, req *http.Request) string { - return req.Method + " " + req.URL.Path - }), - ) + c.client.Transport = otelhttp.NewTransport(c.client.Transport, c.traceOpts...) return c, nil } @@ -304,8 +306,7 @@ func (cli *Client) getAPIPath(ctx context.Context, p string, query url.Values) s var apiPath string _ = cli.checkVersion(ctx) if cli.version != "" { - v := strings.TrimPrefix(cli.version, "v") - apiPath = path.Join(cli.basePath, "/v"+v, p) + apiPath = path.Join(cli.basePath, "/v"+strings.TrimPrefix(cli.version, "v"), p) } else { apiPath = path.Join(cli.basePath, p) } @@ -450,6 +451,10 @@ func (cli *Client) dialerFromTransport() func(context.Context, string, string) ( // // ["docker dial-stdio"]: https://github.com/docker/cli/pull/1014 func (cli *Client) Dialer() func(context.Context) (net.Conn, error) { + return cli.dialer() +} + +func (cli *Client) dialer() func(context.Context) (net.Conn, error) { return func(ctx context.Context) (net.Conn, error) { if dialFn := cli.dialerFromTransport(); dialFn != nil { return dialFn(ctx, cli.proto, cli.addr) diff --git a/vendor/github.com/docker/docker/client/interface.go b/vendor/github.com/docker/docker/client/client_interfaces.go similarity index 86% rename from vendor/github.com/docker/docker/client/interface.go rename to vendor/github.com/docker/docker/client/client_interfaces.go index cc60a5d1..f70d8ffa 100644 --- a/vendor/github.com/docker/docker/client/interface.go +++ b/vendor/github.com/docker/docker/client/client_interfaces.go @@ -20,17 +20,23 @@ import ( ) // CommonAPIClient is the common methods between stable and experimental versions of APIClient. -type CommonAPIClient interface { +// +// Deprecated: use [APIClient] instead. This type will be an alias for [APIClient] in the next release, and removed after. +type CommonAPIClient = stableAPIClient + +// APIClient is an interface that clients that talk with a docker server must implement. +type APIClient interface { + stableAPIClient + CheckpointAPIClient // CheckpointAPIClient is still experimental. +} + +type stableAPIClient interface { ConfigAPIClient ContainerAPIClient DistributionAPIClient ImageAPIClient - NodeAPIClient NetworkAPIClient PluginAPIClient - ServiceAPIClient - SwarmAPIClient - SecretAPIClient SystemAPIClient VolumeAPIClient ClientVersion() string @@ -39,27 +45,43 @@ type CommonAPIClient interface { ServerVersion(ctx context.Context) (types.Version, error) NegotiateAPIVersion(ctx context.Context) NegotiateAPIVersionPing(types.Ping) - DialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error) + HijackDialer Dialer() func(context.Context) (net.Conn, error) Close() error + SwarmManagementAPIClient +} + +// SwarmManagementAPIClient defines all methods for managing Swarm-specific +// objects. +type SwarmManagementAPIClient interface { + SwarmAPIClient + NodeAPIClient + ServiceAPIClient + SecretAPIClient + ConfigAPIClient +} + +// HijackDialer defines methods for a hijack dialer. +type HijackDialer interface { + DialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error) } // ContainerAPIClient defines API client methods for the containers type ContainerAPIClient interface { ContainerAttach(ctx context.Context, container string, options container.AttachOptions) (types.HijackedResponse, error) - ContainerCommit(ctx context.Context, container string, options container.CommitOptions) (types.IDResponse, error) + ContainerCommit(ctx context.Context, container string, options container.CommitOptions) (container.CommitResponse, error) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, platform *ocispec.Platform, containerName string) (container.CreateResponse, error) ContainerDiff(ctx context.Context, container string) ([]container.FilesystemChange, error) ContainerExecAttach(ctx context.Context, execID string, options container.ExecAttachOptions) (types.HijackedResponse, error) - ContainerExecCreate(ctx context.Context, container string, options container.ExecOptions) (types.IDResponse, error) + ContainerExecCreate(ctx context.Context, container string, options container.ExecOptions) (container.ExecCreateResponse, error) ContainerExecInspect(ctx context.Context, execID string) (container.ExecInspect, error) ContainerExecResize(ctx context.Context, execID string, options container.ResizeOptions) error ContainerExecStart(ctx context.Context, execID string, options container.ExecStartOptions) error ContainerExport(ctx context.Context, container string) (io.ReadCloser, error) - ContainerInspect(ctx context.Context, container string) (types.ContainerJSON, error) - ContainerInspectWithRaw(ctx context.Context, container string, getSize bool) (types.ContainerJSON, []byte, error) + ContainerInspect(ctx context.Context, container string) (container.InspectResponse, error) + ContainerInspectWithRaw(ctx context.Context, container string, getSize bool) (container.InspectResponse, []byte, error) ContainerKill(ctx context.Context, container, signal string) error - ContainerList(ctx context.Context, options container.ListOptions) ([]types.Container, error) + ContainerList(ctx context.Context, options container.ListOptions) ([]container.Summary, error) ContainerLogs(ctx context.Context, container string, options container.LogsOptions) (io.ReadCloser, error) ContainerPause(ctx context.Context, container string) error ContainerRemove(ctx context.Context, container string, options container.RemoveOptions) error @@ -71,9 +93,9 @@ type ContainerAPIClient interface { ContainerStatsOneShot(ctx context.Context, container string) (container.StatsResponseReader, error) ContainerStart(ctx context.Context, container string, options container.StartOptions) error ContainerStop(ctx context.Context, container string, options container.StopOptions) error - ContainerTop(ctx context.Context, container string, arguments []string) (container.ContainerTopOKBody, error) + ContainerTop(ctx context.Context, container string, arguments []string) (container.TopResponse, error) ContainerUnpause(ctx context.Context, container string) error - ContainerUpdate(ctx context.Context, container string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error) + ContainerUpdate(ctx context.Context, container string, updateConfig container.UpdateConfig) (container.UpdateResponse, error) ContainerWait(ctx context.Context, container string, condition container.WaitCondition) (<-chan container.WaitResponse, <-chan error) CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, container.PathStat, error) CopyToContainer(ctx context.Context, container, path string, content io.Reader, options container.CopyToContainerOptions) error @@ -91,18 +113,30 @@ type ImageAPIClient interface { BuildCachePrune(ctx context.Context, opts types.BuildCachePruneOptions) (*types.BuildCachePruneReport, error) BuildCancel(ctx context.Context, id string) error ImageCreate(ctx context.Context, parentReference string, options image.CreateOptions) (io.ReadCloser, error) - ImageHistory(ctx context.Context, image string) ([]image.HistoryResponseItem, error) ImageImport(ctx context.Context, source image.ImportSource, ref string, options image.ImportOptions) (io.ReadCloser, error) - ImageInspectWithRaw(ctx context.Context, image string) (types.ImageInspect, []byte, error) + ImageList(ctx context.Context, options image.ListOptions) ([]image.Summary, error) - ImageLoad(ctx context.Context, input io.Reader, quiet bool) (image.LoadResponse, error) ImagePull(ctx context.Context, ref string, options image.PullOptions) (io.ReadCloser, error) ImagePush(ctx context.Context, ref string, options image.PushOptions) (io.ReadCloser, error) ImageRemove(ctx context.Context, image string, options image.RemoveOptions) ([]image.DeleteResponse, error) ImageSearch(ctx context.Context, term string, options registry.SearchOptions) ([]registry.SearchResult, error) - ImageSave(ctx context.Context, images []string) (io.ReadCloser, error) ImageTag(ctx context.Context, image, ref string) error ImagesPrune(ctx context.Context, pruneFilter filters.Args) (image.PruneReport, error) + + ImageInspect(ctx context.Context, image string, _ ...ImageInspectOption) (image.InspectResponse, error) + ImageHistory(ctx context.Context, image string, _ ...ImageHistoryOption) ([]image.HistoryResponseItem, error) + ImageLoad(ctx context.Context, input io.Reader, _ ...ImageLoadOption) (image.LoadResponse, error) + ImageSave(ctx context.Context, images []string, _ ...ImageSaveOption) (io.ReadCloser, error) + + ImageAPIClientDeprecated +} + +// ImageAPIClientDeprecated defines deprecated methods of the ImageAPIClient. +type ImageAPIClientDeprecated interface { + // ImageInspectWithRaw returns the image information and its raw representation. + // + // Deprecated: Use [Client.ImageInspect] instead. Raw response can be obtained using the [ImageInspectWithRawResponse] option. + ImageInspectWithRaw(ctx context.Context, image string) (image.InspectResponse, []byte, error) } // NetworkAPIClient defines API client methods for the networks diff --git a/vendor/github.com/docker/docker/client/config_create.go b/vendor/github.com/docker/docker/client/config_create.go index 3deb4a8e..c7ea6d2e 100644 --- a/vendor/github.com/docker/docker/client/config_create.go +++ b/vendor/github.com/docker/docker/client/config_create.go @@ -20,6 +20,6 @@ func (cli *Client) ConfigCreate(ctx context.Context, config swarm.ConfigSpec) (t return response, err } - err = json.NewDecoder(resp.body).Decode(&response) + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/config_inspect.go b/vendor/github.com/docker/docker/client/config_inspect.go index 2c6c7cb3..679a42c7 100644 --- a/vendor/github.com/docker/docker/client/config_inspect.go +++ b/vendor/github.com/docker/docker/client/config_inspect.go @@ -11,8 +11,9 @@ import ( // ConfigInspectWithRaw returns the config information with raw data func (cli *Client) ConfigInspectWithRaw(ctx context.Context, id string) (swarm.Config, []byte, error) { - if id == "" { - return swarm.Config{}, nil, objectNotFoundError{object: "config", id: id} + id, err := trimID("contig", id) + if err != nil { + return swarm.Config{}, nil, err } if err := cli.NewVersionError(ctx, "1.30", "config inspect"); err != nil { return swarm.Config{}, nil, err @@ -23,7 +24,7 @@ func (cli *Client) ConfigInspectWithRaw(ctx context.Context, id string) (swarm.C return swarm.Config{}, nil, err } - body, err := io.ReadAll(resp.body) + body, err := io.ReadAll(resp.Body) if err != nil { return swarm.Config{}, nil, err } diff --git a/vendor/github.com/docker/docker/client/config_list.go b/vendor/github.com/docker/docker/client/config_list.go index 14dd3813..7e4a8ea5 100644 --- a/vendor/github.com/docker/docker/client/config_list.go +++ b/vendor/github.com/docker/docker/client/config_list.go @@ -33,6 +33,6 @@ func (cli *Client) ConfigList(ctx context.Context, options types.ConfigListOptio } var configs []swarm.Config - err = json.NewDecoder(resp.body).Decode(&configs) + err = json.NewDecoder(resp.Body).Decode(&configs) return configs, err } diff --git a/vendor/github.com/docker/docker/client/config_remove.go b/vendor/github.com/docker/docker/client/config_remove.go index d05b0113..a2955c68 100644 --- a/vendor/github.com/docker/docker/client/config_remove.go +++ b/vendor/github.com/docker/docker/client/config_remove.go @@ -4,6 +4,10 @@ import "context" // ConfigRemove removes a config. func (cli *Client) ConfigRemove(ctx context.Context, id string) error { + id, err := trimID("config", id) + if err != nil { + return err + } if err := cli.NewVersionError(ctx, "1.30", "config remove"); err != nil { return err } diff --git a/vendor/github.com/docker/docker/client/config_update.go b/vendor/github.com/docker/docker/client/config_update.go index 6995861d..ddb219cf 100644 --- a/vendor/github.com/docker/docker/client/config_update.go +++ b/vendor/github.com/docker/docker/client/config_update.go @@ -9,6 +9,10 @@ import ( // ConfigUpdate attempts to update a config func (cli *Client) ConfigUpdate(ctx context.Context, id string, version swarm.Version, config swarm.ConfigSpec) error { + id, err := trimID("config", id) + if err != nil { + return err + } if err := cli.NewVersionError(ctx, "1.30", "config update"); err != nil { return err } diff --git a/vendor/github.com/docker/docker/client/container_attach.go b/vendor/github.com/docker/docker/client/container_attach.go index 6a32e5f6..2e7a13e5 100644 --- a/vendor/github.com/docker/docker/client/container_attach.go +++ b/vendor/github.com/docker/docker/client/container_attach.go @@ -33,7 +33,12 @@ import ( // // You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this // stream. -func (cli *Client) ContainerAttach(ctx context.Context, container string, options container.AttachOptions) (types.HijackedResponse, error) { +func (cli *Client) ContainerAttach(ctx context.Context, containerID string, options container.AttachOptions) (types.HijackedResponse, error) { + containerID, err := trimID("container", containerID) + if err != nil { + return types.HijackedResponse{}, err + } + query := url.Values{} if options.Stream { query.Set("stream", "1") @@ -54,7 +59,7 @@ func (cli *Client) ContainerAttach(ctx context.Context, container string, option query.Set("logs", "1") } - return cli.postHijacked(ctx, "/containers/"+container+"/attach", query, nil, http.Header{ + return cli.postHijacked(ctx, "/containers/"+containerID+"/attach", query, nil, http.Header{ "Content-Type": {"text/plain"}, }) } diff --git a/vendor/github.com/docker/docker/client/container_commit.go b/vendor/github.com/docker/docker/client/container_commit.go index 26b3f091..9b46a1f3 100644 --- a/vendor/github.com/docker/docker/client/container_commit.go +++ b/vendor/github.com/docker/docker/client/container_commit.go @@ -7,21 +7,25 @@ import ( "net/url" "github.com/distribution/reference" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" ) // ContainerCommit applies changes to a container and creates a new tagged image. -func (cli *Client) ContainerCommit(ctx context.Context, container string, options container.CommitOptions) (types.IDResponse, error) { +func (cli *Client) ContainerCommit(ctx context.Context, containerID string, options container.CommitOptions) (container.CommitResponse, error) { + containerID, err := trimID("container", containerID) + if err != nil { + return container.CommitResponse{}, err + } + var repository, tag string if options.Reference != "" { ref, err := reference.ParseNormalizedNamed(options.Reference) if err != nil { - return types.IDResponse{}, err + return container.CommitResponse{}, err } if _, isCanonical := ref.(reference.Canonical); isCanonical { - return types.IDResponse{}, errors.New("refusing to create a tag with a digest reference") + return container.CommitResponse{}, errors.New("refusing to create a tag with a digest reference") } ref = reference.TagNameOnly(ref) @@ -32,7 +36,7 @@ func (cli *Client) ContainerCommit(ctx context.Context, container string, option } query := url.Values{} - query.Set("container", container) + query.Set("container", containerID) query.Set("repo", repository) query.Set("tag", tag) query.Set("comment", options.Comment) @@ -44,13 +48,13 @@ func (cli *Client) ContainerCommit(ctx context.Context, container string, option query.Set("pause", "0") } - var response types.IDResponse + var response container.CommitResponse resp, err := cli.post(ctx, "/commit", query, options.Config, nil) defer ensureReaderClosed(resp) if err != nil { return response, err } - err = json.NewDecoder(resp.body).Decode(&response) + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/container_copy.go b/vendor/github.com/docker/docker/client/container_copy.go index 8490a3b1..39584d37 100644 --- a/vendor/github.com/docker/docker/client/container_copy.go +++ b/vendor/github.com/docker/docker/client/container_copy.go @@ -16,21 +16,30 @@ import ( // ContainerStatPath returns stat information about a path inside the container filesystem. func (cli *Client) ContainerStatPath(ctx context.Context, containerID, path string) (container.PathStat, error) { - query := url.Values{} - query.Set("path", filepath.ToSlash(path)) // Normalize the paths used in the API. - - urlStr := "/containers/" + containerID + "/archive" - response, err := cli.head(ctx, urlStr, query, nil) - defer ensureReaderClosed(response) + containerID, err := trimID("container", containerID) if err != nil { return container.PathStat{}, err } - return getContainerPathStatFromHeader(response.header) + + query := url.Values{} + query.Set("path", filepath.ToSlash(path)) // Normalize the paths used in the API. + + resp, err := cli.head(ctx, "/containers/"+containerID+"/archive", query, nil) + defer ensureReaderClosed(resp) + if err != nil { + return container.PathStat{}, err + } + return getContainerPathStatFromHeader(resp.Header) } // CopyToContainer copies content into the container filesystem. // Note that `content` must be a Reader for a TAR archive func (cli *Client) CopyToContainer(ctx context.Context, containerID, dstPath string, content io.Reader, options container.CopyToContainerOptions) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + query := url.Values{} query.Set("path", filepath.ToSlash(dstPath)) // Normalize the paths used in the API. // Do not allow for an existing directory to be overwritten by a non-directory and vice versa. @@ -42,9 +51,7 @@ func (cli *Client) CopyToContainer(ctx context.Context, containerID, dstPath str query.Set("copyUIDGID", "true") } - apiPath := "/containers/" + containerID + "/archive" - - response, err := cli.putRaw(ctx, apiPath, query, content, nil) + response, err := cli.putRaw(ctx, "/containers/"+containerID+"/archive", query, content, nil) defer ensureReaderClosed(response) if err != nil { return err @@ -56,11 +63,15 @@ func (cli *Client) CopyToContainer(ctx context.Context, containerID, dstPath str // CopyFromContainer gets the content from the container and returns it as a Reader // for a TAR archive to manipulate it in the host. It's up to the caller to close the reader. func (cli *Client) CopyFromContainer(ctx context.Context, containerID, srcPath string) (io.ReadCloser, container.PathStat, error) { + containerID, err := trimID("container", containerID) + if err != nil { + return nil, container.PathStat{}, err + } + query := make(url.Values, 1) query.Set("path", filepath.ToSlash(srcPath)) // Normalize the paths used in the API. - apiPath := "/containers/" + containerID + "/archive" - response, err := cli.get(ctx, apiPath, query, nil) + resp, err := cli.get(ctx, "/containers/"+containerID+"/archive", query, nil) if err != nil { return nil, container.PathStat{}, err } @@ -71,11 +82,11 @@ func (cli *Client) CopyFromContainer(ctx context.Context, containerID, srcPath s // copy it locally. Along with the stat info about the local destination, // we have everything we need to handle the multiple possibilities there // can be when copying a file/dir from one location to another file/dir. - stat, err := getContainerPathStatFromHeader(response.header) + stat, err := getContainerPathStatFromHeader(resp.Header) if err != nil { return nil, stat, fmt.Errorf("unable to get resource stat from response: %s", err) } - return response.body, stat, err + return resp.Body, stat, err } func getContainerPathStatFromHeader(header http.Header) (container.PathStat, error) { diff --git a/vendor/github.com/docker/docker/client/container_create.go b/vendor/github.com/docker/docker/client/container_create.go index 5442d426..9b8616f7 100644 --- a/vendor/github.com/docker/docker/client/container_create.go +++ b/vendor/github.com/docker/docker/client/container_create.go @@ -5,6 +5,8 @@ import ( "encoding/json" "net/url" "path" + "sort" + "strings" "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/network" @@ -12,12 +14,6 @@ import ( ocispec "github.com/opencontainers/image-spec/specs-go/v1" ) -type configWrapper struct { - *container.Config - HostConfig *container.HostConfig - NetworkingConfig *network.NetworkingConfig -} - // ContainerCreate creates a new container based on the given configuration. // It can be associated with a name, but it's not mandatory. func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, platform *ocispec.Platform, containerName string) (container.CreateResponse, error) { @@ -58,6 +54,9 @@ func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config // When using API under 1.42, the Linux daemon doesn't respect the ConsoleSize hostConfig.ConsoleSize = [2]uint{0, 0} } + + hostConfig.CapAdd = normalizeCapabilities(hostConfig.CapAdd) + hostConfig.CapDrop = normalizeCapabilities(hostConfig.CapDrop) } // Since API 1.44, the container-wide MacAddress is deprecated and will trigger a WARNING if it's specified. @@ -74,19 +73,19 @@ func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config query.Set("name", containerName) } - body := configWrapper{ + body := container.CreateRequest{ Config: config, HostConfig: hostConfig, NetworkingConfig: networkingConfig, } - serverResp, err := cli.post(ctx, "/containers/create", query, body, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/containers/create", query, body, nil) + defer ensureReaderClosed(resp) if err != nil { return response, err } - err = json.NewDecoder(serverResp.body).Decode(&response) + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } @@ -114,3 +113,42 @@ func hasEndpointSpecificMacAddress(networkingConfig *network.NetworkingConfig) b } return false } + +// allCapabilities is a magic value for "all capabilities" +const allCapabilities = "ALL" + +// normalizeCapabilities normalizes capabilities to their canonical form, +// removes duplicates, and sorts the results. +// +// It is similar to [github.com/docker/docker/oci/caps.NormalizeLegacyCapabilities], +// but performs no validation based on supported capabilities. +func normalizeCapabilities(caps []string) []string { + var normalized []string + + unique := make(map[string]struct{}) + for _, c := range caps { + c = normalizeCap(c) + if _, ok := unique[c]; ok { + continue + } + unique[c] = struct{}{} + normalized = append(normalized, c) + } + + sort.Strings(normalized) + return normalized +} + +// normalizeCap normalizes a capability to its canonical format by upper-casing +// and adding a "CAP_" prefix (if not yet present). It also accepts the "ALL" +// magic-value. +func normalizeCap(cap string) string { + cap = strings.ToUpper(cap) + if cap == allCapabilities { + return cap + } + if !strings.HasPrefix(cap, "CAP_") { + cap = "CAP_" + cap + } + return cap +} diff --git a/vendor/github.com/docker/docker/client/container_diff.go b/vendor/github.com/docker/docker/client/container_diff.go index c22c819a..52401898 100644 --- a/vendor/github.com/docker/docker/client/container_diff.go +++ b/vendor/github.com/docker/docker/client/container_diff.go @@ -10,14 +10,21 @@ import ( // ContainerDiff shows differences in a container filesystem since it was started. func (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]container.FilesystemChange, error) { - var changes []container.FilesystemChange - - serverResp, err := cli.get(ctx, "/containers/"+containerID+"/changes", url.Values{}, nil) - defer ensureReaderClosed(serverResp) + containerID, err := trimID("container", containerID) if err != nil { - return changes, err + return nil, err } - err = json.NewDecoder(serverResp.body).Decode(&changes) + resp, err := cli.get(ctx, "/containers/"+containerID+"/changes", url.Values{}, nil) + defer ensureReaderClosed(resp) + if err != nil { + return nil, err + } + + var changes []container.FilesystemChange + err = json.NewDecoder(resp.Body).Decode(&changes) + if err != nil { + return nil, err + } return changes, err } diff --git a/vendor/github.com/docker/docker/client/container_exec.go b/vendor/github.com/docker/docker/client/container_exec.go index 9379448d..a39ec717 100644 --- a/vendor/github.com/docker/docker/client/container_exec.go +++ b/vendor/github.com/docker/docker/client/container_exec.go @@ -11,8 +11,11 @@ import ( ) // ContainerExecCreate creates a new exec configuration to run an exec process. -func (cli *Client) ContainerExecCreate(ctx context.Context, container string, options container.ExecOptions) (types.IDResponse, error) { - var response types.IDResponse +func (cli *Client) ContainerExecCreate(ctx context.Context, containerID string, options container.ExecOptions) (container.ExecCreateResponse, error) { + containerID, err := trimID("container", containerID) + if err != nil { + return container.ExecCreateResponse{}, err + } // Make sure we negotiated (if the client is configured to do so), // as code below contains API-version specific handling of options. @@ -20,22 +23,24 @@ func (cli *Client) ContainerExecCreate(ctx context.Context, container string, op // Normally, version-negotiation (if enabled) would not happen until // the API request is made. if err := cli.checkVersion(ctx); err != nil { - return response, err + return container.ExecCreateResponse{}, err } if err := cli.NewVersionError(ctx, "1.25", "env"); len(options.Env) != 0 && err != nil { - return response, err + return container.ExecCreateResponse{}, err } if versions.LessThan(cli.ClientVersion(), "1.42") { options.ConsoleSize = nil } - resp, err := cli.post(ctx, "/containers/"+container+"/exec", nil, options, nil) + resp, err := cli.post(ctx, "/containers/"+containerID+"/exec", nil, options, nil) defer ensureReaderClosed(resp) if err != nil { - return response, err + return container.ExecCreateResponse{}, err } - err = json.NewDecoder(resp.body).Decode(&response) + + var response container.ExecCreateResponse + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } @@ -70,7 +75,7 @@ func (cli *Client) ContainerExecInspect(ctx context.Context, execID string) (con return response, err } - err = json.NewDecoder(resp.body).Decode(&response) + err = json.NewDecoder(resp.Body).Decode(&response) ensureReaderClosed(resp) return response, err } diff --git a/vendor/github.com/docker/docker/client/container_export.go b/vendor/github.com/docker/docker/client/container_export.go index d0c0a5cb..360d5276 100644 --- a/vendor/github.com/docker/docker/client/container_export.go +++ b/vendor/github.com/docker/docker/client/container_export.go @@ -10,10 +10,15 @@ import ( // and returns them as an io.ReadCloser. It's up to the caller // to close the stream. func (cli *Client) ContainerExport(ctx context.Context, containerID string) (io.ReadCloser, error) { - serverResp, err := cli.get(ctx, "/containers/"+containerID+"/export", url.Values{}, nil) + containerID, err := trimID("container", containerID) if err != nil { return nil, err } - return serverResp.body, nil + resp, err := cli.get(ctx, "/containers/"+containerID+"/export", url.Values{}, nil) + if err != nil { + return nil, err + } + + return resp.Body, nil } diff --git a/vendor/github.com/docker/docker/client/container_inspect.go b/vendor/github.com/docker/docker/client/container_inspect.go index d48f0d3a..60003186 100644 --- a/vendor/github.com/docker/docker/client/container_inspect.go +++ b/vendor/github.com/docker/docker/client/container_inspect.go @@ -7,46 +7,50 @@ import ( "io" "net/url" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" ) // ContainerInspect returns the container information. -func (cli *Client) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error) { - if containerID == "" { - return types.ContainerJSON{}, objectNotFoundError{object: "container", id: containerID} - } - serverResp, err := cli.get(ctx, "/containers/"+containerID+"/json", nil, nil) - defer ensureReaderClosed(serverResp) +func (cli *Client) ContainerInspect(ctx context.Context, containerID string) (container.InspectResponse, error) { + containerID, err := trimID("container", containerID) if err != nil { - return types.ContainerJSON{}, err + return container.InspectResponse{}, err } - var response types.ContainerJSON - err = json.NewDecoder(serverResp.body).Decode(&response) + resp, err := cli.get(ctx, "/containers/"+containerID+"/json", nil, nil) + defer ensureReaderClosed(resp) + if err != nil { + return container.InspectResponse{}, err + } + + var response container.InspectResponse + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } // ContainerInspectWithRaw returns the container information and its raw representation. -func (cli *Client) ContainerInspectWithRaw(ctx context.Context, containerID string, getSize bool) (types.ContainerJSON, []byte, error) { - if containerID == "" { - return types.ContainerJSON{}, nil, objectNotFoundError{object: "container", id: containerID} +func (cli *Client) ContainerInspectWithRaw(ctx context.Context, containerID string, getSize bool) (container.InspectResponse, []byte, error) { + containerID, err := trimID("container", containerID) + if err != nil { + return container.InspectResponse{}, nil, err } + query := url.Values{} if getSize { query.Set("size", "1") } - serverResp, err := cli.get(ctx, "/containers/"+containerID+"/json", query, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.get(ctx, "/containers/"+containerID+"/json", query, nil) + defer ensureReaderClosed(resp) if err != nil { - return types.ContainerJSON{}, nil, err + return container.InspectResponse{}, nil, err } - body, err := io.ReadAll(serverResp.body) + body, err := io.ReadAll(resp.Body) if err != nil { - return types.ContainerJSON{}, nil, err + return container.InspectResponse{}, nil, err } - var response types.ContainerJSON + var response container.InspectResponse rdr := bytes.NewReader(body) err = json.NewDecoder(rdr).Decode(&response) return response, body, err diff --git a/vendor/github.com/docker/docker/client/container_kill.go b/vendor/github.com/docker/docker/client/container_kill.go index 7c9529f1..22767ae6 100644 --- a/vendor/github.com/docker/docker/client/container_kill.go +++ b/vendor/github.com/docker/docker/client/container_kill.go @@ -7,6 +7,11 @@ import ( // ContainerKill terminates the container process but does not remove the container from the docker host. func (cli *Client) ContainerKill(ctx context.Context, containerID, signal string) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + query := url.Values{} if signal != "" { query.Set("signal", signal) diff --git a/vendor/github.com/docker/docker/client/container_list.go b/vendor/github.com/docker/docker/client/container_list.go index 782e1b3c..510bcdf6 100644 --- a/vendor/github.com/docker/docker/client/container_list.go +++ b/vendor/github.com/docker/docker/client/container_list.go @@ -6,13 +6,12 @@ import ( "net/url" "strconv" - "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" ) // ContainerList returns the list of containers in the docker host. -func (cli *Client) ContainerList(ctx context.Context, options container.ListOptions) ([]types.Container, error) { +func (cli *Client) ContainerList(ctx context.Context, options container.ListOptions) ([]container.Summary, error) { query := url.Values{} if options.All { @@ -51,7 +50,7 @@ func (cli *Client) ContainerList(ctx context.Context, options container.ListOpti return nil, err } - var containers []types.Container - err = json.NewDecoder(resp.body).Decode(&containers) + var containers []container.Summary + err = json.NewDecoder(resp.Body).Decode(&containers) return containers, err } diff --git a/vendor/github.com/docker/docker/client/container_logs.go b/vendor/github.com/docker/docker/client/container_logs.go index 61197d84..ae30f8d1 100644 --- a/vendor/github.com/docker/docker/client/container_logs.go +++ b/vendor/github.com/docker/docker/client/container_logs.go @@ -33,7 +33,12 @@ import ( // // You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this // stream. -func (cli *Client) ContainerLogs(ctx context.Context, container string, options container.LogsOptions) (io.ReadCloser, error) { +func (cli *Client) ContainerLogs(ctx context.Context, containerID string, options container.LogsOptions) (io.ReadCloser, error) { + containerID, err := trimID("container", containerID) + if err != nil { + return nil, err + } + query := url.Values{} if options.ShowStdout { query.Set("stdout", "1") @@ -72,9 +77,9 @@ func (cli *Client) ContainerLogs(ctx context.Context, container string, options } query.Set("tail", options.Tail) - resp, err := cli.get(ctx, "/containers/"+container+"/logs", query, nil) + resp, err := cli.get(ctx, "/containers/"+containerID+"/logs", query, nil) if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } diff --git a/vendor/github.com/docker/docker/client/container_pause.go b/vendor/github.com/docker/docker/client/container_pause.go index 5e7271a3..5cc29840 100644 --- a/vendor/github.com/docker/docker/client/container_pause.go +++ b/vendor/github.com/docker/docker/client/container_pause.go @@ -4,6 +4,11 @@ import "context" // ContainerPause pauses the main process of a given container without terminating it. func (cli *Client) ContainerPause(ctx context.Context, containerID string) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + resp, err := cli.post(ctx, "/containers/"+containerID+"/pause", nil, nil, nil) ensureReaderClosed(resp) return err diff --git a/vendor/github.com/docker/docker/client/container_prune.go b/vendor/github.com/docker/docker/client/container_prune.go index 29c922da..3176be59 100644 --- a/vendor/github.com/docker/docker/client/container_prune.go +++ b/vendor/github.com/docker/docker/client/container_prune.go @@ -11,25 +11,24 @@ import ( // ContainersPrune requests the daemon to delete unused data func (cli *Client) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (container.PruneReport, error) { - var report container.PruneReport - if err := cli.NewVersionError(ctx, "1.25", "container prune"); err != nil { - return report, err + return container.PruneReport{}, err } query, err := getFiltersQuery(pruneFilters) if err != nil { - return report, err + return container.PruneReport{}, err } - serverResp, err := cli.post(ctx, "/containers/prune", query, nil, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/containers/prune", query, nil, nil) + defer ensureReaderClosed(resp) if err != nil { - return report, err + return container.PruneReport{}, err } - if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil { - return report, fmt.Errorf("Error retrieving disk usage: %v", err) + var report container.PruneReport + if err := json.NewDecoder(resp.Body).Decode(&report); err != nil { + return container.PruneReport{}, fmt.Errorf("Error retrieving disk usage: %v", err) } return report, nil diff --git a/vendor/github.com/docker/docker/client/container_remove.go b/vendor/github.com/docker/docker/client/container_remove.go index 39f7b106..6661351a 100644 --- a/vendor/github.com/docker/docker/client/container_remove.go +++ b/vendor/github.com/docker/docker/client/container_remove.go @@ -9,6 +9,11 @@ import ( // ContainerRemove kills and removes a container from the docker host. func (cli *Client) ContainerRemove(ctx context.Context, containerID string, options container.RemoveOptions) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + query := url.Values{} if options.RemoveVolumes { query.Set("v", "1") diff --git a/vendor/github.com/docker/docker/client/container_rename.go b/vendor/github.com/docker/docker/client/container_rename.go index 240fdf55..0a092310 100644 --- a/vendor/github.com/docker/docker/client/container_rename.go +++ b/vendor/github.com/docker/docker/client/container_rename.go @@ -7,6 +7,11 @@ import ( // ContainerRename changes the name of a given container. func (cli *Client) ContainerRename(ctx context.Context, containerID, newContainerName string) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + query := url.Values{} query.Set("name", newContainerName) resp, err := cli.post(ctx, "/containers/"+containerID+"/rename", query, nil, nil) diff --git a/vendor/github.com/docker/docker/client/container_resize.go b/vendor/github.com/docker/docker/client/container_resize.go index 5cfd01d4..725c08ad 100644 --- a/vendor/github.com/docker/docker/client/container_resize.go +++ b/vendor/github.com/docker/docker/client/container_resize.go @@ -10,18 +10,27 @@ import ( // ContainerResize changes the size of the tty for a container. func (cli *Client) ContainerResize(ctx context.Context, containerID string, options container.ResizeOptions) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } return cli.resize(ctx, "/containers/"+containerID, options.Height, options.Width) } // ContainerExecResize changes the size of the tty for an exec process running inside a container. func (cli *Client) ContainerExecResize(ctx context.Context, execID string, options container.ResizeOptions) error { + execID, err := trimID("exec", execID) + if err != nil { + return err + } return cli.resize(ctx, "/exec/"+execID, options.Height, options.Width) } func (cli *Client) resize(ctx context.Context, basePath string, height, width uint) error { + // FIXME(thaJeztah): the API / backend accepts uint32, but container.ResizeOptions uses uint. query := url.Values{} - query.Set("h", strconv.Itoa(int(height))) - query.Set("w", strconv.Itoa(int(width))) + query.Set("h", strconv.FormatUint(uint64(height), 10)) + query.Set("w", strconv.FormatUint(uint64(width), 10)) resp, err := cli.post(ctx, basePath+"/resize", query, nil, nil) ensureReaderClosed(resp) diff --git a/vendor/github.com/docker/docker/client/container_restart.go b/vendor/github.com/docker/docker/client/container_restart.go index 02b5079b..50559ba6 100644 --- a/vendor/github.com/docker/docker/client/container_restart.go +++ b/vendor/github.com/docker/docker/client/container_restart.go @@ -13,6 +13,11 @@ import ( // It makes the daemon wait for the container to be up again for // a specific amount of time, given the timeout. func (cli *Client) ContainerRestart(ctx context.Context, containerID string, options container.StopOptions) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + query := url.Values{} if options.Timeout != nil { query.Set("t", strconv.Itoa(*options.Timeout)) diff --git a/vendor/github.com/docker/docker/client/container_start.go b/vendor/github.com/docker/docker/client/container_start.go index 33ba85f2..b81ed3eb 100644 --- a/vendor/github.com/docker/docker/client/container_start.go +++ b/vendor/github.com/docker/docker/client/container_start.go @@ -9,6 +9,11 @@ import ( // ContainerStart sends a request to the docker daemon to start a container. func (cli *Client) ContainerStart(ctx context.Context, containerID string, options container.StartOptions) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + query := url.Values{} if len(options.CheckpointID) != 0 { query.Set("checkpoint", options.CheckpointID) diff --git a/vendor/github.com/docker/docker/client/container_stats.go b/vendor/github.com/docker/docker/client/container_stats.go index b5641dae..a66b90cb 100644 --- a/vendor/github.com/docker/docker/client/container_stats.go +++ b/vendor/github.com/docker/docker/client/container_stats.go @@ -10,6 +10,11 @@ import ( // ContainerStats returns near realtime stats for a given container. // It's up to the caller to close the io.ReadCloser returned. func (cli *Client) ContainerStats(ctx context.Context, containerID string, stream bool) (container.StatsResponseReader, error) { + containerID, err := trimID("container", containerID) + if err != nil { + return container.StatsResponseReader{}, err + } + query := url.Values{} query.Set("stream", "0") if stream { @@ -22,14 +27,19 @@ func (cli *Client) ContainerStats(ctx context.Context, containerID string, strea } return container.StatsResponseReader{ - Body: resp.body, - OSType: getDockerOS(resp.header.Get("Server")), + Body: resp.Body, + OSType: getDockerOS(resp.Header.Get("Server")), }, nil } // ContainerStatsOneShot gets a single stat entry from a container. // It differs from `ContainerStats` in that the API should not wait to prime the stats func (cli *Client) ContainerStatsOneShot(ctx context.Context, containerID string) (container.StatsResponseReader, error) { + containerID, err := trimID("container", containerID) + if err != nil { + return container.StatsResponseReader{}, err + } + query := url.Values{} query.Set("stream", "0") query.Set("one-shot", "1") @@ -40,7 +50,7 @@ func (cli *Client) ContainerStatsOneShot(ctx context.Context, containerID string } return container.StatsResponseReader{ - Body: resp.body, - OSType: getDockerOS(resp.header.Get("Server")), + Body: resp.Body, + OSType: getDockerOS(resp.Header.Get("Server")), }, nil } diff --git a/vendor/github.com/docker/docker/client/container_stop.go b/vendor/github.com/docker/docker/client/container_stop.go index 7c98a354..eb0129ce 100644 --- a/vendor/github.com/docker/docker/client/container_stop.go +++ b/vendor/github.com/docker/docker/client/container_stop.go @@ -17,6 +17,11 @@ import ( // otherwise the engine default. A negative timeout value can be specified, // meaning no timeout, i.e. no forceful termination is performed. func (cli *Client) ContainerStop(ctx context.Context, containerID string, options container.StopOptions) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + query := url.Values{} if options.Timeout != nil { query.Set("t", strconv.Itoa(*options.Timeout)) diff --git a/vendor/github.com/docker/docker/client/container_top.go b/vendor/github.com/docker/docker/client/container_top.go index a5b78999..12c8b78f 100644 --- a/vendor/github.com/docker/docker/client/container_top.go +++ b/vendor/github.com/docker/docker/client/container_top.go @@ -10,8 +10,12 @@ import ( ) // ContainerTop shows process information from within a container. -func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (container.ContainerTopOKBody, error) { - var response container.ContainerTopOKBody +func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (container.TopResponse, error) { + containerID, err := trimID("container", containerID) + if err != nil { + return container.TopResponse{}, err + } + query := url.Values{} if len(arguments) > 0 { query.Set("ps_args", strings.Join(arguments, " ")) @@ -20,9 +24,10 @@ func (cli *Client) ContainerTop(ctx context.Context, containerID string, argumen resp, err := cli.get(ctx, "/containers/"+containerID+"/top", query, nil) defer ensureReaderClosed(resp) if err != nil { - return response, err + return container.TopResponse{}, err } - err = json.NewDecoder(resp.body).Decode(&response) + var response container.TopResponse + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/container_unpause.go b/vendor/github.com/docker/docker/client/container_unpause.go index 1d8f8731..f602549b 100644 --- a/vendor/github.com/docker/docker/client/container_unpause.go +++ b/vendor/github.com/docker/docker/client/container_unpause.go @@ -4,6 +4,11 @@ import "context" // ContainerUnpause resumes the process execution within a container func (cli *Client) ContainerUnpause(ctx context.Context, containerID string) error { + containerID, err := trimID("container", containerID) + if err != nil { + return err + } + resp, err := cli.post(ctx, "/containers/"+containerID+"/unpause", nil, nil, nil) ensureReaderClosed(resp) return err diff --git a/vendor/github.com/docker/docker/client/container_update.go b/vendor/github.com/docker/docker/client/container_update.go index bf68a530..7f0cf627 100644 --- a/vendor/github.com/docker/docker/client/container_update.go +++ b/vendor/github.com/docker/docker/client/container_update.go @@ -8,14 +8,19 @@ import ( ) // ContainerUpdate updates the resources of a container. -func (cli *Client) ContainerUpdate(ctx context.Context, containerID string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error) { - var response container.ContainerUpdateOKBody - serverResp, err := cli.post(ctx, "/containers/"+containerID+"/update", nil, updateConfig, nil) - defer ensureReaderClosed(serverResp) +func (cli *Client) ContainerUpdate(ctx context.Context, containerID string, updateConfig container.UpdateConfig) (container.UpdateResponse, error) { + containerID, err := trimID("container", containerID) if err != nil { - return response, err + return container.UpdateResponse{}, err } - err = json.NewDecoder(serverResp.body).Decode(&response) + resp, err := cli.post(ctx, "/containers/"+containerID+"/update", nil, updateConfig, nil) + defer ensureReaderClosed(resp) + if err != nil { + return container.UpdateResponse{}, err + } + + var response container.UpdateResponse + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/container_wait.go b/vendor/github.com/docker/docker/client/container_wait.go index 8bb6be0a..bda4a9ee 100644 --- a/vendor/github.com/docker/docker/client/container_wait.go +++ b/vendor/github.com/docker/docker/client/container_wait.go @@ -33,6 +33,12 @@ func (cli *Client) ContainerWait(ctx context.Context, containerID string, condit resultC := make(chan container.WaitResponse) errC := make(chan error, 1) + containerID, err := trimID("container", containerID) + if err != nil { + errC <- err + return resultC, errC + } + // Make sure we negotiated (if the client is configured to do so), // as code below contains API-version specific handling of options. // @@ -61,9 +67,8 @@ func (cli *Client) ContainerWait(ctx context.Context, containerID string, condit go func() { defer ensureReaderClosed(resp) - body := resp.body responseText := bytes.NewBuffer(nil) - stream := io.TeeReader(body, responseText) + stream := io.TeeReader(resp.Body, responseText) var res container.WaitResponse if err := json.NewDecoder(stream).Decode(&res); err != nil { @@ -105,7 +110,7 @@ func (cli *Client) legacyContainerWait(ctx context.Context, containerID string) defer ensureReaderClosed(resp) var res container.WaitResponse - if err := json.NewDecoder(resp.body).Decode(&res); err != nil { + if err := json.NewDecoder(resp.Body).Decode(&res); err != nil { errC <- err return } diff --git a/vendor/github.com/docker/docker/client/disk_usage.go b/vendor/github.com/docker/docker/client/disk_usage.go index ba0d92e9..ed788125 100644 --- a/vendor/github.com/docker/docker/client/disk_usage.go +++ b/vendor/github.com/docker/docker/client/disk_usage.go @@ -19,14 +19,14 @@ func (cli *Client) DiskUsage(ctx context.Context, options types.DiskUsageOptions } } - serverResp, err := cli.get(ctx, "/system/df", query, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.get(ctx, "/system/df", query, nil) + defer ensureReaderClosed(resp) if err != nil { return types.DiskUsage{}, err } var du types.DiskUsage - if err := json.NewDecoder(serverResp.body).Decode(&du); err != nil { + if err := json.NewDecoder(resp.Body).Decode(&du); err != nil { return types.DiskUsage{}, fmt.Errorf("Error retrieving disk usage: %v", err) } return du, nil diff --git a/vendor/github.com/docker/docker/client/distribution_inspect.go b/vendor/github.com/docker/docker/client/distribution_inspect.go index 68e6ec5e..b8654b24 100644 --- a/vendor/github.com/docker/docker/client/distribution_inspect.go +++ b/vendor/github.com/docker/docker/client/distribution_inspect.go @@ -11,14 +11,12 @@ import ( // DistributionInspect returns the image digest with the full manifest. func (cli *Client) DistributionInspect(ctx context.Context, imageRef, encodedRegistryAuth string) (registry.DistributionInspect, error) { - // Contact the registry to retrieve digest and platform information - var distributionInspect registry.DistributionInspect if imageRef == "" { - return distributionInspect, objectNotFoundError{object: "distribution", id: imageRef} + return registry.DistributionInspect{}, objectNotFoundError{object: "distribution", id: imageRef} } if err := cli.NewVersionError(ctx, "1.30", "distribution inspect"); err != nil { - return distributionInspect, err + return registry.DistributionInspect{}, err } var headers http.Header @@ -28,12 +26,14 @@ func (cli *Client) DistributionInspect(ctx context.Context, imageRef, encodedReg } } + // Contact the registry to retrieve digest and platform information resp, err := cli.get(ctx, "/distribution/"+imageRef+"/json", url.Values{}, headers) defer ensureReaderClosed(resp) if err != nil { - return distributionInspect, err + return registry.DistributionInspect{}, err } - err = json.NewDecoder(resp.body).Decode(&distributionInspect) + var distributionInspect registry.DistributionInspect + err = json.NewDecoder(resp.Body).Decode(&distributionInspect) return distributionInspect, err } diff --git a/vendor/github.com/docker/docker/client/errors.go b/vendor/github.com/docker/docker/client/errors.go index 0d01e243..609f92ce 100644 --- a/vendor/github.com/docker/docker/client/errors.go +++ b/vendor/github.com/docker/docker/client/errors.go @@ -2,11 +2,11 @@ package client // import "github.com/docker/docker/client" import ( "context" + "errors" "fmt" "github.com/docker/docker/api/types/versions" "github.com/docker/docker/errdefs" - "github.com/pkg/errors" ) // errConnectionFailed implements an error returned when connection failed. @@ -29,10 +29,18 @@ func IsErrConnectionFailed(err error) bool { } // ErrorConnectionFailed returns an error with host in the error message when connection to docker daemon failed. +// +// Deprecated: this function was only used internally, and will be removed in the next release. func ErrorConnectionFailed(host string) error { + return connectionFailed(host) +} + +// connectionFailed returns an error with host in the error message when connection +// to docker daemon failed. +func connectionFailed(host string) error { var err error if host == "" { - err = fmt.Errorf("Cannot connect to the Docker daemon. Is the docker daemon running on this host?") + err = errors.New("Cannot connect to the Docker daemon. Is the docker daemon running on this host?") } else { err = fmt.Errorf("Cannot connect to the Docker daemon at %s. Is the docker daemon running?", host) } diff --git a/vendor/github.com/docker/docker/client/events.go b/vendor/github.com/docker/docker/client/events.go index d3ab26be..c71d2a08 100644 --- a/vendor/github.com/docker/docker/client/events.go +++ b/vendor/github.com/docker/docker/client/events.go @@ -36,9 +36,9 @@ func (cli *Client) Events(ctx context.Context, options events.ListOptions) (<-ch errs <- err return } - defer resp.body.Close() + defer resp.Body.Close() - decoder := json.NewDecoder(resp.body) + decoder := json.NewDecoder(resp.Body) close(started) for { diff --git a/vendor/github.com/docker/docker/client/hijack.go b/vendor/github.com/docker/docker/client/hijack.go index 839d4c5c..2c78fad0 100644 --- a/vendor/github.com/docker/docker/client/hijack.go +++ b/vendor/github.com/docker/docker/client/hijack.go @@ -25,12 +25,17 @@ func (cli *Client) postHijacked(ctx context.Context, path string, query url.Valu if err != nil { return types.HijackedResponse{}, err } - conn, mediaType, err := cli.setupHijackConn(req, "tcp") + conn, mediaType, err := setupHijackConn(cli.dialer(), req, "tcp") if err != nil { return types.HijackedResponse{}, err } - return types.NewHijackedResponse(conn, mediaType), err + if versions.LessThan(cli.ClientVersion(), "1.42") { + // Prior to 1.42, Content-Type is always set to raw-stream and not relevant + mediaType = "" + } + + return types.NewHijackedResponse(conn, mediaType), nil } // DialHijack returns a hijacked connection with negotiated protocol proto. @@ -41,16 +46,15 @@ func (cli *Client) DialHijack(ctx context.Context, url, proto string, meta map[s } req = cli.addHeaders(req, meta) - conn, _, err := cli.setupHijackConn(req, proto) + conn, _, err := setupHijackConn(cli.Dialer(), req, proto) return conn, err } -func (cli *Client) setupHijackConn(req *http.Request, proto string) (_ net.Conn, _ string, retErr error) { +func setupHijackConn(dialer func(context.Context) (net.Conn, error), req *http.Request, proto string) (_ net.Conn, _ string, retErr error) { ctx := req.Context() req.Header.Set("Connection", "Upgrade") req.Header.Set("Upgrade", proto) - dialer := cli.Dialer() conn, err := dialer(ctx) if err != nil { return nil, "", errors.Wrap(err, "cannot connect to the Docker daemon. Is 'docker daemon' running on this host?") @@ -96,13 +100,7 @@ func (cli *Client) setupHijackConn(req *http.Request, proto string) (_ net.Conn, hc.r.Reset(nil) } - var mediaType string - if versions.GreaterThanOrEqualTo(cli.ClientVersion(), "1.42") { - // Prior to 1.42, Content-Type is always set to raw-stream and not relevant - mediaType = resp.Header.Get("Content-Type") - } - - return conn, mediaType, nil + return conn, resp.Header.Get("Content-Type"), nil } // hijackedConn wraps a net.Conn and is returned by setupHijackConn in the case diff --git a/vendor/github.com/docker/docker/client/image_build.go b/vendor/github.com/docker/docker/client/image_build.go index d294ddc8..6e2a4068 100644 --- a/vendor/github.com/docker/docker/client/image_build.go +++ b/vendor/github.com/docker/docker/client/image_build.go @@ -12,6 +12,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/network" ) // ImageBuild sends a request to the daemon to build images. @@ -32,22 +33,27 @@ func (cli *Client) ImageBuild(ctx context.Context, buildContext io.Reader, optio headers.Add("X-Registry-Config", base64.URLEncoding.EncodeToString(buf)) headers.Set("Content-Type", "application/x-tar") - serverResp, err := cli.postRaw(ctx, "/build", query, buildContext, headers) + resp, err := cli.postRaw(ctx, "/build", query, buildContext, headers) if err != nil { return types.ImageBuildResponse{}, err } return types.ImageBuildResponse{ - Body: serverResp.body, - OSType: getDockerOS(serverResp.header.Get("Server")), + Body: resp.Body, + OSType: getDockerOS(resp.Header.Get("Server")), }, nil } func (cli *Client) imageBuildOptionsToQuery(ctx context.Context, options types.ImageBuildOptions) (url.Values, error) { - query := url.Values{ - "t": options.Tags, - "securityopt": options.SecurityOpt, - "extrahosts": options.ExtraHosts, + query := url.Values{} + if len(options.Tags) > 0 { + query["t"] = options.Tags + } + if len(options.SecurityOpt) > 0 { + query["securityopt"] = options.SecurityOpt + } + if len(options.ExtraHosts) > 0 { + query["extrahosts"] = options.ExtraHosts } if options.SuppressOutput { query.Set("q", "1") @@ -58,9 +64,11 @@ func (cli *Client) imageBuildOptionsToQuery(ctx context.Context, options types.I if options.NoCache { query.Set("nocache", "1") } - if options.Remove { - query.Set("rm", "1") - } else { + if !options.Remove { + // only send value when opting out because the daemon's default is + // to remove intermediate containers after a successful build, + // + // TODO(thaJeztah): deprecate "Remove" option, and provide a "NoRemove" or "Keep" option instead. query.Set("rm", "0") } @@ -83,42 +91,70 @@ func (cli *Client) imageBuildOptionsToQuery(ctx context.Context, options types.I query.Set("isolation", string(options.Isolation)) } - query.Set("cpusetcpus", options.CPUSetCPUs) - query.Set("networkmode", options.NetworkMode) - query.Set("cpusetmems", options.CPUSetMems) - query.Set("cpushares", strconv.FormatInt(options.CPUShares, 10)) - query.Set("cpuquota", strconv.FormatInt(options.CPUQuota, 10)) - query.Set("cpuperiod", strconv.FormatInt(options.CPUPeriod, 10)) - query.Set("memory", strconv.FormatInt(options.Memory, 10)) - query.Set("memswap", strconv.FormatInt(options.MemorySwap, 10)) - query.Set("cgroupparent", options.CgroupParent) - query.Set("shmsize", strconv.FormatInt(options.ShmSize, 10)) - query.Set("dockerfile", options.Dockerfile) - query.Set("target", options.Target) - - ulimitsJSON, err := json.Marshal(options.Ulimits) - if err != nil { - return query, err + if options.CPUSetCPUs != "" { + query.Set("cpusetcpus", options.CPUSetCPUs) } - query.Set("ulimits", string(ulimitsJSON)) - - buildArgsJSON, err := json.Marshal(options.BuildArgs) - if err != nil { - return query, err + if options.NetworkMode != "" && options.NetworkMode != network.NetworkDefault { + query.Set("networkmode", options.NetworkMode) } - query.Set("buildargs", string(buildArgsJSON)) - - labelsJSON, err := json.Marshal(options.Labels) - if err != nil { - return query, err + if options.CPUSetMems != "" { + query.Set("cpusetmems", options.CPUSetMems) } - query.Set("labels", string(labelsJSON)) - - cacheFromJSON, err := json.Marshal(options.CacheFrom) - if err != nil { - return query, err + if options.CPUShares != 0 { + query.Set("cpushares", strconv.FormatInt(options.CPUShares, 10)) + } + if options.CPUQuota != 0 { + query.Set("cpuquota", strconv.FormatInt(options.CPUQuota, 10)) + } + if options.CPUPeriod != 0 { + query.Set("cpuperiod", strconv.FormatInt(options.CPUPeriod, 10)) + } + if options.Memory != 0 { + query.Set("memory", strconv.FormatInt(options.Memory, 10)) + } + if options.MemorySwap != 0 { + query.Set("memswap", strconv.FormatInt(options.MemorySwap, 10)) + } + if options.CgroupParent != "" { + query.Set("cgroupparent", options.CgroupParent) + } + if options.ShmSize != 0 { + query.Set("shmsize", strconv.FormatInt(options.ShmSize, 10)) + } + if options.Dockerfile != "" { + query.Set("dockerfile", options.Dockerfile) + } + if options.Target != "" { + query.Set("target", options.Target) + } + if len(options.Ulimits) != 0 { + ulimitsJSON, err := json.Marshal(options.Ulimits) + if err != nil { + return query, err + } + query.Set("ulimits", string(ulimitsJSON)) + } + if len(options.BuildArgs) != 0 { + buildArgsJSON, err := json.Marshal(options.BuildArgs) + if err != nil { + return query, err + } + query.Set("buildargs", string(buildArgsJSON)) + } + if len(options.Labels) != 0 { + labelsJSON, err := json.Marshal(options.Labels) + if err != nil { + return query, err + } + query.Set("labels", string(labelsJSON)) + } + if len(options.CacheFrom) != 0 { + cacheFromJSON, err := json.Marshal(options.CacheFrom) + if err != nil { + return query, err + } + query.Set("cachefrom", string(cacheFromJSON)) } - query.Set("cachefrom", string(cacheFromJSON)) if options.SessionID != "" { query.Set("session", options.SessionID) } @@ -131,7 +167,9 @@ func (cli *Client) imageBuildOptionsToQuery(ctx context.Context, options types.I if options.BuildID != "" { query.Set("buildid", options.BuildID) } - query.Set("version", string(options.Version)) + if options.Version != "" { + query.Set("version", string(options.Version)) + } if options.Outputs != nil { outputsJSON, err := json.Marshal(options.Outputs) diff --git a/vendor/github.com/docker/docker/client/image_create.go b/vendor/github.com/docker/docker/client/image_create.go index 7c7873dc..0357051e 100644 --- a/vendor/github.com/docker/docker/client/image_create.go +++ b/vendor/github.com/docker/docker/client/image_create.go @@ -30,10 +30,10 @@ func (cli *Client) ImageCreate(ctx context.Context, parentReference string, opti if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } -func (cli *Client) tryImageCreate(ctx context.Context, query url.Values, registryAuth string) (serverResponse, error) { +func (cli *Client) tryImageCreate(ctx context.Context, query url.Values, registryAuth string) (*http.Response, error) { return cli.post(ctx, "/images/create", query, nil, http.Header{ registry.AuthHeader: {registryAuth}, }) diff --git a/vendor/github.com/docker/docker/client/image_history.go b/vendor/github.com/docker/docker/client/image_history.go index b5bea10d..49381fb8 100644 --- a/vendor/github.com/docker/docker/client/image_history.go +++ b/vendor/github.com/docker/docker/client/image_history.go @@ -3,20 +3,54 @@ package client // import "github.com/docker/docker/client" import ( "context" "encoding/json" + "fmt" "net/url" "github.com/docker/docker/api/types/image" + ocispec "github.com/opencontainers/image-spec/specs-go/v1" ) +// ImageHistoryWithPlatform sets the platform for the image history operation. +func ImageHistoryWithPlatform(platform ocispec.Platform) ImageHistoryOption { + return imageHistoryOptionFunc(func(opt *imageHistoryOpts) error { + if opt.apiOptions.Platform != nil { + return fmt.Errorf("platform already set to %s", *opt.apiOptions.Platform) + } + opt.apiOptions.Platform = &platform + return nil + }) +} + // ImageHistory returns the changes in an image in history format. -func (cli *Client) ImageHistory(ctx context.Context, imageID string) ([]image.HistoryResponseItem, error) { - var history []image.HistoryResponseItem - serverResp, err := cli.get(ctx, "/images/"+imageID+"/history", url.Values{}, nil) - defer ensureReaderClosed(serverResp) - if err != nil { - return history, err +func (cli *Client) ImageHistory(ctx context.Context, imageID string, historyOpts ...ImageHistoryOption) ([]image.HistoryResponseItem, error) { + query := url.Values{} + + var opts imageHistoryOpts + for _, o := range historyOpts { + if err := o.Apply(&opts); err != nil { + return nil, err + } } - err = json.NewDecoder(serverResp.body).Decode(&history) + if opts.apiOptions.Platform != nil { + if err := cli.NewVersionError(ctx, "1.48", "platform"); err != nil { + return nil, err + } + + p, err := encodePlatform(opts.apiOptions.Platform) + if err != nil { + return nil, err + } + query.Set("platform", p) + } + + resp, err := cli.get(ctx, "/images/"+imageID+"/history", query, nil) + defer ensureReaderClosed(resp) + if err != nil { + return nil, err + } + + var history []image.HistoryResponseItem + err = json.NewDecoder(resp.Body).Decode(&history) return history, err } diff --git a/vendor/github.com/docker/docker/client/image_history_opts.go b/vendor/github.com/docker/docker/client/image_history_opts.go new file mode 100644 index 00000000..6d3494dd --- /dev/null +++ b/vendor/github.com/docker/docker/client/image_history_opts.go @@ -0,0 +1,19 @@ +package client + +import ( + "github.com/docker/docker/api/types/image" +) + +// ImageHistoryOption is a type representing functional options for the image history operation. +type ImageHistoryOption interface { + Apply(*imageHistoryOpts) error +} +type imageHistoryOptionFunc func(opt *imageHistoryOpts) error + +func (f imageHistoryOptionFunc) Apply(o *imageHistoryOpts) error { + return f(o) +} + +type imageHistoryOpts struct { + apiOptions image.HistoryOptions +} diff --git a/vendor/github.com/docker/docker/client/image_import.go b/vendor/github.com/docker/docker/client/image_import.go index 43d55eda..5849d85b 100644 --- a/vendor/github.com/docker/docker/client/image_import.go +++ b/vendor/github.com/docker/docker/client/image_import.go @@ -21,10 +21,18 @@ func (cli *Client) ImageImport(ctx context.Context, source image.ImportSource, r } query := url.Values{} - query.Set("fromSrc", source.SourceName) - query.Set("repo", ref) - query.Set("tag", options.Tag) - query.Set("message", options.Message) + if source.SourceName != "" { + query.Set("fromSrc", source.SourceName) + } + if ref != "" { + query.Set("repo", ref) + } + if options.Tag != "" { + query.Set("tag", options.Tag) + } + if options.Message != "" { + query.Set("message", options.Message) + } if options.Platform != "" { query.Set("platform", strings.ToLower(options.Platform)) } @@ -36,5 +44,5 @@ func (cli *Client) ImageImport(ctx context.Context, source image.ImportSource, r if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } diff --git a/vendor/github.com/docker/docker/client/image_inspect.go b/vendor/github.com/docker/docker/client/image_inspect.go index 1de10e5a..11611954 100644 --- a/vendor/github.com/docker/docker/client/image_inspect.go +++ b/vendor/github.com/docker/docker/client/image_inspect.go @@ -4,29 +4,62 @@ import ( "bytes" "context" "encoding/json" + "fmt" "io" + "net/url" - "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/image" ) -// ImageInspectWithRaw returns the image information and its raw representation. -func (cli *Client) ImageInspectWithRaw(ctx context.Context, imageID string) (types.ImageInspect, []byte, error) { +// ImageInspect returns the image information. +func (cli *Client) ImageInspect(ctx context.Context, imageID string, inspectOpts ...ImageInspectOption) (image.InspectResponse, error) { if imageID == "" { - return types.ImageInspect{}, nil, objectNotFoundError{object: "image", id: imageID} - } - serverResp, err := cli.get(ctx, "/images/"+imageID+"/json", nil, nil) - defer ensureReaderClosed(serverResp) - if err != nil { - return types.ImageInspect{}, nil, err + return image.InspectResponse{}, objectNotFoundError{object: "image", id: imageID} } - body, err := io.ReadAll(serverResp.body) - if err != nil { - return types.ImageInspect{}, nil, err + var opts imageInspectOpts + for _, opt := range inspectOpts { + if err := opt.Apply(&opts); err != nil { + return image.InspectResponse{}, fmt.Errorf("error applying image inspect option: %w", err) + } } - var response types.ImageInspect - rdr := bytes.NewReader(body) - err = json.NewDecoder(rdr).Decode(&response) - return response, body, err + query := url.Values{} + if opts.apiOptions.Manifests { + if err := cli.NewVersionError(ctx, "1.48", "manifests"); err != nil { + return image.InspectResponse{}, err + } + query.Set("manifests", "1") + } + + resp, err := cli.get(ctx, "/images/"+imageID+"/json", query, nil) + defer ensureReaderClosed(resp) + if err != nil { + return image.InspectResponse{}, err + } + + buf := opts.raw + if buf == nil { + buf = &bytes.Buffer{} + } + + if _, err := io.Copy(buf, resp.Body); err != nil { + return image.InspectResponse{}, err + } + + var response image.InspectResponse + err = json.Unmarshal(buf.Bytes(), &response) + return response, err +} + +// ImageInspectWithRaw returns the image information and its raw representation. +// +// Deprecated: Use [Client.ImageInspect] instead. Raw response can be obtained using the [ImageInspectWithRawResponse] option. +func (cli *Client) ImageInspectWithRaw(ctx context.Context, imageID string) (image.InspectResponse, []byte, error) { + var buf bytes.Buffer + resp, err := cli.ImageInspect(ctx, imageID, ImageInspectWithRawResponse(&buf)) + if err != nil { + return image.InspectResponse{}, nil, err + } + return resp, buf.Bytes(), err } diff --git a/vendor/github.com/docker/docker/client/image_inspect_opts.go b/vendor/github.com/docker/docker/client/image_inspect_opts.go new file mode 100644 index 00000000..2607f367 --- /dev/null +++ b/vendor/github.com/docker/docker/client/image_inspect_opts.go @@ -0,0 +1,50 @@ +package client + +import ( + "bytes" + + "github.com/docker/docker/api/types/image" +) + +// ImageInspectOption is a type representing functional options for the image inspect operation. +type ImageInspectOption interface { + Apply(*imageInspectOpts) error +} +type imageInspectOptionFunc func(opt *imageInspectOpts) error + +func (f imageInspectOptionFunc) Apply(o *imageInspectOpts) error { + return f(o) +} + +// ImageInspectWithRawResponse instructs the client to additionally store the +// raw inspect response in the provided buffer. +func ImageInspectWithRawResponse(raw *bytes.Buffer) ImageInspectOption { + return imageInspectOptionFunc(func(opts *imageInspectOpts) error { + opts.raw = raw + return nil + }) +} + +// ImageInspectWithManifests sets manifests API option for the image inspect operation. +// This option is only available for API version 1.48 and up. +// With this option set, the image inspect operation response will have the +// [image.InspectResponse.Manifests] field populated if the server is multi-platform capable. +func ImageInspectWithManifests(manifests bool) ImageInspectOption { + return imageInspectOptionFunc(func(clientOpts *imageInspectOpts) error { + clientOpts.apiOptions.Manifests = manifests + return nil + }) +} + +// ImageInspectWithAPIOpts sets the API options for the image inspect operation. +func ImageInspectWithAPIOpts(opts image.InspectOptions) ImageInspectOption { + return imageInspectOptionFunc(func(clientOpts *imageInspectOpts) error { + clientOpts.apiOptions = opts + return nil + }) +} + +type imageInspectOpts struct { + raw *bytes.Buffer + apiOptions image.InspectOptions +} diff --git a/vendor/github.com/docker/docker/client/image_list.go b/vendor/github.com/docker/docker/client/image_list.go index bef67943..e1911eb7 100644 --- a/vendor/github.com/docker/docker/client/image_list.go +++ b/vendor/github.com/docker/docker/client/image_list.go @@ -56,12 +56,12 @@ func (cli *Client) ImageList(ctx context.Context, options image.ListOptions) ([] query.Set("manifests", "1") } - serverResp, err := cli.get(ctx, "/images/json", query, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.get(ctx, "/images/json", query, nil) + defer ensureReaderClosed(resp) if err != nil { return images, err } - err = json.NewDecoder(serverResp.body).Decode(&images) + err = json.NewDecoder(resp.Body).Decode(&images) return images, err } diff --git a/vendor/github.com/docker/docker/client/image_load.go b/vendor/github.com/docker/docker/client/image_load.go index c68f0013..d83877d4 100644 --- a/vendor/github.com/docker/docker/client/image_load.go +++ b/vendor/github.com/docker/docker/client/image_load.go @@ -12,20 +12,43 @@ import ( // ImageLoad loads an image in the docker host from the client host. // It's up to the caller to close the io.ReadCloser in the // ImageLoadResponse returned by this function. -func (cli *Client) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (image.LoadResponse, error) { - v := url.Values{} - v.Set("quiet", "0") - if quiet { - v.Set("quiet", "1") +// +// Platform is an optional parameter that specifies the platform to load from +// the provided multi-platform image. This is only has effect if the input image +// is a multi-platform image. +func (cli *Client) ImageLoad(ctx context.Context, input io.Reader, loadOpts ...ImageLoadOption) (image.LoadResponse, error) { + var opts imageLoadOpts + for _, opt := range loadOpts { + if err := opt.Apply(&opts); err != nil { + return image.LoadResponse{}, err + } } - resp, err := cli.postRaw(ctx, "/images/load", v, input, http.Header{ + + query := url.Values{} + query.Set("quiet", "0") + if opts.apiOptions.Quiet { + query.Set("quiet", "1") + } + if len(opts.apiOptions.Platforms) > 0 { + if err := cli.NewVersionError(ctx, "1.48", "platform"); err != nil { + return image.LoadResponse{}, err + } + + p, err := encodePlatforms(opts.apiOptions.Platforms...) + if err != nil { + return image.LoadResponse{}, err + } + query["platform"] = p + } + + resp, err := cli.postRaw(ctx, "/images/load", query, input, http.Header{ "Content-Type": {"application/x-tar"}, }) if err != nil { return image.LoadResponse{}, err } return image.LoadResponse{ - Body: resp.body, - JSON: resp.header.Get("Content-Type") == "application/json", + Body: resp.Body, + JSON: resp.Header.Get("Content-Type") == "application/json", }, nil } diff --git a/vendor/github.com/docker/docker/client/image_load_opts.go b/vendor/github.com/docker/docker/client/image_load_opts.go new file mode 100644 index 00000000..ebcedd41 --- /dev/null +++ b/vendor/github.com/docker/docker/client/image_load_opts.go @@ -0,0 +1,41 @@ +package client + +import ( + "fmt" + + "github.com/docker/docker/api/types/image" + ocispec "github.com/opencontainers/image-spec/specs-go/v1" +) + +// ImageLoadOption is a type representing functional options for the image load operation. +type ImageLoadOption interface { + Apply(*imageLoadOpts) error +} +type imageLoadOptionFunc func(opt *imageLoadOpts) error + +func (f imageLoadOptionFunc) Apply(o *imageLoadOpts) error { + return f(o) +} + +type imageLoadOpts struct { + apiOptions image.LoadOptions +} + +// ImageLoadWithQuiet sets the quiet option for the image load operation. +func ImageLoadWithQuiet(quiet bool) ImageLoadOption { + return imageLoadOptionFunc(func(opt *imageLoadOpts) error { + opt.apiOptions.Quiet = quiet + return nil + }) +} + +// ImageLoadWithPlatforms sets the platforms to be loaded from the image. +func ImageLoadWithPlatforms(platforms ...ocispec.Platform) ImageLoadOption { + return imageLoadOptionFunc(func(opt *imageLoadOpts) error { + if opt.apiOptions.Platforms != nil { + return fmt.Errorf("platforms already set to %v", opt.apiOptions.Platforms) + } + opt.apiOptions.Platforms = platforms + return nil + }) +} diff --git a/vendor/github.com/docker/docker/client/image_prune.go b/vendor/github.com/docker/docker/client/image_prune.go index 5ee987e2..7c354d7b 100644 --- a/vendor/github.com/docker/docker/client/image_prune.go +++ b/vendor/github.com/docker/docker/client/image_prune.go @@ -11,25 +11,24 @@ import ( // ImagesPrune requests the daemon to delete unused data func (cli *Client) ImagesPrune(ctx context.Context, pruneFilters filters.Args) (image.PruneReport, error) { - var report image.PruneReport - if err := cli.NewVersionError(ctx, "1.25", "image prune"); err != nil { - return report, err + return image.PruneReport{}, err } query, err := getFiltersQuery(pruneFilters) if err != nil { - return report, err + return image.PruneReport{}, err } - serverResp, err := cli.post(ctx, "/images/prune", query, nil, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/images/prune", query, nil, nil) + defer ensureReaderClosed(resp) if err != nil { - return report, err + return image.PruneReport{}, err } - if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil { - return report, fmt.Errorf("Error retrieving disk usage: %v", err) + var report image.PruneReport + if err := json.NewDecoder(resp.Body).Decode(&report); err != nil { + return image.PruneReport{}, fmt.Errorf("Error retrieving disk usage: %v", err) } return report, nil diff --git a/vendor/github.com/docker/docker/client/image_pull.go b/vendor/github.com/docker/docker/client/image_pull.go index 1634c4c8..4286942b 100644 --- a/vendor/github.com/docker/docker/client/image_pull.go +++ b/vendor/github.com/docker/docker/client/image_pull.go @@ -45,7 +45,7 @@ func (cli *Client) ImagePull(ctx context.Context, refStr string, options image.P if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } // getAPITagFromNamedRef returns a tag from the specified reference. diff --git a/vendor/github.com/docker/docker/client/image_push.go b/vendor/github.com/docker/docker/client/image_push.go index 16f9c465..b340bc4f 100644 --- a/vendor/github.com/docker/docker/client/image_push.go +++ b/vendor/github.com/docker/docker/client/image_push.go @@ -63,10 +63,10 @@ func (cli *Client) ImagePush(ctx context.Context, image string, options image.Pu if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } -func (cli *Client) tryImagePush(ctx context.Context, imageID string, query url.Values, registryAuth string) (serverResponse, error) { +func (cli *Client) tryImagePush(ctx context.Context, imageID string, query url.Values, registryAuth string) (*http.Response, error) { return cli.post(ctx, "/images/"+imageID+"/push", query, nil, http.Header{ registry.AuthHeader: {registryAuth}, }) diff --git a/vendor/github.com/docker/docker/client/image_remove.go b/vendor/github.com/docker/docker/client/image_remove.go index 652d1bfa..b0c87ca0 100644 --- a/vendor/github.com/docker/docker/client/image_remove.go +++ b/vendor/github.com/docker/docker/client/image_remove.go @@ -19,13 +19,13 @@ func (cli *Client) ImageRemove(ctx context.Context, imageID string, options imag query.Set("noprune", "1") } - var dels []image.DeleteResponse resp, err := cli.delete(ctx, "/images/"+imageID, query, nil) defer ensureReaderClosed(resp) if err != nil { - return dels, err + return nil, err } - err = json.NewDecoder(resp.body).Decode(&dels) + var dels []image.DeleteResponse + err = json.NewDecoder(resp.Body).Decode(&dels) return dels, err } diff --git a/vendor/github.com/docker/docker/client/image_save.go b/vendor/github.com/docker/docker/client/image_save.go index d1314e4b..0aa7177d 100644 --- a/vendor/github.com/docker/docker/client/image_save.go +++ b/vendor/github.com/docker/docker/client/image_save.go @@ -7,15 +7,35 @@ import ( ) // ImageSave retrieves one or more images from the docker host as an io.ReadCloser. -// It's up to the caller to store the images and close the stream. -func (cli *Client) ImageSave(ctx context.Context, imageIDs []string) (io.ReadCloser, error) { +// +// Platforms is an optional parameter that specifies the platforms to save from the image. +// This is only has effect if the input image is a multi-platform image. +func (cli *Client) ImageSave(ctx context.Context, imageIDs []string, saveOpts ...ImageSaveOption) (io.ReadCloser, error) { + var opts imageSaveOpts + for _, opt := range saveOpts { + if err := opt.Apply(&opts); err != nil { + return nil, err + } + } + query := url.Values{ "names": imageIDs, } + if len(opts.apiOptions.Platforms) > 0 { + if err := cli.NewVersionError(ctx, "1.48", "platform"); err != nil { + return nil, err + } + p, err := encodePlatforms(opts.apiOptions.Platforms...) + if err != nil { + return nil, err + } + query["platform"] = p + } + resp, err := cli.get(ctx, "/images/get", query, nil) if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } diff --git a/vendor/github.com/docker/docker/client/image_save_opts.go b/vendor/github.com/docker/docker/client/image_save_opts.go new file mode 100644 index 00000000..acd8f282 --- /dev/null +++ b/vendor/github.com/docker/docker/client/image_save_opts.go @@ -0,0 +1,33 @@ +package client + +import ( + "fmt" + + "github.com/docker/docker/api/types/image" + ocispec "github.com/opencontainers/image-spec/specs-go/v1" +) + +type ImageSaveOption interface { + Apply(*imageSaveOpts) error +} + +type imageSaveOptionFunc func(opt *imageSaveOpts) error + +func (f imageSaveOptionFunc) Apply(o *imageSaveOpts) error { + return f(o) +} + +// ImageSaveWithPlatforms sets the platforms to be saved from the image. +func ImageSaveWithPlatforms(platforms ...ocispec.Platform) ImageSaveOption { + return imageSaveOptionFunc(func(opt *imageSaveOpts) error { + if opt.apiOptions.Platforms != nil { + return fmt.Errorf("platforms already set to %v", opt.apiOptions.Platforms) + } + opt.apiOptions.Platforms = platforms + return nil + }) +} + +type imageSaveOpts struct { + apiOptions image.SaveOptions +} diff --git a/vendor/github.com/docker/docker/client/image_search.go b/vendor/github.com/docker/docker/client/image_search.go index 0a074575..0a7b5ec2 100644 --- a/vendor/github.com/docker/docker/client/image_search.go +++ b/vendor/github.com/docker/docker/client/image_search.go @@ -43,11 +43,11 @@ func (cli *Client) ImageSearch(ctx context.Context, term string, options registr return results, err } - err = json.NewDecoder(resp.body).Decode(&results) + err = json.NewDecoder(resp.Body).Decode(&results) return results, err } -func (cli *Client) tryImageSearch(ctx context.Context, query url.Values, registryAuth string) (serverResponse, error) { +func (cli *Client) tryImageSearch(ctx context.Context, query url.Values, registryAuth string) (*http.Response, error) { return cli.get(ctx, "/images/search", query, http.Header{ registry.AuthHeader: {registryAuth}, }) diff --git a/vendor/github.com/docker/docker/client/info.go b/vendor/github.com/docker/docker/client/info.go index cc3fcc46..6396f4b6 100644 --- a/vendor/github.com/docker/docker/client/info.go +++ b/vendor/github.com/docker/docker/client/info.go @@ -12,13 +12,13 @@ import ( // Info returns information about the docker server. func (cli *Client) Info(ctx context.Context) (system.Info, error) { var info system.Info - serverResp, err := cli.get(ctx, "/info", url.Values{}, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.get(ctx, "/info", url.Values{}, nil) + defer ensureReaderClosed(resp) if err != nil { return info, err } - if err := json.NewDecoder(serverResp.body).Decode(&info); err != nil { + if err := json.NewDecoder(resp.Body).Decode(&info); err != nil { return info, fmt.Errorf("Error reading remote info: %v", err) } diff --git a/vendor/github.com/docker/docker/client/interface_stable.go b/vendor/github.com/docker/docker/client/interface_stable.go deleted file mode 100644 index 5502cd74..00000000 --- a/vendor/github.com/docker/docker/client/interface_stable.go +++ /dev/null @@ -1,10 +0,0 @@ -package client // import "github.com/docker/docker/client" - -// APIClient is an interface that clients that talk with a docker server must implement. -type APIClient interface { - CommonAPIClient - apiClientExperimental -} - -// Ensure that Client always implements APIClient. -var _ APIClient = &Client{} diff --git a/vendor/github.com/docker/docker/client/login.go b/vendor/github.com/docker/docker/client/login.go index 19e985e0..d3572c1b 100644 --- a/vendor/github.com/docker/docker/client/login.go +++ b/vendor/github.com/docker/docker/client/login.go @@ -19,6 +19,6 @@ func (cli *Client) RegistryLogin(ctx context.Context, auth registry.AuthConfig) } var response registry.AuthenticateOKBody - err = json.NewDecoder(resp.body).Decode(&response) + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/network_connect.go b/vendor/github.com/docker/docker/client/network_connect.go index 8daf8906..fa7cc34f 100644 --- a/vendor/github.com/docker/docker/client/network_connect.go +++ b/vendor/github.com/docker/docker/client/network_connect.go @@ -8,6 +8,16 @@ import ( // NetworkConnect connects a container to an existent network in the docker host. func (cli *Client) NetworkConnect(ctx context.Context, networkID, containerID string, config *network.EndpointSettings) error { + networkID, err := trimID("network", networkID) + if err != nil { + return err + } + + containerID, err = trimID("container", containerID) + if err != nil { + return err + } + nc := network.ConnectOptions{ Container: containerID, EndpointConfig: config, diff --git a/vendor/github.com/docker/docker/client/network_create.go b/vendor/github.com/docker/docker/client/network_create.go index 850e31cc..eef95144 100644 --- a/vendor/github.com/docker/docker/client/network_create.go +++ b/vendor/github.com/docker/docker/client/network_create.go @@ -10,15 +10,13 @@ import ( // NetworkCreate creates a new network in the docker host. func (cli *Client) NetworkCreate(ctx context.Context, name string, options network.CreateOptions) (network.CreateResponse, error) { - var response network.CreateResponse - // Make sure we negotiated (if the client is configured to do so), // as code below contains API-version specific handling of options. // // Normally, version-negotiation (if enabled) would not happen until // the API request is made. if err := cli.checkVersion(ctx); err != nil { - return response, err + return network.CreateResponse{}, err } networkCreateRequest := network.CreateRequest{ @@ -30,12 +28,13 @@ func (cli *Client) NetworkCreate(ctx context.Context, name string, options netwo networkCreateRequest.CheckDuplicate = &enabled //nolint:staticcheck // ignore SA1019: CheckDuplicate is deprecated since API v1.44. } - serverResp, err := cli.post(ctx, "/networks/create", nil, networkCreateRequest, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/networks/create", nil, networkCreateRequest, nil) + defer ensureReaderClosed(resp) if err != nil { - return response, err + return network.CreateResponse{}, err } - err = json.NewDecoder(serverResp.body).Decode(&response) + var response network.CreateResponse + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/network_disconnect.go b/vendor/github.com/docker/docker/client/network_disconnect.go index aaf428d8..d8051df2 100644 --- a/vendor/github.com/docker/docker/client/network_disconnect.go +++ b/vendor/github.com/docker/docker/client/network_disconnect.go @@ -8,6 +8,16 @@ import ( // NetworkDisconnect disconnects a container from an existent network in the docker host. func (cli *Client) NetworkDisconnect(ctx context.Context, networkID, containerID string, force bool) error { + networkID, err := trimID("network", networkID) + if err != nil { + return err + } + + containerID, err = trimID("container", containerID) + if err != nil { + return err + } + nd := network.DisconnectOptions{ Container: containerID, Force: force, diff --git a/vendor/github.com/docker/docker/client/network_inspect.go b/vendor/github.com/docker/docker/client/network_inspect.go index afc47de6..1387c080 100644 --- a/vendor/github.com/docker/docker/client/network_inspect.go +++ b/vendor/github.com/docker/docker/client/network_inspect.go @@ -18,8 +18,9 @@ func (cli *Client) NetworkInspect(ctx context.Context, networkID string, options // NetworkInspectWithRaw returns the information for a specific network configured in the docker host and its raw representation. func (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string, options network.InspectOptions) (network.Inspect, []byte, error) { - if networkID == "" { - return network.Inspect{}, nil, objectNotFoundError{object: "network", id: networkID} + networkID, err := trimID("network", networkID) + if err != nil { + return network.Inspect{}, nil, err } query := url.Values{} if options.Verbose { @@ -35,7 +36,7 @@ func (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string, return network.Inspect{}, nil, err } - raw, err := io.ReadAll(resp.body) + raw, err := io.ReadAll(resp.Body) if err != nil { return network.Inspect{}, nil, err } diff --git a/vendor/github.com/docker/docker/client/network_list.go b/vendor/github.com/docker/docker/client/network_list.go index 72957d47..e1b4fca7 100644 --- a/vendor/github.com/docker/docker/client/network_list.go +++ b/vendor/github.com/docker/docker/client/network_list.go @@ -27,6 +27,6 @@ func (cli *Client) NetworkList(ctx context.Context, options network.ListOptions) if err != nil { return networkResources, err } - err = json.NewDecoder(resp.body).Decode(&networkResources) + err = json.NewDecoder(resp.Body).Decode(&networkResources) return networkResources, err } diff --git a/vendor/github.com/docker/docker/client/network_prune.go b/vendor/github.com/docker/docker/client/network_prune.go index 708cc61a..90d3679f 100644 --- a/vendor/github.com/docker/docker/client/network_prune.go +++ b/vendor/github.com/docker/docker/client/network_prune.go @@ -11,25 +11,24 @@ import ( // NetworksPrune requests the daemon to delete unused networks func (cli *Client) NetworksPrune(ctx context.Context, pruneFilters filters.Args) (network.PruneReport, error) { - var report network.PruneReport - if err := cli.NewVersionError(ctx, "1.25", "network prune"); err != nil { - return report, err + return network.PruneReport{}, err } query, err := getFiltersQuery(pruneFilters) if err != nil { - return report, err + return network.PruneReport{}, err } - serverResp, err := cli.post(ctx, "/networks/prune", query, nil, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/networks/prune", query, nil, nil) + defer ensureReaderClosed(resp) if err != nil { - return report, err + return network.PruneReport{}, err } - if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil { - return report, fmt.Errorf("Error retrieving network prune report: %v", err) + var report network.PruneReport + if err := json.NewDecoder(resp.Body).Decode(&report); err != nil { + return network.PruneReport{}, fmt.Errorf("Error retrieving network prune report: %v", err) } return report, nil diff --git a/vendor/github.com/docker/docker/client/network_remove.go b/vendor/github.com/docker/docker/client/network_remove.go index 9d6c6cef..89fdaaf3 100644 --- a/vendor/github.com/docker/docker/client/network_remove.go +++ b/vendor/github.com/docker/docker/client/network_remove.go @@ -4,6 +4,10 @@ import "context" // NetworkRemove removes an existent network from the docker host. func (cli *Client) NetworkRemove(ctx context.Context, networkID string) error { + networkID, err := trimID("network", networkID) + if err != nil { + return err + } resp, err := cli.delete(ctx, "/networks/"+networkID, nil, nil) defer ensureReaderClosed(resp) return err diff --git a/vendor/github.com/docker/docker/client/node_inspect.go b/vendor/github.com/docker/docker/client/node_inspect.go index 95ab9b1b..5d3343dc 100644 --- a/vendor/github.com/docker/docker/client/node_inspect.go +++ b/vendor/github.com/docker/docker/client/node_inspect.go @@ -11,16 +11,17 @@ import ( // NodeInspectWithRaw returns the node information. func (cli *Client) NodeInspectWithRaw(ctx context.Context, nodeID string) (swarm.Node, []byte, error) { - if nodeID == "" { - return swarm.Node{}, nil, objectNotFoundError{object: "node", id: nodeID} + nodeID, err := trimID("node", nodeID) + if err != nil { + return swarm.Node{}, nil, err } - serverResp, err := cli.get(ctx, "/nodes/"+nodeID, nil, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.get(ctx, "/nodes/"+nodeID, nil, nil) + defer ensureReaderClosed(resp) if err != nil { return swarm.Node{}, nil, err } - body, err := io.ReadAll(serverResp.body) + body, err := io.ReadAll(resp.Body) if err != nil { return swarm.Node{}, nil, err } diff --git a/vendor/github.com/docker/docker/client/node_list.go b/vendor/github.com/docker/docker/client/node_list.go index 1a9e6bfb..2534f4ae 100644 --- a/vendor/github.com/docker/docker/client/node_list.go +++ b/vendor/github.com/docker/docker/client/node_list.go @@ -30,6 +30,6 @@ func (cli *Client) NodeList(ctx context.Context, options types.NodeListOptions) } var nodes []swarm.Node - err = json.NewDecoder(resp.body).Decode(&nodes) + err = json.NewDecoder(resp.Body).Decode(&nodes) return nodes, err } diff --git a/vendor/github.com/docker/docker/client/node_remove.go b/vendor/github.com/docker/docker/client/node_remove.go index e44436de..81f8fed6 100644 --- a/vendor/github.com/docker/docker/client/node_remove.go +++ b/vendor/github.com/docker/docker/client/node_remove.go @@ -9,6 +9,11 @@ import ( // NodeRemove removes a Node. func (cli *Client) NodeRemove(ctx context.Context, nodeID string, options types.NodeRemoveOptions) error { + nodeID, err := trimID("node", nodeID) + if err != nil { + return err + } + query := url.Values{} if options.Force { query.Set("force", "1") diff --git a/vendor/github.com/docker/docker/client/node_update.go b/vendor/github.com/docker/docker/client/node_update.go index 0d0fc3b7..10e21866 100644 --- a/vendor/github.com/docker/docker/client/node_update.go +++ b/vendor/github.com/docker/docker/client/node_update.go @@ -9,6 +9,11 @@ import ( // NodeUpdate updates a Node. func (cli *Client) NodeUpdate(ctx context.Context, nodeID string, version swarm.Version, node swarm.NodeSpec) error { + nodeID, err := trimID("node", nodeID) + if err != nil { + return err + } + query := url.Values{} query.Set("version", version.String()) resp, err := cli.post(ctx, "/nodes/"+nodeID+"/update", query, node, nil) diff --git a/vendor/github.com/docker/docker/client/options.go b/vendor/github.com/docker/docker/client/options.go index ddb0ca39..6f68fc2b 100644 --- a/vendor/github.com/docker/docker/client/options.go +++ b/vendor/github.com/docker/docker/client/options.go @@ -6,11 +6,13 @@ import ( "net/http" "os" "path/filepath" + "strings" "time" "github.com/docker/go-connections/sockets" "github.com/docker/go-connections/tlsconfig" "github.com/pkg/errors" + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" "go.opentelemetry.io/otel/trace" ) @@ -194,8 +196,8 @@ func WithTLSClientConfigFromEnv() Opt { // (see [WithAPIVersionNegotiation]). func WithVersion(version string) Opt { return func(c *Client) error { - if version != "" { - c.version = version + if v := strings.TrimPrefix(version, "v"); v != "" { + c.version = v c.manualOverride = true } return nil @@ -226,8 +228,13 @@ func WithAPIVersionNegotiation() Opt { // WithTraceProvider sets the trace provider for the client. // If this is not set then the global trace provider will be used. func WithTraceProvider(provider trace.TracerProvider) Opt { + return WithTraceOptions(otelhttp.WithTracerProvider(provider)) +} + +// WithTraceOptions sets tracing span options for the client. +func WithTraceOptions(opts ...otelhttp.Option) Opt { return func(c *Client) error { - c.tp = provider + c.traceOpts = append(c.traceOpts, opts...) return nil } } diff --git a/vendor/github.com/docker/docker/client/ping.go b/vendor/github.com/docker/docker/client/ping.go index 7c43268b..c7645e56 100644 --- a/vendor/github.com/docker/docker/client/ping.go +++ b/vendor/github.com/docker/docker/client/ping.go @@ -8,7 +8,6 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/swarm" - "github.com/docker/docker/errdefs" ) // Ping pings the server and returns the value of the "Docker-Experimental", @@ -28,49 +27,54 @@ func (cli *Client) Ping(ctx context.Context) (types.Ping, error) { if err != nil { return ping, err } - serverResp, err := cli.doRequest(req) - if err == nil { - defer ensureReaderClosed(serverResp) - switch serverResp.statusCode { + resp, err := cli.doRequest(req) + if err != nil { + if IsErrConnectionFailed(err) { + return ping, err + } + // We managed to connect, but got some error; continue and try GET request. + } else { + defer ensureReaderClosed(resp) + switch resp.StatusCode { case http.StatusOK, http.StatusInternalServerError: // Server handled the request, so parse the response - return parsePingResponse(cli, serverResp) + return parsePingResponse(cli, resp) } - } else if IsErrConnectionFailed(err) { - return ping, err } // HEAD failed; fallback to GET. req.Method = http.MethodGet - serverResp, err = cli.doRequest(req) - defer ensureReaderClosed(serverResp) + resp, err = cli.doRequest(req) + defer ensureReaderClosed(resp) if err != nil { return ping, err } - return parsePingResponse(cli, serverResp) + return parsePingResponse(cli, resp) } -func parsePingResponse(cli *Client, resp serverResponse) (types.Ping, error) { - var ping types.Ping - if resp.header == nil { - err := cli.checkResponseErr(resp) - return ping, errdefs.FromStatusCode(err, resp.statusCode) +func parsePingResponse(cli *Client, resp *http.Response) (types.Ping, error) { + if resp == nil { + return types.Ping{}, nil } - ping.APIVersion = resp.header.Get("Api-Version") - ping.OSType = resp.header.Get("Ostype") - if resp.header.Get("Docker-Experimental") == "true" { + + var ping types.Ping + if resp.Header == nil { + return ping, cli.checkResponseErr(resp) + } + ping.APIVersion = resp.Header.Get("Api-Version") + ping.OSType = resp.Header.Get("Ostype") + if resp.Header.Get("Docker-Experimental") == "true" { ping.Experimental = true } - if bv := resp.header.Get("Builder-Version"); bv != "" { + if bv := resp.Header.Get("Builder-Version"); bv != "" { ping.BuilderVersion = types.BuilderVersion(bv) } - if si := resp.header.Get("Swarm"); si != "" { + if si := resp.Header.Get("Swarm"); si != "" { state, role, _ := strings.Cut(si, "/") ping.SwarmStatus = &swarm.Status{ NodeState: swarm.LocalNodeState(state), ControlAvailable: role == "manager", } } - err := cli.checkResponseErr(resp) - return ping, errdefs.FromStatusCode(err, resp.statusCode) + return ping, cli.checkResponseErr(resp) } diff --git a/vendor/github.com/docker/docker/client/plugin_disable.go b/vendor/github.com/docker/docker/client/plugin_disable.go index 01f6574f..9fabe77b 100644 --- a/vendor/github.com/docker/docker/client/plugin_disable.go +++ b/vendor/github.com/docker/docker/client/plugin_disable.go @@ -9,6 +9,10 @@ import ( // PluginDisable disables a plugin func (cli *Client) PluginDisable(ctx context.Context, name string, options types.PluginDisableOptions) error { + name, err := trimID("plugin", name) + if err != nil { + return err + } query := url.Values{} if options.Force { query.Set("force", "1") diff --git a/vendor/github.com/docker/docker/client/plugin_enable.go b/vendor/github.com/docker/docker/client/plugin_enable.go index 736da48b..492d0bcf 100644 --- a/vendor/github.com/docker/docker/client/plugin_enable.go +++ b/vendor/github.com/docker/docker/client/plugin_enable.go @@ -10,6 +10,10 @@ import ( // PluginEnable enables a plugin func (cli *Client) PluginEnable(ctx context.Context, name string, options types.PluginEnableOptions) error { + name, err := trimID("plugin", name) + if err != nil { + return err + } query := url.Values{} query.Set("timeout", strconv.Itoa(options.Timeout)) diff --git a/vendor/github.com/docker/docker/client/plugin_inspect.go b/vendor/github.com/docker/docker/client/plugin_inspect.go index f09e4606..8f107a76 100644 --- a/vendor/github.com/docker/docker/client/plugin_inspect.go +++ b/vendor/github.com/docker/docker/client/plugin_inspect.go @@ -11,8 +11,9 @@ import ( // PluginInspectWithRaw inspects an existing plugin func (cli *Client) PluginInspectWithRaw(ctx context.Context, name string) (*types.Plugin, []byte, error) { - if name == "" { - return nil, nil, objectNotFoundError{object: "plugin", id: name} + name, err := trimID("plugin", name) + if err != nil { + return nil, nil, err } resp, err := cli.get(ctx, "/plugins/"+name+"/json", nil, nil) defer ensureReaderClosed(resp) @@ -20,7 +21,7 @@ func (cli *Client) PluginInspectWithRaw(ctx context.Context, name string) (*type return nil, nil, err } - body, err := io.ReadAll(resp.body) + body, err := io.ReadAll(resp.Body) if err != nil { return nil, nil, err } diff --git a/vendor/github.com/docker/docker/client/plugin_install.go b/vendor/github.com/docker/docker/client/plugin_install.go index a0d8c350..b04dcf9a 100644 --- a/vendor/github.com/docker/docker/client/plugin_install.go +++ b/vendor/github.com/docker/docker/client/plugin_install.go @@ -35,13 +35,13 @@ func (cli *Client) PluginInstall(ctx context.Context, name string, options types return nil, err } - name = resp.header.Get("Docker-Plugin-Name") + name = resp.Header.Get("Docker-Plugin-Name") pr, pw := io.Pipe() go func() { // todo: the client should probably be designed more around the actual api - _, err := io.Copy(pw, resp.body) + _, err := io.Copy(pw, resp.Body) if err != nil { - pw.CloseWithError(err) + _ = pw.CloseWithError(err) return } defer func() { @@ -52,29 +52,29 @@ func (cli *Client) PluginInstall(ctx context.Context, name string, options types }() if len(options.Args) > 0 { if err := cli.PluginSet(ctx, name, options.Args); err != nil { - pw.CloseWithError(err) + _ = pw.CloseWithError(err) return } } if options.Disabled { - pw.Close() + _ = pw.Close() return } enableErr := cli.PluginEnable(ctx, name, types.PluginEnableOptions{Timeout: 0}) - pw.CloseWithError(enableErr) + _ = pw.CloseWithError(enableErr) }() return pr, nil } -func (cli *Client) tryPluginPrivileges(ctx context.Context, query url.Values, registryAuth string) (serverResponse, error) { +func (cli *Client) tryPluginPrivileges(ctx context.Context, query url.Values, registryAuth string) (*http.Response, error) { return cli.get(ctx, "/plugins/privileges", query, http.Header{ registry.AuthHeader: {registryAuth}, }) } -func (cli *Client) tryPluginPull(ctx context.Context, query url.Values, privileges types.PluginPrivileges, registryAuth string) (serverResponse, error) { +func (cli *Client) tryPluginPull(ctx context.Context, query url.Values, privileges types.PluginPrivileges, registryAuth string) (*http.Response, error) { return cli.post(ctx, "/plugins/pull", query, privileges, http.Header{ registry.AuthHeader: {registryAuth}, }) @@ -98,7 +98,7 @@ func (cli *Client) checkPluginPermissions(ctx context.Context, query url.Values, } var privileges types.PluginPrivileges - if err := json.NewDecoder(resp.body).Decode(&privileges); err != nil { + if err := json.NewDecoder(resp.Body).Decode(&privileges); err != nil { ensureReaderClosed(resp) return nil, err } diff --git a/vendor/github.com/docker/docker/client/plugin_list.go b/vendor/github.com/docker/docker/client/plugin_list.go index 2091a054..03bcf762 100644 --- a/vendor/github.com/docker/docker/client/plugin_list.go +++ b/vendor/github.com/docker/docker/client/plugin_list.go @@ -28,6 +28,6 @@ func (cli *Client) PluginList(ctx context.Context, filter filters.Args) (types.P return plugins, err } - err = json.NewDecoder(resp.body).Decode(&plugins) + err = json.NewDecoder(resp.Body).Decode(&plugins) return plugins, err } diff --git a/vendor/github.com/docker/docker/client/plugin_push.go b/vendor/github.com/docker/docker/client/plugin_push.go index 8f68a86e..da15e449 100644 --- a/vendor/github.com/docker/docker/client/plugin_push.go +++ b/vendor/github.com/docker/docker/client/plugin_push.go @@ -10,11 +10,15 @@ import ( // PluginPush pushes a plugin to a registry func (cli *Client) PluginPush(ctx context.Context, name string, registryAuth string) (io.ReadCloser, error) { + name, err := trimID("plugin", name) + if err != nil { + return nil, err + } resp, err := cli.post(ctx, "/plugins/"+name+"/push", nil, nil, http.Header{ registry.AuthHeader: {registryAuth}, }) if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } diff --git a/vendor/github.com/docker/docker/client/plugin_remove.go b/vendor/github.com/docker/docker/client/plugin_remove.go index 4cd66958..6ee107e3 100644 --- a/vendor/github.com/docker/docker/client/plugin_remove.go +++ b/vendor/github.com/docker/docker/client/plugin_remove.go @@ -9,6 +9,11 @@ import ( // PluginRemove removes a plugin func (cli *Client) PluginRemove(ctx context.Context, name string, options types.PluginRemoveOptions) error { + name, err := trimID("plugin", name) + if err != nil { + return err + } + query := url.Values{} if options.Force { query.Set("force", "1") diff --git a/vendor/github.com/docker/docker/client/plugin_set.go b/vendor/github.com/docker/docker/client/plugin_set.go index dcf5752c..e2a79838 100644 --- a/vendor/github.com/docker/docker/client/plugin_set.go +++ b/vendor/github.com/docker/docker/client/plugin_set.go @@ -6,6 +6,11 @@ import ( // PluginSet modifies settings for an existing plugin func (cli *Client) PluginSet(ctx context.Context, name string, args []string) error { + name, err := trimID("plugin", name) + if err != nil { + return err + } + resp, err := cli.post(ctx, "/plugins/"+name+"/set", nil, args, nil) ensureReaderClosed(resp) return err diff --git a/vendor/github.com/docker/docker/client/plugin_upgrade.go b/vendor/github.com/docker/docker/client/plugin_upgrade.go index 5cade450..4abb29cf 100644 --- a/vendor/github.com/docker/docker/client/plugin_upgrade.go +++ b/vendor/github.com/docker/docker/client/plugin_upgrade.go @@ -13,7 +13,12 @@ import ( ) // PluginUpgrade upgrades a plugin -func (cli *Client) PluginUpgrade(ctx context.Context, name string, options types.PluginInstallOptions) (rc io.ReadCloser, err error) { +func (cli *Client) PluginUpgrade(ctx context.Context, name string, options types.PluginInstallOptions) (io.ReadCloser, error) { + name, err := trimID("plugin", name) + if err != nil { + return nil, err + } + if err := cli.NewVersionError(ctx, "1.26", "plugin upgrade"); err != nil { return nil, err } @@ -32,10 +37,10 @@ func (cli *Client) PluginUpgrade(ctx context.Context, name string, options types if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } -func (cli *Client) tryPluginUpgrade(ctx context.Context, query url.Values, privileges types.PluginPrivileges, name, registryAuth string) (serverResponse, error) { +func (cli *Client) tryPluginUpgrade(ctx context.Context, query url.Values, privileges types.PluginPrivileges, name, registryAuth string) (*http.Response, error) { return cli.post(ctx, "/plugins/"+name+"/upgrade", query, privileges, http.Header{ registry.AuthHeader: {registryAuth}, }) diff --git a/vendor/github.com/docker/docker/client/request.go b/vendor/github.com/docker/docker/client/request.go index 6eea9b4e..2b913aab 100644 --- a/vendor/github.com/docker/docker/client/request.go +++ b/vendor/github.com/docker/docker/client/request.go @@ -19,47 +19,39 @@ import ( "github.com/pkg/errors" ) -// serverResponse is a wrapper for http API responses. -type serverResponse struct { - body io.ReadCloser - header http.Header - statusCode int - reqURL *url.URL -} - // head sends an http request to the docker API using the method HEAD. -func (cli *Client) head(ctx context.Context, path string, query url.Values, headers http.Header) (serverResponse, error) { +func (cli *Client) head(ctx context.Context, path string, query url.Values, headers http.Header) (*http.Response, error) { return cli.sendRequest(ctx, http.MethodHead, path, query, nil, headers) } // get sends an http request to the docker API using the method GET with a specific Go context. -func (cli *Client) get(ctx context.Context, path string, query url.Values, headers http.Header) (serverResponse, error) { +func (cli *Client) get(ctx context.Context, path string, query url.Values, headers http.Header) (*http.Response, error) { return cli.sendRequest(ctx, http.MethodGet, path, query, nil, headers) } // post sends an http request to the docker API using the method POST with a specific Go context. -func (cli *Client) post(ctx context.Context, path string, query url.Values, obj interface{}, headers http.Header) (serverResponse, error) { +func (cli *Client) post(ctx context.Context, path string, query url.Values, obj interface{}, headers http.Header) (*http.Response, error) { body, headers, err := encodeBody(obj, headers) if err != nil { - return serverResponse{}, err + return nil, err } return cli.sendRequest(ctx, http.MethodPost, path, query, body, headers) } -func (cli *Client) postRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers http.Header) (serverResponse, error) { +func (cli *Client) postRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers http.Header) (*http.Response, error) { return cli.sendRequest(ctx, http.MethodPost, path, query, body, headers) } -func (cli *Client) put(ctx context.Context, path string, query url.Values, obj interface{}, headers http.Header) (serverResponse, error) { +func (cli *Client) put(ctx context.Context, path string, query url.Values, obj interface{}, headers http.Header) (*http.Response, error) { body, headers, err := encodeBody(obj, headers) if err != nil { - return serverResponse{}, err + return nil, err } return cli.putRaw(ctx, path, query, body, headers) } // putRaw sends an http request to the docker API using the method PUT. -func (cli *Client) putRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers http.Header) (serverResponse, error) { +func (cli *Client) putRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers http.Header) (*http.Response, error) { // PUT requests are expected to always have a body (apparently) // so explicitly pass an empty body to sendRequest to signal that // it should set the Content-Type header if not already present. @@ -70,7 +62,7 @@ func (cli *Client) putRaw(ctx context.Context, path string, query url.Values, bo } // delete sends an http request to the docker API using the method DELETE. -func (cli *Client) delete(ctx context.Context, path string, query url.Values, headers http.Header) (serverResponse, error) { +func (cli *Client) delete(ctx context.Context, path string, query url.Values, headers http.Header) (*http.Response, error) { return cli.sendRequest(ctx, http.MethodDelete, path, query, nil, headers) } @@ -116,59 +108,60 @@ func (cli *Client) buildRequest(ctx context.Context, method, path string, body i return req, nil } -func (cli *Client) sendRequest(ctx context.Context, method, path string, query url.Values, body io.Reader, headers http.Header) (serverResponse, error) { +func (cli *Client) sendRequest(ctx context.Context, method, path string, query url.Values, body io.Reader, headers http.Header) (*http.Response, error) { req, err := cli.buildRequest(ctx, method, cli.getAPIPath(ctx, path, query), body, headers) if err != nil { - return serverResponse{}, err + return nil, err } resp, err := cli.doRequest(req) switch { case errors.Is(err, context.Canceled): - return serverResponse{}, errdefs.Cancelled(err) + return nil, errdefs.Cancelled(err) case errors.Is(err, context.DeadlineExceeded): - return serverResponse{}, errdefs.Deadline(err) + return nil, errdefs.Deadline(err) case err == nil: - err = cli.checkResponseErr(resp) + return resp, cli.checkResponseErr(resp) + default: + return resp, err } - return resp, errdefs.FromStatusCode(err, resp.statusCode) } -// FIXME(thaJeztah): Should this actually return a serverResp when a connection error occurred? -func (cli *Client) doRequest(req *http.Request) (serverResponse, error) { - serverResp := serverResponse{statusCode: -1, reqURL: req.URL} - +func (cli *Client) doRequest(req *http.Request) (*http.Response, error) { resp, err := cli.client.Do(req) if err != nil { if cli.scheme != "https" && strings.Contains(err.Error(), "malformed HTTP response") { - return serverResp, errConnectionFailed{fmt.Errorf("%v.\n* Are you trying to connect to a TLS-enabled daemon without TLS?", err)} + return nil, errConnectionFailed{fmt.Errorf("%v.\n* Are you trying to connect to a TLS-enabled daemon without TLS?", err)} } if cli.scheme == "https" && strings.Contains(err.Error(), "bad certificate") { - return serverResp, errConnectionFailed{errors.Wrap(err, "the server probably has client authentication (--tlsverify) enabled; check your TLS client certification settings")} + return nil, errConnectionFailed{errors.Wrap(err, "the server probably has client authentication (--tlsverify) enabled; check your TLS client certification settings")} } // Don't decorate context sentinel errors; users may be comparing to // them directly. if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) { - return serverResp, err + return nil, err } - if uErr, ok := err.(*url.Error); ok { - if nErr, ok := uErr.Err.(*net.OpError); ok { + var uErr *url.Error + if errors.As(err, &uErr) { + var nErr *net.OpError + if errors.As(uErr.Err, &nErr) { if os.IsPermission(nErr.Err) { - return serverResp, errConnectionFailed{errors.Wrapf(err, "permission denied while trying to connect to the Docker daemon socket at %v", cli.host)} + return nil, errConnectionFailed{errors.Wrapf(err, "permission denied while trying to connect to the Docker daemon socket at %v", cli.host)} } } } - if nErr, ok := err.(net.Error); ok { + var nErr net.Error + if errors.As(err, &nErr) { // FIXME(thaJeztah): any net.Error should be considered a connection error (but we should include the original error)? if nErr.Timeout() { - return serverResp, ErrorConnectionFailed(cli.host) + return nil, connectionFailed(cli.host) } if strings.Contains(nErr.Error(), "connection refused") || strings.Contains(nErr.Error(), "dial unix") { - return serverResp, ErrorConnectionFailed(cli.host) + return nil, connectionFailed(cli.host) } } @@ -192,28 +185,37 @@ func (cli *Client) doRequest(req *http.Request) (serverResponse, error) { } } - return serverResp, errConnectionFailed{errors.Wrap(err, "error during connect")} + return nil, errConnectionFailed{errors.Wrap(err, "error during connect")} } - if resp != nil { - serverResp.statusCode = resp.StatusCode - serverResp.body = resp.Body - serverResp.header = resp.Header - } - return serverResp, nil + return resp, nil } -func (cli *Client) checkResponseErr(serverResp serverResponse) error { - if serverResp.statusCode >= 200 && serverResp.statusCode < 400 { +func (cli *Client) checkResponseErr(serverResp *http.Response) (retErr error) { + if serverResp == nil { return nil } + if serverResp.StatusCode >= 200 && serverResp.StatusCode < 400 { + return nil + } + defer func() { + retErr = errdefs.FromStatusCode(retErr, serverResp.StatusCode) + }() var body []byte var err error - if serverResp.body != nil { + var reqURL string + if serverResp.Request != nil { + reqURL = serverResp.Request.URL.String() + } + statusMsg := serverResp.Status + if statusMsg == "" { + statusMsg = http.StatusText(serverResp.StatusCode) + } + if serverResp.Body != nil { bodyMax := 1 * 1024 * 1024 // 1 MiB bodyR := &io.LimitedReader{ - R: serverResp.body, + R: serverResp.Body, N: int64(bodyMax), } body, err = io.ReadAll(bodyR) @@ -221,21 +223,54 @@ func (cli *Client) checkResponseErr(serverResp serverResponse) error { return err } if bodyR.N == 0 { - return fmt.Errorf("request returned %s with a message (> %d bytes) for API route and version %s, check if the server supports the requested API version", http.StatusText(serverResp.statusCode), bodyMax, serverResp.reqURL) + if reqURL != "" { + return fmt.Errorf("request returned %s with a message (> %d bytes) for API route and version %s, check if the server supports the requested API version", statusMsg, bodyMax, reqURL) + } + return fmt.Errorf("request returned %s with a message (> %d bytes); check if the server supports the requested API version", statusMsg, bodyMax) } } if len(body) == 0 { - return fmt.Errorf("request returned %s for API route and version %s, check if the server supports the requested API version", http.StatusText(serverResp.statusCode), serverResp.reqURL) + if reqURL != "" { + return fmt.Errorf("request returned %s for API route and version %s, check if the server supports the requested API version", statusMsg, reqURL) + } + return fmt.Errorf("request returned %s; check if the server supports the requested API version", statusMsg) } var daemonErr error - if serverResp.header.Get("Content-Type") == "application/json" && (cli.version == "" || versions.GreaterThan(cli.version, "1.23")) { + if serverResp.Header.Get("Content-Type") == "application/json" && (cli.version == "" || versions.GreaterThan(cli.version, "1.23")) { var errorResponse types.ErrorResponse if err := json.Unmarshal(body, &errorResponse); err != nil { return errors.Wrap(err, "Error reading JSON") } - daemonErr = errors.New(strings.TrimSpace(errorResponse.Message)) + if errorResponse.Message == "" { + // Error-message is empty, which means that we successfully parsed the + // JSON-response (no error produced), but it didn't contain an error + // message. This could either be because the response was empty, or + // the response was valid JSON, but not with the expected schema + // ([types.ErrorResponse]). + // + // We cannot use "strict" JSON handling (json.NewDecoder with DisallowUnknownFields) + // due to the API using an open schema (we must anticipate fields + // being added to [types.ErrorResponse] in the future, and not + // reject those responses. + // + // For these cases, we construct an error with the status-code + // returned, but we could consider returning (a truncated version + // of) the actual response as-is. + // + // TODO(thaJeztah): consider adding a log.Debug to allow clients to debug the actual response when enabling debug logging. + daemonErr = fmt.Errorf(`API returned a %d (%s) but provided no error-message`, + serverResp.StatusCode, + http.StatusText(serverResp.StatusCode), + ) + } else { + daemonErr = errors.New(strings.TrimSpace(errorResponse.Message)) + } } else { + // Fall back to returning the response as-is for API versions < 1.24 + // that didn't support JSON error responses, and for situations + // where a plain text error is returned. This branch may also catch + // situations where a proxy is involved, returning a HTML response. daemonErr = errors.New(strings.TrimSpace(string(body))) } return errors.Wrap(daemonErr, "Error response from daemon") @@ -275,10 +310,16 @@ func encodeData(data interface{}) (*bytes.Buffer, error) { return params, nil } -func ensureReaderClosed(response serverResponse) { - if response.body != nil { +func ensureReaderClosed(response *http.Response) { + if response != nil && response.Body != nil { // Drain up to 512 bytes and close the body to let the Transport reuse the connection - _, _ = io.CopyN(io.Discard, response.body, 512) - _ = response.body.Close() + // see https://github.com/google/go-github/pull/317/files#r57536827 + // + // TODO(thaJeztah): see if this optimization is still needed, or already implemented in stdlib, + // and check if context-cancellation should handle this as well. If still needed, consider + // wrapping response.Body, or returning a "closer()" from [Client.sendRequest] and related + // methods. + _, _ = io.CopyN(io.Discard, response.Body, 512) + _ = response.Body.Close() } } diff --git a/vendor/github.com/docker/docker/client/secret_create.go b/vendor/github.com/docker/docker/client/secret_create.go index 7b7f1ba7..bbd11918 100644 --- a/vendor/github.com/docker/docker/client/secret_create.go +++ b/vendor/github.com/docker/docker/client/secret_create.go @@ -10,16 +10,16 @@ import ( // SecretCreate creates a new secret. func (cli *Client) SecretCreate(ctx context.Context, secret swarm.SecretSpec) (types.SecretCreateResponse, error) { - var response types.SecretCreateResponse if err := cli.NewVersionError(ctx, "1.25", "secret create"); err != nil { - return response, err + return types.SecretCreateResponse{}, err } resp, err := cli.post(ctx, "/secrets/create", nil, secret, nil) defer ensureReaderClosed(resp) if err != nil { - return response, err + return types.SecretCreateResponse{}, err } - err = json.NewDecoder(resp.body).Decode(&response) + var response types.SecretCreateResponse + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/secret_inspect.go b/vendor/github.com/docker/docker/client/secret_inspect.go index a9cb5988..fdabc197 100644 --- a/vendor/github.com/docker/docker/client/secret_inspect.go +++ b/vendor/github.com/docker/docker/client/secret_inspect.go @@ -11,11 +11,12 @@ import ( // SecretInspectWithRaw returns the secret information with raw data func (cli *Client) SecretInspectWithRaw(ctx context.Context, id string) (swarm.Secret, []byte, error) { - if err := cli.NewVersionError(ctx, "1.25", "secret inspect"); err != nil { + id, err := trimID("secret", id) + if err != nil { return swarm.Secret{}, nil, err } - if id == "" { - return swarm.Secret{}, nil, objectNotFoundError{object: "secret", id: id} + if err := cli.NewVersionError(ctx, "1.25", "secret inspect"); err != nil { + return swarm.Secret{}, nil, err } resp, err := cli.get(ctx, "/secrets/"+id, nil, nil) defer ensureReaderClosed(resp) @@ -23,7 +24,7 @@ func (cli *Client) SecretInspectWithRaw(ctx context.Context, id string) (swarm.S return swarm.Secret{}, nil, err } - body, err := io.ReadAll(resp.body) + body, err := io.ReadAll(resp.Body) if err != nil { return swarm.Secret{}, nil, err } diff --git a/vendor/github.com/docker/docker/client/secret_list.go b/vendor/github.com/docker/docker/client/secret_list.go index 4d21639e..e3b7dbdb 100644 --- a/vendor/github.com/docker/docker/client/secret_list.go +++ b/vendor/github.com/docker/docker/client/secret_list.go @@ -33,6 +33,6 @@ func (cli *Client) SecretList(ctx context.Context, options types.SecretListOptio } var secrets []swarm.Secret - err = json.NewDecoder(resp.body).Decode(&secrets) + err = json.NewDecoder(resp.Body).Decode(&secrets) return secrets, err } diff --git a/vendor/github.com/docker/docker/client/secret_remove.go b/vendor/github.com/docker/docker/client/secret_remove.go index 079ed673..7ea2acbf 100644 --- a/vendor/github.com/docker/docker/client/secret_remove.go +++ b/vendor/github.com/docker/docker/client/secret_remove.go @@ -4,6 +4,10 @@ import "context" // SecretRemove removes a secret. func (cli *Client) SecretRemove(ctx context.Context, id string) error { + id, err := trimID("secret", id) + if err != nil { + return err + } if err := cli.NewVersionError(ctx, "1.25", "secret remove"); err != nil { return err } diff --git a/vendor/github.com/docker/docker/client/secret_update.go b/vendor/github.com/docker/docker/client/secret_update.go index 9dfe6719..60d21a6f 100644 --- a/vendor/github.com/docker/docker/client/secret_update.go +++ b/vendor/github.com/docker/docker/client/secret_update.go @@ -9,6 +9,10 @@ import ( // SecretUpdate attempts to update a secret. func (cli *Client) SecretUpdate(ctx context.Context, id string, version swarm.Version, secret swarm.SecretSpec) error { + id, err := trimID("secret", id) + if err != nil { + return err + } if err := cli.NewVersionError(ctx, "1.25", "secret update"); err != nil { return err } diff --git a/vendor/github.com/docker/docker/client/service_create.go b/vendor/github.com/docker/docker/client/service_create.go index b72cb420..fb12dd5b 100644 --- a/vendor/github.com/docker/docker/client/service_create.go +++ b/vendor/github.com/docker/docker/client/service_create.go @@ -73,7 +73,7 @@ func (cli *Client) ServiceCreate(ctx context.Context, service swarm.ServiceSpec, return response, err } - err = json.NewDecoder(resp.body).Decode(&response) + err = json.NewDecoder(resp.Body).Decode(&response) if resolveWarning != "" { response.Warnings = append(response.Warnings, resolveWarning) } diff --git a/vendor/github.com/docker/docker/client/service_inspect.go b/vendor/github.com/docker/docker/client/service_inspect.go index cee020c9..77b4402d 100644 --- a/vendor/github.com/docker/docker/client/service_inspect.go +++ b/vendor/github.com/docker/docker/client/service_inspect.go @@ -14,18 +14,20 @@ import ( // ServiceInspectWithRaw returns the service information and the raw data. func (cli *Client) ServiceInspectWithRaw(ctx context.Context, serviceID string, opts types.ServiceInspectOptions) (swarm.Service, []byte, error) { - if serviceID == "" { - return swarm.Service{}, nil, objectNotFoundError{object: "service", id: serviceID} - } - query := url.Values{} - query.Set("insertDefaults", fmt.Sprintf("%v", opts.InsertDefaults)) - serverResp, err := cli.get(ctx, "/services/"+serviceID, query, nil) - defer ensureReaderClosed(serverResp) + serviceID, err := trimID("service", serviceID) if err != nil { return swarm.Service{}, nil, err } - body, err := io.ReadAll(serverResp.body) + query := url.Values{} + query.Set("insertDefaults", fmt.Sprintf("%v", opts.InsertDefaults)) + resp, err := cli.get(ctx, "/services/"+serviceID, query, nil) + defer ensureReaderClosed(resp) + if err != nil { + return swarm.Service{}, nil, err + } + + body, err := io.ReadAll(resp.Body) if err != nil { return swarm.Service{}, nil, err } diff --git a/vendor/github.com/docker/docker/client/service_list.go b/vendor/github.com/docker/docker/client/service_list.go index f97ec75a..f589a842 100644 --- a/vendor/github.com/docker/docker/client/service_list.go +++ b/vendor/github.com/docker/docker/client/service_list.go @@ -34,6 +34,6 @@ func (cli *Client) ServiceList(ctx context.Context, options types.ServiceListOpt } var services []swarm.Service - err = json.NewDecoder(resp.body).Decode(&services) + err = json.NewDecoder(resp.Body).Decode(&services) return services, err } diff --git a/vendor/github.com/docker/docker/client/service_logs.go b/vendor/github.com/docker/docker/client/service_logs.go index e9e30a2a..6e0cbee4 100644 --- a/vendor/github.com/docker/docker/client/service_logs.go +++ b/vendor/github.com/docker/docker/client/service_logs.go @@ -14,6 +14,11 @@ import ( // ServiceLogs returns the logs generated by a service in an io.ReadCloser. // It's up to the caller to close the stream. func (cli *Client) ServiceLogs(ctx context.Context, serviceID string, options container.LogsOptions) (io.ReadCloser, error) { + serviceID, err := trimID("service", serviceID) + if err != nil { + return nil, err + } + query := url.Values{} if options.ShowStdout { query.Set("stdout", "1") @@ -48,5 +53,5 @@ func (cli *Client) ServiceLogs(ctx context.Context, serviceID string, options co if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } diff --git a/vendor/github.com/docker/docker/client/service_remove.go b/vendor/github.com/docker/docker/client/service_remove.go index 2c46326e..93c949e4 100644 --- a/vendor/github.com/docker/docker/client/service_remove.go +++ b/vendor/github.com/docker/docker/client/service_remove.go @@ -4,6 +4,11 @@ import "context" // ServiceRemove kills and removes a service. func (cli *Client) ServiceRemove(ctx context.Context, serviceID string) error { + serviceID, err := trimID("service", serviceID) + if err != nil { + return err + } + resp, err := cli.delete(ctx, "/services/"+serviceID, nil, nil) defer ensureReaderClosed(resp) return err diff --git a/vendor/github.com/docker/docker/client/service_update.go b/vendor/github.com/docker/docker/client/service_update.go index d2f03f02..ecb98f46 100644 --- a/vendor/github.com/docker/docker/client/service_update.go +++ b/vendor/github.com/docker/docker/client/service_update.go @@ -16,7 +16,10 @@ import ( // It should be the value as set *before* the update. You can find this value in the Meta field // of swarm.Service, which can be found using ServiceInspectWithRaw. func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) { - response := swarm.ServiceUpdateResponse{} + serviceID, err := trimID("service", serviceID) + if err != nil { + return swarm.ServiceUpdateResponse{}, err + } // Make sure we negotiated (if the client is configured to do so), // as code below contains API-version specific handling of options. @@ -24,7 +27,7 @@ func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version // Normally, version-negotiation (if enabled) would not happen until // the API request is made. if err := cli.checkVersion(ctx); err != nil { - return response, err + return swarm.ServiceUpdateResponse{}, err } query := url.Values{} @@ -39,7 +42,7 @@ func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version query.Set("version", version.String()) if err := validateServiceSpec(service); err != nil { - return response, err + return swarm.ServiceUpdateResponse{}, err } // ensure that the image is tagged @@ -74,10 +77,11 @@ func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version resp, err := cli.post(ctx, "/services/"+serviceID+"/update", query, service, headers) defer ensureReaderClosed(resp) if err != nil { - return response, err + return swarm.ServiceUpdateResponse{}, err } - err = json.NewDecoder(resp.body).Decode(&response) + var response swarm.ServiceUpdateResponse + err = json.NewDecoder(resp.Body).Decode(&response) if resolveWarning != "" { response.Warnings = append(response.Warnings, resolveWarning) } diff --git a/vendor/github.com/docker/docker/client/swarm_get_unlock_key.go b/vendor/github.com/docker/docker/client/swarm_get_unlock_key.go index 19f59dd5..271fc08c 100644 --- a/vendor/github.com/docker/docker/client/swarm_get_unlock_key.go +++ b/vendor/github.com/docker/docker/client/swarm_get_unlock_key.go @@ -9,13 +9,13 @@ import ( // SwarmGetUnlockKey retrieves the swarm's unlock key. func (cli *Client) SwarmGetUnlockKey(ctx context.Context) (types.SwarmUnlockKeyResponse, error) { - serverResp, err := cli.get(ctx, "/swarm/unlockkey", nil, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.get(ctx, "/swarm/unlockkey", nil, nil) + defer ensureReaderClosed(resp) if err != nil { return types.SwarmUnlockKeyResponse{}, err } var response types.SwarmUnlockKeyResponse - err = json.NewDecoder(serverResp.body).Decode(&response) + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/swarm_init.go b/vendor/github.com/docker/docker/client/swarm_init.go index da3c1637..3dcb2a5b 100644 --- a/vendor/github.com/docker/docker/client/swarm_init.go +++ b/vendor/github.com/docker/docker/client/swarm_init.go @@ -9,13 +9,13 @@ import ( // SwarmInit initializes the swarm. func (cli *Client) SwarmInit(ctx context.Context, req swarm.InitRequest) (string, error) { - serverResp, err := cli.post(ctx, "/swarm/init", nil, req, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/swarm/init", nil, req, nil) + defer ensureReaderClosed(resp) if err != nil { return "", err } var response string - err = json.NewDecoder(serverResp.body).Decode(&response) + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/swarm_inspect.go b/vendor/github.com/docker/docker/client/swarm_inspect.go index b52b67a8..3d5a8a04 100644 --- a/vendor/github.com/docker/docker/client/swarm_inspect.go +++ b/vendor/github.com/docker/docker/client/swarm_inspect.go @@ -9,13 +9,13 @@ import ( // SwarmInspect inspects the swarm. func (cli *Client) SwarmInspect(ctx context.Context) (swarm.Swarm, error) { - serverResp, err := cli.get(ctx, "/swarm", nil, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.get(ctx, "/swarm", nil, nil) + defer ensureReaderClosed(resp) if err != nil { return swarm.Swarm{}, err } var response swarm.Swarm - err = json.NewDecoder(serverResp.body).Decode(&response) + err = json.NewDecoder(resp.Body).Decode(&response) return response, err } diff --git a/vendor/github.com/docker/docker/client/swarm_unlock.go b/vendor/github.com/docker/docker/client/swarm_unlock.go index d2412f7d..745d64d5 100644 --- a/vendor/github.com/docker/docker/client/swarm_unlock.go +++ b/vendor/github.com/docker/docker/client/swarm_unlock.go @@ -8,7 +8,7 @@ import ( // SwarmUnlock unlocks locked swarm. func (cli *Client) SwarmUnlock(ctx context.Context, req swarm.UnlockRequest) error { - serverResp, err := cli.post(ctx, "/swarm/unlock", nil, req, nil) - ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/swarm/unlock", nil, req, nil) + ensureReaderClosed(resp) return err } diff --git a/vendor/github.com/docker/docker/client/task_inspect.go b/vendor/github.com/docker/docker/client/task_inspect.go index dde1f6c5..37668bd2 100644 --- a/vendor/github.com/docker/docker/client/task_inspect.go +++ b/vendor/github.com/docker/docker/client/task_inspect.go @@ -11,16 +11,18 @@ import ( // TaskInspectWithRaw returns the task information and its raw representation. func (cli *Client) TaskInspectWithRaw(ctx context.Context, taskID string) (swarm.Task, []byte, error) { - if taskID == "" { - return swarm.Task{}, nil, objectNotFoundError{object: "task", id: taskID} - } - serverResp, err := cli.get(ctx, "/tasks/"+taskID, nil, nil) - defer ensureReaderClosed(serverResp) + taskID, err := trimID("task", taskID) if err != nil { return swarm.Task{}, nil, err } - body, err := io.ReadAll(serverResp.body) + resp, err := cli.get(ctx, "/tasks/"+taskID, nil, nil) + defer ensureReaderClosed(resp) + if err != nil { + return swarm.Task{}, nil, err + } + + body, err := io.ReadAll(resp.Body) if err != nil { return swarm.Task{}, nil, err } diff --git a/vendor/github.com/docker/docker/client/task_list.go b/vendor/github.com/docker/docker/client/task_list.go index 4869b444..aba7f61e 100644 --- a/vendor/github.com/docker/docker/client/task_list.go +++ b/vendor/github.com/docker/docker/client/task_list.go @@ -30,6 +30,6 @@ func (cli *Client) TaskList(ctx context.Context, options types.TaskListOptions) } var tasks []swarm.Task - err = json.NewDecoder(resp.body).Decode(&tasks) + err = json.NewDecoder(resp.Body).Decode(&tasks) return tasks, err } diff --git a/vendor/github.com/docker/docker/client/task_logs.go b/vendor/github.com/docker/docker/client/task_logs.go index b8c20e71..9dcb977b 100644 --- a/vendor/github.com/docker/docker/client/task_logs.go +++ b/vendor/github.com/docker/docker/client/task_logs.go @@ -47,5 +47,5 @@ func (cli *Client) TaskLogs(ctx context.Context, taskID string, options containe if err != nil { return nil, err } - return resp.body, nil + return resp.Body, nil } diff --git a/vendor/github.com/docker/docker/client/utils.go b/vendor/github.com/docker/docker/client/utils.go index 7f3ff44e..925d4d8d 100644 --- a/vendor/github.com/docker/docker/client/utils.go +++ b/vendor/github.com/docker/docker/client/utils.go @@ -1,13 +1,35 @@ package client // import "github.com/docker/docker/client" import ( + "encoding/json" + "fmt" "net/url" - "regexp" + "strings" "github.com/docker/docker/api/types/filters" + "github.com/docker/docker/errdefs" + "github.com/docker/docker/internal/lazyregexp" + ocispec "github.com/opencontainers/image-spec/specs-go/v1" ) -var headerRegexp = regexp.MustCompile(`\ADocker/.+\s\((.+)\)\z`) +var headerRegexp = lazyregexp.New(`\ADocker/.+\s\((.+)\)\z`) + +type emptyIDError string + +func (e emptyIDError) InvalidParameter() {} + +func (e emptyIDError) Error() string { + return "invalid " + string(e) + " name or ID: value is empty" +} + +// trimID trims the given object-ID / name, returning an error if it's empty. +func trimID(objType, id string) (string, error) { + id = strings.TrimSpace(id) + if len(id) == 0 { + return "", emptyIDError(objType) + } + return id, nil +} // getDockerOS returns the operating system based on the server header from the daemon. func getDockerOS(serverHeader string) string { @@ -32,3 +54,43 @@ func getFiltersQuery(f filters.Args) (url.Values, error) { } return query, nil } + +// encodePlatforms marshals the given platform(s) to JSON format, to +// be used for query-parameters for filtering / selecting platforms. +func encodePlatforms(platform ...ocispec.Platform) ([]string, error) { + if len(platform) == 0 { + return []string{}, nil + } + if len(platform) == 1 { + p, err := encodePlatform(&platform[0]) + if err != nil { + return nil, err + } + return []string{p}, nil + } + + seen := make(map[string]struct{}, len(platform)) + out := make([]string, 0, len(platform)) + for i := range platform { + p, err := encodePlatform(&platform[i]) + if err != nil { + return nil, err + } + if _, ok := seen[p]; !ok { + out = append(out, p) + seen[p] = struct{}{} + } + } + return out, nil +} + +// encodePlatform marshals the given platform to JSON format, to +// be used for query-parameters for filtering / selecting platforms. It +// is used as a helper for encodePlatforms, +func encodePlatform(platform *ocispec.Platform) (string, error) { + p, err := json.Marshal(platform) + if err != nil { + return "", errdefs.InvalidParameter(fmt.Errorf("invalid platform: %v", err)) + } + return string(p), nil +} diff --git a/vendor/github.com/docker/docker/client/version.go b/vendor/github.com/docker/docker/client/version.go index 8f17ff4e..4566fd98 100644 --- a/vendor/github.com/docker/docker/client/version.go +++ b/vendor/github.com/docker/docker/client/version.go @@ -16,6 +16,6 @@ func (cli *Client) ServerVersion(ctx context.Context) (types.Version, error) { } var server types.Version - err = json.NewDecoder(resp.body).Decode(&server) + err = json.NewDecoder(resp.Body).Decode(&server) return server, err } diff --git a/vendor/github.com/docker/docker/client/volume_create.go b/vendor/github.com/docker/docker/client/volume_create.go index b3b18243..bedb3abb 100644 --- a/vendor/github.com/docker/docker/client/volume_create.go +++ b/vendor/github.com/docker/docker/client/volume_create.go @@ -9,12 +9,13 @@ import ( // VolumeCreate creates a volume in the docker host. func (cli *Client) VolumeCreate(ctx context.Context, options volume.CreateOptions) (volume.Volume, error) { - var vol volume.Volume resp, err := cli.post(ctx, "/volumes/create", nil, options, nil) defer ensureReaderClosed(resp) if err != nil { - return vol, err + return volume.Volume{}, err } - err = json.NewDecoder(resp.body).Decode(&vol) + + var vol volume.Volume + err = json.NewDecoder(resp.Body).Decode(&vol) return vol, err } diff --git a/vendor/github.com/docker/docker/client/volume_inspect.go b/vendor/github.com/docker/docker/client/volume_inspect.go index b3ba4e60..ce32bbbb 100644 --- a/vendor/github.com/docker/docker/client/volume_inspect.go +++ b/vendor/github.com/docker/docker/client/volume_inspect.go @@ -17,21 +17,23 @@ func (cli *Client) VolumeInspect(ctx context.Context, volumeID string) (volume.V // VolumeInspectWithRaw returns the information about a specific volume in the docker host and its raw representation func (cli *Client) VolumeInspectWithRaw(ctx context.Context, volumeID string) (volume.Volume, []byte, error) { - if volumeID == "" { - return volume.Volume{}, nil, objectNotFoundError{object: "volume", id: volumeID} + volumeID, err := trimID("volume", volumeID) + if err != nil { + return volume.Volume{}, nil, err } - var vol volume.Volume resp, err := cli.get(ctx, "/volumes/"+volumeID, nil, nil) defer ensureReaderClosed(resp) if err != nil { - return vol, nil, err + return volume.Volume{}, nil, err } - body, err := io.ReadAll(resp.body) + body, err := io.ReadAll(resp.Body) if err != nil { - return vol, nil, err + return volume.Volume{}, nil, err } + + var vol volume.Volume rdr := bytes.NewReader(body) err = json.NewDecoder(rdr).Decode(&vol) return vol, body, err diff --git a/vendor/github.com/docker/docker/client/volume_list.go b/vendor/github.com/docker/docker/client/volume_list.go index d5ea9827..de6ce23a 100644 --- a/vendor/github.com/docker/docker/client/volume_list.go +++ b/vendor/github.com/docker/docker/client/volume_list.go @@ -11,23 +11,23 @@ import ( // VolumeList returns the volumes configured in the docker host. func (cli *Client) VolumeList(ctx context.Context, options volume.ListOptions) (volume.ListResponse, error) { - var volumes volume.ListResponse query := url.Values{} if options.Filters.Len() > 0 { //nolint:staticcheck // ignore SA1019 for old code filterJSON, err := filters.ToParamWithVersion(cli.version, options.Filters) if err != nil { - return volumes, err + return volume.ListResponse{}, err } query.Set("filters", filterJSON) } resp, err := cli.get(ctx, "/volumes", query, nil) defer ensureReaderClosed(resp) if err != nil { - return volumes, err + return volume.ListResponse{}, err } - err = json.NewDecoder(resp.body).Decode(&volumes) + var volumes volume.ListResponse + err = json.NewDecoder(resp.Body).Decode(&volumes) return volumes, err } diff --git a/vendor/github.com/docker/docker/client/volume_prune.go b/vendor/github.com/docker/docker/client/volume_prune.go index 9b09c30f..7da148fe 100644 --- a/vendor/github.com/docker/docker/client/volume_prune.go +++ b/vendor/github.com/docker/docker/client/volume_prune.go @@ -11,25 +11,24 @@ import ( // VolumesPrune requests the daemon to delete unused data func (cli *Client) VolumesPrune(ctx context.Context, pruneFilters filters.Args) (volume.PruneReport, error) { - var report volume.PruneReport - if err := cli.NewVersionError(ctx, "1.25", "volume prune"); err != nil { - return report, err + return volume.PruneReport{}, err } query, err := getFiltersQuery(pruneFilters) if err != nil { - return report, err + return volume.PruneReport{}, err } - serverResp, err := cli.post(ctx, "/volumes/prune", query, nil, nil) - defer ensureReaderClosed(serverResp) + resp, err := cli.post(ctx, "/volumes/prune", query, nil, nil) + defer ensureReaderClosed(resp) if err != nil { - return report, err + return volume.PruneReport{}, err } - if err := json.NewDecoder(serverResp.body).Decode(&report); err != nil { - return report, fmt.Errorf("Error retrieving volume prune report: %v", err) + var report volume.PruneReport + if err := json.NewDecoder(resp.Body).Decode(&report); err != nil { + return volume.PruneReport{}, fmt.Errorf("Error retrieving volume prune report: %v", err) } return report, nil diff --git a/vendor/github.com/docker/docker/client/volume_remove.go b/vendor/github.com/docker/docker/client/volume_remove.go index b8bdc5ae..eefd9ce4 100644 --- a/vendor/github.com/docker/docker/client/volume_remove.go +++ b/vendor/github.com/docker/docker/client/volume_remove.go @@ -9,6 +9,11 @@ import ( // VolumeRemove removes a volume from the docker host. func (cli *Client) VolumeRemove(ctx context.Context, volumeID string, force bool) error { + volumeID, err := trimID("volume", volumeID) + if err != nil { + return err + } + query := url.Values{} if force { // Make sure we negotiated (if the client is configured to do so), diff --git a/vendor/github.com/docker/docker/client/volume_update.go b/vendor/github.com/docker/docker/client/volume_update.go index 151863f0..c91d5e98 100644 --- a/vendor/github.com/docker/docker/client/volume_update.go +++ b/vendor/github.com/docker/docker/client/volume_update.go @@ -11,6 +11,10 @@ import ( // VolumeUpdate updates a volume. This only works for Cluster Volumes, and // only some fields can be updated. func (cli *Client) VolumeUpdate(ctx context.Context, volumeID string, version swarm.Version, options volume.UpdateOptions) error { + volumeID, err := trimID("volume", volumeID) + if err != nil { + return err + } if err := cli.NewVersionError(ctx, "1.42", "volume update"); err != nil { return err } diff --git a/vendor/github.com/docker/docker/errdefs/helpers.go b/vendor/github.com/docker/docker/errdefs/helpers.go index 042de4b7..ab76e627 100644 --- a/vendor/github.com/docker/docker/errdefs/helpers.go +++ b/vendor/github.com/docker/docker/errdefs/helpers.go @@ -14,7 +14,9 @@ func (e errNotFound) Unwrap() error { return e.error } -// NotFound is a helper to create an error of the class with the same name from any error type +// NotFound creates an [ErrNotFound] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrNotFound], func NotFound(err error) error { if err == nil || IsNotFound(err) { return err @@ -34,7 +36,9 @@ func (e errInvalidParameter) Unwrap() error { return e.error } -// InvalidParameter is a helper to create an error of the class with the same name from any error type +// InvalidParameter creates an [ErrInvalidParameter] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrInvalidParameter], func InvalidParameter(err error) error { if err == nil || IsInvalidParameter(err) { return err @@ -54,7 +58,9 @@ func (e errConflict) Unwrap() error { return e.error } -// Conflict is a helper to create an error of the class with the same name from any error type +// Conflict creates an [ErrConflict] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrConflict], func Conflict(err error) error { if err == nil || IsConflict(err) { return err @@ -74,7 +80,9 @@ func (e errUnauthorized) Unwrap() error { return e.error } -// Unauthorized is a helper to create an error of the class with the same name from any error type +// Unauthorized creates an [ErrUnauthorized] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrUnauthorized], func Unauthorized(err error) error { if err == nil || IsUnauthorized(err) { return err @@ -94,7 +102,9 @@ func (e errUnavailable) Unwrap() error { return e.error } -// Unavailable is a helper to create an error of the class with the same name from any error type +// Unavailable creates an [ErrUnavailable] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrUnavailable], func Unavailable(err error) error { if err == nil || IsUnavailable(err) { return err @@ -114,7 +124,9 @@ func (e errForbidden) Unwrap() error { return e.error } -// Forbidden is a helper to create an error of the class with the same name from any error type +// Forbidden creates an [ErrForbidden] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrForbidden], func Forbidden(err error) error { if err == nil || IsForbidden(err) { return err @@ -134,7 +146,9 @@ func (e errSystem) Unwrap() error { return e.error } -// System is a helper to create an error of the class with the same name from any error type +// System creates an [ErrSystem] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrSystem], func System(err error) error { if err == nil || IsSystem(err) { return err @@ -154,7 +168,9 @@ func (e errNotModified) Unwrap() error { return e.error } -// NotModified is a helper to create an error of the class with the same name from any error type +// NotModified creates an [ErrNotModified] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [NotModified], func NotModified(err error) error { if err == nil || IsNotModified(err) { return err @@ -174,7 +190,9 @@ func (e errNotImplemented) Unwrap() error { return e.error } -// NotImplemented is a helper to create an error of the class with the same name from any error type +// NotImplemented creates an [ErrNotImplemented] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrNotImplemented], func NotImplemented(err error) error { if err == nil || IsNotImplemented(err) { return err @@ -194,7 +212,9 @@ func (e errUnknown) Unwrap() error { return e.error } -// Unknown is a helper to create an error of the class with the same name from any error type +// Unknown creates an [ErrUnknown] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrUnknown], func Unknown(err error) error { if err == nil || IsUnknown(err) { return err @@ -214,7 +234,9 @@ func (e errCancelled) Unwrap() error { return e.error } -// Cancelled is a helper to create an error of the class with the same name from any error type +// Cancelled creates an [ErrCancelled] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrCancelled], func Cancelled(err error) error { if err == nil || IsCancelled(err) { return err @@ -234,7 +256,9 @@ func (e errDeadline) Unwrap() error { return e.error } -// Deadline is a helper to create an error of the class with the same name from any error type +// Deadline creates an [ErrDeadline] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrDeadline], func Deadline(err error) error { if err == nil || IsDeadline(err) { return err @@ -254,7 +278,9 @@ func (e errDataLoss) Unwrap() error { return e.error } -// DataLoss is a helper to create an error of the class with the same name from any error type +// DataLoss creates an [ErrDataLoss] error from the given error. +// It returns the error as-is if it is either nil (no error) or already implements +// [ErrDataLoss], func DataLoss(err error) error { if err == nil || IsDataLoss(err) { return err diff --git a/vendor/github.com/docker/docker/errdefs/http_helpers.go b/vendor/github.com/docker/docker/errdefs/http_helpers.go index ebcd7893..0a8fadd4 100644 --- a/vendor/github.com/docker/docker/errdefs/http_helpers.go +++ b/vendor/github.com/docker/docker/errdefs/http_helpers.go @@ -11,36 +11,37 @@ func FromStatusCode(err error, statusCode int) error { } switch statusCode { case http.StatusNotFound: - err = NotFound(err) + return NotFound(err) case http.StatusBadRequest: - err = InvalidParameter(err) + return InvalidParameter(err) case http.StatusConflict: - err = Conflict(err) + return Conflict(err) case http.StatusUnauthorized: - err = Unauthorized(err) + return Unauthorized(err) case http.StatusServiceUnavailable: - err = Unavailable(err) + return Unavailable(err) case http.StatusForbidden: - err = Forbidden(err) + return Forbidden(err) case http.StatusNotModified: - err = NotModified(err) + return NotModified(err) case http.StatusNotImplemented: - err = NotImplemented(err) + return NotImplemented(err) case http.StatusInternalServerError: - if !IsSystem(err) && !IsUnknown(err) && !IsDataLoss(err) && !IsDeadline(err) && !IsCancelled(err) { - err = System(err) + if IsCancelled(err) || IsSystem(err) || IsUnknown(err) || IsDataLoss(err) || IsDeadline(err) { + return err } + return System(err) default: switch { case statusCode >= 200 && statusCode < 400: // it's a client error + return err case statusCode >= 400 && statusCode < 500: - err = InvalidParameter(err) + return InvalidParameter(err) case statusCode >= 500 && statusCode < 600: - err = System(err) + return System(err) default: - err = Unknown(err) + return Unknown(err) } } - return err } diff --git a/vendor/github.com/docker/docker/errdefs/is.go b/vendor/github.com/docker/docker/errdefs/is.go index f94034cb..30ea7e6f 100644 --- a/vendor/github.com/docker/docker/errdefs/is.go +++ b/vendor/github.com/docker/docker/errdefs/is.go @@ -39,79 +39,79 @@ func getImplementer(err error) error { } } -// IsNotFound returns if the passed in error is an ErrNotFound +// IsNotFound returns if the passed in error is an [ErrNotFound], func IsNotFound(err error) bool { _, ok := getImplementer(err).(ErrNotFound) return ok } -// IsInvalidParameter returns if the passed in error is an ErrInvalidParameter +// IsInvalidParameter returns if the passed in error is an [ErrInvalidParameter]. func IsInvalidParameter(err error) bool { _, ok := getImplementer(err).(ErrInvalidParameter) return ok } -// IsConflict returns if the passed in error is an ErrConflict +// IsConflict returns if the passed in error is an [ErrConflict]. func IsConflict(err error) bool { _, ok := getImplementer(err).(ErrConflict) return ok } -// IsUnauthorized returns if the passed in error is an ErrUnauthorized +// IsUnauthorized returns if the passed in error is an [ErrUnauthorized]. func IsUnauthorized(err error) bool { _, ok := getImplementer(err).(ErrUnauthorized) return ok } -// IsUnavailable returns if the passed in error is an ErrUnavailable +// IsUnavailable returns if the passed in error is an [ErrUnavailable]. func IsUnavailable(err error) bool { _, ok := getImplementer(err).(ErrUnavailable) return ok } -// IsForbidden returns if the passed in error is an ErrForbidden +// IsForbidden returns if the passed in error is an [ErrForbidden]. func IsForbidden(err error) bool { _, ok := getImplementer(err).(ErrForbidden) return ok } -// IsSystem returns if the passed in error is an ErrSystem +// IsSystem returns if the passed in error is an [ErrSystem]. func IsSystem(err error) bool { _, ok := getImplementer(err).(ErrSystem) return ok } -// IsNotModified returns if the passed in error is a NotModified error +// IsNotModified returns if the passed in error is an [ErrNotModified]. func IsNotModified(err error) bool { _, ok := getImplementer(err).(ErrNotModified) return ok } -// IsNotImplemented returns if the passed in error is an ErrNotImplemented +// IsNotImplemented returns if the passed in error is an [ErrNotImplemented]. func IsNotImplemented(err error) bool { _, ok := getImplementer(err).(ErrNotImplemented) return ok } -// IsUnknown returns if the passed in error is an ErrUnknown +// IsUnknown returns if the passed in error is an [ErrUnknown]. func IsUnknown(err error) bool { _, ok := getImplementer(err).(ErrUnknown) return ok } -// IsCancelled returns if the passed in error is an ErrCancelled +// IsCancelled returns if the passed in error is an [ErrCancelled]. func IsCancelled(err error) bool { _, ok := getImplementer(err).(ErrCancelled) return ok } -// IsDeadline returns if the passed in error is an ErrDeadline +// IsDeadline returns if the passed in error is an [ErrDeadline]. func IsDeadline(err error) bool { _, ok := getImplementer(err).(ErrDeadline) return ok } -// IsDataLoss returns if the passed in error is an ErrDataLoss +// IsDataLoss returns if the passed in error is an [ErrDataLoss]. func IsDataLoss(err error) bool { _, ok := getImplementer(err).(ErrDataLoss) return ok diff --git a/vendor/github.com/docker/docker/internal/lazyregexp/lazyregexp.go b/vendor/github.com/docker/docker/internal/lazyregexp/lazyregexp.go new file mode 100644 index 00000000..6334edb6 --- /dev/null +++ b/vendor/github.com/docker/docker/internal/lazyregexp/lazyregexp.go @@ -0,0 +1,90 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code below was largely copied from golang.org/x/mod@v0.22; +// https://github.com/golang/mod/blob/v0.22.0/internal/lazyregexp/lazyre.go +// with some additional methods added. + +// Package lazyregexp is a thin wrapper over regexp, allowing the use of global +// regexp variables without forcing them to be compiled at init. +package lazyregexp + +import ( + "os" + "regexp" + "strings" + "sync" +) + +// Regexp is a wrapper around [regexp.Regexp], where the underlying regexp will be +// compiled the first time it is needed. +type Regexp struct { + str string + once sync.Once + rx *regexp.Regexp +} + +func (r *Regexp) re() *regexp.Regexp { + r.once.Do(r.build) + return r.rx +} + +func (r *Regexp) build() { + r.rx = regexp.MustCompile(r.str) + r.str = "" +} + +func (r *Regexp) FindSubmatch(s []byte) [][]byte { + return r.re().FindSubmatch(s) +} + +func (r *Regexp) FindAllStringSubmatch(s string, n int) [][]string { + return r.re().FindAllStringSubmatch(s, n) +} + +func (r *Regexp) FindStringSubmatch(s string) []string { + return r.re().FindStringSubmatch(s) +} + +func (r *Regexp) FindStringSubmatchIndex(s string) []int { + return r.re().FindStringSubmatchIndex(s) +} + +func (r *Regexp) ReplaceAllString(src, repl string) string { + return r.re().ReplaceAllString(src, repl) +} + +func (r *Regexp) FindString(s string) string { + return r.re().FindString(s) +} + +func (r *Regexp) FindAllString(s string, n int) []string { + return r.re().FindAllString(s, n) +} + +func (r *Regexp) MatchString(s string) bool { + return r.re().MatchString(s) +} + +func (r *Regexp) ReplaceAllStringFunc(src string, repl func(string) string) string { + return r.re().ReplaceAllStringFunc(src, repl) +} + +func (r *Regexp) SubexpNames() []string { + return r.re().SubexpNames() +} + +var inTest = len(os.Args) > 0 && strings.HasSuffix(strings.TrimSuffix(os.Args[0], ".exe"), ".test") + +// New creates a new lazy regexp, delaying the compiling work until it is first +// needed. If the code is being run as part of tests, the regexp compiling will +// happen immediately. +func New(str string) *Regexp { + lr := &Regexp{str: str} + if inTest { + // In tests, always compile the regexps early. + lr.re() + } + return lr +} diff --git a/vendor/github.com/docker/docker/pkg/archive/archive.go b/vendor/github.com/docker/docker/pkg/archive/archive.go index cde64f08..b0578040 100644 --- a/vendor/github.com/docker/docker/pkg/archive/archive.go +++ b/vendor/github.com/docker/docker/pkg/archive/archive.go @@ -1,5 +1,5 @@ // Package archive provides helper functions for dealing with archive files. -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "archive/tar" @@ -9,26 +9,26 @@ import ( "compress/gzip" "context" "encoding/binary" + "errors" "fmt" "io" "os" "os/exec" "path/filepath" "runtime" + "runtime/debug" "strconv" "strings" + "sync" + "sync/atomic" "syscall" "time" "github.com/containerd/log" "github.com/docker/docker/pkg/idtools" - "github.com/docker/docker/pkg/ioutils" - "github.com/docker/docker/pkg/pools" - "github.com/docker/docker/pkg/system" "github.com/klauspost/compress/zstd" "github.com/moby/patternmatcher" "github.com/moby/sys/sequential" - "github.com/pkg/errors" ) // ImpliedDirectoryMode represents the mode (Unix permissions) applied to directories that are implied by files in a @@ -215,17 +215,66 @@ func gzDecompress(ctx context.Context, buf io.Reader) (io.ReadCloser, error) { return cmdStream(exec.CommandContext(ctx, unpigzPath, "-d", "-c"), buf) } -func wrapReadCloser(readBuf io.ReadCloser, cancel context.CancelFunc) io.ReadCloser { - return ioutils.NewReadCloserWrapper(readBuf, func() error { - cancel() - return readBuf.Close() - }) +type readCloserWrapper struct { + io.Reader + closer func() error + closed atomic.Bool +} + +func (r *readCloserWrapper) Close() error { + if !r.closed.CompareAndSwap(false, true) { + log.G(context.TODO()).Error("subsequent attempt to close readCloserWrapper") + if log.GetLevel() >= log.DebugLevel { + log.G(context.TODO()).Errorf("stack trace: %s", string(debug.Stack())) + } + + return nil + } + if r.closer != nil { + return r.closer() + } + return nil +} + +var ( + bufioReader32KPool = &sync.Pool{ + New: func() interface{} { return bufio.NewReaderSize(nil, 32*1024) }, + } +) + +type bufferedReader struct { + buf *bufio.Reader +} + +func newBufferedReader(r io.Reader) *bufferedReader { + buf := bufioReader32KPool.Get().(*bufio.Reader) + buf.Reset(r) + return &bufferedReader{buf} +} + +func (r *bufferedReader) Read(p []byte) (n int, err error) { + if r.buf == nil { + return 0, io.EOF + } + n, err = r.buf.Read(p) + if err == io.EOF { + r.buf.Reset(nil) + bufioReader32KPool.Put(r.buf) + r.buf = nil + } + return +} + +func (r *bufferedReader) Peek(n int) ([]byte, error) { + if r.buf == nil { + return nil, io.EOF + } + return r.buf.Peek(n) } // DecompressStream decompresses the archive and returns a ReaderCloser with the decompressed archive. func DecompressStream(archive io.Reader) (io.ReadCloser, error) { - p := pools.BufioReader32KPool - buf := p.Get(archive) + buf := newBufferedReader(archive) bs, err := buf.Peek(10) if err != nil && err != io.EOF { // Note: we'll ignore any io.EOF error because there are some odd @@ -240,8 +289,9 @@ func DecompressStream(archive io.Reader) (io.ReadCloser, error) { compression := DetectCompression(bs) switch compression { case Uncompressed: - readBufWrapper := p.NewReadCloserWrapper(buf, buf) - return readBufWrapper, nil + return &readCloserWrapper{ + Reader: buf, + }, nil case Gzip: ctx, cancel := context.WithCancel(context.Background()) @@ -250,12 +300,18 @@ func DecompressStream(archive io.Reader) (io.ReadCloser, error) { cancel() return nil, err } - readBufWrapper := p.NewReadCloserWrapper(buf, gzReader) - return wrapReadCloser(readBufWrapper, cancel), nil + return &readCloserWrapper{ + Reader: gzReader, + closer: func() error { + cancel() + return gzReader.Close() + }, + }, nil case Bzip2: bz2Reader := bzip2.NewReader(buf) - readBufWrapper := p.NewReadCloserWrapper(buf, bz2Reader) - return readBufWrapper, nil + return &readCloserWrapper{ + Reader: bz2Reader, + }, nil case Xz: ctx, cancel := context.WithCancel(context.Background()) @@ -264,32 +320,44 @@ func DecompressStream(archive io.Reader) (io.ReadCloser, error) { cancel() return nil, err } - readBufWrapper := p.NewReadCloserWrapper(buf, xzReader) - return wrapReadCloser(readBufWrapper, cancel), nil + + return &readCloserWrapper{ + Reader: xzReader, + closer: func() error { + cancel() + return xzReader.Close() + }, + }, nil case Zstd: zstdReader, err := zstd.NewReader(buf) if err != nil { return nil, err } - readBufWrapper := p.NewReadCloserWrapper(buf, zstdReader) - return readBufWrapper, nil + return &readCloserWrapper{ + Reader: zstdReader, + closer: func() error { + zstdReader.Close() + return nil + }, + }, nil default: return nil, fmt.Errorf("Unsupported compression format %s", (&compression).Extension()) } } +type nopWriteCloser struct { + io.Writer +} + +func (nopWriteCloser) Close() error { return nil } + // CompressStream compresses the dest with specified compression algorithm. func CompressStream(dest io.Writer, compression Compression) (io.WriteCloser, error) { - p := pools.BufioWriter32KPool - buf := p.Get(dest) switch compression { case Uncompressed: - writeBufWrapper := p.NewWriteCloserWrapper(buf, buf) - return writeBufWrapper, nil + return nopWriteCloser{dest}, nil case Gzip: - gzWriter := gzip.NewWriter(dest) - writeBufWrapper := p.NewWriteCloserWrapper(buf, gzWriter) - return writeBufWrapper, nil + return gzip.NewWriter(dest), nil case Bzip2, Xz: // archive/bzip2 does not support writing, and there is no xz support at all // However, this is not a problem as docker only currently generates gzipped tars @@ -360,7 +428,7 @@ func ReplaceFileTarWrapper(inputTarStream io.ReadCloser, mods map[string]TarModi pipeWriter.CloseWithError(err) return } - if _, err := pools.Copy(tarWriter, tarReader); err != nil { + if _, err := copyWithBuffer(tarWriter, tarReader); err != nil { pipeWriter.CloseWithError(err) return } @@ -404,13 +472,35 @@ func (compression *Compression) Extension() string { return "" } +// assert that we implement [tar.FileInfoNames]. +// +// TODO(thaJeztah): disabled to allow compiling on < go1.23. un-comment once we drop support for older versions of go. +// var _ tar.FileInfoNames = (*nosysFileInfo)(nil) + // nosysFileInfo hides the system-dependent info of the wrapped FileInfo to // prevent tar.FileInfoHeader from introspecting it and potentially calling into // glibc. +// +// It implements [tar.FileInfoNames] to further prevent [tar.FileInfoHeader] +// from performing any lookups on go1.23 and up. see https://go.dev/issue/50102 type nosysFileInfo struct { os.FileInfo } +// Uname stubs out looking up username. It implements [tar.FileInfoNames] +// to prevent [tar.FileInfoHeader] from loading libraries to perform +// username lookups. +func (fi nosysFileInfo) Uname() (string, error) { + return "", nil +} + +// Gname stubs out looking up group-name. It implements [tar.FileInfoNames] +// to prevent [tar.FileInfoHeader] from loading libraries to perform +// username lookups. +func (fi nosysFileInfo) Gname() (string, error) { + return "", nil +} + func (fi nosysFileInfo) Sys() interface{} { // A Sys value of type *tar.Header is safe as it is system-independent. // The tar.FileInfoHeader function copies the fields into the returned @@ -484,7 +574,7 @@ func ReadSecurityXattrToTarHeader(path string, hdr *tar.Header) error { vfsCapRevision2 = 2 vfsCapRevision3 = 3 ) - capability, _ := system.Lgetxattr(path, "security.capability") + capability, _ := lgetxattr(path, "security.capability") if capability != nil { if capability[versionOffset] == vfsCapRevision3 { // Convert VFS_CAP_REVISION_3 to VFS_CAP_REVISION_2 as root UID makes no @@ -507,7 +597,6 @@ type tarWhiteoutConverter interface { type tarAppender struct { TarWriter *tar.Writer - Buffer *bufio.Writer // for hardlink mapping SeenFiles map[uint64]string @@ -525,21 +614,11 @@ func newTarAppender(idMapping idtools.IdentityMapping, writer io.Writer, chownOp return &tarAppender{ SeenFiles: make(map[uint64]string), TarWriter: tar.NewWriter(writer), - Buffer: pools.BufioWriter32KPool.Get(nil), IdentityMapping: idMapping, ChownOpts: chownOpts, } } -// CanonicalTarNameForPath canonicalizes relativePath to a POSIX-style path using -// forward slashes. It is an alias for [filepath.ToSlash], which is a no-op on -// Linux and Unix. -// -// Deprecated: use [filepath.ToSlash]. This function will be removed in the next release. -func CanonicalTarNameForPath(relativePath string) string { - return filepath.ToSlash(relativePath) -} - // canonicalTarName provides a platform-independent and consistent POSIX-style // path for files and directories to be archived regardless of the platform. func canonicalTarName(name string, isDir bool) string { @@ -652,17 +731,11 @@ func (ta *tarAppender) addTarFile(path, name string) error { return err } - ta.Buffer.Reset(ta.TarWriter) - defer ta.Buffer.Reset(nil) - _, err = io.Copy(ta.Buffer, file) + _, err = copyWithBuffer(ta.TarWriter, file) file.Close() if err != nil { return err } - err = ta.Buffer.Flush() - if err != nil { - return err - } } return nil @@ -705,7 +778,7 @@ func createTarFile(path, extractDir string, hdr *tar.Header, reader io.Reader, o if err != nil { return err } - if _, err := io.Copy(file, reader); err != nil { + if _, err := copyWithBuffer(file, reader); err != nil { file.Close() return err } @@ -771,11 +844,11 @@ func createTarFile(path, extractDir string, hdr *tar.Header, reader io.Reader, o chownOpts = &idtools.Identity{UID: hdr.Uid, GID: hdr.Gid} } if err := os.Lchown(path, chownOpts.UID, chownOpts.GID); err != nil { - msg := "failed to Lchown %q for UID %d, GID %d" + var msg string if inUserns && errors.Is(err, syscall.EINVAL) { - msg += " (try increasing the number of subordinate IDs in /etc/subuid and /etc/subgid)" + msg = " (try increasing the number of subordinate IDs in /etc/subuid and /etc/subgid)" } - return errors.Wrapf(err, msg, path, hdr.Uid, hdr.Gid) + return fmt.Errorf("failed to Lchown %q for UID %d, GID %d%s: %w", path, hdr.Uid, hdr.Gid, msg, err) } } @@ -785,7 +858,7 @@ func createTarFile(path, extractDir string, hdr *tar.Header, reader io.Reader, o if !ok { continue } - if err := system.Lsetxattr(path, xattr, []byte(value), 0); err != nil { + if err := lsetxattr(path, xattr, []byte(value), 0); err != nil { if bestEffortXattrs && errors.Is(err, syscall.ENOTSUP) || errors.Is(err, syscall.EPERM) { // EPERM occurs if modifying xattrs is not allowed. This can // happen when running in userns with restrictions (ChromeOS). @@ -808,26 +881,22 @@ func createTarFile(path, extractDir string, hdr *tar.Header, reader io.Reader, o return err } - aTime := hdr.AccessTime - if aTime.Before(hdr.ModTime) { - // Last access time should never be before last modified time. - aTime = hdr.ModTime - } + aTime := boundTime(latestTime(hdr.AccessTime, hdr.ModTime)) + mTime := boundTime(hdr.ModTime) - // system.Chtimes doesn't support a NOFOLLOW flag atm + // chtimes doesn't support a NOFOLLOW flag atm if hdr.Typeflag == tar.TypeLink { if fi, err := os.Lstat(hdr.Linkname); err == nil && (fi.Mode()&os.ModeSymlink == 0) { - if err := system.Chtimes(path, aTime, hdr.ModTime); err != nil { + if err := chtimes(path, aTime, mTime); err != nil { return err } } } else if hdr.Typeflag != tar.TypeSymlink { - if err := system.Chtimes(path, aTime, hdr.ModTime); err != nil { + if err := chtimes(path, aTime, mTime); err != nil { return err } } else { - ts := []syscall.Timespec{timeToTimespec(aTime), timeToTimespec(hdr.ModTime)} - if err := system.LUtimesNano(path, ts); err != nil && err != system.ErrNotSupportedPlatform { + if err := lchtimes(path, aTime, mTime); err != nil { return err } } @@ -920,9 +989,6 @@ func (t *Tarballer) Do() { } }() - // this buffer is needed for the duration of this piped stream - defer pools.BufioWriter32KPool.Put(ta.Buffer) - // In general we log errors here but ignore them because // during e.g. a diff operation the container can continue // mutating the filesystem and we can see transient errors @@ -1078,8 +1144,6 @@ func (t *Tarballer) Do() { // Unpack unpacks the decompressedArchive to dest with options. func Unpack(decompressedArchive io.Reader, dest string, options *TarOptions) error { tr := tar.NewReader(decompressedArchive) - trBuf := pools.BufioReader32KPool.Get(nil) - defer pools.BufioReader32KPool.Put(trBuf) var dirs []*tar.Header whiteoutConverter := getWhiteoutConverter(options.WhiteoutFormat) @@ -1156,7 +1220,6 @@ loop: } } } - trBuf.Reset(tr) if err := remapIDs(options.IDMap, hdr); err != nil { return err @@ -1172,7 +1235,7 @@ loop: } } - if err := createTarFile(path, dest, hdr, trBuf, options); err != nil { + if err := createTarFile(path, dest, hdr, tr, options); err != nil { return err } @@ -1187,7 +1250,7 @@ loop: // #nosec G305 -- The header was checked for path traversal before it was appended to the dirs slice. path := filepath.Join(dest, hdr.Name) - if err := system.Chtimes(path, hdr.AccessTime, hdr.ModTime); err != nil { + if err := chtimes(path, boundTime(latestTime(hdr.AccessTime, hdr.ModTime)), boundTime(hdr.ModTime)); err != nil { return err } } @@ -1336,7 +1399,7 @@ func (archiver *Archiver) CopyFileWithTar(src, dst string) (err error) { dst = filepath.Join(dst, filepath.Base(src)) } // Create the holding directory if necessary - if err := system.MkdirAll(filepath.Dir(dst), 0o700); err != nil { + if err := os.MkdirAll(filepath.Dir(dst), 0o700); err != nil { return err } @@ -1375,7 +1438,7 @@ func (archiver *Archiver) CopyFileWithTar(src, dst string) (err error) { if err := tw.WriteHeader(hdr); err != nil { return err } - if _, err := io.Copy(tw, srcF); err != nil { + if _, err := copyWithBuffer(tw, srcF); err != nil { return err } return nil @@ -1433,68 +1496,14 @@ func cmdStream(cmd *exec.Cmd, input io.Reader) (io.ReadCloser, error) { close(done) }() - return ioutils.NewReadCloserWrapper(pipeR, func() error { - // Close pipeR, and then wait for the command to complete before returning. We have to close pipeR first, as - // cmd.Wait waits for any non-file stdout/stderr/stdin to close. - err := pipeR.Close() - <-done - return err - }), nil -} - -// NewTempArchive reads the content of src into a temporary file, and returns the contents -// of that file as an archive. The archive can only be read once - as soon as reading completes, -// the file will be deleted. -// -// Deprecated: NewTempArchive is only used in tests and will be removed in the next release. -func NewTempArchive(src io.Reader, dir string) (*TempArchive, error) { - f, err := os.CreateTemp(dir, "") - if err != nil { - return nil, err - } - if _, err := io.Copy(f, src); err != nil { - return nil, err - } - if _, err := f.Seek(0, 0); err != nil { - return nil, err - } - st, err := f.Stat() - if err != nil { - return nil, err - } - size := st.Size() - return &TempArchive{File: f, Size: size}, nil -} - -// TempArchive is a temporary archive. The archive can only be read once - as soon as reading completes, -// the file will be deleted. -// -// Deprecated: TempArchive is only used in tests and will be removed in the next release. -type TempArchive struct { - *os.File - Size int64 // Pre-computed from Stat().Size() as a convenience - read int64 - closed bool -} - -// Close closes the underlying file if it's still open, or does a no-op -// to allow callers to try to close the TempArchive multiple times safely. -func (archive *TempArchive) Close() error { - if archive.closed { - return nil - } - - archive.closed = true - - return archive.File.Close() -} - -func (archive *TempArchive) Read(data []byte) (int, error) { - n, err := archive.File.Read(data) - archive.read += int64(n) - if err != nil || archive.read == archive.Size { - archive.Close() - os.Remove(archive.File.Name()) - } - return n, err + return &readCloserWrapper{ + Reader: pipeR, + closer: func() error { + // Close pipeR, and then wait for the command to complete before returning. We have to close pipeR first, as + // cmd.Wait waits for any non-file stdout/stderr/stdin to close. + err := pipeR.Close() + <-done + return err + }, + }, nil } diff --git a/vendor/github.com/docker/docker/pkg/archive/archive_linux.go b/vendor/github.com/docker/docker/pkg/archive/archive_linux.go index b9d2a538..631d2e3c 100644 --- a/vendor/github.com/docker/docker/pkg/archive/archive_linux.go +++ b/vendor/github.com/docker/docker/pkg/archive/archive_linux.go @@ -1,14 +1,13 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "archive/tar" + "fmt" "os" "path/filepath" "strings" - "github.com/docker/docker/pkg/system" "github.com/moby/sys/userns" - "github.com/pkg/errors" "golang.org/x/sys/unix" ) @@ -39,7 +38,7 @@ func (overlayWhiteoutConverter) ConvertWrite(hdr *tar.Header, path string, fi os } // convert opaque dirs to AUFS format by writing an empty file with the prefix - opaque, err := system.Lgetxattr(path, opaqueXattrName) + opaque, err := lgetxattr(path, opaqueXattrName) if err != nil { return nil, err } @@ -79,7 +78,7 @@ func (c overlayWhiteoutConverter) ConvertRead(hdr *tar.Header, path string) (boo err := unix.Setxattr(dir, opaqueXattrName, []byte{'y'}, 0) if err != nil { - return false, errors.Wrapf(err, "setxattr(%q, %s=y)", dir, opaqueXattrName) + return false, fmt.Errorf("setxattr('%s', %s=y): %w", dir, opaqueXattrName, err) } // don't write the file itself return false, err @@ -91,7 +90,7 @@ func (c overlayWhiteoutConverter) ConvertRead(hdr *tar.Header, path string) (boo originalPath := filepath.Join(dir, originalBase) if err := unix.Mknod(originalPath, unix.S_IFCHR, 0); err != nil { - return false, errors.Wrapf(err, "failed to mknod(%q, S_IFCHR, 0)", originalPath) + return false, fmt.Errorf("failed to mknod('%s', S_IFCHR, 0): %w", originalPath, err) } if err := os.Chown(originalPath, hdr.Uid, hdr.Gid); err != nil { return false, err diff --git a/vendor/github.com/docker/docker/pkg/archive/archive_other.go b/vendor/github.com/docker/docker/pkg/archive/archive_other.go index 7dee1f7a..6495549f 100644 --- a/vendor/github.com/docker/docker/pkg/archive/archive_other.go +++ b/vendor/github.com/docker/docker/pkg/archive/archive_other.go @@ -1,6 +1,6 @@ //go:build !linux -package archive // import "github.com/docker/docker/pkg/archive" +package archive func getWhiteoutConverter(format WhiteoutFormat) tarWhiteoutConverter { return nil diff --git a/vendor/github.com/docker/docker/pkg/archive/archive_unix.go b/vendor/github.com/docker/docker/pkg/archive/archive_unix.go index f559a305..9c70d178 100644 --- a/vendor/github.com/docker/docker/pkg/archive/archive_unix.go +++ b/vendor/github.com/docker/docker/pkg/archive/archive_unix.go @@ -1,6 +1,6 @@ //go:build !windows -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "archive/tar" @@ -12,7 +12,6 @@ import ( "syscall" "github.com/docker/docker/pkg/idtools" - "github.com/docker/docker/pkg/system" "golang.org/x/sys/unix" ) @@ -109,7 +108,7 @@ func handleTarTypeBlockCharFifo(hdr *tar.Header, path string) error { mode |= unix.S_IFIFO } - return system.Mknod(path, mode, int(system.Mkdev(hdr.Devmajor, hdr.Devminor))) + return mknod(path, mode, unix.Mkdev(uint32(hdr.Devmajor), uint32(hdr.Devminor))) } func handleLChmod(hdr *tar.Header, path string, hdrInfo os.FileInfo) error { diff --git a/vendor/github.com/docker/docker/pkg/archive/archive_windows.go b/vendor/github.com/docker/docker/pkg/archive/archive_windows.go index e25c64b4..03160816 100644 --- a/vendor/github.com/docker/docker/pkg/archive/archive_windows.go +++ b/vendor/github.com/docker/docker/pkg/archive/archive_windows.go @@ -1,4 +1,4 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "archive/tar" diff --git a/vendor/github.com/docker/docker/pkg/archive/changes.go b/vendor/github.com/docker/docker/pkg/archive/changes.go index 5f12ca40..79c810a6 100644 --- a/vendor/github.com/docker/docker/pkg/archive/changes.go +++ b/vendor/github.com/docker/docker/pkg/archive/changes.go @@ -1,4 +1,4 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "archive/tar" @@ -6,17 +6,15 @@ import ( "context" "fmt" "io" + "io/fs" "os" "path/filepath" "sort" "strings" - "syscall" "time" "github.com/containerd/log" "github.com/docker/docker/pkg/idtools" - "github.com/docker/docker/pkg/pools" - "github.com/docker/docker/pkg/system" ) // ChangeType represents the change type. @@ -74,11 +72,6 @@ func sameFsTime(a, b time.Time) bool { (a.Nanosecond() == 0 || b.Nanosecond() == 0)) } -func sameFsTimeSpec(a, b syscall.Timespec) bool { - return a.Sec == b.Sec && - (a.Nsec == b.Nsec || a.Nsec == 0 || b.Nsec == 0) -} - // Changes walks the path rw and determines changes for the files in the path, // with respect to the parent layers func Changes(layers []string, rw string) ([]Change, error) { @@ -210,7 +203,7 @@ func changes(layers []string, rw string, dc deleteChange, sc skipChange) ([]Chan type FileInfo struct { parent *FileInfo name string - stat *system.StatT + stat fs.FileInfo children map[string]*FileInfo capability []byte added bool @@ -395,9 +388,6 @@ func ExportChanges(dir string, changes []Change, idMap idtools.IdentityMapping) go func() { ta := newTarAppender(idMap, writer, nil) - // this buffer is needed for the duration of this piped stream - defer pools.BufioWriter32KPool.Put(ta.Buffer) - sort.Sort(changesByPath(changes)) // In general we log errors here but ignore them because diff --git a/vendor/github.com/docker/docker/pkg/archive/changes_linux.go b/vendor/github.com/docker/docker/pkg/archive/changes_linux.go index 81fcbc5b..9a041b09 100644 --- a/vendor/github.com/docker/docker/pkg/archive/changes_linux.go +++ b/vendor/github.com/docker/docker/pkg/archive/changes_linux.go @@ -1,15 +1,14 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( - "bytes" "fmt" "os" "path/filepath" "sort" + "strings" "syscall" "unsafe" - "github.com/docker/docker/pkg/system" "golang.org/x/sys/unix" ) @@ -74,12 +73,8 @@ func walkchunk(path string, fi os.FileInfo, dir string, root *FileInfo) error { parent: parent, } cpath := filepath.Join(dir, path) - stat, err := system.FromStatT(fi.Sys().(*syscall.Stat_t)) - if err != nil { - return err - } - info.stat = stat - info.capability, _ = system.Lgetxattr(cpath, "security.capability") // lgetxattr(2): fs access + info.stat = fi + info.capability, _ = lgetxattr(cpath, "security.capability") // lgetxattr(2): fs access parent.children[info.name] = info return nil } @@ -148,7 +143,7 @@ func (w *walker) walk(path string, i1, i2 os.FileInfo) (err error) { ni1 := names1[ix1] ni2 := names2[ix2] - switch bytes.Compare([]byte(ni1.name), []byte(ni2.name)) { + switch strings.Compare(ni1.name, ni2.name) { case -1: // ni1 < ni2 -- advance ni1 // we will not encounter ni1 in names2 names = append(names, ni1.name) @@ -261,13 +256,13 @@ func readdirnames(dirname string) (names []nameIno, err error) { func parseDirent(buf []byte, names []nameIno) (consumed int, newnames []nameIno) { origlen := len(buf) for len(buf) > 0 { - dirent := (*unix.Dirent)(unsafe.Pointer(&buf[0])) + dirent := (*unix.Dirent)(unsafe.Pointer(&buf[0])) // #nosec G103 -- Ignore "G103: Use of unsafe calls should be audited" buf = buf[dirent.Reclen:] if dirent.Ino == 0 { // File absent in directory. continue } - bytes := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0])) - name := string(bytes[0:clen(bytes[:])]) + b := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0])) // #nosec G103 -- Ignore "G103: Use of unsafe calls should be audited" + name := string(b[0:clen(b[:])]) if name == "." || name == ".." { // Useless names continue } diff --git a/vendor/github.com/docker/docker/pkg/archive/changes_other.go b/vendor/github.com/docker/docker/pkg/archive/changes_other.go index 28f741a2..a8a3a5a6 100644 --- a/vendor/github.com/docker/docker/pkg/archive/changes_other.go +++ b/vendor/github.com/docker/docker/pkg/archive/changes_other.go @@ -1,6 +1,6 @@ //go:build !linux -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "fmt" @@ -8,8 +8,6 @@ import ( "path/filepath" "runtime" "strings" - - "github.com/docker/docker/pkg/system" ) func collectFileInfoForChanges(oldDir, newDir string) (*FileInfo, *FileInfo, error) { @@ -72,7 +70,7 @@ func collectFileInfo(sourceDir string) (*FileInfo, error) { return fmt.Errorf("collectFileInfo: Unexpectedly no parent for %s", relPath) } - s, err := system.Lstat(path) + s, err := os.Lstat(path) if err != nil { return err } @@ -84,11 +82,7 @@ func collectFileInfo(sourceDir string) (*FileInfo, error) { stat: s, } - // system.Lgetxattr is only implemented on Linux and produces an error - // on other platforms. This code is intentionally left commented-out - // as a reminder to include this code if this would ever be implemented - // on other platforms. - // info.capability, _ = system.Lgetxattr(path, "security.capability") + info.capability, _ = lgetxattr(path, "security.capability") parent.children[info.name] = info diff --git a/vendor/github.com/docker/docker/pkg/archive/changes_unix.go b/vendor/github.com/docker/docker/pkg/archive/changes_unix.go index 853c73ee..4dd98bd2 100644 --- a/vendor/github.com/docker/docker/pkg/archive/changes_unix.go +++ b/vendor/github.com/docker/docker/pkg/archive/changes_unix.go @@ -1,21 +1,21 @@ //go:build !windows -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( + "io/fs" "os" "syscall" - - "github.com/docker/docker/pkg/system" - "golang.org/x/sys/unix" ) -func statDifferent(oldStat *system.StatT, newStat *system.StatT) bool { +func statDifferent(oldStat fs.FileInfo, newStat fs.FileInfo) bool { + oldSys := oldStat.Sys().(*syscall.Stat_t) + newSys := newStat.Sys().(*syscall.Stat_t) // Don't look at size for dirs, its not a good measure of change if oldStat.Mode() != newStat.Mode() || - oldStat.UID() != newStat.UID() || - oldStat.GID() != newStat.GID() || - oldStat.Rdev() != newStat.Rdev() || + oldSys.Uid != newSys.Uid || + oldSys.Gid != newSys.Gid || + oldSys.Rdev != newSys.Rdev || // Don't look at size or modification time for dirs, its not a good // measure of change. See https://github.com/moby/moby/issues/9874 // for a description of the issue with modification time, and @@ -23,15 +23,15 @@ func statDifferent(oldStat *system.StatT, newStat *system.StatT) bool { // (Note that in the Windows implementation of this function, // modification time IS taken as a change). See // https://github.com/moby/moby/pull/37982 for more information. - (oldStat.Mode()&unix.S_IFDIR != unix.S_IFDIR && - (!sameFsTimeSpec(oldStat.Mtim(), newStat.Mtim()) || (oldStat.Size() != newStat.Size()))) { + (!oldStat.Mode().IsDir() && + (!sameFsTime(oldStat.ModTime(), newStat.ModTime()) || (oldStat.Size() != newStat.Size()))) { return true } return false } func (info *FileInfo) isDir() bool { - return info.parent == nil || info.stat.Mode()&unix.S_IFDIR != 0 + return info.parent == nil || info.stat.Mode().IsDir() } func getIno(fi os.FileInfo) uint64 { diff --git a/vendor/github.com/docker/docker/pkg/archive/changes_windows.go b/vendor/github.com/docker/docker/pkg/archive/changes_windows.go index 9906685e..c89605c7 100644 --- a/vendor/github.com/docker/docker/pkg/archive/changes_windows.go +++ b/vendor/github.com/docker/docker/pkg/archive/changes_windows.go @@ -1,19 +1,18 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( + "io/fs" "os" - - "github.com/docker/docker/pkg/system" ) -func statDifferent(oldStat *system.StatT, newStat *system.StatT) bool { +func statDifferent(oldStat fs.FileInfo, newStat fs.FileInfo) bool { // Note there is slight difference between the Linux and Windows // implementations here. Due to https://github.com/moby/moby/issues/9874, // and the fix at https://github.com/moby/moby/pull/11422, Linux does not // consider a change to the directory time as a change. Windows on NTFS // does. See https://github.com/moby/moby/pull/37982 for more information. - if !sameFsTime(oldStat.Mtim(), newStat.Mtim()) || + if !sameFsTime(oldStat.ModTime(), newStat.ModTime()) || oldStat.Mode() != newStat.Mode() || oldStat.Size() != newStat.Size() && !oldStat.Mode().IsDir() { return true diff --git a/vendor/github.com/docker/docker/pkg/archive/copy.go b/vendor/github.com/docker/docker/pkg/archive/copy.go index 01eadc30..cddf18ec 100644 --- a/vendor/github.com/docker/docker/pkg/archive/copy.go +++ b/vendor/github.com/docker/docker/pkg/archive/copy.go @@ -1,4 +1,4 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "archive/tar" @@ -8,9 +8,9 @@ import ( "os" "path/filepath" "strings" + "sync" "github.com/containerd/log" - "github.com/docker/docker/pkg/system" ) // Errors used or returned by this file. @@ -21,6 +21,17 @@ var ( ErrInvalidCopySource = errors.New("invalid copy source content") ) +var copyPool = sync.Pool{ + New: func() interface{} { s := make([]byte, 32*1024); return &s }, +} + +func copyWithBuffer(dst io.Writer, src io.Reader) (written int64, err error) { + buf := copyPool.Get().(*[]byte) + written, err = io.CopyBuffer(dst, src, *buf) + copyPool.Put(buf) + return +} + // PreserveTrailingDotOrSeparator returns the given cleaned path (after // processing using any utility functions from the path or filepath stdlib // packages) and appends a trailing `/.` or `/` if its corresponding original @@ -203,7 +214,7 @@ func CopyInfoDestinationPath(path string) (info CopyInfo, err error) { return CopyInfo{}, err } - if !system.IsAbs(linkTarget) { + if !filepath.IsAbs(linkTarget) { // Join with the parent directory. dstParent, _ := SplitPathDirEntry(path) linkTarget = filepath.Join(dstParent, linkTarget) diff --git a/vendor/github.com/docker/docker/pkg/archive/copy_unix.go b/vendor/github.com/docker/docker/pkg/archive/copy_unix.go index 065bd4ad..f5792824 100644 --- a/vendor/github.com/docker/docker/pkg/archive/copy_unix.go +++ b/vendor/github.com/docker/docker/pkg/archive/copy_unix.go @@ -1,6 +1,6 @@ //go:build !windows -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "path/filepath" diff --git a/vendor/github.com/docker/docker/pkg/archive/copy_windows.go b/vendor/github.com/docker/docker/pkg/archive/copy_windows.go index a878d1ba..2b775b45 100644 --- a/vendor/github.com/docker/docker/pkg/archive/copy_windows.go +++ b/vendor/github.com/docker/docker/pkg/archive/copy_windows.go @@ -1,4 +1,4 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "path/filepath" diff --git a/vendor/github.com/docker/docker/pkg/archive/dev_freebsd.go b/vendor/github.com/docker/docker/pkg/archive/dev_freebsd.go new file mode 100644 index 00000000..aa8e2915 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/archive/dev_freebsd.go @@ -0,0 +1,7 @@ +//go:build freebsd + +package archive + +import "golang.org/x/sys/unix" + +var mknod = unix.Mknod diff --git a/vendor/github.com/docker/docker/pkg/archive/dev_unix.go b/vendor/github.com/docker/docker/pkg/archive/dev_unix.go new file mode 100644 index 00000000..dffc596f --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/archive/dev_unix.go @@ -0,0 +1,9 @@ +//go:build !windows && !freebsd + +package archive + +import "golang.org/x/sys/unix" + +func mknod(path string, mode uint32, dev uint64) error { + return unix.Mknod(path, mode, int(dev)) +} diff --git a/vendor/github.com/docker/docker/pkg/archive/diff.go b/vendor/github.com/docker/docker/pkg/archive/diff.go index e080e310..d5a394cd 100644 --- a/vendor/github.com/docker/docker/pkg/archive/diff.go +++ b/vendor/github.com/docker/docker/pkg/archive/diff.go @@ -1,4 +1,4 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "archive/tar" @@ -11,8 +11,6 @@ import ( "strings" "github.com/containerd/log" - "github.com/docker/docker/pkg/pools" - "github.com/docker/docker/pkg/system" ) // UnpackLayer unpack `layer` to a `dest`. The stream `layer` can be @@ -20,8 +18,6 @@ import ( // Returns the size in bytes of the contents of the layer. func UnpackLayer(dest string, layer io.Reader, options *TarOptions) (size int64, err error) { tr := tar.NewReader(layer) - trBuf := pools.BufioReader32KPool.Get(tr) - defer pools.BufioReader32KPool.Put(trBuf) var dirs []*tar.Header unpackedPaths := make(map[string]struct{}) @@ -160,8 +156,7 @@ func UnpackLayer(dest string, layer io.Reader, options *TarOptions) (size int64, } } - trBuf.Reset(tr) - srcData := io.Reader(trBuf) + srcData := io.Reader(tr) srcHdr := hdr // Hard links into /.wh..wh.plnk don't work, as we don't extract that directory, so @@ -200,7 +195,7 @@ func UnpackLayer(dest string, layer io.Reader, options *TarOptions) (size int64, for _, hdr := range dirs { // #nosec G305 -- The header was checked for path traversal before it was appended to the dirs slice. path := filepath.Join(dest, hdr.Name) - if err := system.Chtimes(path, hdr.AccessTime, hdr.ModTime); err != nil { + if err := chtimes(path, hdr.AccessTime, hdr.ModTime); err != nil { return 0, err } } diff --git a/vendor/github.com/docker/docker/pkg/archive/time.go b/vendor/github.com/docker/docker/pkg/archive/time.go new file mode 100644 index 00000000..4e9ae950 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/archive/time.go @@ -0,0 +1,38 @@ +package archive + +import ( + "syscall" + "time" + "unsafe" +) + +var ( + minTime = time.Unix(0, 0) + maxTime time.Time +) + +func init() { + if unsafe.Sizeof(syscall.Timespec{}.Nsec) == 8 { + // This is a 64 bit timespec + // os.Chtimes limits time to the following + maxTime = time.Unix(0, 1<<63-1) + } else { + // This is a 32 bit timespec + maxTime = time.Unix(1<<31-1, 0) + } +} + +func boundTime(t time.Time) time.Time { + if t.Before(minTime) || t.After(maxTime) { + return minTime + } + + return t +} + +func latestTime(t1, t2 time.Time) time.Time { + if t1.Before(t2) { + return t2 + } + return t1 +} diff --git a/vendor/github.com/docker/docker/pkg/archive/time_linux.go b/vendor/github.com/docker/docker/pkg/archive/time_linux.go deleted file mode 100644 index 797143ee..00000000 --- a/vendor/github.com/docker/docker/pkg/archive/time_linux.go +++ /dev/null @@ -1,16 +0,0 @@ -package archive // import "github.com/docker/docker/pkg/archive" - -import ( - "syscall" - "time" -) - -func timeToTimespec(time time.Time) (ts syscall.Timespec) { - if time.IsZero() { - // Return UTIME_OMIT special value - ts.Sec = 0 - ts.Nsec = (1 << 30) - 2 - return - } - return syscall.NsecToTimespec(time.UnixNano()) -} diff --git a/vendor/github.com/docker/docker/pkg/archive/time_nonwindows.go b/vendor/github.com/docker/docker/pkg/archive/time_nonwindows.go new file mode 100644 index 00000000..8ce83bd0 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/archive/time_nonwindows.go @@ -0,0 +1,40 @@ +//go:build !windows + +package archive + +import ( + "os" + "time" + + "golang.org/x/sys/unix" +) + +// chtimes changes the access time and modified time of a file at the given path. +// If the modified time is prior to the Unix Epoch (unixMinTime), or after the +// end of Unix Time (unixEpochTime), os.Chtimes has undefined behavior. In this +// case, Chtimes defaults to Unix Epoch, just in case. +func chtimes(name string, atime time.Time, mtime time.Time) error { + return os.Chtimes(name, atime, mtime) +} + +func timeToTimespec(time time.Time) (ts unix.Timespec) { + if time.IsZero() { + // Return UTIME_OMIT special value + ts.Sec = 0 + ts.Nsec = (1 << 30) - 2 + return + } + return unix.NsecToTimespec(time.UnixNano()) +} + +func lchtimes(name string, atime time.Time, mtime time.Time) error { + utimes := [2]unix.Timespec{ + timeToTimespec(atime), + timeToTimespec(mtime), + } + err := unix.UtimesNanoAt(unix.AT_FDCWD, name, utimes[0:], unix.AT_SYMLINK_NOFOLLOW) + if err != nil && err != unix.ENOSYS { + return err + } + return err +} diff --git a/vendor/github.com/docker/docker/pkg/archive/time_unsupported.go b/vendor/github.com/docker/docker/pkg/archive/time_unsupported.go deleted file mode 100644 index 14c4ceb1..00000000 --- a/vendor/github.com/docker/docker/pkg/archive/time_unsupported.go +++ /dev/null @@ -1,16 +0,0 @@ -//go:build !linux - -package archive // import "github.com/docker/docker/pkg/archive" - -import ( - "syscall" - "time" -) - -func timeToTimespec(time time.Time) (ts syscall.Timespec) { - nsec := int64(0) - if !time.IsZero() { - nsec = time.UnixNano() - } - return syscall.NsecToTimespec(nsec) -} diff --git a/vendor/github.com/docker/docker/pkg/system/chtimes_windows.go b/vendor/github.com/docker/docker/pkg/archive/time_windows.go similarity index 50% rename from vendor/github.com/docker/docker/pkg/system/chtimes_windows.go rename to vendor/github.com/docker/docker/pkg/archive/time_windows.go index ab478f5c..af1f7c8f 100644 --- a/vendor/github.com/docker/docker/pkg/system/chtimes_windows.go +++ b/vendor/github.com/docker/docker/pkg/archive/time_windows.go @@ -1,15 +1,18 @@ -package system // import "github.com/docker/docker/pkg/system" +package archive import ( + "os" "time" "golang.org/x/sys/windows" ) -// setCTime will set the create time on a file. On Windows, this requires -// calling SetFileTime and explicitly including the create time. -func setCTime(path string, ctime time.Time) error { - pathp, err := windows.UTF16PtrFromString(path) +func chtimes(name string, atime time.Time, mtime time.Time) error { + if err := os.Chtimes(name, atime, mtime); err != nil { + return err + } + + pathp, err := windows.UTF16PtrFromString(name) if err != nil { return err } @@ -20,6 +23,10 @@ func setCTime(path string, ctime time.Time) error { return err } defer windows.Close(h) - c := windows.NsecToFiletime(ctime.UnixNano()) + c := windows.NsecToFiletime(mtime.UnixNano()) return windows.SetFileTime(h, &c, nil, nil) } + +func lchtimes(name string, atime time.Time, mtime time.Time) error { + return nil +} diff --git a/vendor/github.com/docker/docker/pkg/archive/whiteouts.go b/vendor/github.com/docker/docker/pkg/archive/whiteouts.go index 4c072a87..d20478a1 100644 --- a/vendor/github.com/docker/docker/pkg/archive/whiteouts.go +++ b/vendor/github.com/docker/docker/pkg/archive/whiteouts.go @@ -1,4 +1,4 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive // Whiteouts are files with a special meaning for the layered filesystem. // Docker uses AUFS whiteout files inside exported archives. In other diff --git a/vendor/github.com/docker/docker/pkg/archive/wrap.go b/vendor/github.com/docker/docker/pkg/archive/wrap.go index 032db82c..903befd7 100644 --- a/vendor/github.com/docker/docker/pkg/archive/wrap.go +++ b/vendor/github.com/docker/docker/pkg/archive/wrap.go @@ -1,4 +1,4 @@ -package archive // import "github.com/docker/docker/pkg/archive" +package archive import ( "archive/tar" diff --git a/vendor/github.com/docker/docker/pkg/archive/xattr_supported.go b/vendor/github.com/docker/docker/pkg/archive/xattr_supported.go new file mode 100644 index 00000000..652a1f0f --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/archive/xattr_supported.go @@ -0,0 +1,52 @@ +//go:build linux || darwin || freebsd || netbsd + +package archive + +import ( + "errors" + "fmt" + "io/fs" + + "golang.org/x/sys/unix" +) + +// lgetxattr retrieves the value of the extended attribute identified by attr +// and associated with the given path in the file system. +// It returns a nil slice and nil error if the xattr is not set. +func lgetxattr(path string, attr string) ([]byte, error) { + // Start with a 128 length byte array + dest := make([]byte, 128) + sz, err := unix.Lgetxattr(path, attr, dest) + + for errors.Is(err, unix.ERANGE) { + // Buffer too small, use zero-sized buffer to get the actual size + sz, err = unix.Lgetxattr(path, attr, []byte{}) + if err != nil { + return nil, wrapPathError("lgetxattr", path, attr, err) + } + dest = make([]byte, sz) + sz, err = unix.Lgetxattr(path, attr, dest) + } + + if err != nil { + if errors.Is(err, noattr) { + return nil, nil + } + return nil, wrapPathError("lgetxattr", path, attr, err) + } + + return dest[:sz], nil +} + +// lsetxattr sets the value of the extended attribute identified by attr +// and associated with the given path in the file system. +func lsetxattr(path string, attr string, data []byte, flags int) error { + return wrapPathError("lsetxattr", path, attr, unix.Lsetxattr(path, attr, data, flags)) +} + +func wrapPathError(op, path, attr string, err error) error { + if err == nil { + return nil + } + return &fs.PathError{Op: op, Path: path, Err: fmt.Errorf("xattr %q: %w", attr, err)} +} diff --git a/vendor/github.com/docker/docker/pkg/archive/xattr_supported_linux.go b/vendor/github.com/docker/docker/pkg/archive/xattr_supported_linux.go new file mode 100644 index 00000000..f2e76465 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/archive/xattr_supported_linux.go @@ -0,0 +1,5 @@ +package archive + +import "golang.org/x/sys/unix" + +var noattr = unix.ENODATA diff --git a/vendor/github.com/docker/docker/pkg/archive/xattr_supported_unix.go b/vendor/github.com/docker/docker/pkg/archive/xattr_supported_unix.go new file mode 100644 index 00000000..4d882415 --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/archive/xattr_supported_unix.go @@ -0,0 +1,7 @@ +//go:build !linux && !windows + +package archive + +import "golang.org/x/sys/unix" + +var noattr = unix.ENOATTR diff --git a/vendor/github.com/docker/docker/pkg/archive/xattr_unsupported.go b/vendor/github.com/docker/docker/pkg/archive/xattr_unsupported.go new file mode 100644 index 00000000..b0d9165c --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/archive/xattr_unsupported.go @@ -0,0 +1,11 @@ +//go:build !linux && !darwin && !freebsd && !netbsd + +package archive + +func lgetxattr(path string, attr string) ([]byte, error) { + return nil, nil +} + +func lsetxattr(path string, attr string, data []byte, flags int) error { + return nil +} diff --git a/vendor/github.com/docker/docker/pkg/ioutils/fswriters.go b/vendor/github.com/docker/docker/pkg/atomicwriter/atomicwriter.go similarity index 74% rename from vendor/github.com/docker/docker/pkg/ioutils/fswriters.go rename to vendor/github.com/docker/docker/pkg/atomicwriter/atomicwriter.go index 05da97b0..cbbe835b 100644 --- a/vendor/github.com/docker/docker/pkg/ioutils/fswriters.go +++ b/vendor/github.com/docker/docker/pkg/atomicwriter/atomicwriter.go @@ -1,4 +1,4 @@ -package ioutils // import "github.com/docker/docker/pkg/ioutils" +package atomicwriter import ( "io" @@ -6,11 +6,11 @@ import ( "path/filepath" ) -// NewAtomicFileWriter returns WriteCloser so that writing to it writes to a +// New returns a WriteCloser so that writing to it writes to a // temporary file and closing it atomically changes the temporary file to // destination path. Writing and closing concurrently is not allowed. // NOTE: umask is not considered for the file's permissions. -func NewAtomicFileWriter(filename string, perm os.FileMode) (io.WriteCloser, error) { +func New(filename string, perm os.FileMode) (io.WriteCloser, error) { f, err := os.CreateTemp(filepath.Dir(filename), ".tmp-"+filepath.Base(filename)) if err != nil { return nil, err @@ -27,10 +27,10 @@ func NewAtomicFileWriter(filename string, perm os.FileMode) (io.WriteCloser, err }, nil } -// AtomicWriteFile atomically writes data to a file named by filename and with the specified permission bits. +// WriteFile atomically writes data to a file named by filename and with the specified permission bits. // NOTE: umask is not considered for the file's permissions. -func AtomicWriteFile(filename string, data []byte, perm os.FileMode) error { - f, err := NewAtomicFileWriter(filename, perm) +func WriteFile(filename string, data []byte, perm os.FileMode) error { + f, err := New(filename, perm) if err != nil { return err } @@ -82,32 +82,32 @@ func (w *atomicFileWriter) Close() (retErr error) { return nil } -// AtomicWriteSet is used to atomically write a set +// WriteSet is used to atomically write a set // of files and ensure they are visible at the same time. // Must be committed to a new directory. -type AtomicWriteSet struct { +type WriteSet struct { root string } -// NewAtomicWriteSet creates a new atomic write set to +// NewWriteSet creates a new atomic write set to // atomically create a set of files. The given directory // is used as the base directory for storing files before // commit. If no temporary directory is given the system // default is used. -func NewAtomicWriteSet(tmpDir string) (*AtomicWriteSet, error) { +func NewWriteSet(tmpDir string) (*WriteSet, error) { td, err := os.MkdirTemp(tmpDir, "write-set-") if err != nil { return nil, err } - return &AtomicWriteSet{ + return &WriteSet{ root: td, }, nil } // WriteFile writes a file to the set, guaranteeing the file // has been synced. -func (ws *AtomicWriteSet) WriteFile(filename string, data []byte, perm os.FileMode) error { +func (ws *WriteSet) WriteFile(filename string, data []byte, perm os.FileMode) error { f, err := ws.FileWriter(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) if err != nil { return err @@ -136,7 +136,7 @@ func (w syncFileCloser) Close() error { // FileWriter opens a file writer inside the set. The file // should be synced and closed before calling commit. -func (ws *AtomicWriteSet) FileWriter(name string, flag int, perm os.FileMode) (io.WriteCloser, error) { +func (ws *WriteSet) FileWriter(name string, flag int, perm os.FileMode) (io.WriteCloser, error) { f, err := os.OpenFile(filepath.Join(ws.root, name), flag, perm) if err != nil { return nil, err @@ -146,18 +146,18 @@ func (ws *AtomicWriteSet) FileWriter(name string, flag int, perm os.FileMode) (i // Cancel cancels the set and removes all temporary data // created in the set. -func (ws *AtomicWriteSet) Cancel() error { +func (ws *WriteSet) Cancel() error { return os.RemoveAll(ws.root) } // Commit moves all created files to the target directory. The // target directory must not exist and the parent of the target // directory must exist. -func (ws *AtomicWriteSet) Commit(target string) error { +func (ws *WriteSet) Commit(target string) error { return os.Rename(ws.root, target) } // String returns the location the set is writing to. -func (ws *AtomicWriteSet) String() string { +func (ws *WriteSet) String() string { return ws.root } diff --git a/vendor/github.com/docker/docker/pkg/idtools/idtools.go b/vendor/github.com/docker/docker/pkg/idtools/idtools.go index 79d682c6..d2fbd943 100644 --- a/vendor/github.com/docker/docker/pkg/idtools/idtools.go +++ b/vendor/github.com/docker/docker/pkg/idtools/idtools.go @@ -1,11 +1,8 @@ -package idtools // import "github.com/docker/docker/pkg/idtools" +package idtools import ( - "bufio" "fmt" "os" - "strconv" - "strings" ) // IDMap contains a single entry for user namespace range remapping. An array @@ -17,22 +14,6 @@ type IDMap struct { Size int `json:"size"` } -type subIDRange struct { - Start int - Length int -} - -type ranges []subIDRange - -func (e ranges) Len() int { return len(e) } -func (e ranges) Swap(i, j int) { e[i], e[j] = e[j], e[i] } -func (e ranges) Less(i, j int) bool { return e[i].Start < e[j].Start } - -const ( - subuidFileName = "/etc/subuid" - subgidFileName = "/etc/subgid" -) - // MkdirAllAndChown creates a directory (include any along the path) and then modifies // ownership to the requested uid/gid. If the directory already exists, this // function will still change ownership and permissions. @@ -162,67 +143,6 @@ func (i IdentityMapping) Empty() bool { return len(i.UIDMaps) == 0 && len(i.GIDMaps) == 0 } -func createIDMap(subidRanges ranges) []IDMap { - idMap := []IDMap{} - - containerID := 0 - for _, idrange := range subidRanges { - idMap = append(idMap, IDMap{ - ContainerID: containerID, - HostID: idrange.Start, - Size: idrange.Length, - }) - containerID = containerID + idrange.Length - } - return idMap -} - -func parseSubuid(username string) (ranges, error) { - return parseSubidFile(subuidFileName, username) -} - -func parseSubgid(username string) (ranges, error) { - return parseSubidFile(subgidFileName, username) -} - -// parseSubidFile will read the appropriate file (/etc/subuid or /etc/subgid) -// and return all found ranges for a specified username. If the special value -// "ALL" is supplied for username, then all ranges in the file will be returned -func parseSubidFile(path, username string) (ranges, error) { - var rangeList ranges - - subidFile, err := os.Open(path) - if err != nil { - return rangeList, err - } - defer subidFile.Close() - - s := bufio.NewScanner(subidFile) - for s.Scan() { - text := strings.TrimSpace(s.Text()) - if text == "" || strings.HasPrefix(text, "#") { - continue - } - parts := strings.Split(text, ":") - if len(parts) != 3 { - return rangeList, fmt.Errorf("Cannot parse subuid/gid information: Format not correct for %s file", path) - } - if parts[0] == username || username == "ALL" { - startid, err := strconv.Atoi(parts[1]) - if err != nil { - return rangeList, fmt.Errorf("String to int conversion failed during subuid/gid parsing of %s: %v", path, err) - } - length, err := strconv.Atoi(parts[2]) - if err != nil { - return rangeList, fmt.Errorf("String to int conversion failed during subuid/gid parsing of %s: %v", path, err) - } - rangeList = append(rangeList, subIDRange{startid, length}) - } - } - - return rangeList, s.Err() -} - // CurrentIdentity returns the identity of the current process func CurrentIdentity() Identity { return Identity{UID: os.Getuid(), GID: os.Getegid()} diff --git a/vendor/github.com/docker/docker/pkg/idtools/idtools_unix.go b/vendor/github.com/docker/docker/pkg/idtools/idtools_unix.go index cd621bdc..1f11fe47 100644 --- a/vendor/github.com/docker/docker/pkg/idtools/idtools_unix.go +++ b/vendor/github.com/docker/docker/pkg/idtools/idtools_unix.go @@ -1,13 +1,10 @@ //go:build !windows -package idtools // import "github.com/docker/docker/pkg/idtools" +package idtools import ( - "bytes" "fmt" - "io" "os" - "os/exec" "path/filepath" "strconv" "syscall" @@ -72,127 +69,25 @@ func mkdirAs(path string, mode os.FileMode, owner Identity, mkAll, chownExisting return nil } -// LookupUser uses traditional local system files lookup (from libcontainer/user) on a username, -// followed by a call to `getent` for supporting host configured non-files passwd and group dbs +// LookupUser uses traditional local system files lookup (from libcontainer/user) on a username +// +// Deprecated: use [user.LookupUser] instead func LookupUser(name string) (user.User, error) { - // first try a local system files lookup using existing capabilities - usr, err := user.LookupUser(name) - if err == nil { - return usr, nil - } - // local files lookup failed; attempt to call `getent` to query configured passwd dbs - usr, err = getentUser(name) - if err != nil { - return user.User{}, err - } - return usr, nil + return user.LookupUser(name) } -// LookupUID uses traditional local system files lookup (from libcontainer/user) on a uid, -// followed by a call to `getent` for supporting host configured non-files passwd and group dbs +// LookupUID uses traditional local system files lookup (from libcontainer/user) on a uid +// +// Deprecated: use [user.LookupUid] instead func LookupUID(uid int) (user.User, error) { - // first try a local system files lookup using existing capabilities - usr, err := user.LookupUid(uid) - if err == nil { - return usr, nil - } - // local files lookup failed; attempt to call `getent` to query configured passwd dbs - return getentUser(strconv.Itoa(uid)) -} - -func getentUser(name string) (user.User, error) { - reader, err := callGetent("passwd", name) - if err != nil { - return user.User{}, err - } - users, err := user.ParsePasswd(reader) - if err != nil { - return user.User{}, err - } - if len(users) == 0 { - return user.User{}, fmt.Errorf("getent failed to find passwd entry for %q", name) - } - return users[0], nil + return user.LookupUid(uid) } // LookupGroup uses traditional local system files lookup (from libcontainer/user) on a group name, -// followed by a call to `getent` for supporting host configured non-files passwd and group dbs +// +// Deprecated: use [user.LookupGroup] instead func LookupGroup(name string) (user.Group, error) { - // first try a local system files lookup using existing capabilities - group, err := user.LookupGroup(name) - if err == nil { - return group, nil - } - // local files lookup failed; attempt to call `getent` to query configured group dbs - return getentGroup(name) -} - -// LookupGID uses traditional local system files lookup (from libcontainer/user) on a group ID, -// followed by a call to `getent` for supporting host configured non-files passwd and group dbs -func LookupGID(gid int) (user.Group, error) { - // first try a local system files lookup using existing capabilities - group, err := user.LookupGid(gid) - if err == nil { - return group, nil - } - // local files lookup failed; attempt to call `getent` to query configured group dbs - return getentGroup(strconv.Itoa(gid)) -} - -func getentGroup(name string) (user.Group, error) { - reader, err := callGetent("group", name) - if err != nil { - return user.Group{}, err - } - groups, err := user.ParseGroup(reader) - if err != nil { - return user.Group{}, err - } - if len(groups) == 0 { - return user.Group{}, fmt.Errorf("getent failed to find groups entry for %q", name) - } - return groups[0], nil -} - -func callGetent(database, key string) (io.Reader, error) { - getentCmd, err := resolveBinary("getent") - // if no `getent` command within the execution environment, can't do anything else - if err != nil { - return nil, fmt.Errorf("unable to find getent command: %w", err) - } - command := exec.Command(getentCmd, database, key) - // we run getent within container filesystem, but without /dev so /dev/null is not available for exec to mock stdin - command.Stdin = io.NopCloser(bytes.NewReader(nil)) - out, err := command.CombinedOutput() - if err != nil { - exitCode, errC := getExitCode(err) - if errC != nil { - return nil, err - } - switch exitCode { - case 1: - return nil, fmt.Errorf("getent reported invalid parameters/database unknown") - case 2: - return nil, fmt.Errorf("getent unable to find entry %q in %s database", key, database) - case 3: - return nil, fmt.Errorf("getent database doesn't support enumeration") - default: - return nil, err - } - } - return bytes.NewReader(out), nil -} - -// getExitCode returns the ExitStatus of the specified error if its type is -// exec.ExitError, returns 0 and an error otherwise. -func getExitCode(err error) (int, error) { - exitCode := 0 - if exiterr, ok := err.(*exec.ExitError); ok { - if procExit, ok := exiterr.Sys().(syscall.WaitStatus); ok { - return procExit.ExitStatus(), nil - } - } - return exitCode, fmt.Errorf("failed to get exit code") + return user.LookupGroup(name) } // setPermissions performs a chown/chmod only if the uid/gid don't match what's requested @@ -223,16 +118,17 @@ func setPermissions(p string, mode os.FileMode, owner Identity, stat os.FileInfo // using the data from /etc/sub{uid,gid} ranges, creates the // proper uid and gid remapping ranges for that user/group pair func LoadIdentityMapping(name string) (IdentityMapping, error) { - usr, err := LookupUser(name) + // TODO: Consider adding support for calling out to "getent" + usr, err := user.LookupUser(name) if err != nil { return IdentityMapping{}, fmt.Errorf("could not get user for username %s: %v", name, err) } - subuidRanges, err := lookupSubUIDRanges(usr) + subuidRanges, err := lookupSubRangesFile("/etc/subuid", usr) if err != nil { return IdentityMapping{}, err } - subgidRanges, err := lookupSubGIDRanges(usr) + subgidRanges, err := lookupSubRangesFile("/etc/subgid", usr) if err != nil { return IdentityMapping{}, err } @@ -243,36 +139,28 @@ func LoadIdentityMapping(name string) (IdentityMapping, error) { }, nil } -func lookupSubUIDRanges(usr user.User) ([]IDMap, error) { - rangeList, err := parseSubuid(strconv.Itoa(usr.Uid)) +func lookupSubRangesFile(path string, usr user.User) ([]IDMap, error) { + uidstr := strconv.Itoa(usr.Uid) + rangeList, err := user.ParseSubIDFileFilter(path, func(sid user.SubID) bool { + return sid.Name == usr.Name || sid.Name == uidstr + }) if err != nil { return nil, err } - if len(rangeList) == 0 { - rangeList, err = parseSubuid(usr.Name) - if err != nil { - return nil, err - } - } if len(rangeList) == 0 { return nil, fmt.Errorf("no subuid ranges found for user %q", usr.Name) } - return createIDMap(rangeList), nil -} -func lookupSubGIDRanges(usr user.User) ([]IDMap, error) { - rangeList, err := parseSubgid(strconv.Itoa(usr.Uid)) - if err != nil { - return nil, err + idMap := []IDMap{} + + containerID := 0 + for _, idrange := range rangeList { + idMap = append(idMap, IDMap{ + ContainerID: containerID, + HostID: int(idrange.SubID), + Size: int(idrange.Count), + }) + containerID = containerID + int(idrange.Count) } - if len(rangeList) == 0 { - rangeList, err = parseSubgid(usr.Name) - if err != nil { - return nil, err - } - } - if len(rangeList) == 0 { - return nil, fmt.Errorf("no subgid ranges found for user %q", usr.Name) - } - return createIDMap(rangeList), nil + return idMap, nil } diff --git a/vendor/github.com/docker/docker/pkg/idtools/idtools_windows.go b/vendor/github.com/docker/docker/pkg/idtools/idtools_windows.go index 32953f45..a12b1404 100644 --- a/vendor/github.com/docker/docker/pkg/idtools/idtools_windows.go +++ b/vendor/github.com/docker/docker/pkg/idtools/idtools_windows.go @@ -1,24 +1,24 @@ -package idtools // import "github.com/docker/docker/pkg/idtools" +package idtools import ( "os" - - "github.com/docker/docker/pkg/system" ) const ( SeTakeOwnershipPrivilege = "SeTakeOwnershipPrivilege" ) +// TODO(thaJeztah): these magic consts need a source of reference, and should be defined in a canonical location const ( ContainerAdministratorSidString = "S-1-5-93-2-1" - ContainerUserSidString = "S-1-5-93-2-2" + + ContainerUserSidString = "S-1-5-93-2-2" ) -// This is currently a wrapper around MkdirAll, however, since currently +// This is currently a wrapper around [os.MkdirAll] since currently // permissions aren't set through this path, the identity isn't utilized. // Ownership is handled elsewhere, but in the future could be support here // too. func mkdirAs(path string, _ os.FileMode, _ Identity, _, _ bool) error { - return system.MkdirAll(path, 0) + return os.MkdirAll(path, 0) } diff --git a/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_linux.go b/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_linux.go deleted file mode 100644 index f0c075e2..00000000 --- a/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_linux.go +++ /dev/null @@ -1,166 +0,0 @@ -package idtools // import "github.com/docker/docker/pkg/idtools" - -import ( - "fmt" - "os/exec" - "regexp" - "sort" - "strconv" - "strings" - "sync" -) - -// add a user and/or group to Linux /etc/passwd, /etc/group using standard -// Linux distribution commands: -// adduser --system --shell /bin/false --disabled-login --disabled-password --no-create-home --group -// useradd -r -s /bin/false - -var ( - once sync.Once - userCommand string - idOutRegexp = regexp.MustCompile(`uid=([0-9]+).*gid=([0-9]+)`) -) - -const ( - // default length for a UID/GID subordinate range - defaultRangeLen = 65536 - defaultRangeStart = 100000 -) - -// AddNamespaceRangesUser takes a username and uses the standard system -// utility to create a system user/group pair used to hold the -// /etc/sub{uid,gid} ranges which will be used for user namespace -// mapping ranges in containers. -func AddNamespaceRangesUser(name string) (int, int, error) { - if err := addUser(name); err != nil { - return -1, -1, fmt.Errorf("error adding user %q: %v", name, err) - } - - // Query the system for the created uid and gid pair - out, err := exec.Command("id", name).CombinedOutput() - if err != nil { - return -1, -1, fmt.Errorf("error trying to find uid/gid for new user %q: %v", name, err) - } - matches := idOutRegexp.FindStringSubmatch(strings.TrimSpace(string(out))) - if len(matches) != 3 { - return -1, -1, fmt.Errorf("can't find uid, gid from `id` output: %q", string(out)) - } - uid, err := strconv.Atoi(matches[1]) - if err != nil { - return -1, -1, fmt.Errorf("can't convert found uid (%s) to int: %v", matches[1], err) - } - gid, err := strconv.Atoi(matches[2]) - if err != nil { - return -1, -1, fmt.Errorf("Can't convert found gid (%s) to int: %v", matches[2], err) - } - - // Now we need to create the subuid/subgid ranges for our new user/group (system users - // do not get auto-created ranges in subuid/subgid) - - if err := createSubordinateRanges(name); err != nil { - return -1, -1, fmt.Errorf("couldn't create subordinate ID ranges: %v", err) - } - return uid, gid, nil -} - -func addUser(name string) error { - once.Do(func() { - // set up which commands are used for adding users/groups dependent on distro - if _, err := resolveBinary("adduser"); err == nil { - userCommand = "adduser" - } else if _, err := resolveBinary("useradd"); err == nil { - userCommand = "useradd" - } - }) - var args []string - switch userCommand { - case "adduser": - args = []string{"--system", "--shell", "/bin/false", "--no-create-home", "--disabled-login", "--disabled-password", "--group", name} - case "useradd": - args = []string{"-r", "-s", "/bin/false", name} - default: - return fmt.Errorf("cannot add user; no useradd/adduser binary found") - } - - if out, err := exec.Command(userCommand, args...).CombinedOutput(); err != nil { - return fmt.Errorf("failed to add user with error: %v; output: %q", err, string(out)) - } - return nil -} - -func createSubordinateRanges(name string) error { - // first, we should verify that ranges weren't automatically created - // by the distro tooling - ranges, err := parseSubuid(name) - if err != nil { - return fmt.Errorf("error while looking for subuid ranges for user %q: %v", name, err) - } - if len(ranges) == 0 { - // no UID ranges; let's create one - startID, err := findNextUIDRange() - if err != nil { - return fmt.Errorf("can't find available subuid range: %v", err) - } - idRange := fmt.Sprintf("%d-%d", startID, startID+defaultRangeLen-1) - out, err := exec.Command("usermod", "-v", idRange, name).CombinedOutput() - if err != nil { - return fmt.Errorf("unable to add subuid range to user: %q; output: %s, err: %v", name, out, err) - } - } - - ranges, err = parseSubgid(name) - if err != nil { - return fmt.Errorf("error while looking for subgid ranges for user %q: %v", name, err) - } - if len(ranges) == 0 { - // no GID ranges; let's create one - startID, err := findNextGIDRange() - if err != nil { - return fmt.Errorf("can't find available subgid range: %v", err) - } - idRange := fmt.Sprintf("%d-%d", startID, startID+defaultRangeLen-1) - out, err := exec.Command("usermod", "-w", idRange, name).CombinedOutput() - if err != nil { - return fmt.Errorf("unable to add subgid range to user: %q; output: %s, err: %v", name, out, err) - } - } - return nil -} - -func findNextUIDRange() (int, error) { - ranges, err := parseSubuid("ALL") - if err != nil { - return -1, fmt.Errorf("couldn't parse all ranges in /etc/subuid file: %v", err) - } - sort.Sort(ranges) - return findNextRangeStart(ranges) -} - -func findNextGIDRange() (int, error) { - ranges, err := parseSubgid("ALL") - if err != nil { - return -1, fmt.Errorf("couldn't parse all ranges in /etc/subgid file: %v", err) - } - sort.Sort(ranges) - return findNextRangeStart(ranges) -} - -func findNextRangeStart(rangeList ranges) (int, error) { - startID := defaultRangeStart - for _, arange := range rangeList { - if wouldOverlap(arange, startID) { - startID = arange.Start + arange.Length - } - } - return startID, nil -} - -func wouldOverlap(arange subIDRange, ID int) bool { - low := ID - high := ID + defaultRangeLen - if (low >= arange.Start && low <= arange.Start+arange.Length) || - (high <= arange.Start+arange.Length && high >= arange.Start) { - return true - } - return false -} diff --git a/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_unsupported.go b/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_unsupported.go deleted file mode 100644 index 6a9311c4..00000000 --- a/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_unsupported.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build !linux - -package idtools // import "github.com/docker/docker/pkg/idtools" - -import "fmt" - -// AddNamespaceRangesUser takes a name and finds an unused uid, gid pair -// and calls the appropriate helper function to add the group and then -// the user to the group in /etc/group and /etc/passwd respectively. -func AddNamespaceRangesUser(name string) (int, int, error) { - return -1, -1, fmt.Errorf("No support for adding users or groups on this OS") -} diff --git a/vendor/github.com/docker/docker/pkg/idtools/utils_unix.go b/vendor/github.com/docker/docker/pkg/idtools/utils_unix.go deleted file mode 100644 index 517a2f52..00000000 --- a/vendor/github.com/docker/docker/pkg/idtools/utils_unix.go +++ /dev/null @@ -1,26 +0,0 @@ -//go:build !windows - -package idtools // import "github.com/docker/docker/pkg/idtools" - -import ( - "fmt" - "os/exec" - "path/filepath" -) - -func resolveBinary(binname string) (string, error) { - binaryPath, err := exec.LookPath(binname) - if err != nil { - return "", err - } - resolvedPath, err := filepath.EvalSymlinks(binaryPath) - if err != nil { - return "", err - } - // only return no error if the final resolved binary basename - // matches what was searched for - if filepath.Base(resolvedPath) == binname { - return resolvedPath, nil - } - return "", fmt.Errorf("Binary %q does not resolve to a binary of that name in $PATH (%q)", binname, resolvedPath) -} diff --git a/vendor/github.com/docker/docker/pkg/ioutils/buffer.go b/vendor/github.com/docker/docker/pkg/ioutils/buffer.go deleted file mode 100644 index 466f7929..00000000 --- a/vendor/github.com/docker/docker/pkg/ioutils/buffer.go +++ /dev/null @@ -1,51 +0,0 @@ -package ioutils // import "github.com/docker/docker/pkg/ioutils" - -import ( - "errors" - "io" -) - -var errBufferFull = errors.New("buffer is full") - -type fixedBuffer struct { - buf []byte - pos int - lastRead int -} - -func (b *fixedBuffer) Write(p []byte) (int, error) { - n := copy(b.buf[b.pos:cap(b.buf)], p) - b.pos += n - - if n < len(p) { - if b.pos == cap(b.buf) { - return n, errBufferFull - } - return n, io.ErrShortWrite - } - return n, nil -} - -func (b *fixedBuffer) Read(p []byte) (int, error) { - n := copy(p, b.buf[b.lastRead:b.pos]) - b.lastRead += n - return n, nil -} - -func (b *fixedBuffer) Len() int { - return b.pos - b.lastRead -} - -func (b *fixedBuffer) Cap() int { - return cap(b.buf) -} - -func (b *fixedBuffer) Reset() { - b.pos = 0 - b.lastRead = 0 - b.buf = b.buf[:0] -} - -func (b *fixedBuffer) String() string { - return string(b.buf[b.lastRead:b.pos]) -} diff --git a/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go b/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go deleted file mode 100644 index c1cfa62f..00000000 --- a/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go +++ /dev/null @@ -1,187 +0,0 @@ -package ioutils // import "github.com/docker/docker/pkg/ioutils" - -import ( - "errors" - "io" - "sync" -) - -// maxCap is the highest capacity to use in byte slices that buffer data. -const maxCap = 1e6 - -// minCap is the lowest capacity to use in byte slices that buffer data -const minCap = 64 - -// blockThreshold is the minimum number of bytes in the buffer which will cause -// a write to BytesPipe to block when allocating a new slice. -const blockThreshold = 1e6 - -var ( - // ErrClosed is returned when Write is called on a closed BytesPipe. - ErrClosed = errors.New("write to closed BytesPipe") - - bufPools = make(map[int]*sync.Pool) - bufPoolsLock sync.Mutex -) - -// BytesPipe is io.ReadWriteCloser which works similarly to pipe(queue). -// All written data may be read at most once. Also, BytesPipe allocates -// and releases new byte slices to adjust to current needs, so the buffer -// won't be overgrown after peak loads. -type BytesPipe struct { - mu sync.Mutex - wait *sync.Cond - buf []*fixedBuffer - bufLen int - closeErr error // error to return from next Read. set to nil if not closed. - readBlock bool // check read BytesPipe is Wait() or not -} - -// NewBytesPipe creates new BytesPipe, initialized by specified slice. -// If buf is nil, then it will be initialized with slice which cap is 64. -// buf will be adjusted in a way that len(buf) == 0, cap(buf) == cap(buf). -func NewBytesPipe() *BytesPipe { - bp := &BytesPipe{} - bp.buf = append(bp.buf, getBuffer(minCap)) - bp.wait = sync.NewCond(&bp.mu) - return bp -} - -// Write writes p to BytesPipe. -// It can allocate new []byte slices in a process of writing. -func (bp *BytesPipe) Write(p []byte) (int, error) { - bp.mu.Lock() - defer bp.mu.Unlock() - - written := 0 -loop0: - for { - if bp.closeErr != nil { - return written, ErrClosed - } - - if len(bp.buf) == 0 { - bp.buf = append(bp.buf, getBuffer(64)) - } - // get the last buffer - b := bp.buf[len(bp.buf)-1] - - n, err := b.Write(p) - written += n - bp.bufLen += n - - // errBufferFull is an error we expect to get if the buffer is full - if err != nil && err != errBufferFull { - bp.wait.Broadcast() - return written, err - } - - // if there was enough room to write all then break - if len(p) == n { - break - } - - // more data: write to the next slice - p = p[n:] - - // make sure the buffer doesn't grow too big from this write - for bp.bufLen >= blockThreshold { - if bp.readBlock { - bp.wait.Broadcast() - } - bp.wait.Wait() - if bp.closeErr != nil { - continue loop0 - } - } - - // add new byte slice to the buffers slice and continue writing - nextCap := b.Cap() * 2 - if nextCap > maxCap { - nextCap = maxCap - } - bp.buf = append(bp.buf, getBuffer(nextCap)) - } - bp.wait.Broadcast() - return written, nil -} - -// CloseWithError causes further reads from a BytesPipe to return immediately. -func (bp *BytesPipe) CloseWithError(err error) error { - bp.mu.Lock() - if err != nil { - bp.closeErr = err - } else { - bp.closeErr = io.EOF - } - bp.wait.Broadcast() - bp.mu.Unlock() - return nil -} - -// Close causes further reads from a BytesPipe to return immediately. -func (bp *BytesPipe) Close() error { - return bp.CloseWithError(nil) -} - -// Read reads bytes from BytesPipe. -// Data could be read only once. -func (bp *BytesPipe) Read(p []byte) (n int, err error) { - bp.mu.Lock() - defer bp.mu.Unlock() - if bp.bufLen == 0 { - if bp.closeErr != nil { - return 0, bp.closeErr - } - bp.readBlock = true - bp.wait.Wait() - bp.readBlock = false - if bp.bufLen == 0 && bp.closeErr != nil { - return 0, bp.closeErr - } - } - - for bp.bufLen > 0 { - b := bp.buf[0] - read, _ := b.Read(p) // ignore error since fixedBuffer doesn't really return an error - n += read - bp.bufLen -= read - - if b.Len() == 0 { - // it's empty so return it to the pool and move to the next one - returnBuffer(b) - bp.buf[0] = nil - bp.buf = bp.buf[1:] - } - - if len(p) == read { - break - } - - p = p[read:] - } - - bp.wait.Broadcast() - return -} - -func returnBuffer(b *fixedBuffer) { - b.Reset() - bufPoolsLock.Lock() - pool := bufPools[b.Cap()] - bufPoolsLock.Unlock() - if pool != nil { - pool.Put(b) - } -} - -func getBuffer(size int) *fixedBuffer { - bufPoolsLock.Lock() - pool, ok := bufPools[size] - if !ok { - pool = &sync.Pool{New: func() interface{} { return &fixedBuffer{buf: make([]byte, 0, size)} }} - bufPools[size] = pool - } - bufPoolsLock.Unlock() - return pool.Get().(*fixedBuffer) -} diff --git a/vendor/github.com/docker/docker/pkg/ioutils/fswriters_deprecated.go b/vendor/github.com/docker/docker/pkg/ioutils/fswriters_deprecated.go new file mode 100644 index 00000000..c3cee16d --- /dev/null +++ b/vendor/github.com/docker/docker/pkg/ioutils/fswriters_deprecated.go @@ -0,0 +1,44 @@ +package ioutils + +import ( + "io" + "os" + + "github.com/docker/docker/pkg/atomicwriter" +) + +// NewAtomicFileWriter returns WriteCloser so that writing to it writes to a +// temporary file and closing it atomically changes the temporary file to +// destination path. Writing and closing concurrently is not allowed. +// NOTE: umask is not considered for the file's permissions. +// +// Deprecated: use [atomicwriter.New] instead. +func NewAtomicFileWriter(filename string, perm os.FileMode) (io.WriteCloser, error) { + return atomicwriter.New(filename, perm) +} + +// AtomicWriteFile atomically writes data to a file named by filename and with the specified permission bits. +// NOTE: umask is not considered for the file's permissions. +// +// Deprecated: use [atomicwriter.WriteFile] instead. +func AtomicWriteFile(filename string, data []byte, perm os.FileMode) error { + return atomicwriter.WriteFile(filename, data, perm) +} + +// AtomicWriteSet is used to atomically write a set +// of files and ensure they are visible at the same time. +// Must be committed to a new directory. +// +// Deprecated: use [atomicwriter.WriteSet] instead. +type AtomicWriteSet = atomicwriter.WriteSet + +// NewAtomicWriteSet creates a new atomic write set to +// atomically create a set of files. The given directory +// is used as the base directory for storing files before +// commit. If no temporary directory is given the system +// default is used. +// +// Deprecated: use [atomicwriter.NewWriteSet] instead. +func NewAtomicWriteSet(tmpDir string) (*atomicwriter.WriteSet, error) { + return atomicwriter.NewWriteSet(tmpDir) +} diff --git a/vendor/github.com/docker/docker/pkg/ioutils/readers.go b/vendor/github.com/docker/docker/pkg/ioutils/readers.go index e03d3fee..9ddba246 100644 --- a/vendor/github.com/docker/docker/pkg/ioutils/readers.go +++ b/vendor/github.com/docker/docker/pkg/ioutils/readers.go @@ -6,25 +6,20 @@ import ( "runtime/debug" "sync/atomic" - // make sure crypto.SHA256, crypto.sha512 and crypto.SHA384 are registered - // TODO remove once https://github.com/opencontainers/go-digest/pull/64 is merged. - _ "crypto/sha256" - _ "crypto/sha512" - "github.com/containerd/log" ) -// ReadCloserWrapper wraps an io.Reader, and implements an io.ReadCloser +// readCloserWrapper wraps an io.Reader, and implements an io.ReadCloser // It calls the given callback function when closed. It should be constructed // with NewReadCloserWrapper -type ReadCloserWrapper struct { +type readCloserWrapper struct { io.Reader closer func() error closed atomic.Bool } // Close calls back the passed closer function -func (r *ReadCloserWrapper) Close() error { +func (r *readCloserWrapper) Close() error { if !r.closed.CompareAndSwap(false, true) { subsequentCloseWarn("ReadCloserWrapper") return nil @@ -32,64 +27,15 @@ func (r *ReadCloserWrapper) Close() error { return r.closer() } -// NewReadCloserWrapper returns a new io.ReadCloser. +// NewReadCloserWrapper wraps an io.Reader, and implements an io.ReadCloser. +// It calls the given callback function when closed. func NewReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser { - return &ReadCloserWrapper{ + return &readCloserWrapper{ Reader: r, closer: closer, } } -type readerErrWrapper struct { - reader io.Reader - closer func() -} - -func (r *readerErrWrapper) Read(p []byte) (int, error) { - n, err := r.reader.Read(p) - if err != nil { - r.closer() - } - return n, err -} - -// NewReaderErrWrapper returns a new io.Reader. -func NewReaderErrWrapper(r io.Reader, closer func()) io.Reader { - return &readerErrWrapper{ - reader: r, - closer: closer, - } -} - -// OnEOFReader wraps an io.ReadCloser and a function -// the function will run at the end of file or close the file. -type OnEOFReader struct { - Rc io.ReadCloser - Fn func() -} - -func (r *OnEOFReader) Read(p []byte) (n int, err error) { - n, err = r.Rc.Read(p) - if err == io.EOF { - r.runFunc() - } - return -} - -// Close closes the file and run the function. -func (r *OnEOFReader) Close() error { - err := r.Rc.Close() - r.runFunc() - return err -} - -func (r *OnEOFReader) runFunc() { - if fn := r.Fn; fn != nil { - fn() - r.Fn = nil - } -} - // cancelReadCloser wraps an io.ReadCloser with a context for cancelling read // operations. type cancelReadCloser struct { diff --git a/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go b/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go index 91b8d182..010db59f 100644 --- a/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go +++ b/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go @@ -21,12 +21,10 @@ type flusher interface { Flush() } -var errWriteFlusherClosed = io.EOF - func (wf *WriteFlusher) Write(b []byte) (n int, err error) { select { case <-wf.closed: - return 0, errWriteFlusherClosed + return 0, io.EOF default: } @@ -73,20 +71,26 @@ func (wf *WriteFlusher) Close() error { select { case <-wf.closed: - return errWriteFlusherClosed + return io.EOF default: close(wf.closed) } return nil } +// nopFlusher represents a type which flush operation is nop. +type nopFlusher struct{} + +// Flush is a nop operation. +func (f *nopFlusher) Flush() {} + // NewWriteFlusher returns a new WriteFlusher. func NewWriteFlusher(w io.Writer) *WriteFlusher { var fl flusher if f, ok := w.(flusher); ok { fl = f } else { - fl = &NopFlusher{} + fl = &nopFlusher{} } return &WriteFlusher{w: w, flusher: fl, closed: make(chan struct{}), flushed: make(chan struct{})} } diff --git a/vendor/github.com/docker/docker/pkg/ioutils/writers.go b/vendor/github.com/docker/docker/pkg/ioutils/writers.go index 1f50602f..9c2d5d3b 100644 --- a/vendor/github.com/docker/docker/pkg/ioutils/writers.go +++ b/vendor/github.com/docker/docker/pkg/ioutils/writers.go @@ -5,30 +5,6 @@ import ( "sync/atomic" ) -// NopWriter represents a type which write operation is nop. -type NopWriter struct{} - -func (*NopWriter) Write(buf []byte) (int, error) { - return len(buf), nil -} - -type nopWriteCloser struct { - io.Writer -} - -func (w *nopWriteCloser) Close() error { return nil } - -// NopWriteCloser returns a nopWriteCloser. -func NopWriteCloser(w io.Writer) io.WriteCloser { - return &nopWriteCloser{w} -} - -// NopFlusher represents a type which flush operation is nop. -type NopFlusher struct{} - -// Flush is a nop operation. -func (f *NopFlusher) Flush() {} - type writeCloserWrapper struct { io.Writer closer func() error @@ -50,25 +26,3 @@ func NewWriteCloserWrapper(r io.Writer, closer func() error) io.WriteCloser { closer: closer, } } - -// WriteCounter wraps a concrete io.Writer and hold a count of the number -// of bytes written to the writer during a "session". -// This can be convenient when write return is masked -// (e.g., json.Encoder.Encode()) -type WriteCounter struct { - Count int64 - Writer io.Writer -} - -// NewWriteCounter returns a new WriteCounter. -func NewWriteCounter(w io.Writer) *WriteCounter { - return &WriteCounter{ - Writer: w, - } -} - -func (wc *WriteCounter) Write(p []byte) (count int, err error) { - count, err = wc.Writer.Write(p) - wc.Count += int64(count) - return -} diff --git a/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go b/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go index 8d2c8857..1a05de4d 100644 --- a/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go +++ b/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go @@ -7,7 +7,7 @@ import ( "strings" "time" - units "github.com/docker/go-units" + "github.com/docker/go-units" "github.com/moby/term" "github.com/morikuni/aec" ) @@ -53,10 +53,9 @@ type JSONProgress struct { func (p *JSONProgress) String() string { var ( - width = p.width() - pbBox string - numbersBox string - timeLeftBox string + width = p.width() + pbBox string + numbersBox string ) if p.Current <= 0 && p.Total <= 0 { return "" @@ -104,14 +103,14 @@ func (p *JSONProgress) String() string { } } - if p.Current > 0 && p.Start > 0 && percentage < 50 { - fromStart := p.now().Sub(time.Unix(p.Start, 0)) - perEntry := fromStart / time.Duration(p.Current) - left := time.Duration(p.Total-p.Current) * perEntry - left = (left / time.Second) * time.Second - - if width > 50 { - timeLeftBox = " " + left.String() + // Show approximation of remaining time if there's enough width. + var timeLeftBox string + if width > 50 { + if p.Current > 0 && p.Start > 0 && percentage < 50 { + fromStart := p.now().Sub(time.Unix(p.Start, 0)) + perEntry := fromStart / time.Duration(p.Current) + left := time.Duration(p.Total-p.Current) * perEntry + timeLeftBox = " " + left.Round(time.Second).String() } } return pbBox + numbersBox + timeLeftBox @@ -143,16 +142,24 @@ func (p *JSONProgress) width() int { // the created time, where it from, status, ID of the // message. It's used for docker events. type JSONMessage struct { - Stream string `json:"stream,omitempty"` - Status string `json:"status,omitempty"` - Progress *JSONProgress `json:"progressDetail,omitempty"` - ProgressMessage string `json:"progress,omitempty"` // deprecated - ID string `json:"id,omitempty"` - From string `json:"from,omitempty"` - Time int64 `json:"time,omitempty"` - TimeNano int64 `json:"timeNano,omitempty"` - Error *JSONError `json:"errorDetail,omitempty"` - ErrorMessage string `json:"error,omitempty"` // deprecated + Stream string `json:"stream,omitempty"` + Status string `json:"status,omitempty"` + Progress *JSONProgress `json:"progressDetail,omitempty"` + + // ProgressMessage is a pre-formatted presentation of [Progress]. + // + // Deprecated: this field is deprecated since docker v0.7.1 / API v1.8. Use the information in [Progress] instead. This field will be omitted in a future release. + ProgressMessage string `json:"progress,omitempty"` + ID string `json:"id,omitempty"` + From string `json:"from,omitempty"` + Time int64 `json:"time,omitempty"` + TimeNano int64 `json:"timeNano,omitempty"` + Error *JSONError `json:"errorDetail,omitempty"` + + // ErrorMessage contains errors encountered during the operation. + // + // Deprecated: this field is deprecated since docker v0.6.0 / API v1.4. Use [Error.Message] instead. This field will be omitted in a future release. + ErrorMessage string `json:"error,omitempty"` // deprecated // Aux contains out-of-band data, such as digests for push signing and image id after building. Aux *json.RawMessage `json:"aux,omitempty"` } diff --git a/vendor/github.com/docker/docker/pkg/pools/pools.go b/vendor/github.com/docker/docker/pkg/pools/pools.go deleted file mode 100644 index 3ea3012b..00000000 --- a/vendor/github.com/docker/docker/pkg/pools/pools.go +++ /dev/null @@ -1,137 +0,0 @@ -// Package pools provides a collection of pools which provide various -// data types with buffers. These can be used to lower the number of -// memory allocations and reuse buffers. -// -// New pools should be added to this package to allow them to be -// shared across packages. -// -// Utility functions which operate on pools should be added to this -// package to allow them to be reused. -package pools // import "github.com/docker/docker/pkg/pools" - -import ( - "bufio" - "io" - "sync" - - "github.com/docker/docker/pkg/ioutils" -) - -const buffer32K = 32 * 1024 - -var ( - // BufioReader32KPool is a pool which returns bufio.Reader with a 32K buffer. - BufioReader32KPool = newBufioReaderPoolWithSize(buffer32K) - // BufioWriter32KPool is a pool which returns bufio.Writer with a 32K buffer. - BufioWriter32KPool = newBufioWriterPoolWithSize(buffer32K) - buffer32KPool = newBufferPoolWithSize(buffer32K) -) - -// BufioReaderPool is a bufio reader that uses sync.Pool. -type BufioReaderPool struct { - pool sync.Pool -} - -// newBufioReaderPoolWithSize is unexported because new pools should be -// added here to be shared where required. -func newBufioReaderPoolWithSize(size int) *BufioReaderPool { - return &BufioReaderPool{ - pool: sync.Pool{ - New: func() interface{} { return bufio.NewReaderSize(nil, size) }, - }, - } -} - -// Get returns a bufio.Reader which reads from r. The buffer size is that of the pool. -func (bufPool *BufioReaderPool) Get(r io.Reader) *bufio.Reader { - buf := bufPool.pool.Get().(*bufio.Reader) - buf.Reset(r) - return buf -} - -// Put puts the bufio.Reader back into the pool. -func (bufPool *BufioReaderPool) Put(b *bufio.Reader) { - b.Reset(nil) - bufPool.pool.Put(b) -} - -type bufferPool struct { - pool sync.Pool -} - -func newBufferPoolWithSize(size int) *bufferPool { - return &bufferPool{ - pool: sync.Pool{ - New: func() interface{} { s := make([]byte, size); return &s }, - }, - } -} - -func (bp *bufferPool) Get() *[]byte { - return bp.pool.Get().(*[]byte) -} - -func (bp *bufferPool) Put(b *[]byte) { - bp.pool.Put(b) -} - -// Copy is a convenience wrapper which uses a buffer to avoid allocation in io.Copy. -func Copy(dst io.Writer, src io.Reader) (written int64, err error) { - buf := buffer32KPool.Get() - written, err = io.CopyBuffer(dst, src, *buf) - buffer32KPool.Put(buf) - return -} - -// NewReadCloserWrapper returns a wrapper which puts the bufio.Reader back -// into the pool and closes the reader if it's an io.ReadCloser. -func (bufPool *BufioReaderPool) NewReadCloserWrapper(buf *bufio.Reader, r io.Reader) io.ReadCloser { - return ioutils.NewReadCloserWrapper(r, func() error { - if readCloser, ok := r.(io.ReadCloser); ok { - readCloser.Close() - } - bufPool.Put(buf) - return nil - }) -} - -// BufioWriterPool is a bufio writer that uses sync.Pool. -type BufioWriterPool struct { - pool sync.Pool -} - -// newBufioWriterPoolWithSize is unexported because new pools should be -// added here to be shared where required. -func newBufioWriterPoolWithSize(size int) *BufioWriterPool { - return &BufioWriterPool{ - pool: sync.Pool{ - New: func() interface{} { return bufio.NewWriterSize(nil, size) }, - }, - } -} - -// Get returns a bufio.Writer which writes to w. The buffer size is that of the pool. -func (bufPool *BufioWriterPool) Get(w io.Writer) *bufio.Writer { - buf := bufPool.pool.Get().(*bufio.Writer) - buf.Reset(w) - return buf -} - -// Put puts the bufio.Writer back into the pool. -func (bufPool *BufioWriterPool) Put(b *bufio.Writer) { - b.Reset(nil) - bufPool.pool.Put(b) -} - -// NewWriteCloserWrapper returns a wrapper which puts the bufio.Writer back -// into the pool and closes the writer if it's an io.WriteCloser. -func (bufPool *BufioWriterPool) NewWriteCloserWrapper(buf *bufio.Writer, w io.Writer) io.WriteCloser { - return ioutils.NewWriteCloserWrapper(w, func() error { - buf.Flush() - if writeCloser, ok := w.(io.WriteCloser); ok { - writeCloser.Close() - } - bufPool.Put(buf) - return nil - }) -} diff --git a/vendor/github.com/docker/docker/pkg/stringid/stringid.go b/vendor/github.com/docker/docker/pkg/stringid/stringid.go index bffac803..a79c9672 100644 --- a/vendor/github.com/docker/docker/pkg/stringid/stringid.go +++ b/vendor/github.com/docker/docker/pkg/stringid/stringid.go @@ -4,9 +4,6 @@ package stringid // import "github.com/docker/docker/pkg/stringid" import ( "crypto/rand" "encoding/hex" - "errors" - "regexp" - "strconv" "strings" ) @@ -15,22 +12,6 @@ const ( fullLen = 64 ) -var ( - validShortID = regexp.MustCompile("^[a-f0-9]{12}$") - validHex = regexp.MustCompile(`^[a-f0-9]{64}$`) -) - -// IsShortID determines if id has the correct format and length for a short ID. -// It checks the IDs length and if it consists of valid characters for IDs (a-f0-9). -// -// Deprecated: this function is no longer used, and will be removed in the next release. -func IsShortID(id string) bool { - if len(id) != shortLen { - return false - } - return validShortID.MatchString(id) -} - // TruncateID returns a shorthand version of a string identifier for convenience. // A collision with other shorthands is very unlikely, but possible. // In case of a collision a lookup with TruncIndex.Get() will fail, and the caller @@ -45,7 +26,10 @@ func TruncateID(id string) string { return id } -// GenerateRandomID returns a unique id. +// GenerateRandomID returns a unique, 64-character ID consisting of a-z, 0-9. +// It guarantees that the ID, when truncated ([TruncateID]) does not consist +// of numbers only, so that the truncated ID can be used as hostname for +// containers. func GenerateRandomID() string { b := make([]byte, 32) for { @@ -53,25 +37,27 @@ func GenerateRandomID() string { panic(err) // This shouldn't happen } id := hex.EncodeToString(b) - // if we try to parse the truncated for as an int and we don't have - // an error then the value is all numeric and causes issues when - // used as a hostname. ref #3869 - if _, err := strconv.ParseInt(TruncateID(id), 10, 64); err == nil { + + // make sure that the truncated ID does not consist of only numeric + // characters, as it's used as default hostname for containers. + // + // See: + // - https://github.com/moby/moby/issues/3869 + // - https://bugzilla.redhat.com/show_bug.cgi?id=1059122 + if allNum(id[:shortLen]) { + // all numbers; try again continue } return id } } -// ValidateID checks whether an ID string is a valid, full-length image ID. -// -// Deprecated: use [github.com/docker/docker/image/v1.ValidateID] instead. Will be removed in the next release. -func ValidateID(id string) error { - if len(id) != fullLen { - return errors.New("image ID '" + id + "' is invalid") +// allNum checks whether id consists of only numbers (0-9). +func allNum(id string) bool { + for _, c := range []byte(id) { + if c > '9' || c < '0' { + return false + } } - if !validHex.MatchString(id) { - return errors.New("image ID '" + id + "' is invalid") - } - return nil + return true } diff --git a/vendor/github.com/docker/docker/pkg/system/args_windows.go b/vendor/github.com/docker/docker/pkg/system/args_windows.go deleted file mode 100644 index b7c9487a..00000000 --- a/vendor/github.com/docker/docker/pkg/system/args_windows.go +++ /dev/null @@ -1,16 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import ( - "strings" - - "golang.org/x/sys/windows" -) - -// EscapeArgs makes a Windows-style escaped command line from a set of arguments -func EscapeArgs(args []string) string { - escapedArgs := make([]string, len(args)) - for i, a := range args { - escapedArgs[i] = windows.EscapeArg(a) - } - return strings.Join(escapedArgs, " ") -} diff --git a/vendor/github.com/docker/docker/pkg/system/chtimes.go b/vendor/github.com/docker/docker/pkg/system/chtimes.go deleted file mode 100644 index 6a6bca43..00000000 --- a/vendor/github.com/docker/docker/pkg/system/chtimes.go +++ /dev/null @@ -1,48 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import ( - "os" - "syscall" - "time" - "unsafe" -) - -// Used by Chtimes -var unixEpochTime, unixMaxTime time.Time - -func init() { - unixEpochTime = time.Unix(0, 0) - if unsafe.Sizeof(syscall.Timespec{}.Nsec) == 8 { - // This is a 64 bit timespec - // os.Chtimes limits time to the following - // - // Note that this intentionally sets nsec (not sec), which sets both sec - // and nsec internally in time.Unix(); - // https://github.com/golang/go/blob/go1.19.2/src/time/time.go#L1364-L1380 - unixMaxTime = time.Unix(0, 1<<63-1) - } else { - // This is a 32 bit timespec - unixMaxTime = time.Unix(1<<31-1, 0) - } -} - -// Chtimes changes the access time and modified time of a file at the given path. -// If the modified time is prior to the Unix Epoch (unixMinTime), or after the -// end of Unix Time (unixEpochTime), os.Chtimes has undefined behavior. In this -// case, Chtimes defaults to Unix Epoch, just in case. -func Chtimes(name string, atime time.Time, mtime time.Time) error { - if atime.Before(unixEpochTime) || atime.After(unixMaxTime) { - atime = unixEpochTime - } - - if mtime.Before(unixEpochTime) || mtime.After(unixMaxTime) { - mtime = unixEpochTime - } - - if err := os.Chtimes(name, atime, mtime); err != nil { - return err - } - - // Take platform specific action for setting create time. - return setCTime(name, mtime) -} diff --git a/vendor/github.com/docker/docker/pkg/system/chtimes_nowindows.go b/vendor/github.com/docker/docker/pkg/system/chtimes_nowindows.go deleted file mode 100644 index 92ff0209..00000000 --- a/vendor/github.com/docker/docker/pkg/system/chtimes_nowindows.go +++ /dev/null @@ -1,14 +0,0 @@ -//go:build !windows - -package system // import "github.com/docker/docker/pkg/system" - -import ( - "time" -) - -// setCTime will set the create time on a file. On Unix, the create -// time is updated as a side effect of setting the modified time, so -// no action is required. -func setCTime(path string, ctime time.Time) error { - return nil -} diff --git a/vendor/github.com/docker/docker/pkg/system/errors.go b/vendor/github.com/docker/docker/pkg/system/errors.go deleted file mode 100644 index f4bbcce7..00000000 --- a/vendor/github.com/docker/docker/pkg/system/errors.go +++ /dev/null @@ -1,6 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import "errors" - -// ErrNotSupportedPlatform means the platform is not supported. -var ErrNotSupportedPlatform = errors.New("platform and architecture is not supported") diff --git a/vendor/github.com/docker/docker/pkg/system/filesys.go b/vendor/github.com/docker/docker/pkg/system/filesys.go deleted file mode 100644 index ce5990c9..00000000 --- a/vendor/github.com/docker/docker/pkg/system/filesys.go +++ /dev/null @@ -1,19 +0,0 @@ -package system - -import ( - "os" - "path/filepath" - "strings" -) - -// IsAbs is a platform-agnostic wrapper for filepath.IsAbs. -// -// On Windows, golang filepath.IsAbs does not consider a path \windows\system32 -// as absolute as it doesn't start with a drive-letter/colon combination. However, -// in docker we need to verify things such as WORKDIR /windows/system32 in -// a Dockerfile (which gets translated to \windows\system32 when being processed -// by the daemon). This SHOULD be treated as absolute from a docker processing -// perspective. -func IsAbs(path string) bool { - return filepath.IsAbs(path) || strings.HasPrefix(path, string(os.PathSeparator)) -} diff --git a/vendor/github.com/docker/docker/pkg/system/filesys_unix.go b/vendor/github.com/docker/docker/pkg/system/filesys_unix.go deleted file mode 100644 index f01f9385..00000000 --- a/vendor/github.com/docker/docker/pkg/system/filesys_unix.go +++ /dev/null @@ -1,16 +0,0 @@ -//go:build !windows - -package system // import "github.com/docker/docker/pkg/system" - -import "os" - -// MkdirAllWithACL is a wrapper for os.MkdirAll on unix systems. -func MkdirAllWithACL(path string, perm os.FileMode, sddl string) error { - return os.MkdirAll(path, perm) -} - -// MkdirAll creates a directory named path along with any necessary parents, -// with permission specified by attribute perm for all dir created. -func MkdirAll(path string, perm os.FileMode) error { - return os.MkdirAll(path, perm) -} diff --git a/vendor/github.com/docker/docker/pkg/system/filesys_windows.go b/vendor/github.com/docker/docker/pkg/system/filesys_windows.go deleted file mode 100644 index 92e972ea..00000000 --- a/vendor/github.com/docker/docker/pkg/system/filesys_windows.go +++ /dev/null @@ -1,135 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import ( - "os" - "regexp" - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -// SddlAdministratorsLocalSystem is local administrators plus NT AUTHORITY\System. -const SddlAdministratorsLocalSystem = "D:P(A;OICI;GA;;;BA)(A;OICI;GA;;;SY)" - -// volumePath is a regular expression to check if a path is a Windows -// volume path (e.g., "\\?\Volume{4c1b02c1-d990-11dc-99ae-806e6f6e6963}" -// or "\\?\Volume{4c1b02c1-d990-11dc-99ae-806e6f6e6963}\"). -var volumePath = regexp.MustCompile(`^\\\\\?\\Volume{[a-z0-9-]+}\\?$`) - -// MkdirAllWithACL is a custom version of os.MkdirAll modified for use on Windows -// so that it is both volume path aware, and can create a directory with -// an appropriate SDDL defined ACL. -func MkdirAllWithACL(path string, _ os.FileMode, sddl string) error { - sa, err := makeSecurityAttributes(sddl) - if err != nil { - return &os.PathError{Op: "mkdirall", Path: path, Err: err} - } - return mkdirall(path, sa) -} - -// MkdirAll is a custom version of os.MkdirAll that is volume path aware for -// Windows. It can be used as a drop-in replacement for os.MkdirAll. -func MkdirAll(path string, _ os.FileMode) error { - return mkdirall(path, nil) -} - -// mkdirall is a custom version of os.MkdirAll modified for use on Windows -// so that it is both volume path aware, and can create a directory with -// a DACL. -func mkdirall(path string, perm *windows.SecurityAttributes) error { - if volumePath.MatchString(path) { - return nil - } - - // The rest of this method is largely copied from os.MkdirAll and should be kept - // as-is to ensure compatibility. - - // Fast path: if we can tell whether path is a directory or file, stop with success or error. - dir, err := os.Stat(path) - if err == nil { - if dir.IsDir() { - return nil - } - return &os.PathError{Op: "mkdir", Path: path, Err: syscall.ENOTDIR} - } - - // Slow path: make sure parent exists and then call Mkdir for path. - i := len(path) - for i > 0 && os.IsPathSeparator(path[i-1]) { // Skip trailing path separator. - i-- - } - - j := i - for j > 0 && !os.IsPathSeparator(path[j-1]) { // Scan backward over element. - j-- - } - - if j > 1 { - // Create parent. - err = mkdirall(fixRootDirectory(path[:j-1]), perm) - if err != nil { - return err - } - } - - // Parent now exists; invoke Mkdir and use its result. - err = mkdirWithACL(path, perm) - if err != nil { - // Handle arguments like "foo/." by - // double-checking that directory doesn't exist. - dir, err1 := os.Lstat(path) - if err1 == nil && dir.IsDir() { - return nil - } - return err - } - return nil -} - -// mkdirWithACL creates a new directory. If there is an error, it will be of -// type *PathError. . -// -// This is a modified and combined version of os.Mkdir and windows.Mkdir -// in golang to cater for creating a directory am ACL permitting full -// access, with inheritance, to any subfolder/file for Built-in Administrators -// and Local System. -func mkdirWithACL(name string, sa *windows.SecurityAttributes) error { - if sa == nil { - return os.Mkdir(name, 0) - } - - namep, err := windows.UTF16PtrFromString(name) - if err != nil { - return &os.PathError{Op: "mkdir", Path: name, Err: err} - } - - err = windows.CreateDirectory(namep, sa) - if err != nil { - return &os.PathError{Op: "mkdir", Path: name, Err: err} - } - return nil -} - -// fixRootDirectory fixes a reference to a drive's root directory to -// have the required trailing slash. -func fixRootDirectory(p string) string { - if len(p) == len(`\\?\c:`) { - if os.IsPathSeparator(p[0]) && os.IsPathSeparator(p[1]) && p[2] == '?' && os.IsPathSeparator(p[3]) && p[5] == ':' { - return p + `\` - } - } - return p -} - -func makeSecurityAttributes(sddl string) (*windows.SecurityAttributes, error) { - var sa windows.SecurityAttributes - sa.Length = uint32(unsafe.Sizeof(sa)) - sa.InheritHandle = 1 - var err error - sa.SecurityDescriptor, err = windows.SecurityDescriptorFromString(sddl) - if err != nil { - return nil, err - } - return &sa, nil -} diff --git a/vendor/github.com/docker/docker/pkg/system/init_windows.go b/vendor/github.com/docker/docker/pkg/system/init_windows.go deleted file mode 100644 index 7603efbb..00000000 --- a/vendor/github.com/docker/docker/pkg/system/init_windows.go +++ /dev/null @@ -1,16 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -// containerdRuntimeSupported determines if containerd should be the runtime. -var containerdRuntimeSupported = false - -// InitContainerdRuntime sets whether to use containerd for runtime on Windows. -func InitContainerdRuntime(cdPath string) { - if len(cdPath) > 0 { - containerdRuntimeSupported = true - } -} - -// ContainerdRuntimeSupported returns true if the use of containerd runtime is supported. -func ContainerdRuntimeSupported() bool { - return containerdRuntimeSupported -} diff --git a/vendor/github.com/docker/docker/pkg/system/lstat_unix.go b/vendor/github.com/docker/docker/pkg/system/lstat_unix.go deleted file mode 100644 index 97f355d2..00000000 --- a/vendor/github.com/docker/docker/pkg/system/lstat_unix.go +++ /dev/null @@ -1,22 +0,0 @@ -//go:build !windows - -package system // import "github.com/docker/docker/pkg/system" - -import ( - "os" - "syscall" -) - -// Lstat takes a path to a file and returns -// a system.StatT type pertaining to that file. -// -// Throws an error if the file does not exist. -// -// Deprecated: this function is only used internally, and will be removed in the next release. -func Lstat(path string) (*StatT, error) { - s := &syscall.Stat_t{} - if err := syscall.Lstat(path, s); err != nil { - return nil, &os.PathError{Op: "Lstat", Path: path, Err: err} - } - return fromStatT(s) -} diff --git a/vendor/github.com/docker/docker/pkg/system/lstat_windows.go b/vendor/github.com/docker/docker/pkg/system/lstat_windows.go deleted file mode 100644 index 4180f3ac..00000000 --- a/vendor/github.com/docker/docker/pkg/system/lstat_windows.go +++ /dev/null @@ -1,16 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import "os" - -// Lstat calls os.Lstat to get a fileinfo interface back. -// This is then copied into our own locally defined structure. -// -// Deprecated: this function is only used internally, and will be removed in the next release. -func Lstat(path string) (*StatT, error) { - fi, err := os.Lstat(path) - if err != nil { - return nil, err - } - - return fromStatT(&fi) -} diff --git a/vendor/github.com/docker/docker/pkg/system/mknod.go b/vendor/github.com/docker/docker/pkg/system/mknod.go deleted file mode 100644 index e0cd22d7..00000000 --- a/vendor/github.com/docker/docker/pkg/system/mknod.go +++ /dev/null @@ -1,18 +0,0 @@ -//go:build !windows - -package system // import "github.com/docker/docker/pkg/system" - -import ( - "golang.org/x/sys/unix" -) - -// Mkdev is used to build the value of linux devices (in /dev/) which specifies major -// and minor number of the newly created device special file. -// Linux device nodes are a bit weird due to backwards compat with 16 bit device nodes. -// They are, from low to high: the lower 8 bits of the minor, then 12 bits of the major, -// then the top 12 bits of the minor. -// -// Deprecated: this function is only used internally, and will be removed in the next release. -func Mkdev(major int64, minor int64) uint32 { - return uint32(unix.Mkdev(uint32(major), uint32(minor))) -} diff --git a/vendor/github.com/docker/docker/pkg/system/mknod_freebsd.go b/vendor/github.com/docker/docker/pkg/system/mknod_freebsd.go deleted file mode 100644 index 4f66453d..00000000 --- a/vendor/github.com/docker/docker/pkg/system/mknod_freebsd.go +++ /dev/null @@ -1,15 +0,0 @@ -//go:build freebsd - -package system // import "github.com/docker/docker/pkg/system" - -import ( - "golang.org/x/sys/unix" -) - -// Mknod creates a filesystem node (file, device special file or named pipe) named path -// with attributes specified by mode and dev. -// -// Deprecated: this function is only used internally, and will be removed in the next release. -func Mknod(path string, mode uint32, dev int) error { - return unix.Mknod(path, mode, uint64(dev)) -} diff --git a/vendor/github.com/docker/docker/pkg/system/mknod_unix.go b/vendor/github.com/docker/docker/pkg/system/mknod_unix.go deleted file mode 100644 index 34c55326..00000000 --- a/vendor/github.com/docker/docker/pkg/system/mknod_unix.go +++ /dev/null @@ -1,15 +0,0 @@ -//go:build !freebsd && !windows - -package system // import "github.com/docker/docker/pkg/system" - -import ( - "golang.org/x/sys/unix" -) - -// Mknod creates a filesystem node (file, device special file or named pipe) named path -// with attributes specified by mode and dev. -// -// Deprecated: this function is only used internally, and will be removed in the next release. -func Mknod(path string, mode uint32, dev int) error { - return unix.Mknod(path, mode, dev) -} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_bsd.go b/vendor/github.com/docker/docker/pkg/system/stat_bsd.go deleted file mode 100644 index 435b776e..00000000 --- a/vendor/github.com/docker/docker/pkg/system/stat_bsd.go +++ /dev/null @@ -1,17 +0,0 @@ -//go:build freebsd || netbsd - -package system // import "github.com/docker/docker/pkg/system" - -import "syscall" - -// fromStatT converts a syscall.Stat_t type to a system.Stat_t type -func fromStatT(s *syscall.Stat_t) (*StatT, error) { - return &StatT{ - size: s.Size, - mode: uint32(s.Mode), - uid: s.Uid, - gid: s.Gid, - rdev: uint64(s.Rdev), - mtim: s.Mtimespec, - }, nil -} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_darwin.go b/vendor/github.com/docker/docker/pkg/system/stat_darwin.go deleted file mode 100644 index e0b629df..00000000 --- a/vendor/github.com/docker/docker/pkg/system/stat_darwin.go +++ /dev/null @@ -1,15 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import "syscall" - -// fromStatT converts a syscall.Stat_t type to a system.Stat_t type -func fromStatT(s *syscall.Stat_t) (*StatT, error) { - return &StatT{ - size: s.Size, - mode: uint32(s.Mode), - uid: s.Uid, - gid: s.Gid, - rdev: uint64(s.Rdev), - mtim: s.Mtimespec, - }, nil -} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_illumos.go b/vendor/github.com/docker/docker/pkg/system/stat_illumos.go deleted file mode 100644 index 851374e5..00000000 --- a/vendor/github.com/docker/docker/pkg/system/stat_illumos.go +++ /dev/null @@ -1,15 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import "syscall" - -// fromStatT converts a syscall.Stat_t type to a system.Stat_t type -func fromStatT(s *syscall.Stat_t) (*StatT, error) { - return &StatT{ - size: s.Size, - mode: uint32(s.Mode), - uid: s.Uid, - gid: s.Gid, - rdev: uint64(s.Rdev), - mtim: s.Mtim, - }, nil -} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_linux.go b/vendor/github.com/docker/docker/pkg/system/stat_linux.go deleted file mode 100644 index 0557235f..00000000 --- a/vendor/github.com/docker/docker/pkg/system/stat_linux.go +++ /dev/null @@ -1,24 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import "syscall" - -// fromStatT converts a syscall.Stat_t type to a system.Stat_t type -func fromStatT(s *syscall.Stat_t) (*StatT, error) { - return &StatT{ - size: s.Size, - mode: s.Mode, - uid: s.Uid, - gid: s.Gid, - // the type is 32bit on mips - rdev: uint64(s.Rdev), //nolint: unconvert - mtim: s.Mtim, - }, nil -} - -// FromStatT converts a syscall.Stat_t type to a system.Stat_t type -// This is exposed on Linux as pkg/archive/changes uses it. -// -// Deprecated: this function is only used internally, and will be removed in the next release. -func FromStatT(s *syscall.Stat_t) (*StatT, error) { - return fromStatT(s) -} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go b/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go deleted file mode 100644 index 851374e5..00000000 --- a/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go +++ /dev/null @@ -1,15 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import "syscall" - -// fromStatT converts a syscall.Stat_t type to a system.Stat_t type -func fromStatT(s *syscall.Stat_t) (*StatT, error) { - return &StatT{ - size: s.Size, - mode: uint32(s.Mode), - uid: s.Uid, - gid: s.Gid, - rdev: uint64(s.Rdev), - mtim: s.Mtim, - }, nil -} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_unix.go b/vendor/github.com/docker/docker/pkg/system/stat_unix.go deleted file mode 100644 index 661b0bed..00000000 --- a/vendor/github.com/docker/docker/pkg/system/stat_unix.go +++ /dev/null @@ -1,70 +0,0 @@ -//go:build !windows - -package system // import "github.com/docker/docker/pkg/system" - -import ( - "os" - "syscall" -) - -// StatT type contains status of a file. It contains metadata -// like permission, owner, group, size, etc about a file. -// -// Deprecated: this type is only used internally, and will be removed in the next release. -type StatT struct { - mode uint32 - uid uint32 - gid uint32 - rdev uint64 - size int64 - mtim syscall.Timespec -} - -// Mode returns file's permission mode. -func (s StatT) Mode() uint32 { - return s.mode -} - -// UID returns file's user id of owner. -func (s StatT) UID() uint32 { - return s.uid -} - -// GID returns file's group id of owner. -func (s StatT) GID() uint32 { - return s.gid -} - -// Rdev returns file's device ID (if it's special file). -func (s StatT) Rdev() uint64 { - return s.rdev -} - -// Size returns file's size. -func (s StatT) Size() int64 { - return s.size -} - -// Mtim returns file's last modification time. -func (s StatT) Mtim() syscall.Timespec { - return s.mtim -} - -// IsDir reports whether s describes a directory. -func (s StatT) IsDir() bool { - return s.mode&syscall.S_IFDIR != 0 -} - -// Stat takes a path to a file and returns -// a system.StatT type pertaining to that file. -// -// Throws an error if the file does not exist. -// -// Deprecated: this function is only used internally, and will be removed in the next release. -func Stat(path string) (*StatT, error) { - s := &syscall.Stat_t{} - if err := syscall.Stat(path, s); err != nil { - return nil, &os.PathError{Op: "Stat", Path: path, Err: err} - } - return fromStatT(s) -} diff --git a/vendor/github.com/docker/docker/pkg/system/stat_windows.go b/vendor/github.com/docker/docker/pkg/system/stat_windows.go deleted file mode 100644 index e74a0f4f..00000000 --- a/vendor/github.com/docker/docker/pkg/system/stat_windows.go +++ /dev/null @@ -1,54 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import ( - "os" - "time" -) - -// StatT type contains status of a file. It contains metadata -// like permission, size, etc about a file. -// -// Deprecated: this type is only used internally, and will be removed in the next release. -type StatT struct { - mode os.FileMode - size int64 - mtim time.Time -} - -// Size returns file's size. -func (s StatT) Size() int64 { - return s.size -} - -// Mode returns file's permission mode. -func (s StatT) Mode() os.FileMode { - return s.mode -} - -// Mtim returns file's last modification time. -func (s StatT) Mtim() time.Time { - return s.mtim -} - -// Stat takes a path to a file and returns -// a system.StatT type pertaining to that file. -// -// Throws an error if the file does not exist. -// -// Deprecated: this function is only used internally, and will be removed in the next release. -func Stat(path string) (*StatT, error) { - fi, err := os.Stat(path) - if err != nil { - return nil, err - } - return fromStatT(&fi) -} - -// fromStatT converts a os.FileInfo type to a system.StatT type -func fromStatT(fi *os.FileInfo) (*StatT, error) { - return &StatT{ - size: (*fi).Size(), - mode: (*fi).Mode(), - mtim: (*fi).ModTime(), - }, nil -} diff --git a/vendor/github.com/docker/docker/pkg/system/utimes_unix.go b/vendor/github.com/docker/docker/pkg/system/utimes_unix.go deleted file mode 100644 index f3a079f8..00000000 --- a/vendor/github.com/docker/docker/pkg/system/utimes_unix.go +++ /dev/null @@ -1,24 +0,0 @@ -//go:build linux || freebsd - -package system // import "github.com/docker/docker/pkg/system" - -import ( - "syscall" - - "golang.org/x/sys/unix" -) - -// LUtimesNano is used to change access and modification time of the specified path. -// It's used for symbol link file because unix.UtimesNano doesn't support a NOFOLLOW flag atm. -func LUtimesNano(path string, ts []syscall.Timespec) error { - uts := []unix.Timespec{ - unix.NsecToTimespec(syscall.TimespecToNsec(ts[0])), - unix.NsecToTimespec(syscall.TimespecToNsec(ts[1])), - } - err := unix.UtimesNanoAt(unix.AT_FDCWD, path, uts, unix.AT_SYMLINK_NOFOLLOW) - if err != nil && err != unix.ENOSYS { - return err - } - - return nil -} diff --git a/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go b/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go deleted file mode 100644 index 7c19d591..00000000 --- a/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build !linux && !freebsd - -package system // import "github.com/docker/docker/pkg/system" - -import "syscall" - -// LUtimesNano is only supported on linux and freebsd. -func LUtimesNano(path string, ts []syscall.Timespec) error { - return ErrNotSupportedPlatform -} diff --git a/vendor/github.com/docker/docker/pkg/system/xattrs.go b/vendor/github.com/docker/docker/pkg/system/xattrs.go deleted file mode 100644 index b3f4e8a2..00000000 --- a/vendor/github.com/docker/docker/pkg/system/xattrs.go +++ /dev/null @@ -1,18 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -type XattrError struct { - Op string - Attr string - Path string - Err error -} - -func (e *XattrError) Error() string { return e.Op + " " + e.Attr + " " + e.Path + ": " + e.Err.Error() } - -func (e *XattrError) Unwrap() error { return e.Err } - -// Timeout reports whether this error represents a timeout. -func (e *XattrError) Timeout() bool { - t, ok := e.Err.(interface{ Timeout() bool }) - return ok && t.Timeout() -} diff --git a/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go b/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go deleted file mode 100644 index b877ecc5..00000000 --- a/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go +++ /dev/null @@ -1,47 +0,0 @@ -package system // import "github.com/docker/docker/pkg/system" - -import ( - "golang.org/x/sys/unix" -) - -// Lgetxattr retrieves the value of the extended attribute identified by attr -// and associated with the given path in the file system. -// It returns a nil slice and nil error if the xattr is not set. -func Lgetxattr(path string, attr string) ([]byte, error) { - sysErr := func(err error) ([]byte, error) { - return nil, &XattrError{Op: "lgetxattr", Attr: attr, Path: path, Err: err} - } - - // Start with a 128 length byte array - dest := make([]byte, 128) - sz, errno := unix.Lgetxattr(path, attr, dest) - - for errno == unix.ERANGE { - // Buffer too small, use zero-sized buffer to get the actual size - sz, errno = unix.Lgetxattr(path, attr, []byte{}) - if errno != nil { - return sysErr(errno) - } - dest = make([]byte, sz) - sz, errno = unix.Lgetxattr(path, attr, dest) - } - - switch { - case errno == unix.ENODATA: - return nil, nil - case errno != nil: - return sysErr(errno) - } - - return dest[:sz], nil -} - -// Lsetxattr sets the value of the extended attribute identified by attr -// and associated with the given path in the file system. -func Lsetxattr(path string, attr string, data []byte, flags int) error { - err := unix.Lsetxattr(path, attr, data, flags) - if err != nil { - return &XattrError{Op: "lsetxattr", Attr: attr, Path: path, Err: err} - } - return nil -} diff --git a/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go b/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go deleted file mode 100644 index 2a3698f1..00000000 --- a/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build !linux - -package system // import "github.com/docker/docker/pkg/system" - -// Lgetxattr is not supported on platforms other than linux. -func Lgetxattr(path string, attr string) ([]byte, error) { - return nil, ErrNotSupportedPlatform -} - -// Lsetxattr is not supported on platforms other than linux. -func Lsetxattr(path string, attr string, data []byte, flags int) error { - return ErrNotSupportedPlatform -} diff --git a/vendor/github.com/docker/docker/registry/auth.go b/vendor/github.com/docker/docker/registry/auth.go index 905ccf5f..8c62b83c 100644 --- a/vendor/github.com/docker/docker/registry/auth.go +++ b/vendor/github.com/docker/docker/registry/auth.go @@ -66,23 +66,23 @@ func (scs staticCredentialStore) SetRefreshToken(*url.URL, string, string) { // loginV2 tries to login to the v2 registry server. The given registry // endpoint will be pinged to get authorization challenges. These challenges // will be used to authenticate against the registry to validate credentials. -func loginV2(authConfig *registry.AuthConfig, endpoint APIEndpoint, userAgent string) (string, string, error) { - var ( - endpointStr = strings.TrimRight(endpoint.URL.String(), "/") + "/v2/" - modifiers = Headers(userAgent, nil) - authTransport = transport.NewTransport(newTransport(endpoint.TLSConfig), modifiers...) - credentialAuthConfig = *authConfig - creds = loginCredentialStore{authConfig: &credentialAuthConfig} - ) - +func loginV2(authConfig *registry.AuthConfig, endpoint APIEndpoint, userAgent string) (status string, token string, _ error) { + endpointStr := strings.TrimRight(endpoint.URL.String(), "/") + "/v2/" log.G(context.TODO()).Debugf("attempting v2 login to registry endpoint %s", endpointStr) - loginClient, err := v2AuthHTTPClient(endpoint.URL, authTransport, modifiers, creds, nil) + req, err := http.NewRequest(http.MethodGet, endpointStr, nil) if err != nil { return "", "", err } - req, err := http.NewRequest(http.MethodGet, endpointStr, nil) + var ( + modifiers = Headers(userAgent, nil) + authTrans = transport.NewTransport(newTransport(endpoint.TLSConfig), modifiers...) + credentialAuthConfig = *authConfig + creds = loginCredentialStore{authConfig: &credentialAuthConfig} + ) + + loginClient, err := v2AuthHTTPClient(endpoint.URL, authTrans, modifiers, creds, nil) if err != nil { return "", "", err } @@ -133,12 +133,13 @@ func v2AuthHTTPClient(endpoint *url.URL, authTransport http.RoundTripper, modifi // files). func ConvertToHostname(url string) string { stripped := url - if strings.HasPrefix(url, "http://") { - stripped = strings.TrimPrefix(url, "http://") - } else if strings.HasPrefix(url, "https://") { - stripped = strings.TrimPrefix(url, "https://") + if strings.HasPrefix(stripped, "http://") { + stripped = strings.TrimPrefix(stripped, "http://") + } else if strings.HasPrefix(stripped, "https://") { + stripped = strings.TrimPrefix(stripped, "https://") } - return strings.SplitN(stripped, "/", 2)[0] + stripped, _, _ = strings.Cut(stripped, "/") + return stripped } // ResolveAuthConfig matches an auth configuration to a server address or a URL diff --git a/vendor/github.com/docker/docker/registry/config.go b/vendor/github.com/docker/docker/registry/config.go index e1b0a0ca..f8d94ce8 100644 --- a/vendor/github.com/docker/docker/registry/config.go +++ b/vendor/github.com/docker/docker/registry/config.go @@ -4,20 +4,21 @@ import ( "context" "net" "net/url" - "regexp" "strconv" "strings" "github.com/containerd/log" "github.com/distribution/reference" "github.com/docker/docker/api/types/registry" + "github.com/docker/docker/internal/lazyregexp" ) // ServiceOptions holds command line options. type ServiceOptions struct { - AllowNondistributableArtifacts []string `json:"allow-nondistributable-artifacts,omitempty"` - Mirrors []string `json:"registry-mirrors,omitempty"` - InsecureRegistries []string `json:"insecure-registries,omitempty"` + AllowNondistributableArtifacts []string `json:"allow-nondistributable-artifacts,omitempty"` // Deprecated: non-distributable artifacts are deprecated and enabled by default. This field will be removed in the next release. + + Mirrors []string `json:"registry-mirrors,omitempty"` + InsecureRegistries []string `json:"insecure-registries,omitempty"` } // serviceConfig holds daemon configuration for the registry service. @@ -56,10 +57,7 @@ var ( } emptyServiceConfig, _ = newServiceConfig(ServiceOptions{}) - validHostPortRegex = regexp.MustCompile(`^` + reference.DomainRegexp.String() + `$`) - - // for mocking in unit tests - lookupIP = net.LookupIP + validHostPortRegex = lazyregexp.New(`^` + reference.DomainRegexp.String() + `$`) // certsDir is used to override defaultCertsDir. certsDir string @@ -83,9 +81,6 @@ func CertsDir() string { // newServiceConfig returns a new instance of ServiceConfig func newServiceConfig(options ServiceOptions) (*serviceConfig, error) { config := &serviceConfig{} - if err := config.loadAllowNondistributableArtifacts(options.AllowNondistributableArtifacts); err != nil { - return nil, err - } if err := config.loadMirrors(options.Mirrors); err != nil { return nil, err } @@ -103,51 +98,12 @@ func (config *serviceConfig) copy() *registry.ServiceConfig { ic[key] = value } return ®istry.ServiceConfig{ - AllowNondistributableArtifactsCIDRs: append([]*registry.NetIPNet(nil), config.AllowNondistributableArtifactsCIDRs...), - AllowNondistributableArtifactsHostnames: append([]string(nil), config.AllowNondistributableArtifactsHostnames...), - InsecureRegistryCIDRs: append([]*registry.NetIPNet(nil), config.InsecureRegistryCIDRs...), - IndexConfigs: ic, - Mirrors: append([]string(nil), config.Mirrors...), + InsecureRegistryCIDRs: append([]*registry.NetIPNet(nil), config.InsecureRegistryCIDRs...), + IndexConfigs: ic, + Mirrors: append([]string(nil), config.Mirrors...), } } -// loadAllowNondistributableArtifacts loads allow-nondistributable-artifacts registries into config. -func (config *serviceConfig) loadAllowNondistributableArtifacts(registries []string) error { - cidrs := map[string]*registry.NetIPNet{} - hostnames := map[string]bool{} - - for _, r := range registries { - if _, err := ValidateIndexName(r); err != nil { - return err - } - if hasScheme(r) { - return invalidParamf("allow-nondistributable-artifacts registry %s should not contain '://'", r) - } - - if _, ipnet, err := net.ParseCIDR(r); err == nil { - // Valid CIDR. - cidrs[ipnet.String()] = (*registry.NetIPNet)(ipnet) - } else if err = validateHostPort(r); err == nil { - // Must be `host:port` if not CIDR. - hostnames[r] = true - } else { - return invalidParamWrapf(err, "allow-nondistributable-artifacts registry %s is not valid", r) - } - } - - config.AllowNondistributableArtifactsCIDRs = make([]*registry.NetIPNet, 0, len(cidrs)) - for _, c := range cidrs { - config.AllowNondistributableArtifactsCIDRs = append(config.AllowNondistributableArtifactsCIDRs, c) - } - - config.AllowNondistributableArtifactsHostnames = make([]string, 0, len(hostnames)) - for h := range hostnames { - config.AllowNondistributableArtifactsHostnames = append(config.AllowNondistributableArtifactsHostnames, h) - } - - return nil -} - // loadMirrors loads mirrors to config, after removing duplicates. // Returns an error if mirrors contains an invalid mirror. func (config *serviceConfig) loadMirrors(mirrors []string) error { @@ -184,7 +140,7 @@ func (config *serviceConfig) loadMirrors(mirrors []string) error { func (config *serviceConfig) loadInsecureRegistries(registries []string) error { // Localhost is by default considered as an insecure registry. This is a // stop-gap for people who are running a private registry on localhost. - registries = append(registries, "127.0.0.0/8") + registries = append(registries, "::1/128", "127.0.0.0/8") var ( insecureRegistryCIDRs = make([]*registry.NetIPNet, 0) @@ -245,25 +201,6 @@ skip: return nil } -// allowNondistributableArtifacts returns true if the provided hostname is part of the list of registries -// that allow push of nondistributable artifacts. -// -// The list can contain elements with CIDR notation to specify a whole subnet. If the subnet contains an IP -// of the registry specified by hostname, true is returned. -// -// hostname should be a URL.Host (`host:port` or `host`) where the `host` part can be either a domain name -// or an IP address. If it is a domain name, then it will be resolved to IP addresses for matching. If -// resolution fails, CIDR matching is not performed. -func (config *serviceConfig) allowNondistributableArtifacts(hostname string) bool { - for _, h := range config.AllowNondistributableArtifactsHostnames { - if h == hostname { - return true - } - } - - return isCIDRMatch(config.AllowNondistributableArtifactsCIDRs, hostname) -} - // isSecureIndex returns false if the provided indexName is part of the list of insecure registries // Insecure registries accept HTTP and/or accept HTTPS with certificates from unknown CAs. // @@ -285,30 +222,37 @@ func (config *serviceConfig) isSecureIndex(indexName string) bool { return !isCIDRMatch(config.InsecureRegistryCIDRs, indexName) } +// for mocking in unit tests. +var lookupIP = net.LookupIP + // isCIDRMatch returns true if URLHost matches an element of cidrs. URLHost is a URL.Host (`host:port` or `host`) // where the `host` part can be either a domain name or an IP address. If it is a domain name, then it will be // resolved to IP addresses for matching. If resolution fails, false is returned. func isCIDRMatch(cidrs []*registry.NetIPNet, URLHost string) bool { + if len(cidrs) == 0 { + return false + } + host, _, err := net.SplitHostPort(URLHost) if err != nil { - // Assume URLHost is of the form `host` without the port and go on. + // Assume URLHost is a host without port and go on. host = URLHost } - addrs, err := lookupIP(host) - if err != nil { - ip := net.ParseIP(host) - if ip != nil { - addrs = []net.IP{ip} + var addresses []net.IP + if ip := net.ParseIP(host); ip != nil { + // Host is an IP-address. + addresses = append(addresses, ip) + } else { + // Try to resolve the host's IP-address. + addresses, err = lookupIP(host) + if err != nil { + // We failed to resolve the host; assume there's no match. + return false } - - // if ip == nil, then `host` is neither an IP nor it could be looked up, - // either because the index is unreachable, or because the index is behind an HTTP proxy. - // So, len(addrs) == 0 and we're not aborting. } - // Try CIDR notation only if addrs has any elements, i.e. if `host`'s IP could be determined. - for _, addr := range addrs { + for _, addr := range addresses { for _, ipnet := range cidrs { // check if the addr falls in the subnet if (*net.IPNet)(ipnet).Contains(addr) { diff --git a/vendor/github.com/docker/docker/registry/registry.go b/vendor/github.com/docker/docker/registry/registry.go index 7866dcd0..6b079199 100644 --- a/vendor/github.com/docker/docker/registry/registry.go +++ b/vendor/github.com/docker/docker/registry/registry.go @@ -14,6 +14,7 @@ import ( "github.com/containerd/log" "github.com/docker/distribution/registry/client/transport" "github.com/docker/go-connections/tlsconfig" + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" ) // HostCertsDir returns the config directory for a specific host. @@ -115,7 +116,7 @@ func Headers(userAgent string, metaHeaders http.Header) []transport.RequestModif // newTransport returns a new HTTP transport. If tlsConfig is nil, it uses the // default TLS configuration. -func newTransport(tlsConfig *tls.Config) *http.Transport { +func newTransport(tlsConfig *tls.Config) http.RoundTripper { if tlsConfig == nil { tlsConfig = tlsconfig.ServerDefault() } @@ -125,12 +126,14 @@ func newTransport(tlsConfig *tls.Config) *http.Transport { KeepAlive: 30 * time.Second, } - return &http.Transport{ - Proxy: http.ProxyFromEnvironment, - DialContext: direct.DialContext, - TLSHandshakeTimeout: 10 * time.Second, - TLSClientConfig: tlsConfig, - // TODO(dmcgowan): Call close idle connections when complete and use keep alive - DisableKeepAlives: true, - } + return otelhttp.NewTransport( + &http.Transport{ + Proxy: http.ProxyFromEnvironment, + DialContext: direct.DialContext, + TLSHandshakeTimeout: 10 * time.Second, + TLSClientConfig: tlsConfig, + // TODO(dmcgowan): Call close idle connections when complete and use keep alive + DisableKeepAlives: true, + }, + ) } diff --git a/vendor/github.com/docker/docker/registry/search_session.go b/vendor/github.com/docker/docker/registry/search_session.go index c334143c..a0d25c80 100644 --- a/vendor/github.com/docker/docker/registry/search_session.go +++ b/vendor/github.com/docker/docker/registry/search_session.go @@ -6,6 +6,7 @@ import ( _ "crypto/sha512" "encoding/json" "fmt" + "io" "net/http" "net/http/cookiejar" "net/url" @@ -15,7 +16,6 @@ import ( "github.com/containerd/log" "github.com/docker/docker/api/types/registry" "github.com/docker/docker/errdefs" - "github.com/docker/docker/pkg/ioutils" "github.com/pkg/errors" ) @@ -76,6 +76,35 @@ func cloneRequest(r *http.Request) *http.Request { return r2 } +// onEOFReader wraps an io.ReadCloser and a function +// the function will run at the end of file or close the file. +type onEOFReader struct { + Rc io.ReadCloser + Fn func() +} + +func (r *onEOFReader) Read(p []byte) (n int, err error) { + n, err = r.Rc.Read(p) + if err == io.EOF { + r.runFunc() + } + return +} + +// Close closes the file and run the function. +func (r *onEOFReader) Close() error { + err := r.Rc.Close() + r.runFunc() + return err +} + +func (r *onEOFReader) runFunc() { + if fn := r.Fn; fn != nil { + fn() + r.Fn = nil + } +} + // RoundTrip changes an HTTP request's headers to add the necessary // authentication-related headers func (tr *authTransport) RoundTrip(orig *http.Request) (*http.Response, error) { @@ -119,7 +148,7 @@ func (tr *authTransport) RoundTrip(orig *http.Request) (*http.Response, error) { if len(resp.Header["X-Docker-Token"]) > 0 { tr.token = resp.Header["X-Docker-Token"] } - resp.Body = &ioutils.OnEOFReader{ + resp.Body = &onEOFReader{ Rc: resp.Body, Fn: func() { tr.mu.Lock() diff --git a/vendor/github.com/docker/docker/registry/service.go b/vendor/github.com/docker/docker/registry/service.go index 6881c110..4d66523c 100644 --- a/vendor/github.com/docker/docker/registry/service.go +++ b/vendor/github.com/docker/docker/registry/service.go @@ -68,10 +68,11 @@ func (s *Service) Auth(ctx context.Context, authConfig *registry.AuthConfig, use registryHostName = u.Host } - // Lookup endpoints for authentication using "LookupPushEndpoints", which - // excludes mirrors to prevent sending credentials of the upstream registry - // to a mirror. - endpoints, err := s.LookupPushEndpoints(registryHostName) + // Lookup endpoints for authentication but exclude mirrors to prevent + // sending credentials of the upstream registry to a mirror. + s.mu.RLock() + endpoints, err := s.lookupV2Endpoints(registryHostName, false) + s.mu.RUnlock() if err != nil { return "", "", invalidParam(err) } @@ -103,10 +104,9 @@ func (s *Service) ResolveRepository(name reference.Named) (*RepositoryInfo, erro type APIEndpoint struct { Mirror bool URL *url.URL - Version APIVersion // Deprecated: v1 registries are deprecated, and endpoints are always v2. - AllowNondistributableArtifacts bool + AllowNondistributableArtifacts bool // Deprecated: non-distributable artifacts are deprecated and enabled by default. This field will be removed in the next release. Official bool - TrimHostname bool + TrimHostname bool // Deprecated: hostname is now trimmed unconditionally for remote names. This field will be removed in the next release. TLSConfig *tls.Config } @@ -116,7 +116,7 @@ func (s *Service) LookupPullEndpoints(hostname string) (endpoints []APIEndpoint, s.mu.RLock() defer s.mu.RUnlock() - return s.lookupV2Endpoints(hostname) + return s.lookupV2Endpoints(hostname, true) } // LookupPushEndpoints creates a list of v2 endpoints to try to push to, in order of preference. @@ -125,15 +125,7 @@ func (s *Service) LookupPushEndpoints(hostname string) (endpoints []APIEndpoint, s.mu.RLock() defer s.mu.RUnlock() - allEndpoints, err := s.lookupV2Endpoints(hostname) - if err == nil { - for _, endpoint := range allEndpoints { - if !endpoint.Mirror { - endpoints = append(endpoints, endpoint) - } - } - } - return endpoints, err + return s.lookupV2Endpoints(hostname, false) } // IsInsecureRegistry returns true if the registry at given host is configured as diff --git a/vendor/github.com/docker/docker/registry/service_v2.go b/vendor/github.com/docker/docker/registry/service_v2.go index 5d09e11c..43754527 100644 --- a/vendor/github.com/docker/docker/registry/service_v2.go +++ b/vendor/github.com/docker/docker/registry/service_v2.go @@ -7,38 +7,33 @@ import ( "github.com/docker/go-connections/tlsconfig" ) -func (s *Service) lookupV2Endpoints(hostname string) (endpoints []APIEndpoint, err error) { - ana := s.config.allowNondistributableArtifacts(hostname) - +func (s *Service) lookupV2Endpoints(hostname string, includeMirrors bool) ([]APIEndpoint, error) { + var endpoints []APIEndpoint if hostname == DefaultNamespace || hostname == IndexHostname { - for _, mirror := range s.config.Mirrors { - if !strings.HasPrefix(mirror, "http://") && !strings.HasPrefix(mirror, "https://") { - mirror = "https://" + mirror + if includeMirrors { + for _, mirror := range s.config.Mirrors { + if !strings.HasPrefix(mirror, "http://") && !strings.HasPrefix(mirror, "https://") { + mirror = "https://" + mirror + } + mirrorURL, err := url.Parse(mirror) + if err != nil { + return nil, invalidParam(err) + } + mirrorTLSConfig, err := newTLSConfig(mirrorURL.Host, s.config.isSecureIndex(mirrorURL.Host)) + if err != nil { + return nil, err + } + endpoints = append(endpoints, APIEndpoint{ + URL: mirrorURL, + Mirror: true, + TLSConfig: mirrorTLSConfig, + }) } - mirrorURL, err := url.Parse(mirror) - if err != nil { - return nil, invalidParam(err) - } - mirrorTLSConfig, err := newTLSConfig(mirrorURL.Host, s.config.isSecureIndex(mirrorURL.Host)) - if err != nil { - return nil, err - } - endpoints = append(endpoints, APIEndpoint{ - URL: mirrorURL, - Version: APIVersion2, //nolint:staticcheck // ignore SA1019 (Version is deprecated) to allow potential consumers to transition. - Mirror: true, - TrimHostname: true, - TLSConfig: mirrorTLSConfig, - }) } endpoints = append(endpoints, APIEndpoint{ - URL: DefaultV2Registry, - Version: APIVersion2, //nolint:staticcheck // ignore SA1019 (Version is deprecated) to allow potential consumers to transition. - Official: true, - TrimHostname: true, - TLSConfig: tlsconfig.ServerDefault(), - - AllowNondistributableArtifacts: ana, + URL: DefaultV2Registry, + Official: true, + TLSConfig: tlsconfig.ServerDefault(), }) return endpoints, nil @@ -55,10 +50,7 @@ func (s *Service) lookupV2Endpoints(hostname string) (endpoints []APIEndpoint, e Scheme: "https", Host: hostname, }, - Version: APIVersion2, //nolint:staticcheck // ignore SA1019 (Version is deprecated) to allow potential consumers to transition. - AllowNondistributableArtifacts: ana, - TrimHostname: true, - TLSConfig: tlsConfig, + TLSConfig: tlsConfig, }, } @@ -68,9 +60,6 @@ func (s *Service) lookupV2Endpoints(hostname string) (endpoints []APIEndpoint, e Scheme: "http", Host: hostname, }, - Version: APIVersion2, //nolint:staticcheck // ignore SA1019 (Version is deprecated) to allow potential consumers to transition. - AllowNondistributableArtifacts: ana, - TrimHostname: true, // used to check if supposed to be secure via InsecureSkipVerify TLSConfig: tlsConfig, }) diff --git a/vendor/github.com/docker/docker/registry/types.go b/vendor/github.com/docker/docker/registry/types.go index 4926580a..02d7f4f3 100644 --- a/vendor/github.com/docker/docker/registry/types.go +++ b/vendor/github.com/docker/docker/registry/types.go @@ -5,27 +5,6 @@ import ( "github.com/docker/docker/api/types/registry" ) -// APIVersion is an integral representation of an API version (presently -// either 1 or 2) -// -// Deprecated: v1 registries are deprecated, and endpoints are always v2. -type APIVersion int - -func (av APIVersion) String() string { - return apiVersions[av] -} - -// API Version identifiers. -const ( - APIVersion1 APIVersion = 1 // Deprecated: v1 registries are deprecated, and endpoints are always v2. - APIVersion2 APIVersion = 2 // Deprecated: v1 registries are deprecated, and endpoints are always v2. -) - -var apiVersions = map[APIVersion]string{ - APIVersion1: "v1", - APIVersion2: "v2", -} - // RepositoryInfo describes a repository type RepositoryInfo struct { Name reference.Named diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/transport/http/common.go b/vendor/github.com/go-git/go-git/v5/plumbing/transport/http/common.go index 120008db..df01890b 100644 --- a/vendor/github.com/go-git/go-git/v5/plumbing/transport/http/common.go +++ b/vendor/github.com/go-git/go-git/v5/plumbing/transport/http/common.go @@ -17,6 +17,7 @@ import ( "github.com/go-git/go-git/v5/plumbing" "github.com/go-git/go-git/v5/plumbing/protocol/packp" + "github.com/go-git/go-git/v5/plumbing/protocol/packp/capability" "github.com/go-git/go-git/v5/plumbing/transport" "github.com/go-git/go-git/v5/utils/ioutil" "github.com/golang/groupcache/lru" @@ -24,7 +25,7 @@ import ( // it requires a bytes.Buffer, because we need to know the length func applyHeadersToRequest(req *http.Request, content *bytes.Buffer, host string, requestType string) { - req.Header.Add("User-Agent", "git/1.0") + req.Header.Add("User-Agent", capability.DefaultAgent()) req.Header.Add("Host", host) // host:port if content == nil { diff --git a/vendor/github.com/go-git/go-git/v5/worktree.go b/vendor/github.com/go-git/go-git/v5/worktree.go index 8dfa50b1..dded08e9 100644 --- a/vendor/github.com/go-git/go-git/v5/worktree.go +++ b/vendor/github.com/go-git/go-git/v5/worktree.go @@ -425,8 +425,9 @@ func (w *Worktree) resetIndex(t *object.Tree, dirs []string, files []string) err } func inFiles(files []string, v string) bool { + v = filepath.Clean(v) for _, s := range files { - if s == v { + if filepath.Clean(s) == v { return true } } diff --git a/vendor/github.com/go-git/go-git/v5/worktree_status.go b/vendor/github.com/go-git/go-git/v5/worktree_status.go index 6e72db97..7870d138 100644 --- a/vendor/github.com/go-git/go-git/v5/worktree_status.go +++ b/vendor/github.com/go-git/go-git/v5/worktree_status.go @@ -370,6 +370,8 @@ func (w *Worktree) doAdd(path string, ignorePattern []gitignore.Pattern, skipSta } } + path = filepath.Clean(path) + if err != nil || !fi.IsDir() { added, h, err = w.doAddFile(idx, s, path, ignorePattern) } else { diff --git a/vendor/github.com/google/go-cmp/cmp/internal/function/func.go b/vendor/github.com/google/go-cmp/cmp/internal/function/func.go index d127d436..def01a6b 100644 --- a/vendor/github.com/google/go-cmp/cmp/internal/function/func.go +++ b/vendor/github.com/google/go-cmp/cmp/internal/function/func.go @@ -19,6 +19,7 @@ const ( tbFunc // func(T) bool ttbFunc // func(T, T) bool + ttiFunc // func(T, T) int trbFunc // func(T, R) bool tibFunc // func(T, I) bool trFunc // func(T) R @@ -28,11 +29,13 @@ const ( Transformer = trFunc // func(T) R ValueFilter = ttbFunc // func(T, T) bool Less = ttbFunc // func(T, T) bool + Compare = ttiFunc // func(T, T) int ValuePredicate = tbFunc // func(T) bool KeyValuePredicate = trbFunc // func(T, R) bool ) var boolType = reflect.TypeOf(true) +var intType = reflect.TypeOf(0) // IsType reports whether the reflect.Type is of the specified function type. func IsType(t reflect.Type, ft funcType) bool { @@ -49,6 +52,10 @@ func IsType(t reflect.Type, ft funcType) bool { if ni == 2 && no == 1 && t.In(0) == t.In(1) && t.Out(0) == boolType { return true } + case ttiFunc: // func(T, T) int + if ni == 2 && no == 1 && t.In(0) == t.In(1) && t.Out(0) == intType { + return true + } case trbFunc: // func(T, R) bool if ni == 2 && no == 1 && t.Out(0) == boolType { return true diff --git a/vendor/github.com/google/go-cmp/cmp/options.go b/vendor/github.com/google/go-cmp/cmp/options.go index 754496f3..ba3fce81 100644 --- a/vendor/github.com/google/go-cmp/cmp/options.go +++ b/vendor/github.com/google/go-cmp/cmp/options.go @@ -232,7 +232,15 @@ func (validator) apply(s *state, vx, vy reflect.Value) { if t := s.curPath.Index(-2).Type(); t.Name() != "" { // Named type with unexported fields. name = fmt.Sprintf("%q.%v", t.PkgPath(), t.Name()) // e.g., "path/to/package".MyType - if _, ok := reflect.New(t).Interface().(error); ok { + isProtoMessage := func(t reflect.Type) bool { + m, ok := reflect.PointerTo(t).MethodByName("ProtoReflect") + return ok && m.Type.NumIn() == 1 && m.Type.NumOut() == 1 && + m.Type.Out(0).PkgPath() == "google.golang.org/protobuf/reflect/protoreflect" && + m.Type.Out(0).Name() == "Message" + } + if isProtoMessage(t) { + help = `consider using "google.golang.org/protobuf/testing/protocmp".Transform to compare proto.Message types` + } else if _, ok := reflect.New(t).Interface().(error); ok { help = "consider using cmpopts.EquateErrors to compare error values" } else if t.Comparable() { help = "consider using cmpopts.EquateComparable to compare comparable Go types" diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/errors.go b/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/errors.go index 41cd4f50..bbe7decf 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/errors.go +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/errors.go @@ -148,22 +148,20 @@ func DefaultHTTPErrorHandler(ctx context.Context, mux *ServeMux, marshaler Marsh } md, ok := ServerMetadataFromContext(ctx) - if !ok { - grpclog.Error("Failed to extract ServerMetadata from context") - } + if ok { + handleForwardResponseServerMetadata(w, mux, md) - handleForwardResponseServerMetadata(w, mux, md) + // RFC 7230 https://tools.ietf.org/html/rfc7230#section-4.1.2 + // Unless the request includes a TE header field indicating "trailers" + // is acceptable, as described in Section 4.3, a server SHOULD NOT + // generate trailer fields that it believes are necessary for the user + // agent to receive. + doForwardTrailers := requestAcceptsTrailers(r) - // RFC 7230 https://tools.ietf.org/html/rfc7230#section-4.1.2 - // Unless the request includes a TE header field indicating "trailers" - // is acceptable, as described in Section 4.3, a server SHOULD NOT - // generate trailer fields that it believes are necessary for the user - // agent to receive. - doForwardTrailers := requestAcceptsTrailers(r) - - if doForwardTrailers { - handleForwardResponseTrailerHeader(w, mux, md) - w.Header().Set("Transfer-Encoding", "chunked") + if doForwardTrailers { + handleForwardResponseTrailerHeader(w, mux, md) + w.Header().Set("Transfer-Encoding", "chunked") + } } st := HTTPStatusFromCode(s.Code()) @@ -176,7 +174,7 @@ func DefaultHTTPErrorHandler(ctx context.Context, mux *ServeMux, marshaler Marsh grpclog.Errorf("Failed to write response: %v", err) } - if doForwardTrailers { + if ok && requestAcceptsTrailers(r) { handleForwardResponseTrailer(w, mux, md) } } diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/handler.go b/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/handler.go index 0fa90765..2f0b9e9e 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/handler.go +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/handler.go @@ -153,12 +153,10 @@ type responseBody interface { // ForwardResponseMessage forwards the message "resp" from gRPC server to REST client. func ForwardResponseMessage(ctx context.Context, mux *ServeMux, marshaler Marshaler, w http.ResponseWriter, req *http.Request, resp proto.Message, opts ...func(context.Context, http.ResponseWriter, proto.Message) error) { md, ok := ServerMetadataFromContext(ctx) - if !ok { - grpclog.Error("Failed to extract ServerMetadata from context") + if ok { + handleForwardResponseServerMetadata(w, mux, md) } - handleForwardResponseServerMetadata(w, mux, md) - // RFC 7230 https://tools.ietf.org/html/rfc7230#section-4.1.2 // Unless the request includes a TE header field indicating "trailers" // is acceptable, as described in Section 4.3, a server SHOULD NOT @@ -166,7 +164,7 @@ func ForwardResponseMessage(ctx context.Context, mux *ServeMux, marshaler Marsha // agent to receive. doForwardTrailers := requestAcceptsTrailers(req) - if doForwardTrailers { + if ok && doForwardTrailers { handleForwardResponseTrailerHeader(w, mux, md) w.Header().Set("Transfer-Encoding", "chunked") } @@ -196,7 +194,7 @@ func ForwardResponseMessage(ctx context.Context, mux *ServeMux, marshaler Marsha return } - if !doForwardTrailers { + if !doForwardTrailers && mux.writeContentLength { w.Header().Set("Content-Length", strconv.Itoa(len(buf))) } @@ -204,7 +202,7 @@ func ForwardResponseMessage(ctx context.Context, mux *ServeMux, marshaler Marsha grpclog.Errorf("Failed to write response: %v", err) } - if doForwardTrailers { + if ok && doForwardTrailers { handleForwardResponseTrailer(w, mux, md) } } diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/mux.go b/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/mux.go index 60c2065d..19255ec4 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/mux.go +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/mux.go @@ -71,6 +71,7 @@ type ServeMux struct { routingErrorHandler RoutingErrorHandlerFunc disablePathLengthFallback bool unescapingMode UnescapingMode + writeContentLength bool } // ServeMuxOption is an option that can be given to a ServeMux on construction. @@ -258,6 +259,13 @@ func WithDisablePathLengthFallback() ServeMuxOption { } } +// WithWriteContentLength returns a ServeMuxOption to enable writing content length on non-streaming responses +func WithWriteContentLength() ServeMuxOption { + return func(serveMux *ServeMux) { + serveMux.writeContentLength = true + } +} + // WithHealthEndpointAt returns a ServeMuxOption that will add an endpoint to the created ServeMux at the path specified by endpointPath. // When called the handler will forward the request to the upstream grpc service health check (defined in the // gRPC Health Checking Protocol). diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/query.go b/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/query.go index 0a1ca7e0..8549dfb9 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/query.go +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/query.go @@ -126,6 +126,15 @@ func populateFieldValueFromPath(msgValue protoreflect.Message, fieldPath []strin } } + // Check if oneof already set + if of := fieldDescriptor.ContainingOneof(); of != nil && !of.IsSynthetic() { + if f := msgValue.WhichOneof(of); f != nil { + if fieldDescriptor.Message() == nil || fieldDescriptor.FullName() != f.FullName() { + return fmt.Errorf("field already set for oneof %q", of.FullName().Name()) + } + } + } + // If this is the last element, we're done if i == len(fieldPath)-1 { break @@ -140,13 +149,6 @@ func populateFieldValueFromPath(msgValue protoreflect.Message, fieldPath []strin msgValue = msgValue.Mutable(fieldDescriptor).Message() } - // Check if oneof already set - if of := fieldDescriptor.ContainingOneof(); of != nil && !of.IsSynthetic() { - if f := msgValue.WhichOneof(of); f != nil { - return fmt.Errorf("field already set for oneof %q", of.FullName().Name()) - } - } - switch { case fieldDescriptor.IsList(): return populateRepeatedField(fieldDescriptor, msgValue.Mutable(fieldDescriptor).List(), values) diff --git a/vendor/github.com/klauspost/compress/README.md b/vendor/github.com/klauspost/compress/README.md index de264c85..244ee19c 100644 --- a/vendor/github.com/klauspost/compress/README.md +++ b/vendor/github.com/klauspost/compress/README.md @@ -14,8 +14,34 @@ This package provides various compression algorithms. [![Go](https://github.com/klauspost/compress/actions/workflows/go.yml/badge.svg)](https://github.com/klauspost/compress/actions/workflows/go.yml) [![Sourcegraph Badge](https://sourcegraph.com/github.com/klauspost/compress/-/badge.svg)](https://sourcegraph.com/github.com/klauspost/compress?badge) +# package usage + +Use `go get github.com/klauspost/compress@latest` to add it to your project. + +This package will support the current Go version and 2 versions back. + +* Use the `nounsafe` tag to disable all use of the "unsafe" package. +* Use the `noasm` tag to disable all assembly across packages. + +Use the links above for more information on each. + # changelog +* Feb 19th, 2025 - [1.18.0](https://github.com/klauspost/compress/releases/tag/v1.18.0) + * Add unsafe little endian loaders https://github.com/klauspost/compress/pull/1036 + * fix: check `r.err != nil` but return a nil value error `err` by @alingse in https://github.com/klauspost/compress/pull/1028 + * flate: Simplify L4-6 loading https://github.com/klauspost/compress/pull/1043 + * flate: Simplify matchlen (remove asm) https://github.com/klauspost/compress/pull/1045 + * s2: Improve small block compression speed w/o asm https://github.com/klauspost/compress/pull/1048 + * flate: Fix matchlen L5+L6 https://github.com/klauspost/compress/pull/1049 + * flate: Cleanup & reduce casts https://github.com/klauspost/compress/pull/1050 + +* Oct 11th, 2024 - [1.17.11](https://github.com/klauspost/compress/releases/tag/v1.17.11) + * zstd: Fix extra CRC written with multiple Close calls https://github.com/klauspost/compress/pull/1017 + * s2: Don't use stack for index tables https://github.com/klauspost/compress/pull/1014 + * gzhttp: No content-type on no body response code by @juliens in https://github.com/klauspost/compress/pull/1011 + * gzhttp: Do not set the content-type when response has no body by @kevinpollet in https://github.com/klauspost/compress/pull/1013 + * Sep 23rd, 2024 - [1.17.10](https://github.com/klauspost/compress/releases/tag/v1.17.10) * gzhttp: Add TransportAlwaysDecompress option. https://github.com/klauspost/compress/pull/978 * gzhttp: Add supported decompress request body by @mirecl in https://github.com/klauspost/compress/pull/1002 @@ -65,9 +91,9 @@ https://github.com/klauspost/compress/pull/919 https://github.com/klauspost/comp * zstd: Fix rare *CORRUPTION* output in "best" mode. See https://github.com/klauspost/compress/pull/876 * Oct 14th, 2023 - [v1.17.1](https://github.com/klauspost/compress/releases/tag/v1.17.1) - * s2: Fix S2 "best" dictionary wrong encoding by @klauspost in https://github.com/klauspost/compress/pull/871 + * s2: Fix S2 "best" dictionary wrong encoding https://github.com/klauspost/compress/pull/871 * flate: Reduce allocations in decompressor and minor code improvements by @fakefloordiv in https://github.com/klauspost/compress/pull/869 - * s2: Fix EstimateBlockSize on 6&7 length input by @klauspost in https://github.com/klauspost/compress/pull/867 + * s2: Fix EstimateBlockSize on 6&7 length input https://github.com/klauspost/compress/pull/867 * Sept 19th, 2023 - [v1.17.0](https://github.com/klauspost/compress/releases/tag/v1.17.0) * Add experimental dictionary builder https://github.com/klauspost/compress/pull/853 @@ -124,7 +150,7 @@ https://github.com/klauspost/compress/pull/919 https://github.com/klauspost/comp See changes to v1.15.x * Jan 21st, 2023 (v1.15.15) - * deflate: Improve level 7-9 by @klauspost in https://github.com/klauspost/compress/pull/739 + * deflate: Improve level 7-9 https://github.com/klauspost/compress/pull/739 * zstd: Add delta encoding support by @greatroar in https://github.com/klauspost/compress/pull/728 * zstd: Various speed improvements by @greatroar https://github.com/klauspost/compress/pull/741 https://github.com/klauspost/compress/pull/734 https://github.com/klauspost/compress/pull/736 https://github.com/klauspost/compress/pull/744 https://github.com/klauspost/compress/pull/743 https://github.com/klauspost/compress/pull/745 * gzhttp: Add SuffixETag() and DropETag() options to prevent ETag collisions on compressed responses by @willbicks in https://github.com/klauspost/compress/pull/740 @@ -167,7 +193,7 @@ https://github.com/klauspost/compress/pull/919 https://github.com/klauspost/comp * zstd: Fix decoder crash on amd64 (no BMI) on invalid input https://github.com/klauspost/compress/pull/645 * zstd: Disable decoder extended memory copies (amd64) due to possible crashes https://github.com/klauspost/compress/pull/644 - * zstd: Allow single segments up to "max decoded size" by @klauspost in https://github.com/klauspost/compress/pull/643 + * zstd: Allow single segments up to "max decoded size" https://github.com/klauspost/compress/pull/643 * July 13, 2022 (v1.15.8) @@ -209,7 +235,7 @@ https://github.com/klauspost/compress/pull/919 https://github.com/klauspost/comp * zstd: Speed up when WithDecoderLowmem(false) https://github.com/klauspost/compress/pull/599 * zstd: faster next state update in BMI2 version of decode by @WojciechMula in https://github.com/klauspost/compress/pull/593 * huff0: Do not check max size when reading table. https://github.com/klauspost/compress/pull/586 - * flate: Inplace hashing for level 7-9 by @klauspost in https://github.com/klauspost/compress/pull/590 + * flate: Inplace hashing for level 7-9 https://github.com/klauspost/compress/pull/590 * May 11, 2022 (v1.15.4) @@ -236,12 +262,12 @@ https://github.com/klauspost/compress/pull/919 https://github.com/klauspost/comp * zstd: Add stricter block size checks in [#523](https://github.com/klauspost/compress/pull/523) * Mar 3, 2022 (v1.15.0) - * zstd: Refactor decoder by @klauspost in [#498](https://github.com/klauspost/compress/pull/498) - * zstd: Add stream encoding without goroutines by @klauspost in [#505](https://github.com/klauspost/compress/pull/505) + * zstd: Refactor decoder [#498](https://github.com/klauspost/compress/pull/498) + * zstd: Add stream encoding without goroutines [#505](https://github.com/klauspost/compress/pull/505) * huff0: Prevent single blocks exceeding 16 bits by @klauspost in[#507](https://github.com/klauspost/compress/pull/507) - * flate: Inline literal emission by @klauspost in [#509](https://github.com/klauspost/compress/pull/509) - * gzhttp: Add zstd to transport by @klauspost in [#400](https://github.com/klauspost/compress/pull/400) - * gzhttp: Make content-type optional by @klauspost in [#510](https://github.com/klauspost/compress/pull/510) + * flate: Inline literal emission [#509](https://github.com/klauspost/compress/pull/509) + * gzhttp: Add zstd to transport [#400](https://github.com/klauspost/compress/pull/400) + * gzhttp: Make content-type optional [#510](https://github.com/klauspost/compress/pull/510) Both compression and decompression now supports "synchronous" stream operations. This means that whenever "concurrency" is set to 1, they will operate without spawning goroutines. @@ -258,7 +284,7 @@ While the release has been extensively tested, it is recommended to testing when * flate: Fix rare huffman only (-2) corruption. [#503](https://github.com/klauspost/compress/pull/503) * zip: Update deprecated CreateHeaderRaw to correctly call CreateRaw by @saracen in [#502](https://github.com/klauspost/compress/pull/502) * zip: don't read data descriptor early by @saracen in [#501](https://github.com/klauspost/compress/pull/501) #501 - * huff0: Use static decompression buffer up to 30% faster by @klauspost in [#499](https://github.com/klauspost/compress/pull/499) [#500](https://github.com/klauspost/compress/pull/500) + * huff0: Use static decompression buffer up to 30% faster [#499](https://github.com/klauspost/compress/pull/499) [#500](https://github.com/klauspost/compress/pull/500) * Feb 17, 2022 (v1.14.3) * flate: Improve fastest levels compression speed ~10% more throughput. [#482](https://github.com/klauspost/compress/pull/482) [#489](https://github.com/klauspost/compress/pull/489) [#490](https://github.com/klauspost/compress/pull/490) [#491](https://github.com/klauspost/compress/pull/491) [#494](https://github.com/klauspost/compress/pull/494) [#478](https://github.com/klauspost/compress/pull/478) @@ -565,12 +591,14 @@ While the release has been extensively tested, it is recommended to testing when The packages are drop-in replacements for standard libraries. Simply replace the import path to use them: -| old import | new import | Documentation -|--------------------|-----------------------------------------|--------------------| -| `compress/gzip` | `github.com/klauspost/compress/gzip` | [gzip](https://pkg.go.dev/github.com/klauspost/compress/gzip?tab=doc) -| `compress/zlib` | `github.com/klauspost/compress/zlib` | [zlib](https://pkg.go.dev/github.com/klauspost/compress/zlib?tab=doc) -| `archive/zip` | `github.com/klauspost/compress/zip` | [zip](https://pkg.go.dev/github.com/klauspost/compress/zip?tab=doc) -| `compress/flate` | `github.com/klauspost/compress/flate` | [flate](https://pkg.go.dev/github.com/klauspost/compress/flate?tab=doc) +Typical speed is about 2x of the standard library packages. + +| old import | new import | Documentation | +|------------------|---------------------------------------|-------------------------------------------------------------------------| +| `compress/gzip` | `github.com/klauspost/compress/gzip` | [gzip](https://pkg.go.dev/github.com/klauspost/compress/gzip?tab=doc) | +| `compress/zlib` | `github.com/klauspost/compress/zlib` | [zlib](https://pkg.go.dev/github.com/klauspost/compress/zlib?tab=doc) | +| `archive/zip` | `github.com/klauspost/compress/zip` | [zip](https://pkg.go.dev/github.com/klauspost/compress/zip?tab=doc) | +| `compress/flate` | `github.com/klauspost/compress/flate` | [flate](https://pkg.go.dev/github.com/klauspost/compress/flate?tab=doc) | * Optimized [deflate](https://godoc.org/github.com/klauspost/compress/flate) packages which can be used as a dropin replacement for [gzip](https://godoc.org/github.com/klauspost/compress/gzip), [zip](https://godoc.org/github.com/klauspost/compress/zip) and [zlib](https://godoc.org/github.com/klauspost/compress/zlib). @@ -625,84 +653,6 @@ This will only use up to 4KB in memory when the writer is idle. Compression is almost always worse than the fastest compression level and each write will allocate (a little) memory. -# Performance Update 2018 - -It has been a while since we have been looking at the speed of this package compared to the standard library, so I thought I would re-do my tests and give some overall recommendations based on the current state. All benchmarks have been performed with Go 1.10 on my Desktop Intel(R) Core(TM) i7-2600 CPU @3.40GHz. Since I last ran the tests, I have gotten more RAM, which means tests with big files are no longer limited by my SSD. - -The raw results are in my [updated spreadsheet](https://docs.google.com/spreadsheets/d/1nuNE2nPfuINCZJRMt6wFWhKpToF95I47XjSsc-1rbPQ/edit?usp=sharing). Due to cgo changes and upstream updates i could not get the cgo version of gzip to compile. Instead I included the [zstd](https://github.com/datadog/zstd) cgo implementation. If I get cgo gzip to work again, I might replace the results in the sheet. - -The columns to take note of are: *MB/s* - the throughput. *Reduction* - the data size reduction in percent of the original. *Rel Speed* relative speed compared to the standard library at the same level. *Smaller* - how many percent smaller is the compressed output compared to stdlib. Negative means the output was bigger. *Loss* means the loss (or gain) in compression as a percentage difference of the input. - -The `gzstd` (standard library gzip) and `gzkp` (this package gzip) only uses one CPU core. [`pgzip`](https://github.com/klauspost/pgzip), [`bgzf`](https://github.com/biogo/hts/tree/master/bgzf) uses all 4 cores. [`zstd`](https://github.com/DataDog/zstd) uses one core, and is a beast (but not Go, yet). - - -## Overall differences. - -There appears to be a roughly 5-10% speed advantage over the standard library when comparing at similar compression levels. - -The biggest difference you will see is the result of [re-balancing](https://blog.klauspost.com/rebalancing-deflate-compression-levels/) the compression levels. I wanted by library to give a smoother transition between the compression levels than the standard library. - -This package attempts to provide a more smooth transition, where "1" is taking a lot of shortcuts, "5" is the reasonable trade-off and "9" is the "give me the best compression", and the values in between gives something reasonable in between. The standard library has big differences in levels 1-4, but levels 5-9 having no significant gains - often spending a lot more time than can be justified by the achieved compression. - -There are links to all the test data in the [spreadsheet](https://docs.google.com/spreadsheets/d/1nuNE2nPfuINCZJRMt6wFWhKpToF95I47XjSsc-1rbPQ/edit?usp=sharing) in the top left field on each tab. - -## Web Content - -This test set aims to emulate typical use in a web server. The test-set is 4GB data in 53k files, and is a mixture of (mostly) HTML, JS, CSS. - -Since level 1 and 9 are close to being the same code, they are quite close. But looking at the levels in-between the differences are quite big. - -Looking at level 6, this package is 88% faster, but will output about 6% more data. For a web server, this means you can serve 88% more data, but have to pay for 6% more bandwidth. You can draw your own conclusions on what would be the most expensive for your case. - -## Object files - -This test is for typical data files stored on a server. In this case it is a collection of Go precompiled objects. They are very compressible. - -The picture is similar to the web content, but with small differences since this is very compressible. Levels 2-3 offer good speed, but is sacrificing quite a bit of compression. - -The standard library seems suboptimal on level 3 and 4 - offering both worse compression and speed than level 6 & 7 of this package respectively. - -## Highly Compressible File - -This is a JSON file with very high redundancy. The reduction starts at 95% on level 1, so in real life terms we are dealing with something like a highly redundant stream of data, etc. - -It is definitely visible that we are dealing with specialized content here, so the results are very scattered. This package does not do very well at levels 1-4, but picks up significantly at level 5 and levels 7 and 8 offering great speed for the achieved compression. - -So if you know you content is extremely compressible you might want to go slightly higher than the defaults. The standard library has a huge gap between levels 3 and 4 in terms of speed (2.75x slowdown), so it offers little "middle ground". - -## Medium-High Compressible - -This is a pretty common test corpus: [enwik9](http://mattmahoney.net/dc/textdata.html). It contains the first 10^9 bytes of the English Wikipedia dump on Mar. 3, 2006. This is a very good test of typical text based compression and more data heavy streams. - -We see a similar picture here as in "Web Content". On equal levels some compression is sacrificed for more speed. Level 5 seems to be the best trade-off between speed and size, beating stdlib level 3 in both. - -## Medium Compressible - -I will combine two test sets, one [10GB file set](http://mattmahoney.net/dc/10gb.html) and a VM disk image (~8GB). Both contain different data types and represent a typical backup scenario. - -The most notable thing is how quickly the standard library drops to very low compression speeds around level 5-6 without any big gains in compression. Since this type of data is fairly common, this does not seem like good behavior. - - -## Un-compressible Content - -This is mainly a test of how good the algorithms are at detecting un-compressible input. The standard library only offers this feature with very conservative settings at level 1. Obviously there is no reason for the algorithms to try to compress input that cannot be compressed. The only downside is that it might skip some compressible data on false detections. - - -## Huffman only compression - -This compression library adds a special compression level, named `HuffmanOnly`, which allows near linear time compression. This is done by completely disabling matching of previous data, and only reduce the number of bits to represent each character. - -This means that often used characters, like 'e' and ' ' (space) in text use the fewest bits to represent, and rare characters like '¤' takes more bits to represent. For more information see [wikipedia](https://en.wikipedia.org/wiki/Huffman_coding) or this nice [video](https://youtu.be/ZdooBTdW5bM). - -Since this type of compression has much less variance, the compression speed is mostly unaffected by the input data, and is usually more than *180MB/s* for a single core. - -The downside is that the compression ratio is usually considerably worse than even the fastest conventional compression. The compression ratio can never be better than 8:1 (12.5%). - -The linear time compression can be used as a "better than nothing" mode, where you cannot risk the encoder to slow down on some content. For comparison, the size of the "Twain" text is *233460 bytes* (+29% vs. level 1) and encode speed is 144MB/s (4.5x level 1). So in this case you trade a 30% size increase for a 4 times speedup. - -For more information see my blog post on [Fast Linear Time Compression](http://blog.klauspost.com/constant-time-gzipzip-compression/). - -This is implemented on Go 1.7 as "Huffman Only" mode, though not exposed for gzip. # Other packages diff --git a/vendor/github.com/klauspost/compress/huff0/bitreader.go b/vendor/github.com/klauspost/compress/huff0/bitreader.go index e36d9742..bfc7a523 100644 --- a/vendor/github.com/klauspost/compress/huff0/bitreader.go +++ b/vendor/github.com/klauspost/compress/huff0/bitreader.go @@ -6,10 +6,11 @@ package huff0 import ( - "encoding/binary" "errors" "fmt" "io" + + "github.com/klauspost/compress/internal/le" ) // bitReader reads a bitstream in reverse. @@ -46,7 +47,7 @@ func (b *bitReaderBytes) init(in []byte) error { return nil } -// peekBitsFast requires that at least one bit is requested every time. +// peekByteFast requires that at least one byte is requested every time. // There are no checks if the buffer is filled. func (b *bitReaderBytes) peekByteFast() uint8 { got := uint8(b.value >> 56) @@ -66,8 +67,7 @@ func (b *bitReaderBytes) fillFast() { } // 2 bounds checks. - v := b.in[b.off-4 : b.off] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + low := le.Load32(b.in, b.off-4) b.value |= uint64(low) << (b.bitsRead - 32) b.bitsRead -= 32 b.off -= 4 @@ -76,7 +76,7 @@ func (b *bitReaderBytes) fillFast() { // fillFastStart() assumes the bitReaderBytes is empty and there is at least 8 bytes to read. func (b *bitReaderBytes) fillFastStart() { // Do single re-slice to avoid bounds checks. - b.value = binary.LittleEndian.Uint64(b.in[b.off-8:]) + b.value = le.Load64(b.in, b.off-8) b.bitsRead = 0 b.off -= 8 } @@ -86,9 +86,8 @@ func (b *bitReaderBytes) fill() { if b.bitsRead < 32 { return } - if b.off > 4 { - v := b.in[b.off-4 : b.off] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + if b.off >= 4 { + low := le.Load32(b.in, b.off-4) b.value |= uint64(low) << (b.bitsRead - 32) b.bitsRead -= 32 b.off -= 4 @@ -175,9 +174,7 @@ func (b *bitReaderShifted) fillFast() { return } - // 2 bounds checks. - v := b.in[b.off-4 : b.off] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + low := le.Load32(b.in, b.off-4) b.value |= uint64(low) << ((b.bitsRead - 32) & 63) b.bitsRead -= 32 b.off -= 4 @@ -185,8 +182,7 @@ func (b *bitReaderShifted) fillFast() { // fillFastStart() assumes the bitReaderShifted is empty and there is at least 8 bytes to read. func (b *bitReaderShifted) fillFastStart() { - // Do single re-slice to avoid bounds checks. - b.value = binary.LittleEndian.Uint64(b.in[b.off-8:]) + b.value = le.Load64(b.in, b.off-8) b.bitsRead = 0 b.off -= 8 } @@ -197,8 +193,7 @@ func (b *bitReaderShifted) fill() { return } if b.off > 4 { - v := b.in[b.off-4 : b.off] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) + low := le.Load32(b.in, b.off-4) b.value |= uint64(low) << ((b.bitsRead - 32) & 63) b.bitsRead -= 32 b.off -= 4 diff --git a/vendor/github.com/klauspost/compress/internal/le/le.go b/vendor/github.com/klauspost/compress/internal/le/le.go new file mode 100644 index 00000000..e54909e1 --- /dev/null +++ b/vendor/github.com/klauspost/compress/internal/le/le.go @@ -0,0 +1,5 @@ +package le + +type Indexer interface { + int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 +} diff --git a/vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go b/vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go new file mode 100644 index 00000000..0cfb5c0e --- /dev/null +++ b/vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go @@ -0,0 +1,42 @@ +//go:build !(amd64 || arm64 || ppc64le || riscv64) || nounsafe || purego || appengine + +package le + +import ( + "encoding/binary" +) + +// Load8 will load from b at index i. +func Load8[I Indexer](b []byte, i I) byte { + return b[i] +} + +// Load16 will load from b at index i. +func Load16[I Indexer](b []byte, i I) uint16 { + return binary.LittleEndian.Uint16(b[i:]) +} + +// Load32 will load from b at index i. +func Load32[I Indexer](b []byte, i I) uint32 { + return binary.LittleEndian.Uint32(b[i:]) +} + +// Load64 will load from b at index i. +func Load64[I Indexer](b []byte, i I) uint64 { + return binary.LittleEndian.Uint64(b[i:]) +} + +// Store16 will store v at b. +func Store16(b []byte, v uint16) { + binary.LittleEndian.PutUint16(b, v) +} + +// Store32 will store v at b. +func Store32(b []byte, v uint32) { + binary.LittleEndian.PutUint32(b, v) +} + +// Store64 will store v at b. +func Store64(b []byte, v uint64) { + binary.LittleEndian.PutUint64(b, v) +} diff --git a/vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go b/vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go new file mode 100644 index 00000000..ada45cd9 --- /dev/null +++ b/vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go @@ -0,0 +1,55 @@ +// We enable 64 bit LE platforms: + +//go:build (amd64 || arm64 || ppc64le || riscv64) && !nounsafe && !purego && !appengine + +package le + +import ( + "unsafe" +) + +// Load8 will load from b at index i. +func Load8[I Indexer](b []byte, i I) byte { + //return binary.LittleEndian.Uint16(b[i:]) + //return *(*uint16)(unsafe.Pointer(&b[i])) + return *(*byte)(unsafe.Add(unsafe.Pointer(unsafe.SliceData(b)), i)) +} + +// Load16 will load from b at index i. +func Load16[I Indexer](b []byte, i I) uint16 { + //return binary.LittleEndian.Uint16(b[i:]) + //return *(*uint16)(unsafe.Pointer(&b[i])) + return *(*uint16)(unsafe.Add(unsafe.Pointer(unsafe.SliceData(b)), i)) +} + +// Load32 will load from b at index i. +func Load32[I Indexer](b []byte, i I) uint32 { + //return binary.LittleEndian.Uint32(b[i:]) + //return *(*uint32)(unsafe.Pointer(&b[i])) + return *(*uint32)(unsafe.Add(unsafe.Pointer(unsafe.SliceData(b)), i)) +} + +// Load64 will load from b at index i. +func Load64[I Indexer](b []byte, i I) uint64 { + //return binary.LittleEndian.Uint64(b[i:]) + //return *(*uint64)(unsafe.Pointer(&b[i])) + return *(*uint64)(unsafe.Add(unsafe.Pointer(unsafe.SliceData(b)), i)) +} + +// Store16 will store v at b. +func Store16(b []byte, v uint16) { + //binary.LittleEndian.PutUint16(b, v) + *(*uint16)(unsafe.Pointer(unsafe.SliceData(b))) = v +} + +// Store32 will store v at b. +func Store32(b []byte, v uint32) { + //binary.LittleEndian.PutUint32(b, v) + *(*uint32)(unsafe.Pointer(unsafe.SliceData(b))) = v +} + +// Store64 will store v at b. +func Store64(b []byte, v uint64) { + //binary.LittleEndian.PutUint64(b, v) + *(*uint64)(unsafe.Pointer(unsafe.SliceData(b))) = v +} diff --git a/vendor/github.com/klauspost/compress/s2sx.mod b/vendor/github.com/klauspost/compress/s2sx.mod index 5a4412f9..81bda5e2 100644 --- a/vendor/github.com/klauspost/compress/s2sx.mod +++ b/vendor/github.com/klauspost/compress/s2sx.mod @@ -1,4 +1,3 @@ module github.com/klauspost/compress -go 1.19 - +go 1.22 diff --git a/vendor/github.com/klauspost/compress/zstd/README.md b/vendor/github.com/klauspost/compress/zstd/README.md index 92e2347b..c11d7fa2 100644 --- a/vendor/github.com/klauspost/compress/zstd/README.md +++ b/vendor/github.com/klauspost/compress/zstd/README.md @@ -6,7 +6,7 @@ A high performance compression algorithm is implemented. For now focused on spee This package provides [compression](#Compressor) to and [decompression](#Decompressor) of Zstandard content. -This package is pure Go and without use of "unsafe". +This package is pure Go. Use `noasm` and `nounsafe` to disable relevant features. The `zstd` package is provided as open source software using a Go standard license. diff --git a/vendor/github.com/klauspost/compress/zstd/bitreader.go b/vendor/github.com/klauspost/compress/zstd/bitreader.go index 25ca9839..d41e3e17 100644 --- a/vendor/github.com/klauspost/compress/zstd/bitreader.go +++ b/vendor/github.com/klauspost/compress/zstd/bitreader.go @@ -5,11 +5,12 @@ package zstd import ( - "encoding/binary" "errors" "fmt" "io" "math/bits" + + "github.com/klauspost/compress/internal/le" ) // bitReader reads a bitstream in reverse. @@ -18,6 +19,7 @@ import ( type bitReader struct { in []byte value uint64 // Maybe use [16]byte, but shifting is awkward. + cursor int // offset where next read should end bitsRead uint8 } @@ -32,6 +34,7 @@ func (b *bitReader) init(in []byte) error { if v == 0 { return errors.New("corrupt stream, did not find end of stream") } + b.cursor = len(in) b.bitsRead = 64 b.value = 0 if len(in) >= 8 { @@ -67,18 +70,15 @@ func (b *bitReader) fillFast() { if b.bitsRead < 32 { return } - v := b.in[len(b.in)-4:] - b.in = b.in[:len(b.in)-4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value = (b.value << 32) | uint64(low) + b.cursor -= 4 + b.value = (b.value << 32) | uint64(le.Load32(b.in, b.cursor)) b.bitsRead -= 32 } // fillFastStart() assumes the bitreader is empty and there is at least 8 bytes to read. func (b *bitReader) fillFastStart() { - v := b.in[len(b.in)-8:] - b.in = b.in[:len(b.in)-8] - b.value = binary.LittleEndian.Uint64(v) + b.cursor -= 8 + b.value = le.Load64(b.in, b.cursor) b.bitsRead = 0 } @@ -87,25 +87,23 @@ func (b *bitReader) fill() { if b.bitsRead < 32 { return } - if len(b.in) >= 4 { - v := b.in[len(b.in)-4:] - b.in = b.in[:len(b.in)-4] - low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) - b.value = (b.value << 32) | uint64(low) + if b.cursor >= 4 { + b.cursor -= 4 + b.value = (b.value << 32) | uint64(le.Load32(b.in, b.cursor)) b.bitsRead -= 32 return } - b.bitsRead -= uint8(8 * len(b.in)) - for len(b.in) > 0 { - b.value = (b.value << 8) | uint64(b.in[len(b.in)-1]) - b.in = b.in[:len(b.in)-1] + b.bitsRead -= uint8(8 * b.cursor) + for b.cursor > 0 { + b.cursor -= 1 + b.value = (b.value << 8) | uint64(b.in[b.cursor]) } } // finished returns true if all bits have been read from the bit stream. func (b *bitReader) finished() bool { - return len(b.in) == 0 && b.bitsRead >= 64 + return b.cursor == 0 && b.bitsRead >= 64 } // overread returns true if more bits have been requested than is on the stream. @@ -115,13 +113,14 @@ func (b *bitReader) overread() bool { // remain returns the number of bits remaining. func (b *bitReader) remain() uint { - return 8*uint(len(b.in)) + 64 - uint(b.bitsRead) + return 8*uint(b.cursor) + 64 - uint(b.bitsRead) } // close the bitstream and returns an error if out-of-buffer reads occurred. func (b *bitReader) close() error { // Release reference. b.in = nil + b.cursor = 0 if !b.finished() { return fmt.Errorf("%d extra bits on block, should be 0", b.remain()) } diff --git a/vendor/github.com/klauspost/compress/zstd/blockdec.go b/vendor/github.com/klauspost/compress/zstd/blockdec.go index 9c28840c..0dd742fd 100644 --- a/vendor/github.com/klauspost/compress/zstd/blockdec.go +++ b/vendor/github.com/klauspost/compress/zstd/blockdec.go @@ -5,14 +5,10 @@ package zstd import ( - "bytes" - "encoding/binary" "errors" "fmt" "hash/crc32" "io" - "os" - "path/filepath" "sync" "github.com/klauspost/compress/huff0" @@ -648,21 +644,6 @@ func (b *blockDec) prepareSequences(in []byte, hist *history) (err error) { println("initializing sequences:", err) return err } - // Extract blocks... - if false && hist.dict == nil { - fatalErr := func(err error) { - if err != nil { - panic(err) - } - } - fn := fmt.Sprintf("n-%d-lits-%d-prev-%d-%d-%d-win-%d.blk", hist.decoders.nSeqs, len(hist.decoders.literals), hist.recentOffsets[0], hist.recentOffsets[1], hist.recentOffsets[2], hist.windowSize) - var buf bytes.Buffer - fatalErr(binary.Write(&buf, binary.LittleEndian, hist.decoders.litLengths.fse)) - fatalErr(binary.Write(&buf, binary.LittleEndian, hist.decoders.matchLengths.fse)) - fatalErr(binary.Write(&buf, binary.LittleEndian, hist.decoders.offsets.fse)) - buf.Write(in) - os.WriteFile(filepath.Join("testdata", "seqs", fn), buf.Bytes(), os.ModePerm) - } return nil } diff --git a/vendor/github.com/klauspost/compress/zstd/blockenc.go b/vendor/github.com/klauspost/compress/zstd/blockenc.go index 32a7f401..fd35ea14 100644 --- a/vendor/github.com/klauspost/compress/zstd/blockenc.go +++ b/vendor/github.com/klauspost/compress/zstd/blockenc.go @@ -9,6 +9,7 @@ import ( "fmt" "math" "math/bits" + "slices" "github.com/klauspost/compress/huff0" ) @@ -457,16 +458,7 @@ func fuzzFseEncoder(data []byte) int { // All 0 return 0 } - maxCount := func(a []uint32) int { - var max uint32 - for _, v := range a { - if v > max { - max = v - } - } - return int(max) - } - cnt := maxCount(hist[:maxSym]) + cnt := int(slices.Max(hist[:maxSym])) if cnt == len(data) { // RLE return 0 @@ -884,15 +876,6 @@ func (b *blockEnc) genCodes() { } } } - maxCount := func(a []uint32) int { - var max uint32 - for _, v := range a { - if v > max { - max = v - } - } - return int(max) - } if debugAsserts && mlMax > maxMatchLengthSymbol { panic(fmt.Errorf("mlMax > maxMatchLengthSymbol (%d)", mlMax)) } @@ -903,7 +886,7 @@ func (b *blockEnc) genCodes() { panic(fmt.Errorf("llMax > maxLiteralLengthSymbol (%d)", llMax)) } - b.coders.mlEnc.HistogramFinished(mlMax, maxCount(mlH[:mlMax+1])) - b.coders.ofEnc.HistogramFinished(ofMax, maxCount(ofH[:ofMax+1])) - b.coders.llEnc.HistogramFinished(llMax, maxCount(llH[:llMax+1])) + b.coders.mlEnc.HistogramFinished(mlMax, int(slices.Max(mlH[:mlMax+1]))) + b.coders.ofEnc.HistogramFinished(ofMax, int(slices.Max(ofH[:ofMax+1]))) + b.coders.llEnc.HistogramFinished(llMax, int(slices.Max(llH[:llMax+1]))) } diff --git a/vendor/github.com/klauspost/compress/zstd/decoder.go b/vendor/github.com/klauspost/compress/zstd/decoder.go index bbca1723..ea2a1937 100644 --- a/vendor/github.com/klauspost/compress/zstd/decoder.go +++ b/vendor/github.com/klauspost/compress/zstd/decoder.go @@ -123,7 +123,7 @@ func NewReader(r io.Reader, opts ...DOption) (*Decoder, error) { } // Read bytes from the decompressed stream into p. -// Returns the number of bytes written and any error that occurred. +// Returns the number of bytes read and any error that occurred. // When the stream is done, io.EOF will be returned. func (d *Decoder) Read(p []byte) (int, error) { var n int @@ -323,6 +323,7 @@ func (d *Decoder) DecodeAll(input, dst []byte) ([]byte, error) { frame.bBuf = nil if frame.history.decoders.br != nil { frame.history.decoders.br.in = nil + frame.history.decoders.br.cursor = 0 } d.decoders <- block }() diff --git a/vendor/github.com/klauspost/compress/zstd/enc_base.go b/vendor/github.com/klauspost/compress/zstd/enc_base.go index 5ca46038..7d250c67 100644 --- a/vendor/github.com/klauspost/compress/zstd/enc_base.go +++ b/vendor/github.com/klauspost/compress/zstd/enc_base.go @@ -116,7 +116,7 @@ func (e *fastBase) matchlen(s, t int32, src []byte) int32 { panic(err) } if t < 0 { - err := fmt.Sprintf("s (%d) < 0", s) + err := fmt.Sprintf("t (%d) < 0", t) panic(err) } if s-t > e.maxMatchOff { diff --git a/vendor/github.com/klauspost/compress/zstd/matchlen_generic.go b/vendor/github.com/klauspost/compress/zstd/matchlen_generic.go index 57b9c31c..bea1779e 100644 --- a/vendor/github.com/klauspost/compress/zstd/matchlen_generic.go +++ b/vendor/github.com/klauspost/compress/zstd/matchlen_generic.go @@ -7,20 +7,25 @@ package zstd import ( - "encoding/binary" "math/bits" + + "github.com/klauspost/compress/internal/le" ) // matchLen returns the maximum common prefix length of a and b. // a must be the shortest of the two. func matchLen(a, b []byte) (n int) { - for ; len(a) >= 8 && len(b) >= 8; a, b = a[8:], b[8:] { - diff := binary.LittleEndian.Uint64(a) ^ binary.LittleEndian.Uint64(b) + left := len(a) + for left >= 8 { + diff := le.Load64(a, n) ^ le.Load64(b, n) if diff != 0 { return n + bits.TrailingZeros64(diff)>>3 } n += 8 + left -= 8 } + a = a[n:] + b = b[n:] for i := range a { if a[i] != b[i] { diff --git a/vendor/github.com/klauspost/compress/zstd/seqdec.go b/vendor/github.com/klauspost/compress/zstd/seqdec.go index d7fe6d82..9a7de82f 100644 --- a/vendor/github.com/klauspost/compress/zstd/seqdec.go +++ b/vendor/github.com/klauspost/compress/zstd/seqdec.go @@ -245,7 +245,7 @@ func (s *sequenceDecs) decodeSync(hist []byte) error { return io.ErrUnexpectedEOF } var ll, mo, ml int - if len(br.in) > 4+((maxOffsetBits+16+16)>>3) { + if br.cursor > 4+((maxOffsetBits+16+16)>>3) { // inlined function: // ll, mo, ml = s.nextFast(br, llState, mlState, ofState) diff --git a/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s b/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s index f5591fa1..a708ca6d 100644 --- a/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s +++ b/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s @@ -7,9 +7,9 @@ TEXT ·sequenceDecs_decode_amd64(SB), $8-32 MOVQ br+8(FP), CX MOVQ 24(CX), DX - MOVBQZX 32(CX), BX + MOVBQZX 40(CX), BX MOVQ (CX), AX - MOVQ 8(CX), SI + MOVQ 32(CX), SI ADDQ SI, AX MOVQ AX, (SP) MOVQ ctx+16(FP), AX @@ -299,8 +299,8 @@ sequenceDecs_decode_amd64_match_len_ofs_ok: MOVQ R13, 160(AX) MOVQ br+8(FP), AX MOVQ DX, 24(AX) - MOVB BL, 32(AX) - MOVQ SI, 8(AX) + MOVB BL, 40(AX) + MOVQ SI, 32(AX) // Return success MOVQ $0x00000000, ret+24(FP) @@ -335,9 +335,9 @@ error_overread: TEXT ·sequenceDecs_decode_56_amd64(SB), $8-32 MOVQ br+8(FP), CX MOVQ 24(CX), DX - MOVBQZX 32(CX), BX + MOVBQZX 40(CX), BX MOVQ (CX), AX - MOVQ 8(CX), SI + MOVQ 32(CX), SI ADDQ SI, AX MOVQ AX, (SP) MOVQ ctx+16(FP), AX @@ -598,8 +598,8 @@ sequenceDecs_decode_56_amd64_match_len_ofs_ok: MOVQ R13, 160(AX) MOVQ br+8(FP), AX MOVQ DX, 24(AX) - MOVB BL, 32(AX) - MOVQ SI, 8(AX) + MOVB BL, 40(AX) + MOVQ SI, 32(AX) // Return success MOVQ $0x00000000, ret+24(FP) @@ -634,9 +634,9 @@ error_overread: TEXT ·sequenceDecs_decode_bmi2(SB), $8-32 MOVQ br+8(FP), BX MOVQ 24(BX), AX - MOVBQZX 32(BX), DX + MOVBQZX 40(BX), DX MOVQ (BX), CX - MOVQ 8(BX), BX + MOVQ 32(BX), BX ADDQ BX, CX MOVQ CX, (SP) MOVQ ctx+16(FP), CX @@ -884,8 +884,8 @@ sequenceDecs_decode_bmi2_match_len_ofs_ok: MOVQ R12, 160(CX) MOVQ br+8(FP), CX MOVQ AX, 24(CX) - MOVB DL, 32(CX) - MOVQ BX, 8(CX) + MOVB DL, 40(CX) + MOVQ BX, 32(CX) // Return success MOVQ $0x00000000, ret+24(FP) @@ -920,9 +920,9 @@ error_overread: TEXT ·sequenceDecs_decode_56_bmi2(SB), $8-32 MOVQ br+8(FP), BX MOVQ 24(BX), AX - MOVBQZX 32(BX), DX + MOVBQZX 40(BX), DX MOVQ (BX), CX - MOVQ 8(BX), BX + MOVQ 32(BX), BX ADDQ BX, CX MOVQ CX, (SP) MOVQ ctx+16(FP), CX @@ -1141,8 +1141,8 @@ sequenceDecs_decode_56_bmi2_match_len_ofs_ok: MOVQ R12, 160(CX) MOVQ br+8(FP), CX MOVQ AX, 24(CX) - MOVB DL, 32(CX) - MOVQ BX, 8(CX) + MOVB DL, 40(CX) + MOVQ BX, 32(CX) // Return success MOVQ $0x00000000, ret+24(FP) @@ -1787,9 +1787,9 @@ empty_seqs: TEXT ·sequenceDecs_decodeSync_amd64(SB), $64-32 MOVQ br+8(FP), CX MOVQ 24(CX), DX - MOVBQZX 32(CX), BX + MOVBQZX 40(CX), BX MOVQ (CX), AX - MOVQ 8(CX), SI + MOVQ 32(CX), SI ADDQ SI, AX MOVQ AX, (SP) MOVQ ctx+16(FP), AX @@ -2281,8 +2281,8 @@ handle_loop: loop_finished: MOVQ br+8(FP), AX MOVQ DX, 24(AX) - MOVB BL, 32(AX) - MOVQ SI, 8(AX) + MOVB BL, 40(AX) + MOVQ SI, 32(AX) // Update the context MOVQ ctx+16(FP), AX @@ -2349,9 +2349,9 @@ error_not_enough_space: TEXT ·sequenceDecs_decodeSync_bmi2(SB), $64-32 MOVQ br+8(FP), BX MOVQ 24(BX), AX - MOVBQZX 32(BX), DX + MOVBQZX 40(BX), DX MOVQ (BX), CX - MOVQ 8(BX), BX + MOVQ 32(BX), BX ADDQ BX, CX MOVQ CX, (SP) MOVQ ctx+16(FP), CX @@ -2801,8 +2801,8 @@ handle_loop: loop_finished: MOVQ br+8(FP), CX MOVQ AX, 24(CX) - MOVB DL, 32(CX) - MOVQ BX, 8(CX) + MOVB DL, 40(CX) + MOVQ BX, 32(CX) // Update the context MOVQ ctx+16(FP), AX @@ -2869,9 +2869,9 @@ error_not_enough_space: TEXT ·sequenceDecs_decodeSync_safe_amd64(SB), $64-32 MOVQ br+8(FP), CX MOVQ 24(CX), DX - MOVBQZX 32(CX), BX + MOVBQZX 40(CX), BX MOVQ (CX), AX - MOVQ 8(CX), SI + MOVQ 32(CX), SI ADDQ SI, AX MOVQ AX, (SP) MOVQ ctx+16(FP), AX @@ -3465,8 +3465,8 @@ handle_loop: loop_finished: MOVQ br+8(FP), AX MOVQ DX, 24(AX) - MOVB BL, 32(AX) - MOVQ SI, 8(AX) + MOVB BL, 40(AX) + MOVQ SI, 32(AX) // Update the context MOVQ ctx+16(FP), AX @@ -3533,9 +3533,9 @@ error_not_enough_space: TEXT ·sequenceDecs_decodeSync_safe_bmi2(SB), $64-32 MOVQ br+8(FP), BX MOVQ 24(BX), AX - MOVBQZX 32(BX), DX + MOVBQZX 40(BX), DX MOVQ (BX), CX - MOVQ 8(BX), BX + MOVQ 32(BX), BX ADDQ BX, CX MOVQ CX, (SP) MOVQ ctx+16(FP), CX @@ -4087,8 +4087,8 @@ handle_loop: loop_finished: MOVQ br+8(FP), CX MOVQ AX, 24(CX) - MOVB DL, 32(CX) - MOVQ BX, 8(CX) + MOVB DL, 40(CX) + MOVQ BX, 32(CX) // Update the context MOVQ ctx+16(FP), AX diff --git a/vendor/github.com/klauspost/compress/zstd/seqdec_generic.go b/vendor/github.com/klauspost/compress/zstd/seqdec_generic.go index 2fb35b78..7cec2197 100644 --- a/vendor/github.com/klauspost/compress/zstd/seqdec_generic.go +++ b/vendor/github.com/klauspost/compress/zstd/seqdec_generic.go @@ -29,7 +29,7 @@ func (s *sequenceDecs) decode(seqs []seqVals) error { } for i := range seqs { var ll, mo, ml int - if len(br.in) > 4+((maxOffsetBits+16+16)>>3) { + if br.cursor > 4+((maxOffsetBits+16+16)>>3) { // inlined function: // ll, mo, ml = s.nextFast(br, llState, mlState, ofState) diff --git a/vendor/github.com/klauspost/compress/zstd/seqenc.go b/vendor/github.com/klauspost/compress/zstd/seqenc.go index 8014174a..65045eab 100644 --- a/vendor/github.com/klauspost/compress/zstd/seqenc.go +++ b/vendor/github.com/klauspost/compress/zstd/seqenc.go @@ -69,7 +69,6 @@ var llBitsTable = [maxLLCode + 1]byte{ func llCode(litLength uint32) uint8 { const llDeltaCode = 19 if litLength <= 63 { - // Compiler insists on bounds check (Go 1.12) return llCodeTable[litLength&63] } return uint8(highBit(litLength)) + llDeltaCode @@ -102,7 +101,6 @@ var mlBitsTable = [maxMLCode + 1]byte{ func mlCode(mlBase uint32) uint8 { const mlDeltaCode = 36 if mlBase <= 127 { - // Compiler insists on bounds check (Go 1.12) return mlCodeTable[mlBase&127] } return uint8(highBit(mlBase)) + mlDeltaCode diff --git a/vendor/github.com/klauspost/compress/zstd/snappy.go b/vendor/github.com/klauspost/compress/zstd/snappy.go index ec13594e..a17381b8 100644 --- a/vendor/github.com/klauspost/compress/zstd/snappy.go +++ b/vendor/github.com/klauspost/compress/zstd/snappy.go @@ -197,7 +197,7 @@ func (r *SnappyConverter) Convert(in io.Reader, w io.Writer) (int64, error) { n, r.err = w.Write(r.block.output) if r.err != nil { - return written, err + return written, r.err } written += int64(n) continue @@ -239,7 +239,7 @@ func (r *SnappyConverter) Convert(in io.Reader, w io.Writer) (int64, error) { } n, r.err = w.Write(r.block.output) if r.err != nil { - return written, err + return written, r.err } written += int64(n) continue diff --git a/vendor/github.com/klauspost/compress/zstd/zstd.go b/vendor/github.com/klauspost/compress/zstd/zstd.go index 066bef2a..6252b46a 100644 --- a/vendor/github.com/klauspost/compress/zstd/zstd.go +++ b/vendor/github.com/klauspost/compress/zstd/zstd.go @@ -5,10 +5,11 @@ package zstd import ( "bytes" - "encoding/binary" "errors" "log" "math" + + "github.com/klauspost/compress/internal/le" ) // enable debug printing @@ -110,11 +111,11 @@ func printf(format string, a ...interface{}) { } func load3232(b []byte, i int32) uint32 { - return binary.LittleEndian.Uint32(b[:len(b):len(b)][i:]) + return le.Load32(b, i) } func load6432(b []byte, i int32) uint64 { - return binary.LittleEndian.Uint64(b[:len(b):len(b)][i:]) + return le.Load64(b, i) } type byter interface { diff --git a/vendor/github.com/mattn/go-colorable/colorable_appengine.go b/vendor/github.com/mattn/go-colorable/colorable_appengine.go deleted file mode 100644 index 416d1bbb..00000000 --- a/vendor/github.com/mattn/go-colorable/colorable_appengine.go +++ /dev/null @@ -1,38 +0,0 @@ -//go:build appengine -// +build appengine - -package colorable - -import ( - "io" - "os" - - _ "github.com/mattn/go-isatty" -) - -// NewColorable returns new instance of Writer which handles escape sequence. -func NewColorable(file *os.File) io.Writer { - if file == nil { - panic("nil passed instead of *os.File to NewColorable()") - } - - return file -} - -// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout. -func NewColorableStdout() io.Writer { - return os.Stdout -} - -// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr. -func NewColorableStderr() io.Writer { - return os.Stderr -} - -// EnableColorsStdout enable colors if possible. -func EnableColorsStdout(enabled *bool) func() { - if enabled != nil { - *enabled = true - } - return func() {} -} diff --git a/vendor/github.com/mattn/go-colorable/colorable_others.go b/vendor/github.com/mattn/go-colorable/colorable_others.go index 766d9460..c1a78aa9 100644 --- a/vendor/github.com/mattn/go-colorable/colorable_others.go +++ b/vendor/github.com/mattn/go-colorable/colorable_others.go @@ -1,5 +1,5 @@ -//go:build !windows && !appengine -// +build !windows,!appengine +//go:build !windows || appengine +// +build !windows appengine package colorable diff --git a/vendor/github.com/mattn/go-colorable/colorable_windows.go b/vendor/github.com/mattn/go-colorable/colorable_windows.go index 1846ad5a..2df7b859 100644 --- a/vendor/github.com/mattn/go-colorable/colorable_windows.go +++ b/vendor/github.com/mattn/go-colorable/colorable_windows.go @@ -11,7 +11,7 @@ import ( "strconv" "strings" "sync" - "syscall" + syscall "golang.org/x/sys/windows" "unsafe" "github.com/mattn/go-isatty" @@ -73,7 +73,7 @@ type consoleCursorInfo struct { } var ( - kernel32 = syscall.NewLazyDLL("kernel32.dll") + kernel32 = syscall.NewLazySystemDLL("kernel32.dll") procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") procSetConsoleTextAttribute = kernel32.NewProc("SetConsoleTextAttribute") procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition") @@ -87,8 +87,8 @@ var ( procCreateConsoleScreenBuffer = kernel32.NewProc("CreateConsoleScreenBuffer") ) -// Writer provides colorable Writer to the console -type Writer struct { +// writer provides colorable Writer to the console +type writer struct { out io.Writer handle syscall.Handle althandle syscall.Handle @@ -98,7 +98,7 @@ type Writer struct { mutex sync.Mutex } -// NewColorable returns new instance of Writer which handles escape sequence from File. +// NewColorable returns new instance of writer which handles escape sequence from File. func NewColorable(file *os.File) io.Writer { if file == nil { panic("nil passed instead of *os.File to NewColorable()") @@ -112,17 +112,17 @@ func NewColorable(file *os.File) io.Writer { var csbi consoleScreenBufferInfo handle := syscall.Handle(file.Fd()) procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi))) - return &Writer{out: file, handle: handle, oldattr: csbi.attributes, oldpos: coord{0, 0}} + return &writer{out: file, handle: handle, oldattr: csbi.attributes, oldpos: coord{0, 0}} } return file } -// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout. +// NewColorableStdout returns new instance of writer which handles escape sequence for stdout. func NewColorableStdout() io.Writer { return NewColorable(os.Stdout) } -// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr. +// NewColorableStderr returns new instance of writer which handles escape sequence for stderr. func NewColorableStderr() io.Writer { return NewColorable(os.Stderr) } @@ -434,7 +434,7 @@ func atoiWithDefault(s string, def int) (int, error) { } // Write writes data on console -func (w *Writer) Write(data []byte) (n int, err error) { +func (w *writer) Write(data []byte) (n int, err error) { w.mutex.Lock() defer w.mutex.Unlock() var csbi consoleScreenBufferInfo @@ -560,7 +560,7 @@ loop: } procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) case 'E': - n, err = strconv.Atoi(buf.String()) + n, err = atoiWithDefault(buf.String(), 1) if err != nil { continue } @@ -569,7 +569,7 @@ loop: csbi.cursorPosition.y += short(n) procSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition))) case 'F': - n, err = strconv.Atoi(buf.String()) + n, err = atoiWithDefault(buf.String(), 1) if err != nil { continue } diff --git a/vendor/github.com/mmcloughlin/avo/LICENSE b/vendor/github.com/mmcloughlin/avo/LICENSE deleted file mode 100644 index c986d807..00000000 --- a/vendor/github.com/mmcloughlin/avo/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2018, Michael McLoughlin -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/mmcloughlin/avo/attr/attr.go b/vendor/github.com/mmcloughlin/avo/attr/attr.go deleted file mode 100644 index 301c9f59..00000000 --- a/vendor/github.com/mmcloughlin/avo/attr/attr.go +++ /dev/null @@ -1,45 +0,0 @@ -// Package attr provides attributes for text and data sections. -package attr - -import ( - "fmt" - "math/bits" - "strings" -) - -// Attribute represents TEXT or DATA flags. -type Attribute uint16 - -//go:generate go run make_textflag.go -output ztextflag.go - -// Asm returns a representation of the attributes in assembly syntax. This may use macros from "textflags.h"; see ContainsTextFlags() to determine if this header is required. -func (a Attribute) Asm() string { - parts, rest := a.split() - if len(parts) == 0 || rest != 0 { - parts = append(parts, fmt.Sprintf("%d", rest)) - } - return strings.Join(parts, "|") -} - -// ContainsTextFlags returns whether the Asm() representation requires macros in "textflags.h". -func (a Attribute) ContainsTextFlags() bool { - flags, _ := a.split() - return len(flags) > 0 -} - -// split splits a into known flags and any remaining bits. -func (a Attribute) split() ([]string, Attribute) { - var flags []string - var rest Attribute - for a != 0 { - i := uint(bits.TrailingZeros16(uint16(a))) - bit := Attribute(1) << i - if flag := attrname[bit]; flag != "" { - flags = append(flags, flag) - } else { - rest |= bit - } - a ^= bit - } - return flags, rest -} diff --git a/vendor/github.com/mmcloughlin/avo/attr/textflag.h b/vendor/github.com/mmcloughlin/avo/attr/textflag.h deleted file mode 100644 index 7e3547fc..00000000 --- a/vendor/github.com/mmcloughlin/avo/attr/textflag.h +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by downloading from https://github.com/golang/go/raw/go1.16.2/src/runtime/textflag.h. DO NOT EDIT. - -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file defines flags attached to various functions -// and data objects. The compilers, assemblers, and linker must -// all agree on these values. -// -// Keep in sync with src/cmd/internal/obj/textflag.go. - -// Don't profile the marked routine. This flag is deprecated. -#define NOPROF 1 -// It is ok for the linker to get multiple of these symbols. It will -// pick one of the duplicates to use. -#define DUPOK 2 -// Don't insert stack check preamble. -#define NOSPLIT 4 -// Put this data in a read-only section. -#define RODATA 8 -// This data contains no pointers. -#define NOPTR 16 -// This is a wrapper function and should not count as disabling 'recover'. -#define WRAPPER 32 -// This function uses its incoming context register. -#define NEEDCTXT 64 -// Allocate a word of thread local storage and store the offset from the -// thread local base to the thread local storage in this variable. -#define TLSBSS 256 -// Do not insert instructions to allocate a stack frame for this function. -// Only valid on functions that declare a frame size of 0. -// TODO(mwhudson): only implemented for ppc64x at present. -#define NOFRAME 512 -// Function can call reflect.Type.Method or reflect.Type.MethodByName. -#define REFLECTMETHOD 1024 -// Function is the top of the call stack. Call stack unwinders should stop -// at this function. -#define TOPFRAME 2048 diff --git a/vendor/github.com/mmcloughlin/avo/attr/ztextflag.go b/vendor/github.com/mmcloughlin/avo/attr/ztextflag.go deleted file mode 100644 index 4c7163a8..00000000 --- a/vendor/github.com/mmcloughlin/avo/attr/ztextflag.go +++ /dev/null @@ -1,90 +0,0 @@ -// Code generated by make_textflag.go. DO NOT EDIT. - -package attr - -// Attribute values defined in textflag.h. -const ( - // Don't profile the marked routine. This flag is deprecated. - NOPROF Attribute = 1 - - // It is ok for the linker to get multiple of these symbols. It will - // pick one of the duplicates to use. - DUPOK Attribute = 2 - - // Don't insert stack check preamble. - NOSPLIT Attribute = 4 - - // Put this data in a read-only section. - RODATA Attribute = 8 - - // This data contains no pointers. - NOPTR Attribute = 16 - - // This is a wrapper function and should not count as disabling 'recover'. - WRAPPER Attribute = 32 - - // This function uses its incoming context register. - NEEDCTXT Attribute = 64 - - // Allocate a word of thread local storage and store the offset from the - // thread local base to the thread local storage in this variable. - TLSBSS Attribute = 256 - - // Do not insert instructions to allocate a stack frame for this function. - // Only valid on functions that declare a frame size of 0. - NOFRAME Attribute = 512 - - // Function can call reflect.Type.Method or reflect.Type.MethodByName. - REFLECTMETHOD Attribute = 1024 - - // Function is the top of the call stack. Call stack unwinders should stop - // at this function. - TOPFRAME Attribute = 2048 -) - -var attrname = map[Attribute]string{ - NOPROF: "NOPROF", - DUPOK: "DUPOK", - NOSPLIT: "NOSPLIT", - RODATA: "RODATA", - NOPTR: "NOPTR", - WRAPPER: "WRAPPER", - NEEDCTXT: "NEEDCTXT", - TLSBSS: "TLSBSS", - NOFRAME: "NOFRAME", - REFLECTMETHOD: "REFLECTMETHOD", - TOPFRAME: "TOPFRAME", -} - -// NOPROF reports whether the NOPROF flag is set. -func (a Attribute) NOPROF() bool { return (a & NOPROF) != 0 } - -// DUPOK reports whether the DUPOK flag is set. -func (a Attribute) DUPOK() bool { return (a & DUPOK) != 0 } - -// NOSPLIT reports whether the NOSPLIT flag is set. -func (a Attribute) NOSPLIT() bool { return (a & NOSPLIT) != 0 } - -// RODATA reports whether the RODATA flag is set. -func (a Attribute) RODATA() bool { return (a & RODATA) != 0 } - -// NOPTR reports whether the NOPTR flag is set. -func (a Attribute) NOPTR() bool { return (a & NOPTR) != 0 } - -// WRAPPER reports whether the WRAPPER flag is set. -func (a Attribute) WRAPPER() bool { return (a & WRAPPER) != 0 } - -// NEEDCTXT reports whether the NEEDCTXT flag is set. -func (a Attribute) NEEDCTXT() bool { return (a & NEEDCTXT) != 0 } - -// TLSBSS reports whether the TLSBSS flag is set. -func (a Attribute) TLSBSS() bool { return (a & TLSBSS) != 0 } - -// NOFRAME reports whether the NOFRAME flag is set. -func (a Attribute) NOFRAME() bool { return (a & NOFRAME) != 0 } - -// REFLECTMETHOD reports whether the REFLECTMETHOD flag is set. -func (a Attribute) REFLECTMETHOD() bool { return (a & REFLECTMETHOD) != 0 } - -// TOPFRAME reports whether the TOPFRAME flag is set. -func (a Attribute) TOPFRAME() bool { return (a & TOPFRAME) != 0 } diff --git a/vendor/github.com/mmcloughlin/avo/build/attr.go b/vendor/github.com/mmcloughlin/avo/build/attr.go deleted file mode 100644 index 1a9870b0..00000000 --- a/vendor/github.com/mmcloughlin/avo/build/attr.go +++ /dev/null @@ -1,18 +0,0 @@ -package build - -import "github.com/mmcloughlin/avo/attr" - -// TEXT and DATA attribute values included for convenience. -const ( - NOPROF = attr.NOPROF - DUPOK = attr.DUPOK - NOSPLIT = attr.NOSPLIT - RODATA = attr.RODATA - NOPTR = attr.NOPTR - WRAPPER = attr.WRAPPER - NEEDCTXT = attr.NEEDCTXT - TLSBSS = attr.TLSBSS - NOFRAME = attr.NOFRAME - REFLECTMETHOD = attr.REFLECTMETHOD - TOPFRAME = attr.TOPFRAME -) diff --git a/vendor/github.com/mmcloughlin/avo/build/cli.go b/vendor/github.com/mmcloughlin/avo/build/cli.go deleted file mode 100644 index 8a4a379e..00000000 --- a/vendor/github.com/mmcloughlin/avo/build/cli.go +++ /dev/null @@ -1,171 +0,0 @@ -package build - -import ( - "flag" - "io" - "log" - "os" - "runtime/pprof" - - "github.com/mmcloughlin/avo/pass" - "github.com/mmcloughlin/avo/printer" -) - -// Config contains options for an avo main function. -type Config struct { - ErrOut io.Writer - MaxErrors int // max errors to report; 0 means unlimited - CPUProfile io.WriteCloser - Passes []pass.Interface -} - -// Main is the standard main function for an avo program. This extracts the -// result from the build Context (logging and exiting on error), and performs -// configured passes. -func Main(cfg *Config, context *Context) int { - diag := log.New(cfg.ErrOut, "", 0) - - if cfg.CPUProfile != nil { - defer cfg.CPUProfile.Close() - if err := pprof.StartCPUProfile(cfg.CPUProfile); err != nil { - diag.Println("could not start CPU profile: ", err) - return 1 - } - defer pprof.StopCPUProfile() - } - - f, err := context.Result() - if err != nil { - LogError(diag, err, cfg.MaxErrors) - return 1 - } - - p := pass.Concat(cfg.Passes...) - if err := p.Execute(f); err != nil { - diag.Println(err) - return 1 - } - - return 0 -} - -// Flags represents CLI flags for an avo program. -type Flags struct { - errout *outputValue - allerrors bool - cpuprof *outputValue - pkg string - printers []*printerValue -} - -// NewFlags initializes avo flags for the given FlagSet. -func NewFlags(fs *flag.FlagSet) *Flags { - f := &Flags{} - - f.errout = newOutputValue(os.Stderr) - fs.Var(f.errout, "log", "diagnostics output") - - fs.BoolVar(&f.allerrors, "e", false, "no limit on number of errors reported") - - f.cpuprof = newOutputValue(nil) - fs.Var(f.cpuprof, "cpuprofile", "write cpu profile to `file`") - - fs.StringVar(&f.pkg, "pkg", "", "package name (defaults to current directory name)") - - goasm := newPrinterValue(printer.NewGoAsm, os.Stdout) - fs.Var(goasm, "out", "assembly output") - f.printers = append(f.printers, goasm) - - stubs := newPrinterValue(printer.NewStubs, nil) - fs.Var(stubs, "stubs", "go stub file") - f.printers = append(f.printers, stubs) - - return f -} - -// Config builds a configuration object based on flag values. -func (f *Flags) Config() *Config { - pc := printer.NewGoRunConfig() - if f.pkg != "" { - pc.Pkg = f.pkg - } - passes := []pass.Interface{pass.Compile} - for _, pv := range f.printers { - p := pv.Build(pc) - if p != nil { - passes = append(passes, p) - } - } - - cfg := &Config{ - ErrOut: f.errout.w, - MaxErrors: 10, - CPUProfile: f.cpuprof.w, - Passes: passes, - } - - if f.allerrors { - cfg.MaxErrors = 0 - } - - return cfg -} - -type outputValue struct { - w io.WriteCloser - filename string -} - -func newOutputValue(dflt io.WriteCloser) *outputValue { - return &outputValue{w: dflt} -} - -func (o *outputValue) String() string { - if o == nil { - return "" - } - return o.filename -} - -func (o *outputValue) Set(s string) error { - o.filename = s - if s == "-" { - o.w = nopwritecloser{os.Stdout} - return nil - } - f, err := os.Create(s) - if err != nil { - return err - } - o.w = f - return nil -} - -type printerValue struct { - *outputValue - Builder printer.Builder -} - -func newPrinterValue(b printer.Builder, dflt io.WriteCloser) *printerValue { - return &printerValue{ - outputValue: newOutputValue(dflt), - Builder: b, - } -} - -func (p *printerValue) Build(cfg printer.Config) pass.Interface { - if p.outputValue.w == nil { - return nil - } - return &pass.Output{ - Writer: p.outputValue.w, - Printer: p.Builder(cfg), - } -} - -// nopwritecloser wraps a Writer and provides a null implementation of Close(). -type nopwritecloser struct { - io.Writer -} - -func (nopwritecloser) Close() error { return nil } diff --git a/vendor/github.com/mmcloughlin/avo/build/context.go b/vendor/github.com/mmcloughlin/avo/build/context.go deleted file mode 100644 index 80431305..00000000 --- a/vendor/github.com/mmcloughlin/avo/build/context.go +++ /dev/null @@ -1,224 +0,0 @@ -package build - -import ( - "errors" - "fmt" - "go/types" - - "golang.org/x/tools/go/packages" - - "github.com/mmcloughlin/avo/attr" - "github.com/mmcloughlin/avo/buildtags" - "github.com/mmcloughlin/avo/gotypes" - "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/operand" - "github.com/mmcloughlin/avo/reg" -) - -//go:generate avogen -output zinstructions.go build -//go:generate avogen -output zinstructions_test.go buildtest - -// Context maintains state for incrementally building an avo File. -type Context struct { - pkg *packages.Package - file *ir.File - function *ir.Function - global *ir.Global - errs ErrorList - reg.Collection -} - -// NewContext initializes an empty build Context. -func NewContext() *Context { - return &Context{ - file: ir.NewFile(), - Collection: *reg.NewCollection(), - } -} - -// Package sets the package the generated file will belong to. Required to be able to reference types in the package. -func (c *Context) Package(path string) { - cfg := &packages.Config{ - Mode: packages.NeedTypes | packages.NeedDeps | packages.NeedImports, - } - pkgs, err := packages.Load(cfg, path) - if err != nil { - c.adderror(err) - return - } - pkg := pkgs[0] - if len(pkg.Errors) > 0 { - for _, err := range pkg.Errors { - c.adderror(err) - } - return - } - c.pkg = pkg -} - -// Constraints sets build constraints for the file. -func (c *Context) Constraints(t buildtags.ConstraintsConvertable) { - cs := t.ToConstraints() - if err := cs.Validate(); err != nil { - c.adderror(err) - return - } - c.file.Constraints = cs -} - -// Constraint appends a constraint to the file's build constraints. -func (c *Context) Constraint(t buildtags.ConstraintConvertable) { - c.Constraints(append(c.file.Constraints, t.ToConstraint())) -} - -// ConstraintExpr appends a constraint to the file's build constraints. The -// constraint to add is parsed from the given expression. The expression should -// look the same as the content following "// +build " in regular build -// constraint comments. -func (c *Context) ConstraintExpr(expr string) { - constraint, err := buildtags.ParseConstraint(expr) - if err != nil { - c.adderror(err) - return - } - c.Constraint(constraint) -} - -// Function starts building a new function with the given name. -func (c *Context) Function(name string) { - c.function = ir.NewFunction(name) - c.file.AddSection(c.function) -} - -// Doc sets documentation comment lines for the currently active function. -func (c *Context) Doc(lines ...string) { - c.activefunc().Doc = lines -} - -// Pragma adds a compiler directive to the currently active function. -func (c *Context) Pragma(directive string, args ...string) { - c.activefunc().AddPragma(directive, args...) -} - -// Attributes sets function attributes for the currently active function. -func (c *Context) Attributes(a attr.Attribute) { - c.activefunc().Attributes = a -} - -// Signature sets the signature for the currently active function. -func (c *Context) Signature(s *gotypes.Signature) { - c.activefunc().SetSignature(s) -} - -// SignatureExpr parses the signature expression and sets it as the active function's signature. -func (c *Context) SignatureExpr(expr string) { - s, err := gotypes.ParseSignatureInPackage(c.types(), expr) - if err != nil { - c.adderror(err) - return - } - c.Signature(s) -} - -// Implement starts building a function of the given name, whose type is -// specified by a stub in the containing package. -func (c *Context) Implement(name string) { - pkg := c.types() - if pkg == nil { - c.adderrormessage("no package specified") - return - } - s, err := gotypes.LookupSignature(pkg, name) - if err != nil { - c.adderror(err) - return - } - c.Function(name) - c.Signature(s) -} - -func (c *Context) types() *types.Package { - if c.pkg == nil { - return nil - } - return c.pkg.Types -} - -// AllocLocal allocates size bytes in the stack of the currently active function. -// Returns a reference to the base pointer for the newly allocated region. -func (c *Context) AllocLocal(size int) operand.Mem { - return c.activefunc().AllocLocal(size) -} - -// Instruction adds an instruction to the active function. -func (c *Context) Instruction(i *ir.Instruction) { - c.activefunc().AddInstruction(i) -} - -// Label adds a label to the active function. -func (c *Context) Label(name string) { - c.activefunc().AddLabel(ir.Label(name)) -} - -// Comment adds comment lines to the active function. -func (c *Context) Comment(lines ...string) { - c.activefunc().AddComment(lines...) -} - -// Commentf adds a formtted comment line. -func (c *Context) Commentf(format string, a ...any) { - c.Comment(fmt.Sprintf(format, a...)) -} - -func (c *Context) activefunc() *ir.Function { - if c.function == nil { - c.adderrormessage("no active function") - return ir.NewFunction("") - } - return c.function -} - -// StaticGlobal adds a new static data section to the file and returns a pointer to it. -func (c *Context) StaticGlobal(name string) operand.Mem { - c.global = ir.NewStaticGlobal(name) - c.file.AddSection(c.global) - return c.global.Base() -} - -// DataAttributes sets the attributes on the current active global data section. -func (c *Context) DataAttributes(a attr.Attribute) { - c.activeglobal().Attributes = a -} - -// AddDatum adds constant v at offset to the current active global data section. -func (c *Context) AddDatum(offset int, v operand.Constant) { - if err := c.activeglobal().AddDatum(ir.NewDatum(offset, v)); err != nil { - c.adderror(err) - } -} - -// AppendDatum appends a constant to the current active global data section. -func (c *Context) AppendDatum(v operand.Constant) { - c.activeglobal().Append(v) -} - -func (c *Context) activeglobal() *ir.Global { - if c.global == nil { - c.adderrormessage("no active global") - return ir.NewStaticGlobal("") - } - return c.global -} - -func (c *Context) adderror(err error) { - c.errs.addext(err) -} - -func (c *Context) adderrormessage(msg string) { - c.adderror(errors.New(msg)) -} - -// Result returns the built file and any accumulated errors. -func (c *Context) Result() (*ir.File, error) { - return c.file, c.errs.Err() -} diff --git a/vendor/github.com/mmcloughlin/avo/build/doc.go b/vendor/github.com/mmcloughlin/avo/build/doc.go deleted file mode 100644 index 8b9a6047..00000000 --- a/vendor/github.com/mmcloughlin/avo/build/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package build provides an assembly-like interface for incremental building of avo Files. -package build diff --git a/vendor/github.com/mmcloughlin/avo/build/error.go b/vendor/github.com/mmcloughlin/avo/build/error.go deleted file mode 100644 index d6f3be64..00000000 --- a/vendor/github.com/mmcloughlin/avo/build/error.go +++ /dev/null @@ -1,91 +0,0 @@ -package build - -import ( - "errors" - "fmt" - "log" - - "github.com/mmcloughlin/avo/internal/stack" - "github.com/mmcloughlin/avo/src" -) - -// Error represents an error during building, optionally tagged with the position at which it happened. -type Error struct { - Position src.Position - Err error -} - -// exterr constructs an Error with position derived from the first frame in the -// call stack outside this package. -func exterr(err error) Error { - e := Error{Err: err} - if f := stack.ExternalCaller(); f != nil { - e.Position = src.FramePosition(*f).Relwd() - } - return e -} - -func (e Error) Error() string { - msg := e.Err.Error() - if e.Position.IsValid() { - return e.Position.String() + ": " + msg - } - return msg -} - -// ErrorList is a collection of errors for a source file. -type ErrorList []Error - -// Add appends an error to the list. -func (e *ErrorList) Add(err Error) { - *e = append(*e, err) -} - -// AddAt appends an error at position p. -func (e *ErrorList) AddAt(p src.Position, err error) { - e.Add(Error{p, err}) -} - -// addext appends an error to the list, tagged with the first external position -// outside this package. -func (e *ErrorList) addext(err error) { - e.Add(exterr(err)) -} - -// Err returns an error equivalent to this error list. -// If the list is empty, Err returns nil. -func (e ErrorList) Err() error { - if len(e) == 0 { - return nil - } - return e -} - -// Error implements the error interface. -func (e ErrorList) Error() string { - switch len(e) { - case 0: - return "no errors" - case 1: - return e[0].Error() - } - return fmt.Sprintf("%s (and %d more errors)", e[0], len(e)-1) -} - -// LogError logs a list of errors, one error per line, if the err parameter is -// an ErrorList. Otherwise it just logs the err string. Reports at most max -// errors, or unlimited if max is 0. -func LogError(l *log.Logger, err error, max int) { - var list ErrorList - if errors.As(err, &list) { - for i, e := range list { - if max > 0 && i == max { - l.Print("too many errors") - return - } - l.Printf("%s\n", e) - } - } else if err != nil { - l.Printf("%s\n", err) - } -} diff --git a/vendor/github.com/mmcloughlin/avo/build/global.go b/vendor/github.com/mmcloughlin/avo/build/global.go deleted file mode 100644 index dae6795b..00000000 --- a/vendor/github.com/mmcloughlin/avo/build/global.go +++ /dev/null @@ -1,163 +0,0 @@ -package build - -import ( - "flag" - "os" - - "github.com/mmcloughlin/avo/attr" - "github.com/mmcloughlin/avo/buildtags" - "github.com/mmcloughlin/avo/gotypes" - "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/operand" - "github.com/mmcloughlin/avo/reg" -) - -// ctx provides a global build context. -var ctx = NewContext() - -// TEXT starts building a new function called name, with attributes a, and sets its signature (see SignatureExpr). -func TEXT(name string, a attr.Attribute, signature string) { - ctx.Function(name) - ctx.Attributes(a) - ctx.SignatureExpr(signature) -} - -// GLOBL declares a new static global data section with the given attributes. -func GLOBL(name string, a attr.Attribute) operand.Mem { - // TODO(mbm): should this be static? - g := ctx.StaticGlobal(name) - ctx.DataAttributes(a) - return g -} - -// DATA adds a data value to the active data section. -func DATA(offset int, v operand.Constant) { - ctx.AddDatum(offset, v) -} - -var flags = NewFlags(flag.CommandLine) - -// Generate builds and compiles the avo file built with the global context. This -// should be the final line of any avo program. Configuration is determined from command-line flags. -func Generate() { - if !flag.Parsed() { - flag.Parse() - } - cfg := flags.Config() - - status := Main(cfg, ctx) - - // To record coverage of integration tests we wrap main() functions in a test - // functions. In this case we need the main function to terminate, therefore we - // only exit for failure status codes. - if status != 0 { - os.Exit(status) - } -} - -// Package sets the package the generated file will belong to. Required to be able to reference types in the package. -func Package(path string) { ctx.Package(path) } - -// Constraints sets build constraints for the file. -func Constraints(t buildtags.ConstraintsConvertable) { ctx.Constraints(t) } - -// Constraint appends a constraint to the file's build constraints. -func Constraint(t buildtags.ConstraintConvertable) { ctx.Constraint(t) } - -// ConstraintExpr appends a constraint to the file's build constraints. The -// constraint to add is parsed from the given expression. The expression should -// look the same as the content following "// +build " in regular build -// constraint comments. -func ConstraintExpr(expr string) { ctx.ConstraintExpr(expr) } - -// GP8L allocates and returns a general-purpose 8-bit register (low byte). -func GP8L() reg.GPVirtual { return ctx.GP8L() } - -// GP8H allocates and returns a general-purpose 8-bit register (high byte). -func GP8H() reg.GPVirtual { return ctx.GP8H() } - -// GP8 allocates and returns a general-purpose 8-bit register (low byte). -func GP8() reg.GPVirtual { return ctx.GP8() } - -// GP16 allocates and returns a general-purpose 16-bit register. -func GP16() reg.GPVirtual { return ctx.GP16() } - -// GP32 allocates and returns a general-purpose 32-bit register. -func GP32() reg.GPVirtual { return ctx.GP32() } - -// GP64 allocates and returns a general-purpose 64-bit register. -func GP64() reg.GPVirtual { return ctx.GP64() } - -// XMM allocates and returns a 128-bit vector register. -func XMM() reg.VecVirtual { return ctx.XMM() } - -// YMM allocates and returns a 256-bit vector register. -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) } - -// ParamIndex returns the ith argument of the active function. -func ParamIndex(i int) gotypes.Component { return ctx.ParamIndex(i) } - -// Return returns a the named return value of the active function. -func Return(name string) gotypes.Component { return ctx.Return(name) } - -// ReturnIndex returns the ith argument of the active function. -func ReturnIndex(i int) gotypes.Component { return ctx.ReturnIndex(i) } - -// Load the function argument src into register dst. Returns the destination -// register. This is syntactic sugar: it will attempt to select the right MOV -// instruction based on the types involved. -func Load(src gotypes.Component, dst reg.Register) reg.Register { return ctx.Load(src, dst) } - -// Store register src into return value dst. This is syntactic sugar: it will -// attempt to select the right MOV instruction based on the types involved. -func Store(src reg.Register, dst gotypes.Component) { ctx.Store(src, dst) } - -// Dereference loads a pointer and returns its element type. -func Dereference(ptr gotypes.Component) gotypes.Component { return ctx.Dereference(ptr) } - -// Function starts building a new function with the given name. -func Function(name string) { ctx.Function(name) } - -// Doc sets documentation comment lines for the currently active function. -func Doc(lines ...string) { ctx.Doc(lines...) } - -// Pragma adds a compiler directive to the currently active function. -func Pragma(directive string, args ...string) { ctx.Pragma(directive, args...) } - -// Attributes sets function attributes for the currently active function. -func Attributes(a attr.Attribute) { ctx.Attributes(a) } - -// SignatureExpr parses the signature expression and sets it as the active function's signature. -func SignatureExpr(expr string) { ctx.SignatureExpr(expr) } - -// Implement starts building a function of the given name, whose type is -// specified by a stub in the containing package. -func Implement(name string) { ctx.Implement(name) } - -// AllocLocal allocates size bytes in the stack of the currently active function. -// Returns a reference to the base pointer for the newly allocated region. -func AllocLocal(size int) operand.Mem { return ctx.AllocLocal(size) } - -// Label adds a label to the active function. -func Label(name string) { ctx.Label(name) } - -// Comment adds comment lines to the active function. -func Comment(lines ...string) { ctx.Comment(lines...) } - -// Commentf adds a formtted comment line. -func Commentf(format string, a ...any) { ctx.Commentf(format, a...) } - -// ConstData builds a static data section containing just the given constant. -func ConstData(name string, v operand.Constant) operand.Mem { return ctx.ConstData(name, v) } - -// Instruction adds an instruction to the active function. -func Instruction(i *ir.Instruction) { ctx.Instruction(i) } diff --git a/vendor/github.com/mmcloughlin/avo/build/pseudo.go b/vendor/github.com/mmcloughlin/avo/build/pseudo.go deleted file mode 100644 index 009811d5..00000000 --- a/vendor/github.com/mmcloughlin/avo/build/pseudo.go +++ /dev/null @@ -1,69 +0,0 @@ -package build - -import ( - "github.com/mmcloughlin/avo/attr" - "github.com/mmcloughlin/avo/gotypes" - "github.com/mmcloughlin/avo/operand" - "github.com/mmcloughlin/avo/reg" -) - -//go:generate avogen -output zmov.go mov - -// Param returns a the named argument of the active function. -func (c *Context) Param(name string) gotypes.Component { - return c.activefunc().Signature.Params().Lookup(name) -} - -// ParamIndex returns the ith argument of the active function. -func (c *Context) ParamIndex(i int) gotypes.Component { - return c.activefunc().Signature.Params().At(i) -} - -// Return returns a the named return value of the active function. -func (c *Context) Return(name string) gotypes.Component { - return c.activefunc().Signature.Results().Lookup(name) -} - -// ReturnIndex returns the ith argument of the active function. -func (c *Context) ReturnIndex(i int) gotypes.Component { - return c.activefunc().Signature.Results().At(i) -} - -// Load the function argument src into register dst. Returns the destination -// register. This is syntactic sugar: it will attempt to select the right MOV -// instruction based on the types involved. -func (c *Context) Load(src gotypes.Component, dst reg.Register) reg.Register { - b, err := src.Resolve() - if err != nil { - c.adderror(err) - return dst - } - c.mov(b.Addr, dst, int(gotypes.Sizes.Sizeof(b.Type)), int(dst.Size()), b.Type) - return dst -} - -// Store register src into return value dst. This is syntactic sugar: it will -// attempt to select the right MOV instruction based on the types involved. -func (c *Context) Store(src reg.Register, dst gotypes.Component) { - b, err := dst.Resolve() - if err != nil { - c.adderror(err) - return - } - c.mov(src, b.Addr, int(src.Size()), int(gotypes.Sizes.Sizeof(b.Type)), b.Type) -} - -// Dereference loads a pointer and returns its element type. -func (c *Context) Dereference(ptr gotypes.Component) gotypes.Component { - r := c.GP64() - c.Load(ptr, r) - return ptr.Dereference(r) -} - -// ConstData builds a static data section containing just the given constant. -func (c *Context) ConstData(name string, v operand.Constant) operand.Mem { - g := c.StaticGlobal(name) - c.DataAttributes(attr.RODATA | attr.NOPTR) - c.AppendDatum(v) - return g -} diff --git a/vendor/github.com/mmcloughlin/avo/build/zinstructions.go b/vendor/github.com/mmcloughlin/avo/build/zinstructions.go deleted file mode 100644 index 2d117f1e..00000000 --- a/vendor/github.com/mmcloughlin/avo/build/zinstructions.go +++ /dev/null @@ -1,86852 +0,0 @@ -// Code generated by command: avogen -output zinstructions.go build. DO NOT EDIT. - -package build - -import ( - "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/operand" - "github.com/mmcloughlin/avo/x86" -) - -func (c *Context) addinstruction(i *ir.Instruction, err error) { - if err == nil { - c.Instruction(i) - } else { - c.adderror(err) - } -} - -// ADCB: Add with Carry. -// -// Forms: -// -// ADCB imm8 al -// ADCB imm8 m8 -// ADCB imm8 r8 -// ADCB m8 r8 -// ADCB r8 m8 -// ADCB r8 r8 -// -// Construct and append a ADCB instruction to the active function. -func (c *Context) ADCB(imr, amr operand.Op) { - c.addinstruction(x86.ADCB(imr, amr)) -} - -// ADCB: Add with Carry. -// -// Forms: -// -// ADCB imm8 al -// ADCB imm8 m8 -// ADCB imm8 r8 -// ADCB m8 r8 -// ADCB r8 m8 -// ADCB r8 r8 -// -// Construct and append a ADCB instruction to the active function. -// Operates on the global context. -func ADCB(imr, amr operand.Op) { ctx.ADCB(imr, amr) } - -// ADCL: Add with Carry. -// -// Forms: -// -// ADCL imm32 eax -// ADCL imm32 m32 -// ADCL imm32 r32 -// ADCL imm8 m32 -// ADCL imm8 r32 -// ADCL m32 r32 -// ADCL r32 m32 -// ADCL r32 r32 -// -// Construct and append a ADCL instruction to the active function. -func (c *Context) ADCL(imr, emr operand.Op) { - c.addinstruction(x86.ADCL(imr, emr)) -} - -// ADCL: Add with Carry. -// -// Forms: -// -// ADCL imm32 eax -// ADCL imm32 m32 -// ADCL imm32 r32 -// ADCL imm8 m32 -// ADCL imm8 r32 -// ADCL m32 r32 -// ADCL r32 m32 -// ADCL r32 r32 -// -// Construct and append a ADCL instruction to the active function. -// Operates on the global context. -func ADCL(imr, emr operand.Op) { ctx.ADCL(imr, emr) } - -// ADCQ: Add with Carry. -// -// Forms: -// -// ADCQ imm32 m64 -// ADCQ imm32 r64 -// ADCQ imm32 rax -// ADCQ imm8 m64 -// ADCQ imm8 r64 -// ADCQ m64 r64 -// ADCQ r64 m64 -// ADCQ r64 r64 -// -// Construct and append a ADCQ instruction to the active function. -func (c *Context) ADCQ(imr, mr operand.Op) { - c.addinstruction(x86.ADCQ(imr, mr)) -} - -// ADCQ: Add with Carry. -// -// Forms: -// -// ADCQ imm32 m64 -// ADCQ imm32 r64 -// ADCQ imm32 rax -// ADCQ imm8 m64 -// ADCQ imm8 r64 -// ADCQ m64 r64 -// ADCQ r64 m64 -// ADCQ r64 r64 -// -// Construct and append a ADCQ instruction to the active function. -// Operates on the global context. -func ADCQ(imr, mr operand.Op) { ctx.ADCQ(imr, mr) } - -// ADCW: Add with Carry. -// -// Forms: -// -// ADCW imm16 ax -// ADCW imm16 m16 -// ADCW imm16 r16 -// ADCW imm8 m16 -// ADCW imm8 r16 -// ADCW m16 r16 -// ADCW r16 m16 -// ADCW r16 r16 -// -// Construct and append a ADCW instruction to the active function. -func (c *Context) ADCW(imr, amr operand.Op) { - c.addinstruction(x86.ADCW(imr, amr)) -} - -// ADCW: Add with Carry. -// -// Forms: -// -// ADCW imm16 ax -// ADCW imm16 m16 -// ADCW imm16 r16 -// ADCW imm8 m16 -// ADCW imm8 r16 -// ADCW m16 r16 -// ADCW r16 m16 -// ADCW r16 r16 -// -// Construct and append a ADCW instruction to the active function. -// Operates on the global context. -func ADCW(imr, amr operand.Op) { ctx.ADCW(imr, amr) } - -// ADCXL: Unsigned Integer Addition of Two Operands with Carry Flag. -// -// Forms: -// -// ADCXL m32 r32 -// ADCXL r32 r32 -// -// Construct and append a ADCXL instruction to the active function. -func (c *Context) ADCXL(mr, r operand.Op) { - c.addinstruction(x86.ADCXL(mr, r)) -} - -// ADCXL: Unsigned Integer Addition of Two Operands with Carry Flag. -// -// Forms: -// -// ADCXL m32 r32 -// ADCXL r32 r32 -// -// Construct and append a ADCXL instruction to the active function. -// Operates on the global context. -func ADCXL(mr, r operand.Op) { ctx.ADCXL(mr, r) } - -// ADCXQ: Unsigned Integer Addition of Two Operands with Carry Flag. -// -// Forms: -// -// ADCXQ m64 r64 -// ADCXQ r64 r64 -// -// Construct and append a ADCXQ instruction to the active function. -func (c *Context) ADCXQ(mr, r operand.Op) { - c.addinstruction(x86.ADCXQ(mr, r)) -} - -// ADCXQ: Unsigned Integer Addition of Two Operands with Carry Flag. -// -// Forms: -// -// ADCXQ m64 r64 -// ADCXQ r64 r64 -// -// Construct and append a ADCXQ instruction to the active function. -// Operates on the global context. -func ADCXQ(mr, r operand.Op) { ctx.ADCXQ(mr, r) } - -// ADDB: Add. -// -// Forms: -// -// ADDB imm8 al -// ADDB imm8 m8 -// ADDB imm8 r8 -// ADDB m8 r8 -// ADDB r8 m8 -// ADDB r8 r8 -// -// Construct and append a ADDB instruction to the active function. -func (c *Context) ADDB(imr, amr operand.Op) { - c.addinstruction(x86.ADDB(imr, amr)) -} - -// ADDB: Add. -// -// Forms: -// -// ADDB imm8 al -// ADDB imm8 m8 -// ADDB imm8 r8 -// ADDB m8 r8 -// ADDB r8 m8 -// ADDB r8 r8 -// -// Construct and append a ADDB instruction to the active function. -// Operates on the global context. -func ADDB(imr, amr operand.Op) { ctx.ADDB(imr, amr) } - -// ADDL: Add. -// -// Forms: -// -// ADDL imm32 eax -// ADDL imm32 m32 -// ADDL imm32 r32 -// ADDL imm8 m32 -// ADDL imm8 r32 -// ADDL m32 r32 -// ADDL r32 m32 -// ADDL r32 r32 -// -// Construct and append a ADDL instruction to the active function. -func (c *Context) ADDL(imr, emr operand.Op) { - c.addinstruction(x86.ADDL(imr, emr)) -} - -// ADDL: Add. -// -// Forms: -// -// ADDL imm32 eax -// ADDL imm32 m32 -// ADDL imm32 r32 -// ADDL imm8 m32 -// ADDL imm8 r32 -// ADDL m32 r32 -// ADDL r32 m32 -// ADDL r32 r32 -// -// Construct and append a ADDL instruction to the active function. -// Operates on the global context. -func ADDL(imr, emr operand.Op) { ctx.ADDL(imr, emr) } - -// ADDPD: Add Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// ADDPD m128 xmm -// ADDPD xmm xmm -// -// Construct and append a ADDPD instruction to the active function. -func (c *Context) ADDPD(mx, x operand.Op) { - c.addinstruction(x86.ADDPD(mx, x)) -} - -// ADDPD: Add Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// ADDPD m128 xmm -// ADDPD xmm xmm -// -// Construct and append a ADDPD instruction to the active function. -// Operates on the global context. -func ADDPD(mx, x operand.Op) { ctx.ADDPD(mx, x) } - -// ADDPS: Add Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// ADDPS m128 xmm -// ADDPS xmm xmm -// -// Construct and append a ADDPS instruction to the active function. -func (c *Context) ADDPS(mx, x operand.Op) { - c.addinstruction(x86.ADDPS(mx, x)) -} - -// ADDPS: Add Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// ADDPS m128 xmm -// ADDPS xmm xmm -// -// Construct and append a ADDPS instruction to the active function. -// Operates on the global context. -func ADDPS(mx, x operand.Op) { ctx.ADDPS(mx, x) } - -// ADDQ: Add. -// -// Forms: -// -// ADDQ imm32 m64 -// ADDQ imm32 r64 -// ADDQ imm32 rax -// ADDQ imm8 m64 -// ADDQ imm8 r64 -// ADDQ m64 r64 -// ADDQ r64 m64 -// ADDQ r64 r64 -// -// Construct and append a ADDQ instruction to the active function. -func (c *Context) ADDQ(imr, mr operand.Op) { - c.addinstruction(x86.ADDQ(imr, mr)) -} - -// ADDQ: Add. -// -// Forms: -// -// ADDQ imm32 m64 -// ADDQ imm32 r64 -// ADDQ imm32 rax -// ADDQ imm8 m64 -// ADDQ imm8 r64 -// ADDQ m64 r64 -// ADDQ r64 m64 -// ADDQ r64 r64 -// -// Construct and append a ADDQ instruction to the active function. -// Operates on the global context. -func ADDQ(imr, mr operand.Op) { ctx.ADDQ(imr, mr) } - -// ADDSD: Add Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// ADDSD m64 xmm -// ADDSD xmm xmm -// -// Construct and append a ADDSD instruction to the active function. -func (c *Context) ADDSD(mx, x operand.Op) { - c.addinstruction(x86.ADDSD(mx, x)) -} - -// ADDSD: Add Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// ADDSD m64 xmm -// ADDSD xmm xmm -// -// Construct and append a ADDSD instruction to the active function. -// Operates on the global context. -func ADDSD(mx, x operand.Op) { ctx.ADDSD(mx, x) } - -// ADDSS: Add Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// ADDSS m32 xmm -// ADDSS xmm xmm -// -// Construct and append a ADDSS instruction to the active function. -func (c *Context) ADDSS(mx, x operand.Op) { - c.addinstruction(x86.ADDSS(mx, x)) -} - -// ADDSS: Add Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// ADDSS m32 xmm -// ADDSS xmm xmm -// -// Construct and append a ADDSS instruction to the active function. -// Operates on the global context. -func ADDSS(mx, x operand.Op) { ctx.ADDSS(mx, x) } - -// ADDSUBPD: Packed Double-FP Add/Subtract. -// -// Forms: -// -// ADDSUBPD m128 xmm -// ADDSUBPD xmm xmm -// -// Construct and append a ADDSUBPD instruction to the active function. -func (c *Context) ADDSUBPD(mx, x operand.Op) { - c.addinstruction(x86.ADDSUBPD(mx, x)) -} - -// ADDSUBPD: Packed Double-FP Add/Subtract. -// -// Forms: -// -// ADDSUBPD m128 xmm -// ADDSUBPD xmm xmm -// -// Construct and append a ADDSUBPD instruction to the active function. -// Operates on the global context. -func ADDSUBPD(mx, x operand.Op) { ctx.ADDSUBPD(mx, x) } - -// ADDSUBPS: Packed Single-FP Add/Subtract. -// -// Forms: -// -// ADDSUBPS m128 xmm -// ADDSUBPS xmm xmm -// -// Construct and append a ADDSUBPS instruction to the active function. -func (c *Context) ADDSUBPS(mx, x operand.Op) { - c.addinstruction(x86.ADDSUBPS(mx, x)) -} - -// ADDSUBPS: Packed Single-FP Add/Subtract. -// -// Forms: -// -// ADDSUBPS m128 xmm -// ADDSUBPS xmm xmm -// -// Construct and append a ADDSUBPS instruction to the active function. -// Operates on the global context. -func ADDSUBPS(mx, x operand.Op) { ctx.ADDSUBPS(mx, x) } - -// ADDW: Add. -// -// Forms: -// -// ADDW imm16 ax -// ADDW imm16 m16 -// ADDW imm16 r16 -// ADDW imm8 m16 -// ADDW imm8 r16 -// ADDW m16 r16 -// ADDW r16 m16 -// ADDW r16 r16 -// -// Construct and append a ADDW instruction to the active function. -func (c *Context) ADDW(imr, amr operand.Op) { - c.addinstruction(x86.ADDW(imr, amr)) -} - -// ADDW: Add. -// -// Forms: -// -// ADDW imm16 ax -// ADDW imm16 m16 -// ADDW imm16 r16 -// ADDW imm8 m16 -// ADDW imm8 r16 -// ADDW m16 r16 -// ADDW r16 m16 -// ADDW r16 r16 -// -// Construct and append a ADDW instruction to the active function. -// Operates on the global context. -func ADDW(imr, amr operand.Op) { ctx.ADDW(imr, amr) } - -// ADOXL: Unsigned Integer Addition of Two Operands with Overflow Flag. -// -// Forms: -// -// ADOXL m32 r32 -// ADOXL r32 r32 -// -// Construct and append a ADOXL instruction to the active function. -func (c *Context) ADOXL(mr, r operand.Op) { - c.addinstruction(x86.ADOXL(mr, r)) -} - -// ADOXL: Unsigned Integer Addition of Two Operands with Overflow Flag. -// -// Forms: -// -// ADOXL m32 r32 -// ADOXL r32 r32 -// -// Construct and append a ADOXL instruction to the active function. -// Operates on the global context. -func ADOXL(mr, r operand.Op) { ctx.ADOXL(mr, r) } - -// ADOXQ: Unsigned Integer Addition of Two Operands with Overflow Flag. -// -// Forms: -// -// ADOXQ m64 r64 -// ADOXQ r64 r64 -// -// Construct and append a ADOXQ instruction to the active function. -func (c *Context) ADOXQ(mr, r operand.Op) { - c.addinstruction(x86.ADOXQ(mr, r)) -} - -// ADOXQ: Unsigned Integer Addition of Two Operands with Overflow Flag. -// -// Forms: -// -// ADOXQ m64 r64 -// ADOXQ r64 r64 -// -// Construct and append a ADOXQ instruction to the active function. -// Operates on the global context. -func ADOXQ(mr, r operand.Op) { ctx.ADOXQ(mr, r) } - -// AESDEC: Perform One Round of an AES Decryption Flow. -// -// Forms: -// -// AESDEC m128 xmm -// AESDEC xmm xmm -// -// Construct and append a AESDEC instruction to the active function. -func (c *Context) AESDEC(mx, x operand.Op) { - c.addinstruction(x86.AESDEC(mx, x)) -} - -// AESDEC: Perform One Round of an AES Decryption Flow. -// -// Forms: -// -// AESDEC m128 xmm -// AESDEC xmm xmm -// -// Construct and append a AESDEC instruction to the active function. -// Operates on the global context. -func AESDEC(mx, x operand.Op) { ctx.AESDEC(mx, x) } - -// AESDECLAST: Perform Last Round of an AES Decryption Flow. -// -// Forms: -// -// AESDECLAST m128 xmm -// AESDECLAST xmm xmm -// -// Construct and append a AESDECLAST instruction to the active function. -func (c *Context) AESDECLAST(mx, x operand.Op) { - c.addinstruction(x86.AESDECLAST(mx, x)) -} - -// AESDECLAST: Perform Last Round of an AES Decryption Flow. -// -// Forms: -// -// AESDECLAST m128 xmm -// AESDECLAST xmm xmm -// -// Construct and append a AESDECLAST instruction to the active function. -// Operates on the global context. -func AESDECLAST(mx, x operand.Op) { ctx.AESDECLAST(mx, x) } - -// AESENC: Perform One Round of an AES Encryption Flow. -// -// Forms: -// -// AESENC m128 xmm -// AESENC xmm xmm -// -// Construct and append a AESENC instruction to the active function. -func (c *Context) AESENC(mx, x operand.Op) { - c.addinstruction(x86.AESENC(mx, x)) -} - -// AESENC: Perform One Round of an AES Encryption Flow. -// -// Forms: -// -// AESENC m128 xmm -// AESENC xmm xmm -// -// Construct and append a AESENC instruction to the active function. -// Operates on the global context. -func AESENC(mx, x operand.Op) { ctx.AESENC(mx, x) } - -// AESENCLAST: Perform Last Round of an AES Encryption Flow. -// -// Forms: -// -// AESENCLAST m128 xmm -// AESENCLAST xmm xmm -// -// Construct and append a AESENCLAST instruction to the active function. -func (c *Context) AESENCLAST(mx, x operand.Op) { - c.addinstruction(x86.AESENCLAST(mx, x)) -} - -// AESENCLAST: Perform Last Round of an AES Encryption Flow. -// -// Forms: -// -// AESENCLAST m128 xmm -// AESENCLAST xmm xmm -// -// Construct and append a AESENCLAST instruction to the active function. -// Operates on the global context. -func AESENCLAST(mx, x operand.Op) { ctx.AESENCLAST(mx, x) } - -// AESIMC: Perform the AES InvMixColumn Transformation. -// -// Forms: -// -// AESIMC m128 xmm -// AESIMC xmm xmm -// -// Construct and append a AESIMC instruction to the active function. -func (c *Context) AESIMC(mx, x operand.Op) { - c.addinstruction(x86.AESIMC(mx, x)) -} - -// AESIMC: Perform the AES InvMixColumn Transformation. -// -// Forms: -// -// AESIMC m128 xmm -// AESIMC xmm xmm -// -// Construct and append a AESIMC instruction to the active function. -// Operates on the global context. -func AESIMC(mx, x operand.Op) { ctx.AESIMC(mx, x) } - -// AESKEYGENASSIST: AES Round Key Generation Assist. -// -// Forms: -// -// AESKEYGENASSIST imm8 m128 xmm -// AESKEYGENASSIST imm8 xmm xmm -// -// Construct and append a AESKEYGENASSIST instruction to the active function. -func (c *Context) AESKEYGENASSIST(i, mx, x operand.Op) { - c.addinstruction(x86.AESKEYGENASSIST(i, mx, x)) -} - -// AESKEYGENASSIST: AES Round Key Generation Assist. -// -// Forms: -// -// AESKEYGENASSIST imm8 m128 xmm -// AESKEYGENASSIST imm8 xmm xmm -// -// Construct and append a AESKEYGENASSIST instruction to the active function. -// Operates on the global context. -func AESKEYGENASSIST(i, mx, x operand.Op) { ctx.AESKEYGENASSIST(i, mx, x) } - -// ANDB: Logical AND. -// -// Forms: -// -// ANDB imm8 al -// ANDB imm8 m8 -// ANDB imm8 r8 -// ANDB m8 r8 -// ANDB r8 m8 -// ANDB r8 r8 -// -// Construct and append a ANDB instruction to the active function. -func (c *Context) ANDB(imr, amr operand.Op) { - c.addinstruction(x86.ANDB(imr, amr)) -} - -// ANDB: Logical AND. -// -// Forms: -// -// ANDB imm8 al -// ANDB imm8 m8 -// ANDB imm8 r8 -// ANDB m8 r8 -// ANDB r8 m8 -// ANDB r8 r8 -// -// Construct and append a ANDB instruction to the active function. -// Operates on the global context. -func ANDB(imr, amr operand.Op) { ctx.ANDB(imr, amr) } - -// ANDL: Logical AND. -// -// Forms: -// -// ANDL imm32 eax -// ANDL imm32 m32 -// ANDL imm32 r32 -// ANDL imm8 m32 -// ANDL imm8 r32 -// ANDL m32 r32 -// ANDL r32 m32 -// ANDL r32 r32 -// -// Construct and append a ANDL instruction to the active function. -func (c *Context) ANDL(imr, emr operand.Op) { - c.addinstruction(x86.ANDL(imr, emr)) -} - -// ANDL: Logical AND. -// -// Forms: -// -// ANDL imm32 eax -// ANDL imm32 m32 -// ANDL imm32 r32 -// ANDL imm8 m32 -// ANDL imm8 r32 -// ANDL m32 r32 -// ANDL r32 m32 -// ANDL r32 r32 -// -// Construct and append a ANDL instruction to the active function. -// Operates on the global context. -func ANDL(imr, emr operand.Op) { ctx.ANDL(imr, emr) } - -// ANDNL: Logical AND NOT. -// -// Forms: -// -// ANDNL m32 r32 r32 -// ANDNL r32 r32 r32 -// -// Construct and append a ANDNL instruction to the active function. -func (c *Context) ANDNL(mr, r, r1 operand.Op) { - c.addinstruction(x86.ANDNL(mr, r, r1)) -} - -// ANDNL: Logical AND NOT. -// -// Forms: -// -// ANDNL m32 r32 r32 -// ANDNL r32 r32 r32 -// -// Construct and append a ANDNL instruction to the active function. -// Operates on the global context. -func ANDNL(mr, r, r1 operand.Op) { ctx.ANDNL(mr, r, r1) } - -// ANDNPD: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// ANDNPD m128 xmm -// ANDNPD xmm xmm -// -// Construct and append a ANDNPD instruction to the active function. -func (c *Context) ANDNPD(mx, x operand.Op) { - c.addinstruction(x86.ANDNPD(mx, x)) -} - -// ANDNPD: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// ANDNPD m128 xmm -// ANDNPD xmm xmm -// -// Construct and append a ANDNPD instruction to the active function. -// Operates on the global context. -func ANDNPD(mx, x operand.Op) { ctx.ANDNPD(mx, x) } - -// ANDNPS: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// ANDNPS m128 xmm -// ANDNPS xmm xmm -// -// Construct and append a ANDNPS instruction to the active function. -func (c *Context) ANDNPS(mx, x operand.Op) { - c.addinstruction(x86.ANDNPS(mx, x)) -} - -// ANDNPS: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// ANDNPS m128 xmm -// ANDNPS xmm xmm -// -// Construct and append a ANDNPS instruction to the active function. -// Operates on the global context. -func ANDNPS(mx, x operand.Op) { ctx.ANDNPS(mx, x) } - -// ANDNQ: Logical AND NOT. -// -// Forms: -// -// ANDNQ m64 r64 r64 -// ANDNQ r64 r64 r64 -// -// Construct and append a ANDNQ instruction to the active function. -func (c *Context) ANDNQ(mr, r, r1 operand.Op) { - c.addinstruction(x86.ANDNQ(mr, r, r1)) -} - -// ANDNQ: Logical AND NOT. -// -// Forms: -// -// ANDNQ m64 r64 r64 -// ANDNQ r64 r64 r64 -// -// Construct and append a ANDNQ instruction to the active function. -// Operates on the global context. -func ANDNQ(mr, r, r1 operand.Op) { ctx.ANDNQ(mr, r, r1) } - -// ANDPD: Bitwise Logical AND of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// ANDPD m128 xmm -// ANDPD xmm xmm -// -// Construct and append a ANDPD instruction to the active function. -func (c *Context) ANDPD(mx, x operand.Op) { - c.addinstruction(x86.ANDPD(mx, x)) -} - -// ANDPD: Bitwise Logical AND of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// ANDPD m128 xmm -// ANDPD xmm xmm -// -// Construct and append a ANDPD instruction to the active function. -// Operates on the global context. -func ANDPD(mx, x operand.Op) { ctx.ANDPD(mx, x) } - -// ANDPS: Bitwise Logical AND of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// ANDPS m128 xmm -// ANDPS xmm xmm -// -// Construct and append a ANDPS instruction to the active function. -func (c *Context) ANDPS(mx, x operand.Op) { - c.addinstruction(x86.ANDPS(mx, x)) -} - -// ANDPS: Bitwise Logical AND of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// ANDPS m128 xmm -// ANDPS xmm xmm -// -// Construct and append a ANDPS instruction to the active function. -// Operates on the global context. -func ANDPS(mx, x operand.Op) { ctx.ANDPS(mx, x) } - -// ANDQ: Logical AND. -// -// Forms: -// -// ANDQ imm32 m64 -// ANDQ imm32 r64 -// ANDQ imm32 rax -// ANDQ imm8 m64 -// ANDQ imm8 r64 -// ANDQ m64 r64 -// ANDQ r64 m64 -// ANDQ r64 r64 -// -// Construct and append a ANDQ instruction to the active function. -func (c *Context) ANDQ(imr, mr operand.Op) { - c.addinstruction(x86.ANDQ(imr, mr)) -} - -// ANDQ: Logical AND. -// -// Forms: -// -// ANDQ imm32 m64 -// ANDQ imm32 r64 -// ANDQ imm32 rax -// ANDQ imm8 m64 -// ANDQ imm8 r64 -// ANDQ m64 r64 -// ANDQ r64 m64 -// ANDQ r64 r64 -// -// Construct and append a ANDQ instruction to the active function. -// Operates on the global context. -func ANDQ(imr, mr operand.Op) { ctx.ANDQ(imr, mr) } - -// ANDW: Logical AND. -// -// Forms: -// -// ANDW imm16 ax -// ANDW imm16 m16 -// ANDW imm16 r16 -// ANDW imm8 m16 -// ANDW imm8 r16 -// ANDW m16 r16 -// ANDW r16 m16 -// ANDW r16 r16 -// -// Construct and append a ANDW instruction to the active function. -func (c *Context) ANDW(imr, amr operand.Op) { - c.addinstruction(x86.ANDW(imr, amr)) -} - -// ANDW: Logical AND. -// -// Forms: -// -// ANDW imm16 ax -// ANDW imm16 m16 -// ANDW imm16 r16 -// ANDW imm8 m16 -// ANDW imm8 r16 -// ANDW m16 r16 -// ANDW r16 m16 -// ANDW r16 r16 -// -// Construct and append a ANDW instruction to the active function. -// Operates on the global context. -func ANDW(imr, amr operand.Op) { ctx.ANDW(imr, amr) } - -// BEXTRL: Bit Field Extract. -// -// Forms: -// -// BEXTRL r32 m32 r32 -// BEXTRL r32 r32 r32 -// -// Construct and append a BEXTRL instruction to the active function. -func (c *Context) BEXTRL(r, mr, r1 operand.Op) { - c.addinstruction(x86.BEXTRL(r, mr, r1)) -} - -// BEXTRL: Bit Field Extract. -// -// Forms: -// -// BEXTRL r32 m32 r32 -// BEXTRL r32 r32 r32 -// -// Construct and append a BEXTRL instruction to the active function. -// Operates on the global context. -func BEXTRL(r, mr, r1 operand.Op) { ctx.BEXTRL(r, mr, r1) } - -// BEXTRQ: Bit Field Extract. -// -// Forms: -// -// BEXTRQ r64 m64 r64 -// BEXTRQ r64 r64 r64 -// -// Construct and append a BEXTRQ instruction to the active function. -func (c *Context) BEXTRQ(r, mr, r1 operand.Op) { - c.addinstruction(x86.BEXTRQ(r, mr, r1)) -} - -// BEXTRQ: Bit Field Extract. -// -// Forms: -// -// BEXTRQ r64 m64 r64 -// BEXTRQ r64 r64 r64 -// -// Construct and append a BEXTRQ instruction to the active function. -// Operates on the global context. -func BEXTRQ(r, mr, r1 operand.Op) { ctx.BEXTRQ(r, mr, r1) } - -// BLENDPD: Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// BLENDPD imm8 m128 xmm -// BLENDPD imm8 xmm xmm -// -// Construct and append a BLENDPD instruction to the active function. -func (c *Context) BLENDPD(i, mx, x operand.Op) { - c.addinstruction(x86.BLENDPD(i, mx, x)) -} - -// BLENDPD: Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// BLENDPD imm8 m128 xmm -// BLENDPD imm8 xmm xmm -// -// Construct and append a BLENDPD instruction to the active function. -// Operates on the global context. -func BLENDPD(i, mx, x operand.Op) { ctx.BLENDPD(i, mx, x) } - -// BLENDPS: Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// BLENDPS imm8 m128 xmm -// BLENDPS imm8 xmm xmm -// -// Construct and append a BLENDPS instruction to the active function. -func (c *Context) BLENDPS(i, mx, x operand.Op) { - c.addinstruction(x86.BLENDPS(i, mx, x)) -} - -// BLENDPS: Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// BLENDPS imm8 m128 xmm -// BLENDPS imm8 xmm xmm -// -// Construct and append a BLENDPS instruction to the active function. -// Operates on the global context. -func BLENDPS(i, mx, x operand.Op) { ctx.BLENDPS(i, mx, x) } - -// BLENDVPD: Variable Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// BLENDVPD xmm0 m128 xmm -// BLENDVPD xmm0 xmm xmm -// -// Construct and append a BLENDVPD instruction to the active function. -func (c *Context) BLENDVPD(x, mx, x1 operand.Op) { - c.addinstruction(x86.BLENDVPD(x, mx, x1)) -} - -// BLENDVPD: Variable Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// BLENDVPD xmm0 m128 xmm -// BLENDVPD xmm0 xmm xmm -// -// Construct and append a BLENDVPD instruction to the active function. -// Operates on the global context. -func BLENDVPD(x, mx, x1 operand.Op) { ctx.BLENDVPD(x, mx, x1) } - -// BLENDVPS: Variable Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// BLENDVPS xmm0 m128 xmm -// BLENDVPS xmm0 xmm xmm -// -// Construct and append a BLENDVPS instruction to the active function. -func (c *Context) BLENDVPS(x, mx, x1 operand.Op) { - c.addinstruction(x86.BLENDVPS(x, mx, x1)) -} - -// BLENDVPS: Variable Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// BLENDVPS xmm0 m128 xmm -// BLENDVPS xmm0 xmm xmm -// -// Construct and append a BLENDVPS instruction to the active function. -// Operates on the global context. -func BLENDVPS(x, mx, x1 operand.Op) { ctx.BLENDVPS(x, mx, x1) } - -// BLSIL: Isolate Lowest Set Bit. -// -// Forms: -// -// BLSIL m32 r32 -// BLSIL r32 r32 -// -// Construct and append a BLSIL instruction to the active function. -func (c *Context) BLSIL(mr, r operand.Op) { - c.addinstruction(x86.BLSIL(mr, r)) -} - -// BLSIL: Isolate Lowest Set Bit. -// -// Forms: -// -// BLSIL m32 r32 -// BLSIL r32 r32 -// -// Construct and append a BLSIL instruction to the active function. -// Operates on the global context. -func BLSIL(mr, r operand.Op) { ctx.BLSIL(mr, r) } - -// BLSIQ: Isolate Lowest Set Bit. -// -// Forms: -// -// BLSIQ m64 r64 -// BLSIQ r64 r64 -// -// Construct and append a BLSIQ instruction to the active function. -func (c *Context) BLSIQ(mr, r operand.Op) { - c.addinstruction(x86.BLSIQ(mr, r)) -} - -// BLSIQ: Isolate Lowest Set Bit. -// -// Forms: -// -// BLSIQ m64 r64 -// BLSIQ r64 r64 -// -// Construct and append a BLSIQ instruction to the active function. -// Operates on the global context. -func BLSIQ(mr, r operand.Op) { ctx.BLSIQ(mr, r) } - -// BLSMSKL: Mask From Lowest Set Bit. -// -// Forms: -// -// BLSMSKL m32 r32 -// BLSMSKL r32 r32 -// -// Construct and append a BLSMSKL instruction to the active function. -func (c *Context) BLSMSKL(mr, r operand.Op) { - c.addinstruction(x86.BLSMSKL(mr, r)) -} - -// BLSMSKL: Mask From Lowest Set Bit. -// -// Forms: -// -// BLSMSKL m32 r32 -// BLSMSKL r32 r32 -// -// Construct and append a BLSMSKL instruction to the active function. -// Operates on the global context. -func BLSMSKL(mr, r operand.Op) { ctx.BLSMSKL(mr, r) } - -// BLSMSKQ: Mask From Lowest Set Bit. -// -// Forms: -// -// BLSMSKQ m64 r64 -// BLSMSKQ r64 r64 -// -// Construct and append a BLSMSKQ instruction to the active function. -func (c *Context) BLSMSKQ(mr, r operand.Op) { - c.addinstruction(x86.BLSMSKQ(mr, r)) -} - -// BLSMSKQ: Mask From Lowest Set Bit. -// -// Forms: -// -// BLSMSKQ m64 r64 -// BLSMSKQ r64 r64 -// -// Construct and append a BLSMSKQ instruction to the active function. -// Operates on the global context. -func BLSMSKQ(mr, r operand.Op) { ctx.BLSMSKQ(mr, r) } - -// BLSRL: Reset Lowest Set Bit. -// -// Forms: -// -// BLSRL m32 r32 -// BLSRL r32 r32 -// -// Construct and append a BLSRL instruction to the active function. -func (c *Context) BLSRL(mr, r operand.Op) { - c.addinstruction(x86.BLSRL(mr, r)) -} - -// BLSRL: Reset Lowest Set Bit. -// -// Forms: -// -// BLSRL m32 r32 -// BLSRL r32 r32 -// -// Construct and append a BLSRL instruction to the active function. -// Operates on the global context. -func BLSRL(mr, r operand.Op) { ctx.BLSRL(mr, r) } - -// BLSRQ: Reset Lowest Set Bit. -// -// Forms: -// -// BLSRQ m64 r64 -// BLSRQ r64 r64 -// -// Construct and append a BLSRQ instruction to the active function. -func (c *Context) BLSRQ(mr, r operand.Op) { - c.addinstruction(x86.BLSRQ(mr, r)) -} - -// BLSRQ: Reset Lowest Set Bit. -// -// Forms: -// -// BLSRQ m64 r64 -// BLSRQ r64 r64 -// -// Construct and append a BLSRQ instruction to the active function. -// Operates on the global context. -func BLSRQ(mr, r operand.Op) { ctx.BLSRQ(mr, r) } - -// BSFL: Bit Scan Forward. -// -// Forms: -// -// BSFL m32 r32 -// BSFL r32 r32 -// -// Construct and append a BSFL instruction to the active function. -func (c *Context) BSFL(mr, r operand.Op) { - c.addinstruction(x86.BSFL(mr, r)) -} - -// BSFL: Bit Scan Forward. -// -// Forms: -// -// BSFL m32 r32 -// BSFL r32 r32 -// -// Construct and append a BSFL instruction to the active function. -// Operates on the global context. -func BSFL(mr, r operand.Op) { ctx.BSFL(mr, r) } - -// BSFQ: Bit Scan Forward. -// -// Forms: -// -// BSFQ m64 r64 -// BSFQ r64 r64 -// -// Construct and append a BSFQ instruction to the active function. -func (c *Context) BSFQ(mr, r operand.Op) { - c.addinstruction(x86.BSFQ(mr, r)) -} - -// BSFQ: Bit Scan Forward. -// -// Forms: -// -// BSFQ m64 r64 -// BSFQ r64 r64 -// -// Construct and append a BSFQ instruction to the active function. -// Operates on the global context. -func BSFQ(mr, r operand.Op) { ctx.BSFQ(mr, r) } - -// BSFW: Bit Scan Forward. -// -// Forms: -// -// BSFW m16 r16 -// BSFW r16 r16 -// -// Construct and append a BSFW instruction to the active function. -func (c *Context) BSFW(mr, r operand.Op) { - c.addinstruction(x86.BSFW(mr, r)) -} - -// BSFW: Bit Scan Forward. -// -// Forms: -// -// BSFW m16 r16 -// BSFW r16 r16 -// -// Construct and append a BSFW instruction to the active function. -// Operates on the global context. -func BSFW(mr, r operand.Op) { ctx.BSFW(mr, r) } - -// BSRL: Bit Scan Reverse. -// -// Forms: -// -// BSRL m32 r32 -// BSRL r32 r32 -// -// Construct and append a BSRL instruction to the active function. -func (c *Context) BSRL(mr, r operand.Op) { - c.addinstruction(x86.BSRL(mr, r)) -} - -// BSRL: Bit Scan Reverse. -// -// Forms: -// -// BSRL m32 r32 -// BSRL r32 r32 -// -// Construct and append a BSRL instruction to the active function. -// Operates on the global context. -func BSRL(mr, r operand.Op) { ctx.BSRL(mr, r) } - -// BSRQ: Bit Scan Reverse. -// -// Forms: -// -// BSRQ m64 r64 -// BSRQ r64 r64 -// -// Construct and append a BSRQ instruction to the active function. -func (c *Context) BSRQ(mr, r operand.Op) { - c.addinstruction(x86.BSRQ(mr, r)) -} - -// BSRQ: Bit Scan Reverse. -// -// Forms: -// -// BSRQ m64 r64 -// BSRQ r64 r64 -// -// Construct and append a BSRQ instruction to the active function. -// Operates on the global context. -func BSRQ(mr, r operand.Op) { ctx.BSRQ(mr, r) } - -// BSRW: Bit Scan Reverse. -// -// Forms: -// -// BSRW m16 r16 -// BSRW r16 r16 -// -// Construct and append a BSRW instruction to the active function. -func (c *Context) BSRW(mr, r operand.Op) { - c.addinstruction(x86.BSRW(mr, r)) -} - -// BSRW: Bit Scan Reverse. -// -// Forms: -// -// BSRW m16 r16 -// BSRW r16 r16 -// -// Construct and append a BSRW instruction to the active function. -// Operates on the global context. -func BSRW(mr, r operand.Op) { ctx.BSRW(mr, r) } - -// BSWAPL: Byte Swap. -// -// Forms: -// -// BSWAPL r32 -// -// Construct and append a BSWAPL instruction to the active function. -func (c *Context) BSWAPL(r operand.Op) { - c.addinstruction(x86.BSWAPL(r)) -} - -// BSWAPL: Byte Swap. -// -// Forms: -// -// BSWAPL r32 -// -// Construct and append a BSWAPL instruction to the active function. -// Operates on the global context. -func BSWAPL(r operand.Op) { ctx.BSWAPL(r) } - -// BSWAPQ: Byte Swap. -// -// Forms: -// -// BSWAPQ r64 -// -// Construct and append a BSWAPQ instruction to the active function. -func (c *Context) BSWAPQ(r operand.Op) { - c.addinstruction(x86.BSWAPQ(r)) -} - -// BSWAPQ: Byte Swap. -// -// Forms: -// -// BSWAPQ r64 -// -// Construct and append a BSWAPQ instruction to the active function. -// Operates on the global context. -func BSWAPQ(r operand.Op) { ctx.BSWAPQ(r) } - -// BTCL: Bit Test and Complement. -// -// Forms: -// -// BTCL imm8 m32 -// BTCL imm8 r32 -// BTCL r32 m32 -// BTCL r32 r32 -// -// Construct and append a BTCL instruction to the active function. -func (c *Context) BTCL(ir, mr operand.Op) { - c.addinstruction(x86.BTCL(ir, mr)) -} - -// BTCL: Bit Test and Complement. -// -// Forms: -// -// BTCL imm8 m32 -// BTCL imm8 r32 -// BTCL r32 m32 -// BTCL r32 r32 -// -// Construct and append a BTCL instruction to the active function. -// Operates on the global context. -func BTCL(ir, mr operand.Op) { ctx.BTCL(ir, mr) } - -// BTCQ: Bit Test and Complement. -// -// Forms: -// -// BTCQ imm8 m64 -// BTCQ imm8 r64 -// BTCQ r64 m64 -// BTCQ r64 r64 -// -// Construct and append a BTCQ instruction to the active function. -func (c *Context) BTCQ(ir, mr operand.Op) { - c.addinstruction(x86.BTCQ(ir, mr)) -} - -// BTCQ: Bit Test and Complement. -// -// Forms: -// -// BTCQ imm8 m64 -// BTCQ imm8 r64 -// BTCQ r64 m64 -// BTCQ r64 r64 -// -// Construct and append a BTCQ instruction to the active function. -// Operates on the global context. -func BTCQ(ir, mr operand.Op) { ctx.BTCQ(ir, mr) } - -// BTCW: Bit Test and Complement. -// -// Forms: -// -// BTCW imm8 m16 -// BTCW imm8 r16 -// BTCW r16 m16 -// BTCW r16 r16 -// -// Construct and append a BTCW instruction to the active function. -func (c *Context) BTCW(ir, mr operand.Op) { - c.addinstruction(x86.BTCW(ir, mr)) -} - -// BTCW: Bit Test and Complement. -// -// Forms: -// -// BTCW imm8 m16 -// BTCW imm8 r16 -// BTCW r16 m16 -// BTCW r16 r16 -// -// Construct and append a BTCW instruction to the active function. -// Operates on the global context. -func BTCW(ir, mr operand.Op) { ctx.BTCW(ir, mr) } - -// BTL: Bit Test. -// -// Forms: -// -// BTL imm8 m32 -// BTL imm8 r32 -// BTL r32 m32 -// BTL r32 r32 -// -// Construct and append a BTL instruction to the active function. -func (c *Context) BTL(ir, mr operand.Op) { - c.addinstruction(x86.BTL(ir, mr)) -} - -// BTL: Bit Test. -// -// Forms: -// -// BTL imm8 m32 -// BTL imm8 r32 -// BTL r32 m32 -// BTL r32 r32 -// -// Construct and append a BTL instruction to the active function. -// Operates on the global context. -func BTL(ir, mr operand.Op) { ctx.BTL(ir, mr) } - -// BTQ: Bit Test. -// -// Forms: -// -// BTQ imm8 m64 -// BTQ imm8 r64 -// BTQ r64 m64 -// BTQ r64 r64 -// -// Construct and append a BTQ instruction to the active function. -func (c *Context) BTQ(ir, mr operand.Op) { - c.addinstruction(x86.BTQ(ir, mr)) -} - -// BTQ: Bit Test. -// -// Forms: -// -// BTQ imm8 m64 -// BTQ imm8 r64 -// BTQ r64 m64 -// BTQ r64 r64 -// -// Construct and append a BTQ instruction to the active function. -// Operates on the global context. -func BTQ(ir, mr operand.Op) { ctx.BTQ(ir, mr) } - -// BTRL: Bit Test and Reset. -// -// Forms: -// -// BTRL imm8 m32 -// BTRL imm8 r32 -// BTRL r32 m32 -// BTRL r32 r32 -// -// Construct and append a BTRL instruction to the active function. -func (c *Context) BTRL(ir, mr operand.Op) { - c.addinstruction(x86.BTRL(ir, mr)) -} - -// BTRL: Bit Test and Reset. -// -// Forms: -// -// BTRL imm8 m32 -// BTRL imm8 r32 -// BTRL r32 m32 -// BTRL r32 r32 -// -// Construct and append a BTRL instruction to the active function. -// Operates on the global context. -func BTRL(ir, mr operand.Op) { ctx.BTRL(ir, mr) } - -// BTRQ: Bit Test and Reset. -// -// Forms: -// -// BTRQ imm8 m64 -// BTRQ imm8 r64 -// BTRQ r64 m64 -// BTRQ r64 r64 -// -// Construct and append a BTRQ instruction to the active function. -func (c *Context) BTRQ(ir, mr operand.Op) { - c.addinstruction(x86.BTRQ(ir, mr)) -} - -// BTRQ: Bit Test and Reset. -// -// Forms: -// -// BTRQ imm8 m64 -// BTRQ imm8 r64 -// BTRQ r64 m64 -// BTRQ r64 r64 -// -// Construct and append a BTRQ instruction to the active function. -// Operates on the global context. -func BTRQ(ir, mr operand.Op) { ctx.BTRQ(ir, mr) } - -// BTRW: Bit Test and Reset. -// -// Forms: -// -// BTRW imm8 m16 -// BTRW imm8 r16 -// BTRW r16 m16 -// BTRW r16 r16 -// -// Construct and append a BTRW instruction to the active function. -func (c *Context) BTRW(ir, mr operand.Op) { - c.addinstruction(x86.BTRW(ir, mr)) -} - -// BTRW: Bit Test and Reset. -// -// Forms: -// -// BTRW imm8 m16 -// BTRW imm8 r16 -// BTRW r16 m16 -// BTRW r16 r16 -// -// Construct and append a BTRW instruction to the active function. -// Operates on the global context. -func BTRW(ir, mr operand.Op) { ctx.BTRW(ir, mr) } - -// BTSL: Bit Test and Set. -// -// Forms: -// -// BTSL imm8 m32 -// BTSL imm8 r32 -// BTSL r32 m32 -// BTSL r32 r32 -// -// Construct and append a BTSL instruction to the active function. -func (c *Context) BTSL(ir, mr operand.Op) { - c.addinstruction(x86.BTSL(ir, mr)) -} - -// BTSL: Bit Test and Set. -// -// Forms: -// -// BTSL imm8 m32 -// BTSL imm8 r32 -// BTSL r32 m32 -// BTSL r32 r32 -// -// Construct and append a BTSL instruction to the active function. -// Operates on the global context. -func BTSL(ir, mr operand.Op) { ctx.BTSL(ir, mr) } - -// BTSQ: Bit Test and Set. -// -// Forms: -// -// BTSQ imm8 m64 -// BTSQ imm8 r64 -// BTSQ r64 m64 -// BTSQ r64 r64 -// -// Construct and append a BTSQ instruction to the active function. -func (c *Context) BTSQ(ir, mr operand.Op) { - c.addinstruction(x86.BTSQ(ir, mr)) -} - -// BTSQ: Bit Test and Set. -// -// Forms: -// -// BTSQ imm8 m64 -// BTSQ imm8 r64 -// BTSQ r64 m64 -// BTSQ r64 r64 -// -// Construct and append a BTSQ instruction to the active function. -// Operates on the global context. -func BTSQ(ir, mr operand.Op) { ctx.BTSQ(ir, mr) } - -// BTSW: Bit Test and Set. -// -// Forms: -// -// BTSW imm8 m16 -// BTSW imm8 r16 -// BTSW r16 m16 -// BTSW r16 r16 -// -// Construct and append a BTSW instruction to the active function. -func (c *Context) BTSW(ir, mr operand.Op) { - c.addinstruction(x86.BTSW(ir, mr)) -} - -// BTSW: Bit Test and Set. -// -// Forms: -// -// BTSW imm8 m16 -// BTSW imm8 r16 -// BTSW r16 m16 -// BTSW r16 r16 -// -// Construct and append a BTSW instruction to the active function. -// Operates on the global context. -func BTSW(ir, mr operand.Op) { ctx.BTSW(ir, mr) } - -// BTW: Bit Test. -// -// Forms: -// -// BTW imm8 m16 -// BTW imm8 r16 -// BTW r16 m16 -// BTW r16 r16 -// -// Construct and append a BTW instruction to the active function. -func (c *Context) BTW(ir, mr operand.Op) { - c.addinstruction(x86.BTW(ir, mr)) -} - -// BTW: Bit Test. -// -// Forms: -// -// BTW imm8 m16 -// BTW imm8 r16 -// BTW r16 m16 -// BTW r16 r16 -// -// Construct and append a BTW instruction to the active function. -// Operates on the global context. -func BTW(ir, mr operand.Op) { ctx.BTW(ir, mr) } - -// BZHIL: Zero High Bits Starting with Specified Bit Position. -// -// Forms: -// -// BZHIL r32 m32 r32 -// BZHIL r32 r32 r32 -// -// Construct and append a BZHIL instruction to the active function. -func (c *Context) BZHIL(r, mr, r1 operand.Op) { - c.addinstruction(x86.BZHIL(r, mr, r1)) -} - -// BZHIL: Zero High Bits Starting with Specified Bit Position. -// -// Forms: -// -// BZHIL r32 m32 r32 -// BZHIL r32 r32 r32 -// -// Construct and append a BZHIL instruction to the active function. -// Operates on the global context. -func BZHIL(r, mr, r1 operand.Op) { ctx.BZHIL(r, mr, r1) } - -// BZHIQ: Zero High Bits Starting with Specified Bit Position. -// -// Forms: -// -// BZHIQ r64 m64 r64 -// BZHIQ r64 r64 r64 -// -// Construct and append a BZHIQ instruction to the active function. -func (c *Context) BZHIQ(r, mr, r1 operand.Op) { - c.addinstruction(x86.BZHIQ(r, mr, r1)) -} - -// BZHIQ: Zero High Bits Starting with Specified Bit Position. -// -// Forms: -// -// BZHIQ r64 m64 r64 -// BZHIQ r64 r64 r64 -// -// Construct and append a BZHIQ instruction to the active function. -// Operates on the global context. -func BZHIQ(r, mr, r1 operand.Op) { ctx.BZHIQ(r, mr, r1) } - -// CALL: Call Procedure. -// -// Forms: -// -// CALL rel32 -// -// Construct and append a CALL instruction to the active function. -func (c *Context) CALL(r operand.Op) { - c.addinstruction(x86.CALL(r)) -} - -// CALL: Call Procedure. -// -// Forms: -// -// CALL rel32 -// -// Construct and append a CALL instruction to the active function. -// Operates on the global context. -func CALL(r operand.Op) { ctx.CALL(r) } - -// CBW: Convert Byte to Word. -// -// Forms: -// -// CBW -// -// Construct and append a CBW instruction to the active function. -func (c *Context) CBW() { - c.addinstruction(x86.CBW()) -} - -// CBW: Convert Byte to Word. -// -// Forms: -// -// CBW -// -// Construct and append a CBW instruction to the active function. -// Operates on the global context. -func CBW() { ctx.CBW() } - -// CDQ: Convert Doubleword to Quadword. -// -// Forms: -// -// CDQ -// -// Construct and append a CDQ instruction to the active function. -func (c *Context) CDQ() { - c.addinstruction(x86.CDQ()) -} - -// CDQ: Convert Doubleword to Quadword. -// -// Forms: -// -// CDQ -// -// Construct and append a CDQ instruction to the active function. -// Operates on the global context. -func CDQ() { ctx.CDQ() } - -// CDQE: Convert Doubleword to Quadword. -// -// Forms: -// -// CDQE -// -// Construct and append a CDQE instruction to the active function. -func (c *Context) CDQE() { - c.addinstruction(x86.CDQE()) -} - -// CDQE: Convert Doubleword to Quadword. -// -// Forms: -// -// CDQE -// -// Construct and append a CDQE instruction to the active function. -// Operates on the global context. -func CDQE() { ctx.CDQE() } - -// CLC: Clear Carry Flag. -// -// Forms: -// -// CLC -// -// Construct and append a CLC instruction to the active function. -func (c *Context) CLC() { - c.addinstruction(x86.CLC()) -} - -// CLC: Clear Carry Flag. -// -// Forms: -// -// CLC -// -// Construct and append a CLC instruction to the active function. -// Operates on the global context. -func CLC() { ctx.CLC() } - -// CLD: Clear Direction Flag. -// -// Forms: -// -// CLD -// -// Construct and append a CLD instruction to the active function. -func (c *Context) CLD() { - c.addinstruction(x86.CLD()) -} - -// CLD: Clear Direction Flag. -// -// Forms: -// -// CLD -// -// Construct and append a CLD instruction to the active function. -// Operates on the global context. -func CLD() { ctx.CLD() } - -// CLFLUSH: Flush Cache Line. -// -// Forms: -// -// CLFLUSH m8 -// -// Construct and append a CLFLUSH instruction to the active function. -func (c *Context) CLFLUSH(m operand.Op) { - c.addinstruction(x86.CLFLUSH(m)) -} - -// CLFLUSH: Flush Cache Line. -// -// Forms: -// -// CLFLUSH m8 -// -// Construct and append a CLFLUSH instruction to the active function. -// Operates on the global context. -func CLFLUSH(m operand.Op) { ctx.CLFLUSH(m) } - -// CLFLUSHOPT: Flush Cache Line Optimized. -// -// Forms: -// -// CLFLUSHOPT m8 -// -// Construct and append a CLFLUSHOPT instruction to the active function. -func (c *Context) CLFLUSHOPT(m operand.Op) { - c.addinstruction(x86.CLFLUSHOPT(m)) -} - -// CLFLUSHOPT: Flush Cache Line Optimized. -// -// Forms: -// -// CLFLUSHOPT m8 -// -// Construct and append a CLFLUSHOPT instruction to the active function. -// Operates on the global context. -func CLFLUSHOPT(m operand.Op) { ctx.CLFLUSHOPT(m) } - -// CMC: Complement Carry Flag. -// -// Forms: -// -// CMC -// -// Construct and append a CMC instruction to the active function. -func (c *Context) CMC() { - c.addinstruction(x86.CMC()) -} - -// CMC: Complement Carry Flag. -// -// Forms: -// -// CMC -// -// Construct and append a CMC instruction to the active function. -// Operates on the global context. -func CMC() { ctx.CMC() } - -// CMOVLCC: Move if above or equal (CF == 0). -// -// Forms: -// -// CMOVLCC m32 r32 -// CMOVLCC r32 r32 -// -// Construct and append a CMOVLCC instruction to the active function. -func (c *Context) CMOVLCC(mr, r operand.Op) { - c.addinstruction(x86.CMOVLCC(mr, r)) -} - -// CMOVLCC: Move if above or equal (CF == 0). -// -// Forms: -// -// CMOVLCC m32 r32 -// CMOVLCC r32 r32 -// -// Construct and append a CMOVLCC instruction to the active function. -// Operates on the global context. -func CMOVLCC(mr, r operand.Op) { ctx.CMOVLCC(mr, r) } - -// CMOVLCS: Move if below (CF == 1). -// -// Forms: -// -// CMOVLCS m32 r32 -// CMOVLCS r32 r32 -// -// Construct and append a CMOVLCS instruction to the active function. -func (c *Context) CMOVLCS(mr, r operand.Op) { - c.addinstruction(x86.CMOVLCS(mr, r)) -} - -// CMOVLCS: Move if below (CF == 1). -// -// Forms: -// -// CMOVLCS m32 r32 -// CMOVLCS r32 r32 -// -// Construct and append a CMOVLCS instruction to the active function. -// Operates on the global context. -func CMOVLCS(mr, r operand.Op) { ctx.CMOVLCS(mr, r) } - -// CMOVLEQ: Move if equal (ZF == 1). -// -// Forms: -// -// CMOVLEQ m32 r32 -// CMOVLEQ r32 r32 -// -// Construct and append a CMOVLEQ instruction to the active function. -func (c *Context) CMOVLEQ(mr, r operand.Op) { - c.addinstruction(x86.CMOVLEQ(mr, r)) -} - -// CMOVLEQ: Move if equal (ZF == 1). -// -// Forms: -// -// CMOVLEQ m32 r32 -// CMOVLEQ r32 r32 -// -// Construct and append a CMOVLEQ instruction to the active function. -// Operates on the global context. -func CMOVLEQ(mr, r operand.Op) { ctx.CMOVLEQ(mr, r) } - -// CMOVLGE: Move if greater or equal (SF == OF). -// -// Forms: -// -// CMOVLGE m32 r32 -// CMOVLGE r32 r32 -// -// Construct and append a CMOVLGE instruction to the active function. -func (c *Context) CMOVLGE(mr, r operand.Op) { - c.addinstruction(x86.CMOVLGE(mr, r)) -} - -// CMOVLGE: Move if greater or equal (SF == OF). -// -// Forms: -// -// CMOVLGE m32 r32 -// CMOVLGE r32 r32 -// -// Construct and append a CMOVLGE instruction to the active function. -// Operates on the global context. -func CMOVLGE(mr, r operand.Op) { ctx.CMOVLGE(mr, r) } - -// CMOVLGT: Move if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// CMOVLGT m32 r32 -// CMOVLGT r32 r32 -// -// Construct and append a CMOVLGT instruction to the active function. -func (c *Context) CMOVLGT(mr, r operand.Op) { - c.addinstruction(x86.CMOVLGT(mr, r)) -} - -// CMOVLGT: Move if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// CMOVLGT m32 r32 -// CMOVLGT r32 r32 -// -// Construct and append a CMOVLGT instruction to the active function. -// Operates on the global context. -func CMOVLGT(mr, r operand.Op) { ctx.CMOVLGT(mr, r) } - -// CMOVLHI: Move if above (CF == 0 and ZF == 0). -// -// Forms: -// -// CMOVLHI m32 r32 -// CMOVLHI r32 r32 -// -// Construct and append a CMOVLHI instruction to the active function. -func (c *Context) CMOVLHI(mr, r operand.Op) { - c.addinstruction(x86.CMOVLHI(mr, r)) -} - -// CMOVLHI: Move if above (CF == 0 and ZF == 0). -// -// Forms: -// -// CMOVLHI m32 r32 -// CMOVLHI r32 r32 -// -// Construct and append a CMOVLHI instruction to the active function. -// Operates on the global context. -func CMOVLHI(mr, r operand.Op) { ctx.CMOVLHI(mr, r) } - -// CMOVLLE: Move if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// CMOVLLE m32 r32 -// CMOVLLE r32 r32 -// -// Construct and append a CMOVLLE instruction to the active function. -func (c *Context) CMOVLLE(mr, r operand.Op) { - c.addinstruction(x86.CMOVLLE(mr, r)) -} - -// CMOVLLE: Move if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// CMOVLLE m32 r32 -// CMOVLLE r32 r32 -// -// Construct and append a CMOVLLE instruction to the active function. -// Operates on the global context. -func CMOVLLE(mr, r operand.Op) { ctx.CMOVLLE(mr, r) } - -// CMOVLLS: Move if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// CMOVLLS m32 r32 -// CMOVLLS r32 r32 -// -// Construct and append a CMOVLLS instruction to the active function. -func (c *Context) CMOVLLS(mr, r operand.Op) { - c.addinstruction(x86.CMOVLLS(mr, r)) -} - -// CMOVLLS: Move if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// CMOVLLS m32 r32 -// CMOVLLS r32 r32 -// -// Construct and append a CMOVLLS instruction to the active function. -// Operates on the global context. -func CMOVLLS(mr, r operand.Op) { ctx.CMOVLLS(mr, r) } - -// CMOVLLT: Move if less (SF != OF). -// -// Forms: -// -// CMOVLLT m32 r32 -// CMOVLLT r32 r32 -// -// Construct and append a CMOVLLT instruction to the active function. -func (c *Context) CMOVLLT(mr, r operand.Op) { - c.addinstruction(x86.CMOVLLT(mr, r)) -} - -// CMOVLLT: Move if less (SF != OF). -// -// Forms: -// -// CMOVLLT m32 r32 -// CMOVLLT r32 r32 -// -// Construct and append a CMOVLLT instruction to the active function. -// Operates on the global context. -func CMOVLLT(mr, r operand.Op) { ctx.CMOVLLT(mr, r) } - -// CMOVLMI: Move if sign (SF == 1). -// -// Forms: -// -// CMOVLMI m32 r32 -// CMOVLMI r32 r32 -// -// Construct and append a CMOVLMI instruction to the active function. -func (c *Context) CMOVLMI(mr, r operand.Op) { - c.addinstruction(x86.CMOVLMI(mr, r)) -} - -// CMOVLMI: Move if sign (SF == 1). -// -// Forms: -// -// CMOVLMI m32 r32 -// CMOVLMI r32 r32 -// -// Construct and append a CMOVLMI instruction to the active function. -// Operates on the global context. -func CMOVLMI(mr, r operand.Op) { ctx.CMOVLMI(mr, r) } - -// CMOVLNE: Move if not equal (ZF == 0). -// -// Forms: -// -// CMOVLNE m32 r32 -// CMOVLNE r32 r32 -// -// Construct and append a CMOVLNE instruction to the active function. -func (c *Context) CMOVLNE(mr, r operand.Op) { - c.addinstruction(x86.CMOVLNE(mr, r)) -} - -// CMOVLNE: Move if not equal (ZF == 0). -// -// Forms: -// -// CMOVLNE m32 r32 -// CMOVLNE r32 r32 -// -// Construct and append a CMOVLNE instruction to the active function. -// Operates on the global context. -func CMOVLNE(mr, r operand.Op) { ctx.CMOVLNE(mr, r) } - -// CMOVLOC: Move if not overflow (OF == 0). -// -// Forms: -// -// CMOVLOC m32 r32 -// CMOVLOC r32 r32 -// -// Construct and append a CMOVLOC instruction to the active function. -func (c *Context) CMOVLOC(mr, r operand.Op) { - c.addinstruction(x86.CMOVLOC(mr, r)) -} - -// CMOVLOC: Move if not overflow (OF == 0). -// -// Forms: -// -// CMOVLOC m32 r32 -// CMOVLOC r32 r32 -// -// Construct and append a CMOVLOC instruction to the active function. -// Operates on the global context. -func CMOVLOC(mr, r operand.Op) { ctx.CMOVLOC(mr, r) } - -// CMOVLOS: Move if overflow (OF == 1). -// -// Forms: -// -// CMOVLOS m32 r32 -// CMOVLOS r32 r32 -// -// Construct and append a CMOVLOS instruction to the active function. -func (c *Context) CMOVLOS(mr, r operand.Op) { - c.addinstruction(x86.CMOVLOS(mr, r)) -} - -// CMOVLOS: Move if overflow (OF == 1). -// -// Forms: -// -// CMOVLOS m32 r32 -// CMOVLOS r32 r32 -// -// Construct and append a CMOVLOS instruction to the active function. -// Operates on the global context. -func CMOVLOS(mr, r operand.Op) { ctx.CMOVLOS(mr, r) } - -// CMOVLPC: Move if not parity (PF == 0). -// -// Forms: -// -// CMOVLPC m32 r32 -// CMOVLPC r32 r32 -// -// Construct and append a CMOVLPC instruction to the active function. -func (c *Context) CMOVLPC(mr, r operand.Op) { - c.addinstruction(x86.CMOVLPC(mr, r)) -} - -// CMOVLPC: Move if not parity (PF == 0). -// -// Forms: -// -// CMOVLPC m32 r32 -// CMOVLPC r32 r32 -// -// Construct and append a CMOVLPC instruction to the active function. -// Operates on the global context. -func CMOVLPC(mr, r operand.Op) { ctx.CMOVLPC(mr, r) } - -// CMOVLPL: Move if not sign (SF == 0). -// -// Forms: -// -// CMOVLPL m32 r32 -// CMOVLPL r32 r32 -// -// Construct and append a CMOVLPL instruction to the active function. -func (c *Context) CMOVLPL(mr, r operand.Op) { - c.addinstruction(x86.CMOVLPL(mr, r)) -} - -// CMOVLPL: Move if not sign (SF == 0). -// -// Forms: -// -// CMOVLPL m32 r32 -// CMOVLPL r32 r32 -// -// Construct and append a CMOVLPL instruction to the active function. -// Operates on the global context. -func CMOVLPL(mr, r operand.Op) { ctx.CMOVLPL(mr, r) } - -// CMOVLPS: Move if parity (PF == 1). -// -// Forms: -// -// CMOVLPS m32 r32 -// CMOVLPS r32 r32 -// -// Construct and append a CMOVLPS instruction to the active function. -func (c *Context) CMOVLPS(mr, r operand.Op) { - c.addinstruction(x86.CMOVLPS(mr, r)) -} - -// CMOVLPS: Move if parity (PF == 1). -// -// Forms: -// -// CMOVLPS m32 r32 -// CMOVLPS r32 r32 -// -// Construct and append a CMOVLPS instruction to the active function. -// Operates on the global context. -func CMOVLPS(mr, r operand.Op) { ctx.CMOVLPS(mr, r) } - -// CMOVQCC: Move if above or equal (CF == 0). -// -// Forms: -// -// CMOVQCC m64 r64 -// CMOVQCC r64 r64 -// -// Construct and append a CMOVQCC instruction to the active function. -func (c *Context) CMOVQCC(mr, r operand.Op) { - c.addinstruction(x86.CMOVQCC(mr, r)) -} - -// CMOVQCC: Move if above or equal (CF == 0). -// -// Forms: -// -// CMOVQCC m64 r64 -// CMOVQCC r64 r64 -// -// Construct and append a CMOVQCC instruction to the active function. -// Operates on the global context. -func CMOVQCC(mr, r operand.Op) { ctx.CMOVQCC(mr, r) } - -// CMOVQCS: Move if below (CF == 1). -// -// Forms: -// -// CMOVQCS m64 r64 -// CMOVQCS r64 r64 -// -// Construct and append a CMOVQCS instruction to the active function. -func (c *Context) CMOVQCS(mr, r operand.Op) { - c.addinstruction(x86.CMOVQCS(mr, r)) -} - -// CMOVQCS: Move if below (CF == 1). -// -// Forms: -// -// CMOVQCS m64 r64 -// CMOVQCS r64 r64 -// -// Construct and append a CMOVQCS instruction to the active function. -// Operates on the global context. -func CMOVQCS(mr, r operand.Op) { ctx.CMOVQCS(mr, r) } - -// CMOVQEQ: Move if equal (ZF == 1). -// -// Forms: -// -// CMOVQEQ m64 r64 -// CMOVQEQ r64 r64 -// -// Construct and append a CMOVQEQ instruction to the active function. -func (c *Context) CMOVQEQ(mr, r operand.Op) { - c.addinstruction(x86.CMOVQEQ(mr, r)) -} - -// CMOVQEQ: Move if equal (ZF == 1). -// -// Forms: -// -// CMOVQEQ m64 r64 -// CMOVQEQ r64 r64 -// -// Construct and append a CMOVQEQ instruction to the active function. -// Operates on the global context. -func CMOVQEQ(mr, r operand.Op) { ctx.CMOVQEQ(mr, r) } - -// CMOVQGE: Move if greater or equal (SF == OF). -// -// Forms: -// -// CMOVQGE m64 r64 -// CMOVQGE r64 r64 -// -// Construct and append a CMOVQGE instruction to the active function. -func (c *Context) CMOVQGE(mr, r operand.Op) { - c.addinstruction(x86.CMOVQGE(mr, r)) -} - -// CMOVQGE: Move if greater or equal (SF == OF). -// -// Forms: -// -// CMOVQGE m64 r64 -// CMOVQGE r64 r64 -// -// Construct and append a CMOVQGE instruction to the active function. -// Operates on the global context. -func CMOVQGE(mr, r operand.Op) { ctx.CMOVQGE(mr, r) } - -// CMOVQGT: Move if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// CMOVQGT m64 r64 -// CMOVQGT r64 r64 -// -// Construct and append a CMOVQGT instruction to the active function. -func (c *Context) CMOVQGT(mr, r operand.Op) { - c.addinstruction(x86.CMOVQGT(mr, r)) -} - -// CMOVQGT: Move if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// CMOVQGT m64 r64 -// CMOVQGT r64 r64 -// -// Construct and append a CMOVQGT instruction to the active function. -// Operates on the global context. -func CMOVQGT(mr, r operand.Op) { ctx.CMOVQGT(mr, r) } - -// CMOVQHI: Move if above (CF == 0 and ZF == 0). -// -// Forms: -// -// CMOVQHI m64 r64 -// CMOVQHI r64 r64 -// -// Construct and append a CMOVQHI instruction to the active function. -func (c *Context) CMOVQHI(mr, r operand.Op) { - c.addinstruction(x86.CMOVQHI(mr, r)) -} - -// CMOVQHI: Move if above (CF == 0 and ZF == 0). -// -// Forms: -// -// CMOVQHI m64 r64 -// CMOVQHI r64 r64 -// -// Construct and append a CMOVQHI instruction to the active function. -// Operates on the global context. -func CMOVQHI(mr, r operand.Op) { ctx.CMOVQHI(mr, r) } - -// CMOVQLE: Move if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// CMOVQLE m64 r64 -// CMOVQLE r64 r64 -// -// Construct and append a CMOVQLE instruction to the active function. -func (c *Context) CMOVQLE(mr, r operand.Op) { - c.addinstruction(x86.CMOVQLE(mr, r)) -} - -// CMOVQLE: Move if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// CMOVQLE m64 r64 -// CMOVQLE r64 r64 -// -// Construct and append a CMOVQLE instruction to the active function. -// Operates on the global context. -func CMOVQLE(mr, r operand.Op) { ctx.CMOVQLE(mr, r) } - -// CMOVQLS: Move if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// CMOVQLS m64 r64 -// CMOVQLS r64 r64 -// -// Construct and append a CMOVQLS instruction to the active function. -func (c *Context) CMOVQLS(mr, r operand.Op) { - c.addinstruction(x86.CMOVQLS(mr, r)) -} - -// CMOVQLS: Move if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// CMOVQLS m64 r64 -// CMOVQLS r64 r64 -// -// Construct and append a CMOVQLS instruction to the active function. -// Operates on the global context. -func CMOVQLS(mr, r operand.Op) { ctx.CMOVQLS(mr, r) } - -// CMOVQLT: Move if less (SF != OF). -// -// Forms: -// -// CMOVQLT m64 r64 -// CMOVQLT r64 r64 -// -// Construct and append a CMOVQLT instruction to the active function. -func (c *Context) CMOVQLT(mr, r operand.Op) { - c.addinstruction(x86.CMOVQLT(mr, r)) -} - -// CMOVQLT: Move if less (SF != OF). -// -// Forms: -// -// CMOVQLT m64 r64 -// CMOVQLT r64 r64 -// -// Construct and append a CMOVQLT instruction to the active function. -// Operates on the global context. -func CMOVQLT(mr, r operand.Op) { ctx.CMOVQLT(mr, r) } - -// CMOVQMI: Move if sign (SF == 1). -// -// Forms: -// -// CMOVQMI m64 r64 -// CMOVQMI r64 r64 -// -// Construct and append a CMOVQMI instruction to the active function. -func (c *Context) CMOVQMI(mr, r operand.Op) { - c.addinstruction(x86.CMOVQMI(mr, r)) -} - -// CMOVQMI: Move if sign (SF == 1). -// -// Forms: -// -// CMOVQMI m64 r64 -// CMOVQMI r64 r64 -// -// Construct and append a CMOVQMI instruction to the active function. -// Operates on the global context. -func CMOVQMI(mr, r operand.Op) { ctx.CMOVQMI(mr, r) } - -// CMOVQNE: Move if not equal (ZF == 0). -// -// Forms: -// -// CMOVQNE m64 r64 -// CMOVQNE r64 r64 -// -// Construct and append a CMOVQNE instruction to the active function. -func (c *Context) CMOVQNE(mr, r operand.Op) { - c.addinstruction(x86.CMOVQNE(mr, r)) -} - -// CMOVQNE: Move if not equal (ZF == 0). -// -// Forms: -// -// CMOVQNE m64 r64 -// CMOVQNE r64 r64 -// -// Construct and append a CMOVQNE instruction to the active function. -// Operates on the global context. -func CMOVQNE(mr, r operand.Op) { ctx.CMOVQNE(mr, r) } - -// CMOVQOC: Move if not overflow (OF == 0). -// -// Forms: -// -// CMOVQOC m64 r64 -// CMOVQOC r64 r64 -// -// Construct and append a CMOVQOC instruction to the active function. -func (c *Context) CMOVQOC(mr, r operand.Op) { - c.addinstruction(x86.CMOVQOC(mr, r)) -} - -// CMOVQOC: Move if not overflow (OF == 0). -// -// Forms: -// -// CMOVQOC m64 r64 -// CMOVQOC r64 r64 -// -// Construct and append a CMOVQOC instruction to the active function. -// Operates on the global context. -func CMOVQOC(mr, r operand.Op) { ctx.CMOVQOC(mr, r) } - -// CMOVQOS: Move if overflow (OF == 1). -// -// Forms: -// -// CMOVQOS m64 r64 -// CMOVQOS r64 r64 -// -// Construct and append a CMOVQOS instruction to the active function. -func (c *Context) CMOVQOS(mr, r operand.Op) { - c.addinstruction(x86.CMOVQOS(mr, r)) -} - -// CMOVQOS: Move if overflow (OF == 1). -// -// Forms: -// -// CMOVQOS m64 r64 -// CMOVQOS r64 r64 -// -// Construct and append a CMOVQOS instruction to the active function. -// Operates on the global context. -func CMOVQOS(mr, r operand.Op) { ctx.CMOVQOS(mr, r) } - -// CMOVQPC: Move if not parity (PF == 0). -// -// Forms: -// -// CMOVQPC m64 r64 -// CMOVQPC r64 r64 -// -// Construct and append a CMOVQPC instruction to the active function. -func (c *Context) CMOVQPC(mr, r operand.Op) { - c.addinstruction(x86.CMOVQPC(mr, r)) -} - -// CMOVQPC: Move if not parity (PF == 0). -// -// Forms: -// -// CMOVQPC m64 r64 -// CMOVQPC r64 r64 -// -// Construct and append a CMOVQPC instruction to the active function. -// Operates on the global context. -func CMOVQPC(mr, r operand.Op) { ctx.CMOVQPC(mr, r) } - -// CMOVQPL: Move if not sign (SF == 0). -// -// Forms: -// -// CMOVQPL m64 r64 -// CMOVQPL r64 r64 -// -// Construct and append a CMOVQPL instruction to the active function. -func (c *Context) CMOVQPL(mr, r operand.Op) { - c.addinstruction(x86.CMOVQPL(mr, r)) -} - -// CMOVQPL: Move if not sign (SF == 0). -// -// Forms: -// -// CMOVQPL m64 r64 -// CMOVQPL r64 r64 -// -// Construct and append a CMOVQPL instruction to the active function. -// Operates on the global context. -func CMOVQPL(mr, r operand.Op) { ctx.CMOVQPL(mr, r) } - -// CMOVQPS: Move if parity (PF == 1). -// -// Forms: -// -// CMOVQPS m64 r64 -// CMOVQPS r64 r64 -// -// Construct and append a CMOVQPS instruction to the active function. -func (c *Context) CMOVQPS(mr, r operand.Op) { - c.addinstruction(x86.CMOVQPS(mr, r)) -} - -// CMOVQPS: Move if parity (PF == 1). -// -// Forms: -// -// CMOVQPS m64 r64 -// CMOVQPS r64 r64 -// -// Construct and append a CMOVQPS instruction to the active function. -// Operates on the global context. -func CMOVQPS(mr, r operand.Op) { ctx.CMOVQPS(mr, r) } - -// CMOVWCC: Move if above or equal (CF == 0). -// -// Forms: -// -// CMOVWCC m16 r16 -// CMOVWCC r16 r16 -// -// Construct and append a CMOVWCC instruction to the active function. -func (c *Context) CMOVWCC(mr, r operand.Op) { - c.addinstruction(x86.CMOVWCC(mr, r)) -} - -// CMOVWCC: Move if above or equal (CF == 0). -// -// Forms: -// -// CMOVWCC m16 r16 -// CMOVWCC r16 r16 -// -// Construct and append a CMOVWCC instruction to the active function. -// Operates on the global context. -func CMOVWCC(mr, r operand.Op) { ctx.CMOVWCC(mr, r) } - -// CMOVWCS: Move if below (CF == 1). -// -// Forms: -// -// CMOVWCS m16 r16 -// CMOVWCS r16 r16 -// -// Construct and append a CMOVWCS instruction to the active function. -func (c *Context) CMOVWCS(mr, r operand.Op) { - c.addinstruction(x86.CMOVWCS(mr, r)) -} - -// CMOVWCS: Move if below (CF == 1). -// -// Forms: -// -// CMOVWCS m16 r16 -// CMOVWCS r16 r16 -// -// Construct and append a CMOVWCS instruction to the active function. -// Operates on the global context. -func CMOVWCS(mr, r operand.Op) { ctx.CMOVWCS(mr, r) } - -// CMOVWEQ: Move if equal (ZF == 1). -// -// Forms: -// -// CMOVWEQ m16 r16 -// CMOVWEQ r16 r16 -// -// Construct and append a CMOVWEQ instruction to the active function. -func (c *Context) CMOVWEQ(mr, r operand.Op) { - c.addinstruction(x86.CMOVWEQ(mr, r)) -} - -// CMOVWEQ: Move if equal (ZF == 1). -// -// Forms: -// -// CMOVWEQ m16 r16 -// CMOVWEQ r16 r16 -// -// Construct and append a CMOVWEQ instruction to the active function. -// Operates on the global context. -func CMOVWEQ(mr, r operand.Op) { ctx.CMOVWEQ(mr, r) } - -// CMOVWGE: Move if greater or equal (SF == OF). -// -// Forms: -// -// CMOVWGE m16 r16 -// CMOVWGE r16 r16 -// -// Construct and append a CMOVWGE instruction to the active function. -func (c *Context) CMOVWGE(mr, r operand.Op) { - c.addinstruction(x86.CMOVWGE(mr, r)) -} - -// CMOVWGE: Move if greater or equal (SF == OF). -// -// Forms: -// -// CMOVWGE m16 r16 -// CMOVWGE r16 r16 -// -// Construct and append a CMOVWGE instruction to the active function. -// Operates on the global context. -func CMOVWGE(mr, r operand.Op) { ctx.CMOVWGE(mr, r) } - -// CMOVWGT: Move if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// CMOVWGT m16 r16 -// CMOVWGT r16 r16 -// -// Construct and append a CMOVWGT instruction to the active function. -func (c *Context) CMOVWGT(mr, r operand.Op) { - c.addinstruction(x86.CMOVWGT(mr, r)) -} - -// CMOVWGT: Move if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// CMOVWGT m16 r16 -// CMOVWGT r16 r16 -// -// Construct and append a CMOVWGT instruction to the active function. -// Operates on the global context. -func CMOVWGT(mr, r operand.Op) { ctx.CMOVWGT(mr, r) } - -// CMOVWHI: Move if above (CF == 0 and ZF == 0). -// -// Forms: -// -// CMOVWHI m16 r16 -// CMOVWHI r16 r16 -// -// Construct and append a CMOVWHI instruction to the active function. -func (c *Context) CMOVWHI(mr, r operand.Op) { - c.addinstruction(x86.CMOVWHI(mr, r)) -} - -// CMOVWHI: Move if above (CF == 0 and ZF == 0). -// -// Forms: -// -// CMOVWHI m16 r16 -// CMOVWHI r16 r16 -// -// Construct and append a CMOVWHI instruction to the active function. -// Operates on the global context. -func CMOVWHI(mr, r operand.Op) { ctx.CMOVWHI(mr, r) } - -// CMOVWLE: Move if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// CMOVWLE m16 r16 -// CMOVWLE r16 r16 -// -// Construct and append a CMOVWLE instruction to the active function. -func (c *Context) CMOVWLE(mr, r operand.Op) { - c.addinstruction(x86.CMOVWLE(mr, r)) -} - -// CMOVWLE: Move if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// CMOVWLE m16 r16 -// CMOVWLE r16 r16 -// -// Construct and append a CMOVWLE instruction to the active function. -// Operates on the global context. -func CMOVWLE(mr, r operand.Op) { ctx.CMOVWLE(mr, r) } - -// CMOVWLS: Move if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// CMOVWLS m16 r16 -// CMOVWLS r16 r16 -// -// Construct and append a CMOVWLS instruction to the active function. -func (c *Context) CMOVWLS(mr, r operand.Op) { - c.addinstruction(x86.CMOVWLS(mr, r)) -} - -// CMOVWLS: Move if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// CMOVWLS m16 r16 -// CMOVWLS r16 r16 -// -// Construct and append a CMOVWLS instruction to the active function. -// Operates on the global context. -func CMOVWLS(mr, r operand.Op) { ctx.CMOVWLS(mr, r) } - -// CMOVWLT: Move if less (SF != OF). -// -// Forms: -// -// CMOVWLT m16 r16 -// CMOVWLT r16 r16 -// -// Construct and append a CMOVWLT instruction to the active function. -func (c *Context) CMOVWLT(mr, r operand.Op) { - c.addinstruction(x86.CMOVWLT(mr, r)) -} - -// CMOVWLT: Move if less (SF != OF). -// -// Forms: -// -// CMOVWLT m16 r16 -// CMOVWLT r16 r16 -// -// Construct and append a CMOVWLT instruction to the active function. -// Operates on the global context. -func CMOVWLT(mr, r operand.Op) { ctx.CMOVWLT(mr, r) } - -// CMOVWMI: Move if sign (SF == 1). -// -// Forms: -// -// CMOVWMI m16 r16 -// CMOVWMI r16 r16 -// -// Construct and append a CMOVWMI instruction to the active function. -func (c *Context) CMOVWMI(mr, r operand.Op) { - c.addinstruction(x86.CMOVWMI(mr, r)) -} - -// CMOVWMI: Move if sign (SF == 1). -// -// Forms: -// -// CMOVWMI m16 r16 -// CMOVWMI r16 r16 -// -// Construct and append a CMOVWMI instruction to the active function. -// Operates on the global context. -func CMOVWMI(mr, r operand.Op) { ctx.CMOVWMI(mr, r) } - -// CMOVWNE: Move if not equal (ZF == 0). -// -// Forms: -// -// CMOVWNE m16 r16 -// CMOVWNE r16 r16 -// -// Construct and append a CMOVWNE instruction to the active function. -func (c *Context) CMOVWNE(mr, r operand.Op) { - c.addinstruction(x86.CMOVWNE(mr, r)) -} - -// CMOVWNE: Move if not equal (ZF == 0). -// -// Forms: -// -// CMOVWNE m16 r16 -// CMOVWNE r16 r16 -// -// Construct and append a CMOVWNE instruction to the active function. -// Operates on the global context. -func CMOVWNE(mr, r operand.Op) { ctx.CMOVWNE(mr, r) } - -// CMOVWOC: Move if not overflow (OF == 0). -// -// Forms: -// -// CMOVWOC m16 r16 -// CMOVWOC r16 r16 -// -// Construct and append a CMOVWOC instruction to the active function. -func (c *Context) CMOVWOC(mr, r operand.Op) { - c.addinstruction(x86.CMOVWOC(mr, r)) -} - -// CMOVWOC: Move if not overflow (OF == 0). -// -// Forms: -// -// CMOVWOC m16 r16 -// CMOVWOC r16 r16 -// -// Construct and append a CMOVWOC instruction to the active function. -// Operates on the global context. -func CMOVWOC(mr, r operand.Op) { ctx.CMOVWOC(mr, r) } - -// CMOVWOS: Move if overflow (OF == 1). -// -// Forms: -// -// CMOVWOS m16 r16 -// CMOVWOS r16 r16 -// -// Construct and append a CMOVWOS instruction to the active function. -func (c *Context) CMOVWOS(mr, r operand.Op) { - c.addinstruction(x86.CMOVWOS(mr, r)) -} - -// CMOVWOS: Move if overflow (OF == 1). -// -// Forms: -// -// CMOVWOS m16 r16 -// CMOVWOS r16 r16 -// -// Construct and append a CMOVWOS instruction to the active function. -// Operates on the global context. -func CMOVWOS(mr, r operand.Op) { ctx.CMOVWOS(mr, r) } - -// CMOVWPC: Move if not parity (PF == 0). -// -// Forms: -// -// CMOVWPC m16 r16 -// CMOVWPC r16 r16 -// -// Construct and append a CMOVWPC instruction to the active function. -func (c *Context) CMOVWPC(mr, r operand.Op) { - c.addinstruction(x86.CMOVWPC(mr, r)) -} - -// CMOVWPC: Move if not parity (PF == 0). -// -// Forms: -// -// CMOVWPC m16 r16 -// CMOVWPC r16 r16 -// -// Construct and append a CMOVWPC instruction to the active function. -// Operates on the global context. -func CMOVWPC(mr, r operand.Op) { ctx.CMOVWPC(mr, r) } - -// CMOVWPL: Move if not sign (SF == 0). -// -// Forms: -// -// CMOVWPL m16 r16 -// CMOVWPL r16 r16 -// -// Construct and append a CMOVWPL instruction to the active function. -func (c *Context) CMOVWPL(mr, r operand.Op) { - c.addinstruction(x86.CMOVWPL(mr, r)) -} - -// CMOVWPL: Move if not sign (SF == 0). -// -// Forms: -// -// CMOVWPL m16 r16 -// CMOVWPL r16 r16 -// -// Construct and append a CMOVWPL instruction to the active function. -// Operates on the global context. -func CMOVWPL(mr, r operand.Op) { ctx.CMOVWPL(mr, r) } - -// CMOVWPS: Move if parity (PF == 1). -// -// Forms: -// -// CMOVWPS m16 r16 -// CMOVWPS r16 r16 -// -// Construct and append a CMOVWPS instruction to the active function. -func (c *Context) CMOVWPS(mr, r operand.Op) { - c.addinstruction(x86.CMOVWPS(mr, r)) -} - -// CMOVWPS: Move if parity (PF == 1). -// -// Forms: -// -// CMOVWPS m16 r16 -// CMOVWPS r16 r16 -// -// Construct and append a CMOVWPS instruction to the active function. -// Operates on the global context. -func CMOVWPS(mr, r operand.Op) { ctx.CMOVWPS(mr, r) } - -// CMPB: Compare Two Operands. -// -// Forms: -// -// CMPB al imm8 -// CMPB m8 imm8 -// CMPB m8 r8 -// CMPB r8 imm8 -// CMPB r8 m8 -// CMPB r8 r8 -// -// Construct and append a CMPB instruction to the active function. -func (c *Context) CMPB(amr, imr operand.Op) { - c.addinstruction(x86.CMPB(amr, imr)) -} - -// CMPB: Compare Two Operands. -// -// Forms: -// -// CMPB al imm8 -// CMPB m8 imm8 -// CMPB m8 r8 -// CMPB r8 imm8 -// CMPB r8 m8 -// CMPB r8 r8 -// -// Construct and append a CMPB instruction to the active function. -// Operates on the global context. -func CMPB(amr, imr operand.Op) { ctx.CMPB(amr, imr) } - -// CMPL: Compare Two Operands. -// -// Forms: -// -// CMPL eax imm32 -// CMPL m32 imm32 -// CMPL m32 imm8 -// CMPL m32 r32 -// CMPL r32 imm32 -// CMPL r32 imm8 -// CMPL r32 m32 -// CMPL r32 r32 -// -// Construct and append a CMPL instruction to the active function. -func (c *Context) CMPL(emr, imr operand.Op) { - c.addinstruction(x86.CMPL(emr, imr)) -} - -// CMPL: Compare Two Operands. -// -// Forms: -// -// CMPL eax imm32 -// CMPL m32 imm32 -// CMPL m32 imm8 -// CMPL m32 r32 -// CMPL r32 imm32 -// CMPL r32 imm8 -// CMPL r32 m32 -// CMPL r32 r32 -// -// Construct and append a CMPL instruction to the active function. -// Operates on the global context. -func CMPL(emr, imr operand.Op) { ctx.CMPL(emr, imr) } - -// CMPPD: Compare Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// CMPPD m128 xmm imm8 -// CMPPD xmm xmm imm8 -// -// Construct and append a CMPPD instruction to the active function. -func (c *Context) CMPPD(mx, x, i operand.Op) { - c.addinstruction(x86.CMPPD(mx, x, i)) -} - -// CMPPD: Compare Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// CMPPD m128 xmm imm8 -// CMPPD xmm xmm imm8 -// -// Construct and append a CMPPD instruction to the active function. -// Operates on the global context. -func CMPPD(mx, x, i operand.Op) { ctx.CMPPD(mx, x, i) } - -// CMPPS: Compare Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// CMPPS m128 xmm imm8 -// CMPPS xmm xmm imm8 -// -// Construct and append a CMPPS instruction to the active function. -func (c *Context) CMPPS(mx, x, i operand.Op) { - c.addinstruction(x86.CMPPS(mx, x, i)) -} - -// CMPPS: Compare Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// CMPPS m128 xmm imm8 -// CMPPS xmm xmm imm8 -// -// Construct and append a CMPPS instruction to the active function. -// Operates on the global context. -func CMPPS(mx, x, i operand.Op) { ctx.CMPPS(mx, x, i) } - -// CMPQ: Compare Two Operands. -// -// Forms: -// -// CMPQ m64 imm32 -// CMPQ m64 imm8 -// CMPQ m64 r64 -// CMPQ r64 imm32 -// CMPQ r64 imm8 -// CMPQ r64 m64 -// CMPQ r64 r64 -// CMPQ rax imm32 -// -// Construct and append a CMPQ instruction to the active function. -func (c *Context) CMPQ(mr, imr operand.Op) { - c.addinstruction(x86.CMPQ(mr, imr)) -} - -// CMPQ: Compare Two Operands. -// -// Forms: -// -// CMPQ m64 imm32 -// CMPQ m64 imm8 -// CMPQ m64 r64 -// CMPQ r64 imm32 -// CMPQ r64 imm8 -// CMPQ r64 m64 -// CMPQ r64 r64 -// CMPQ rax imm32 -// -// Construct and append a CMPQ instruction to the active function. -// Operates on the global context. -func CMPQ(mr, imr operand.Op) { ctx.CMPQ(mr, imr) } - -// CMPSD: Compare Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// CMPSD m64 xmm imm8 -// CMPSD xmm xmm imm8 -// -// Construct and append a CMPSD instruction to the active function. -func (c *Context) CMPSD(mx, x, i operand.Op) { - c.addinstruction(x86.CMPSD(mx, x, i)) -} - -// CMPSD: Compare Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// CMPSD m64 xmm imm8 -// CMPSD xmm xmm imm8 -// -// Construct and append a CMPSD instruction to the active function. -// Operates on the global context. -func CMPSD(mx, x, i operand.Op) { ctx.CMPSD(mx, x, i) } - -// CMPSS: Compare Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// CMPSS m32 xmm imm8 -// CMPSS xmm xmm imm8 -// -// Construct and append a CMPSS instruction to the active function. -func (c *Context) CMPSS(mx, x, i operand.Op) { - c.addinstruction(x86.CMPSS(mx, x, i)) -} - -// CMPSS: Compare Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// CMPSS m32 xmm imm8 -// CMPSS xmm xmm imm8 -// -// Construct and append a CMPSS instruction to the active function. -// Operates on the global context. -func CMPSS(mx, x, i operand.Op) { ctx.CMPSS(mx, x, i) } - -// CMPW: Compare Two Operands. -// -// Forms: -// -// CMPW ax imm16 -// CMPW m16 imm16 -// CMPW m16 imm8 -// CMPW m16 r16 -// CMPW r16 imm16 -// CMPW r16 imm8 -// CMPW r16 m16 -// CMPW r16 r16 -// -// Construct and append a CMPW instruction to the active function. -func (c *Context) CMPW(amr, imr operand.Op) { - c.addinstruction(x86.CMPW(amr, imr)) -} - -// CMPW: Compare Two Operands. -// -// Forms: -// -// CMPW ax imm16 -// CMPW m16 imm16 -// CMPW m16 imm8 -// CMPW m16 r16 -// CMPW r16 imm16 -// CMPW r16 imm8 -// CMPW r16 m16 -// CMPW r16 r16 -// -// Construct and append a CMPW instruction to the active function. -// Operates on the global context. -func CMPW(amr, imr operand.Op) { ctx.CMPW(amr, imr) } - -// CMPXCHG16B: Compare and Exchange 16 Bytes. -// -// Forms: -// -// CMPXCHG16B m128 -// -// Construct and append a CMPXCHG16B instruction to the active function. -func (c *Context) CMPXCHG16B(m operand.Op) { - c.addinstruction(x86.CMPXCHG16B(m)) -} - -// CMPXCHG16B: Compare and Exchange 16 Bytes. -// -// Forms: -// -// CMPXCHG16B m128 -// -// Construct and append a CMPXCHG16B instruction to the active function. -// Operates on the global context. -func CMPXCHG16B(m operand.Op) { ctx.CMPXCHG16B(m) } - -// CMPXCHG8B: Compare and Exchange 8 Bytes. -// -// Forms: -// -// CMPXCHG8B m64 -// -// Construct and append a CMPXCHG8B instruction to the active function. -func (c *Context) CMPXCHG8B(m operand.Op) { - c.addinstruction(x86.CMPXCHG8B(m)) -} - -// CMPXCHG8B: Compare and Exchange 8 Bytes. -// -// Forms: -// -// CMPXCHG8B m64 -// -// Construct and append a CMPXCHG8B instruction to the active function. -// Operates on the global context. -func CMPXCHG8B(m operand.Op) { ctx.CMPXCHG8B(m) } - -// CMPXCHGB: Compare and Exchange. -// -// Forms: -// -// CMPXCHGB r8 m8 -// CMPXCHGB r8 r8 -// -// Construct and append a CMPXCHGB instruction to the active function. -func (c *Context) CMPXCHGB(r, mr operand.Op) { - c.addinstruction(x86.CMPXCHGB(r, mr)) -} - -// CMPXCHGB: Compare and Exchange. -// -// Forms: -// -// CMPXCHGB r8 m8 -// CMPXCHGB r8 r8 -// -// Construct and append a CMPXCHGB instruction to the active function. -// Operates on the global context. -func CMPXCHGB(r, mr operand.Op) { ctx.CMPXCHGB(r, mr) } - -// CMPXCHGL: Compare and Exchange. -// -// Forms: -// -// CMPXCHGL r32 m32 -// CMPXCHGL r32 r32 -// -// Construct and append a CMPXCHGL instruction to the active function. -func (c *Context) CMPXCHGL(r, mr operand.Op) { - c.addinstruction(x86.CMPXCHGL(r, mr)) -} - -// CMPXCHGL: Compare and Exchange. -// -// Forms: -// -// CMPXCHGL r32 m32 -// CMPXCHGL r32 r32 -// -// Construct and append a CMPXCHGL instruction to the active function. -// Operates on the global context. -func CMPXCHGL(r, mr operand.Op) { ctx.CMPXCHGL(r, mr) } - -// CMPXCHGQ: Compare and Exchange. -// -// Forms: -// -// CMPXCHGQ r64 m64 -// CMPXCHGQ r64 r64 -// -// Construct and append a CMPXCHGQ instruction to the active function. -func (c *Context) CMPXCHGQ(r, mr operand.Op) { - c.addinstruction(x86.CMPXCHGQ(r, mr)) -} - -// CMPXCHGQ: Compare and Exchange. -// -// Forms: -// -// CMPXCHGQ r64 m64 -// CMPXCHGQ r64 r64 -// -// Construct and append a CMPXCHGQ instruction to the active function. -// Operates on the global context. -func CMPXCHGQ(r, mr operand.Op) { ctx.CMPXCHGQ(r, mr) } - -// CMPXCHGW: Compare and Exchange. -// -// Forms: -// -// CMPXCHGW r16 m16 -// CMPXCHGW r16 r16 -// -// Construct and append a CMPXCHGW instruction to the active function. -func (c *Context) CMPXCHGW(r, mr operand.Op) { - c.addinstruction(x86.CMPXCHGW(r, mr)) -} - -// CMPXCHGW: Compare and Exchange. -// -// Forms: -// -// CMPXCHGW r16 m16 -// CMPXCHGW r16 r16 -// -// Construct and append a CMPXCHGW instruction to the active function. -// Operates on the global context. -func CMPXCHGW(r, mr operand.Op) { ctx.CMPXCHGW(r, mr) } - -// COMISD: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// COMISD m64 xmm -// COMISD xmm xmm -// -// Construct and append a COMISD instruction to the active function. -func (c *Context) COMISD(mx, x operand.Op) { - c.addinstruction(x86.COMISD(mx, x)) -} - -// COMISD: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// COMISD m64 xmm -// COMISD xmm xmm -// -// Construct and append a COMISD instruction to the active function. -// Operates on the global context. -func COMISD(mx, x operand.Op) { ctx.COMISD(mx, x) } - -// COMISS: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// COMISS m32 xmm -// COMISS xmm xmm -// -// Construct and append a COMISS instruction to the active function. -func (c *Context) COMISS(mx, x operand.Op) { - c.addinstruction(x86.COMISS(mx, x)) -} - -// COMISS: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// COMISS m32 xmm -// COMISS xmm xmm -// -// Construct and append a COMISS instruction to the active function. -// Operates on the global context. -func COMISS(mx, x operand.Op) { ctx.COMISS(mx, x) } - -// CPUID: CPU Identification. -// -// Forms: -// -// CPUID -// -// Construct and append a CPUID instruction to the active function. -func (c *Context) CPUID() { - c.addinstruction(x86.CPUID()) -} - -// CPUID: CPU Identification. -// -// Forms: -// -// CPUID -// -// Construct and append a CPUID instruction to the active function. -// Operates on the global context. -func CPUID() { ctx.CPUID() } - -// CQO: Convert Quadword to Octaword. -// -// Forms: -// -// CQO -// -// Construct and append a CQO instruction to the active function. -func (c *Context) CQO() { - c.addinstruction(x86.CQO()) -} - -// CQO: Convert Quadword to Octaword. -// -// Forms: -// -// CQO -// -// Construct and append a CQO instruction to the active function. -// Operates on the global context. -func CQO() { ctx.CQO() } - -// CRC32B: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32B m8 r32 -// CRC32B m8 r64 -// CRC32B r8 r32 -// CRC32B r8 r64 -// -// Construct and append a CRC32B instruction to the active function. -func (c *Context) CRC32B(mr, r operand.Op) { - c.addinstruction(x86.CRC32B(mr, r)) -} - -// CRC32B: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32B m8 r32 -// CRC32B m8 r64 -// CRC32B r8 r32 -// CRC32B r8 r64 -// -// Construct and append a CRC32B instruction to the active function. -// Operates on the global context. -func CRC32B(mr, r operand.Op) { ctx.CRC32B(mr, r) } - -// CRC32L: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32L m32 r32 -// CRC32L r32 r32 -// -// Construct and append a CRC32L instruction to the active function. -func (c *Context) CRC32L(mr, r operand.Op) { - c.addinstruction(x86.CRC32L(mr, r)) -} - -// CRC32L: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32L m32 r32 -// CRC32L r32 r32 -// -// Construct and append a CRC32L instruction to the active function. -// Operates on the global context. -func CRC32L(mr, r operand.Op) { ctx.CRC32L(mr, r) } - -// CRC32Q: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32Q m64 r64 -// CRC32Q r64 r64 -// -// Construct and append a CRC32Q instruction to the active function. -func (c *Context) CRC32Q(mr, r operand.Op) { - c.addinstruction(x86.CRC32Q(mr, r)) -} - -// CRC32Q: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32Q m64 r64 -// CRC32Q r64 r64 -// -// Construct and append a CRC32Q instruction to the active function. -// Operates on the global context. -func CRC32Q(mr, r operand.Op) { ctx.CRC32Q(mr, r) } - -// CRC32W: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32W m16 r32 -// CRC32W r16 r32 -// -// Construct and append a CRC32W instruction to the active function. -func (c *Context) CRC32W(mr, r operand.Op) { - c.addinstruction(x86.CRC32W(mr, r)) -} - -// CRC32W: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32W m16 r32 -// CRC32W r16 r32 -// -// Construct and append a CRC32W instruction to the active function. -// Operates on the global context. -func CRC32W(mr, r operand.Op) { ctx.CRC32W(mr, r) } - -// CVTPD2PL: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTPD2PL m128 xmm -// CVTPD2PL xmm xmm -// -// Construct and append a CVTPD2PL instruction to the active function. -func (c *Context) CVTPD2PL(mx, x operand.Op) { - c.addinstruction(x86.CVTPD2PL(mx, x)) -} - -// CVTPD2PL: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTPD2PL m128 xmm -// CVTPD2PL xmm xmm -// -// Construct and append a CVTPD2PL instruction to the active function. -// Operates on the global context. -func CVTPD2PL(mx, x operand.Op) { ctx.CVTPD2PL(mx, x) } - -// CVTPD2PS: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// CVTPD2PS m128 xmm -// CVTPD2PS xmm xmm -// -// Construct and append a CVTPD2PS instruction to the active function. -func (c *Context) CVTPD2PS(mx, x operand.Op) { - c.addinstruction(x86.CVTPD2PS(mx, x)) -} - -// CVTPD2PS: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// CVTPD2PS m128 xmm -// CVTPD2PS xmm xmm -// -// Construct and append a CVTPD2PS instruction to the active function. -// Operates on the global context. -func CVTPD2PS(mx, x operand.Op) { ctx.CVTPD2PS(mx, x) } - -// CVTPL2PD: Convert Packed Dword Integers to Packed Double-Precision FP Values. -// -// Forms: -// -// CVTPL2PD m64 xmm -// CVTPL2PD xmm xmm -// -// Construct and append a CVTPL2PD instruction to the active function. -func (c *Context) CVTPL2PD(mx, x operand.Op) { - c.addinstruction(x86.CVTPL2PD(mx, x)) -} - -// CVTPL2PD: Convert Packed Dword Integers to Packed Double-Precision FP Values. -// -// Forms: -// -// CVTPL2PD m64 xmm -// CVTPL2PD xmm xmm -// -// Construct and append a CVTPL2PD instruction to the active function. -// Operates on the global context. -func CVTPL2PD(mx, x operand.Op) { ctx.CVTPL2PD(mx, x) } - -// CVTPL2PS: Convert Packed Dword Integers to Packed Single-Precision FP Values. -// -// Forms: -// -// CVTPL2PS m128 xmm -// CVTPL2PS xmm xmm -// -// Construct and append a CVTPL2PS instruction to the active function. -func (c *Context) CVTPL2PS(mx, x operand.Op) { - c.addinstruction(x86.CVTPL2PS(mx, x)) -} - -// CVTPL2PS: Convert Packed Dword Integers to Packed Single-Precision FP Values. -// -// Forms: -// -// CVTPL2PS m128 xmm -// CVTPL2PS xmm xmm -// -// Construct and append a CVTPL2PS instruction to the active function. -// Operates on the global context. -func CVTPL2PS(mx, x operand.Op) { ctx.CVTPL2PS(mx, x) } - -// CVTPS2PD: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values. -// -// Forms: -// -// CVTPS2PD m64 xmm -// CVTPS2PD xmm xmm -// -// Construct and append a CVTPS2PD instruction to the active function. -func (c *Context) CVTPS2PD(mx, x operand.Op) { - c.addinstruction(x86.CVTPS2PD(mx, x)) -} - -// CVTPS2PD: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values. -// -// Forms: -// -// CVTPS2PD m64 xmm -// CVTPS2PD xmm xmm -// -// Construct and append a CVTPS2PD instruction to the active function. -// Operates on the global context. -func CVTPS2PD(mx, x operand.Op) { ctx.CVTPS2PD(mx, x) } - -// CVTPS2PL: Convert Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTPS2PL m128 xmm -// CVTPS2PL xmm xmm -// -// Construct and append a CVTPS2PL instruction to the active function. -func (c *Context) CVTPS2PL(mx, x operand.Op) { - c.addinstruction(x86.CVTPS2PL(mx, x)) -} - -// CVTPS2PL: Convert Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTPS2PL m128 xmm -// CVTPS2PL xmm xmm -// -// Construct and append a CVTPS2PL instruction to the active function. -// Operates on the global context. -func CVTPS2PL(mx, x operand.Op) { ctx.CVTPS2PL(mx, x) } - -// CVTSD2SL: Convert Scalar Double-Precision FP Value to Integer. -// -// Forms: -// -// CVTSD2SL m64 r32 -// CVTSD2SL m64 r64 -// CVTSD2SL xmm r32 -// CVTSD2SL xmm r64 -// -// Construct and append a CVTSD2SL instruction to the active function. -func (c *Context) CVTSD2SL(mx, r operand.Op) { - c.addinstruction(x86.CVTSD2SL(mx, r)) -} - -// CVTSD2SL: Convert Scalar Double-Precision FP Value to Integer. -// -// Forms: -// -// CVTSD2SL m64 r32 -// CVTSD2SL m64 r64 -// CVTSD2SL xmm r32 -// CVTSD2SL xmm r64 -// -// Construct and append a CVTSD2SL instruction to the active function. -// Operates on the global context. -func CVTSD2SL(mx, r operand.Op) { ctx.CVTSD2SL(mx, r) } - -// CVTSD2SS: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value. -// -// Forms: -// -// CVTSD2SS m64 xmm -// CVTSD2SS xmm xmm -// -// Construct and append a CVTSD2SS instruction to the active function. -func (c *Context) CVTSD2SS(mx, x operand.Op) { - c.addinstruction(x86.CVTSD2SS(mx, x)) -} - -// CVTSD2SS: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value. -// -// Forms: -// -// CVTSD2SS m64 xmm -// CVTSD2SS xmm xmm -// -// Construct and append a CVTSD2SS instruction to the active function. -// Operates on the global context. -func CVTSD2SS(mx, x operand.Op) { ctx.CVTSD2SS(mx, x) } - -// CVTSL2SD: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// CVTSL2SD m32 xmm -// CVTSL2SD r32 xmm -// -// Construct and append a CVTSL2SD instruction to the active function. -func (c *Context) CVTSL2SD(mr, x operand.Op) { - c.addinstruction(x86.CVTSL2SD(mr, x)) -} - -// CVTSL2SD: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// CVTSL2SD m32 xmm -// CVTSL2SD r32 xmm -// -// Construct and append a CVTSL2SD instruction to the active function. -// Operates on the global context. -func CVTSL2SD(mr, x operand.Op) { ctx.CVTSL2SD(mr, x) } - -// CVTSL2SS: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// CVTSL2SS m32 xmm -// CVTSL2SS r32 xmm -// -// Construct and append a CVTSL2SS instruction to the active function. -func (c *Context) CVTSL2SS(mr, x operand.Op) { - c.addinstruction(x86.CVTSL2SS(mr, x)) -} - -// CVTSL2SS: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// CVTSL2SS m32 xmm -// CVTSL2SS r32 xmm -// -// Construct and append a CVTSL2SS instruction to the active function. -// Operates on the global context. -func CVTSL2SS(mr, x operand.Op) { ctx.CVTSL2SS(mr, x) } - -// CVTSQ2SD: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// CVTSQ2SD m64 xmm -// CVTSQ2SD r64 xmm -// -// Construct and append a CVTSQ2SD instruction to the active function. -func (c *Context) CVTSQ2SD(mr, x operand.Op) { - c.addinstruction(x86.CVTSQ2SD(mr, x)) -} - -// CVTSQ2SD: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// CVTSQ2SD m64 xmm -// CVTSQ2SD r64 xmm -// -// Construct and append a CVTSQ2SD instruction to the active function. -// Operates on the global context. -func CVTSQ2SD(mr, x operand.Op) { ctx.CVTSQ2SD(mr, x) } - -// CVTSQ2SS: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// CVTSQ2SS m64 xmm -// CVTSQ2SS r64 xmm -// -// Construct and append a CVTSQ2SS instruction to the active function. -func (c *Context) CVTSQ2SS(mr, x operand.Op) { - c.addinstruction(x86.CVTSQ2SS(mr, x)) -} - -// CVTSQ2SS: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// CVTSQ2SS m64 xmm -// CVTSQ2SS r64 xmm -// -// Construct and append a CVTSQ2SS instruction to the active function. -// Operates on the global context. -func CVTSQ2SS(mr, x operand.Op) { ctx.CVTSQ2SS(mr, x) } - -// CVTSS2SD: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value. -// -// Forms: -// -// CVTSS2SD m32 xmm -// CVTSS2SD xmm xmm -// -// Construct and append a CVTSS2SD instruction to the active function. -func (c *Context) CVTSS2SD(mx, x operand.Op) { - c.addinstruction(x86.CVTSS2SD(mx, x)) -} - -// CVTSS2SD: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value. -// -// Forms: -// -// CVTSS2SD m32 xmm -// CVTSS2SD xmm xmm -// -// Construct and append a CVTSS2SD instruction to the active function. -// Operates on the global context. -func CVTSS2SD(mx, x operand.Op) { ctx.CVTSS2SD(mx, x) } - -// CVTSS2SL: Convert Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// CVTSS2SL m32 r32 -// CVTSS2SL m32 r64 -// CVTSS2SL xmm r32 -// CVTSS2SL xmm r64 -// -// Construct and append a CVTSS2SL instruction to the active function. -func (c *Context) CVTSS2SL(mx, r operand.Op) { - c.addinstruction(x86.CVTSS2SL(mx, r)) -} - -// CVTSS2SL: Convert Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// CVTSS2SL m32 r32 -// CVTSS2SL m32 r64 -// CVTSS2SL xmm r32 -// CVTSS2SL xmm r64 -// -// Construct and append a CVTSS2SL instruction to the active function. -// Operates on the global context. -func CVTSS2SL(mx, r operand.Op) { ctx.CVTSS2SL(mx, r) } - -// CVTTPD2PL: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTTPD2PL m128 xmm -// CVTTPD2PL xmm xmm -// -// Construct and append a CVTTPD2PL instruction to the active function. -func (c *Context) CVTTPD2PL(mx, x operand.Op) { - c.addinstruction(x86.CVTTPD2PL(mx, x)) -} - -// CVTTPD2PL: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTTPD2PL m128 xmm -// CVTTPD2PL xmm xmm -// -// Construct and append a CVTTPD2PL instruction to the active function. -// Operates on the global context. -func CVTTPD2PL(mx, x operand.Op) { ctx.CVTTPD2PL(mx, x) } - -// CVTTPS2PL: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTTPS2PL m128 xmm -// CVTTPS2PL xmm xmm -// -// Construct and append a CVTTPS2PL instruction to the active function. -func (c *Context) CVTTPS2PL(mx, x operand.Op) { - c.addinstruction(x86.CVTTPS2PL(mx, x)) -} - -// CVTTPS2PL: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTTPS2PL m128 xmm -// CVTTPS2PL xmm xmm -// -// Construct and append a CVTTPS2PL instruction to the active function. -// Operates on the global context. -func CVTTPS2PL(mx, x operand.Op) { ctx.CVTTPS2PL(mx, x) } - -// CVTTSD2SL: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// CVTTSD2SL m64 r32 -// CVTTSD2SL xmm r32 -// -// Construct and append a CVTTSD2SL instruction to the active function. -func (c *Context) CVTTSD2SL(mx, r operand.Op) { - c.addinstruction(x86.CVTTSD2SL(mx, r)) -} - -// CVTTSD2SL: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// CVTTSD2SL m64 r32 -// CVTTSD2SL xmm r32 -// -// Construct and append a CVTTSD2SL instruction to the active function. -// Operates on the global context. -func CVTTSD2SL(mx, r operand.Op) { ctx.CVTTSD2SL(mx, r) } - -// CVTTSD2SQ: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// CVTTSD2SQ m64 r64 -// CVTTSD2SQ xmm r64 -// -// Construct and append a CVTTSD2SQ instruction to the active function. -func (c *Context) CVTTSD2SQ(mx, r operand.Op) { - c.addinstruction(x86.CVTTSD2SQ(mx, r)) -} - -// CVTTSD2SQ: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// CVTTSD2SQ m64 r64 -// CVTTSD2SQ xmm r64 -// -// Construct and append a CVTTSD2SQ instruction to the active function. -// Operates on the global context. -func CVTTSD2SQ(mx, r operand.Op) { ctx.CVTTSD2SQ(mx, r) } - -// CVTTSS2SL: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// CVTTSS2SL m32 r32 -// CVTTSS2SL m32 r64 -// CVTTSS2SL xmm r32 -// CVTTSS2SL xmm r64 -// -// Construct and append a CVTTSS2SL instruction to the active function. -func (c *Context) CVTTSS2SL(mx, r operand.Op) { - c.addinstruction(x86.CVTTSS2SL(mx, r)) -} - -// CVTTSS2SL: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// CVTTSS2SL m32 r32 -// CVTTSS2SL m32 r64 -// CVTTSS2SL xmm r32 -// CVTTSS2SL xmm r64 -// -// Construct and append a CVTTSS2SL instruction to the active function. -// Operates on the global context. -func CVTTSS2SL(mx, r operand.Op) { ctx.CVTTSS2SL(mx, r) } - -// CWD: Convert Word to Doubleword. -// -// Forms: -// -// CWD -// -// Construct and append a CWD instruction to the active function. -func (c *Context) CWD() { - c.addinstruction(x86.CWD()) -} - -// CWD: Convert Word to Doubleword. -// -// Forms: -// -// CWD -// -// Construct and append a CWD instruction to the active function. -// Operates on the global context. -func CWD() { ctx.CWD() } - -// CWDE: Convert Word to Doubleword. -// -// Forms: -// -// CWDE -// -// Construct and append a CWDE instruction to the active function. -func (c *Context) CWDE() { - c.addinstruction(x86.CWDE()) -} - -// CWDE: Convert Word to Doubleword. -// -// Forms: -// -// CWDE -// -// Construct and append a CWDE instruction to the active function. -// Operates on the global context. -func CWDE() { ctx.CWDE() } - -// DECB: Decrement by 1. -// -// Forms: -// -// DECB m8 -// DECB r8 -// -// Construct and append a DECB instruction to the active function. -func (c *Context) DECB(mr operand.Op) { - c.addinstruction(x86.DECB(mr)) -} - -// DECB: Decrement by 1. -// -// Forms: -// -// DECB m8 -// DECB r8 -// -// Construct and append a DECB instruction to the active function. -// Operates on the global context. -func DECB(mr operand.Op) { ctx.DECB(mr) } - -// DECL: Decrement by 1. -// -// Forms: -// -// DECL m32 -// DECL r32 -// -// Construct and append a DECL instruction to the active function. -func (c *Context) DECL(mr operand.Op) { - c.addinstruction(x86.DECL(mr)) -} - -// DECL: Decrement by 1. -// -// Forms: -// -// DECL m32 -// DECL r32 -// -// Construct and append a DECL instruction to the active function. -// Operates on the global context. -func DECL(mr operand.Op) { ctx.DECL(mr) } - -// DECQ: Decrement by 1. -// -// Forms: -// -// DECQ m64 -// DECQ r64 -// -// Construct and append a DECQ instruction to the active function. -func (c *Context) DECQ(mr operand.Op) { - c.addinstruction(x86.DECQ(mr)) -} - -// DECQ: Decrement by 1. -// -// Forms: -// -// DECQ m64 -// DECQ r64 -// -// Construct and append a DECQ instruction to the active function. -// Operates on the global context. -func DECQ(mr operand.Op) { ctx.DECQ(mr) } - -// DECW: Decrement by 1. -// -// Forms: -// -// DECW m16 -// DECW r16 -// -// Construct and append a DECW instruction to the active function. -func (c *Context) DECW(mr operand.Op) { - c.addinstruction(x86.DECW(mr)) -} - -// DECW: Decrement by 1. -// -// Forms: -// -// DECW m16 -// DECW r16 -// -// Construct and append a DECW instruction to the active function. -// Operates on the global context. -func DECW(mr operand.Op) { ctx.DECW(mr) } - -// DIVB: Unsigned Divide. -// -// Forms: -// -// DIVB m8 -// DIVB r8 -// -// Construct and append a DIVB instruction to the active function. -func (c *Context) DIVB(mr operand.Op) { - c.addinstruction(x86.DIVB(mr)) -} - -// DIVB: Unsigned Divide. -// -// Forms: -// -// DIVB m8 -// DIVB r8 -// -// Construct and append a DIVB instruction to the active function. -// Operates on the global context. -func DIVB(mr operand.Op) { ctx.DIVB(mr) } - -// DIVL: Unsigned Divide. -// -// Forms: -// -// DIVL m32 -// DIVL r32 -// -// Construct and append a DIVL instruction to the active function. -func (c *Context) DIVL(mr operand.Op) { - c.addinstruction(x86.DIVL(mr)) -} - -// DIVL: Unsigned Divide. -// -// Forms: -// -// DIVL m32 -// DIVL r32 -// -// Construct and append a DIVL instruction to the active function. -// Operates on the global context. -func DIVL(mr operand.Op) { ctx.DIVL(mr) } - -// DIVPD: Divide Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// DIVPD m128 xmm -// DIVPD xmm xmm -// -// Construct and append a DIVPD instruction to the active function. -func (c *Context) DIVPD(mx, x operand.Op) { - c.addinstruction(x86.DIVPD(mx, x)) -} - -// DIVPD: Divide Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// DIVPD m128 xmm -// DIVPD xmm xmm -// -// Construct and append a DIVPD instruction to the active function. -// Operates on the global context. -func DIVPD(mx, x operand.Op) { ctx.DIVPD(mx, x) } - -// DIVPS: Divide Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// DIVPS m128 xmm -// DIVPS xmm xmm -// -// Construct and append a DIVPS instruction to the active function. -func (c *Context) DIVPS(mx, x operand.Op) { - c.addinstruction(x86.DIVPS(mx, x)) -} - -// DIVPS: Divide Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// DIVPS m128 xmm -// DIVPS xmm xmm -// -// Construct and append a DIVPS instruction to the active function. -// Operates on the global context. -func DIVPS(mx, x operand.Op) { ctx.DIVPS(mx, x) } - -// DIVQ: Unsigned Divide. -// -// Forms: -// -// DIVQ m64 -// DIVQ r64 -// -// Construct and append a DIVQ instruction to the active function. -func (c *Context) DIVQ(mr operand.Op) { - c.addinstruction(x86.DIVQ(mr)) -} - -// DIVQ: Unsigned Divide. -// -// Forms: -// -// DIVQ m64 -// DIVQ r64 -// -// Construct and append a DIVQ instruction to the active function. -// Operates on the global context. -func DIVQ(mr operand.Op) { ctx.DIVQ(mr) } - -// DIVSD: Divide Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// DIVSD m64 xmm -// DIVSD xmm xmm -// -// Construct and append a DIVSD instruction to the active function. -func (c *Context) DIVSD(mx, x operand.Op) { - c.addinstruction(x86.DIVSD(mx, x)) -} - -// DIVSD: Divide Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// DIVSD m64 xmm -// DIVSD xmm xmm -// -// Construct and append a DIVSD instruction to the active function. -// Operates on the global context. -func DIVSD(mx, x operand.Op) { ctx.DIVSD(mx, x) } - -// DIVSS: Divide Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// DIVSS m32 xmm -// DIVSS xmm xmm -// -// Construct and append a DIVSS instruction to the active function. -func (c *Context) DIVSS(mx, x operand.Op) { - c.addinstruction(x86.DIVSS(mx, x)) -} - -// DIVSS: Divide Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// DIVSS m32 xmm -// DIVSS xmm xmm -// -// Construct and append a DIVSS instruction to the active function. -// Operates on the global context. -func DIVSS(mx, x operand.Op) { ctx.DIVSS(mx, x) } - -// DIVW: Unsigned Divide. -// -// Forms: -// -// DIVW m16 -// DIVW r16 -// -// Construct and append a DIVW instruction to the active function. -func (c *Context) DIVW(mr operand.Op) { - c.addinstruction(x86.DIVW(mr)) -} - -// DIVW: Unsigned Divide. -// -// Forms: -// -// DIVW m16 -// DIVW r16 -// -// Construct and append a DIVW instruction to the active function. -// Operates on the global context. -func DIVW(mr operand.Op) { ctx.DIVW(mr) } - -// DPPD: Dot Product of Packed Double Precision Floating-Point Values. -// -// Forms: -// -// DPPD imm8 m128 xmm -// DPPD imm8 xmm xmm -// -// Construct and append a DPPD instruction to the active function. -func (c *Context) DPPD(i, mx, x operand.Op) { - c.addinstruction(x86.DPPD(i, mx, x)) -} - -// DPPD: Dot Product of Packed Double Precision Floating-Point Values. -// -// Forms: -// -// DPPD imm8 m128 xmm -// DPPD imm8 xmm xmm -// -// Construct and append a DPPD instruction to the active function. -// Operates on the global context. -func DPPD(i, mx, x operand.Op) { ctx.DPPD(i, mx, x) } - -// DPPS: Dot Product of Packed Single Precision Floating-Point Values. -// -// Forms: -// -// DPPS imm8 m128 xmm -// DPPS imm8 xmm xmm -// -// Construct and append a DPPS instruction to the active function. -func (c *Context) DPPS(i, mx, x operand.Op) { - c.addinstruction(x86.DPPS(i, mx, x)) -} - -// DPPS: Dot Product of Packed Single Precision Floating-Point Values. -// -// Forms: -// -// DPPS imm8 m128 xmm -// DPPS imm8 xmm xmm -// -// Construct and append a DPPS instruction to the active function. -// Operates on the global context. -func DPPS(i, mx, x operand.Op) { ctx.DPPS(i, mx, x) } - -// EXTRACTPS: Extract Packed Single Precision Floating-Point Value. -// -// Forms: -// -// EXTRACTPS imm2u xmm m32 -// EXTRACTPS imm2u xmm r32 -// -// Construct and append a EXTRACTPS instruction to the active function. -func (c *Context) EXTRACTPS(i, x, mr operand.Op) { - c.addinstruction(x86.EXTRACTPS(i, x, mr)) -} - -// EXTRACTPS: Extract Packed Single Precision Floating-Point Value. -// -// Forms: -// -// EXTRACTPS imm2u xmm m32 -// EXTRACTPS imm2u xmm r32 -// -// Construct and append a EXTRACTPS instruction to the active function. -// Operates on the global context. -func EXTRACTPS(i, x, mr operand.Op) { ctx.EXTRACTPS(i, x, mr) } - -// HADDPD: Packed Double-FP Horizontal Add. -// -// Forms: -// -// HADDPD m128 xmm -// HADDPD xmm xmm -// -// Construct and append a HADDPD instruction to the active function. -func (c *Context) HADDPD(mx, x operand.Op) { - c.addinstruction(x86.HADDPD(mx, x)) -} - -// HADDPD: Packed Double-FP Horizontal Add. -// -// Forms: -// -// HADDPD m128 xmm -// HADDPD xmm xmm -// -// Construct and append a HADDPD instruction to the active function. -// Operates on the global context. -func HADDPD(mx, x operand.Op) { ctx.HADDPD(mx, x) } - -// HADDPS: Packed Single-FP Horizontal Add. -// -// Forms: -// -// HADDPS m128 xmm -// HADDPS xmm xmm -// -// Construct and append a HADDPS instruction to the active function. -func (c *Context) HADDPS(mx, x operand.Op) { - c.addinstruction(x86.HADDPS(mx, x)) -} - -// HADDPS: Packed Single-FP Horizontal Add. -// -// Forms: -// -// HADDPS m128 xmm -// HADDPS xmm xmm -// -// Construct and append a HADDPS instruction to the active function. -// Operates on the global context. -func HADDPS(mx, x operand.Op) { ctx.HADDPS(mx, x) } - -// HSUBPD: Packed Double-FP Horizontal Subtract. -// -// Forms: -// -// HSUBPD m128 xmm -// HSUBPD xmm xmm -// -// Construct and append a HSUBPD instruction to the active function. -func (c *Context) HSUBPD(mx, x operand.Op) { - c.addinstruction(x86.HSUBPD(mx, x)) -} - -// HSUBPD: Packed Double-FP Horizontal Subtract. -// -// Forms: -// -// HSUBPD m128 xmm -// HSUBPD xmm xmm -// -// Construct and append a HSUBPD instruction to the active function. -// Operates on the global context. -func HSUBPD(mx, x operand.Op) { ctx.HSUBPD(mx, x) } - -// HSUBPS: Packed Single-FP Horizontal Subtract. -// -// Forms: -// -// HSUBPS m128 xmm -// HSUBPS xmm xmm -// -// Construct and append a HSUBPS instruction to the active function. -func (c *Context) HSUBPS(mx, x operand.Op) { - c.addinstruction(x86.HSUBPS(mx, x)) -} - -// HSUBPS: Packed Single-FP Horizontal Subtract. -// -// Forms: -// -// HSUBPS m128 xmm -// HSUBPS xmm xmm -// -// Construct and append a HSUBPS instruction to the active function. -// Operates on the global context. -func HSUBPS(mx, x operand.Op) { ctx.HSUBPS(mx, x) } - -// IDIVB: Signed Divide. -// -// Forms: -// -// IDIVB m8 -// IDIVB r8 -// -// Construct and append a IDIVB instruction to the active function. -func (c *Context) IDIVB(mr operand.Op) { - c.addinstruction(x86.IDIVB(mr)) -} - -// IDIVB: Signed Divide. -// -// Forms: -// -// IDIVB m8 -// IDIVB r8 -// -// Construct and append a IDIVB instruction to the active function. -// Operates on the global context. -func IDIVB(mr operand.Op) { ctx.IDIVB(mr) } - -// IDIVL: Signed Divide. -// -// Forms: -// -// IDIVL m32 -// IDIVL r32 -// -// Construct and append a IDIVL instruction to the active function. -func (c *Context) IDIVL(mr operand.Op) { - c.addinstruction(x86.IDIVL(mr)) -} - -// IDIVL: Signed Divide. -// -// Forms: -// -// IDIVL m32 -// IDIVL r32 -// -// Construct and append a IDIVL instruction to the active function. -// Operates on the global context. -func IDIVL(mr operand.Op) { ctx.IDIVL(mr) } - -// IDIVQ: Signed Divide. -// -// Forms: -// -// IDIVQ m64 -// IDIVQ r64 -// -// Construct and append a IDIVQ instruction to the active function. -func (c *Context) IDIVQ(mr operand.Op) { - c.addinstruction(x86.IDIVQ(mr)) -} - -// IDIVQ: Signed Divide. -// -// Forms: -// -// IDIVQ m64 -// IDIVQ r64 -// -// Construct and append a IDIVQ instruction to the active function. -// Operates on the global context. -func IDIVQ(mr operand.Op) { ctx.IDIVQ(mr) } - -// IDIVW: Signed Divide. -// -// Forms: -// -// IDIVW m16 -// IDIVW r16 -// -// Construct and append a IDIVW instruction to the active function. -func (c *Context) IDIVW(mr operand.Op) { - c.addinstruction(x86.IDIVW(mr)) -} - -// IDIVW: Signed Divide. -// -// Forms: -// -// IDIVW m16 -// IDIVW r16 -// -// Construct and append a IDIVW instruction to the active function. -// Operates on the global context. -func IDIVW(mr operand.Op) { ctx.IDIVW(mr) } - -// IMUL3L: Signed Multiply. -// -// Forms: -// -// IMUL3L imm32 m32 r32 -// IMUL3L imm32 r32 r32 -// IMUL3L imm8 m32 r32 -// IMUL3L imm8 r32 r32 -// -// Construct and append a IMUL3L instruction to the active function. -func (c *Context) IMUL3L(i, mr, r operand.Op) { - c.addinstruction(x86.IMUL3L(i, mr, r)) -} - -// IMUL3L: Signed Multiply. -// -// Forms: -// -// IMUL3L imm32 m32 r32 -// IMUL3L imm32 r32 r32 -// IMUL3L imm8 m32 r32 -// IMUL3L imm8 r32 r32 -// -// Construct and append a IMUL3L instruction to the active function. -// Operates on the global context. -func IMUL3L(i, mr, r operand.Op) { ctx.IMUL3L(i, mr, r) } - -// IMUL3Q: Signed Multiply. -// -// Forms: -// -// IMUL3Q imm32 m64 r64 -// IMUL3Q imm32 r64 r64 -// IMUL3Q imm8 m64 r64 -// IMUL3Q imm8 r64 r64 -// -// Construct and append a IMUL3Q instruction to the active function. -func (c *Context) IMUL3Q(i, mr, r operand.Op) { - c.addinstruction(x86.IMUL3Q(i, mr, r)) -} - -// IMUL3Q: Signed Multiply. -// -// Forms: -// -// IMUL3Q imm32 m64 r64 -// IMUL3Q imm32 r64 r64 -// IMUL3Q imm8 m64 r64 -// IMUL3Q imm8 r64 r64 -// -// Construct and append a IMUL3Q instruction to the active function. -// Operates on the global context. -func IMUL3Q(i, mr, r operand.Op) { ctx.IMUL3Q(i, mr, r) } - -// IMUL3W: Signed Multiply. -// -// Forms: -// -// IMUL3W imm16 m16 r16 -// IMUL3W imm16 r16 r16 -// IMUL3W imm8 m16 r16 -// IMUL3W imm8 r16 r16 -// -// Construct and append a IMUL3W instruction to the active function. -func (c *Context) IMUL3W(i, mr, r operand.Op) { - c.addinstruction(x86.IMUL3W(i, mr, r)) -} - -// IMUL3W: Signed Multiply. -// -// Forms: -// -// IMUL3W imm16 m16 r16 -// IMUL3W imm16 r16 r16 -// IMUL3W imm8 m16 r16 -// IMUL3W imm8 r16 r16 -// -// Construct and append a IMUL3W instruction to the active function. -// Operates on the global context. -func IMUL3W(i, mr, r operand.Op) { ctx.IMUL3W(i, mr, r) } - -// IMULB: Signed Multiply. -// -// Forms: -// -// IMULB m8 -// IMULB r8 -// -// Construct and append a IMULB instruction to the active function. -func (c *Context) IMULB(mr operand.Op) { - c.addinstruction(x86.IMULB(mr)) -} - -// IMULB: Signed Multiply. -// -// Forms: -// -// IMULB m8 -// IMULB r8 -// -// Construct and append a IMULB instruction to the active function. -// Operates on the global context. -func IMULB(mr operand.Op) { ctx.IMULB(mr) } - -// IMULL: Signed Multiply. -// -// Forms: -// -// IMULL m32 r32 -// IMULL m32 -// IMULL r32 r32 -// IMULL r32 -// -// Construct and append a IMULL instruction to the active function. -func (c *Context) IMULL(ops ...operand.Op) { - c.addinstruction(x86.IMULL(ops...)) -} - -// IMULL: Signed Multiply. -// -// Forms: -// -// IMULL m32 r32 -// IMULL m32 -// IMULL r32 r32 -// IMULL r32 -// -// Construct and append a IMULL instruction to the active function. -// Operates on the global context. -func IMULL(ops ...operand.Op) { ctx.IMULL(ops...) } - -// IMULQ: Signed Multiply. -// -// Forms: -// -// IMULQ m64 r64 -// IMULQ m64 -// IMULQ r64 r64 -// IMULQ r64 -// -// Construct and append a IMULQ instruction to the active function. -func (c *Context) IMULQ(ops ...operand.Op) { - c.addinstruction(x86.IMULQ(ops...)) -} - -// IMULQ: Signed Multiply. -// -// Forms: -// -// IMULQ m64 r64 -// IMULQ m64 -// IMULQ r64 r64 -// IMULQ r64 -// -// Construct and append a IMULQ instruction to the active function. -// Operates on the global context. -func IMULQ(ops ...operand.Op) { ctx.IMULQ(ops...) } - -// IMULW: Signed Multiply. -// -// Forms: -// -// IMULW m16 r16 -// IMULW m16 -// IMULW r16 r16 -// IMULW r16 -// -// Construct and append a IMULW instruction to the active function. -func (c *Context) IMULW(ops ...operand.Op) { - c.addinstruction(x86.IMULW(ops...)) -} - -// IMULW: Signed Multiply. -// -// Forms: -// -// IMULW m16 r16 -// IMULW m16 -// IMULW r16 r16 -// IMULW r16 -// -// Construct and append a IMULW instruction to the active function. -// Operates on the global context. -func IMULW(ops ...operand.Op) { ctx.IMULW(ops...) } - -// INCB: Increment by 1. -// -// Forms: -// -// INCB m8 -// INCB r8 -// -// Construct and append a INCB instruction to the active function. -func (c *Context) INCB(mr operand.Op) { - c.addinstruction(x86.INCB(mr)) -} - -// INCB: Increment by 1. -// -// Forms: -// -// INCB m8 -// INCB r8 -// -// Construct and append a INCB instruction to the active function. -// Operates on the global context. -func INCB(mr operand.Op) { ctx.INCB(mr) } - -// INCL: Increment by 1. -// -// Forms: -// -// INCL m32 -// INCL r32 -// -// Construct and append a INCL instruction to the active function. -func (c *Context) INCL(mr operand.Op) { - c.addinstruction(x86.INCL(mr)) -} - -// INCL: Increment by 1. -// -// Forms: -// -// INCL m32 -// INCL r32 -// -// Construct and append a INCL instruction to the active function. -// Operates on the global context. -func INCL(mr operand.Op) { ctx.INCL(mr) } - -// INCQ: Increment by 1. -// -// Forms: -// -// INCQ m64 -// INCQ r64 -// -// Construct and append a INCQ instruction to the active function. -func (c *Context) INCQ(mr operand.Op) { - c.addinstruction(x86.INCQ(mr)) -} - -// INCQ: Increment by 1. -// -// Forms: -// -// INCQ m64 -// INCQ r64 -// -// Construct and append a INCQ instruction to the active function. -// Operates on the global context. -func INCQ(mr operand.Op) { ctx.INCQ(mr) } - -// INCW: Increment by 1. -// -// Forms: -// -// INCW m16 -// INCW r16 -// -// Construct and append a INCW instruction to the active function. -func (c *Context) INCW(mr operand.Op) { - c.addinstruction(x86.INCW(mr)) -} - -// INCW: Increment by 1. -// -// Forms: -// -// INCW m16 -// INCW r16 -// -// Construct and append a INCW instruction to the active function. -// Operates on the global context. -func INCW(mr operand.Op) { ctx.INCW(mr) } - -// INSERTPS: Insert Packed Single Precision Floating-Point Value. -// -// Forms: -// -// INSERTPS imm8 m32 xmm -// INSERTPS imm8 xmm xmm -// -// Construct and append a INSERTPS instruction to the active function. -func (c *Context) INSERTPS(i, mx, x operand.Op) { - c.addinstruction(x86.INSERTPS(i, mx, x)) -} - -// INSERTPS: Insert Packed Single Precision Floating-Point Value. -// -// Forms: -// -// INSERTPS imm8 m32 xmm -// INSERTPS imm8 xmm xmm -// -// Construct and append a INSERTPS instruction to the active function. -// Operates on the global context. -func INSERTPS(i, mx, x operand.Op) { ctx.INSERTPS(i, mx, x) } - -// INT: Call to Interrupt Procedure. -// -// Forms: -// -// INT 3 -// INT imm8 -// -// Construct and append a INT instruction to the active function. -func (c *Context) INT(i operand.Op) { - c.addinstruction(x86.INT(i)) -} - -// INT: Call to Interrupt Procedure. -// -// Forms: -// -// INT 3 -// INT imm8 -// -// Construct and append a INT instruction to the active function. -// Operates on the global context. -func INT(i operand.Op) { ctx.INT(i) } - -// JA: Jump if above (CF == 0 and ZF == 0). -// -// Forms: -// -// JA rel32 -// JA rel8 -// -// Construct and append a JA instruction to the active function. -func (c *Context) JA(r operand.Op) { - c.addinstruction(x86.JA(r)) -} - -// JA: Jump if above (CF == 0 and ZF == 0). -// -// Forms: -// -// JA rel32 -// JA rel8 -// -// Construct and append a JA instruction to the active function. -// Operates on the global context. -func JA(r operand.Op) { ctx.JA(r) } - -// JAE: Jump if above or equal (CF == 0). -// -// Forms: -// -// JAE rel32 -// JAE rel8 -// -// Construct and append a JAE instruction to the active function. -func (c *Context) JAE(r operand.Op) { - c.addinstruction(x86.JAE(r)) -} - -// JAE: Jump if above or equal (CF == 0). -// -// Forms: -// -// JAE rel32 -// JAE rel8 -// -// Construct and append a JAE instruction to the active function. -// Operates on the global context. -func JAE(r operand.Op) { ctx.JAE(r) } - -// JB: Jump if below (CF == 1). -// -// Forms: -// -// JB rel32 -// JB rel8 -// -// Construct and append a JB instruction to the active function. -func (c *Context) JB(r operand.Op) { - c.addinstruction(x86.JB(r)) -} - -// JB: Jump if below (CF == 1). -// -// Forms: -// -// JB rel32 -// JB rel8 -// -// Construct and append a JB instruction to the active function. -// Operates on the global context. -func JB(r operand.Op) { ctx.JB(r) } - -// JBE: Jump if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// JBE rel32 -// JBE rel8 -// -// Construct and append a JBE instruction to the active function. -func (c *Context) JBE(r operand.Op) { - c.addinstruction(x86.JBE(r)) -} - -// JBE: Jump if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// JBE rel32 -// JBE rel8 -// -// Construct and append a JBE instruction to the active function. -// Operates on the global context. -func JBE(r operand.Op) { ctx.JBE(r) } - -// JC: Jump if below (CF == 1). -// -// Forms: -// -// JC rel32 -// JC rel8 -// -// Construct and append a JC instruction to the active function. -func (c *Context) JC(r operand.Op) { - c.addinstruction(x86.JC(r)) -} - -// JC: Jump if below (CF == 1). -// -// Forms: -// -// JC rel32 -// JC rel8 -// -// Construct and append a JC instruction to the active function. -// Operates on the global context. -func JC(r operand.Op) { ctx.JC(r) } - -// JCC: Jump if above or equal (CF == 0). -// -// Forms: -// -// JCC rel32 -// JCC rel8 -// -// Construct and append a JCC instruction to the active function. -func (c *Context) JCC(r operand.Op) { - c.addinstruction(x86.JCC(r)) -} - -// JCC: Jump if above or equal (CF == 0). -// -// Forms: -// -// JCC rel32 -// JCC rel8 -// -// Construct and append a JCC instruction to the active function. -// Operates on the global context. -func JCC(r operand.Op) { ctx.JCC(r) } - -// JCS: Jump if below (CF == 1). -// -// Forms: -// -// JCS rel32 -// JCS rel8 -// -// Construct and append a JCS instruction to the active function. -func (c *Context) JCS(r operand.Op) { - c.addinstruction(x86.JCS(r)) -} - -// JCS: Jump if below (CF == 1). -// -// Forms: -// -// JCS rel32 -// JCS rel8 -// -// Construct and append a JCS instruction to the active function. -// Operates on the global context. -func JCS(r operand.Op) { ctx.JCS(r) } - -// JCXZL: Jump if ECX register is 0. -// -// Forms: -// -// JCXZL rel8 -// -// Construct and append a JCXZL instruction to the active function. -func (c *Context) JCXZL(r operand.Op) { - c.addinstruction(x86.JCXZL(r)) -} - -// JCXZL: Jump if ECX register is 0. -// -// Forms: -// -// JCXZL rel8 -// -// Construct and append a JCXZL instruction to the active function. -// Operates on the global context. -func JCXZL(r operand.Op) { ctx.JCXZL(r) } - -// JCXZQ: Jump if RCX register is 0. -// -// Forms: -// -// JCXZQ rel8 -// -// Construct and append a JCXZQ instruction to the active function. -func (c *Context) JCXZQ(r operand.Op) { - c.addinstruction(x86.JCXZQ(r)) -} - -// JCXZQ: Jump if RCX register is 0. -// -// Forms: -// -// JCXZQ rel8 -// -// Construct and append a JCXZQ instruction to the active function. -// Operates on the global context. -func JCXZQ(r operand.Op) { ctx.JCXZQ(r) } - -// JE: Jump if equal (ZF == 1). -// -// Forms: -// -// JE rel32 -// JE rel8 -// -// Construct and append a JE instruction to the active function. -func (c *Context) JE(r operand.Op) { - c.addinstruction(x86.JE(r)) -} - -// JE: Jump if equal (ZF == 1). -// -// Forms: -// -// JE rel32 -// JE rel8 -// -// Construct and append a JE instruction to the active function. -// Operates on the global context. -func JE(r operand.Op) { ctx.JE(r) } - -// JEQ: Jump if equal (ZF == 1). -// -// Forms: -// -// JEQ rel32 -// JEQ rel8 -// -// Construct and append a JEQ instruction to the active function. -func (c *Context) JEQ(r operand.Op) { - c.addinstruction(x86.JEQ(r)) -} - -// JEQ: Jump if equal (ZF == 1). -// -// Forms: -// -// JEQ rel32 -// JEQ rel8 -// -// Construct and append a JEQ instruction to the active function. -// Operates on the global context. -func JEQ(r operand.Op) { ctx.JEQ(r) } - -// JG: Jump if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// JG rel32 -// JG rel8 -// -// Construct and append a JG instruction to the active function. -func (c *Context) JG(r operand.Op) { - c.addinstruction(x86.JG(r)) -} - -// JG: Jump if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// JG rel32 -// JG rel8 -// -// Construct and append a JG instruction to the active function. -// Operates on the global context. -func JG(r operand.Op) { ctx.JG(r) } - -// JGE: Jump if greater or equal (SF == OF). -// -// Forms: -// -// JGE rel32 -// JGE rel8 -// -// Construct and append a JGE instruction to the active function. -func (c *Context) JGE(r operand.Op) { - c.addinstruction(x86.JGE(r)) -} - -// JGE: Jump if greater or equal (SF == OF). -// -// Forms: -// -// JGE rel32 -// JGE rel8 -// -// Construct and append a JGE instruction to the active function. -// Operates on the global context. -func JGE(r operand.Op) { ctx.JGE(r) } - -// JGT: Jump if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// JGT rel32 -// JGT rel8 -// -// Construct and append a JGT instruction to the active function. -func (c *Context) JGT(r operand.Op) { - c.addinstruction(x86.JGT(r)) -} - -// JGT: Jump if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// JGT rel32 -// JGT rel8 -// -// Construct and append a JGT instruction to the active function. -// Operates on the global context. -func JGT(r operand.Op) { ctx.JGT(r) } - -// JHI: Jump if above (CF == 0 and ZF == 0). -// -// Forms: -// -// JHI rel32 -// JHI rel8 -// -// Construct and append a JHI instruction to the active function. -func (c *Context) JHI(r operand.Op) { - c.addinstruction(x86.JHI(r)) -} - -// JHI: Jump if above (CF == 0 and ZF == 0). -// -// Forms: -// -// JHI rel32 -// JHI rel8 -// -// Construct and append a JHI instruction to the active function. -// Operates on the global context. -func JHI(r operand.Op) { ctx.JHI(r) } - -// JHS: Jump if above or equal (CF == 0). -// -// Forms: -// -// JHS rel32 -// JHS rel8 -// -// Construct and append a JHS instruction to the active function. -func (c *Context) JHS(r operand.Op) { - c.addinstruction(x86.JHS(r)) -} - -// JHS: Jump if above or equal (CF == 0). -// -// Forms: -// -// JHS rel32 -// JHS rel8 -// -// Construct and append a JHS instruction to the active function. -// Operates on the global context. -func JHS(r operand.Op) { ctx.JHS(r) } - -// JL: Jump if less (SF != OF). -// -// Forms: -// -// JL rel32 -// JL rel8 -// -// Construct and append a JL instruction to the active function. -func (c *Context) JL(r operand.Op) { - c.addinstruction(x86.JL(r)) -} - -// JL: Jump if less (SF != OF). -// -// Forms: -// -// JL rel32 -// JL rel8 -// -// Construct and append a JL instruction to the active function. -// Operates on the global context. -func JL(r operand.Op) { ctx.JL(r) } - -// JLE: Jump if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// JLE rel32 -// JLE rel8 -// -// Construct and append a JLE instruction to the active function. -func (c *Context) JLE(r operand.Op) { - c.addinstruction(x86.JLE(r)) -} - -// JLE: Jump if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// JLE rel32 -// JLE rel8 -// -// Construct and append a JLE instruction to the active function. -// Operates on the global context. -func JLE(r operand.Op) { ctx.JLE(r) } - -// JLO: Jump if below (CF == 1). -// -// Forms: -// -// JLO rel32 -// JLO rel8 -// -// Construct and append a JLO instruction to the active function. -func (c *Context) JLO(r operand.Op) { - c.addinstruction(x86.JLO(r)) -} - -// JLO: Jump if below (CF == 1). -// -// Forms: -// -// JLO rel32 -// JLO rel8 -// -// Construct and append a JLO instruction to the active function. -// Operates on the global context. -func JLO(r operand.Op) { ctx.JLO(r) } - -// JLS: Jump if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// JLS rel32 -// JLS rel8 -// -// Construct and append a JLS instruction to the active function. -func (c *Context) JLS(r operand.Op) { - c.addinstruction(x86.JLS(r)) -} - -// JLS: Jump if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// JLS rel32 -// JLS rel8 -// -// Construct and append a JLS instruction to the active function. -// Operates on the global context. -func JLS(r operand.Op) { ctx.JLS(r) } - -// JLT: Jump if less (SF != OF). -// -// Forms: -// -// JLT rel32 -// JLT rel8 -// -// Construct and append a JLT instruction to the active function. -func (c *Context) JLT(r operand.Op) { - c.addinstruction(x86.JLT(r)) -} - -// JLT: Jump if less (SF != OF). -// -// Forms: -// -// JLT rel32 -// JLT rel8 -// -// Construct and append a JLT instruction to the active function. -// Operates on the global context. -func JLT(r operand.Op) { ctx.JLT(r) } - -// JMI: Jump if sign (SF == 1). -// -// Forms: -// -// JMI rel32 -// JMI rel8 -// -// Construct and append a JMI instruction to the active function. -func (c *Context) JMI(r operand.Op) { - c.addinstruction(x86.JMI(r)) -} - -// JMI: Jump if sign (SF == 1). -// -// Forms: -// -// JMI rel32 -// JMI rel8 -// -// Construct and append a JMI instruction to the active function. -// Operates on the global context. -func JMI(r operand.Op) { ctx.JMI(r) } - -// JMP: Jump Unconditionally. -// -// Forms: -// -// JMP rel32 -// JMP rel8 -// JMP m64 -// JMP r64 -// -// Construct and append a JMP instruction to the active function. -func (c *Context) JMP(mr operand.Op) { - c.addinstruction(x86.JMP(mr)) -} - -// JMP: Jump Unconditionally. -// -// Forms: -// -// JMP rel32 -// JMP rel8 -// JMP m64 -// JMP r64 -// -// Construct and append a JMP instruction to the active function. -// Operates on the global context. -func JMP(mr operand.Op) { ctx.JMP(mr) } - -// JNA: Jump if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// JNA rel32 -// JNA rel8 -// -// Construct and append a JNA instruction to the active function. -func (c *Context) JNA(r operand.Op) { - c.addinstruction(x86.JNA(r)) -} - -// JNA: Jump if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// JNA rel32 -// JNA rel8 -// -// Construct and append a JNA instruction to the active function. -// Operates on the global context. -func JNA(r operand.Op) { ctx.JNA(r) } - -// JNAE: Jump if below (CF == 1). -// -// Forms: -// -// JNAE rel32 -// JNAE rel8 -// -// Construct and append a JNAE instruction to the active function. -func (c *Context) JNAE(r operand.Op) { - c.addinstruction(x86.JNAE(r)) -} - -// JNAE: Jump if below (CF == 1). -// -// Forms: -// -// JNAE rel32 -// JNAE rel8 -// -// Construct and append a JNAE instruction to the active function. -// Operates on the global context. -func JNAE(r operand.Op) { ctx.JNAE(r) } - -// JNB: Jump if above or equal (CF == 0). -// -// Forms: -// -// JNB rel32 -// JNB rel8 -// -// Construct and append a JNB instruction to the active function. -func (c *Context) JNB(r operand.Op) { - c.addinstruction(x86.JNB(r)) -} - -// JNB: Jump if above or equal (CF == 0). -// -// Forms: -// -// JNB rel32 -// JNB rel8 -// -// Construct and append a JNB instruction to the active function. -// Operates on the global context. -func JNB(r operand.Op) { ctx.JNB(r) } - -// JNBE: Jump if above (CF == 0 and ZF == 0). -// -// Forms: -// -// JNBE rel32 -// JNBE rel8 -// -// Construct and append a JNBE instruction to the active function. -func (c *Context) JNBE(r operand.Op) { - c.addinstruction(x86.JNBE(r)) -} - -// JNBE: Jump if above (CF == 0 and ZF == 0). -// -// Forms: -// -// JNBE rel32 -// JNBE rel8 -// -// Construct and append a JNBE instruction to the active function. -// Operates on the global context. -func JNBE(r operand.Op) { ctx.JNBE(r) } - -// JNC: Jump if above or equal (CF == 0). -// -// Forms: -// -// JNC rel32 -// JNC rel8 -// -// Construct and append a JNC instruction to the active function. -func (c *Context) JNC(r operand.Op) { - c.addinstruction(x86.JNC(r)) -} - -// JNC: Jump if above or equal (CF == 0). -// -// Forms: -// -// JNC rel32 -// JNC rel8 -// -// Construct and append a JNC instruction to the active function. -// Operates on the global context. -func JNC(r operand.Op) { ctx.JNC(r) } - -// JNE: Jump if not equal (ZF == 0). -// -// Forms: -// -// JNE rel32 -// JNE rel8 -// -// Construct and append a JNE instruction to the active function. -func (c *Context) JNE(r operand.Op) { - c.addinstruction(x86.JNE(r)) -} - -// JNE: Jump if not equal (ZF == 0). -// -// Forms: -// -// JNE rel32 -// JNE rel8 -// -// Construct and append a JNE instruction to the active function. -// Operates on the global context. -func JNE(r operand.Op) { ctx.JNE(r) } - -// JNG: Jump if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// JNG rel32 -// JNG rel8 -// -// Construct and append a JNG instruction to the active function. -func (c *Context) JNG(r operand.Op) { - c.addinstruction(x86.JNG(r)) -} - -// JNG: Jump if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// JNG rel32 -// JNG rel8 -// -// Construct and append a JNG instruction to the active function. -// Operates on the global context. -func JNG(r operand.Op) { ctx.JNG(r) } - -// JNGE: Jump if less (SF != OF). -// -// Forms: -// -// JNGE rel32 -// JNGE rel8 -// -// Construct and append a JNGE instruction to the active function. -func (c *Context) JNGE(r operand.Op) { - c.addinstruction(x86.JNGE(r)) -} - -// JNGE: Jump if less (SF != OF). -// -// Forms: -// -// JNGE rel32 -// JNGE rel8 -// -// Construct and append a JNGE instruction to the active function. -// Operates on the global context. -func JNGE(r operand.Op) { ctx.JNGE(r) } - -// JNL: Jump if greater or equal (SF == OF). -// -// Forms: -// -// JNL rel32 -// JNL rel8 -// -// Construct and append a JNL instruction to the active function. -func (c *Context) JNL(r operand.Op) { - c.addinstruction(x86.JNL(r)) -} - -// JNL: Jump if greater or equal (SF == OF). -// -// Forms: -// -// JNL rel32 -// JNL rel8 -// -// Construct and append a JNL instruction to the active function. -// Operates on the global context. -func JNL(r operand.Op) { ctx.JNL(r) } - -// JNLE: Jump if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// JNLE rel32 -// JNLE rel8 -// -// Construct and append a JNLE instruction to the active function. -func (c *Context) JNLE(r operand.Op) { - c.addinstruction(x86.JNLE(r)) -} - -// JNLE: Jump if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// JNLE rel32 -// JNLE rel8 -// -// Construct and append a JNLE instruction to the active function. -// Operates on the global context. -func JNLE(r operand.Op) { ctx.JNLE(r) } - -// JNO: Jump if not overflow (OF == 0). -// -// Forms: -// -// JNO rel32 -// JNO rel8 -// -// Construct and append a JNO instruction to the active function. -func (c *Context) JNO(r operand.Op) { - c.addinstruction(x86.JNO(r)) -} - -// JNO: Jump if not overflow (OF == 0). -// -// Forms: -// -// JNO rel32 -// JNO rel8 -// -// Construct and append a JNO instruction to the active function. -// Operates on the global context. -func JNO(r operand.Op) { ctx.JNO(r) } - -// JNP: Jump if not parity (PF == 0). -// -// Forms: -// -// JNP rel32 -// JNP rel8 -// -// Construct and append a JNP instruction to the active function. -func (c *Context) JNP(r operand.Op) { - c.addinstruction(x86.JNP(r)) -} - -// JNP: Jump if not parity (PF == 0). -// -// Forms: -// -// JNP rel32 -// JNP rel8 -// -// Construct and append a JNP instruction to the active function. -// Operates on the global context. -func JNP(r operand.Op) { ctx.JNP(r) } - -// JNS: Jump if not sign (SF == 0). -// -// Forms: -// -// JNS rel32 -// JNS rel8 -// -// Construct and append a JNS instruction to the active function. -func (c *Context) JNS(r operand.Op) { - c.addinstruction(x86.JNS(r)) -} - -// JNS: Jump if not sign (SF == 0). -// -// Forms: -// -// JNS rel32 -// JNS rel8 -// -// Construct and append a JNS instruction to the active function. -// Operates on the global context. -func JNS(r operand.Op) { ctx.JNS(r) } - -// JNZ: Jump if not equal (ZF == 0). -// -// Forms: -// -// JNZ rel32 -// JNZ rel8 -// -// Construct and append a JNZ instruction to the active function. -func (c *Context) JNZ(r operand.Op) { - c.addinstruction(x86.JNZ(r)) -} - -// JNZ: Jump if not equal (ZF == 0). -// -// Forms: -// -// JNZ rel32 -// JNZ rel8 -// -// Construct and append a JNZ instruction to the active function. -// Operates on the global context. -func JNZ(r operand.Op) { ctx.JNZ(r) } - -// JO: Jump if overflow (OF == 1). -// -// Forms: -// -// JO rel32 -// JO rel8 -// -// Construct and append a JO instruction to the active function. -func (c *Context) JO(r operand.Op) { - c.addinstruction(x86.JO(r)) -} - -// JO: Jump if overflow (OF == 1). -// -// Forms: -// -// JO rel32 -// JO rel8 -// -// Construct and append a JO instruction to the active function. -// Operates on the global context. -func JO(r operand.Op) { ctx.JO(r) } - -// JOC: Jump if not overflow (OF == 0). -// -// Forms: -// -// JOC rel32 -// JOC rel8 -// -// Construct and append a JOC instruction to the active function. -func (c *Context) JOC(r operand.Op) { - c.addinstruction(x86.JOC(r)) -} - -// JOC: Jump if not overflow (OF == 0). -// -// Forms: -// -// JOC rel32 -// JOC rel8 -// -// Construct and append a JOC instruction to the active function. -// Operates on the global context. -func JOC(r operand.Op) { ctx.JOC(r) } - -// JOS: Jump if overflow (OF == 1). -// -// Forms: -// -// JOS rel32 -// JOS rel8 -// -// Construct and append a JOS instruction to the active function. -func (c *Context) JOS(r operand.Op) { - c.addinstruction(x86.JOS(r)) -} - -// JOS: Jump if overflow (OF == 1). -// -// Forms: -// -// JOS rel32 -// JOS rel8 -// -// Construct and append a JOS instruction to the active function. -// Operates on the global context. -func JOS(r operand.Op) { ctx.JOS(r) } - -// JP: Jump if parity (PF == 1). -// -// Forms: -// -// JP rel32 -// JP rel8 -// -// Construct and append a JP instruction to the active function. -func (c *Context) JP(r operand.Op) { - c.addinstruction(x86.JP(r)) -} - -// JP: Jump if parity (PF == 1). -// -// Forms: -// -// JP rel32 -// JP rel8 -// -// Construct and append a JP instruction to the active function. -// Operates on the global context. -func JP(r operand.Op) { ctx.JP(r) } - -// JPC: Jump if not parity (PF == 0). -// -// Forms: -// -// JPC rel32 -// JPC rel8 -// -// Construct and append a JPC instruction to the active function. -func (c *Context) JPC(r operand.Op) { - c.addinstruction(x86.JPC(r)) -} - -// JPC: Jump if not parity (PF == 0). -// -// Forms: -// -// JPC rel32 -// JPC rel8 -// -// Construct and append a JPC instruction to the active function. -// Operates on the global context. -func JPC(r operand.Op) { ctx.JPC(r) } - -// JPE: Jump if parity (PF == 1). -// -// Forms: -// -// JPE rel32 -// JPE rel8 -// -// Construct and append a JPE instruction to the active function. -func (c *Context) JPE(r operand.Op) { - c.addinstruction(x86.JPE(r)) -} - -// JPE: Jump if parity (PF == 1). -// -// Forms: -// -// JPE rel32 -// JPE rel8 -// -// Construct and append a JPE instruction to the active function. -// Operates on the global context. -func JPE(r operand.Op) { ctx.JPE(r) } - -// JPL: Jump if not sign (SF == 0). -// -// Forms: -// -// JPL rel32 -// JPL rel8 -// -// Construct and append a JPL instruction to the active function. -func (c *Context) JPL(r operand.Op) { - c.addinstruction(x86.JPL(r)) -} - -// JPL: Jump if not sign (SF == 0). -// -// Forms: -// -// JPL rel32 -// JPL rel8 -// -// Construct and append a JPL instruction to the active function. -// Operates on the global context. -func JPL(r operand.Op) { ctx.JPL(r) } - -// JPO: Jump if not parity (PF == 0). -// -// Forms: -// -// JPO rel32 -// JPO rel8 -// -// Construct and append a JPO instruction to the active function. -func (c *Context) JPO(r operand.Op) { - c.addinstruction(x86.JPO(r)) -} - -// JPO: Jump if not parity (PF == 0). -// -// Forms: -// -// JPO rel32 -// JPO rel8 -// -// Construct and append a JPO instruction to the active function. -// Operates on the global context. -func JPO(r operand.Op) { ctx.JPO(r) } - -// JPS: Jump if parity (PF == 1). -// -// Forms: -// -// JPS rel32 -// JPS rel8 -// -// Construct and append a JPS instruction to the active function. -func (c *Context) JPS(r operand.Op) { - c.addinstruction(x86.JPS(r)) -} - -// JPS: Jump if parity (PF == 1). -// -// Forms: -// -// JPS rel32 -// JPS rel8 -// -// Construct and append a JPS instruction to the active function. -// Operates on the global context. -func JPS(r operand.Op) { ctx.JPS(r) } - -// JS: Jump if sign (SF == 1). -// -// Forms: -// -// JS rel32 -// JS rel8 -// -// Construct and append a JS instruction to the active function. -func (c *Context) JS(r operand.Op) { - c.addinstruction(x86.JS(r)) -} - -// JS: Jump if sign (SF == 1). -// -// Forms: -// -// JS rel32 -// JS rel8 -// -// Construct and append a JS instruction to the active function. -// Operates on the global context. -func JS(r operand.Op) { ctx.JS(r) } - -// JZ: Jump if equal (ZF == 1). -// -// Forms: -// -// JZ rel32 -// JZ rel8 -// -// Construct and append a JZ instruction to the active function. -func (c *Context) JZ(r operand.Op) { - c.addinstruction(x86.JZ(r)) -} - -// JZ: Jump if equal (ZF == 1). -// -// Forms: -// -// JZ rel32 -// JZ rel8 -// -// Construct and append a JZ instruction to the active function. -// Operates on the global context. -func JZ(r operand.Op) { ctx.JZ(r) } - -// KADDB: ADD Two 8-bit Masks. -// -// Forms: -// -// KADDB k k k -// -// Construct and append a KADDB instruction to the active function. -func (c *Context) KADDB(k, k1, k2 operand.Op) { - c.addinstruction(x86.KADDB(k, k1, k2)) -} - -// KADDB: ADD Two 8-bit Masks. -// -// Forms: -// -// KADDB k k k -// -// Construct and append a KADDB instruction to the active function. -// Operates on the global context. -func KADDB(k, k1, k2 operand.Op) { ctx.KADDB(k, k1, k2) } - -// KADDD: ADD Two 32-bit Masks. -// -// Forms: -// -// KADDD k k k -// -// Construct and append a KADDD instruction to the active function. -func (c *Context) KADDD(k, k1, k2 operand.Op) { - c.addinstruction(x86.KADDD(k, k1, k2)) -} - -// KADDD: ADD Two 32-bit Masks. -// -// Forms: -// -// KADDD k k k -// -// Construct and append a KADDD instruction to the active function. -// Operates on the global context. -func KADDD(k, k1, k2 operand.Op) { ctx.KADDD(k, k1, k2) } - -// KADDQ: ADD Two 64-bit Masks. -// -// Forms: -// -// KADDQ k k k -// -// Construct and append a KADDQ instruction to the active function. -func (c *Context) KADDQ(k, k1, k2 operand.Op) { - c.addinstruction(x86.KADDQ(k, k1, k2)) -} - -// KADDQ: ADD Two 64-bit Masks. -// -// Forms: -// -// KADDQ k k k -// -// Construct and append a KADDQ instruction to the active function. -// Operates on the global context. -func KADDQ(k, k1, k2 operand.Op) { ctx.KADDQ(k, k1, k2) } - -// KADDW: ADD Two 16-bit Masks. -// -// Forms: -// -// KADDW k k k -// -// Construct and append a KADDW instruction to the active function. -func (c *Context) KADDW(k, k1, k2 operand.Op) { - c.addinstruction(x86.KADDW(k, k1, k2)) -} - -// KADDW: ADD Two 16-bit Masks. -// -// Forms: -// -// KADDW k k k -// -// Construct and append a KADDW instruction to the active function. -// Operates on the global context. -func KADDW(k, k1, k2 operand.Op) { ctx.KADDW(k, k1, k2) } - -// KANDB: Bitwise Logical AND 8-bit Masks. -// -// Forms: -// -// KANDB k k k -// -// Construct and append a KANDB instruction to the active function. -func (c *Context) KANDB(k, k1, k2 operand.Op) { - c.addinstruction(x86.KANDB(k, k1, k2)) -} - -// KANDB: Bitwise Logical AND 8-bit Masks. -// -// Forms: -// -// KANDB k k k -// -// Construct and append a KANDB instruction to the active function. -// Operates on the global context. -func KANDB(k, k1, k2 operand.Op) { ctx.KANDB(k, k1, k2) } - -// KANDD: Bitwise Logical AND 32-bit Masks. -// -// Forms: -// -// KANDD k k k -// -// Construct and append a KANDD instruction to the active function. -func (c *Context) KANDD(k, k1, k2 operand.Op) { - c.addinstruction(x86.KANDD(k, k1, k2)) -} - -// KANDD: Bitwise Logical AND 32-bit Masks. -// -// Forms: -// -// KANDD k k k -// -// Construct and append a KANDD instruction to the active function. -// Operates on the global context. -func KANDD(k, k1, k2 operand.Op) { ctx.KANDD(k, k1, k2) } - -// KANDNB: Bitwise Logical AND NOT 8-bit Masks. -// -// Forms: -// -// KANDNB k k k -// -// Construct and append a KANDNB instruction to the active function. -func (c *Context) KANDNB(k, k1, k2 operand.Op) { - c.addinstruction(x86.KANDNB(k, k1, k2)) -} - -// KANDNB: Bitwise Logical AND NOT 8-bit Masks. -// -// Forms: -// -// KANDNB k k k -// -// Construct and append a KANDNB instruction to the active function. -// Operates on the global context. -func KANDNB(k, k1, k2 operand.Op) { ctx.KANDNB(k, k1, k2) } - -// KANDND: Bitwise Logical AND NOT 32-bit Masks. -// -// Forms: -// -// KANDND k k k -// -// Construct and append a KANDND instruction to the active function. -func (c *Context) KANDND(k, k1, k2 operand.Op) { - c.addinstruction(x86.KANDND(k, k1, k2)) -} - -// KANDND: Bitwise Logical AND NOT 32-bit Masks. -// -// Forms: -// -// KANDND k k k -// -// Construct and append a KANDND instruction to the active function. -// Operates on the global context. -func KANDND(k, k1, k2 operand.Op) { ctx.KANDND(k, k1, k2) } - -// KANDNQ: Bitwise Logical AND NOT 64-bit Masks. -// -// Forms: -// -// KANDNQ k k k -// -// Construct and append a KANDNQ instruction to the active function. -func (c *Context) KANDNQ(k, k1, k2 operand.Op) { - c.addinstruction(x86.KANDNQ(k, k1, k2)) -} - -// KANDNQ: Bitwise Logical AND NOT 64-bit Masks. -// -// Forms: -// -// KANDNQ k k k -// -// Construct and append a KANDNQ instruction to the active function. -// Operates on the global context. -func KANDNQ(k, k1, k2 operand.Op) { ctx.KANDNQ(k, k1, k2) } - -// KANDNW: Bitwise Logical AND NOT 16-bit Masks. -// -// Forms: -// -// KANDNW k k k -// -// Construct and append a KANDNW instruction to the active function. -func (c *Context) KANDNW(k, k1, k2 operand.Op) { - c.addinstruction(x86.KANDNW(k, k1, k2)) -} - -// KANDNW: Bitwise Logical AND NOT 16-bit Masks. -// -// Forms: -// -// KANDNW k k k -// -// Construct and append a KANDNW instruction to the active function. -// Operates on the global context. -func KANDNW(k, k1, k2 operand.Op) { ctx.KANDNW(k, k1, k2) } - -// KANDQ: Bitwise Logical AND 64-bit Masks. -// -// Forms: -// -// KANDQ k k k -// -// Construct and append a KANDQ instruction to the active function. -func (c *Context) KANDQ(k, k1, k2 operand.Op) { - c.addinstruction(x86.KANDQ(k, k1, k2)) -} - -// KANDQ: Bitwise Logical AND 64-bit Masks. -// -// Forms: -// -// KANDQ k k k -// -// Construct and append a KANDQ instruction to the active function. -// Operates on the global context. -func KANDQ(k, k1, k2 operand.Op) { ctx.KANDQ(k, k1, k2) } - -// KANDW: Bitwise Logical AND 16-bit Masks. -// -// Forms: -// -// KANDW k k k -// -// Construct and append a KANDW instruction to the active function. -func (c *Context) KANDW(k, k1, k2 operand.Op) { - c.addinstruction(x86.KANDW(k, k1, k2)) -} - -// KANDW: Bitwise Logical AND 16-bit Masks. -// -// Forms: -// -// KANDW k k k -// -// Construct and append a KANDW instruction to the active function. -// Operates on the global context. -func KANDW(k, k1, k2 operand.Op) { ctx.KANDW(k, k1, k2) } - -// KMOVB: Move 8-bit Mask. -// -// Forms: -// -// KMOVB k k -// KMOVB k m8 -// KMOVB k r32 -// KMOVB m8 k -// KMOVB r32 k -// -// Construct and append a KMOVB instruction to the active function. -func (c *Context) KMOVB(kmr, kmr1 operand.Op) { - c.addinstruction(x86.KMOVB(kmr, kmr1)) -} - -// KMOVB: Move 8-bit Mask. -// -// Forms: -// -// KMOVB k k -// KMOVB k m8 -// KMOVB k r32 -// KMOVB m8 k -// KMOVB r32 k -// -// Construct and append a KMOVB instruction to the active function. -// Operates on the global context. -func KMOVB(kmr, kmr1 operand.Op) { ctx.KMOVB(kmr, kmr1) } - -// KMOVD: Move 32-bit Mask. -// -// Forms: -// -// KMOVD k k -// KMOVD k m32 -// KMOVD k r32 -// KMOVD m32 k -// KMOVD r32 k -// -// Construct and append a KMOVD instruction to the active function. -func (c *Context) KMOVD(kmr, kmr1 operand.Op) { - c.addinstruction(x86.KMOVD(kmr, kmr1)) -} - -// KMOVD: Move 32-bit Mask. -// -// Forms: -// -// KMOVD k k -// KMOVD k m32 -// KMOVD k r32 -// KMOVD m32 k -// KMOVD r32 k -// -// Construct and append a KMOVD instruction to the active function. -// Operates on the global context. -func KMOVD(kmr, kmr1 operand.Op) { ctx.KMOVD(kmr, kmr1) } - -// KMOVQ: Move 64-bit Mask. -// -// Forms: -// -// KMOVQ k k -// KMOVQ k m64 -// KMOVQ k r64 -// KMOVQ m64 k -// KMOVQ r64 k -// -// Construct and append a KMOVQ instruction to the active function. -func (c *Context) KMOVQ(kmr, kmr1 operand.Op) { - c.addinstruction(x86.KMOVQ(kmr, kmr1)) -} - -// KMOVQ: Move 64-bit Mask. -// -// Forms: -// -// KMOVQ k k -// KMOVQ k m64 -// KMOVQ k r64 -// KMOVQ m64 k -// KMOVQ r64 k -// -// Construct and append a KMOVQ instruction to the active function. -// Operates on the global context. -func KMOVQ(kmr, kmr1 operand.Op) { ctx.KMOVQ(kmr, kmr1) } - -// KMOVW: Move 16-bit Mask. -// -// Forms: -// -// KMOVW k k -// KMOVW k m16 -// KMOVW k r32 -// KMOVW m16 k -// KMOVW r32 k -// -// Construct and append a KMOVW instruction to the active function. -func (c *Context) KMOVW(kmr, kmr1 operand.Op) { - c.addinstruction(x86.KMOVW(kmr, kmr1)) -} - -// KMOVW: Move 16-bit Mask. -// -// Forms: -// -// KMOVW k k -// KMOVW k m16 -// KMOVW k r32 -// KMOVW m16 k -// KMOVW r32 k -// -// Construct and append a KMOVW instruction to the active function. -// Operates on the global context. -func KMOVW(kmr, kmr1 operand.Op) { ctx.KMOVW(kmr, kmr1) } - -// KNOTB: NOT 8-bit Mask Register. -// -// Forms: -// -// KNOTB k k -// -// Construct and append a KNOTB instruction to the active function. -func (c *Context) KNOTB(k, k1 operand.Op) { - c.addinstruction(x86.KNOTB(k, k1)) -} - -// KNOTB: NOT 8-bit Mask Register. -// -// Forms: -// -// KNOTB k k -// -// Construct and append a KNOTB instruction to the active function. -// Operates on the global context. -func KNOTB(k, k1 operand.Op) { ctx.KNOTB(k, k1) } - -// KNOTD: NOT 32-bit Mask Register. -// -// Forms: -// -// KNOTD k k -// -// Construct and append a KNOTD instruction to the active function. -func (c *Context) KNOTD(k, k1 operand.Op) { - c.addinstruction(x86.KNOTD(k, k1)) -} - -// KNOTD: NOT 32-bit Mask Register. -// -// Forms: -// -// KNOTD k k -// -// Construct and append a KNOTD instruction to the active function. -// Operates on the global context. -func KNOTD(k, k1 operand.Op) { ctx.KNOTD(k, k1) } - -// KNOTQ: NOT 64-bit Mask Register. -// -// Forms: -// -// KNOTQ k k -// -// Construct and append a KNOTQ instruction to the active function. -func (c *Context) KNOTQ(k, k1 operand.Op) { - c.addinstruction(x86.KNOTQ(k, k1)) -} - -// KNOTQ: NOT 64-bit Mask Register. -// -// Forms: -// -// KNOTQ k k -// -// Construct and append a KNOTQ instruction to the active function. -// Operates on the global context. -func KNOTQ(k, k1 operand.Op) { ctx.KNOTQ(k, k1) } - -// KNOTW: NOT 16-bit Mask Register. -// -// Forms: -// -// KNOTW k k -// -// Construct and append a KNOTW instruction to the active function. -func (c *Context) KNOTW(k, k1 operand.Op) { - c.addinstruction(x86.KNOTW(k, k1)) -} - -// KNOTW: NOT 16-bit Mask Register. -// -// Forms: -// -// KNOTW k k -// -// Construct and append a KNOTW instruction to the active function. -// Operates on the global context. -func KNOTW(k, k1 operand.Op) { ctx.KNOTW(k, k1) } - -// KORB: Bitwise Logical OR 8-bit Masks. -// -// Forms: -// -// KORB k k k -// -// Construct and append a KORB instruction to the active function. -func (c *Context) KORB(k, k1, k2 operand.Op) { - c.addinstruction(x86.KORB(k, k1, k2)) -} - -// KORB: Bitwise Logical OR 8-bit Masks. -// -// Forms: -// -// KORB k k k -// -// Construct and append a KORB instruction to the active function. -// Operates on the global context. -func KORB(k, k1, k2 operand.Op) { ctx.KORB(k, k1, k2) } - -// KORD: Bitwise Logical OR 32-bit Masks. -// -// Forms: -// -// KORD k k k -// -// Construct and append a KORD instruction to the active function. -func (c *Context) KORD(k, k1, k2 operand.Op) { - c.addinstruction(x86.KORD(k, k1, k2)) -} - -// KORD: Bitwise Logical OR 32-bit Masks. -// -// Forms: -// -// KORD k k k -// -// Construct and append a KORD instruction to the active function. -// Operates on the global context. -func KORD(k, k1, k2 operand.Op) { ctx.KORD(k, k1, k2) } - -// KORQ: Bitwise Logical OR 64-bit Masks. -// -// Forms: -// -// KORQ k k k -// -// Construct and append a KORQ instruction to the active function. -func (c *Context) KORQ(k, k1, k2 operand.Op) { - c.addinstruction(x86.KORQ(k, k1, k2)) -} - -// KORQ: Bitwise Logical OR 64-bit Masks. -// -// Forms: -// -// KORQ k k k -// -// Construct and append a KORQ instruction to the active function. -// Operates on the global context. -func KORQ(k, k1, k2 operand.Op) { ctx.KORQ(k, k1, k2) } - -// KORTESTB: OR 8-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTB k k -// -// Construct and append a KORTESTB instruction to the active function. -func (c *Context) KORTESTB(k, k1 operand.Op) { - c.addinstruction(x86.KORTESTB(k, k1)) -} - -// KORTESTB: OR 8-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTB k k -// -// Construct and append a KORTESTB instruction to the active function. -// Operates on the global context. -func KORTESTB(k, k1 operand.Op) { ctx.KORTESTB(k, k1) } - -// KORTESTD: OR 32-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTD k k -// -// Construct and append a KORTESTD instruction to the active function. -func (c *Context) KORTESTD(k, k1 operand.Op) { - c.addinstruction(x86.KORTESTD(k, k1)) -} - -// KORTESTD: OR 32-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTD k k -// -// Construct and append a KORTESTD instruction to the active function. -// Operates on the global context. -func KORTESTD(k, k1 operand.Op) { ctx.KORTESTD(k, k1) } - -// KORTESTQ: OR 64-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTQ k k -// -// Construct and append a KORTESTQ instruction to the active function. -func (c *Context) KORTESTQ(k, k1 operand.Op) { - c.addinstruction(x86.KORTESTQ(k, k1)) -} - -// KORTESTQ: OR 64-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTQ k k -// -// Construct and append a KORTESTQ instruction to the active function. -// Operates on the global context. -func KORTESTQ(k, k1 operand.Op) { ctx.KORTESTQ(k, k1) } - -// KORTESTW: OR 16-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTW k k -// -// Construct and append a KORTESTW instruction to the active function. -func (c *Context) KORTESTW(k, k1 operand.Op) { - c.addinstruction(x86.KORTESTW(k, k1)) -} - -// KORTESTW: OR 16-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTW k k -// -// Construct and append a KORTESTW instruction to the active function. -// Operates on the global context. -func KORTESTW(k, k1 operand.Op) { ctx.KORTESTW(k, k1) } - -// KORW: Bitwise Logical OR 16-bit Masks. -// -// Forms: -// -// KORW k k k -// -// Construct and append a KORW instruction to the active function. -func (c *Context) KORW(k, k1, k2 operand.Op) { - c.addinstruction(x86.KORW(k, k1, k2)) -} - -// KORW: Bitwise Logical OR 16-bit Masks. -// -// Forms: -// -// KORW k k k -// -// Construct and append a KORW instruction to the active function. -// Operates on the global context. -func KORW(k, k1, k2 operand.Op) { ctx.KORW(k, k1, k2) } - -// KSHIFTLB: Shift Left 8-bit Masks. -// -// Forms: -// -// KSHIFTLB imm8 k k -// -// Construct and append a KSHIFTLB instruction to the active function. -func (c *Context) KSHIFTLB(i, k, k1 operand.Op) { - c.addinstruction(x86.KSHIFTLB(i, k, k1)) -} - -// KSHIFTLB: Shift Left 8-bit Masks. -// -// Forms: -// -// KSHIFTLB imm8 k k -// -// Construct and append a KSHIFTLB instruction to the active function. -// Operates on the global context. -func KSHIFTLB(i, k, k1 operand.Op) { ctx.KSHIFTLB(i, k, k1) } - -// KSHIFTLD: Shift Left 32-bit Masks. -// -// Forms: -// -// KSHIFTLD imm8 k k -// -// Construct and append a KSHIFTLD instruction to the active function. -func (c *Context) KSHIFTLD(i, k, k1 operand.Op) { - c.addinstruction(x86.KSHIFTLD(i, k, k1)) -} - -// KSHIFTLD: Shift Left 32-bit Masks. -// -// Forms: -// -// KSHIFTLD imm8 k k -// -// Construct and append a KSHIFTLD instruction to the active function. -// Operates on the global context. -func KSHIFTLD(i, k, k1 operand.Op) { ctx.KSHIFTLD(i, k, k1) } - -// KSHIFTLQ: Shift Left 64-bit Masks. -// -// Forms: -// -// KSHIFTLQ imm8 k k -// -// Construct and append a KSHIFTLQ instruction to the active function. -func (c *Context) KSHIFTLQ(i, k, k1 operand.Op) { - c.addinstruction(x86.KSHIFTLQ(i, k, k1)) -} - -// KSHIFTLQ: Shift Left 64-bit Masks. -// -// Forms: -// -// KSHIFTLQ imm8 k k -// -// Construct and append a KSHIFTLQ instruction to the active function. -// Operates on the global context. -func KSHIFTLQ(i, k, k1 operand.Op) { ctx.KSHIFTLQ(i, k, k1) } - -// KSHIFTLW: Shift Left 16-bit Masks. -// -// Forms: -// -// KSHIFTLW imm8 k k -// -// Construct and append a KSHIFTLW instruction to the active function. -func (c *Context) KSHIFTLW(i, k, k1 operand.Op) { - c.addinstruction(x86.KSHIFTLW(i, k, k1)) -} - -// KSHIFTLW: Shift Left 16-bit Masks. -// -// Forms: -// -// KSHIFTLW imm8 k k -// -// Construct and append a KSHIFTLW instruction to the active function. -// Operates on the global context. -func KSHIFTLW(i, k, k1 operand.Op) { ctx.KSHIFTLW(i, k, k1) } - -// KSHIFTRB: Shift Right 8-bit Masks. -// -// Forms: -// -// KSHIFTRB imm8 k k -// -// Construct and append a KSHIFTRB instruction to the active function. -func (c *Context) KSHIFTRB(i, k, k1 operand.Op) { - c.addinstruction(x86.KSHIFTRB(i, k, k1)) -} - -// KSHIFTRB: Shift Right 8-bit Masks. -// -// Forms: -// -// KSHIFTRB imm8 k k -// -// Construct and append a KSHIFTRB instruction to the active function. -// Operates on the global context. -func KSHIFTRB(i, k, k1 operand.Op) { ctx.KSHIFTRB(i, k, k1) } - -// KSHIFTRD: Shift Right 32-bit Masks. -// -// Forms: -// -// KSHIFTRD imm8 k k -// -// Construct and append a KSHIFTRD instruction to the active function. -func (c *Context) KSHIFTRD(i, k, k1 operand.Op) { - c.addinstruction(x86.KSHIFTRD(i, k, k1)) -} - -// KSHIFTRD: Shift Right 32-bit Masks. -// -// Forms: -// -// KSHIFTRD imm8 k k -// -// Construct and append a KSHIFTRD instruction to the active function. -// Operates on the global context. -func KSHIFTRD(i, k, k1 operand.Op) { ctx.KSHIFTRD(i, k, k1) } - -// KSHIFTRQ: Shift Right 64-bit Masks. -// -// Forms: -// -// KSHIFTRQ imm8 k k -// -// Construct and append a KSHIFTRQ instruction to the active function. -func (c *Context) KSHIFTRQ(i, k, k1 operand.Op) { - c.addinstruction(x86.KSHIFTRQ(i, k, k1)) -} - -// KSHIFTRQ: Shift Right 64-bit Masks. -// -// Forms: -// -// KSHIFTRQ imm8 k k -// -// Construct and append a KSHIFTRQ instruction to the active function. -// Operates on the global context. -func KSHIFTRQ(i, k, k1 operand.Op) { ctx.KSHIFTRQ(i, k, k1) } - -// KSHIFTRW: Shift Right 16-bit Masks. -// -// Forms: -// -// KSHIFTRW imm8 k k -// -// Construct and append a KSHIFTRW instruction to the active function. -func (c *Context) KSHIFTRW(i, k, k1 operand.Op) { - c.addinstruction(x86.KSHIFTRW(i, k, k1)) -} - -// KSHIFTRW: Shift Right 16-bit Masks. -// -// Forms: -// -// KSHIFTRW imm8 k k -// -// Construct and append a KSHIFTRW instruction to the active function. -// Operates on the global context. -func KSHIFTRW(i, k, k1 operand.Op) { ctx.KSHIFTRW(i, k, k1) } - -// KTESTB: Bit Test 8-bit Masks and Set Flags. -// -// Forms: -// -// KTESTB k k -// -// Construct and append a KTESTB instruction to the active function. -func (c *Context) KTESTB(k, k1 operand.Op) { - c.addinstruction(x86.KTESTB(k, k1)) -} - -// KTESTB: Bit Test 8-bit Masks and Set Flags. -// -// Forms: -// -// KTESTB k k -// -// Construct and append a KTESTB instruction to the active function. -// Operates on the global context. -func KTESTB(k, k1 operand.Op) { ctx.KTESTB(k, k1) } - -// KTESTD: Bit Test 32-bit Masks and Set Flags. -// -// Forms: -// -// KTESTD k k -// -// Construct and append a KTESTD instruction to the active function. -func (c *Context) KTESTD(k, k1 operand.Op) { - c.addinstruction(x86.KTESTD(k, k1)) -} - -// KTESTD: Bit Test 32-bit Masks and Set Flags. -// -// Forms: -// -// KTESTD k k -// -// Construct and append a KTESTD instruction to the active function. -// Operates on the global context. -func KTESTD(k, k1 operand.Op) { ctx.KTESTD(k, k1) } - -// KTESTQ: Bit Test 64-bit Masks and Set Flags. -// -// Forms: -// -// KTESTQ k k -// -// Construct and append a KTESTQ instruction to the active function. -func (c *Context) KTESTQ(k, k1 operand.Op) { - c.addinstruction(x86.KTESTQ(k, k1)) -} - -// KTESTQ: Bit Test 64-bit Masks and Set Flags. -// -// Forms: -// -// KTESTQ k k -// -// Construct and append a KTESTQ instruction to the active function. -// Operates on the global context. -func KTESTQ(k, k1 operand.Op) { ctx.KTESTQ(k, k1) } - -// KTESTW: Bit Test 16-bit Masks and Set Flags. -// -// Forms: -// -// KTESTW k k -// -// Construct and append a KTESTW instruction to the active function. -func (c *Context) KTESTW(k, k1 operand.Op) { - c.addinstruction(x86.KTESTW(k, k1)) -} - -// KTESTW: Bit Test 16-bit Masks and Set Flags. -// -// Forms: -// -// KTESTW k k -// -// Construct and append a KTESTW instruction to the active function. -// Operates on the global context. -func KTESTW(k, k1 operand.Op) { ctx.KTESTW(k, k1) } - -// KUNPCKBW: Unpack and Interleave 8-bit Masks. -// -// Forms: -// -// KUNPCKBW k k k -// -// Construct and append a KUNPCKBW instruction to the active function. -func (c *Context) KUNPCKBW(k, k1, k2 operand.Op) { - c.addinstruction(x86.KUNPCKBW(k, k1, k2)) -} - -// KUNPCKBW: Unpack and Interleave 8-bit Masks. -// -// Forms: -// -// KUNPCKBW k k k -// -// Construct and append a KUNPCKBW instruction to the active function. -// Operates on the global context. -func KUNPCKBW(k, k1, k2 operand.Op) { ctx.KUNPCKBW(k, k1, k2) } - -// KUNPCKDQ: Unpack and Interleave 32-bit Masks. -// -// Forms: -// -// KUNPCKDQ k k k -// -// Construct and append a KUNPCKDQ instruction to the active function. -func (c *Context) KUNPCKDQ(k, k1, k2 operand.Op) { - c.addinstruction(x86.KUNPCKDQ(k, k1, k2)) -} - -// KUNPCKDQ: Unpack and Interleave 32-bit Masks. -// -// Forms: -// -// KUNPCKDQ k k k -// -// Construct and append a KUNPCKDQ instruction to the active function. -// Operates on the global context. -func KUNPCKDQ(k, k1, k2 operand.Op) { ctx.KUNPCKDQ(k, k1, k2) } - -// KUNPCKWD: Unpack and Interleave 16-bit Masks. -// -// Forms: -// -// KUNPCKWD k k k -// -// Construct and append a KUNPCKWD instruction to the active function. -func (c *Context) KUNPCKWD(k, k1, k2 operand.Op) { - c.addinstruction(x86.KUNPCKWD(k, k1, k2)) -} - -// KUNPCKWD: Unpack and Interleave 16-bit Masks. -// -// Forms: -// -// KUNPCKWD k k k -// -// Construct and append a KUNPCKWD instruction to the active function. -// Operates on the global context. -func KUNPCKWD(k, k1, k2 operand.Op) { ctx.KUNPCKWD(k, k1, k2) } - -// KXNORB: Bitwise Logical XNOR 8-bit Masks. -// -// Forms: -// -// KXNORB k k k -// -// Construct and append a KXNORB instruction to the active function. -func (c *Context) KXNORB(k, k1, k2 operand.Op) { - c.addinstruction(x86.KXNORB(k, k1, k2)) -} - -// KXNORB: Bitwise Logical XNOR 8-bit Masks. -// -// Forms: -// -// KXNORB k k k -// -// Construct and append a KXNORB instruction to the active function. -// Operates on the global context. -func KXNORB(k, k1, k2 operand.Op) { ctx.KXNORB(k, k1, k2) } - -// KXNORD: Bitwise Logical XNOR 32-bit Masks. -// -// Forms: -// -// KXNORD k k k -// -// Construct and append a KXNORD instruction to the active function. -func (c *Context) KXNORD(k, k1, k2 operand.Op) { - c.addinstruction(x86.KXNORD(k, k1, k2)) -} - -// KXNORD: Bitwise Logical XNOR 32-bit Masks. -// -// Forms: -// -// KXNORD k k k -// -// Construct and append a KXNORD instruction to the active function. -// Operates on the global context. -func KXNORD(k, k1, k2 operand.Op) { ctx.KXNORD(k, k1, k2) } - -// KXNORQ: Bitwise Logical XNOR 64-bit Masks. -// -// Forms: -// -// KXNORQ k k k -// -// Construct and append a KXNORQ instruction to the active function. -func (c *Context) KXNORQ(k, k1, k2 operand.Op) { - c.addinstruction(x86.KXNORQ(k, k1, k2)) -} - -// KXNORQ: Bitwise Logical XNOR 64-bit Masks. -// -// Forms: -// -// KXNORQ k k k -// -// Construct and append a KXNORQ instruction to the active function. -// Operates on the global context. -func KXNORQ(k, k1, k2 operand.Op) { ctx.KXNORQ(k, k1, k2) } - -// KXNORW: Bitwise Logical XNOR 16-bit Masks. -// -// Forms: -// -// KXNORW k k k -// -// Construct and append a KXNORW instruction to the active function. -func (c *Context) KXNORW(k, k1, k2 operand.Op) { - c.addinstruction(x86.KXNORW(k, k1, k2)) -} - -// KXNORW: Bitwise Logical XNOR 16-bit Masks. -// -// Forms: -// -// KXNORW k k k -// -// Construct and append a KXNORW instruction to the active function. -// Operates on the global context. -func KXNORW(k, k1, k2 operand.Op) { ctx.KXNORW(k, k1, k2) } - -// KXORB: Bitwise Logical XOR 8-bit Masks. -// -// Forms: -// -// KXORB k k k -// -// Construct and append a KXORB instruction to the active function. -func (c *Context) KXORB(k, k1, k2 operand.Op) { - c.addinstruction(x86.KXORB(k, k1, k2)) -} - -// KXORB: Bitwise Logical XOR 8-bit Masks. -// -// Forms: -// -// KXORB k k k -// -// Construct and append a KXORB instruction to the active function. -// Operates on the global context. -func KXORB(k, k1, k2 operand.Op) { ctx.KXORB(k, k1, k2) } - -// KXORD: Bitwise Logical XOR 32-bit Masks. -// -// Forms: -// -// KXORD k k k -// -// Construct and append a KXORD instruction to the active function. -func (c *Context) KXORD(k, k1, k2 operand.Op) { - c.addinstruction(x86.KXORD(k, k1, k2)) -} - -// KXORD: Bitwise Logical XOR 32-bit Masks. -// -// Forms: -// -// KXORD k k k -// -// Construct and append a KXORD instruction to the active function. -// Operates on the global context. -func KXORD(k, k1, k2 operand.Op) { ctx.KXORD(k, k1, k2) } - -// KXORQ: Bitwise Logical XOR 64-bit Masks. -// -// Forms: -// -// KXORQ k k k -// -// Construct and append a KXORQ instruction to the active function. -func (c *Context) KXORQ(k, k1, k2 operand.Op) { - c.addinstruction(x86.KXORQ(k, k1, k2)) -} - -// KXORQ: Bitwise Logical XOR 64-bit Masks. -// -// Forms: -// -// KXORQ k k k -// -// Construct and append a KXORQ instruction to the active function. -// Operates on the global context. -func KXORQ(k, k1, k2 operand.Op) { ctx.KXORQ(k, k1, k2) } - -// KXORW: Bitwise Logical XOR 16-bit Masks. -// -// Forms: -// -// KXORW k k k -// -// Construct and append a KXORW instruction to the active function. -func (c *Context) KXORW(k, k1, k2 operand.Op) { - c.addinstruction(x86.KXORW(k, k1, k2)) -} - -// KXORW: Bitwise Logical XOR 16-bit Masks. -// -// Forms: -// -// KXORW k k k -// -// Construct and append a KXORW instruction to the active function. -// Operates on the global context. -func KXORW(k, k1, k2 operand.Op) { ctx.KXORW(k, k1, k2) } - -// LDDQU: Load Unaligned Integer 128 Bits. -// -// Forms: -// -// LDDQU m128 xmm -// -// Construct and append a LDDQU instruction to the active function. -func (c *Context) LDDQU(m, x operand.Op) { - c.addinstruction(x86.LDDQU(m, x)) -} - -// LDDQU: Load Unaligned Integer 128 Bits. -// -// Forms: -// -// LDDQU m128 xmm -// -// Construct and append a LDDQU instruction to the active function. -// Operates on the global context. -func LDDQU(m, x operand.Op) { ctx.LDDQU(m, x) } - -// LDMXCSR: Load MXCSR Register. -// -// Forms: -// -// LDMXCSR m32 -// -// Construct and append a LDMXCSR instruction to the active function. -func (c *Context) LDMXCSR(m operand.Op) { - c.addinstruction(x86.LDMXCSR(m)) -} - -// LDMXCSR: Load MXCSR Register. -// -// Forms: -// -// LDMXCSR m32 -// -// Construct and append a LDMXCSR instruction to the active function. -// Operates on the global context. -func LDMXCSR(m operand.Op) { ctx.LDMXCSR(m) } - -// LEAL: Load Effective Address. -// -// Forms: -// -// LEAL m r32 -// -// Construct and append a LEAL instruction to the active function. -func (c *Context) LEAL(m, r operand.Op) { - c.addinstruction(x86.LEAL(m, r)) -} - -// LEAL: Load Effective Address. -// -// Forms: -// -// LEAL m r32 -// -// Construct and append a LEAL instruction to the active function. -// Operates on the global context. -func LEAL(m, r operand.Op) { ctx.LEAL(m, r) } - -// LEAQ: Load Effective Address. -// -// Forms: -// -// LEAQ m r64 -// -// Construct and append a LEAQ instruction to the active function. -func (c *Context) LEAQ(m, r operand.Op) { - c.addinstruction(x86.LEAQ(m, r)) -} - -// LEAQ: Load Effective Address. -// -// Forms: -// -// LEAQ m r64 -// -// Construct and append a LEAQ instruction to the active function. -// Operates on the global context. -func LEAQ(m, r operand.Op) { ctx.LEAQ(m, r) } - -// LEAW: Load Effective Address. -// -// Forms: -// -// LEAW m r16 -// -// Construct and append a LEAW instruction to the active function. -func (c *Context) LEAW(m, r operand.Op) { - c.addinstruction(x86.LEAW(m, r)) -} - -// LEAW: Load Effective Address. -// -// Forms: -// -// LEAW m r16 -// -// Construct and append a LEAW instruction to the active function. -// Operates on the global context. -func LEAW(m, r operand.Op) { ctx.LEAW(m, r) } - -// LFENCE: Load Fence. -// -// Forms: -// -// LFENCE -// -// Construct and append a LFENCE instruction to the active function. -func (c *Context) LFENCE() { - c.addinstruction(x86.LFENCE()) -} - -// LFENCE: Load Fence. -// -// Forms: -// -// LFENCE -// -// Construct and append a LFENCE instruction to the active function. -// Operates on the global context. -func LFENCE() { ctx.LFENCE() } - -// LZCNTL: Count the Number of Leading Zero Bits. -// -// Forms: -// -// LZCNTL m32 r32 -// LZCNTL r32 r32 -// -// Construct and append a LZCNTL instruction to the active function. -func (c *Context) LZCNTL(mr, r operand.Op) { - c.addinstruction(x86.LZCNTL(mr, r)) -} - -// LZCNTL: Count the Number of Leading Zero Bits. -// -// Forms: -// -// LZCNTL m32 r32 -// LZCNTL r32 r32 -// -// Construct and append a LZCNTL instruction to the active function. -// Operates on the global context. -func LZCNTL(mr, r operand.Op) { ctx.LZCNTL(mr, r) } - -// LZCNTQ: Count the Number of Leading Zero Bits. -// -// Forms: -// -// LZCNTQ m64 r64 -// LZCNTQ r64 r64 -// -// Construct and append a LZCNTQ instruction to the active function. -func (c *Context) LZCNTQ(mr, r operand.Op) { - c.addinstruction(x86.LZCNTQ(mr, r)) -} - -// LZCNTQ: Count the Number of Leading Zero Bits. -// -// Forms: -// -// LZCNTQ m64 r64 -// LZCNTQ r64 r64 -// -// Construct and append a LZCNTQ instruction to the active function. -// Operates on the global context. -func LZCNTQ(mr, r operand.Op) { ctx.LZCNTQ(mr, r) } - -// LZCNTW: Count the Number of Leading Zero Bits. -// -// Forms: -// -// LZCNTW m16 r16 -// LZCNTW r16 r16 -// -// Construct and append a LZCNTW instruction to the active function. -func (c *Context) LZCNTW(mr, r operand.Op) { - c.addinstruction(x86.LZCNTW(mr, r)) -} - -// LZCNTW: Count the Number of Leading Zero Bits. -// -// Forms: -// -// LZCNTW m16 r16 -// LZCNTW r16 r16 -// -// Construct and append a LZCNTW instruction to the active function. -// Operates on the global context. -func LZCNTW(mr, r operand.Op) { ctx.LZCNTW(mr, r) } - -// MASKMOVDQU: Store Selected Bytes of Double Quadword. -// -// Forms: -// -// MASKMOVDQU xmm xmm -// -// Construct and append a MASKMOVDQU instruction to the active function. -func (c *Context) MASKMOVDQU(x, x1 operand.Op) { - c.addinstruction(x86.MASKMOVDQU(x, x1)) -} - -// MASKMOVDQU: Store Selected Bytes of Double Quadword. -// -// Forms: -// -// MASKMOVDQU xmm xmm -// -// Construct and append a MASKMOVDQU instruction to the active function. -// Operates on the global context. -func MASKMOVDQU(x, x1 operand.Op) { ctx.MASKMOVDQU(x, x1) } - -// MASKMOVOU: Store Selected Bytes of Double Quadword. -// -// Forms: -// -// MASKMOVOU xmm xmm -// -// Construct and append a MASKMOVOU instruction to the active function. -func (c *Context) MASKMOVOU(x, x1 operand.Op) { - c.addinstruction(x86.MASKMOVOU(x, x1)) -} - -// MASKMOVOU: Store Selected Bytes of Double Quadword. -// -// Forms: -// -// MASKMOVOU xmm xmm -// -// Construct and append a MASKMOVOU instruction to the active function. -// Operates on the global context. -func MASKMOVOU(x, x1 operand.Op) { ctx.MASKMOVOU(x, x1) } - -// MAXPD: Return Maximum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MAXPD m128 xmm -// MAXPD xmm xmm -// -// Construct and append a MAXPD instruction to the active function. -func (c *Context) MAXPD(mx, x operand.Op) { - c.addinstruction(x86.MAXPD(mx, x)) -} - -// MAXPD: Return Maximum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MAXPD m128 xmm -// MAXPD xmm xmm -// -// Construct and append a MAXPD instruction to the active function. -// Operates on the global context. -func MAXPD(mx, x operand.Op) { ctx.MAXPD(mx, x) } - -// MAXPS: Return Maximum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MAXPS m128 xmm -// MAXPS xmm xmm -// -// Construct and append a MAXPS instruction to the active function. -func (c *Context) MAXPS(mx, x operand.Op) { - c.addinstruction(x86.MAXPS(mx, x)) -} - -// MAXPS: Return Maximum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MAXPS m128 xmm -// MAXPS xmm xmm -// -// Construct and append a MAXPS instruction to the active function. -// Operates on the global context. -func MAXPS(mx, x operand.Op) { ctx.MAXPS(mx, x) } - -// MAXSD: Return Maximum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// MAXSD m64 xmm -// MAXSD xmm xmm -// -// Construct and append a MAXSD instruction to the active function. -func (c *Context) MAXSD(mx, x operand.Op) { - c.addinstruction(x86.MAXSD(mx, x)) -} - -// MAXSD: Return Maximum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// MAXSD m64 xmm -// MAXSD xmm xmm -// -// Construct and append a MAXSD instruction to the active function. -// Operates on the global context. -func MAXSD(mx, x operand.Op) { ctx.MAXSD(mx, x) } - -// MAXSS: Return Maximum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// MAXSS m32 xmm -// MAXSS xmm xmm -// -// Construct and append a MAXSS instruction to the active function. -func (c *Context) MAXSS(mx, x operand.Op) { - c.addinstruction(x86.MAXSS(mx, x)) -} - -// MAXSS: Return Maximum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// MAXSS m32 xmm -// MAXSS xmm xmm -// -// Construct and append a MAXSS instruction to the active function. -// Operates on the global context. -func MAXSS(mx, x operand.Op) { ctx.MAXSS(mx, x) } - -// MFENCE: Memory Fence. -// -// Forms: -// -// MFENCE -// -// Construct and append a MFENCE instruction to the active function. -func (c *Context) MFENCE() { - c.addinstruction(x86.MFENCE()) -} - -// MFENCE: Memory Fence. -// -// Forms: -// -// MFENCE -// -// Construct and append a MFENCE instruction to the active function. -// Operates on the global context. -func MFENCE() { ctx.MFENCE() } - -// MINPD: Return Minimum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MINPD m128 xmm -// MINPD xmm xmm -// -// Construct and append a MINPD instruction to the active function. -func (c *Context) MINPD(mx, x operand.Op) { - c.addinstruction(x86.MINPD(mx, x)) -} - -// MINPD: Return Minimum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MINPD m128 xmm -// MINPD xmm xmm -// -// Construct and append a MINPD instruction to the active function. -// Operates on the global context. -func MINPD(mx, x operand.Op) { ctx.MINPD(mx, x) } - -// MINPS: Return Minimum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MINPS m128 xmm -// MINPS xmm xmm -// -// Construct and append a MINPS instruction to the active function. -func (c *Context) MINPS(mx, x operand.Op) { - c.addinstruction(x86.MINPS(mx, x)) -} - -// MINPS: Return Minimum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MINPS m128 xmm -// MINPS xmm xmm -// -// Construct and append a MINPS instruction to the active function. -// Operates on the global context. -func MINPS(mx, x operand.Op) { ctx.MINPS(mx, x) } - -// MINSD: Return Minimum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// MINSD m64 xmm -// MINSD xmm xmm -// -// Construct and append a MINSD instruction to the active function. -func (c *Context) MINSD(mx, x operand.Op) { - c.addinstruction(x86.MINSD(mx, x)) -} - -// MINSD: Return Minimum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// MINSD m64 xmm -// MINSD xmm xmm -// -// Construct and append a MINSD instruction to the active function. -// Operates on the global context. -func MINSD(mx, x operand.Op) { ctx.MINSD(mx, x) } - -// MINSS: Return Minimum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// MINSS m32 xmm -// MINSS xmm xmm -// -// Construct and append a MINSS instruction to the active function. -func (c *Context) MINSS(mx, x operand.Op) { - c.addinstruction(x86.MINSS(mx, x)) -} - -// MINSS: Return Minimum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// MINSS m32 xmm -// MINSS xmm xmm -// -// Construct and append a MINSS instruction to the active function. -// Operates on the global context. -func MINSS(mx, x operand.Op) { ctx.MINSS(mx, x) } - -// MONITOR: Monitor a Linear Address Range. -// -// Forms: -// -// MONITOR -// -// Construct and append a MONITOR instruction to the active function. -func (c *Context) MONITOR() { - c.addinstruction(x86.MONITOR()) -} - -// MONITOR: Monitor a Linear Address Range. -// -// Forms: -// -// MONITOR -// -// Construct and append a MONITOR instruction to the active function. -// Operates on the global context. -func MONITOR() { ctx.MONITOR() } - -// MOVAPD: Move Aligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MOVAPD m128 xmm -// MOVAPD xmm m128 -// MOVAPD xmm xmm -// -// Construct and append a MOVAPD instruction to the active function. -func (c *Context) MOVAPD(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVAPD(mx, mx1)) -} - -// MOVAPD: Move Aligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MOVAPD m128 xmm -// MOVAPD xmm m128 -// MOVAPD xmm xmm -// -// Construct and append a MOVAPD instruction to the active function. -// Operates on the global context. -func MOVAPD(mx, mx1 operand.Op) { ctx.MOVAPD(mx, mx1) } - -// MOVAPS: Move Aligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVAPS m128 xmm -// MOVAPS xmm m128 -// MOVAPS xmm xmm -// -// Construct and append a MOVAPS instruction to the active function. -func (c *Context) MOVAPS(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVAPS(mx, mx1)) -} - -// MOVAPS: Move Aligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVAPS m128 xmm -// MOVAPS xmm m128 -// MOVAPS xmm xmm -// -// Construct and append a MOVAPS instruction to the active function. -// Operates on the global context. -func MOVAPS(mx, mx1 operand.Op) { ctx.MOVAPS(mx, mx1) } - -// MOVB: Move. -// -// Forms: -// -// MOVB imm8 m8 -// MOVB imm8 r8 -// MOVB m8 r8 -// MOVB r8 m8 -// MOVB r8 r8 -// -// Construct and append a MOVB instruction to the active function. -func (c *Context) MOVB(imr, mr operand.Op) { - c.addinstruction(x86.MOVB(imr, mr)) -} - -// MOVB: Move. -// -// Forms: -// -// MOVB imm8 m8 -// MOVB imm8 r8 -// MOVB m8 r8 -// MOVB r8 m8 -// MOVB r8 r8 -// -// Construct and append a MOVB instruction to the active function. -// Operates on the global context. -func MOVB(imr, mr operand.Op) { ctx.MOVB(imr, mr) } - -// MOVBELL: Move Data After Swapping Bytes. -// -// Forms: -// -// MOVBELL m32 r32 -// MOVBELL r32 m32 -// -// Construct and append a MOVBELL instruction to the active function. -func (c *Context) MOVBELL(mr, mr1 operand.Op) { - c.addinstruction(x86.MOVBELL(mr, mr1)) -} - -// MOVBELL: Move Data After Swapping Bytes. -// -// Forms: -// -// MOVBELL m32 r32 -// MOVBELL r32 m32 -// -// Construct and append a MOVBELL instruction to the active function. -// Operates on the global context. -func MOVBELL(mr, mr1 operand.Op) { ctx.MOVBELL(mr, mr1) } - -// MOVBEQQ: Move Data After Swapping Bytes. -// -// Forms: -// -// MOVBEQQ m64 r64 -// MOVBEQQ r64 m64 -// -// Construct and append a MOVBEQQ instruction to the active function. -func (c *Context) MOVBEQQ(mr, mr1 operand.Op) { - c.addinstruction(x86.MOVBEQQ(mr, mr1)) -} - -// MOVBEQQ: Move Data After Swapping Bytes. -// -// Forms: -// -// MOVBEQQ m64 r64 -// MOVBEQQ r64 m64 -// -// Construct and append a MOVBEQQ instruction to the active function. -// Operates on the global context. -func MOVBEQQ(mr, mr1 operand.Op) { ctx.MOVBEQQ(mr, mr1) } - -// MOVBEWW: Move Data After Swapping Bytes. -// -// Forms: -// -// MOVBEWW m16 r16 -// MOVBEWW r16 m16 -// -// Construct and append a MOVBEWW instruction to the active function. -func (c *Context) MOVBEWW(mr, mr1 operand.Op) { - c.addinstruction(x86.MOVBEWW(mr, mr1)) -} - -// MOVBEWW: Move Data After Swapping Bytes. -// -// Forms: -// -// MOVBEWW m16 r16 -// MOVBEWW r16 m16 -// -// Construct and append a MOVBEWW instruction to the active function. -// Operates on the global context. -func MOVBEWW(mr, mr1 operand.Op) { ctx.MOVBEWW(mr, mr1) } - -// MOVBLSX: Move with Sign-Extension. -// -// Forms: -// -// MOVBLSX m8 r32 -// MOVBLSX r8 r32 -// -// Construct and append a MOVBLSX instruction to the active function. -func (c *Context) MOVBLSX(mr, r operand.Op) { - c.addinstruction(x86.MOVBLSX(mr, r)) -} - -// MOVBLSX: Move with Sign-Extension. -// -// Forms: -// -// MOVBLSX m8 r32 -// MOVBLSX r8 r32 -// -// Construct and append a MOVBLSX instruction to the active function. -// Operates on the global context. -func MOVBLSX(mr, r operand.Op) { ctx.MOVBLSX(mr, r) } - -// MOVBLZX: Move with Zero-Extend. -// -// Forms: -// -// MOVBLZX m8 r32 -// MOVBLZX r8 r32 -// -// Construct and append a MOVBLZX instruction to the active function. -func (c *Context) MOVBLZX(mr, r operand.Op) { - c.addinstruction(x86.MOVBLZX(mr, r)) -} - -// MOVBLZX: Move with Zero-Extend. -// -// Forms: -// -// MOVBLZX m8 r32 -// MOVBLZX r8 r32 -// -// Construct and append a MOVBLZX instruction to the active function. -// Operates on the global context. -func MOVBLZX(mr, r operand.Op) { ctx.MOVBLZX(mr, r) } - -// MOVBQSX: Move with Sign-Extension. -// -// Forms: -// -// MOVBQSX m8 r64 -// MOVBQSX r8 r64 -// -// Construct and append a MOVBQSX instruction to the active function. -func (c *Context) MOVBQSX(mr, r operand.Op) { - c.addinstruction(x86.MOVBQSX(mr, r)) -} - -// MOVBQSX: Move with Sign-Extension. -// -// Forms: -// -// MOVBQSX m8 r64 -// MOVBQSX r8 r64 -// -// Construct and append a MOVBQSX instruction to the active function. -// Operates on the global context. -func MOVBQSX(mr, r operand.Op) { ctx.MOVBQSX(mr, r) } - -// MOVBQZX: Move with Zero-Extend. -// -// Forms: -// -// MOVBQZX m8 r64 -// MOVBQZX r8 r64 -// -// Construct and append a MOVBQZX instruction to the active function. -func (c *Context) MOVBQZX(mr, r operand.Op) { - c.addinstruction(x86.MOVBQZX(mr, r)) -} - -// MOVBQZX: Move with Zero-Extend. -// -// Forms: -// -// MOVBQZX m8 r64 -// MOVBQZX r8 r64 -// -// Construct and append a MOVBQZX instruction to the active function. -// Operates on the global context. -func MOVBQZX(mr, r operand.Op) { ctx.MOVBQZX(mr, r) } - -// MOVBWSX: Move with Sign-Extension. -// -// Forms: -// -// MOVBWSX m8 r16 -// MOVBWSX r8 r16 -// -// Construct and append a MOVBWSX instruction to the active function. -func (c *Context) MOVBWSX(mr, r operand.Op) { - c.addinstruction(x86.MOVBWSX(mr, r)) -} - -// MOVBWSX: Move with Sign-Extension. -// -// Forms: -// -// MOVBWSX m8 r16 -// MOVBWSX r8 r16 -// -// Construct and append a MOVBWSX instruction to the active function. -// Operates on the global context. -func MOVBWSX(mr, r operand.Op) { ctx.MOVBWSX(mr, r) } - -// MOVBWZX: Move with Zero-Extend. -// -// Forms: -// -// MOVBWZX m8 r16 -// MOVBWZX r8 r16 -// -// Construct and append a MOVBWZX instruction to the active function. -func (c *Context) MOVBWZX(mr, r operand.Op) { - c.addinstruction(x86.MOVBWZX(mr, r)) -} - -// MOVBWZX: Move with Zero-Extend. -// -// Forms: -// -// MOVBWZX m8 r16 -// MOVBWZX r8 r16 -// -// Construct and append a MOVBWZX instruction to the active function. -// Operates on the global context. -func MOVBWZX(mr, r operand.Op) { ctx.MOVBWZX(mr, r) } - -// MOVD: Move. -// -// Forms: -// -// MOVD m32 xmm -// MOVD m64 xmm -// MOVD r32 xmm -// MOVD r64 xmm -// MOVD xmm m32 -// MOVD xmm m64 -// MOVD xmm r32 -// MOVD xmm r64 -// MOVD xmm xmm -// MOVD imm32 m64 -// MOVD imm32 r64 -// MOVD imm64 r64 -// MOVD m64 r64 -// MOVD r64 m64 -// MOVD r64 r64 -// -// Construct and append a MOVD instruction to the active function. -func (c *Context) MOVD(imrx, mrx operand.Op) { - c.addinstruction(x86.MOVD(imrx, mrx)) -} - -// MOVD: Move. -// -// Forms: -// -// MOVD m32 xmm -// MOVD m64 xmm -// MOVD r32 xmm -// MOVD r64 xmm -// MOVD xmm m32 -// MOVD xmm m64 -// MOVD xmm r32 -// MOVD xmm r64 -// MOVD xmm xmm -// MOVD imm32 m64 -// MOVD imm32 r64 -// MOVD imm64 r64 -// MOVD m64 r64 -// MOVD r64 m64 -// MOVD r64 r64 -// -// Construct and append a MOVD instruction to the active function. -// Operates on the global context. -func MOVD(imrx, mrx operand.Op) { ctx.MOVD(imrx, mrx) } - -// MOVDDUP: Move One Double-FP and Duplicate. -// -// Forms: -// -// MOVDDUP m64 xmm -// MOVDDUP xmm xmm -// -// Construct and append a MOVDDUP instruction to the active function. -func (c *Context) MOVDDUP(mx, x operand.Op) { - c.addinstruction(x86.MOVDDUP(mx, x)) -} - -// MOVDDUP: Move One Double-FP and Duplicate. -// -// Forms: -// -// MOVDDUP m64 xmm -// MOVDDUP xmm xmm -// -// Construct and append a MOVDDUP instruction to the active function. -// Operates on the global context. -func MOVDDUP(mx, x operand.Op) { ctx.MOVDDUP(mx, x) } - -// MOVDQ2Q: Move. -// -// Forms: -// -// MOVDQ2Q m32 xmm -// MOVDQ2Q m64 xmm -// MOVDQ2Q r32 xmm -// MOVDQ2Q r64 xmm -// MOVDQ2Q xmm m32 -// MOVDQ2Q xmm m64 -// MOVDQ2Q xmm r32 -// MOVDQ2Q xmm r64 -// MOVDQ2Q xmm xmm -// MOVDQ2Q imm32 m64 -// MOVDQ2Q imm32 r64 -// MOVDQ2Q imm64 r64 -// MOVDQ2Q m64 r64 -// MOVDQ2Q r64 m64 -// MOVDQ2Q r64 r64 -// -// Construct and append a MOVDQ2Q instruction to the active function. -func (c *Context) MOVDQ2Q(imrx, mrx operand.Op) { - c.addinstruction(x86.MOVDQ2Q(imrx, mrx)) -} - -// MOVDQ2Q: Move. -// -// Forms: -// -// MOVDQ2Q m32 xmm -// MOVDQ2Q m64 xmm -// MOVDQ2Q r32 xmm -// MOVDQ2Q r64 xmm -// MOVDQ2Q xmm m32 -// MOVDQ2Q xmm m64 -// MOVDQ2Q xmm r32 -// MOVDQ2Q xmm r64 -// MOVDQ2Q xmm xmm -// MOVDQ2Q imm32 m64 -// MOVDQ2Q imm32 r64 -// MOVDQ2Q imm64 r64 -// MOVDQ2Q m64 r64 -// MOVDQ2Q r64 m64 -// MOVDQ2Q r64 r64 -// -// Construct and append a MOVDQ2Q instruction to the active function. -// Operates on the global context. -func MOVDQ2Q(imrx, mrx operand.Op) { ctx.MOVDQ2Q(imrx, mrx) } - -// MOVHLPS: Move Packed Single-Precision Floating-Point Values High to Low. -// -// Forms: -// -// MOVHLPS xmm xmm -// -// Construct and append a MOVHLPS instruction to the active function. -func (c *Context) MOVHLPS(x, x1 operand.Op) { - c.addinstruction(x86.MOVHLPS(x, x1)) -} - -// MOVHLPS: Move Packed Single-Precision Floating-Point Values High to Low. -// -// Forms: -// -// MOVHLPS xmm xmm -// -// Construct and append a MOVHLPS instruction to the active function. -// Operates on the global context. -func MOVHLPS(x, x1 operand.Op) { ctx.MOVHLPS(x, x1) } - -// MOVHPD: Move High Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// MOVHPD m64 xmm -// MOVHPD xmm m64 -// -// Construct and append a MOVHPD instruction to the active function. -func (c *Context) MOVHPD(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVHPD(mx, mx1)) -} - -// MOVHPD: Move High Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// MOVHPD m64 xmm -// MOVHPD xmm m64 -// -// Construct and append a MOVHPD instruction to the active function. -// Operates on the global context. -func MOVHPD(mx, mx1 operand.Op) { ctx.MOVHPD(mx, mx1) } - -// MOVHPS: Move High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVHPS m64 xmm -// MOVHPS xmm m64 -// -// Construct and append a MOVHPS instruction to the active function. -func (c *Context) MOVHPS(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVHPS(mx, mx1)) -} - -// MOVHPS: Move High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVHPS m64 xmm -// MOVHPS xmm m64 -// -// Construct and append a MOVHPS instruction to the active function. -// Operates on the global context. -func MOVHPS(mx, mx1 operand.Op) { ctx.MOVHPS(mx, mx1) } - -// MOVL: Move. -// -// Forms: -// -// MOVL imm32 m32 -// MOVL imm32 r32 -// MOVL m32 r32 -// MOVL r32 m32 -// MOVL r32 r32 -// -// Construct and append a MOVL instruction to the active function. -func (c *Context) MOVL(imr, mr operand.Op) { - c.addinstruction(x86.MOVL(imr, mr)) -} - -// MOVL: Move. -// -// Forms: -// -// MOVL imm32 m32 -// MOVL imm32 r32 -// MOVL m32 r32 -// MOVL r32 m32 -// MOVL r32 r32 -// -// Construct and append a MOVL instruction to the active function. -// Operates on the global context. -func MOVL(imr, mr operand.Op) { ctx.MOVL(imr, mr) } - -// MOVLHPS: Move Packed Single-Precision Floating-Point Values Low to High. -// -// Forms: -// -// MOVLHPS xmm xmm -// -// Construct and append a MOVLHPS instruction to the active function. -func (c *Context) MOVLHPS(x, x1 operand.Op) { - c.addinstruction(x86.MOVLHPS(x, x1)) -} - -// MOVLHPS: Move Packed Single-Precision Floating-Point Values Low to High. -// -// Forms: -// -// MOVLHPS xmm xmm -// -// Construct and append a MOVLHPS instruction to the active function. -// Operates on the global context. -func MOVLHPS(x, x1 operand.Op) { ctx.MOVLHPS(x, x1) } - -// MOVLPD: Move Low Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// MOVLPD m64 xmm -// MOVLPD xmm m64 -// -// Construct and append a MOVLPD instruction to the active function. -func (c *Context) MOVLPD(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVLPD(mx, mx1)) -} - -// MOVLPD: Move Low Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// MOVLPD m64 xmm -// MOVLPD xmm m64 -// -// Construct and append a MOVLPD instruction to the active function. -// Operates on the global context. -func MOVLPD(mx, mx1 operand.Op) { ctx.MOVLPD(mx, mx1) } - -// MOVLPS: Move Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVLPS m64 xmm -// MOVLPS xmm m64 -// -// Construct and append a MOVLPS instruction to the active function. -func (c *Context) MOVLPS(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVLPS(mx, mx1)) -} - -// MOVLPS: Move Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVLPS m64 xmm -// MOVLPS xmm m64 -// -// Construct and append a MOVLPS instruction to the active function. -// Operates on the global context. -func MOVLPS(mx, mx1 operand.Op) { ctx.MOVLPS(mx, mx1) } - -// MOVLQSX: Move Doubleword to Quadword with Sign-Extension. -// -// Forms: -// -// MOVLQSX m32 r64 -// MOVLQSX r32 r64 -// -// Construct and append a MOVLQSX instruction to the active function. -func (c *Context) MOVLQSX(mr, r operand.Op) { - c.addinstruction(x86.MOVLQSX(mr, r)) -} - -// MOVLQSX: Move Doubleword to Quadword with Sign-Extension. -// -// Forms: -// -// MOVLQSX m32 r64 -// MOVLQSX r32 r64 -// -// Construct and append a MOVLQSX instruction to the active function. -// Operates on the global context. -func MOVLQSX(mr, r operand.Op) { ctx.MOVLQSX(mr, r) } - -// MOVLQZX: Move with Zero-Extend. -// -// Forms: -// -// MOVLQZX m32 r64 -// -// Construct and append a MOVLQZX instruction to the active function. -func (c *Context) MOVLQZX(m, r operand.Op) { - c.addinstruction(x86.MOVLQZX(m, r)) -} - -// MOVLQZX: Move with Zero-Extend. -// -// Forms: -// -// MOVLQZX m32 r64 -// -// Construct and append a MOVLQZX instruction to the active function. -// Operates on the global context. -func MOVLQZX(m, r operand.Op) { ctx.MOVLQZX(m, r) } - -// MOVMSKPD: Extract Packed Double-Precision Floating-Point Sign Mask. -// -// Forms: -// -// MOVMSKPD xmm r32 -// -// Construct and append a MOVMSKPD instruction to the active function. -func (c *Context) MOVMSKPD(x, r operand.Op) { - c.addinstruction(x86.MOVMSKPD(x, r)) -} - -// MOVMSKPD: Extract Packed Double-Precision Floating-Point Sign Mask. -// -// Forms: -// -// MOVMSKPD xmm r32 -// -// Construct and append a MOVMSKPD instruction to the active function. -// Operates on the global context. -func MOVMSKPD(x, r operand.Op) { ctx.MOVMSKPD(x, r) } - -// MOVMSKPS: Extract Packed Single-Precision Floating-Point Sign Mask. -// -// Forms: -// -// MOVMSKPS xmm r32 -// -// Construct and append a MOVMSKPS instruction to the active function. -func (c *Context) MOVMSKPS(x, r operand.Op) { - c.addinstruction(x86.MOVMSKPS(x, r)) -} - -// MOVMSKPS: Extract Packed Single-Precision Floating-Point Sign Mask. -// -// Forms: -// -// MOVMSKPS xmm r32 -// -// Construct and append a MOVMSKPS instruction to the active function. -// Operates on the global context. -func MOVMSKPS(x, r operand.Op) { ctx.MOVMSKPS(x, r) } - -// MOVNTDQ: Store Double Quadword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTDQ xmm m128 -// -// Construct and append a MOVNTDQ instruction to the active function. -func (c *Context) MOVNTDQ(x, m operand.Op) { - c.addinstruction(x86.MOVNTDQ(x, m)) -} - -// MOVNTDQ: Store Double Quadword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTDQ xmm m128 -// -// Construct and append a MOVNTDQ instruction to the active function. -// Operates on the global context. -func MOVNTDQ(x, m operand.Op) { ctx.MOVNTDQ(x, m) } - -// MOVNTDQA: Load Double Quadword Non-Temporal Aligned Hint. -// -// Forms: -// -// MOVNTDQA m128 xmm -// -// Construct and append a MOVNTDQA instruction to the active function. -func (c *Context) MOVNTDQA(m, x operand.Op) { - c.addinstruction(x86.MOVNTDQA(m, x)) -} - -// MOVNTDQA: Load Double Quadword Non-Temporal Aligned Hint. -// -// Forms: -// -// MOVNTDQA m128 xmm -// -// Construct and append a MOVNTDQA instruction to the active function. -// Operates on the global context. -func MOVNTDQA(m, x operand.Op) { ctx.MOVNTDQA(m, x) } - -// MOVNTIL: Store Doubleword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTIL r32 m32 -// -// Construct and append a MOVNTIL instruction to the active function. -func (c *Context) MOVNTIL(r, m operand.Op) { - c.addinstruction(x86.MOVNTIL(r, m)) -} - -// MOVNTIL: Store Doubleword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTIL r32 m32 -// -// Construct and append a MOVNTIL instruction to the active function. -// Operates on the global context. -func MOVNTIL(r, m operand.Op) { ctx.MOVNTIL(r, m) } - -// MOVNTIQ: Store Doubleword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTIQ r64 m64 -// -// Construct and append a MOVNTIQ instruction to the active function. -func (c *Context) MOVNTIQ(r, m operand.Op) { - c.addinstruction(x86.MOVNTIQ(r, m)) -} - -// MOVNTIQ: Store Doubleword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTIQ r64 m64 -// -// Construct and append a MOVNTIQ instruction to the active function. -// Operates on the global context. -func MOVNTIQ(r, m operand.Op) { ctx.MOVNTIQ(r, m) } - -// MOVNTO: Store Double Quadword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTO xmm m128 -// -// Construct and append a MOVNTO instruction to the active function. -func (c *Context) MOVNTO(x, m operand.Op) { - c.addinstruction(x86.MOVNTO(x, m)) -} - -// MOVNTO: Store Double Quadword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTO xmm m128 -// -// Construct and append a MOVNTO instruction to the active function. -// Operates on the global context. -func MOVNTO(x, m operand.Op) { ctx.MOVNTO(x, m) } - -// MOVNTPD: Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTPD xmm m128 -// -// Construct and append a MOVNTPD instruction to the active function. -func (c *Context) MOVNTPD(x, m operand.Op) { - c.addinstruction(x86.MOVNTPD(x, m)) -} - -// MOVNTPD: Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTPD xmm m128 -// -// Construct and append a MOVNTPD instruction to the active function. -// Operates on the global context. -func MOVNTPD(x, m operand.Op) { ctx.MOVNTPD(x, m) } - -// MOVNTPS: Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTPS xmm m128 -// -// Construct and append a MOVNTPS instruction to the active function. -func (c *Context) MOVNTPS(x, m operand.Op) { - c.addinstruction(x86.MOVNTPS(x, m)) -} - -// MOVNTPS: Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTPS xmm m128 -// -// Construct and append a MOVNTPS instruction to the active function. -// Operates on the global context. -func MOVNTPS(x, m operand.Op) { ctx.MOVNTPS(x, m) } - -// MOVO: Move Aligned Double Quadword. -// -// Forms: -// -// MOVO m128 xmm -// MOVO xmm m128 -// MOVO xmm xmm -// -// Construct and append a MOVO instruction to the active function. -func (c *Context) MOVO(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVO(mx, mx1)) -} - -// MOVO: Move Aligned Double Quadword. -// -// Forms: -// -// MOVO m128 xmm -// MOVO xmm m128 -// MOVO xmm xmm -// -// Construct and append a MOVO instruction to the active function. -// Operates on the global context. -func MOVO(mx, mx1 operand.Op) { ctx.MOVO(mx, mx1) } - -// MOVOA: Move Aligned Double Quadword. -// -// Forms: -// -// MOVOA m128 xmm -// MOVOA xmm m128 -// MOVOA xmm xmm -// -// Construct and append a MOVOA instruction to the active function. -func (c *Context) MOVOA(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVOA(mx, mx1)) -} - -// MOVOA: Move Aligned Double Quadword. -// -// Forms: -// -// MOVOA m128 xmm -// MOVOA xmm m128 -// MOVOA xmm xmm -// -// Construct and append a MOVOA instruction to the active function. -// Operates on the global context. -func MOVOA(mx, mx1 operand.Op) { ctx.MOVOA(mx, mx1) } - -// MOVOU: Move Unaligned Double Quadword. -// -// Forms: -// -// MOVOU m128 xmm -// MOVOU xmm m128 -// MOVOU xmm xmm -// -// Construct and append a MOVOU instruction to the active function. -func (c *Context) MOVOU(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVOU(mx, mx1)) -} - -// MOVOU: Move Unaligned Double Quadword. -// -// Forms: -// -// MOVOU m128 xmm -// MOVOU xmm m128 -// MOVOU xmm xmm -// -// Construct and append a MOVOU instruction to the active function. -// Operates on the global context. -func MOVOU(mx, mx1 operand.Op) { ctx.MOVOU(mx, mx1) } - -// MOVQ: Move. -// -// Forms: -// -// MOVQ m32 xmm -// MOVQ m64 xmm -// MOVQ r32 xmm -// MOVQ r64 xmm -// MOVQ xmm m32 -// MOVQ xmm m64 -// MOVQ xmm r32 -// MOVQ xmm r64 -// MOVQ xmm xmm -// MOVQ imm32 m64 -// MOVQ imm32 r64 -// MOVQ imm64 r64 -// MOVQ m64 r64 -// MOVQ r64 m64 -// MOVQ r64 r64 -// -// Construct and append a MOVQ instruction to the active function. -func (c *Context) MOVQ(imrx, mrx operand.Op) { - c.addinstruction(x86.MOVQ(imrx, mrx)) -} - -// MOVQ: Move. -// -// Forms: -// -// MOVQ m32 xmm -// MOVQ m64 xmm -// MOVQ r32 xmm -// MOVQ r64 xmm -// MOVQ xmm m32 -// MOVQ xmm m64 -// MOVQ xmm r32 -// MOVQ xmm r64 -// MOVQ xmm xmm -// MOVQ imm32 m64 -// MOVQ imm32 r64 -// MOVQ imm64 r64 -// MOVQ m64 r64 -// MOVQ r64 m64 -// MOVQ r64 r64 -// -// Construct and append a MOVQ instruction to the active function. -// Operates on the global context. -func MOVQ(imrx, mrx operand.Op) { ctx.MOVQ(imrx, mrx) } - -// MOVSD: Move Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// MOVSD m64 xmm -// MOVSD xmm m64 -// MOVSD xmm xmm -// -// Construct and append a MOVSD instruction to the active function. -func (c *Context) MOVSD(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVSD(mx, mx1)) -} - -// MOVSD: Move Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// MOVSD m64 xmm -// MOVSD xmm m64 -// MOVSD xmm xmm -// -// Construct and append a MOVSD instruction to the active function. -// Operates on the global context. -func MOVSD(mx, mx1 operand.Op) { ctx.MOVSD(mx, mx1) } - -// MOVSHDUP: Move Packed Single-FP High and Duplicate. -// -// Forms: -// -// MOVSHDUP m128 xmm -// MOVSHDUP xmm xmm -// -// Construct and append a MOVSHDUP instruction to the active function. -func (c *Context) MOVSHDUP(mx, x operand.Op) { - c.addinstruction(x86.MOVSHDUP(mx, x)) -} - -// MOVSHDUP: Move Packed Single-FP High and Duplicate. -// -// Forms: -// -// MOVSHDUP m128 xmm -// MOVSHDUP xmm xmm -// -// Construct and append a MOVSHDUP instruction to the active function. -// Operates on the global context. -func MOVSHDUP(mx, x operand.Op) { ctx.MOVSHDUP(mx, x) } - -// MOVSLDUP: Move Packed Single-FP Low and Duplicate. -// -// Forms: -// -// MOVSLDUP m128 xmm -// MOVSLDUP xmm xmm -// -// Construct and append a MOVSLDUP instruction to the active function. -func (c *Context) MOVSLDUP(mx, x operand.Op) { - c.addinstruction(x86.MOVSLDUP(mx, x)) -} - -// MOVSLDUP: Move Packed Single-FP Low and Duplicate. -// -// Forms: -// -// MOVSLDUP m128 xmm -// MOVSLDUP xmm xmm -// -// Construct and append a MOVSLDUP instruction to the active function. -// Operates on the global context. -func MOVSLDUP(mx, x operand.Op) { ctx.MOVSLDUP(mx, x) } - -// MOVSS: Move Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVSS m32 xmm -// MOVSS xmm m32 -// MOVSS xmm xmm -// -// Construct and append a MOVSS instruction to the active function. -func (c *Context) MOVSS(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVSS(mx, mx1)) -} - -// MOVSS: Move Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVSS m32 xmm -// MOVSS xmm m32 -// MOVSS xmm xmm -// -// Construct and append a MOVSS instruction to the active function. -// Operates on the global context. -func MOVSS(mx, mx1 operand.Op) { ctx.MOVSS(mx, mx1) } - -// MOVUPD: Move Unaligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MOVUPD m128 xmm -// MOVUPD xmm m128 -// MOVUPD xmm xmm -// -// Construct and append a MOVUPD instruction to the active function. -func (c *Context) MOVUPD(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVUPD(mx, mx1)) -} - -// MOVUPD: Move Unaligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MOVUPD m128 xmm -// MOVUPD xmm m128 -// MOVUPD xmm xmm -// -// Construct and append a MOVUPD instruction to the active function. -// Operates on the global context. -func MOVUPD(mx, mx1 operand.Op) { ctx.MOVUPD(mx, mx1) } - -// MOVUPS: Move Unaligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVUPS m128 xmm -// MOVUPS xmm m128 -// MOVUPS xmm xmm -// -// Construct and append a MOVUPS instruction to the active function. -func (c *Context) MOVUPS(mx, mx1 operand.Op) { - c.addinstruction(x86.MOVUPS(mx, mx1)) -} - -// MOVUPS: Move Unaligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVUPS m128 xmm -// MOVUPS xmm m128 -// MOVUPS xmm xmm -// -// Construct and append a MOVUPS instruction to the active function. -// Operates on the global context. -func MOVUPS(mx, mx1 operand.Op) { ctx.MOVUPS(mx, mx1) } - -// MOVW: Move. -// -// Forms: -// -// MOVW imm16 m16 -// MOVW imm16 r16 -// MOVW m16 r16 -// MOVW r16 m16 -// MOVW r16 r16 -// -// Construct and append a MOVW instruction to the active function. -func (c *Context) MOVW(imr, mr operand.Op) { - c.addinstruction(x86.MOVW(imr, mr)) -} - -// MOVW: Move. -// -// Forms: -// -// MOVW imm16 m16 -// MOVW imm16 r16 -// MOVW m16 r16 -// MOVW r16 m16 -// MOVW r16 r16 -// -// Construct and append a MOVW instruction to the active function. -// Operates on the global context. -func MOVW(imr, mr operand.Op) { ctx.MOVW(imr, mr) } - -// MOVWLSX: Move with Sign-Extension. -// -// Forms: -// -// MOVWLSX m16 r32 -// MOVWLSX r16 r32 -// -// Construct and append a MOVWLSX instruction to the active function. -func (c *Context) MOVWLSX(mr, r operand.Op) { - c.addinstruction(x86.MOVWLSX(mr, r)) -} - -// MOVWLSX: Move with Sign-Extension. -// -// Forms: -// -// MOVWLSX m16 r32 -// MOVWLSX r16 r32 -// -// Construct and append a MOVWLSX instruction to the active function. -// Operates on the global context. -func MOVWLSX(mr, r operand.Op) { ctx.MOVWLSX(mr, r) } - -// MOVWLZX: Move with Zero-Extend. -// -// Forms: -// -// MOVWLZX m16 r32 -// MOVWLZX r16 r32 -// -// Construct and append a MOVWLZX instruction to the active function. -func (c *Context) MOVWLZX(mr, r operand.Op) { - c.addinstruction(x86.MOVWLZX(mr, r)) -} - -// MOVWLZX: Move with Zero-Extend. -// -// Forms: -// -// MOVWLZX m16 r32 -// MOVWLZX r16 r32 -// -// Construct and append a MOVWLZX instruction to the active function. -// Operates on the global context. -func MOVWLZX(mr, r operand.Op) { ctx.MOVWLZX(mr, r) } - -// MOVWQSX: Move with Sign-Extension. -// -// Forms: -// -// MOVWQSX m16 r64 -// MOVWQSX r16 r64 -// -// Construct and append a MOVWQSX instruction to the active function. -func (c *Context) MOVWQSX(mr, r operand.Op) { - c.addinstruction(x86.MOVWQSX(mr, r)) -} - -// MOVWQSX: Move with Sign-Extension. -// -// Forms: -// -// MOVWQSX m16 r64 -// MOVWQSX r16 r64 -// -// Construct and append a MOVWQSX instruction to the active function. -// Operates on the global context. -func MOVWQSX(mr, r operand.Op) { ctx.MOVWQSX(mr, r) } - -// MOVWQZX: Move with Zero-Extend. -// -// Forms: -// -// MOVWQZX m16 r64 -// MOVWQZX r16 r64 -// -// Construct and append a MOVWQZX instruction to the active function. -func (c *Context) MOVWQZX(mr, r operand.Op) { - c.addinstruction(x86.MOVWQZX(mr, r)) -} - -// MOVWQZX: Move with Zero-Extend. -// -// Forms: -// -// MOVWQZX m16 r64 -// MOVWQZX r16 r64 -// -// Construct and append a MOVWQZX instruction to the active function. -// Operates on the global context. -func MOVWQZX(mr, r operand.Op) { ctx.MOVWQZX(mr, r) } - -// MPSADBW: Compute Multiple Packed Sums of Absolute Difference. -// -// Forms: -// -// MPSADBW imm8 m128 xmm -// MPSADBW imm8 xmm xmm -// -// Construct and append a MPSADBW instruction to the active function. -func (c *Context) MPSADBW(i, mx, x operand.Op) { - c.addinstruction(x86.MPSADBW(i, mx, x)) -} - -// MPSADBW: Compute Multiple Packed Sums of Absolute Difference. -// -// Forms: -// -// MPSADBW imm8 m128 xmm -// MPSADBW imm8 xmm xmm -// -// Construct and append a MPSADBW instruction to the active function. -// Operates on the global context. -func MPSADBW(i, mx, x operand.Op) { ctx.MPSADBW(i, mx, x) } - -// MULB: Unsigned Multiply. -// -// Forms: -// -// MULB m8 -// MULB r8 -// -// Construct and append a MULB instruction to the active function. -func (c *Context) MULB(mr operand.Op) { - c.addinstruction(x86.MULB(mr)) -} - -// MULB: Unsigned Multiply. -// -// Forms: -// -// MULB m8 -// MULB r8 -// -// Construct and append a MULB instruction to the active function. -// Operates on the global context. -func MULB(mr operand.Op) { ctx.MULB(mr) } - -// MULL: Unsigned Multiply. -// -// Forms: -// -// MULL m32 -// MULL r32 -// -// Construct and append a MULL instruction to the active function. -func (c *Context) MULL(mr operand.Op) { - c.addinstruction(x86.MULL(mr)) -} - -// MULL: Unsigned Multiply. -// -// Forms: -// -// MULL m32 -// MULL r32 -// -// Construct and append a MULL instruction to the active function. -// Operates on the global context. -func MULL(mr operand.Op) { ctx.MULL(mr) } - -// MULPD: Multiply Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MULPD m128 xmm -// MULPD xmm xmm -// -// Construct and append a MULPD instruction to the active function. -func (c *Context) MULPD(mx, x operand.Op) { - c.addinstruction(x86.MULPD(mx, x)) -} - -// MULPD: Multiply Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MULPD m128 xmm -// MULPD xmm xmm -// -// Construct and append a MULPD instruction to the active function. -// Operates on the global context. -func MULPD(mx, x operand.Op) { ctx.MULPD(mx, x) } - -// MULPS: Multiply Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MULPS m128 xmm -// MULPS xmm xmm -// -// Construct and append a MULPS instruction to the active function. -func (c *Context) MULPS(mx, x operand.Op) { - c.addinstruction(x86.MULPS(mx, x)) -} - -// MULPS: Multiply Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MULPS m128 xmm -// MULPS xmm xmm -// -// Construct and append a MULPS instruction to the active function. -// Operates on the global context. -func MULPS(mx, x operand.Op) { ctx.MULPS(mx, x) } - -// MULQ: Unsigned Multiply. -// -// Forms: -// -// MULQ m64 -// MULQ r64 -// -// Construct and append a MULQ instruction to the active function. -func (c *Context) MULQ(mr operand.Op) { - c.addinstruction(x86.MULQ(mr)) -} - -// MULQ: Unsigned Multiply. -// -// Forms: -// -// MULQ m64 -// MULQ r64 -// -// Construct and append a MULQ instruction to the active function. -// Operates on the global context. -func MULQ(mr operand.Op) { ctx.MULQ(mr) } - -// MULSD: Multiply Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// MULSD m64 xmm -// MULSD xmm xmm -// -// Construct and append a MULSD instruction to the active function. -func (c *Context) MULSD(mx, x operand.Op) { - c.addinstruction(x86.MULSD(mx, x)) -} - -// MULSD: Multiply Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// MULSD m64 xmm -// MULSD xmm xmm -// -// Construct and append a MULSD instruction to the active function. -// Operates on the global context. -func MULSD(mx, x operand.Op) { ctx.MULSD(mx, x) } - -// MULSS: Multiply Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// MULSS m32 xmm -// MULSS xmm xmm -// -// Construct and append a MULSS instruction to the active function. -func (c *Context) MULSS(mx, x operand.Op) { - c.addinstruction(x86.MULSS(mx, x)) -} - -// MULSS: Multiply Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// MULSS m32 xmm -// MULSS xmm xmm -// -// Construct and append a MULSS instruction to the active function. -// Operates on the global context. -func MULSS(mx, x operand.Op) { ctx.MULSS(mx, x) } - -// MULW: Unsigned Multiply. -// -// Forms: -// -// MULW m16 -// MULW r16 -// -// Construct and append a MULW instruction to the active function. -func (c *Context) MULW(mr operand.Op) { - c.addinstruction(x86.MULW(mr)) -} - -// MULW: Unsigned Multiply. -// -// Forms: -// -// MULW m16 -// MULW r16 -// -// Construct and append a MULW instruction to the active function. -// Operates on the global context. -func MULW(mr operand.Op) { ctx.MULW(mr) } - -// MULXL: Unsigned Multiply Without Affecting Flags. -// -// Forms: -// -// MULXL m32 r32 r32 -// MULXL r32 r32 r32 -// -// Construct and append a MULXL instruction to the active function. -func (c *Context) MULXL(mr, r, r1 operand.Op) { - c.addinstruction(x86.MULXL(mr, r, r1)) -} - -// MULXL: Unsigned Multiply Without Affecting Flags. -// -// Forms: -// -// MULXL m32 r32 r32 -// MULXL r32 r32 r32 -// -// Construct and append a MULXL instruction to the active function. -// Operates on the global context. -func MULXL(mr, r, r1 operand.Op) { ctx.MULXL(mr, r, r1) } - -// MULXQ: Unsigned Multiply Without Affecting Flags. -// -// Forms: -// -// MULXQ m64 r64 r64 -// MULXQ r64 r64 r64 -// -// Construct and append a MULXQ instruction to the active function. -func (c *Context) MULXQ(mr, r, r1 operand.Op) { - c.addinstruction(x86.MULXQ(mr, r, r1)) -} - -// MULXQ: Unsigned Multiply Without Affecting Flags. -// -// Forms: -// -// MULXQ m64 r64 r64 -// MULXQ r64 r64 r64 -// -// Construct and append a MULXQ instruction to the active function. -// Operates on the global context. -func MULXQ(mr, r, r1 operand.Op) { ctx.MULXQ(mr, r, r1) } - -// MWAIT: Monitor Wait. -// -// Forms: -// -// MWAIT -// -// Construct and append a MWAIT instruction to the active function. -func (c *Context) MWAIT() { - c.addinstruction(x86.MWAIT()) -} - -// MWAIT: Monitor Wait. -// -// Forms: -// -// MWAIT -// -// Construct and append a MWAIT instruction to the active function. -// Operates on the global context. -func MWAIT() { ctx.MWAIT() } - -// NEGB: Two's Complement Negation. -// -// Forms: -// -// NEGB m8 -// NEGB r8 -// -// Construct and append a NEGB instruction to the active function. -func (c *Context) NEGB(mr operand.Op) { - c.addinstruction(x86.NEGB(mr)) -} - -// NEGB: Two's Complement Negation. -// -// Forms: -// -// NEGB m8 -// NEGB r8 -// -// Construct and append a NEGB instruction to the active function. -// Operates on the global context. -func NEGB(mr operand.Op) { ctx.NEGB(mr) } - -// NEGL: Two's Complement Negation. -// -// Forms: -// -// NEGL m32 -// NEGL r32 -// -// Construct and append a NEGL instruction to the active function. -func (c *Context) NEGL(mr operand.Op) { - c.addinstruction(x86.NEGL(mr)) -} - -// NEGL: Two's Complement Negation. -// -// Forms: -// -// NEGL m32 -// NEGL r32 -// -// Construct and append a NEGL instruction to the active function. -// Operates on the global context. -func NEGL(mr operand.Op) { ctx.NEGL(mr) } - -// NEGQ: Two's Complement Negation. -// -// Forms: -// -// NEGQ m64 -// NEGQ r64 -// -// Construct and append a NEGQ instruction to the active function. -func (c *Context) NEGQ(mr operand.Op) { - c.addinstruction(x86.NEGQ(mr)) -} - -// NEGQ: Two's Complement Negation. -// -// Forms: -// -// NEGQ m64 -// NEGQ r64 -// -// Construct and append a NEGQ instruction to the active function. -// Operates on the global context. -func NEGQ(mr operand.Op) { ctx.NEGQ(mr) } - -// NEGW: Two's Complement Negation. -// -// Forms: -// -// NEGW m16 -// NEGW r16 -// -// Construct and append a NEGW instruction to the active function. -func (c *Context) NEGW(mr operand.Op) { - c.addinstruction(x86.NEGW(mr)) -} - -// NEGW: Two's Complement Negation. -// -// Forms: -// -// NEGW m16 -// NEGW r16 -// -// Construct and append a NEGW instruction to the active function. -// Operates on the global context. -func NEGW(mr operand.Op) { ctx.NEGW(mr) } - -// NOP: No Operation. -// -// Forms: -// -// NOP -// -// Construct and append a NOP instruction to the active function. -func (c *Context) NOP() { - c.addinstruction(x86.NOP()) -} - -// NOP: No Operation. -// -// Forms: -// -// NOP -// -// Construct and append a NOP instruction to the active function. -// Operates on the global context. -func NOP() { ctx.NOP() } - -// NOTB: One's Complement Negation. -// -// Forms: -// -// NOTB m8 -// NOTB r8 -// -// Construct and append a NOTB instruction to the active function. -func (c *Context) NOTB(mr operand.Op) { - c.addinstruction(x86.NOTB(mr)) -} - -// NOTB: One's Complement Negation. -// -// Forms: -// -// NOTB m8 -// NOTB r8 -// -// Construct and append a NOTB instruction to the active function. -// Operates on the global context. -func NOTB(mr operand.Op) { ctx.NOTB(mr) } - -// NOTL: One's Complement Negation. -// -// Forms: -// -// NOTL m32 -// NOTL r32 -// -// Construct and append a NOTL instruction to the active function. -func (c *Context) NOTL(mr operand.Op) { - c.addinstruction(x86.NOTL(mr)) -} - -// NOTL: One's Complement Negation. -// -// Forms: -// -// NOTL m32 -// NOTL r32 -// -// Construct and append a NOTL instruction to the active function. -// Operates on the global context. -func NOTL(mr operand.Op) { ctx.NOTL(mr) } - -// NOTQ: One's Complement Negation. -// -// Forms: -// -// NOTQ m64 -// NOTQ r64 -// -// Construct and append a NOTQ instruction to the active function. -func (c *Context) NOTQ(mr operand.Op) { - c.addinstruction(x86.NOTQ(mr)) -} - -// NOTQ: One's Complement Negation. -// -// Forms: -// -// NOTQ m64 -// NOTQ r64 -// -// Construct and append a NOTQ instruction to the active function. -// Operates on the global context. -func NOTQ(mr operand.Op) { ctx.NOTQ(mr) } - -// NOTW: One's Complement Negation. -// -// Forms: -// -// NOTW m16 -// NOTW r16 -// -// Construct and append a NOTW instruction to the active function. -func (c *Context) NOTW(mr operand.Op) { - c.addinstruction(x86.NOTW(mr)) -} - -// NOTW: One's Complement Negation. -// -// Forms: -// -// NOTW m16 -// NOTW r16 -// -// Construct and append a NOTW instruction to the active function. -// Operates on the global context. -func NOTW(mr operand.Op) { ctx.NOTW(mr) } - -// ORB: Logical Inclusive OR. -// -// Forms: -// -// ORB imm8 al -// ORB imm8 m8 -// ORB imm8 r8 -// ORB m8 r8 -// ORB r8 m8 -// ORB r8 r8 -// -// Construct and append a ORB instruction to the active function. -func (c *Context) ORB(imr, amr operand.Op) { - c.addinstruction(x86.ORB(imr, amr)) -} - -// ORB: Logical Inclusive OR. -// -// Forms: -// -// ORB imm8 al -// ORB imm8 m8 -// ORB imm8 r8 -// ORB m8 r8 -// ORB r8 m8 -// ORB r8 r8 -// -// Construct and append a ORB instruction to the active function. -// Operates on the global context. -func ORB(imr, amr operand.Op) { ctx.ORB(imr, amr) } - -// ORL: Logical Inclusive OR. -// -// Forms: -// -// ORL imm32 eax -// ORL imm32 m32 -// ORL imm32 r32 -// ORL imm8 m32 -// ORL imm8 r32 -// ORL m32 r32 -// ORL r32 m32 -// ORL r32 r32 -// -// Construct and append a ORL instruction to the active function. -func (c *Context) ORL(imr, emr operand.Op) { - c.addinstruction(x86.ORL(imr, emr)) -} - -// ORL: Logical Inclusive OR. -// -// Forms: -// -// ORL imm32 eax -// ORL imm32 m32 -// ORL imm32 r32 -// ORL imm8 m32 -// ORL imm8 r32 -// ORL m32 r32 -// ORL r32 m32 -// ORL r32 r32 -// -// Construct and append a ORL instruction to the active function. -// Operates on the global context. -func ORL(imr, emr operand.Op) { ctx.ORL(imr, emr) } - -// ORPD: Bitwise Logical OR of Double-Precision Floating-Point Values. -// -// Forms: -// -// ORPD m128 xmm -// ORPD xmm xmm -// -// Construct and append a ORPD instruction to the active function. -func (c *Context) ORPD(mx, x operand.Op) { - c.addinstruction(x86.ORPD(mx, x)) -} - -// ORPD: Bitwise Logical OR of Double-Precision Floating-Point Values. -// -// Forms: -// -// ORPD m128 xmm -// ORPD xmm xmm -// -// Construct and append a ORPD instruction to the active function. -// Operates on the global context. -func ORPD(mx, x operand.Op) { ctx.ORPD(mx, x) } - -// ORPS: Bitwise Logical OR of Single-Precision Floating-Point Values. -// -// Forms: -// -// ORPS m128 xmm -// ORPS xmm xmm -// -// Construct and append a ORPS instruction to the active function. -func (c *Context) ORPS(mx, x operand.Op) { - c.addinstruction(x86.ORPS(mx, x)) -} - -// ORPS: Bitwise Logical OR of Single-Precision Floating-Point Values. -// -// Forms: -// -// ORPS m128 xmm -// ORPS xmm xmm -// -// Construct and append a ORPS instruction to the active function. -// Operates on the global context. -func ORPS(mx, x operand.Op) { ctx.ORPS(mx, x) } - -// ORQ: Logical Inclusive OR. -// -// Forms: -// -// ORQ imm32 m64 -// ORQ imm32 r64 -// ORQ imm32 rax -// ORQ imm8 m64 -// ORQ imm8 r64 -// ORQ m64 r64 -// ORQ r64 m64 -// ORQ r64 r64 -// -// Construct and append a ORQ instruction to the active function. -func (c *Context) ORQ(imr, mr operand.Op) { - c.addinstruction(x86.ORQ(imr, mr)) -} - -// ORQ: Logical Inclusive OR. -// -// Forms: -// -// ORQ imm32 m64 -// ORQ imm32 r64 -// ORQ imm32 rax -// ORQ imm8 m64 -// ORQ imm8 r64 -// ORQ m64 r64 -// ORQ r64 m64 -// ORQ r64 r64 -// -// Construct and append a ORQ instruction to the active function. -// Operates on the global context. -func ORQ(imr, mr operand.Op) { ctx.ORQ(imr, mr) } - -// ORW: Logical Inclusive OR. -// -// Forms: -// -// ORW imm16 ax -// ORW imm16 m16 -// ORW imm16 r16 -// ORW imm8 m16 -// ORW imm8 r16 -// ORW m16 r16 -// ORW r16 m16 -// ORW r16 r16 -// -// Construct and append a ORW instruction to the active function. -func (c *Context) ORW(imr, amr operand.Op) { - c.addinstruction(x86.ORW(imr, amr)) -} - -// ORW: Logical Inclusive OR. -// -// Forms: -// -// ORW imm16 ax -// ORW imm16 m16 -// ORW imm16 r16 -// ORW imm8 m16 -// ORW imm8 r16 -// ORW m16 r16 -// ORW r16 m16 -// ORW r16 r16 -// -// Construct and append a ORW instruction to the active function. -// Operates on the global context. -func ORW(imr, amr operand.Op) { ctx.ORW(imr, amr) } - -// PABSB: Packed Absolute Value of Byte Integers. -// -// Forms: -// -// PABSB m128 xmm -// PABSB xmm xmm -// -// Construct and append a PABSB instruction to the active function. -func (c *Context) PABSB(mx, x operand.Op) { - c.addinstruction(x86.PABSB(mx, x)) -} - -// PABSB: Packed Absolute Value of Byte Integers. -// -// Forms: -// -// PABSB m128 xmm -// PABSB xmm xmm -// -// Construct and append a PABSB instruction to the active function. -// Operates on the global context. -func PABSB(mx, x operand.Op) { ctx.PABSB(mx, x) } - -// PABSD: Packed Absolute Value of Doubleword Integers. -// -// Forms: -// -// PABSD m128 xmm -// PABSD xmm xmm -// -// Construct and append a PABSD instruction to the active function. -func (c *Context) PABSD(mx, x operand.Op) { - c.addinstruction(x86.PABSD(mx, x)) -} - -// PABSD: Packed Absolute Value of Doubleword Integers. -// -// Forms: -// -// PABSD m128 xmm -// PABSD xmm xmm -// -// Construct and append a PABSD instruction to the active function. -// Operates on the global context. -func PABSD(mx, x operand.Op) { ctx.PABSD(mx, x) } - -// PABSW: Packed Absolute Value of Word Integers. -// -// Forms: -// -// PABSW m128 xmm -// PABSW xmm xmm -// -// Construct and append a PABSW instruction to the active function. -func (c *Context) PABSW(mx, x operand.Op) { - c.addinstruction(x86.PABSW(mx, x)) -} - -// PABSW: Packed Absolute Value of Word Integers. -// -// Forms: -// -// PABSW m128 xmm -// PABSW xmm xmm -// -// Construct and append a PABSW instruction to the active function. -// Operates on the global context. -func PABSW(mx, x operand.Op) { ctx.PABSW(mx, x) } - -// PACKSSLW: Pack Doublewords into Words with Signed Saturation. -// -// Forms: -// -// PACKSSLW m128 xmm -// PACKSSLW xmm xmm -// -// Construct and append a PACKSSLW instruction to the active function. -func (c *Context) PACKSSLW(mx, x operand.Op) { - c.addinstruction(x86.PACKSSLW(mx, x)) -} - -// PACKSSLW: Pack Doublewords into Words with Signed Saturation. -// -// Forms: -// -// PACKSSLW m128 xmm -// PACKSSLW xmm xmm -// -// Construct and append a PACKSSLW instruction to the active function. -// Operates on the global context. -func PACKSSLW(mx, x operand.Op) { ctx.PACKSSLW(mx, x) } - -// PACKSSWB: Pack Words into Bytes with Signed Saturation. -// -// Forms: -// -// PACKSSWB m128 xmm -// PACKSSWB xmm xmm -// -// Construct and append a PACKSSWB instruction to the active function. -func (c *Context) PACKSSWB(mx, x operand.Op) { - c.addinstruction(x86.PACKSSWB(mx, x)) -} - -// PACKSSWB: Pack Words into Bytes with Signed Saturation. -// -// Forms: -// -// PACKSSWB m128 xmm -// PACKSSWB xmm xmm -// -// Construct and append a PACKSSWB instruction to the active function. -// Operates on the global context. -func PACKSSWB(mx, x operand.Op) { ctx.PACKSSWB(mx, x) } - -// PACKUSDW: Pack Doublewords into Words with Unsigned Saturation. -// -// Forms: -// -// PACKUSDW m128 xmm -// PACKUSDW xmm xmm -// -// Construct and append a PACKUSDW instruction to the active function. -func (c *Context) PACKUSDW(mx, x operand.Op) { - c.addinstruction(x86.PACKUSDW(mx, x)) -} - -// PACKUSDW: Pack Doublewords into Words with Unsigned Saturation. -// -// Forms: -// -// PACKUSDW m128 xmm -// PACKUSDW xmm xmm -// -// Construct and append a PACKUSDW instruction to the active function. -// Operates on the global context. -func PACKUSDW(mx, x operand.Op) { ctx.PACKUSDW(mx, x) } - -// PACKUSWB: Pack Words into Bytes with Unsigned Saturation. -// -// Forms: -// -// PACKUSWB m128 xmm -// PACKUSWB xmm xmm -// -// Construct and append a PACKUSWB instruction to the active function. -func (c *Context) PACKUSWB(mx, x operand.Op) { - c.addinstruction(x86.PACKUSWB(mx, x)) -} - -// PACKUSWB: Pack Words into Bytes with Unsigned Saturation. -// -// Forms: -// -// PACKUSWB m128 xmm -// PACKUSWB xmm xmm -// -// Construct and append a PACKUSWB instruction to the active function. -// Operates on the global context. -func PACKUSWB(mx, x operand.Op) { ctx.PACKUSWB(mx, x) } - -// PADDB: Add Packed Byte Integers. -// -// Forms: -// -// PADDB m128 xmm -// PADDB xmm xmm -// -// Construct and append a PADDB instruction to the active function. -func (c *Context) PADDB(mx, x operand.Op) { - c.addinstruction(x86.PADDB(mx, x)) -} - -// PADDB: Add Packed Byte Integers. -// -// Forms: -// -// PADDB m128 xmm -// PADDB xmm xmm -// -// Construct and append a PADDB instruction to the active function. -// Operates on the global context. -func PADDB(mx, x operand.Op) { ctx.PADDB(mx, x) } - -// PADDD: Add Packed Doubleword Integers. -// -// Forms: -// -// PADDD m128 xmm -// PADDD xmm xmm -// -// Construct and append a PADDD instruction to the active function. -func (c *Context) PADDD(mx, x operand.Op) { - c.addinstruction(x86.PADDD(mx, x)) -} - -// PADDD: Add Packed Doubleword Integers. -// -// Forms: -// -// PADDD m128 xmm -// PADDD xmm xmm -// -// Construct and append a PADDD instruction to the active function. -// Operates on the global context. -func PADDD(mx, x operand.Op) { ctx.PADDD(mx, x) } - -// PADDL: Add Packed Doubleword Integers. -// -// Forms: -// -// PADDL m128 xmm -// PADDL xmm xmm -// -// Construct and append a PADDL instruction to the active function. -func (c *Context) PADDL(mx, x operand.Op) { - c.addinstruction(x86.PADDL(mx, x)) -} - -// PADDL: Add Packed Doubleword Integers. -// -// Forms: -// -// PADDL m128 xmm -// PADDL xmm xmm -// -// Construct and append a PADDL instruction to the active function. -// Operates on the global context. -func PADDL(mx, x operand.Op) { ctx.PADDL(mx, x) } - -// PADDQ: Add Packed Quadword Integers. -// -// Forms: -// -// PADDQ m128 xmm -// PADDQ xmm xmm -// -// Construct and append a PADDQ instruction to the active function. -func (c *Context) PADDQ(mx, x operand.Op) { - c.addinstruction(x86.PADDQ(mx, x)) -} - -// PADDQ: Add Packed Quadword Integers. -// -// Forms: -// -// PADDQ m128 xmm -// PADDQ xmm xmm -// -// Construct and append a PADDQ instruction to the active function. -// Operates on the global context. -func PADDQ(mx, x operand.Op) { ctx.PADDQ(mx, x) } - -// PADDSB: Add Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// PADDSB m128 xmm -// PADDSB xmm xmm -// -// Construct and append a PADDSB instruction to the active function. -func (c *Context) PADDSB(mx, x operand.Op) { - c.addinstruction(x86.PADDSB(mx, x)) -} - -// PADDSB: Add Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// PADDSB m128 xmm -// PADDSB xmm xmm -// -// Construct and append a PADDSB instruction to the active function. -// Operates on the global context. -func PADDSB(mx, x operand.Op) { ctx.PADDSB(mx, x) } - -// PADDSW: Add Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PADDSW m128 xmm -// PADDSW xmm xmm -// -// Construct and append a PADDSW instruction to the active function. -func (c *Context) PADDSW(mx, x operand.Op) { - c.addinstruction(x86.PADDSW(mx, x)) -} - -// PADDSW: Add Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PADDSW m128 xmm -// PADDSW xmm xmm -// -// Construct and append a PADDSW instruction to the active function. -// Operates on the global context. -func PADDSW(mx, x operand.Op) { ctx.PADDSW(mx, x) } - -// PADDUSB: Add Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// PADDUSB m128 xmm -// PADDUSB xmm xmm -// -// Construct and append a PADDUSB instruction to the active function. -func (c *Context) PADDUSB(mx, x operand.Op) { - c.addinstruction(x86.PADDUSB(mx, x)) -} - -// PADDUSB: Add Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// PADDUSB m128 xmm -// PADDUSB xmm xmm -// -// Construct and append a PADDUSB instruction to the active function. -// Operates on the global context. -func PADDUSB(mx, x operand.Op) { ctx.PADDUSB(mx, x) } - -// PADDUSW: Add Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// PADDUSW m128 xmm -// PADDUSW xmm xmm -// -// Construct and append a PADDUSW instruction to the active function. -func (c *Context) PADDUSW(mx, x operand.Op) { - c.addinstruction(x86.PADDUSW(mx, x)) -} - -// PADDUSW: Add Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// PADDUSW m128 xmm -// PADDUSW xmm xmm -// -// Construct and append a PADDUSW instruction to the active function. -// Operates on the global context. -func PADDUSW(mx, x operand.Op) { ctx.PADDUSW(mx, x) } - -// PADDW: Add Packed Word Integers. -// -// Forms: -// -// PADDW m128 xmm -// PADDW xmm xmm -// -// Construct and append a PADDW instruction to the active function. -func (c *Context) PADDW(mx, x operand.Op) { - c.addinstruction(x86.PADDW(mx, x)) -} - -// PADDW: Add Packed Word Integers. -// -// Forms: -// -// PADDW m128 xmm -// PADDW xmm xmm -// -// Construct and append a PADDW instruction to the active function. -// Operates on the global context. -func PADDW(mx, x operand.Op) { ctx.PADDW(mx, x) } - -// PALIGNR: Packed Align Right. -// -// Forms: -// -// PALIGNR imm8 m128 xmm -// PALIGNR imm8 xmm xmm -// -// Construct and append a PALIGNR instruction to the active function. -func (c *Context) PALIGNR(i, mx, x operand.Op) { - c.addinstruction(x86.PALIGNR(i, mx, x)) -} - -// PALIGNR: Packed Align Right. -// -// Forms: -// -// PALIGNR imm8 m128 xmm -// PALIGNR imm8 xmm xmm -// -// Construct and append a PALIGNR instruction to the active function. -// Operates on the global context. -func PALIGNR(i, mx, x operand.Op) { ctx.PALIGNR(i, mx, x) } - -// PAND: Packed Bitwise Logical AND. -// -// Forms: -// -// PAND m128 xmm -// PAND xmm xmm -// -// Construct and append a PAND instruction to the active function. -func (c *Context) PAND(mx, x operand.Op) { - c.addinstruction(x86.PAND(mx, x)) -} - -// PAND: Packed Bitwise Logical AND. -// -// Forms: -// -// PAND m128 xmm -// PAND xmm xmm -// -// Construct and append a PAND instruction to the active function. -// Operates on the global context. -func PAND(mx, x operand.Op) { ctx.PAND(mx, x) } - -// PANDN: Packed Bitwise Logical AND NOT. -// -// Forms: -// -// PANDN m128 xmm -// PANDN xmm xmm -// -// Construct and append a PANDN instruction to the active function. -func (c *Context) PANDN(mx, x operand.Op) { - c.addinstruction(x86.PANDN(mx, x)) -} - -// PANDN: Packed Bitwise Logical AND NOT. -// -// Forms: -// -// PANDN m128 xmm -// PANDN xmm xmm -// -// Construct and append a PANDN instruction to the active function. -// Operates on the global context. -func PANDN(mx, x operand.Op) { ctx.PANDN(mx, x) } - -// PAUSE: Spin Loop Hint. -// -// Forms: -// -// PAUSE -// -// Construct and append a PAUSE instruction to the active function. -func (c *Context) PAUSE() { - c.addinstruction(x86.PAUSE()) -} - -// PAUSE: Spin Loop Hint. -// -// Forms: -// -// PAUSE -// -// Construct and append a PAUSE instruction to the active function. -// Operates on the global context. -func PAUSE() { ctx.PAUSE() } - -// PAVGB: Average Packed Byte Integers. -// -// Forms: -// -// PAVGB m128 xmm -// PAVGB xmm xmm -// -// Construct and append a PAVGB instruction to the active function. -func (c *Context) PAVGB(mx, x operand.Op) { - c.addinstruction(x86.PAVGB(mx, x)) -} - -// PAVGB: Average Packed Byte Integers. -// -// Forms: -// -// PAVGB m128 xmm -// PAVGB xmm xmm -// -// Construct and append a PAVGB instruction to the active function. -// Operates on the global context. -func PAVGB(mx, x operand.Op) { ctx.PAVGB(mx, x) } - -// PAVGW: Average Packed Word Integers. -// -// Forms: -// -// PAVGW m128 xmm -// PAVGW xmm xmm -// -// Construct and append a PAVGW instruction to the active function. -func (c *Context) PAVGW(mx, x operand.Op) { - c.addinstruction(x86.PAVGW(mx, x)) -} - -// PAVGW: Average Packed Word Integers. -// -// Forms: -// -// PAVGW m128 xmm -// PAVGW xmm xmm -// -// Construct and append a PAVGW instruction to the active function. -// Operates on the global context. -func PAVGW(mx, x operand.Op) { ctx.PAVGW(mx, x) } - -// PBLENDVB: Variable Blend Packed Bytes. -// -// Forms: -// -// PBLENDVB xmm0 m128 xmm -// PBLENDVB xmm0 xmm xmm -// -// Construct and append a PBLENDVB instruction to the active function. -func (c *Context) PBLENDVB(x, mx, x1 operand.Op) { - c.addinstruction(x86.PBLENDVB(x, mx, x1)) -} - -// PBLENDVB: Variable Blend Packed Bytes. -// -// Forms: -// -// PBLENDVB xmm0 m128 xmm -// PBLENDVB xmm0 xmm xmm -// -// Construct and append a PBLENDVB instruction to the active function. -// Operates on the global context. -func PBLENDVB(x, mx, x1 operand.Op) { ctx.PBLENDVB(x, mx, x1) } - -// PBLENDW: Blend Packed Words. -// -// Forms: -// -// PBLENDW imm8 m128 xmm -// PBLENDW imm8 xmm xmm -// -// Construct and append a PBLENDW instruction to the active function. -func (c *Context) PBLENDW(i, mx, x operand.Op) { - c.addinstruction(x86.PBLENDW(i, mx, x)) -} - -// PBLENDW: Blend Packed Words. -// -// Forms: -// -// PBLENDW imm8 m128 xmm -// PBLENDW imm8 xmm xmm -// -// Construct and append a PBLENDW instruction to the active function. -// Operates on the global context. -func PBLENDW(i, mx, x operand.Op) { ctx.PBLENDW(i, mx, x) } - -// PCLMULQDQ: Carry-Less Quadword Multiplication. -// -// Forms: -// -// PCLMULQDQ imm8 m128 xmm -// PCLMULQDQ imm8 xmm xmm -// -// Construct and append a PCLMULQDQ instruction to the active function. -func (c *Context) PCLMULQDQ(i, mx, x operand.Op) { - c.addinstruction(x86.PCLMULQDQ(i, mx, x)) -} - -// PCLMULQDQ: Carry-Less Quadword Multiplication. -// -// Forms: -// -// PCLMULQDQ imm8 m128 xmm -// PCLMULQDQ imm8 xmm xmm -// -// Construct and append a PCLMULQDQ instruction to the active function. -// Operates on the global context. -func PCLMULQDQ(i, mx, x operand.Op) { ctx.PCLMULQDQ(i, mx, x) } - -// PCMPEQB: Compare Packed Byte Data for Equality. -// -// Forms: -// -// PCMPEQB m128 xmm -// PCMPEQB xmm xmm -// -// Construct and append a PCMPEQB instruction to the active function. -func (c *Context) PCMPEQB(mx, x operand.Op) { - c.addinstruction(x86.PCMPEQB(mx, x)) -} - -// PCMPEQB: Compare Packed Byte Data for Equality. -// -// Forms: -// -// PCMPEQB m128 xmm -// PCMPEQB xmm xmm -// -// Construct and append a PCMPEQB instruction to the active function. -// Operates on the global context. -func PCMPEQB(mx, x operand.Op) { ctx.PCMPEQB(mx, x) } - -// PCMPEQL: Compare Packed Doubleword Data for Equality. -// -// Forms: -// -// PCMPEQL m128 xmm -// PCMPEQL xmm xmm -// -// Construct and append a PCMPEQL instruction to the active function. -func (c *Context) PCMPEQL(mx, x operand.Op) { - c.addinstruction(x86.PCMPEQL(mx, x)) -} - -// PCMPEQL: Compare Packed Doubleword Data for Equality. -// -// Forms: -// -// PCMPEQL m128 xmm -// PCMPEQL xmm xmm -// -// Construct and append a PCMPEQL instruction to the active function. -// Operates on the global context. -func PCMPEQL(mx, x operand.Op) { ctx.PCMPEQL(mx, x) } - -// PCMPEQQ: Compare Packed Quadword Data for Equality. -// -// Forms: -// -// PCMPEQQ m128 xmm -// PCMPEQQ xmm xmm -// -// Construct and append a PCMPEQQ instruction to the active function. -func (c *Context) PCMPEQQ(mx, x operand.Op) { - c.addinstruction(x86.PCMPEQQ(mx, x)) -} - -// PCMPEQQ: Compare Packed Quadword Data for Equality. -// -// Forms: -// -// PCMPEQQ m128 xmm -// PCMPEQQ xmm xmm -// -// Construct and append a PCMPEQQ instruction to the active function. -// Operates on the global context. -func PCMPEQQ(mx, x operand.Op) { ctx.PCMPEQQ(mx, x) } - -// PCMPEQW: Compare Packed Word Data for Equality. -// -// Forms: -// -// PCMPEQW m128 xmm -// PCMPEQW xmm xmm -// -// Construct and append a PCMPEQW instruction to the active function. -func (c *Context) PCMPEQW(mx, x operand.Op) { - c.addinstruction(x86.PCMPEQW(mx, x)) -} - -// PCMPEQW: Compare Packed Word Data for Equality. -// -// Forms: -// -// PCMPEQW m128 xmm -// PCMPEQW xmm xmm -// -// Construct and append a PCMPEQW instruction to the active function. -// Operates on the global context. -func PCMPEQW(mx, x operand.Op) { ctx.PCMPEQW(mx, x) } - -// PCMPESTRI: Packed Compare Explicit Length Strings, Return Index. -// -// Forms: -// -// PCMPESTRI imm8 m128 xmm -// PCMPESTRI imm8 xmm xmm -// -// Construct and append a PCMPESTRI instruction to the active function. -func (c *Context) PCMPESTRI(i, mx, x operand.Op) { - c.addinstruction(x86.PCMPESTRI(i, mx, x)) -} - -// PCMPESTRI: Packed Compare Explicit Length Strings, Return Index. -// -// Forms: -// -// PCMPESTRI imm8 m128 xmm -// PCMPESTRI imm8 xmm xmm -// -// Construct and append a PCMPESTRI instruction to the active function. -// Operates on the global context. -func PCMPESTRI(i, mx, x operand.Op) { ctx.PCMPESTRI(i, mx, x) } - -// PCMPESTRM: Packed Compare Explicit Length Strings, Return Mask. -// -// Forms: -// -// PCMPESTRM imm8 m128 xmm -// PCMPESTRM imm8 xmm xmm -// -// Construct and append a PCMPESTRM instruction to the active function. -func (c *Context) PCMPESTRM(i, mx, x operand.Op) { - c.addinstruction(x86.PCMPESTRM(i, mx, x)) -} - -// PCMPESTRM: Packed Compare Explicit Length Strings, Return Mask. -// -// Forms: -// -// PCMPESTRM imm8 m128 xmm -// PCMPESTRM imm8 xmm xmm -// -// Construct and append a PCMPESTRM instruction to the active function. -// Operates on the global context. -func PCMPESTRM(i, mx, x operand.Op) { ctx.PCMPESTRM(i, mx, x) } - -// PCMPGTB: Compare Packed Signed Byte Integers for Greater Than. -// -// Forms: -// -// PCMPGTB m128 xmm -// PCMPGTB xmm xmm -// -// Construct and append a PCMPGTB instruction to the active function. -func (c *Context) PCMPGTB(mx, x operand.Op) { - c.addinstruction(x86.PCMPGTB(mx, x)) -} - -// PCMPGTB: Compare Packed Signed Byte Integers for Greater Than. -// -// Forms: -// -// PCMPGTB m128 xmm -// PCMPGTB xmm xmm -// -// Construct and append a PCMPGTB instruction to the active function. -// Operates on the global context. -func PCMPGTB(mx, x operand.Op) { ctx.PCMPGTB(mx, x) } - -// PCMPGTL: Compare Packed Signed Doubleword Integers for Greater Than. -// -// Forms: -// -// PCMPGTL m128 xmm -// PCMPGTL xmm xmm -// -// Construct and append a PCMPGTL instruction to the active function. -func (c *Context) PCMPGTL(mx, x operand.Op) { - c.addinstruction(x86.PCMPGTL(mx, x)) -} - -// PCMPGTL: Compare Packed Signed Doubleword Integers for Greater Than. -// -// Forms: -// -// PCMPGTL m128 xmm -// PCMPGTL xmm xmm -// -// Construct and append a PCMPGTL instruction to the active function. -// Operates on the global context. -func PCMPGTL(mx, x operand.Op) { ctx.PCMPGTL(mx, x) } - -// PCMPGTQ: Compare Packed Data for Greater Than. -// -// Forms: -// -// PCMPGTQ m128 xmm -// PCMPGTQ xmm xmm -// -// Construct and append a PCMPGTQ instruction to the active function. -func (c *Context) PCMPGTQ(mx, x operand.Op) { - c.addinstruction(x86.PCMPGTQ(mx, x)) -} - -// PCMPGTQ: Compare Packed Data for Greater Than. -// -// Forms: -// -// PCMPGTQ m128 xmm -// PCMPGTQ xmm xmm -// -// Construct and append a PCMPGTQ instruction to the active function. -// Operates on the global context. -func PCMPGTQ(mx, x operand.Op) { ctx.PCMPGTQ(mx, x) } - -// PCMPGTW: Compare Packed Signed Word Integers for Greater Than. -// -// Forms: -// -// PCMPGTW m128 xmm -// PCMPGTW xmm xmm -// -// Construct and append a PCMPGTW instruction to the active function. -func (c *Context) PCMPGTW(mx, x operand.Op) { - c.addinstruction(x86.PCMPGTW(mx, x)) -} - -// PCMPGTW: Compare Packed Signed Word Integers for Greater Than. -// -// Forms: -// -// PCMPGTW m128 xmm -// PCMPGTW xmm xmm -// -// Construct and append a PCMPGTW instruction to the active function. -// Operates on the global context. -func PCMPGTW(mx, x operand.Op) { ctx.PCMPGTW(mx, x) } - -// PCMPISTRI: Packed Compare Implicit Length Strings, Return Index. -// -// Forms: -// -// PCMPISTRI imm8 m128 xmm -// PCMPISTRI imm8 xmm xmm -// -// Construct and append a PCMPISTRI instruction to the active function. -func (c *Context) PCMPISTRI(i, mx, x operand.Op) { - c.addinstruction(x86.PCMPISTRI(i, mx, x)) -} - -// PCMPISTRI: Packed Compare Implicit Length Strings, Return Index. -// -// Forms: -// -// PCMPISTRI imm8 m128 xmm -// PCMPISTRI imm8 xmm xmm -// -// Construct and append a PCMPISTRI instruction to the active function. -// Operates on the global context. -func PCMPISTRI(i, mx, x operand.Op) { ctx.PCMPISTRI(i, mx, x) } - -// PCMPISTRM: Packed Compare Implicit Length Strings, Return Mask. -// -// Forms: -// -// PCMPISTRM imm8 m128 xmm -// PCMPISTRM imm8 xmm xmm -// -// Construct and append a PCMPISTRM instruction to the active function. -func (c *Context) PCMPISTRM(i, mx, x operand.Op) { - c.addinstruction(x86.PCMPISTRM(i, mx, x)) -} - -// PCMPISTRM: Packed Compare Implicit Length Strings, Return Mask. -// -// Forms: -// -// PCMPISTRM imm8 m128 xmm -// PCMPISTRM imm8 xmm xmm -// -// Construct and append a PCMPISTRM instruction to the active function. -// Operates on the global context. -func PCMPISTRM(i, mx, x operand.Op) { ctx.PCMPISTRM(i, mx, x) } - -// PDEPL: Parallel Bits Deposit. -// -// Forms: -// -// PDEPL m32 r32 r32 -// PDEPL r32 r32 r32 -// -// Construct and append a PDEPL instruction to the active function. -func (c *Context) PDEPL(mr, r, r1 operand.Op) { - c.addinstruction(x86.PDEPL(mr, r, r1)) -} - -// PDEPL: Parallel Bits Deposit. -// -// Forms: -// -// PDEPL m32 r32 r32 -// PDEPL r32 r32 r32 -// -// Construct and append a PDEPL instruction to the active function. -// Operates on the global context. -func PDEPL(mr, r, r1 operand.Op) { ctx.PDEPL(mr, r, r1) } - -// PDEPQ: Parallel Bits Deposit. -// -// Forms: -// -// PDEPQ m64 r64 r64 -// PDEPQ r64 r64 r64 -// -// Construct and append a PDEPQ instruction to the active function. -func (c *Context) PDEPQ(mr, r, r1 operand.Op) { - c.addinstruction(x86.PDEPQ(mr, r, r1)) -} - -// PDEPQ: Parallel Bits Deposit. -// -// Forms: -// -// PDEPQ m64 r64 r64 -// PDEPQ r64 r64 r64 -// -// Construct and append a PDEPQ instruction to the active function. -// Operates on the global context. -func PDEPQ(mr, r, r1 operand.Op) { ctx.PDEPQ(mr, r, r1) } - -// PEXTL: Parallel Bits Extract. -// -// Forms: -// -// PEXTL m32 r32 r32 -// PEXTL r32 r32 r32 -// -// Construct and append a PEXTL instruction to the active function. -func (c *Context) PEXTL(mr, r, r1 operand.Op) { - c.addinstruction(x86.PEXTL(mr, r, r1)) -} - -// PEXTL: Parallel Bits Extract. -// -// Forms: -// -// PEXTL m32 r32 r32 -// PEXTL r32 r32 r32 -// -// Construct and append a PEXTL instruction to the active function. -// Operates on the global context. -func PEXTL(mr, r, r1 operand.Op) { ctx.PEXTL(mr, r, r1) } - -// PEXTQ: Parallel Bits Extract. -// -// Forms: -// -// PEXTQ m64 r64 r64 -// PEXTQ r64 r64 r64 -// -// Construct and append a PEXTQ instruction to the active function. -func (c *Context) PEXTQ(mr, r, r1 operand.Op) { - c.addinstruction(x86.PEXTQ(mr, r, r1)) -} - -// PEXTQ: Parallel Bits Extract. -// -// Forms: -// -// PEXTQ m64 r64 r64 -// PEXTQ r64 r64 r64 -// -// Construct and append a PEXTQ instruction to the active function. -// Operates on the global context. -func PEXTQ(mr, r, r1 operand.Op) { ctx.PEXTQ(mr, r, r1) } - -// PEXTRB: Extract Byte. -// -// Forms: -// -// PEXTRB imm8 xmm m8 -// PEXTRB imm8 xmm r32 -// -// Construct and append a PEXTRB instruction to the active function. -func (c *Context) PEXTRB(i, x, mr operand.Op) { - c.addinstruction(x86.PEXTRB(i, x, mr)) -} - -// PEXTRB: Extract Byte. -// -// Forms: -// -// PEXTRB imm8 xmm m8 -// PEXTRB imm8 xmm r32 -// -// Construct and append a PEXTRB instruction to the active function. -// Operates on the global context. -func PEXTRB(i, x, mr operand.Op) { ctx.PEXTRB(i, x, mr) } - -// PEXTRD: Extract Doubleword. -// -// Forms: -// -// PEXTRD imm8 xmm m32 -// PEXTRD imm8 xmm r32 -// -// Construct and append a PEXTRD instruction to the active function. -func (c *Context) PEXTRD(i, x, mr operand.Op) { - c.addinstruction(x86.PEXTRD(i, x, mr)) -} - -// PEXTRD: Extract Doubleword. -// -// Forms: -// -// PEXTRD imm8 xmm m32 -// PEXTRD imm8 xmm r32 -// -// Construct and append a PEXTRD instruction to the active function. -// Operates on the global context. -func PEXTRD(i, x, mr operand.Op) { ctx.PEXTRD(i, x, mr) } - -// PEXTRQ: Extract Quadword. -// -// Forms: -// -// PEXTRQ imm8 xmm m64 -// PEXTRQ imm8 xmm r64 -// -// Construct and append a PEXTRQ instruction to the active function. -func (c *Context) PEXTRQ(i, x, mr operand.Op) { - c.addinstruction(x86.PEXTRQ(i, x, mr)) -} - -// PEXTRQ: Extract Quadword. -// -// Forms: -// -// PEXTRQ imm8 xmm m64 -// PEXTRQ imm8 xmm r64 -// -// Construct and append a PEXTRQ instruction to the active function. -// Operates on the global context. -func PEXTRQ(i, x, mr operand.Op) { ctx.PEXTRQ(i, x, mr) } - -// PEXTRW: Extract Word. -// -// Forms: -// -// PEXTRW imm8 xmm m16 -// PEXTRW imm8 xmm r32 -// -// Construct and append a PEXTRW instruction to the active function. -func (c *Context) PEXTRW(i, x, mr operand.Op) { - c.addinstruction(x86.PEXTRW(i, x, mr)) -} - -// PEXTRW: Extract Word. -// -// Forms: -// -// PEXTRW imm8 xmm m16 -// PEXTRW imm8 xmm r32 -// -// Construct and append a PEXTRW instruction to the active function. -// Operates on the global context. -func PEXTRW(i, x, mr operand.Op) { ctx.PEXTRW(i, x, mr) } - -// PHADDD: Packed Horizontal Add Doubleword Integer. -// -// Forms: -// -// PHADDD m128 xmm -// PHADDD xmm xmm -// -// Construct and append a PHADDD instruction to the active function. -func (c *Context) PHADDD(mx, x operand.Op) { - c.addinstruction(x86.PHADDD(mx, x)) -} - -// PHADDD: Packed Horizontal Add Doubleword Integer. -// -// Forms: -// -// PHADDD m128 xmm -// PHADDD xmm xmm -// -// Construct and append a PHADDD instruction to the active function. -// Operates on the global context. -func PHADDD(mx, x operand.Op) { ctx.PHADDD(mx, x) } - -// PHADDSW: Packed Horizontal Add Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PHADDSW m128 xmm -// PHADDSW xmm xmm -// -// Construct and append a PHADDSW instruction to the active function. -func (c *Context) PHADDSW(mx, x operand.Op) { - c.addinstruction(x86.PHADDSW(mx, x)) -} - -// PHADDSW: Packed Horizontal Add Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PHADDSW m128 xmm -// PHADDSW xmm xmm -// -// Construct and append a PHADDSW instruction to the active function. -// Operates on the global context. -func PHADDSW(mx, x operand.Op) { ctx.PHADDSW(mx, x) } - -// PHADDW: Packed Horizontal Add Word Integers. -// -// Forms: -// -// PHADDW m128 xmm -// PHADDW xmm xmm -// -// Construct and append a PHADDW instruction to the active function. -func (c *Context) PHADDW(mx, x operand.Op) { - c.addinstruction(x86.PHADDW(mx, x)) -} - -// PHADDW: Packed Horizontal Add Word Integers. -// -// Forms: -// -// PHADDW m128 xmm -// PHADDW xmm xmm -// -// Construct and append a PHADDW instruction to the active function. -// Operates on the global context. -func PHADDW(mx, x operand.Op) { ctx.PHADDW(mx, x) } - -// PHMINPOSUW: Packed Horizontal Minimum of Unsigned Word Integers. -// -// Forms: -// -// PHMINPOSUW m128 xmm -// PHMINPOSUW xmm xmm -// -// Construct and append a PHMINPOSUW instruction to the active function. -func (c *Context) PHMINPOSUW(mx, x operand.Op) { - c.addinstruction(x86.PHMINPOSUW(mx, x)) -} - -// PHMINPOSUW: Packed Horizontal Minimum of Unsigned Word Integers. -// -// Forms: -// -// PHMINPOSUW m128 xmm -// PHMINPOSUW xmm xmm -// -// Construct and append a PHMINPOSUW instruction to the active function. -// Operates on the global context. -func PHMINPOSUW(mx, x operand.Op) { ctx.PHMINPOSUW(mx, x) } - -// PHSUBD: Packed Horizontal Subtract Doubleword Integers. -// -// Forms: -// -// PHSUBD m128 xmm -// PHSUBD xmm xmm -// -// Construct and append a PHSUBD instruction to the active function. -func (c *Context) PHSUBD(mx, x operand.Op) { - c.addinstruction(x86.PHSUBD(mx, x)) -} - -// PHSUBD: Packed Horizontal Subtract Doubleword Integers. -// -// Forms: -// -// PHSUBD m128 xmm -// PHSUBD xmm xmm -// -// Construct and append a PHSUBD instruction to the active function. -// Operates on the global context. -func PHSUBD(mx, x operand.Op) { ctx.PHSUBD(mx, x) } - -// PHSUBSW: Packed Horizontal Subtract Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PHSUBSW m128 xmm -// PHSUBSW xmm xmm -// -// Construct and append a PHSUBSW instruction to the active function. -func (c *Context) PHSUBSW(mx, x operand.Op) { - c.addinstruction(x86.PHSUBSW(mx, x)) -} - -// PHSUBSW: Packed Horizontal Subtract Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PHSUBSW m128 xmm -// PHSUBSW xmm xmm -// -// Construct and append a PHSUBSW instruction to the active function. -// Operates on the global context. -func PHSUBSW(mx, x operand.Op) { ctx.PHSUBSW(mx, x) } - -// PHSUBW: Packed Horizontal Subtract Word Integers. -// -// Forms: -// -// PHSUBW m128 xmm -// PHSUBW xmm xmm -// -// Construct and append a PHSUBW instruction to the active function. -func (c *Context) PHSUBW(mx, x operand.Op) { - c.addinstruction(x86.PHSUBW(mx, x)) -} - -// PHSUBW: Packed Horizontal Subtract Word Integers. -// -// Forms: -// -// PHSUBW m128 xmm -// PHSUBW xmm xmm -// -// Construct and append a PHSUBW instruction to the active function. -// Operates on the global context. -func PHSUBW(mx, x operand.Op) { ctx.PHSUBW(mx, x) } - -// PINSRB: Insert Byte. -// -// Forms: -// -// PINSRB imm8 m8 xmm -// PINSRB imm8 r32 xmm -// -// Construct and append a PINSRB instruction to the active function. -func (c *Context) PINSRB(i, mr, x operand.Op) { - c.addinstruction(x86.PINSRB(i, mr, x)) -} - -// PINSRB: Insert Byte. -// -// Forms: -// -// PINSRB imm8 m8 xmm -// PINSRB imm8 r32 xmm -// -// Construct and append a PINSRB instruction to the active function. -// Operates on the global context. -func PINSRB(i, mr, x operand.Op) { ctx.PINSRB(i, mr, x) } - -// PINSRD: Insert Doubleword. -// -// Forms: -// -// PINSRD imm8 m32 xmm -// PINSRD imm8 r32 xmm -// -// Construct and append a PINSRD instruction to the active function. -func (c *Context) PINSRD(i, mr, x operand.Op) { - c.addinstruction(x86.PINSRD(i, mr, x)) -} - -// PINSRD: Insert Doubleword. -// -// Forms: -// -// PINSRD imm8 m32 xmm -// PINSRD imm8 r32 xmm -// -// Construct and append a PINSRD instruction to the active function. -// Operates on the global context. -func PINSRD(i, mr, x operand.Op) { ctx.PINSRD(i, mr, x) } - -// PINSRQ: Insert Quadword. -// -// Forms: -// -// PINSRQ imm8 m64 xmm -// PINSRQ imm8 r64 xmm -// -// Construct and append a PINSRQ instruction to the active function. -func (c *Context) PINSRQ(i, mr, x operand.Op) { - c.addinstruction(x86.PINSRQ(i, mr, x)) -} - -// PINSRQ: Insert Quadword. -// -// Forms: -// -// PINSRQ imm8 m64 xmm -// PINSRQ imm8 r64 xmm -// -// Construct and append a PINSRQ instruction to the active function. -// Operates on the global context. -func PINSRQ(i, mr, x operand.Op) { ctx.PINSRQ(i, mr, x) } - -// PINSRW: Insert Word. -// -// Forms: -// -// PINSRW imm8 m16 xmm -// PINSRW imm8 r32 xmm -// -// Construct and append a PINSRW instruction to the active function. -func (c *Context) PINSRW(i, mr, x operand.Op) { - c.addinstruction(x86.PINSRW(i, mr, x)) -} - -// PINSRW: Insert Word. -// -// Forms: -// -// PINSRW imm8 m16 xmm -// PINSRW imm8 r32 xmm -// -// Construct and append a PINSRW instruction to the active function. -// Operates on the global context. -func PINSRW(i, mr, x operand.Op) { ctx.PINSRW(i, mr, x) } - -// PMADDUBSW: Multiply and Add Packed Signed and Unsigned Byte Integers. -// -// Forms: -// -// PMADDUBSW m128 xmm -// PMADDUBSW xmm xmm -// -// Construct and append a PMADDUBSW instruction to the active function. -func (c *Context) PMADDUBSW(mx, x operand.Op) { - c.addinstruction(x86.PMADDUBSW(mx, x)) -} - -// PMADDUBSW: Multiply and Add Packed Signed and Unsigned Byte Integers. -// -// Forms: -// -// PMADDUBSW m128 xmm -// PMADDUBSW xmm xmm -// -// Construct and append a PMADDUBSW instruction to the active function. -// Operates on the global context. -func PMADDUBSW(mx, x operand.Op) { ctx.PMADDUBSW(mx, x) } - -// PMADDWL: Multiply and Add Packed Signed Word Integers. -// -// Forms: -// -// PMADDWL m128 xmm -// PMADDWL xmm xmm -// -// Construct and append a PMADDWL instruction to the active function. -func (c *Context) PMADDWL(mx, x operand.Op) { - c.addinstruction(x86.PMADDWL(mx, x)) -} - -// PMADDWL: Multiply and Add Packed Signed Word Integers. -// -// Forms: -// -// PMADDWL m128 xmm -// PMADDWL xmm xmm -// -// Construct and append a PMADDWL instruction to the active function. -// Operates on the global context. -func PMADDWL(mx, x operand.Op) { ctx.PMADDWL(mx, x) } - -// PMAXSB: Maximum of Packed Signed Byte Integers. -// -// Forms: -// -// PMAXSB m128 xmm -// PMAXSB xmm xmm -// -// Construct and append a PMAXSB instruction to the active function. -func (c *Context) PMAXSB(mx, x operand.Op) { - c.addinstruction(x86.PMAXSB(mx, x)) -} - -// PMAXSB: Maximum of Packed Signed Byte Integers. -// -// Forms: -// -// PMAXSB m128 xmm -// PMAXSB xmm xmm -// -// Construct and append a PMAXSB instruction to the active function. -// Operates on the global context. -func PMAXSB(mx, x operand.Op) { ctx.PMAXSB(mx, x) } - -// PMAXSD: Maximum of Packed Signed Doubleword Integers. -// -// Forms: -// -// PMAXSD m128 xmm -// PMAXSD xmm xmm -// -// Construct and append a PMAXSD instruction to the active function. -func (c *Context) PMAXSD(mx, x operand.Op) { - c.addinstruction(x86.PMAXSD(mx, x)) -} - -// PMAXSD: Maximum of Packed Signed Doubleword Integers. -// -// Forms: -// -// PMAXSD m128 xmm -// PMAXSD xmm xmm -// -// Construct and append a PMAXSD instruction to the active function. -// Operates on the global context. -func PMAXSD(mx, x operand.Op) { ctx.PMAXSD(mx, x) } - -// PMAXSW: Maximum of Packed Signed Word Integers. -// -// Forms: -// -// PMAXSW m128 xmm -// PMAXSW xmm xmm -// -// Construct and append a PMAXSW instruction to the active function. -func (c *Context) PMAXSW(mx, x operand.Op) { - c.addinstruction(x86.PMAXSW(mx, x)) -} - -// PMAXSW: Maximum of Packed Signed Word Integers. -// -// Forms: -// -// PMAXSW m128 xmm -// PMAXSW xmm xmm -// -// Construct and append a PMAXSW instruction to the active function. -// Operates on the global context. -func PMAXSW(mx, x operand.Op) { ctx.PMAXSW(mx, x) } - -// PMAXUB: Maximum of Packed Unsigned Byte Integers. -// -// Forms: -// -// PMAXUB m128 xmm -// PMAXUB xmm xmm -// -// Construct and append a PMAXUB instruction to the active function. -func (c *Context) PMAXUB(mx, x operand.Op) { - c.addinstruction(x86.PMAXUB(mx, x)) -} - -// PMAXUB: Maximum of Packed Unsigned Byte Integers. -// -// Forms: -// -// PMAXUB m128 xmm -// PMAXUB xmm xmm -// -// Construct and append a PMAXUB instruction to the active function. -// Operates on the global context. -func PMAXUB(mx, x operand.Op) { ctx.PMAXUB(mx, x) } - -// PMAXUD: Maximum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// PMAXUD m128 xmm -// PMAXUD xmm xmm -// -// Construct and append a PMAXUD instruction to the active function. -func (c *Context) PMAXUD(mx, x operand.Op) { - c.addinstruction(x86.PMAXUD(mx, x)) -} - -// PMAXUD: Maximum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// PMAXUD m128 xmm -// PMAXUD xmm xmm -// -// Construct and append a PMAXUD instruction to the active function. -// Operates on the global context. -func PMAXUD(mx, x operand.Op) { ctx.PMAXUD(mx, x) } - -// PMAXUW: Maximum of Packed Unsigned Word Integers. -// -// Forms: -// -// PMAXUW m128 xmm -// PMAXUW xmm xmm -// -// Construct and append a PMAXUW instruction to the active function. -func (c *Context) PMAXUW(mx, x operand.Op) { - c.addinstruction(x86.PMAXUW(mx, x)) -} - -// PMAXUW: Maximum of Packed Unsigned Word Integers. -// -// Forms: -// -// PMAXUW m128 xmm -// PMAXUW xmm xmm -// -// Construct and append a PMAXUW instruction to the active function. -// Operates on the global context. -func PMAXUW(mx, x operand.Op) { ctx.PMAXUW(mx, x) } - -// PMINSB: Minimum of Packed Signed Byte Integers. -// -// Forms: -// -// PMINSB m128 xmm -// PMINSB xmm xmm -// -// Construct and append a PMINSB instruction to the active function. -func (c *Context) PMINSB(mx, x operand.Op) { - c.addinstruction(x86.PMINSB(mx, x)) -} - -// PMINSB: Minimum of Packed Signed Byte Integers. -// -// Forms: -// -// PMINSB m128 xmm -// PMINSB xmm xmm -// -// Construct and append a PMINSB instruction to the active function. -// Operates on the global context. -func PMINSB(mx, x operand.Op) { ctx.PMINSB(mx, x) } - -// PMINSD: Minimum of Packed Signed Doubleword Integers. -// -// Forms: -// -// PMINSD m128 xmm -// PMINSD xmm xmm -// -// Construct and append a PMINSD instruction to the active function. -func (c *Context) PMINSD(mx, x operand.Op) { - c.addinstruction(x86.PMINSD(mx, x)) -} - -// PMINSD: Minimum of Packed Signed Doubleword Integers. -// -// Forms: -// -// PMINSD m128 xmm -// PMINSD xmm xmm -// -// Construct and append a PMINSD instruction to the active function. -// Operates on the global context. -func PMINSD(mx, x operand.Op) { ctx.PMINSD(mx, x) } - -// PMINSW: Minimum of Packed Signed Word Integers. -// -// Forms: -// -// PMINSW m128 xmm -// PMINSW xmm xmm -// -// Construct and append a PMINSW instruction to the active function. -func (c *Context) PMINSW(mx, x operand.Op) { - c.addinstruction(x86.PMINSW(mx, x)) -} - -// PMINSW: Minimum of Packed Signed Word Integers. -// -// Forms: -// -// PMINSW m128 xmm -// PMINSW xmm xmm -// -// Construct and append a PMINSW instruction to the active function. -// Operates on the global context. -func PMINSW(mx, x operand.Op) { ctx.PMINSW(mx, x) } - -// PMINUB: Minimum of Packed Unsigned Byte Integers. -// -// Forms: -// -// PMINUB m128 xmm -// PMINUB xmm xmm -// -// Construct and append a PMINUB instruction to the active function. -func (c *Context) PMINUB(mx, x operand.Op) { - c.addinstruction(x86.PMINUB(mx, x)) -} - -// PMINUB: Minimum of Packed Unsigned Byte Integers. -// -// Forms: -// -// PMINUB m128 xmm -// PMINUB xmm xmm -// -// Construct and append a PMINUB instruction to the active function. -// Operates on the global context. -func PMINUB(mx, x operand.Op) { ctx.PMINUB(mx, x) } - -// PMINUD: Minimum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// PMINUD m128 xmm -// PMINUD xmm xmm -// -// Construct and append a PMINUD instruction to the active function. -func (c *Context) PMINUD(mx, x operand.Op) { - c.addinstruction(x86.PMINUD(mx, x)) -} - -// PMINUD: Minimum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// PMINUD m128 xmm -// PMINUD xmm xmm -// -// Construct and append a PMINUD instruction to the active function. -// Operates on the global context. -func PMINUD(mx, x operand.Op) { ctx.PMINUD(mx, x) } - -// PMINUW: Minimum of Packed Unsigned Word Integers. -// -// Forms: -// -// PMINUW m128 xmm -// PMINUW xmm xmm -// -// Construct and append a PMINUW instruction to the active function. -func (c *Context) PMINUW(mx, x operand.Op) { - c.addinstruction(x86.PMINUW(mx, x)) -} - -// PMINUW: Minimum of Packed Unsigned Word Integers. -// -// Forms: -// -// PMINUW m128 xmm -// PMINUW xmm xmm -// -// Construct and append a PMINUW instruction to the active function. -// Operates on the global context. -func PMINUW(mx, x operand.Op) { ctx.PMINUW(mx, x) } - -// PMOVMSKB: Move Byte Mask. -// -// Forms: -// -// PMOVMSKB xmm r32 -// -// Construct and append a PMOVMSKB instruction to the active function. -func (c *Context) PMOVMSKB(x, r operand.Op) { - c.addinstruction(x86.PMOVMSKB(x, r)) -} - -// PMOVMSKB: Move Byte Mask. -// -// Forms: -// -// PMOVMSKB xmm r32 -// -// Construct and append a PMOVMSKB instruction to the active function. -// Operates on the global context. -func PMOVMSKB(x, r operand.Op) { ctx.PMOVMSKB(x, r) } - -// PMOVSXBD: Move Packed Byte Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXBD m32 xmm -// PMOVSXBD xmm xmm -// -// Construct and append a PMOVSXBD instruction to the active function. -func (c *Context) PMOVSXBD(mx, x operand.Op) { - c.addinstruction(x86.PMOVSXBD(mx, x)) -} - -// PMOVSXBD: Move Packed Byte Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXBD m32 xmm -// PMOVSXBD xmm xmm -// -// Construct and append a PMOVSXBD instruction to the active function. -// Operates on the global context. -func PMOVSXBD(mx, x operand.Op) { ctx.PMOVSXBD(mx, x) } - -// PMOVSXBQ: Move Packed Byte Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXBQ m16 xmm -// PMOVSXBQ xmm xmm -// -// Construct and append a PMOVSXBQ instruction to the active function. -func (c *Context) PMOVSXBQ(mx, x operand.Op) { - c.addinstruction(x86.PMOVSXBQ(mx, x)) -} - -// PMOVSXBQ: Move Packed Byte Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXBQ m16 xmm -// PMOVSXBQ xmm xmm -// -// Construct and append a PMOVSXBQ instruction to the active function. -// Operates on the global context. -func PMOVSXBQ(mx, x operand.Op) { ctx.PMOVSXBQ(mx, x) } - -// PMOVSXBW: Move Packed Byte Integers to Word Integers with Sign Extension. -// -// Forms: -// -// PMOVSXBW m64 xmm -// PMOVSXBW xmm xmm -// -// Construct and append a PMOVSXBW instruction to the active function. -func (c *Context) PMOVSXBW(mx, x operand.Op) { - c.addinstruction(x86.PMOVSXBW(mx, x)) -} - -// PMOVSXBW: Move Packed Byte Integers to Word Integers with Sign Extension. -// -// Forms: -// -// PMOVSXBW m64 xmm -// PMOVSXBW xmm xmm -// -// Construct and append a PMOVSXBW instruction to the active function. -// Operates on the global context. -func PMOVSXBW(mx, x operand.Op) { ctx.PMOVSXBW(mx, x) } - -// PMOVSXDQ: Move Packed Doubleword Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXDQ m64 xmm -// PMOVSXDQ xmm xmm -// -// Construct and append a PMOVSXDQ instruction to the active function. -func (c *Context) PMOVSXDQ(mx, x operand.Op) { - c.addinstruction(x86.PMOVSXDQ(mx, x)) -} - -// PMOVSXDQ: Move Packed Doubleword Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXDQ m64 xmm -// PMOVSXDQ xmm xmm -// -// Construct and append a PMOVSXDQ instruction to the active function. -// Operates on the global context. -func PMOVSXDQ(mx, x operand.Op) { ctx.PMOVSXDQ(mx, x) } - -// PMOVSXWD: Move Packed Word Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXWD m64 xmm -// PMOVSXWD xmm xmm -// -// Construct and append a PMOVSXWD instruction to the active function. -func (c *Context) PMOVSXWD(mx, x operand.Op) { - c.addinstruction(x86.PMOVSXWD(mx, x)) -} - -// PMOVSXWD: Move Packed Word Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXWD m64 xmm -// PMOVSXWD xmm xmm -// -// Construct and append a PMOVSXWD instruction to the active function. -// Operates on the global context. -func PMOVSXWD(mx, x operand.Op) { ctx.PMOVSXWD(mx, x) } - -// PMOVSXWQ: Move Packed Word Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXWQ m32 xmm -// PMOVSXWQ xmm xmm -// -// Construct and append a PMOVSXWQ instruction to the active function. -func (c *Context) PMOVSXWQ(mx, x operand.Op) { - c.addinstruction(x86.PMOVSXWQ(mx, x)) -} - -// PMOVSXWQ: Move Packed Word Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXWQ m32 xmm -// PMOVSXWQ xmm xmm -// -// Construct and append a PMOVSXWQ instruction to the active function. -// Operates on the global context. -func PMOVSXWQ(mx, x operand.Op) { ctx.PMOVSXWQ(mx, x) } - -// PMOVZXBD: Move Packed Byte Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXBD m32 xmm -// PMOVZXBD xmm xmm -// -// Construct and append a PMOVZXBD instruction to the active function. -func (c *Context) PMOVZXBD(mx, x operand.Op) { - c.addinstruction(x86.PMOVZXBD(mx, x)) -} - -// PMOVZXBD: Move Packed Byte Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXBD m32 xmm -// PMOVZXBD xmm xmm -// -// Construct and append a PMOVZXBD instruction to the active function. -// Operates on the global context. -func PMOVZXBD(mx, x operand.Op) { ctx.PMOVZXBD(mx, x) } - -// PMOVZXBQ: Move Packed Byte Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXBQ m16 xmm -// PMOVZXBQ xmm xmm -// -// Construct and append a PMOVZXBQ instruction to the active function. -func (c *Context) PMOVZXBQ(mx, x operand.Op) { - c.addinstruction(x86.PMOVZXBQ(mx, x)) -} - -// PMOVZXBQ: Move Packed Byte Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXBQ m16 xmm -// PMOVZXBQ xmm xmm -// -// Construct and append a PMOVZXBQ instruction to the active function. -// Operates on the global context. -func PMOVZXBQ(mx, x operand.Op) { ctx.PMOVZXBQ(mx, x) } - -// PMOVZXBW: Move Packed Byte Integers to Word Integers with Zero Extension. -// -// Forms: -// -// PMOVZXBW m64 xmm -// PMOVZXBW xmm xmm -// -// Construct and append a PMOVZXBW instruction to the active function. -func (c *Context) PMOVZXBW(mx, x operand.Op) { - c.addinstruction(x86.PMOVZXBW(mx, x)) -} - -// PMOVZXBW: Move Packed Byte Integers to Word Integers with Zero Extension. -// -// Forms: -// -// PMOVZXBW m64 xmm -// PMOVZXBW xmm xmm -// -// Construct and append a PMOVZXBW instruction to the active function. -// Operates on the global context. -func PMOVZXBW(mx, x operand.Op) { ctx.PMOVZXBW(mx, x) } - -// PMOVZXDQ: Move Packed Doubleword Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXDQ m64 xmm -// PMOVZXDQ xmm xmm -// -// Construct and append a PMOVZXDQ instruction to the active function. -func (c *Context) PMOVZXDQ(mx, x operand.Op) { - c.addinstruction(x86.PMOVZXDQ(mx, x)) -} - -// PMOVZXDQ: Move Packed Doubleword Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXDQ m64 xmm -// PMOVZXDQ xmm xmm -// -// Construct and append a PMOVZXDQ instruction to the active function. -// Operates on the global context. -func PMOVZXDQ(mx, x operand.Op) { ctx.PMOVZXDQ(mx, x) } - -// PMOVZXWD: Move Packed Word Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXWD m64 xmm -// PMOVZXWD xmm xmm -// -// Construct and append a PMOVZXWD instruction to the active function. -func (c *Context) PMOVZXWD(mx, x operand.Op) { - c.addinstruction(x86.PMOVZXWD(mx, x)) -} - -// PMOVZXWD: Move Packed Word Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXWD m64 xmm -// PMOVZXWD xmm xmm -// -// Construct and append a PMOVZXWD instruction to the active function. -// Operates on the global context. -func PMOVZXWD(mx, x operand.Op) { ctx.PMOVZXWD(mx, x) } - -// PMOVZXWQ: Move Packed Word Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXWQ m32 xmm -// PMOVZXWQ xmm xmm -// -// Construct and append a PMOVZXWQ instruction to the active function. -func (c *Context) PMOVZXWQ(mx, x operand.Op) { - c.addinstruction(x86.PMOVZXWQ(mx, x)) -} - -// PMOVZXWQ: Move Packed Word Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXWQ m32 xmm -// PMOVZXWQ xmm xmm -// -// Construct and append a PMOVZXWQ instruction to the active function. -// Operates on the global context. -func PMOVZXWQ(mx, x operand.Op) { ctx.PMOVZXWQ(mx, x) } - -// PMULDQ: Multiply Packed Signed Doubleword Integers and Store Quadword Result. -// -// Forms: -// -// PMULDQ m128 xmm -// PMULDQ xmm xmm -// -// Construct and append a PMULDQ instruction to the active function. -func (c *Context) PMULDQ(mx, x operand.Op) { - c.addinstruction(x86.PMULDQ(mx, x)) -} - -// PMULDQ: Multiply Packed Signed Doubleword Integers and Store Quadword Result. -// -// Forms: -// -// PMULDQ m128 xmm -// PMULDQ xmm xmm -// -// Construct and append a PMULDQ instruction to the active function. -// Operates on the global context. -func PMULDQ(mx, x operand.Op) { ctx.PMULDQ(mx, x) } - -// PMULHRSW: Packed Multiply Signed Word Integers and Store High Result with Round and Scale. -// -// Forms: -// -// PMULHRSW m128 xmm -// PMULHRSW xmm xmm -// -// Construct and append a PMULHRSW instruction to the active function. -func (c *Context) PMULHRSW(mx, x operand.Op) { - c.addinstruction(x86.PMULHRSW(mx, x)) -} - -// PMULHRSW: Packed Multiply Signed Word Integers and Store High Result with Round and Scale. -// -// Forms: -// -// PMULHRSW m128 xmm -// PMULHRSW xmm xmm -// -// Construct and append a PMULHRSW instruction to the active function. -// Operates on the global context. -func PMULHRSW(mx, x operand.Op) { ctx.PMULHRSW(mx, x) } - -// PMULHUW: Multiply Packed Unsigned Word Integers and Store High Result. -// -// Forms: -// -// PMULHUW m128 xmm -// PMULHUW xmm xmm -// -// Construct and append a PMULHUW instruction to the active function. -func (c *Context) PMULHUW(mx, x operand.Op) { - c.addinstruction(x86.PMULHUW(mx, x)) -} - -// PMULHUW: Multiply Packed Unsigned Word Integers and Store High Result. -// -// Forms: -// -// PMULHUW m128 xmm -// PMULHUW xmm xmm -// -// Construct and append a PMULHUW instruction to the active function. -// Operates on the global context. -func PMULHUW(mx, x operand.Op) { ctx.PMULHUW(mx, x) } - -// PMULHW: Multiply Packed Signed Word Integers and Store High Result. -// -// Forms: -// -// PMULHW m128 xmm -// PMULHW xmm xmm -// -// Construct and append a PMULHW instruction to the active function. -func (c *Context) PMULHW(mx, x operand.Op) { - c.addinstruction(x86.PMULHW(mx, x)) -} - -// PMULHW: Multiply Packed Signed Word Integers and Store High Result. -// -// Forms: -// -// PMULHW m128 xmm -// PMULHW xmm xmm -// -// Construct and append a PMULHW instruction to the active function. -// Operates on the global context. -func PMULHW(mx, x operand.Op) { ctx.PMULHW(mx, x) } - -// PMULLD: Multiply Packed Signed Doubleword Integers and Store Low Result. -// -// Forms: -// -// PMULLD m128 xmm -// PMULLD xmm xmm -// -// Construct and append a PMULLD instruction to the active function. -func (c *Context) PMULLD(mx, x operand.Op) { - c.addinstruction(x86.PMULLD(mx, x)) -} - -// PMULLD: Multiply Packed Signed Doubleword Integers and Store Low Result. -// -// Forms: -// -// PMULLD m128 xmm -// PMULLD xmm xmm -// -// Construct and append a PMULLD instruction to the active function. -// Operates on the global context. -func PMULLD(mx, x operand.Op) { ctx.PMULLD(mx, x) } - -// PMULLW: Multiply Packed Signed Word Integers and Store Low Result. -// -// Forms: -// -// PMULLW m128 xmm -// PMULLW xmm xmm -// -// Construct and append a PMULLW instruction to the active function. -func (c *Context) PMULLW(mx, x operand.Op) { - c.addinstruction(x86.PMULLW(mx, x)) -} - -// PMULLW: Multiply Packed Signed Word Integers and Store Low Result. -// -// Forms: -// -// PMULLW m128 xmm -// PMULLW xmm xmm -// -// Construct and append a PMULLW instruction to the active function. -// Operates on the global context. -func PMULLW(mx, x operand.Op) { ctx.PMULLW(mx, x) } - -// PMULULQ: Multiply Packed Unsigned Doubleword Integers. -// -// Forms: -// -// PMULULQ m128 xmm -// PMULULQ xmm xmm -// -// Construct and append a PMULULQ instruction to the active function. -func (c *Context) PMULULQ(mx, x operand.Op) { - c.addinstruction(x86.PMULULQ(mx, x)) -} - -// PMULULQ: Multiply Packed Unsigned Doubleword Integers. -// -// Forms: -// -// PMULULQ m128 xmm -// PMULULQ xmm xmm -// -// Construct and append a PMULULQ instruction to the active function. -// Operates on the global context. -func PMULULQ(mx, x operand.Op) { ctx.PMULULQ(mx, x) } - -// POPCNTL: Count of Number of Bits Set to 1. -// -// Forms: -// -// POPCNTL m32 r32 -// POPCNTL r32 r32 -// -// Construct and append a POPCNTL instruction to the active function. -func (c *Context) POPCNTL(mr, r operand.Op) { - c.addinstruction(x86.POPCNTL(mr, r)) -} - -// POPCNTL: Count of Number of Bits Set to 1. -// -// Forms: -// -// POPCNTL m32 r32 -// POPCNTL r32 r32 -// -// Construct and append a POPCNTL instruction to the active function. -// Operates on the global context. -func POPCNTL(mr, r operand.Op) { ctx.POPCNTL(mr, r) } - -// POPCNTQ: Count of Number of Bits Set to 1. -// -// Forms: -// -// POPCNTQ m64 r64 -// POPCNTQ r64 r64 -// -// Construct and append a POPCNTQ instruction to the active function. -func (c *Context) POPCNTQ(mr, r operand.Op) { - c.addinstruction(x86.POPCNTQ(mr, r)) -} - -// POPCNTQ: Count of Number of Bits Set to 1. -// -// Forms: -// -// POPCNTQ m64 r64 -// POPCNTQ r64 r64 -// -// Construct and append a POPCNTQ instruction to the active function. -// Operates on the global context. -func POPCNTQ(mr, r operand.Op) { ctx.POPCNTQ(mr, r) } - -// POPCNTW: Count of Number of Bits Set to 1. -// -// Forms: -// -// POPCNTW m16 r16 -// POPCNTW r16 r16 -// -// Construct and append a POPCNTW instruction to the active function. -func (c *Context) POPCNTW(mr, r operand.Op) { - c.addinstruction(x86.POPCNTW(mr, r)) -} - -// POPCNTW: Count of Number of Bits Set to 1. -// -// Forms: -// -// POPCNTW m16 r16 -// POPCNTW r16 r16 -// -// Construct and append a POPCNTW instruction to the active function. -// Operates on the global context. -func POPCNTW(mr, r operand.Op) { ctx.POPCNTW(mr, r) } - -// POPQ: Pop a Value from the Stack. -// -// Forms: -// -// POPQ m64 -// POPQ r64 -// -// Construct and append a POPQ instruction to the active function. -func (c *Context) POPQ(mr operand.Op) { - c.addinstruction(x86.POPQ(mr)) -} - -// POPQ: Pop a Value from the Stack. -// -// Forms: -// -// POPQ m64 -// POPQ r64 -// -// Construct and append a POPQ instruction to the active function. -// Operates on the global context. -func POPQ(mr operand.Op) { ctx.POPQ(mr) } - -// POPW: Pop a Value from the Stack. -// -// Forms: -// -// POPW m16 -// POPW r16 -// -// Construct and append a POPW instruction to the active function. -func (c *Context) POPW(mr operand.Op) { - c.addinstruction(x86.POPW(mr)) -} - -// POPW: Pop a Value from the Stack. -// -// Forms: -// -// POPW m16 -// POPW r16 -// -// Construct and append a POPW instruction to the active function. -// Operates on the global context. -func POPW(mr operand.Op) { ctx.POPW(mr) } - -// POR: Packed Bitwise Logical OR. -// -// Forms: -// -// POR m128 xmm -// POR xmm xmm -// -// Construct and append a POR instruction to the active function. -func (c *Context) POR(mx, x operand.Op) { - c.addinstruction(x86.POR(mx, x)) -} - -// POR: Packed Bitwise Logical OR. -// -// Forms: -// -// POR m128 xmm -// POR xmm xmm -// -// Construct and append a POR instruction to the active function. -// Operates on the global context. -func POR(mx, x operand.Op) { ctx.POR(mx, x) } - -// PREFETCHNTA: Prefetch Data Into Caches using NTA Hint. -// -// Forms: -// -// PREFETCHNTA m8 -// -// Construct and append a PREFETCHNTA instruction to the active function. -func (c *Context) PREFETCHNTA(m operand.Op) { - c.addinstruction(x86.PREFETCHNTA(m)) -} - -// PREFETCHNTA: Prefetch Data Into Caches using NTA Hint. -// -// Forms: -// -// PREFETCHNTA m8 -// -// Construct and append a PREFETCHNTA instruction to the active function. -// Operates on the global context. -func PREFETCHNTA(m operand.Op) { ctx.PREFETCHNTA(m) } - -// PREFETCHT0: Prefetch Data Into Caches using T0 Hint. -// -// Forms: -// -// PREFETCHT0 m8 -// -// Construct and append a PREFETCHT0 instruction to the active function. -func (c *Context) PREFETCHT0(m operand.Op) { - c.addinstruction(x86.PREFETCHT0(m)) -} - -// PREFETCHT0: Prefetch Data Into Caches using T0 Hint. -// -// Forms: -// -// PREFETCHT0 m8 -// -// Construct and append a PREFETCHT0 instruction to the active function. -// Operates on the global context. -func PREFETCHT0(m operand.Op) { ctx.PREFETCHT0(m) } - -// PREFETCHT1: Prefetch Data Into Caches using T1 Hint. -// -// Forms: -// -// PREFETCHT1 m8 -// -// Construct and append a PREFETCHT1 instruction to the active function. -func (c *Context) PREFETCHT1(m operand.Op) { - c.addinstruction(x86.PREFETCHT1(m)) -} - -// PREFETCHT1: Prefetch Data Into Caches using T1 Hint. -// -// Forms: -// -// PREFETCHT1 m8 -// -// Construct and append a PREFETCHT1 instruction to the active function. -// Operates on the global context. -func PREFETCHT1(m operand.Op) { ctx.PREFETCHT1(m) } - -// PREFETCHT2: Prefetch Data Into Caches using T2 Hint. -// -// Forms: -// -// PREFETCHT2 m8 -// -// Construct and append a PREFETCHT2 instruction to the active function. -func (c *Context) PREFETCHT2(m operand.Op) { - c.addinstruction(x86.PREFETCHT2(m)) -} - -// PREFETCHT2: Prefetch Data Into Caches using T2 Hint. -// -// Forms: -// -// PREFETCHT2 m8 -// -// Construct and append a PREFETCHT2 instruction to the active function. -// Operates on the global context. -func PREFETCHT2(m operand.Op) { ctx.PREFETCHT2(m) } - -// PSADBW: Compute Sum of Absolute Differences. -// -// Forms: -// -// PSADBW m128 xmm -// PSADBW xmm xmm -// -// Construct and append a PSADBW instruction to the active function. -func (c *Context) PSADBW(mx, x operand.Op) { - c.addinstruction(x86.PSADBW(mx, x)) -} - -// PSADBW: Compute Sum of Absolute Differences. -// -// Forms: -// -// PSADBW m128 xmm -// PSADBW xmm xmm -// -// Construct and append a PSADBW instruction to the active function. -// Operates on the global context. -func PSADBW(mx, x operand.Op) { ctx.PSADBW(mx, x) } - -// PSHUFB: Packed Shuffle Bytes. -// -// Forms: -// -// PSHUFB m128 xmm -// PSHUFB xmm xmm -// -// Construct and append a PSHUFB instruction to the active function. -func (c *Context) PSHUFB(mx, x operand.Op) { - c.addinstruction(x86.PSHUFB(mx, x)) -} - -// PSHUFB: Packed Shuffle Bytes. -// -// Forms: -// -// PSHUFB m128 xmm -// PSHUFB xmm xmm -// -// Construct and append a PSHUFB instruction to the active function. -// Operates on the global context. -func PSHUFB(mx, x operand.Op) { ctx.PSHUFB(mx, x) } - -// PSHUFD: Shuffle Packed Doublewords. -// -// Forms: -// -// PSHUFD imm8 m128 xmm -// PSHUFD imm8 xmm xmm -// -// Construct and append a PSHUFD instruction to the active function. -func (c *Context) PSHUFD(i, mx, x operand.Op) { - c.addinstruction(x86.PSHUFD(i, mx, x)) -} - -// PSHUFD: Shuffle Packed Doublewords. -// -// Forms: -// -// PSHUFD imm8 m128 xmm -// PSHUFD imm8 xmm xmm -// -// Construct and append a PSHUFD instruction to the active function. -// Operates on the global context. -func PSHUFD(i, mx, x operand.Op) { ctx.PSHUFD(i, mx, x) } - -// PSHUFHW: Shuffle Packed High Words. -// -// Forms: -// -// PSHUFHW imm8 m128 xmm -// PSHUFHW imm8 xmm xmm -// -// Construct and append a PSHUFHW instruction to the active function. -func (c *Context) PSHUFHW(i, mx, x operand.Op) { - c.addinstruction(x86.PSHUFHW(i, mx, x)) -} - -// PSHUFHW: Shuffle Packed High Words. -// -// Forms: -// -// PSHUFHW imm8 m128 xmm -// PSHUFHW imm8 xmm xmm -// -// Construct and append a PSHUFHW instruction to the active function. -// Operates on the global context. -func PSHUFHW(i, mx, x operand.Op) { ctx.PSHUFHW(i, mx, x) } - -// PSHUFL: Shuffle Packed Doublewords. -// -// Forms: -// -// PSHUFL imm8 m128 xmm -// PSHUFL imm8 xmm xmm -// -// Construct and append a PSHUFL instruction to the active function. -func (c *Context) PSHUFL(i, mx, x operand.Op) { - c.addinstruction(x86.PSHUFL(i, mx, x)) -} - -// PSHUFL: Shuffle Packed Doublewords. -// -// Forms: -// -// PSHUFL imm8 m128 xmm -// PSHUFL imm8 xmm xmm -// -// Construct and append a PSHUFL instruction to the active function. -// Operates on the global context. -func PSHUFL(i, mx, x operand.Op) { ctx.PSHUFL(i, mx, x) } - -// PSHUFLW: Shuffle Packed Low Words. -// -// Forms: -// -// PSHUFLW imm8 m128 xmm -// PSHUFLW imm8 xmm xmm -// -// Construct and append a PSHUFLW instruction to the active function. -func (c *Context) PSHUFLW(i, mx, x operand.Op) { - c.addinstruction(x86.PSHUFLW(i, mx, x)) -} - -// PSHUFLW: Shuffle Packed Low Words. -// -// Forms: -// -// PSHUFLW imm8 m128 xmm -// PSHUFLW imm8 xmm xmm -// -// Construct and append a PSHUFLW instruction to the active function. -// Operates on the global context. -func PSHUFLW(i, mx, x operand.Op) { ctx.PSHUFLW(i, mx, x) } - -// PSIGNB: Packed Sign of Byte Integers. -// -// Forms: -// -// PSIGNB m128 xmm -// PSIGNB xmm xmm -// -// Construct and append a PSIGNB instruction to the active function. -func (c *Context) PSIGNB(mx, x operand.Op) { - c.addinstruction(x86.PSIGNB(mx, x)) -} - -// PSIGNB: Packed Sign of Byte Integers. -// -// Forms: -// -// PSIGNB m128 xmm -// PSIGNB xmm xmm -// -// Construct and append a PSIGNB instruction to the active function. -// Operates on the global context. -func PSIGNB(mx, x operand.Op) { ctx.PSIGNB(mx, x) } - -// PSIGND: Packed Sign of Doubleword Integers. -// -// Forms: -// -// PSIGND m128 xmm -// PSIGND xmm xmm -// -// Construct and append a PSIGND instruction to the active function. -func (c *Context) PSIGND(mx, x operand.Op) { - c.addinstruction(x86.PSIGND(mx, x)) -} - -// PSIGND: Packed Sign of Doubleword Integers. -// -// Forms: -// -// PSIGND m128 xmm -// PSIGND xmm xmm -// -// Construct and append a PSIGND instruction to the active function. -// Operates on the global context. -func PSIGND(mx, x operand.Op) { ctx.PSIGND(mx, x) } - -// PSIGNW: Packed Sign of Word Integers. -// -// Forms: -// -// PSIGNW m128 xmm -// PSIGNW xmm xmm -// -// Construct and append a PSIGNW instruction to the active function. -func (c *Context) PSIGNW(mx, x operand.Op) { - c.addinstruction(x86.PSIGNW(mx, x)) -} - -// PSIGNW: Packed Sign of Word Integers. -// -// Forms: -// -// PSIGNW m128 xmm -// PSIGNW xmm xmm -// -// Construct and append a PSIGNW instruction to the active function. -// Operates on the global context. -func PSIGNW(mx, x operand.Op) { ctx.PSIGNW(mx, x) } - -// PSLLDQ: Shift Packed Double Quadword Left Logical. -// -// Forms: -// -// PSLLDQ imm8 xmm -// -// Construct and append a PSLLDQ instruction to the active function. -func (c *Context) PSLLDQ(i, x operand.Op) { - c.addinstruction(x86.PSLLDQ(i, x)) -} - -// PSLLDQ: Shift Packed Double Quadword Left Logical. -// -// Forms: -// -// PSLLDQ imm8 xmm -// -// Construct and append a PSLLDQ instruction to the active function. -// Operates on the global context. -func PSLLDQ(i, x operand.Op) { ctx.PSLLDQ(i, x) } - -// PSLLL: Shift Packed Doubleword Data Left Logical. -// -// Forms: -// -// PSLLL imm8 xmm -// PSLLL m128 xmm -// PSLLL xmm xmm -// -// Construct and append a PSLLL instruction to the active function. -func (c *Context) PSLLL(imx, x operand.Op) { - c.addinstruction(x86.PSLLL(imx, x)) -} - -// PSLLL: Shift Packed Doubleword Data Left Logical. -// -// Forms: -// -// PSLLL imm8 xmm -// PSLLL m128 xmm -// PSLLL xmm xmm -// -// Construct and append a PSLLL instruction to the active function. -// Operates on the global context. -func PSLLL(imx, x operand.Op) { ctx.PSLLL(imx, x) } - -// PSLLO: Shift Packed Double Quadword Left Logical. -// -// Forms: -// -// PSLLO imm8 xmm -// -// Construct and append a PSLLO instruction to the active function. -func (c *Context) PSLLO(i, x operand.Op) { - c.addinstruction(x86.PSLLO(i, x)) -} - -// PSLLO: Shift Packed Double Quadword Left Logical. -// -// Forms: -// -// PSLLO imm8 xmm -// -// Construct and append a PSLLO instruction to the active function. -// Operates on the global context. -func PSLLO(i, x operand.Op) { ctx.PSLLO(i, x) } - -// PSLLQ: Shift Packed Quadword Data Left Logical. -// -// Forms: -// -// PSLLQ imm8 xmm -// PSLLQ m128 xmm -// PSLLQ xmm xmm -// -// Construct and append a PSLLQ instruction to the active function. -func (c *Context) PSLLQ(imx, x operand.Op) { - c.addinstruction(x86.PSLLQ(imx, x)) -} - -// PSLLQ: Shift Packed Quadword Data Left Logical. -// -// Forms: -// -// PSLLQ imm8 xmm -// PSLLQ m128 xmm -// PSLLQ xmm xmm -// -// Construct and append a PSLLQ instruction to the active function. -// Operates on the global context. -func PSLLQ(imx, x operand.Op) { ctx.PSLLQ(imx, x) } - -// PSLLW: Shift Packed Word Data Left Logical. -// -// Forms: -// -// PSLLW imm8 xmm -// PSLLW m128 xmm -// PSLLW xmm xmm -// -// Construct and append a PSLLW instruction to the active function. -func (c *Context) PSLLW(imx, x operand.Op) { - c.addinstruction(x86.PSLLW(imx, x)) -} - -// PSLLW: Shift Packed Word Data Left Logical. -// -// Forms: -// -// PSLLW imm8 xmm -// PSLLW m128 xmm -// PSLLW xmm xmm -// -// Construct and append a PSLLW instruction to the active function. -// Operates on the global context. -func PSLLW(imx, x operand.Op) { ctx.PSLLW(imx, x) } - -// PSRAL: Shift Packed Doubleword Data Right Arithmetic. -// -// Forms: -// -// PSRAL imm8 xmm -// PSRAL m128 xmm -// PSRAL xmm xmm -// -// Construct and append a PSRAL instruction to the active function. -func (c *Context) PSRAL(imx, x operand.Op) { - c.addinstruction(x86.PSRAL(imx, x)) -} - -// PSRAL: Shift Packed Doubleword Data Right Arithmetic. -// -// Forms: -// -// PSRAL imm8 xmm -// PSRAL m128 xmm -// PSRAL xmm xmm -// -// Construct and append a PSRAL instruction to the active function. -// Operates on the global context. -func PSRAL(imx, x operand.Op) { ctx.PSRAL(imx, x) } - -// PSRAW: Shift Packed Word Data Right Arithmetic. -// -// Forms: -// -// PSRAW imm8 xmm -// PSRAW m128 xmm -// PSRAW xmm xmm -// -// Construct and append a PSRAW instruction to the active function. -func (c *Context) PSRAW(imx, x operand.Op) { - c.addinstruction(x86.PSRAW(imx, x)) -} - -// PSRAW: Shift Packed Word Data Right Arithmetic. -// -// Forms: -// -// PSRAW imm8 xmm -// PSRAW m128 xmm -// PSRAW xmm xmm -// -// Construct and append a PSRAW instruction to the active function. -// Operates on the global context. -func PSRAW(imx, x operand.Op) { ctx.PSRAW(imx, x) } - -// PSRLDQ: Shift Packed Double Quadword Right Logical. -// -// Forms: -// -// PSRLDQ imm8 xmm -// -// Construct and append a PSRLDQ instruction to the active function. -func (c *Context) PSRLDQ(i, x operand.Op) { - c.addinstruction(x86.PSRLDQ(i, x)) -} - -// PSRLDQ: Shift Packed Double Quadword Right Logical. -// -// Forms: -// -// PSRLDQ imm8 xmm -// -// Construct and append a PSRLDQ instruction to the active function. -// Operates on the global context. -func PSRLDQ(i, x operand.Op) { ctx.PSRLDQ(i, x) } - -// PSRLL: Shift Packed Doubleword Data Right Logical. -// -// Forms: -// -// PSRLL imm8 xmm -// PSRLL m128 xmm -// PSRLL xmm xmm -// -// Construct and append a PSRLL instruction to the active function. -func (c *Context) PSRLL(imx, x operand.Op) { - c.addinstruction(x86.PSRLL(imx, x)) -} - -// PSRLL: Shift Packed Doubleword Data Right Logical. -// -// Forms: -// -// PSRLL imm8 xmm -// PSRLL m128 xmm -// PSRLL xmm xmm -// -// Construct and append a PSRLL instruction to the active function. -// Operates on the global context. -func PSRLL(imx, x operand.Op) { ctx.PSRLL(imx, x) } - -// PSRLO: Shift Packed Double Quadword Right Logical. -// -// Forms: -// -// PSRLO imm8 xmm -// -// Construct and append a PSRLO instruction to the active function. -func (c *Context) PSRLO(i, x operand.Op) { - c.addinstruction(x86.PSRLO(i, x)) -} - -// PSRLO: Shift Packed Double Quadword Right Logical. -// -// Forms: -// -// PSRLO imm8 xmm -// -// Construct and append a PSRLO instruction to the active function. -// Operates on the global context. -func PSRLO(i, x operand.Op) { ctx.PSRLO(i, x) } - -// PSRLQ: Shift Packed Quadword Data Right Logical. -// -// Forms: -// -// PSRLQ imm8 xmm -// PSRLQ m128 xmm -// PSRLQ xmm xmm -// -// Construct and append a PSRLQ instruction to the active function. -func (c *Context) PSRLQ(imx, x operand.Op) { - c.addinstruction(x86.PSRLQ(imx, x)) -} - -// PSRLQ: Shift Packed Quadword Data Right Logical. -// -// Forms: -// -// PSRLQ imm8 xmm -// PSRLQ m128 xmm -// PSRLQ xmm xmm -// -// Construct and append a PSRLQ instruction to the active function. -// Operates on the global context. -func PSRLQ(imx, x operand.Op) { ctx.PSRLQ(imx, x) } - -// PSRLW: Shift Packed Word Data Right Logical. -// -// Forms: -// -// PSRLW imm8 xmm -// PSRLW m128 xmm -// PSRLW xmm xmm -// -// Construct and append a PSRLW instruction to the active function. -func (c *Context) PSRLW(imx, x operand.Op) { - c.addinstruction(x86.PSRLW(imx, x)) -} - -// PSRLW: Shift Packed Word Data Right Logical. -// -// Forms: -// -// PSRLW imm8 xmm -// PSRLW m128 xmm -// PSRLW xmm xmm -// -// Construct and append a PSRLW instruction to the active function. -// Operates on the global context. -func PSRLW(imx, x operand.Op) { ctx.PSRLW(imx, x) } - -// PSUBB: Subtract Packed Byte Integers. -// -// Forms: -// -// PSUBB m128 xmm -// PSUBB xmm xmm -// -// Construct and append a PSUBB instruction to the active function. -func (c *Context) PSUBB(mx, x operand.Op) { - c.addinstruction(x86.PSUBB(mx, x)) -} - -// PSUBB: Subtract Packed Byte Integers. -// -// Forms: -// -// PSUBB m128 xmm -// PSUBB xmm xmm -// -// Construct and append a PSUBB instruction to the active function. -// Operates on the global context. -func PSUBB(mx, x operand.Op) { ctx.PSUBB(mx, x) } - -// PSUBL: Subtract Packed Doubleword Integers. -// -// Forms: -// -// PSUBL m128 xmm -// PSUBL xmm xmm -// -// Construct and append a PSUBL instruction to the active function. -func (c *Context) PSUBL(mx, x operand.Op) { - c.addinstruction(x86.PSUBL(mx, x)) -} - -// PSUBL: Subtract Packed Doubleword Integers. -// -// Forms: -// -// PSUBL m128 xmm -// PSUBL xmm xmm -// -// Construct and append a PSUBL instruction to the active function. -// Operates on the global context. -func PSUBL(mx, x operand.Op) { ctx.PSUBL(mx, x) } - -// PSUBQ: Subtract Packed Quadword Integers. -// -// Forms: -// -// PSUBQ m128 xmm -// PSUBQ xmm xmm -// -// Construct and append a PSUBQ instruction to the active function. -func (c *Context) PSUBQ(mx, x operand.Op) { - c.addinstruction(x86.PSUBQ(mx, x)) -} - -// PSUBQ: Subtract Packed Quadword Integers. -// -// Forms: -// -// PSUBQ m128 xmm -// PSUBQ xmm xmm -// -// Construct and append a PSUBQ instruction to the active function. -// Operates on the global context. -func PSUBQ(mx, x operand.Op) { ctx.PSUBQ(mx, x) } - -// PSUBSB: Subtract Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// PSUBSB m128 xmm -// PSUBSB xmm xmm -// -// Construct and append a PSUBSB instruction to the active function. -func (c *Context) PSUBSB(mx, x operand.Op) { - c.addinstruction(x86.PSUBSB(mx, x)) -} - -// PSUBSB: Subtract Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// PSUBSB m128 xmm -// PSUBSB xmm xmm -// -// Construct and append a PSUBSB instruction to the active function. -// Operates on the global context. -func PSUBSB(mx, x operand.Op) { ctx.PSUBSB(mx, x) } - -// PSUBSW: Subtract Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PSUBSW m128 xmm -// PSUBSW xmm xmm -// -// Construct and append a PSUBSW instruction to the active function. -func (c *Context) PSUBSW(mx, x operand.Op) { - c.addinstruction(x86.PSUBSW(mx, x)) -} - -// PSUBSW: Subtract Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PSUBSW m128 xmm -// PSUBSW xmm xmm -// -// Construct and append a PSUBSW instruction to the active function. -// Operates on the global context. -func PSUBSW(mx, x operand.Op) { ctx.PSUBSW(mx, x) } - -// PSUBUSB: Subtract Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// PSUBUSB m128 xmm -// PSUBUSB xmm xmm -// -// Construct and append a PSUBUSB instruction to the active function. -func (c *Context) PSUBUSB(mx, x operand.Op) { - c.addinstruction(x86.PSUBUSB(mx, x)) -} - -// PSUBUSB: Subtract Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// PSUBUSB m128 xmm -// PSUBUSB xmm xmm -// -// Construct and append a PSUBUSB instruction to the active function. -// Operates on the global context. -func PSUBUSB(mx, x operand.Op) { ctx.PSUBUSB(mx, x) } - -// PSUBUSW: Subtract Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// PSUBUSW m128 xmm -// PSUBUSW xmm xmm -// -// Construct and append a PSUBUSW instruction to the active function. -func (c *Context) PSUBUSW(mx, x operand.Op) { - c.addinstruction(x86.PSUBUSW(mx, x)) -} - -// PSUBUSW: Subtract Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// PSUBUSW m128 xmm -// PSUBUSW xmm xmm -// -// Construct and append a PSUBUSW instruction to the active function. -// Operates on the global context. -func PSUBUSW(mx, x operand.Op) { ctx.PSUBUSW(mx, x) } - -// PSUBW: Subtract Packed Word Integers. -// -// Forms: -// -// PSUBW m128 xmm -// PSUBW xmm xmm -// -// Construct and append a PSUBW instruction to the active function. -func (c *Context) PSUBW(mx, x operand.Op) { - c.addinstruction(x86.PSUBW(mx, x)) -} - -// PSUBW: Subtract Packed Word Integers. -// -// Forms: -// -// PSUBW m128 xmm -// PSUBW xmm xmm -// -// Construct and append a PSUBW instruction to the active function. -// Operates on the global context. -func PSUBW(mx, x operand.Op) { ctx.PSUBW(mx, x) } - -// PTEST: Packed Logical Compare. -// -// Forms: -// -// PTEST m128 xmm -// PTEST xmm xmm -// -// Construct and append a PTEST instruction to the active function. -func (c *Context) PTEST(mx, x operand.Op) { - c.addinstruction(x86.PTEST(mx, x)) -} - -// PTEST: Packed Logical Compare. -// -// Forms: -// -// PTEST m128 xmm -// PTEST xmm xmm -// -// Construct and append a PTEST instruction to the active function. -// Operates on the global context. -func PTEST(mx, x operand.Op) { ctx.PTEST(mx, x) } - -// PUNPCKHBW: Unpack and Interleave High-Order Bytes into Words. -// -// Forms: -// -// PUNPCKHBW m128 xmm -// PUNPCKHBW xmm xmm -// -// Construct and append a PUNPCKHBW instruction to the active function. -func (c *Context) PUNPCKHBW(mx, x operand.Op) { - c.addinstruction(x86.PUNPCKHBW(mx, x)) -} - -// PUNPCKHBW: Unpack and Interleave High-Order Bytes into Words. -// -// Forms: -// -// PUNPCKHBW m128 xmm -// PUNPCKHBW xmm xmm -// -// Construct and append a PUNPCKHBW instruction to the active function. -// Operates on the global context. -func PUNPCKHBW(mx, x operand.Op) { ctx.PUNPCKHBW(mx, x) } - -// PUNPCKHLQ: Unpack and Interleave High-Order Doublewords into Quadwords. -// -// Forms: -// -// PUNPCKHLQ m128 xmm -// PUNPCKHLQ xmm xmm -// -// Construct and append a PUNPCKHLQ instruction to the active function. -func (c *Context) PUNPCKHLQ(mx, x operand.Op) { - c.addinstruction(x86.PUNPCKHLQ(mx, x)) -} - -// PUNPCKHLQ: Unpack and Interleave High-Order Doublewords into Quadwords. -// -// Forms: -// -// PUNPCKHLQ m128 xmm -// PUNPCKHLQ xmm xmm -// -// Construct and append a PUNPCKHLQ instruction to the active function. -// Operates on the global context. -func PUNPCKHLQ(mx, x operand.Op) { ctx.PUNPCKHLQ(mx, x) } - -// PUNPCKHQDQ: Unpack and Interleave High-Order Quadwords into Double Quadwords. -// -// Forms: -// -// PUNPCKHQDQ m128 xmm -// PUNPCKHQDQ xmm xmm -// -// Construct and append a PUNPCKHQDQ instruction to the active function. -func (c *Context) PUNPCKHQDQ(mx, x operand.Op) { - c.addinstruction(x86.PUNPCKHQDQ(mx, x)) -} - -// PUNPCKHQDQ: Unpack and Interleave High-Order Quadwords into Double Quadwords. -// -// Forms: -// -// PUNPCKHQDQ m128 xmm -// PUNPCKHQDQ xmm xmm -// -// Construct and append a PUNPCKHQDQ instruction to the active function. -// Operates on the global context. -func PUNPCKHQDQ(mx, x operand.Op) { ctx.PUNPCKHQDQ(mx, x) } - -// PUNPCKHWL: Unpack and Interleave High-Order Words into Doublewords. -// -// Forms: -// -// PUNPCKHWL m128 xmm -// PUNPCKHWL xmm xmm -// -// Construct and append a PUNPCKHWL instruction to the active function. -func (c *Context) PUNPCKHWL(mx, x operand.Op) { - c.addinstruction(x86.PUNPCKHWL(mx, x)) -} - -// PUNPCKHWL: Unpack and Interleave High-Order Words into Doublewords. -// -// Forms: -// -// PUNPCKHWL m128 xmm -// PUNPCKHWL xmm xmm -// -// Construct and append a PUNPCKHWL instruction to the active function. -// Operates on the global context. -func PUNPCKHWL(mx, x operand.Op) { ctx.PUNPCKHWL(mx, x) } - -// PUNPCKLBW: Unpack and Interleave Low-Order Bytes into Words. -// -// Forms: -// -// PUNPCKLBW m128 xmm -// PUNPCKLBW xmm xmm -// -// Construct and append a PUNPCKLBW instruction to the active function. -func (c *Context) PUNPCKLBW(mx, x operand.Op) { - c.addinstruction(x86.PUNPCKLBW(mx, x)) -} - -// PUNPCKLBW: Unpack and Interleave Low-Order Bytes into Words. -// -// Forms: -// -// PUNPCKLBW m128 xmm -// PUNPCKLBW xmm xmm -// -// Construct and append a PUNPCKLBW instruction to the active function. -// Operates on the global context. -func PUNPCKLBW(mx, x operand.Op) { ctx.PUNPCKLBW(mx, x) } - -// PUNPCKLLQ: Unpack and Interleave Low-Order Doublewords into Quadwords. -// -// Forms: -// -// PUNPCKLLQ m128 xmm -// PUNPCKLLQ xmm xmm -// -// Construct and append a PUNPCKLLQ instruction to the active function. -func (c *Context) PUNPCKLLQ(mx, x operand.Op) { - c.addinstruction(x86.PUNPCKLLQ(mx, x)) -} - -// PUNPCKLLQ: Unpack and Interleave Low-Order Doublewords into Quadwords. -// -// Forms: -// -// PUNPCKLLQ m128 xmm -// PUNPCKLLQ xmm xmm -// -// Construct and append a PUNPCKLLQ instruction to the active function. -// Operates on the global context. -func PUNPCKLLQ(mx, x operand.Op) { ctx.PUNPCKLLQ(mx, x) } - -// PUNPCKLQDQ: Unpack and Interleave Low-Order Quadwords into Double Quadwords. -// -// Forms: -// -// PUNPCKLQDQ m128 xmm -// PUNPCKLQDQ xmm xmm -// -// Construct and append a PUNPCKLQDQ instruction to the active function. -func (c *Context) PUNPCKLQDQ(mx, x operand.Op) { - c.addinstruction(x86.PUNPCKLQDQ(mx, x)) -} - -// PUNPCKLQDQ: Unpack and Interleave Low-Order Quadwords into Double Quadwords. -// -// Forms: -// -// PUNPCKLQDQ m128 xmm -// PUNPCKLQDQ xmm xmm -// -// Construct and append a PUNPCKLQDQ instruction to the active function. -// Operates on the global context. -func PUNPCKLQDQ(mx, x operand.Op) { ctx.PUNPCKLQDQ(mx, x) } - -// PUNPCKLWL: Unpack and Interleave Low-Order Words into Doublewords. -// -// Forms: -// -// PUNPCKLWL m128 xmm -// PUNPCKLWL xmm xmm -// -// Construct and append a PUNPCKLWL instruction to the active function. -func (c *Context) PUNPCKLWL(mx, x operand.Op) { - c.addinstruction(x86.PUNPCKLWL(mx, x)) -} - -// PUNPCKLWL: Unpack and Interleave Low-Order Words into Doublewords. -// -// Forms: -// -// PUNPCKLWL m128 xmm -// PUNPCKLWL xmm xmm -// -// Construct and append a PUNPCKLWL instruction to the active function. -// Operates on the global context. -func PUNPCKLWL(mx, x operand.Op) { ctx.PUNPCKLWL(mx, x) } - -// PUSHQ: Push Value Onto the Stack. -// -// Forms: -// -// PUSHQ imm32 -// PUSHQ imm8 -// PUSHQ m64 -// PUSHQ r64 -// -// Construct and append a PUSHQ instruction to the active function. -func (c *Context) PUSHQ(imr operand.Op) { - c.addinstruction(x86.PUSHQ(imr)) -} - -// PUSHQ: Push Value Onto the Stack. -// -// Forms: -// -// PUSHQ imm32 -// PUSHQ imm8 -// PUSHQ m64 -// PUSHQ r64 -// -// Construct and append a PUSHQ instruction to the active function. -// Operates on the global context. -func PUSHQ(imr operand.Op) { ctx.PUSHQ(imr) } - -// PUSHW: Push Value Onto the Stack. -// -// Forms: -// -// PUSHW m16 -// PUSHW r16 -// -// Construct and append a PUSHW instruction to the active function. -func (c *Context) PUSHW(mr operand.Op) { - c.addinstruction(x86.PUSHW(mr)) -} - -// PUSHW: Push Value Onto the Stack. -// -// Forms: -// -// PUSHW m16 -// PUSHW r16 -// -// Construct and append a PUSHW instruction to the active function. -// Operates on the global context. -func PUSHW(mr operand.Op) { ctx.PUSHW(mr) } - -// PXOR: Packed Bitwise Logical Exclusive OR. -// -// Forms: -// -// PXOR m128 xmm -// PXOR xmm xmm -// -// Construct and append a PXOR instruction to the active function. -func (c *Context) PXOR(mx, x operand.Op) { - c.addinstruction(x86.PXOR(mx, x)) -} - -// PXOR: Packed Bitwise Logical Exclusive OR. -// -// Forms: -// -// PXOR m128 xmm -// PXOR xmm xmm -// -// Construct and append a PXOR instruction to the active function. -// Operates on the global context. -func PXOR(mx, x operand.Op) { ctx.PXOR(mx, x) } - -// RCLB: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLB 1 m8 -// RCLB 1 r8 -// RCLB cl m8 -// RCLB cl r8 -// RCLB imm8 m8 -// RCLB imm8 r8 -// -// Construct and append a RCLB instruction to the active function. -func (c *Context) RCLB(ci, mr operand.Op) { - c.addinstruction(x86.RCLB(ci, mr)) -} - -// RCLB: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLB 1 m8 -// RCLB 1 r8 -// RCLB cl m8 -// RCLB cl r8 -// RCLB imm8 m8 -// RCLB imm8 r8 -// -// Construct and append a RCLB instruction to the active function. -// Operates on the global context. -func RCLB(ci, mr operand.Op) { ctx.RCLB(ci, mr) } - -// RCLL: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLL 1 m32 -// RCLL 1 r32 -// RCLL cl m32 -// RCLL cl r32 -// RCLL imm8 m32 -// RCLL imm8 r32 -// -// Construct and append a RCLL instruction to the active function. -func (c *Context) RCLL(ci, mr operand.Op) { - c.addinstruction(x86.RCLL(ci, mr)) -} - -// RCLL: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLL 1 m32 -// RCLL 1 r32 -// RCLL cl m32 -// RCLL cl r32 -// RCLL imm8 m32 -// RCLL imm8 r32 -// -// Construct and append a RCLL instruction to the active function. -// Operates on the global context. -func RCLL(ci, mr operand.Op) { ctx.RCLL(ci, mr) } - -// RCLQ: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLQ 1 m64 -// RCLQ 1 r64 -// RCLQ cl m64 -// RCLQ cl r64 -// RCLQ imm8 m64 -// RCLQ imm8 r64 -// -// Construct and append a RCLQ instruction to the active function. -func (c *Context) RCLQ(ci, mr operand.Op) { - c.addinstruction(x86.RCLQ(ci, mr)) -} - -// RCLQ: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLQ 1 m64 -// RCLQ 1 r64 -// RCLQ cl m64 -// RCLQ cl r64 -// RCLQ imm8 m64 -// RCLQ imm8 r64 -// -// Construct and append a RCLQ instruction to the active function. -// Operates on the global context. -func RCLQ(ci, mr operand.Op) { ctx.RCLQ(ci, mr) } - -// RCLW: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLW 1 m16 -// RCLW 1 r16 -// RCLW cl m16 -// RCLW cl r16 -// RCLW imm8 m16 -// RCLW imm8 r16 -// -// Construct and append a RCLW instruction to the active function. -func (c *Context) RCLW(ci, mr operand.Op) { - c.addinstruction(x86.RCLW(ci, mr)) -} - -// RCLW: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLW 1 m16 -// RCLW 1 r16 -// RCLW cl m16 -// RCLW cl r16 -// RCLW imm8 m16 -// RCLW imm8 r16 -// -// Construct and append a RCLW instruction to the active function. -// Operates on the global context. -func RCLW(ci, mr operand.Op) { ctx.RCLW(ci, mr) } - -// RCPPS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// RCPPS m128 xmm -// RCPPS xmm xmm -// -// Construct and append a RCPPS instruction to the active function. -func (c *Context) RCPPS(mx, x operand.Op) { - c.addinstruction(x86.RCPPS(mx, x)) -} - -// RCPPS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// RCPPS m128 xmm -// RCPPS xmm xmm -// -// Construct and append a RCPPS instruction to the active function. -// Operates on the global context. -func RCPPS(mx, x operand.Op) { ctx.RCPPS(mx, x) } - -// RCPSS: Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// RCPSS m32 xmm -// RCPSS xmm xmm -// -// Construct and append a RCPSS instruction to the active function. -func (c *Context) RCPSS(mx, x operand.Op) { - c.addinstruction(x86.RCPSS(mx, x)) -} - -// RCPSS: Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// RCPSS m32 xmm -// RCPSS xmm xmm -// -// Construct and append a RCPSS instruction to the active function. -// Operates on the global context. -func RCPSS(mx, x operand.Op) { ctx.RCPSS(mx, x) } - -// RCRB: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRB 1 m8 -// RCRB 1 r8 -// RCRB cl m8 -// RCRB cl r8 -// RCRB imm8 m8 -// RCRB imm8 r8 -// -// Construct and append a RCRB instruction to the active function. -func (c *Context) RCRB(ci, mr operand.Op) { - c.addinstruction(x86.RCRB(ci, mr)) -} - -// RCRB: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRB 1 m8 -// RCRB 1 r8 -// RCRB cl m8 -// RCRB cl r8 -// RCRB imm8 m8 -// RCRB imm8 r8 -// -// Construct and append a RCRB instruction to the active function. -// Operates on the global context. -func RCRB(ci, mr operand.Op) { ctx.RCRB(ci, mr) } - -// RCRL: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRL 1 m32 -// RCRL 1 r32 -// RCRL cl m32 -// RCRL cl r32 -// RCRL imm8 m32 -// RCRL imm8 r32 -// -// Construct and append a RCRL instruction to the active function. -func (c *Context) RCRL(ci, mr operand.Op) { - c.addinstruction(x86.RCRL(ci, mr)) -} - -// RCRL: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRL 1 m32 -// RCRL 1 r32 -// RCRL cl m32 -// RCRL cl r32 -// RCRL imm8 m32 -// RCRL imm8 r32 -// -// Construct and append a RCRL instruction to the active function. -// Operates on the global context. -func RCRL(ci, mr operand.Op) { ctx.RCRL(ci, mr) } - -// RCRQ: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRQ 1 m64 -// RCRQ 1 r64 -// RCRQ cl m64 -// RCRQ cl r64 -// RCRQ imm8 m64 -// RCRQ imm8 r64 -// -// Construct and append a RCRQ instruction to the active function. -func (c *Context) RCRQ(ci, mr operand.Op) { - c.addinstruction(x86.RCRQ(ci, mr)) -} - -// RCRQ: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRQ 1 m64 -// RCRQ 1 r64 -// RCRQ cl m64 -// RCRQ cl r64 -// RCRQ imm8 m64 -// RCRQ imm8 r64 -// -// Construct and append a RCRQ instruction to the active function. -// Operates on the global context. -func RCRQ(ci, mr operand.Op) { ctx.RCRQ(ci, mr) } - -// RCRW: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRW 1 m16 -// RCRW 1 r16 -// RCRW cl m16 -// RCRW cl r16 -// RCRW imm8 m16 -// RCRW imm8 r16 -// -// Construct and append a RCRW instruction to the active function. -func (c *Context) RCRW(ci, mr operand.Op) { - c.addinstruction(x86.RCRW(ci, mr)) -} - -// RCRW: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRW 1 m16 -// RCRW 1 r16 -// RCRW cl m16 -// RCRW cl r16 -// RCRW imm8 m16 -// RCRW imm8 r16 -// -// Construct and append a RCRW instruction to the active function. -// Operates on the global context. -func RCRW(ci, mr operand.Op) { ctx.RCRW(ci, mr) } - -// RDRANDL: Read Random Number. -// -// Forms: -// -// RDRANDL r16 -// RDRANDL r32 -// RDRANDL r64 -// -// Construct and append a RDRANDL instruction to the active function. -func (c *Context) RDRANDL(r operand.Op) { - c.addinstruction(x86.RDRANDL(r)) -} - -// RDRANDL: Read Random Number. -// -// Forms: -// -// RDRANDL r16 -// RDRANDL r32 -// RDRANDL r64 -// -// Construct and append a RDRANDL instruction to the active function. -// Operates on the global context. -func RDRANDL(r operand.Op) { ctx.RDRANDL(r) } - -// RDSEEDL: Read Random SEED. -// -// Forms: -// -// RDSEEDL r16 -// RDSEEDL r32 -// RDSEEDL r64 -// -// Construct and append a RDSEEDL instruction to the active function. -func (c *Context) RDSEEDL(r operand.Op) { - c.addinstruction(x86.RDSEEDL(r)) -} - -// RDSEEDL: Read Random SEED. -// -// Forms: -// -// RDSEEDL r16 -// RDSEEDL r32 -// RDSEEDL r64 -// -// Construct and append a RDSEEDL instruction to the active function. -// Operates on the global context. -func RDSEEDL(r operand.Op) { ctx.RDSEEDL(r) } - -// RDTSC: Read Time-Stamp Counter. -// -// Forms: -// -// RDTSC -// -// Construct and append a RDTSC instruction to the active function. -func (c *Context) RDTSC() { - c.addinstruction(x86.RDTSC()) -} - -// RDTSC: Read Time-Stamp Counter. -// -// Forms: -// -// RDTSC -// -// Construct and append a RDTSC instruction to the active function. -// Operates on the global context. -func RDTSC() { ctx.RDTSC() } - -// RDTSCP: Read Time-Stamp Counter and Processor ID. -// -// Forms: -// -// RDTSCP -// -// Construct and append a RDTSCP instruction to the active function. -func (c *Context) RDTSCP() { - c.addinstruction(x86.RDTSCP()) -} - -// RDTSCP: Read Time-Stamp Counter and Processor ID. -// -// Forms: -// -// RDTSCP -// -// Construct and append a RDTSCP instruction to the active function. -// Operates on the global context. -func RDTSCP() { ctx.RDTSCP() } - -// RET: Return from Procedure. -// -// Forms: -// -// RET -// -// Construct and append a RET instruction to the active function. -func (c *Context) RET() { - c.addinstruction(x86.RET()) -} - -// RET: Return from Procedure. -// -// Forms: -// -// RET -// -// Construct and append a RET instruction to the active function. -// Operates on the global context. -func RET() { ctx.RET() } - -// RETFL: Return from Procedure. -// -// Forms: -// -// RETFL imm16 -// -// Construct and append a RETFL instruction to the active function. -func (c *Context) RETFL(i operand.Op) { - c.addinstruction(x86.RETFL(i)) -} - -// RETFL: Return from Procedure. -// -// Forms: -// -// RETFL imm16 -// -// Construct and append a RETFL instruction to the active function. -// Operates on the global context. -func RETFL(i operand.Op) { ctx.RETFL(i) } - -// RETFQ: Return from Procedure. -// -// Forms: -// -// RETFQ imm16 -// -// Construct and append a RETFQ instruction to the active function. -func (c *Context) RETFQ(i operand.Op) { - c.addinstruction(x86.RETFQ(i)) -} - -// RETFQ: Return from Procedure. -// -// Forms: -// -// RETFQ imm16 -// -// Construct and append a RETFQ instruction to the active function. -// Operates on the global context. -func RETFQ(i operand.Op) { ctx.RETFQ(i) } - -// RETFW: Return from Procedure. -// -// Forms: -// -// RETFW imm16 -// -// Construct and append a RETFW instruction to the active function. -func (c *Context) RETFW(i operand.Op) { - c.addinstruction(x86.RETFW(i)) -} - -// RETFW: Return from Procedure. -// -// Forms: -// -// RETFW imm16 -// -// Construct and append a RETFW instruction to the active function. -// Operates on the global context. -func RETFW(i operand.Op) { ctx.RETFW(i) } - -// ROLB: Rotate Left. -// -// Forms: -// -// ROLB 1 m8 -// ROLB 1 r8 -// ROLB cl m8 -// ROLB cl r8 -// ROLB imm8 m8 -// ROLB imm8 r8 -// -// Construct and append a ROLB instruction to the active function. -func (c *Context) ROLB(ci, mr operand.Op) { - c.addinstruction(x86.ROLB(ci, mr)) -} - -// ROLB: Rotate Left. -// -// Forms: -// -// ROLB 1 m8 -// ROLB 1 r8 -// ROLB cl m8 -// ROLB cl r8 -// ROLB imm8 m8 -// ROLB imm8 r8 -// -// Construct and append a ROLB instruction to the active function. -// Operates on the global context. -func ROLB(ci, mr operand.Op) { ctx.ROLB(ci, mr) } - -// ROLL: Rotate Left. -// -// Forms: -// -// ROLL 1 m32 -// ROLL 1 r32 -// ROLL cl m32 -// ROLL cl r32 -// ROLL imm8 m32 -// ROLL imm8 r32 -// -// Construct and append a ROLL instruction to the active function. -func (c *Context) ROLL(ci, mr operand.Op) { - c.addinstruction(x86.ROLL(ci, mr)) -} - -// ROLL: Rotate Left. -// -// Forms: -// -// ROLL 1 m32 -// ROLL 1 r32 -// ROLL cl m32 -// ROLL cl r32 -// ROLL imm8 m32 -// ROLL imm8 r32 -// -// Construct and append a ROLL instruction to the active function. -// Operates on the global context. -func ROLL(ci, mr operand.Op) { ctx.ROLL(ci, mr) } - -// ROLQ: Rotate Left. -// -// Forms: -// -// ROLQ 1 m64 -// ROLQ 1 r64 -// ROLQ cl m64 -// ROLQ cl r64 -// ROLQ imm8 m64 -// ROLQ imm8 r64 -// -// Construct and append a ROLQ instruction to the active function. -func (c *Context) ROLQ(ci, mr operand.Op) { - c.addinstruction(x86.ROLQ(ci, mr)) -} - -// ROLQ: Rotate Left. -// -// Forms: -// -// ROLQ 1 m64 -// ROLQ 1 r64 -// ROLQ cl m64 -// ROLQ cl r64 -// ROLQ imm8 m64 -// ROLQ imm8 r64 -// -// Construct and append a ROLQ instruction to the active function. -// Operates on the global context. -func ROLQ(ci, mr operand.Op) { ctx.ROLQ(ci, mr) } - -// ROLW: Rotate Left. -// -// Forms: -// -// ROLW 1 m16 -// ROLW 1 r16 -// ROLW cl m16 -// ROLW cl r16 -// ROLW imm8 m16 -// ROLW imm8 r16 -// -// Construct and append a ROLW instruction to the active function. -func (c *Context) ROLW(ci, mr operand.Op) { - c.addinstruction(x86.ROLW(ci, mr)) -} - -// ROLW: Rotate Left. -// -// Forms: -// -// ROLW 1 m16 -// ROLW 1 r16 -// ROLW cl m16 -// ROLW cl r16 -// ROLW imm8 m16 -// ROLW imm8 r16 -// -// Construct and append a ROLW instruction to the active function. -// Operates on the global context. -func ROLW(ci, mr operand.Op) { ctx.ROLW(ci, mr) } - -// RORB: Rotate Right. -// -// Forms: -// -// RORB 1 m8 -// RORB 1 r8 -// RORB cl m8 -// RORB cl r8 -// RORB imm8 m8 -// RORB imm8 r8 -// -// Construct and append a RORB instruction to the active function. -func (c *Context) RORB(ci, mr operand.Op) { - c.addinstruction(x86.RORB(ci, mr)) -} - -// RORB: Rotate Right. -// -// Forms: -// -// RORB 1 m8 -// RORB 1 r8 -// RORB cl m8 -// RORB cl r8 -// RORB imm8 m8 -// RORB imm8 r8 -// -// Construct and append a RORB instruction to the active function. -// Operates on the global context. -func RORB(ci, mr operand.Op) { ctx.RORB(ci, mr) } - -// RORL: Rotate Right. -// -// Forms: -// -// RORL 1 m32 -// RORL 1 r32 -// RORL cl m32 -// RORL cl r32 -// RORL imm8 m32 -// RORL imm8 r32 -// -// Construct and append a RORL instruction to the active function. -func (c *Context) RORL(ci, mr operand.Op) { - c.addinstruction(x86.RORL(ci, mr)) -} - -// RORL: Rotate Right. -// -// Forms: -// -// RORL 1 m32 -// RORL 1 r32 -// RORL cl m32 -// RORL cl r32 -// RORL imm8 m32 -// RORL imm8 r32 -// -// Construct and append a RORL instruction to the active function. -// Operates on the global context. -func RORL(ci, mr operand.Op) { ctx.RORL(ci, mr) } - -// RORQ: Rotate Right. -// -// Forms: -// -// RORQ 1 m64 -// RORQ 1 r64 -// RORQ cl m64 -// RORQ cl r64 -// RORQ imm8 m64 -// RORQ imm8 r64 -// -// Construct and append a RORQ instruction to the active function. -func (c *Context) RORQ(ci, mr operand.Op) { - c.addinstruction(x86.RORQ(ci, mr)) -} - -// RORQ: Rotate Right. -// -// Forms: -// -// RORQ 1 m64 -// RORQ 1 r64 -// RORQ cl m64 -// RORQ cl r64 -// RORQ imm8 m64 -// RORQ imm8 r64 -// -// Construct and append a RORQ instruction to the active function. -// Operates on the global context. -func RORQ(ci, mr operand.Op) { ctx.RORQ(ci, mr) } - -// RORW: Rotate Right. -// -// Forms: -// -// RORW 1 m16 -// RORW 1 r16 -// RORW cl m16 -// RORW cl r16 -// RORW imm8 m16 -// RORW imm8 r16 -// -// Construct and append a RORW instruction to the active function. -func (c *Context) RORW(ci, mr operand.Op) { - c.addinstruction(x86.RORW(ci, mr)) -} - -// RORW: Rotate Right. -// -// Forms: -// -// RORW 1 m16 -// RORW 1 r16 -// RORW cl m16 -// RORW cl r16 -// RORW imm8 m16 -// RORW imm8 r16 -// -// Construct and append a RORW instruction to the active function. -// Operates on the global context. -func RORW(ci, mr operand.Op) { ctx.RORW(ci, mr) } - -// RORXL: Rotate Right Logical Without Affecting Flags. -// -// Forms: -// -// RORXL imm8 m32 r32 -// RORXL imm8 r32 r32 -// -// Construct and append a RORXL instruction to the active function. -func (c *Context) RORXL(i, mr, r operand.Op) { - c.addinstruction(x86.RORXL(i, mr, r)) -} - -// RORXL: Rotate Right Logical Without Affecting Flags. -// -// Forms: -// -// RORXL imm8 m32 r32 -// RORXL imm8 r32 r32 -// -// Construct and append a RORXL instruction to the active function. -// Operates on the global context. -func RORXL(i, mr, r operand.Op) { ctx.RORXL(i, mr, r) } - -// RORXQ: Rotate Right Logical Without Affecting Flags. -// -// Forms: -// -// RORXQ imm8 m64 r64 -// RORXQ imm8 r64 r64 -// -// Construct and append a RORXQ instruction to the active function. -func (c *Context) RORXQ(i, mr, r operand.Op) { - c.addinstruction(x86.RORXQ(i, mr, r)) -} - -// RORXQ: Rotate Right Logical Without Affecting Flags. -// -// Forms: -// -// RORXQ imm8 m64 r64 -// RORXQ imm8 r64 r64 -// -// Construct and append a RORXQ instruction to the active function. -// Operates on the global context. -func RORXQ(i, mr, r operand.Op) { ctx.RORXQ(i, mr, r) } - -// ROUNDPD: Round Packed Double Precision Floating-Point Values. -// -// Forms: -// -// ROUNDPD imm8 m128 xmm -// ROUNDPD imm8 xmm xmm -// -// Construct and append a ROUNDPD instruction to the active function. -func (c *Context) ROUNDPD(i, mx, x operand.Op) { - c.addinstruction(x86.ROUNDPD(i, mx, x)) -} - -// ROUNDPD: Round Packed Double Precision Floating-Point Values. -// -// Forms: -// -// ROUNDPD imm8 m128 xmm -// ROUNDPD imm8 xmm xmm -// -// Construct and append a ROUNDPD instruction to the active function. -// Operates on the global context. -func ROUNDPD(i, mx, x operand.Op) { ctx.ROUNDPD(i, mx, x) } - -// ROUNDPS: Round Packed Single Precision Floating-Point Values. -// -// Forms: -// -// ROUNDPS imm8 m128 xmm -// ROUNDPS imm8 xmm xmm -// -// Construct and append a ROUNDPS instruction to the active function. -func (c *Context) ROUNDPS(i, mx, x operand.Op) { - c.addinstruction(x86.ROUNDPS(i, mx, x)) -} - -// ROUNDPS: Round Packed Single Precision Floating-Point Values. -// -// Forms: -// -// ROUNDPS imm8 m128 xmm -// ROUNDPS imm8 xmm xmm -// -// Construct and append a ROUNDPS instruction to the active function. -// Operates on the global context. -func ROUNDPS(i, mx, x operand.Op) { ctx.ROUNDPS(i, mx, x) } - -// ROUNDSD: Round Scalar Double Precision Floating-Point Values. -// -// Forms: -// -// ROUNDSD imm8 m64 xmm -// ROUNDSD imm8 xmm xmm -// -// Construct and append a ROUNDSD instruction to the active function. -func (c *Context) ROUNDSD(i, mx, x operand.Op) { - c.addinstruction(x86.ROUNDSD(i, mx, x)) -} - -// ROUNDSD: Round Scalar Double Precision Floating-Point Values. -// -// Forms: -// -// ROUNDSD imm8 m64 xmm -// ROUNDSD imm8 xmm xmm -// -// Construct and append a ROUNDSD instruction to the active function. -// Operates on the global context. -func ROUNDSD(i, mx, x operand.Op) { ctx.ROUNDSD(i, mx, x) } - -// ROUNDSS: Round Scalar Single Precision Floating-Point Values. -// -// Forms: -// -// ROUNDSS imm8 m32 xmm -// ROUNDSS imm8 xmm xmm -// -// Construct and append a ROUNDSS instruction to the active function. -func (c *Context) ROUNDSS(i, mx, x operand.Op) { - c.addinstruction(x86.ROUNDSS(i, mx, x)) -} - -// ROUNDSS: Round Scalar Single Precision Floating-Point Values. -// -// Forms: -// -// ROUNDSS imm8 m32 xmm -// ROUNDSS imm8 xmm xmm -// -// Construct and append a ROUNDSS instruction to the active function. -// Operates on the global context. -func ROUNDSS(i, mx, x operand.Op) { ctx.ROUNDSS(i, mx, x) } - -// RSQRTPS: Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// RSQRTPS m128 xmm -// RSQRTPS xmm xmm -// -// Construct and append a RSQRTPS instruction to the active function. -func (c *Context) RSQRTPS(mx, x operand.Op) { - c.addinstruction(x86.RSQRTPS(mx, x)) -} - -// RSQRTPS: Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// RSQRTPS m128 xmm -// RSQRTPS xmm xmm -// -// Construct and append a RSQRTPS instruction to the active function. -// Operates on the global context. -func RSQRTPS(mx, x operand.Op) { ctx.RSQRTPS(mx, x) } - -// RSQRTSS: Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// RSQRTSS m32 xmm -// RSQRTSS xmm xmm -// -// Construct and append a RSQRTSS instruction to the active function. -func (c *Context) RSQRTSS(mx, x operand.Op) { - c.addinstruction(x86.RSQRTSS(mx, x)) -} - -// RSQRTSS: Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// RSQRTSS m32 xmm -// RSQRTSS xmm xmm -// -// Construct and append a RSQRTSS instruction to the active function. -// Operates on the global context. -func RSQRTSS(mx, x operand.Op) { ctx.RSQRTSS(mx, x) } - -// SALB: Arithmetic Shift Left. -// -// Forms: -// -// SALB 1 m8 -// SALB 1 r8 -// SALB cl m8 -// SALB cl r8 -// SALB imm8 m8 -// SALB imm8 r8 -// -// Construct and append a SALB instruction to the active function. -func (c *Context) SALB(ci, mr operand.Op) { - c.addinstruction(x86.SALB(ci, mr)) -} - -// SALB: Arithmetic Shift Left. -// -// Forms: -// -// SALB 1 m8 -// SALB 1 r8 -// SALB cl m8 -// SALB cl r8 -// SALB imm8 m8 -// SALB imm8 r8 -// -// Construct and append a SALB instruction to the active function. -// Operates on the global context. -func SALB(ci, mr operand.Op) { ctx.SALB(ci, mr) } - -// SALL: Arithmetic Shift Left. -// -// Forms: -// -// SALL 1 m32 -// SALL 1 r32 -// SALL cl m32 -// SALL cl r32 -// SALL imm8 m32 -// SALL imm8 r32 -// -// Construct and append a SALL instruction to the active function. -func (c *Context) SALL(ci, mr operand.Op) { - c.addinstruction(x86.SALL(ci, mr)) -} - -// SALL: Arithmetic Shift Left. -// -// Forms: -// -// SALL 1 m32 -// SALL 1 r32 -// SALL cl m32 -// SALL cl r32 -// SALL imm8 m32 -// SALL imm8 r32 -// -// Construct and append a SALL instruction to the active function. -// Operates on the global context. -func SALL(ci, mr operand.Op) { ctx.SALL(ci, mr) } - -// SALQ: Arithmetic Shift Left. -// -// Forms: -// -// SALQ 1 m64 -// SALQ 1 r64 -// SALQ cl m64 -// SALQ cl r64 -// SALQ imm8 m64 -// SALQ imm8 r64 -// -// Construct and append a SALQ instruction to the active function. -func (c *Context) SALQ(ci, mr operand.Op) { - c.addinstruction(x86.SALQ(ci, mr)) -} - -// SALQ: Arithmetic Shift Left. -// -// Forms: -// -// SALQ 1 m64 -// SALQ 1 r64 -// SALQ cl m64 -// SALQ cl r64 -// SALQ imm8 m64 -// SALQ imm8 r64 -// -// Construct and append a SALQ instruction to the active function. -// Operates on the global context. -func SALQ(ci, mr operand.Op) { ctx.SALQ(ci, mr) } - -// SALW: Arithmetic Shift Left. -// -// Forms: -// -// SALW 1 m16 -// SALW 1 r16 -// SALW cl m16 -// SALW cl r16 -// SALW imm8 m16 -// SALW imm8 r16 -// -// Construct and append a SALW instruction to the active function. -func (c *Context) SALW(ci, mr operand.Op) { - c.addinstruction(x86.SALW(ci, mr)) -} - -// SALW: Arithmetic Shift Left. -// -// Forms: -// -// SALW 1 m16 -// SALW 1 r16 -// SALW cl m16 -// SALW cl r16 -// SALW imm8 m16 -// SALW imm8 r16 -// -// Construct and append a SALW instruction to the active function. -// Operates on the global context. -func SALW(ci, mr operand.Op) { ctx.SALW(ci, mr) } - -// SARB: Arithmetic Shift Right. -// -// Forms: -// -// SARB 1 m8 -// SARB 1 r8 -// SARB cl m8 -// SARB cl r8 -// SARB imm8 m8 -// SARB imm8 r8 -// -// Construct and append a SARB instruction to the active function. -func (c *Context) SARB(ci, mr operand.Op) { - c.addinstruction(x86.SARB(ci, mr)) -} - -// SARB: Arithmetic Shift Right. -// -// Forms: -// -// SARB 1 m8 -// SARB 1 r8 -// SARB cl m8 -// SARB cl r8 -// SARB imm8 m8 -// SARB imm8 r8 -// -// Construct and append a SARB instruction to the active function. -// Operates on the global context. -func SARB(ci, mr operand.Op) { ctx.SARB(ci, mr) } - -// SARL: Arithmetic Shift Right. -// -// Forms: -// -// SARL 1 m32 -// SARL 1 r32 -// SARL cl m32 -// SARL cl r32 -// SARL imm8 m32 -// SARL imm8 r32 -// -// Construct and append a SARL instruction to the active function. -func (c *Context) SARL(ci, mr operand.Op) { - c.addinstruction(x86.SARL(ci, mr)) -} - -// SARL: Arithmetic Shift Right. -// -// Forms: -// -// SARL 1 m32 -// SARL 1 r32 -// SARL cl m32 -// SARL cl r32 -// SARL imm8 m32 -// SARL imm8 r32 -// -// Construct and append a SARL instruction to the active function. -// Operates on the global context. -func SARL(ci, mr operand.Op) { ctx.SARL(ci, mr) } - -// SARQ: Arithmetic Shift Right. -// -// Forms: -// -// SARQ 1 m64 -// SARQ 1 r64 -// SARQ cl m64 -// SARQ cl r64 -// SARQ imm8 m64 -// SARQ imm8 r64 -// -// Construct and append a SARQ instruction to the active function. -func (c *Context) SARQ(ci, mr operand.Op) { - c.addinstruction(x86.SARQ(ci, mr)) -} - -// SARQ: Arithmetic Shift Right. -// -// Forms: -// -// SARQ 1 m64 -// SARQ 1 r64 -// SARQ cl m64 -// SARQ cl r64 -// SARQ imm8 m64 -// SARQ imm8 r64 -// -// Construct and append a SARQ instruction to the active function. -// Operates on the global context. -func SARQ(ci, mr operand.Op) { ctx.SARQ(ci, mr) } - -// SARW: Arithmetic Shift Right. -// -// Forms: -// -// SARW 1 m16 -// SARW 1 r16 -// SARW cl m16 -// SARW cl r16 -// SARW imm8 m16 -// SARW imm8 r16 -// -// Construct and append a SARW instruction to the active function. -func (c *Context) SARW(ci, mr operand.Op) { - c.addinstruction(x86.SARW(ci, mr)) -} - -// SARW: Arithmetic Shift Right. -// -// Forms: -// -// SARW 1 m16 -// SARW 1 r16 -// SARW cl m16 -// SARW cl r16 -// SARW imm8 m16 -// SARW imm8 r16 -// -// Construct and append a SARW instruction to the active function. -// Operates on the global context. -func SARW(ci, mr operand.Op) { ctx.SARW(ci, mr) } - -// SARXL: Arithmetic Shift Right Without Affecting Flags. -// -// Forms: -// -// SARXL r32 m32 r32 -// SARXL r32 r32 r32 -// -// Construct and append a SARXL instruction to the active function. -func (c *Context) SARXL(r, mr, r1 operand.Op) { - c.addinstruction(x86.SARXL(r, mr, r1)) -} - -// SARXL: Arithmetic Shift Right Without Affecting Flags. -// -// Forms: -// -// SARXL r32 m32 r32 -// SARXL r32 r32 r32 -// -// Construct and append a SARXL instruction to the active function. -// Operates on the global context. -func SARXL(r, mr, r1 operand.Op) { ctx.SARXL(r, mr, r1) } - -// SARXQ: Arithmetic Shift Right Without Affecting Flags. -// -// Forms: -// -// SARXQ r64 m64 r64 -// SARXQ r64 r64 r64 -// -// Construct and append a SARXQ instruction to the active function. -func (c *Context) SARXQ(r, mr, r1 operand.Op) { - c.addinstruction(x86.SARXQ(r, mr, r1)) -} - -// SARXQ: Arithmetic Shift Right Without Affecting Flags. -// -// Forms: -// -// SARXQ r64 m64 r64 -// SARXQ r64 r64 r64 -// -// Construct and append a SARXQ instruction to the active function. -// Operates on the global context. -func SARXQ(r, mr, r1 operand.Op) { ctx.SARXQ(r, mr, r1) } - -// SBBB: Subtract with Borrow. -// -// Forms: -// -// SBBB imm8 al -// SBBB imm8 m8 -// SBBB imm8 r8 -// SBBB m8 r8 -// SBBB r8 m8 -// SBBB r8 r8 -// -// Construct and append a SBBB instruction to the active function. -func (c *Context) SBBB(imr, amr operand.Op) { - c.addinstruction(x86.SBBB(imr, amr)) -} - -// SBBB: Subtract with Borrow. -// -// Forms: -// -// SBBB imm8 al -// SBBB imm8 m8 -// SBBB imm8 r8 -// SBBB m8 r8 -// SBBB r8 m8 -// SBBB r8 r8 -// -// Construct and append a SBBB instruction to the active function. -// Operates on the global context. -func SBBB(imr, amr operand.Op) { ctx.SBBB(imr, amr) } - -// SBBL: Subtract with Borrow. -// -// Forms: -// -// SBBL imm32 eax -// SBBL imm32 m32 -// SBBL imm32 r32 -// SBBL imm8 m32 -// SBBL imm8 r32 -// SBBL m32 r32 -// SBBL r32 m32 -// SBBL r32 r32 -// -// Construct and append a SBBL instruction to the active function. -func (c *Context) SBBL(imr, emr operand.Op) { - c.addinstruction(x86.SBBL(imr, emr)) -} - -// SBBL: Subtract with Borrow. -// -// Forms: -// -// SBBL imm32 eax -// SBBL imm32 m32 -// SBBL imm32 r32 -// SBBL imm8 m32 -// SBBL imm8 r32 -// SBBL m32 r32 -// SBBL r32 m32 -// SBBL r32 r32 -// -// Construct and append a SBBL instruction to the active function. -// Operates on the global context. -func SBBL(imr, emr operand.Op) { ctx.SBBL(imr, emr) } - -// SBBQ: Subtract with Borrow. -// -// Forms: -// -// SBBQ imm32 m64 -// SBBQ imm32 r64 -// SBBQ imm32 rax -// SBBQ imm8 m64 -// SBBQ imm8 r64 -// SBBQ m64 r64 -// SBBQ r64 m64 -// SBBQ r64 r64 -// -// Construct and append a SBBQ instruction to the active function. -func (c *Context) SBBQ(imr, mr operand.Op) { - c.addinstruction(x86.SBBQ(imr, mr)) -} - -// SBBQ: Subtract with Borrow. -// -// Forms: -// -// SBBQ imm32 m64 -// SBBQ imm32 r64 -// SBBQ imm32 rax -// SBBQ imm8 m64 -// SBBQ imm8 r64 -// SBBQ m64 r64 -// SBBQ r64 m64 -// SBBQ r64 r64 -// -// Construct and append a SBBQ instruction to the active function. -// Operates on the global context. -func SBBQ(imr, mr operand.Op) { ctx.SBBQ(imr, mr) } - -// SBBW: Subtract with Borrow. -// -// Forms: -// -// SBBW imm16 ax -// SBBW imm16 m16 -// SBBW imm16 r16 -// SBBW imm8 m16 -// SBBW imm8 r16 -// SBBW m16 r16 -// SBBW r16 m16 -// SBBW r16 r16 -// -// Construct and append a SBBW instruction to the active function. -func (c *Context) SBBW(imr, amr operand.Op) { - c.addinstruction(x86.SBBW(imr, amr)) -} - -// SBBW: Subtract with Borrow. -// -// Forms: -// -// SBBW imm16 ax -// SBBW imm16 m16 -// SBBW imm16 r16 -// SBBW imm8 m16 -// SBBW imm8 r16 -// SBBW m16 r16 -// SBBW r16 m16 -// SBBW r16 r16 -// -// Construct and append a SBBW instruction to the active function. -// Operates on the global context. -func SBBW(imr, amr operand.Op) { ctx.SBBW(imr, amr) } - -// SETCC: Set byte if above or equal (CF == 0). -// -// Forms: -// -// SETCC m8 -// SETCC r8 -// -// Construct and append a SETCC instruction to the active function. -func (c *Context) SETCC(mr operand.Op) { - c.addinstruction(x86.SETCC(mr)) -} - -// SETCC: Set byte if above or equal (CF == 0). -// -// Forms: -// -// SETCC m8 -// SETCC r8 -// -// Construct and append a SETCC instruction to the active function. -// Operates on the global context. -func SETCC(mr operand.Op) { ctx.SETCC(mr) } - -// SETCS: Set byte if below (CF == 1). -// -// Forms: -// -// SETCS m8 -// SETCS r8 -// -// Construct and append a SETCS instruction to the active function. -func (c *Context) SETCS(mr operand.Op) { - c.addinstruction(x86.SETCS(mr)) -} - -// SETCS: Set byte if below (CF == 1). -// -// Forms: -// -// SETCS m8 -// SETCS r8 -// -// Construct and append a SETCS instruction to the active function. -// Operates on the global context. -func SETCS(mr operand.Op) { ctx.SETCS(mr) } - -// SETEQ: Set byte if equal (ZF == 1). -// -// Forms: -// -// SETEQ m8 -// SETEQ r8 -// -// Construct and append a SETEQ instruction to the active function. -func (c *Context) SETEQ(mr operand.Op) { - c.addinstruction(x86.SETEQ(mr)) -} - -// SETEQ: Set byte if equal (ZF == 1). -// -// Forms: -// -// SETEQ m8 -// SETEQ r8 -// -// Construct and append a SETEQ instruction to the active function. -// Operates on the global context. -func SETEQ(mr operand.Op) { ctx.SETEQ(mr) } - -// SETGE: Set byte if greater or equal (SF == OF). -// -// Forms: -// -// SETGE m8 -// SETGE r8 -// -// Construct and append a SETGE instruction to the active function. -func (c *Context) SETGE(mr operand.Op) { - c.addinstruction(x86.SETGE(mr)) -} - -// SETGE: Set byte if greater or equal (SF == OF). -// -// Forms: -// -// SETGE m8 -// SETGE r8 -// -// Construct and append a SETGE instruction to the active function. -// Operates on the global context. -func SETGE(mr operand.Op) { ctx.SETGE(mr) } - -// SETGT: Set byte if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// SETGT m8 -// SETGT r8 -// -// Construct and append a SETGT instruction to the active function. -func (c *Context) SETGT(mr operand.Op) { - c.addinstruction(x86.SETGT(mr)) -} - -// SETGT: Set byte if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// SETGT m8 -// SETGT r8 -// -// Construct and append a SETGT instruction to the active function. -// Operates on the global context. -func SETGT(mr operand.Op) { ctx.SETGT(mr) } - -// SETHI: Set byte if above (CF == 0 and ZF == 0). -// -// Forms: -// -// SETHI m8 -// SETHI r8 -// -// Construct and append a SETHI instruction to the active function. -func (c *Context) SETHI(mr operand.Op) { - c.addinstruction(x86.SETHI(mr)) -} - -// SETHI: Set byte if above (CF == 0 and ZF == 0). -// -// Forms: -// -// SETHI m8 -// SETHI r8 -// -// Construct and append a SETHI instruction to the active function. -// Operates on the global context. -func SETHI(mr operand.Op) { ctx.SETHI(mr) } - -// SETLE: Set byte if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// SETLE m8 -// SETLE r8 -// -// Construct and append a SETLE instruction to the active function. -func (c *Context) SETLE(mr operand.Op) { - c.addinstruction(x86.SETLE(mr)) -} - -// SETLE: Set byte if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// SETLE m8 -// SETLE r8 -// -// Construct and append a SETLE instruction to the active function. -// Operates on the global context. -func SETLE(mr operand.Op) { ctx.SETLE(mr) } - -// SETLS: Set byte if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// SETLS m8 -// SETLS r8 -// -// Construct and append a SETLS instruction to the active function. -func (c *Context) SETLS(mr operand.Op) { - c.addinstruction(x86.SETLS(mr)) -} - -// SETLS: Set byte if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// SETLS m8 -// SETLS r8 -// -// Construct and append a SETLS instruction to the active function. -// Operates on the global context. -func SETLS(mr operand.Op) { ctx.SETLS(mr) } - -// SETLT: Set byte if less (SF != OF). -// -// Forms: -// -// SETLT m8 -// SETLT r8 -// -// Construct and append a SETLT instruction to the active function. -func (c *Context) SETLT(mr operand.Op) { - c.addinstruction(x86.SETLT(mr)) -} - -// SETLT: Set byte if less (SF != OF). -// -// Forms: -// -// SETLT m8 -// SETLT r8 -// -// Construct and append a SETLT instruction to the active function. -// Operates on the global context. -func SETLT(mr operand.Op) { ctx.SETLT(mr) } - -// SETMI: Set byte if sign (SF == 1). -// -// Forms: -// -// SETMI m8 -// SETMI r8 -// -// Construct and append a SETMI instruction to the active function. -func (c *Context) SETMI(mr operand.Op) { - c.addinstruction(x86.SETMI(mr)) -} - -// SETMI: Set byte if sign (SF == 1). -// -// Forms: -// -// SETMI m8 -// SETMI r8 -// -// Construct and append a SETMI instruction to the active function. -// Operates on the global context. -func SETMI(mr operand.Op) { ctx.SETMI(mr) } - -// SETNE: Set byte if not equal (ZF == 0). -// -// Forms: -// -// SETNE m8 -// SETNE r8 -// -// Construct and append a SETNE instruction to the active function. -func (c *Context) SETNE(mr operand.Op) { - c.addinstruction(x86.SETNE(mr)) -} - -// SETNE: Set byte if not equal (ZF == 0). -// -// Forms: -// -// SETNE m8 -// SETNE r8 -// -// Construct and append a SETNE instruction to the active function. -// Operates on the global context. -func SETNE(mr operand.Op) { ctx.SETNE(mr) } - -// SETOC: Set byte if not overflow (OF == 0). -// -// Forms: -// -// SETOC m8 -// SETOC r8 -// -// Construct and append a SETOC instruction to the active function. -func (c *Context) SETOC(mr operand.Op) { - c.addinstruction(x86.SETOC(mr)) -} - -// SETOC: Set byte if not overflow (OF == 0). -// -// Forms: -// -// SETOC m8 -// SETOC r8 -// -// Construct and append a SETOC instruction to the active function. -// Operates on the global context. -func SETOC(mr operand.Op) { ctx.SETOC(mr) } - -// SETOS: Set byte if overflow (OF == 1). -// -// Forms: -// -// SETOS m8 -// SETOS r8 -// -// Construct and append a SETOS instruction to the active function. -func (c *Context) SETOS(mr operand.Op) { - c.addinstruction(x86.SETOS(mr)) -} - -// SETOS: Set byte if overflow (OF == 1). -// -// Forms: -// -// SETOS m8 -// SETOS r8 -// -// Construct and append a SETOS instruction to the active function. -// Operates on the global context. -func SETOS(mr operand.Op) { ctx.SETOS(mr) } - -// SETPC: Set byte if not parity (PF == 0). -// -// Forms: -// -// SETPC m8 -// SETPC r8 -// -// Construct and append a SETPC instruction to the active function. -func (c *Context) SETPC(mr operand.Op) { - c.addinstruction(x86.SETPC(mr)) -} - -// SETPC: Set byte if not parity (PF == 0). -// -// Forms: -// -// SETPC m8 -// SETPC r8 -// -// Construct and append a SETPC instruction to the active function. -// Operates on the global context. -func SETPC(mr operand.Op) { ctx.SETPC(mr) } - -// SETPL: Set byte if not sign (SF == 0). -// -// Forms: -// -// SETPL m8 -// SETPL r8 -// -// Construct and append a SETPL instruction to the active function. -func (c *Context) SETPL(mr operand.Op) { - c.addinstruction(x86.SETPL(mr)) -} - -// SETPL: Set byte if not sign (SF == 0). -// -// Forms: -// -// SETPL m8 -// SETPL r8 -// -// Construct and append a SETPL instruction to the active function. -// Operates on the global context. -func SETPL(mr operand.Op) { ctx.SETPL(mr) } - -// SETPS: Set byte if parity (PF == 1). -// -// Forms: -// -// SETPS m8 -// SETPS r8 -// -// Construct and append a SETPS instruction to the active function. -func (c *Context) SETPS(mr operand.Op) { - c.addinstruction(x86.SETPS(mr)) -} - -// SETPS: Set byte if parity (PF == 1). -// -// Forms: -// -// SETPS m8 -// SETPS r8 -// -// Construct and append a SETPS instruction to the active function. -// Operates on the global context. -func SETPS(mr operand.Op) { ctx.SETPS(mr) } - -// SFENCE: Store Fence. -// -// Forms: -// -// SFENCE -// -// Construct and append a SFENCE instruction to the active function. -func (c *Context) SFENCE() { - c.addinstruction(x86.SFENCE()) -} - -// SFENCE: Store Fence. -// -// Forms: -// -// SFENCE -// -// Construct and append a SFENCE instruction to the active function. -// Operates on the global context. -func SFENCE() { ctx.SFENCE() } - -// SHA1MSG1: Perform an Intermediate Calculation for the Next Four SHA1 Message Doublewords. -// -// Forms: -// -// SHA1MSG1 m128 xmm -// SHA1MSG1 xmm xmm -// -// Construct and append a SHA1MSG1 instruction to the active function. -func (c *Context) SHA1MSG1(mx, x operand.Op) { - c.addinstruction(x86.SHA1MSG1(mx, x)) -} - -// SHA1MSG1: Perform an Intermediate Calculation for the Next Four SHA1 Message Doublewords. -// -// Forms: -// -// SHA1MSG1 m128 xmm -// SHA1MSG1 xmm xmm -// -// Construct and append a SHA1MSG1 instruction to the active function. -// Operates on the global context. -func SHA1MSG1(mx, x operand.Op) { ctx.SHA1MSG1(mx, x) } - -// SHA1MSG2: Perform a Final Calculation for the Next Four SHA1 Message Doublewords. -// -// Forms: -// -// SHA1MSG2 m128 xmm -// SHA1MSG2 xmm xmm -// -// Construct and append a SHA1MSG2 instruction to the active function. -func (c *Context) SHA1MSG2(mx, x operand.Op) { - c.addinstruction(x86.SHA1MSG2(mx, x)) -} - -// SHA1MSG2: Perform a Final Calculation for the Next Four SHA1 Message Doublewords. -// -// Forms: -// -// SHA1MSG2 m128 xmm -// SHA1MSG2 xmm xmm -// -// Construct and append a SHA1MSG2 instruction to the active function. -// Operates on the global context. -func SHA1MSG2(mx, x operand.Op) { ctx.SHA1MSG2(mx, x) } - -// SHA1NEXTE: Calculate SHA1 State Variable E after Four Rounds. -// -// Forms: -// -// SHA1NEXTE m128 xmm -// SHA1NEXTE xmm xmm -// -// Construct and append a SHA1NEXTE instruction to the active function. -func (c *Context) SHA1NEXTE(mx, x operand.Op) { - c.addinstruction(x86.SHA1NEXTE(mx, x)) -} - -// SHA1NEXTE: Calculate SHA1 State Variable E after Four Rounds. -// -// Forms: -// -// SHA1NEXTE m128 xmm -// SHA1NEXTE xmm xmm -// -// Construct and append a SHA1NEXTE instruction to the active function. -// Operates on the global context. -func SHA1NEXTE(mx, x operand.Op) { ctx.SHA1NEXTE(mx, x) } - -// SHA1RNDS4: Perform Four Rounds of SHA1 Operation. -// -// Forms: -// -// SHA1RNDS4 imm2u m128 xmm -// SHA1RNDS4 imm2u xmm xmm -// -// Construct and append a SHA1RNDS4 instruction to the active function. -func (c *Context) SHA1RNDS4(i, mx, x operand.Op) { - c.addinstruction(x86.SHA1RNDS4(i, mx, x)) -} - -// SHA1RNDS4: Perform Four Rounds of SHA1 Operation. -// -// Forms: -// -// SHA1RNDS4 imm2u m128 xmm -// SHA1RNDS4 imm2u xmm xmm -// -// Construct and append a SHA1RNDS4 instruction to the active function. -// Operates on the global context. -func SHA1RNDS4(i, mx, x operand.Op) { ctx.SHA1RNDS4(i, mx, x) } - -// SHA256MSG1: Perform an Intermediate Calculation for the Next Four SHA256 Message Doublewords. -// -// Forms: -// -// SHA256MSG1 m128 xmm -// SHA256MSG1 xmm xmm -// -// Construct and append a SHA256MSG1 instruction to the active function. -func (c *Context) SHA256MSG1(mx, x operand.Op) { - c.addinstruction(x86.SHA256MSG1(mx, x)) -} - -// SHA256MSG1: Perform an Intermediate Calculation for the Next Four SHA256 Message Doublewords. -// -// Forms: -// -// SHA256MSG1 m128 xmm -// SHA256MSG1 xmm xmm -// -// Construct and append a SHA256MSG1 instruction to the active function. -// Operates on the global context. -func SHA256MSG1(mx, x operand.Op) { ctx.SHA256MSG1(mx, x) } - -// SHA256MSG2: Perform a Final Calculation for the Next Four SHA256 Message Doublewords. -// -// Forms: -// -// SHA256MSG2 m128 xmm -// SHA256MSG2 xmm xmm -// -// Construct and append a SHA256MSG2 instruction to the active function. -func (c *Context) SHA256MSG2(mx, x operand.Op) { - c.addinstruction(x86.SHA256MSG2(mx, x)) -} - -// SHA256MSG2: Perform a Final Calculation for the Next Four SHA256 Message Doublewords. -// -// Forms: -// -// SHA256MSG2 m128 xmm -// SHA256MSG2 xmm xmm -// -// Construct and append a SHA256MSG2 instruction to the active function. -// Operates on the global context. -func SHA256MSG2(mx, x operand.Op) { ctx.SHA256MSG2(mx, x) } - -// SHA256RNDS2: Perform Two Rounds of SHA256 Operation. -// -// Forms: -// -// SHA256RNDS2 xmm0 m128 xmm -// SHA256RNDS2 xmm0 xmm xmm -// -// Construct and append a SHA256RNDS2 instruction to the active function. -func (c *Context) SHA256RNDS2(x, mx, x1 operand.Op) { - c.addinstruction(x86.SHA256RNDS2(x, mx, x1)) -} - -// SHA256RNDS2: Perform Two Rounds of SHA256 Operation. -// -// Forms: -// -// SHA256RNDS2 xmm0 m128 xmm -// SHA256RNDS2 xmm0 xmm xmm -// -// Construct and append a SHA256RNDS2 instruction to the active function. -// Operates on the global context. -func SHA256RNDS2(x, mx, x1 operand.Op) { ctx.SHA256RNDS2(x, mx, x1) } - -// SHLB: Logical Shift Left. -// -// Forms: -// -// SHLB 1 m8 -// SHLB 1 r8 -// SHLB cl m8 -// SHLB cl r8 -// SHLB imm8 m8 -// SHLB imm8 r8 -// -// Construct and append a SHLB instruction to the active function. -func (c *Context) SHLB(ci, mr operand.Op) { - c.addinstruction(x86.SHLB(ci, mr)) -} - -// SHLB: Logical Shift Left. -// -// Forms: -// -// SHLB 1 m8 -// SHLB 1 r8 -// SHLB cl m8 -// SHLB cl r8 -// SHLB imm8 m8 -// SHLB imm8 r8 -// -// Construct and append a SHLB instruction to the active function. -// Operates on the global context. -func SHLB(ci, mr operand.Op) { ctx.SHLB(ci, mr) } - -// SHLL: Logical Shift Left. -// -// Forms: -// -// SHLL 1 m32 -// SHLL 1 r32 -// SHLL cl m32 -// SHLL cl r32 -// SHLL cl r32 m32 -// SHLL cl r32 r32 -// SHLL imm8 m32 -// SHLL imm8 r32 -// SHLL imm8 r32 m32 -// SHLL imm8 r32 r32 -// -// Construct and append a SHLL instruction to the active function. -func (c *Context) SHLL(ops ...operand.Op) { - c.addinstruction(x86.SHLL(ops...)) -} - -// SHLL: Logical Shift Left. -// -// Forms: -// -// SHLL 1 m32 -// SHLL 1 r32 -// SHLL cl m32 -// SHLL cl r32 -// SHLL cl r32 m32 -// SHLL cl r32 r32 -// SHLL imm8 m32 -// SHLL imm8 r32 -// SHLL imm8 r32 m32 -// SHLL imm8 r32 r32 -// -// Construct and append a SHLL instruction to the active function. -// Operates on the global context. -func SHLL(ops ...operand.Op) { ctx.SHLL(ops...) } - -// SHLQ: Logical Shift Left. -// -// Forms: -// -// SHLQ 1 m64 -// SHLQ 1 r64 -// SHLQ cl m64 -// SHLQ cl r64 -// SHLQ cl r64 m64 -// SHLQ cl r64 r64 -// SHLQ imm8 m64 -// SHLQ imm8 r64 -// SHLQ imm8 r64 m64 -// SHLQ imm8 r64 r64 -// -// Construct and append a SHLQ instruction to the active function. -func (c *Context) SHLQ(ops ...operand.Op) { - c.addinstruction(x86.SHLQ(ops...)) -} - -// SHLQ: Logical Shift Left. -// -// Forms: -// -// SHLQ 1 m64 -// SHLQ 1 r64 -// SHLQ cl m64 -// SHLQ cl r64 -// SHLQ cl r64 m64 -// SHLQ cl r64 r64 -// SHLQ imm8 m64 -// SHLQ imm8 r64 -// SHLQ imm8 r64 m64 -// SHLQ imm8 r64 r64 -// -// Construct and append a SHLQ instruction to the active function. -// Operates on the global context. -func SHLQ(ops ...operand.Op) { ctx.SHLQ(ops...) } - -// SHLW: Logical Shift Left. -// -// Forms: -// -// SHLW 1 m16 -// SHLW 1 r16 -// SHLW cl m16 -// SHLW cl r16 -// SHLW cl r16 m16 -// SHLW cl r16 r16 -// SHLW imm8 m16 -// SHLW imm8 r16 -// SHLW imm8 r16 m16 -// SHLW imm8 r16 r16 -// -// Construct and append a SHLW instruction to the active function. -func (c *Context) SHLW(ops ...operand.Op) { - c.addinstruction(x86.SHLW(ops...)) -} - -// SHLW: Logical Shift Left. -// -// Forms: -// -// SHLW 1 m16 -// SHLW 1 r16 -// SHLW cl m16 -// SHLW cl r16 -// SHLW cl r16 m16 -// SHLW cl r16 r16 -// SHLW imm8 m16 -// SHLW imm8 r16 -// SHLW imm8 r16 m16 -// SHLW imm8 r16 r16 -// -// Construct and append a SHLW instruction to the active function. -// Operates on the global context. -func SHLW(ops ...operand.Op) { ctx.SHLW(ops...) } - -// SHLXL: Logical Shift Left Without Affecting Flags. -// -// Forms: -// -// SHLXL r32 m32 r32 -// SHLXL r32 r32 r32 -// -// Construct and append a SHLXL instruction to the active function. -func (c *Context) SHLXL(r, mr, r1 operand.Op) { - c.addinstruction(x86.SHLXL(r, mr, r1)) -} - -// SHLXL: Logical Shift Left Without Affecting Flags. -// -// Forms: -// -// SHLXL r32 m32 r32 -// SHLXL r32 r32 r32 -// -// Construct and append a SHLXL instruction to the active function. -// Operates on the global context. -func SHLXL(r, mr, r1 operand.Op) { ctx.SHLXL(r, mr, r1) } - -// SHLXQ: Logical Shift Left Without Affecting Flags. -// -// Forms: -// -// SHLXQ r64 m64 r64 -// SHLXQ r64 r64 r64 -// -// Construct and append a SHLXQ instruction to the active function. -func (c *Context) SHLXQ(r, mr, r1 operand.Op) { - c.addinstruction(x86.SHLXQ(r, mr, r1)) -} - -// SHLXQ: Logical Shift Left Without Affecting Flags. -// -// Forms: -// -// SHLXQ r64 m64 r64 -// SHLXQ r64 r64 r64 -// -// Construct and append a SHLXQ instruction to the active function. -// Operates on the global context. -func SHLXQ(r, mr, r1 operand.Op) { ctx.SHLXQ(r, mr, r1) } - -// SHRB: Logical Shift Right. -// -// Forms: -// -// SHRB 1 m8 -// SHRB 1 r8 -// SHRB cl m8 -// SHRB cl r8 -// SHRB imm8 m8 -// SHRB imm8 r8 -// -// Construct and append a SHRB instruction to the active function. -func (c *Context) SHRB(ci, mr operand.Op) { - c.addinstruction(x86.SHRB(ci, mr)) -} - -// SHRB: Logical Shift Right. -// -// Forms: -// -// SHRB 1 m8 -// SHRB 1 r8 -// SHRB cl m8 -// SHRB cl r8 -// SHRB imm8 m8 -// SHRB imm8 r8 -// -// Construct and append a SHRB instruction to the active function. -// Operates on the global context. -func SHRB(ci, mr operand.Op) { ctx.SHRB(ci, mr) } - -// SHRL: Logical Shift Right. -// -// Forms: -// -// SHRL 1 m32 -// SHRL 1 r32 -// SHRL cl m32 -// SHRL cl r32 -// SHRL cl r32 m32 -// SHRL cl r32 r32 -// SHRL imm8 m32 -// SHRL imm8 r32 -// SHRL imm8 r32 m32 -// SHRL imm8 r32 r32 -// -// Construct and append a SHRL instruction to the active function. -func (c *Context) SHRL(ops ...operand.Op) { - c.addinstruction(x86.SHRL(ops...)) -} - -// SHRL: Logical Shift Right. -// -// Forms: -// -// SHRL 1 m32 -// SHRL 1 r32 -// SHRL cl m32 -// SHRL cl r32 -// SHRL cl r32 m32 -// SHRL cl r32 r32 -// SHRL imm8 m32 -// SHRL imm8 r32 -// SHRL imm8 r32 m32 -// SHRL imm8 r32 r32 -// -// Construct and append a SHRL instruction to the active function. -// Operates on the global context. -func SHRL(ops ...operand.Op) { ctx.SHRL(ops...) } - -// SHRQ: Logical Shift Right. -// -// Forms: -// -// SHRQ 1 m64 -// SHRQ 1 r64 -// SHRQ cl m64 -// SHRQ cl r64 -// SHRQ cl r64 m64 -// SHRQ cl r64 r64 -// SHRQ imm8 m64 -// SHRQ imm8 r64 -// SHRQ imm8 r64 m64 -// SHRQ imm8 r64 r64 -// -// Construct and append a SHRQ instruction to the active function. -func (c *Context) SHRQ(ops ...operand.Op) { - c.addinstruction(x86.SHRQ(ops...)) -} - -// SHRQ: Logical Shift Right. -// -// Forms: -// -// SHRQ 1 m64 -// SHRQ 1 r64 -// SHRQ cl m64 -// SHRQ cl r64 -// SHRQ cl r64 m64 -// SHRQ cl r64 r64 -// SHRQ imm8 m64 -// SHRQ imm8 r64 -// SHRQ imm8 r64 m64 -// SHRQ imm8 r64 r64 -// -// Construct and append a SHRQ instruction to the active function. -// Operates on the global context. -func SHRQ(ops ...operand.Op) { ctx.SHRQ(ops...) } - -// SHRW: Logical Shift Right. -// -// Forms: -// -// SHRW 1 m16 -// SHRW 1 r16 -// SHRW cl m16 -// SHRW cl r16 -// SHRW cl r16 m16 -// SHRW cl r16 r16 -// SHRW imm8 m16 -// SHRW imm8 r16 -// SHRW imm8 r16 m16 -// SHRW imm8 r16 r16 -// -// Construct and append a SHRW instruction to the active function. -func (c *Context) SHRW(ops ...operand.Op) { - c.addinstruction(x86.SHRW(ops...)) -} - -// SHRW: Logical Shift Right. -// -// Forms: -// -// SHRW 1 m16 -// SHRW 1 r16 -// SHRW cl m16 -// SHRW cl r16 -// SHRW cl r16 m16 -// SHRW cl r16 r16 -// SHRW imm8 m16 -// SHRW imm8 r16 -// SHRW imm8 r16 m16 -// SHRW imm8 r16 r16 -// -// Construct and append a SHRW instruction to the active function. -// Operates on the global context. -func SHRW(ops ...operand.Op) { ctx.SHRW(ops...) } - -// SHRXL: Logical Shift Right Without Affecting Flags. -// -// Forms: -// -// SHRXL r32 m32 r32 -// SHRXL r32 r32 r32 -// -// Construct and append a SHRXL instruction to the active function. -func (c *Context) SHRXL(r, mr, r1 operand.Op) { - c.addinstruction(x86.SHRXL(r, mr, r1)) -} - -// SHRXL: Logical Shift Right Without Affecting Flags. -// -// Forms: -// -// SHRXL r32 m32 r32 -// SHRXL r32 r32 r32 -// -// Construct and append a SHRXL instruction to the active function. -// Operates on the global context. -func SHRXL(r, mr, r1 operand.Op) { ctx.SHRXL(r, mr, r1) } - -// SHRXQ: Logical Shift Right Without Affecting Flags. -// -// Forms: -// -// SHRXQ r64 m64 r64 -// SHRXQ r64 r64 r64 -// -// Construct and append a SHRXQ instruction to the active function. -func (c *Context) SHRXQ(r, mr, r1 operand.Op) { - c.addinstruction(x86.SHRXQ(r, mr, r1)) -} - -// SHRXQ: Logical Shift Right Without Affecting Flags. -// -// Forms: -// -// SHRXQ r64 m64 r64 -// SHRXQ r64 r64 r64 -// -// Construct and append a SHRXQ instruction to the active function. -// Operates on the global context. -func SHRXQ(r, mr, r1 operand.Op) { ctx.SHRXQ(r, mr, r1) } - -// SHUFPD: Shuffle Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// SHUFPD imm8 m128 xmm -// SHUFPD imm8 xmm xmm -// -// Construct and append a SHUFPD instruction to the active function. -func (c *Context) SHUFPD(i, mx, x operand.Op) { - c.addinstruction(x86.SHUFPD(i, mx, x)) -} - -// SHUFPD: Shuffle Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// SHUFPD imm8 m128 xmm -// SHUFPD imm8 xmm xmm -// -// Construct and append a SHUFPD instruction to the active function. -// Operates on the global context. -func SHUFPD(i, mx, x operand.Op) { ctx.SHUFPD(i, mx, x) } - -// SHUFPS: Shuffle Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// SHUFPS imm8 m128 xmm -// SHUFPS imm8 xmm xmm -// -// Construct and append a SHUFPS instruction to the active function. -func (c *Context) SHUFPS(i, mx, x operand.Op) { - c.addinstruction(x86.SHUFPS(i, mx, x)) -} - -// SHUFPS: Shuffle Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// SHUFPS imm8 m128 xmm -// SHUFPS imm8 xmm xmm -// -// Construct and append a SHUFPS instruction to the active function. -// Operates on the global context. -func SHUFPS(i, mx, x operand.Op) { ctx.SHUFPS(i, mx, x) } - -// SQRTPD: Compute Square Roots of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// SQRTPD m128 xmm -// SQRTPD xmm xmm -// -// Construct and append a SQRTPD instruction to the active function. -func (c *Context) SQRTPD(mx, x operand.Op) { - c.addinstruction(x86.SQRTPD(mx, x)) -} - -// SQRTPD: Compute Square Roots of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// SQRTPD m128 xmm -// SQRTPD xmm xmm -// -// Construct and append a SQRTPD instruction to the active function. -// Operates on the global context. -func SQRTPD(mx, x operand.Op) { ctx.SQRTPD(mx, x) } - -// SQRTPS: Compute Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// SQRTPS m128 xmm -// SQRTPS xmm xmm -// -// Construct and append a SQRTPS instruction to the active function. -func (c *Context) SQRTPS(mx, x operand.Op) { - c.addinstruction(x86.SQRTPS(mx, x)) -} - -// SQRTPS: Compute Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// SQRTPS m128 xmm -// SQRTPS xmm xmm -// -// Construct and append a SQRTPS instruction to the active function. -// Operates on the global context. -func SQRTPS(mx, x operand.Op) { ctx.SQRTPS(mx, x) } - -// SQRTSD: Compute Square Root of Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// SQRTSD m64 xmm -// SQRTSD xmm xmm -// -// Construct and append a SQRTSD instruction to the active function. -func (c *Context) SQRTSD(mx, x operand.Op) { - c.addinstruction(x86.SQRTSD(mx, x)) -} - -// SQRTSD: Compute Square Root of Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// SQRTSD m64 xmm -// SQRTSD xmm xmm -// -// Construct and append a SQRTSD instruction to the active function. -// Operates on the global context. -func SQRTSD(mx, x operand.Op) { ctx.SQRTSD(mx, x) } - -// SQRTSS: Compute Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// SQRTSS m32 xmm -// SQRTSS xmm xmm -// -// Construct and append a SQRTSS instruction to the active function. -func (c *Context) SQRTSS(mx, x operand.Op) { - c.addinstruction(x86.SQRTSS(mx, x)) -} - -// SQRTSS: Compute Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// SQRTSS m32 xmm -// SQRTSS xmm xmm -// -// Construct and append a SQRTSS instruction to the active function. -// Operates on the global context. -func SQRTSS(mx, x operand.Op) { ctx.SQRTSS(mx, x) } - -// STC: Set Carry Flag. -// -// Forms: -// -// STC -// -// Construct and append a STC instruction to the active function. -func (c *Context) STC() { - c.addinstruction(x86.STC()) -} - -// STC: Set Carry Flag. -// -// Forms: -// -// STC -// -// Construct and append a STC instruction to the active function. -// Operates on the global context. -func STC() { ctx.STC() } - -// STD: Set Direction Flag. -// -// Forms: -// -// STD -// -// Construct and append a STD instruction to the active function. -func (c *Context) STD() { - c.addinstruction(x86.STD()) -} - -// STD: Set Direction Flag. -// -// Forms: -// -// STD -// -// Construct and append a STD instruction to the active function. -// Operates on the global context. -func STD() { ctx.STD() } - -// STMXCSR: Store MXCSR Register State. -// -// Forms: -// -// STMXCSR m32 -// -// Construct and append a STMXCSR instruction to the active function. -func (c *Context) STMXCSR(m operand.Op) { - c.addinstruction(x86.STMXCSR(m)) -} - -// STMXCSR: Store MXCSR Register State. -// -// Forms: -// -// STMXCSR m32 -// -// Construct and append a STMXCSR instruction to the active function. -// Operates on the global context. -func STMXCSR(m operand.Op) { ctx.STMXCSR(m) } - -// SUBB: Subtract. -// -// Forms: -// -// SUBB imm8 al -// SUBB imm8 m8 -// SUBB imm8 r8 -// SUBB m8 r8 -// SUBB r8 m8 -// SUBB r8 r8 -// -// Construct and append a SUBB instruction to the active function. -func (c *Context) SUBB(imr, amr operand.Op) { - c.addinstruction(x86.SUBB(imr, amr)) -} - -// SUBB: Subtract. -// -// Forms: -// -// SUBB imm8 al -// SUBB imm8 m8 -// SUBB imm8 r8 -// SUBB m8 r8 -// SUBB r8 m8 -// SUBB r8 r8 -// -// Construct and append a SUBB instruction to the active function. -// Operates on the global context. -func SUBB(imr, amr operand.Op) { ctx.SUBB(imr, amr) } - -// SUBL: Subtract. -// -// Forms: -// -// SUBL imm32 eax -// SUBL imm32 m32 -// SUBL imm32 r32 -// SUBL imm8 m32 -// SUBL imm8 r32 -// SUBL m32 r32 -// SUBL r32 m32 -// SUBL r32 r32 -// -// Construct and append a SUBL instruction to the active function. -func (c *Context) SUBL(imr, emr operand.Op) { - c.addinstruction(x86.SUBL(imr, emr)) -} - -// SUBL: Subtract. -// -// Forms: -// -// SUBL imm32 eax -// SUBL imm32 m32 -// SUBL imm32 r32 -// SUBL imm8 m32 -// SUBL imm8 r32 -// SUBL m32 r32 -// SUBL r32 m32 -// SUBL r32 r32 -// -// Construct and append a SUBL instruction to the active function. -// Operates on the global context. -func SUBL(imr, emr operand.Op) { ctx.SUBL(imr, emr) } - -// SUBPD: Subtract Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// SUBPD m128 xmm -// SUBPD xmm xmm -// -// Construct and append a SUBPD instruction to the active function. -func (c *Context) SUBPD(mx, x operand.Op) { - c.addinstruction(x86.SUBPD(mx, x)) -} - -// SUBPD: Subtract Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// SUBPD m128 xmm -// SUBPD xmm xmm -// -// Construct and append a SUBPD instruction to the active function. -// Operates on the global context. -func SUBPD(mx, x operand.Op) { ctx.SUBPD(mx, x) } - -// SUBPS: Subtract Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// SUBPS m128 xmm -// SUBPS xmm xmm -// -// Construct and append a SUBPS instruction to the active function. -func (c *Context) SUBPS(mx, x operand.Op) { - c.addinstruction(x86.SUBPS(mx, x)) -} - -// SUBPS: Subtract Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// SUBPS m128 xmm -// SUBPS xmm xmm -// -// Construct and append a SUBPS instruction to the active function. -// Operates on the global context. -func SUBPS(mx, x operand.Op) { ctx.SUBPS(mx, x) } - -// SUBQ: Subtract. -// -// Forms: -// -// SUBQ imm32 m64 -// SUBQ imm32 r64 -// SUBQ imm32 rax -// SUBQ imm8 m64 -// SUBQ imm8 r64 -// SUBQ m64 r64 -// SUBQ r64 m64 -// SUBQ r64 r64 -// -// Construct and append a SUBQ instruction to the active function. -func (c *Context) SUBQ(imr, mr operand.Op) { - c.addinstruction(x86.SUBQ(imr, mr)) -} - -// SUBQ: Subtract. -// -// Forms: -// -// SUBQ imm32 m64 -// SUBQ imm32 r64 -// SUBQ imm32 rax -// SUBQ imm8 m64 -// SUBQ imm8 r64 -// SUBQ m64 r64 -// SUBQ r64 m64 -// SUBQ r64 r64 -// -// Construct and append a SUBQ instruction to the active function. -// Operates on the global context. -func SUBQ(imr, mr operand.Op) { ctx.SUBQ(imr, mr) } - -// SUBSD: Subtract Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// SUBSD m64 xmm -// SUBSD xmm xmm -// -// Construct and append a SUBSD instruction to the active function. -func (c *Context) SUBSD(mx, x operand.Op) { - c.addinstruction(x86.SUBSD(mx, x)) -} - -// SUBSD: Subtract Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// SUBSD m64 xmm -// SUBSD xmm xmm -// -// Construct and append a SUBSD instruction to the active function. -// Operates on the global context. -func SUBSD(mx, x operand.Op) { ctx.SUBSD(mx, x) } - -// SUBSS: Subtract Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// SUBSS m32 xmm -// SUBSS xmm xmm -// -// Construct and append a SUBSS instruction to the active function. -func (c *Context) SUBSS(mx, x operand.Op) { - c.addinstruction(x86.SUBSS(mx, x)) -} - -// SUBSS: Subtract Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// SUBSS m32 xmm -// SUBSS xmm xmm -// -// Construct and append a SUBSS instruction to the active function. -// Operates on the global context. -func SUBSS(mx, x operand.Op) { ctx.SUBSS(mx, x) } - -// SUBW: Subtract. -// -// Forms: -// -// SUBW imm16 ax -// SUBW imm16 m16 -// SUBW imm16 r16 -// SUBW imm8 m16 -// SUBW imm8 r16 -// SUBW m16 r16 -// SUBW r16 m16 -// SUBW r16 r16 -// -// Construct and append a SUBW instruction to the active function. -func (c *Context) SUBW(imr, amr operand.Op) { - c.addinstruction(x86.SUBW(imr, amr)) -} - -// SUBW: Subtract. -// -// Forms: -// -// SUBW imm16 ax -// SUBW imm16 m16 -// SUBW imm16 r16 -// SUBW imm8 m16 -// SUBW imm8 r16 -// SUBW m16 r16 -// SUBW r16 m16 -// SUBW r16 r16 -// -// Construct and append a SUBW instruction to the active function. -// Operates on the global context. -func SUBW(imr, amr operand.Op) { ctx.SUBW(imr, amr) } - -// SYSCALL: Fast System Call. -// -// Forms: -// -// SYSCALL -// -// Construct and append a SYSCALL instruction to the active function. -func (c *Context) SYSCALL() { - c.addinstruction(x86.SYSCALL()) -} - -// SYSCALL: Fast System Call. -// -// Forms: -// -// SYSCALL -// -// Construct and append a SYSCALL instruction to the active function. -// Operates on the global context. -func SYSCALL() { ctx.SYSCALL() } - -// TESTB: Logical Compare. -// -// Forms: -// -// TESTB imm8 al -// TESTB imm8 m8 -// TESTB imm8 r8 -// TESTB r8 m8 -// TESTB r8 r8 -// -// Construct and append a TESTB instruction to the active function. -func (c *Context) TESTB(ir, amr operand.Op) { - c.addinstruction(x86.TESTB(ir, amr)) -} - -// TESTB: Logical Compare. -// -// Forms: -// -// TESTB imm8 al -// TESTB imm8 m8 -// TESTB imm8 r8 -// TESTB r8 m8 -// TESTB r8 r8 -// -// Construct and append a TESTB instruction to the active function. -// Operates on the global context. -func TESTB(ir, amr operand.Op) { ctx.TESTB(ir, amr) } - -// TESTL: Logical Compare. -// -// Forms: -// -// TESTL imm32 eax -// TESTL imm32 m32 -// TESTL imm32 r32 -// TESTL r32 m32 -// TESTL r32 r32 -// -// Construct and append a TESTL instruction to the active function. -func (c *Context) TESTL(ir, emr operand.Op) { - c.addinstruction(x86.TESTL(ir, emr)) -} - -// TESTL: Logical Compare. -// -// Forms: -// -// TESTL imm32 eax -// TESTL imm32 m32 -// TESTL imm32 r32 -// TESTL r32 m32 -// TESTL r32 r32 -// -// Construct and append a TESTL instruction to the active function. -// Operates on the global context. -func TESTL(ir, emr operand.Op) { ctx.TESTL(ir, emr) } - -// TESTQ: Logical Compare. -// -// Forms: -// -// TESTQ imm32 m64 -// TESTQ imm32 r64 -// TESTQ imm32 rax -// TESTQ r64 m64 -// TESTQ r64 r64 -// -// Construct and append a TESTQ instruction to the active function. -func (c *Context) TESTQ(ir, mr operand.Op) { - c.addinstruction(x86.TESTQ(ir, mr)) -} - -// TESTQ: Logical Compare. -// -// Forms: -// -// TESTQ imm32 m64 -// TESTQ imm32 r64 -// TESTQ imm32 rax -// TESTQ r64 m64 -// TESTQ r64 r64 -// -// Construct and append a TESTQ instruction to the active function. -// Operates on the global context. -func TESTQ(ir, mr operand.Op) { ctx.TESTQ(ir, mr) } - -// TESTW: Logical Compare. -// -// Forms: -// -// TESTW imm16 ax -// TESTW imm16 m16 -// TESTW imm16 r16 -// TESTW r16 m16 -// TESTW r16 r16 -// -// Construct and append a TESTW instruction to the active function. -func (c *Context) TESTW(ir, amr operand.Op) { - c.addinstruction(x86.TESTW(ir, amr)) -} - -// TESTW: Logical Compare. -// -// Forms: -// -// TESTW imm16 ax -// TESTW imm16 m16 -// TESTW imm16 r16 -// TESTW r16 m16 -// TESTW r16 r16 -// -// Construct and append a TESTW instruction to the active function. -// Operates on the global context. -func TESTW(ir, amr operand.Op) { ctx.TESTW(ir, amr) } - -// TZCNTL: Count the Number of Trailing Zero Bits. -// -// Forms: -// -// TZCNTL m32 r32 -// TZCNTL r32 r32 -// -// Construct and append a TZCNTL instruction to the active function. -func (c *Context) TZCNTL(mr, r operand.Op) { - c.addinstruction(x86.TZCNTL(mr, r)) -} - -// TZCNTL: Count the Number of Trailing Zero Bits. -// -// Forms: -// -// TZCNTL m32 r32 -// TZCNTL r32 r32 -// -// Construct and append a TZCNTL instruction to the active function. -// Operates on the global context. -func TZCNTL(mr, r operand.Op) { ctx.TZCNTL(mr, r) } - -// TZCNTQ: Count the Number of Trailing Zero Bits. -// -// Forms: -// -// TZCNTQ m64 r64 -// TZCNTQ r64 r64 -// -// Construct and append a TZCNTQ instruction to the active function. -func (c *Context) TZCNTQ(mr, r operand.Op) { - c.addinstruction(x86.TZCNTQ(mr, r)) -} - -// TZCNTQ: Count the Number of Trailing Zero Bits. -// -// Forms: -// -// TZCNTQ m64 r64 -// TZCNTQ r64 r64 -// -// Construct and append a TZCNTQ instruction to the active function. -// Operates on the global context. -func TZCNTQ(mr, r operand.Op) { ctx.TZCNTQ(mr, r) } - -// TZCNTW: Count the Number of Trailing Zero Bits. -// -// Forms: -// -// TZCNTW m16 r16 -// TZCNTW r16 r16 -// -// Construct and append a TZCNTW instruction to the active function. -func (c *Context) TZCNTW(mr, r operand.Op) { - c.addinstruction(x86.TZCNTW(mr, r)) -} - -// TZCNTW: Count the Number of Trailing Zero Bits. -// -// Forms: -// -// TZCNTW m16 r16 -// TZCNTW r16 r16 -// -// Construct and append a TZCNTW instruction to the active function. -// Operates on the global context. -func TZCNTW(mr, r operand.Op) { ctx.TZCNTW(mr, r) } - -// UCOMISD: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// UCOMISD m64 xmm -// UCOMISD xmm xmm -// -// Construct and append a UCOMISD instruction to the active function. -func (c *Context) UCOMISD(mx, x operand.Op) { - c.addinstruction(x86.UCOMISD(mx, x)) -} - -// UCOMISD: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// UCOMISD m64 xmm -// UCOMISD xmm xmm -// -// Construct and append a UCOMISD instruction to the active function. -// Operates on the global context. -func UCOMISD(mx, x operand.Op) { ctx.UCOMISD(mx, x) } - -// UCOMISS: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// UCOMISS m32 xmm -// UCOMISS xmm xmm -// -// Construct and append a UCOMISS instruction to the active function. -func (c *Context) UCOMISS(mx, x operand.Op) { - c.addinstruction(x86.UCOMISS(mx, x)) -} - -// UCOMISS: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// UCOMISS m32 xmm -// UCOMISS xmm xmm -// -// Construct and append a UCOMISS instruction to the active function. -// Operates on the global context. -func UCOMISS(mx, x operand.Op) { ctx.UCOMISS(mx, x) } - -// UD2: Undefined Instruction. -// -// Forms: -// -// UD2 -// -// Construct and append a UD2 instruction to the active function. -func (c *Context) UD2() { - c.addinstruction(x86.UD2()) -} - -// UD2: Undefined Instruction. -// -// Forms: -// -// UD2 -// -// Construct and append a UD2 instruction to the active function. -// Operates on the global context. -func UD2() { ctx.UD2() } - -// UNPCKHPD: Unpack and Interleave High Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKHPD m128 xmm -// UNPCKHPD xmm xmm -// -// Construct and append a UNPCKHPD instruction to the active function. -func (c *Context) UNPCKHPD(mx, x operand.Op) { - c.addinstruction(x86.UNPCKHPD(mx, x)) -} - -// UNPCKHPD: Unpack and Interleave High Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKHPD m128 xmm -// UNPCKHPD xmm xmm -// -// Construct and append a UNPCKHPD instruction to the active function. -// Operates on the global context. -func UNPCKHPD(mx, x operand.Op) { ctx.UNPCKHPD(mx, x) } - -// UNPCKHPS: Unpack and Interleave High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKHPS m128 xmm -// UNPCKHPS xmm xmm -// -// Construct and append a UNPCKHPS instruction to the active function. -func (c *Context) UNPCKHPS(mx, x operand.Op) { - c.addinstruction(x86.UNPCKHPS(mx, x)) -} - -// UNPCKHPS: Unpack and Interleave High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKHPS m128 xmm -// UNPCKHPS xmm xmm -// -// Construct and append a UNPCKHPS instruction to the active function. -// Operates on the global context. -func UNPCKHPS(mx, x operand.Op) { ctx.UNPCKHPS(mx, x) } - -// UNPCKLPD: Unpack and Interleave Low Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKLPD m128 xmm -// UNPCKLPD xmm xmm -// -// Construct and append a UNPCKLPD instruction to the active function. -func (c *Context) UNPCKLPD(mx, x operand.Op) { - c.addinstruction(x86.UNPCKLPD(mx, x)) -} - -// UNPCKLPD: Unpack and Interleave Low Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKLPD m128 xmm -// UNPCKLPD xmm xmm -// -// Construct and append a UNPCKLPD instruction to the active function. -// Operates on the global context. -func UNPCKLPD(mx, x operand.Op) { ctx.UNPCKLPD(mx, x) } - -// UNPCKLPS: Unpack and Interleave Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKLPS m128 xmm -// UNPCKLPS xmm xmm -// -// Construct and append a UNPCKLPS instruction to the active function. -func (c *Context) UNPCKLPS(mx, x operand.Op) { - c.addinstruction(x86.UNPCKLPS(mx, x)) -} - -// UNPCKLPS: Unpack and Interleave Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKLPS m128 xmm -// UNPCKLPS xmm xmm -// -// Construct and append a UNPCKLPS instruction to the active function. -// Operates on the global context. -func UNPCKLPS(mx, x operand.Op) { ctx.UNPCKLPS(mx, x) } - -// VADDPD: Add Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VADDPD m128 xmm xmm -// VADDPD m256 ymm ymm -// VADDPD xmm xmm xmm -// VADDPD ymm ymm ymm -// VADDPD m128 xmm k xmm -// VADDPD m256 ymm k ymm -// VADDPD xmm xmm k xmm -// VADDPD ymm ymm k ymm -// VADDPD m512 zmm k zmm -// VADDPD m512 zmm zmm -// VADDPD zmm zmm k zmm -// VADDPD zmm zmm zmm -// -// Construct and append a VADDPD instruction to the active function. -func (c *Context) VADDPD(ops ...operand.Op) { - c.addinstruction(x86.VADDPD(ops...)) -} - -// VADDPD: Add Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VADDPD m128 xmm xmm -// VADDPD m256 ymm ymm -// VADDPD xmm xmm xmm -// VADDPD ymm ymm ymm -// VADDPD m128 xmm k xmm -// VADDPD m256 ymm k ymm -// VADDPD xmm xmm k xmm -// VADDPD ymm ymm k ymm -// VADDPD m512 zmm k zmm -// VADDPD m512 zmm zmm -// VADDPD zmm zmm k zmm -// VADDPD zmm zmm zmm -// -// Construct and append a VADDPD instruction to the active function. -// Operates on the global context. -func VADDPD(ops ...operand.Op) { ctx.VADDPD(ops...) } - -// VADDPD_BCST: Add Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VADDPD.BCST m64 xmm k xmm -// VADDPD.BCST m64 xmm xmm -// VADDPD.BCST m64 ymm k ymm -// VADDPD.BCST m64 ymm ymm -// VADDPD.BCST m64 zmm k zmm -// VADDPD.BCST m64 zmm zmm -// -// Construct and append a VADDPD.BCST instruction to the active function. -func (c *Context) VADDPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VADDPD_BCST(ops...)) -} - -// VADDPD_BCST: Add Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VADDPD.BCST m64 xmm k xmm -// VADDPD.BCST m64 xmm xmm -// VADDPD.BCST m64 ymm k ymm -// VADDPD.BCST m64 ymm ymm -// VADDPD.BCST m64 zmm k zmm -// VADDPD.BCST m64 zmm zmm -// -// Construct and append a VADDPD.BCST instruction to the active function. -// Operates on the global context. -func VADDPD_BCST(ops ...operand.Op) { ctx.VADDPD_BCST(ops...) } - -// VADDPD_BCST_Z: Add Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VADDPD.BCST.Z m64 xmm k xmm -// VADDPD.BCST.Z m64 ymm k ymm -// VADDPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VADDPD.BCST.Z instruction to the active function. -func (c *Context) VADDPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VADDPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VADDPD_BCST_Z: Add Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VADDPD.BCST.Z m64 xmm k xmm -// VADDPD.BCST.Z m64 ymm k ymm -// VADDPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VADDPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VADDPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VADDPD_BCST_Z(m, xyz, k, xyz1) } - -// VADDPD_RD_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDPD.RD_SAE zmm zmm k zmm -// VADDPD.RD_SAE zmm zmm zmm -// -// Construct and append a VADDPD.RD_SAE instruction to the active function. -func (c *Context) VADDPD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDPD_RD_SAE(ops...)) -} - -// VADDPD_RD_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDPD.RD_SAE zmm zmm k zmm -// VADDPD.RD_SAE zmm zmm zmm -// -// Construct and append a VADDPD.RD_SAE instruction to the active function. -// Operates on the global context. -func VADDPD_RD_SAE(ops ...operand.Op) { ctx.VADDPD_RD_SAE(ops...) } - -// VADDPD_RD_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPD.RD_SAE.Z instruction to the active function. -func (c *Context) VADDPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VADDPD_RD_SAE_Z(z, z1, k, z2)) -} - -// VADDPD_RD_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VADDPD_RD_SAE_Z(z, z1, k, z2) } - -// VADDPD_RN_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDPD.RN_SAE zmm zmm k zmm -// VADDPD.RN_SAE zmm zmm zmm -// -// Construct and append a VADDPD.RN_SAE instruction to the active function. -func (c *Context) VADDPD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDPD_RN_SAE(ops...)) -} - -// VADDPD_RN_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDPD.RN_SAE zmm zmm k zmm -// VADDPD.RN_SAE zmm zmm zmm -// -// Construct and append a VADDPD.RN_SAE instruction to the active function. -// Operates on the global context. -func VADDPD_RN_SAE(ops ...operand.Op) { ctx.VADDPD_RN_SAE(ops...) } - -// VADDPD_RN_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPD.RN_SAE.Z instruction to the active function. -func (c *Context) VADDPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VADDPD_RN_SAE_Z(z, z1, k, z2)) -} - -// VADDPD_RN_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VADDPD_RN_SAE_Z(z, z1, k, z2) } - -// VADDPD_RU_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDPD.RU_SAE zmm zmm k zmm -// VADDPD.RU_SAE zmm zmm zmm -// -// Construct and append a VADDPD.RU_SAE instruction to the active function. -func (c *Context) VADDPD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDPD_RU_SAE(ops...)) -} - -// VADDPD_RU_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDPD.RU_SAE zmm zmm k zmm -// VADDPD.RU_SAE zmm zmm zmm -// -// Construct and append a VADDPD.RU_SAE instruction to the active function. -// Operates on the global context. -func VADDPD_RU_SAE(ops ...operand.Op) { ctx.VADDPD_RU_SAE(ops...) } - -// VADDPD_RU_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPD.RU_SAE.Z instruction to the active function. -func (c *Context) VADDPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VADDPD_RU_SAE_Z(z, z1, k, z2)) -} - -// VADDPD_RU_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VADDPD_RU_SAE_Z(z, z1, k, z2) } - -// VADDPD_RZ_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDPD.RZ_SAE zmm zmm k zmm -// VADDPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VADDPD.RZ_SAE instruction to the active function. -func (c *Context) VADDPD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDPD_RZ_SAE(ops...)) -} - -// VADDPD_RZ_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDPD.RZ_SAE zmm zmm k zmm -// VADDPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VADDPD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VADDPD_RZ_SAE(ops ...operand.Op) { ctx.VADDPD_RZ_SAE(ops...) } - -// VADDPD_RZ_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPD.RZ_SAE.Z instruction to the active function. -func (c *Context) VADDPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VADDPD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VADDPD_RZ_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VADDPD_RZ_SAE_Z(z, z1, k, z2) } - -// VADDPD_Z: Add Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDPD.Z m128 xmm k xmm -// VADDPD.Z m256 ymm k ymm -// VADDPD.Z xmm xmm k xmm -// VADDPD.Z ymm ymm k ymm -// VADDPD.Z m512 zmm k zmm -// VADDPD.Z zmm zmm k zmm -// -// Construct and append a VADDPD.Z instruction to the active function. -func (c *Context) VADDPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VADDPD_Z(mxyz, xyz, k, xyz1)) -} - -// VADDPD_Z: Add Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDPD.Z m128 xmm k xmm -// VADDPD.Z m256 ymm k ymm -// VADDPD.Z xmm xmm k xmm -// VADDPD.Z ymm ymm k ymm -// VADDPD.Z m512 zmm k zmm -// VADDPD.Z zmm zmm k zmm -// -// Construct and append a VADDPD.Z instruction to the active function. -// Operates on the global context. -func VADDPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VADDPD_Z(mxyz, xyz, k, xyz1) } - -// VADDPS: Add Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VADDPS m128 xmm xmm -// VADDPS m256 ymm ymm -// VADDPS xmm xmm xmm -// VADDPS ymm ymm ymm -// VADDPS m128 xmm k xmm -// VADDPS m256 ymm k ymm -// VADDPS xmm xmm k xmm -// VADDPS ymm ymm k ymm -// VADDPS m512 zmm k zmm -// VADDPS m512 zmm zmm -// VADDPS zmm zmm k zmm -// VADDPS zmm zmm zmm -// -// Construct and append a VADDPS instruction to the active function. -func (c *Context) VADDPS(ops ...operand.Op) { - c.addinstruction(x86.VADDPS(ops...)) -} - -// VADDPS: Add Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VADDPS m128 xmm xmm -// VADDPS m256 ymm ymm -// VADDPS xmm xmm xmm -// VADDPS ymm ymm ymm -// VADDPS m128 xmm k xmm -// VADDPS m256 ymm k ymm -// VADDPS xmm xmm k xmm -// VADDPS ymm ymm k ymm -// VADDPS m512 zmm k zmm -// VADDPS m512 zmm zmm -// VADDPS zmm zmm k zmm -// VADDPS zmm zmm zmm -// -// Construct and append a VADDPS instruction to the active function. -// Operates on the global context. -func VADDPS(ops ...operand.Op) { ctx.VADDPS(ops...) } - -// VADDPS_BCST: Add Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VADDPS.BCST m32 xmm k xmm -// VADDPS.BCST m32 xmm xmm -// VADDPS.BCST m32 ymm k ymm -// VADDPS.BCST m32 ymm ymm -// VADDPS.BCST m32 zmm k zmm -// VADDPS.BCST m32 zmm zmm -// -// Construct and append a VADDPS.BCST instruction to the active function. -func (c *Context) VADDPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VADDPS_BCST(ops...)) -} - -// VADDPS_BCST: Add Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VADDPS.BCST m32 xmm k xmm -// VADDPS.BCST m32 xmm xmm -// VADDPS.BCST m32 ymm k ymm -// VADDPS.BCST m32 ymm ymm -// VADDPS.BCST m32 zmm k zmm -// VADDPS.BCST m32 zmm zmm -// -// Construct and append a VADDPS.BCST instruction to the active function. -// Operates on the global context. -func VADDPS_BCST(ops ...operand.Op) { ctx.VADDPS_BCST(ops...) } - -// VADDPS_BCST_Z: Add Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VADDPS.BCST.Z m32 xmm k xmm -// VADDPS.BCST.Z m32 ymm k ymm -// VADDPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VADDPS.BCST.Z instruction to the active function. -func (c *Context) VADDPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VADDPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VADDPS_BCST_Z: Add Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VADDPS.BCST.Z m32 xmm k xmm -// VADDPS.BCST.Z m32 ymm k ymm -// VADDPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VADDPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VADDPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VADDPS_BCST_Z(m, xyz, k, xyz1) } - -// VADDPS_RD_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDPS.RD_SAE zmm zmm k zmm -// VADDPS.RD_SAE zmm zmm zmm -// -// Construct and append a VADDPS.RD_SAE instruction to the active function. -func (c *Context) VADDPS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDPS_RD_SAE(ops...)) -} - -// VADDPS_RD_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDPS.RD_SAE zmm zmm k zmm -// VADDPS.RD_SAE zmm zmm zmm -// -// Construct and append a VADDPS.RD_SAE instruction to the active function. -// Operates on the global context. -func VADDPS_RD_SAE(ops ...operand.Op) { ctx.VADDPS_RD_SAE(ops...) } - -// VADDPS_RD_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPS.RD_SAE.Z instruction to the active function. -func (c *Context) VADDPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VADDPS_RD_SAE_Z(z, z1, k, z2)) -} - -// VADDPS_RD_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VADDPS_RD_SAE_Z(z, z1, k, z2) } - -// VADDPS_RN_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDPS.RN_SAE zmm zmm k zmm -// VADDPS.RN_SAE zmm zmm zmm -// -// Construct and append a VADDPS.RN_SAE instruction to the active function. -func (c *Context) VADDPS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDPS_RN_SAE(ops...)) -} - -// VADDPS_RN_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDPS.RN_SAE zmm zmm k zmm -// VADDPS.RN_SAE zmm zmm zmm -// -// Construct and append a VADDPS.RN_SAE instruction to the active function. -// Operates on the global context. -func VADDPS_RN_SAE(ops ...operand.Op) { ctx.VADDPS_RN_SAE(ops...) } - -// VADDPS_RN_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPS.RN_SAE.Z instruction to the active function. -func (c *Context) VADDPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VADDPS_RN_SAE_Z(z, z1, k, z2)) -} - -// VADDPS_RN_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VADDPS_RN_SAE_Z(z, z1, k, z2) } - -// VADDPS_RU_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDPS.RU_SAE zmm zmm k zmm -// VADDPS.RU_SAE zmm zmm zmm -// -// Construct and append a VADDPS.RU_SAE instruction to the active function. -func (c *Context) VADDPS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDPS_RU_SAE(ops...)) -} - -// VADDPS_RU_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDPS.RU_SAE zmm zmm k zmm -// VADDPS.RU_SAE zmm zmm zmm -// -// Construct and append a VADDPS.RU_SAE instruction to the active function. -// Operates on the global context. -func VADDPS_RU_SAE(ops ...operand.Op) { ctx.VADDPS_RU_SAE(ops...) } - -// VADDPS_RU_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPS.RU_SAE.Z instruction to the active function. -func (c *Context) VADDPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VADDPS_RU_SAE_Z(z, z1, k, z2)) -} - -// VADDPS_RU_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VADDPS_RU_SAE_Z(z, z1, k, z2) } - -// VADDPS_RZ_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDPS.RZ_SAE zmm zmm k zmm -// VADDPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VADDPS.RZ_SAE instruction to the active function. -func (c *Context) VADDPS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDPS_RZ_SAE(ops...)) -} - -// VADDPS_RZ_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDPS.RZ_SAE zmm zmm k zmm -// VADDPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VADDPS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VADDPS_RZ_SAE(ops ...operand.Op) { ctx.VADDPS_RZ_SAE(ops...) } - -// VADDPS_RZ_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPS.RZ_SAE.Z instruction to the active function. -func (c *Context) VADDPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VADDPS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VADDPS_RZ_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VADDPS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VADDPS_RZ_SAE_Z(z, z1, k, z2) } - -// VADDPS_Z: Add Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDPS.Z m128 xmm k xmm -// VADDPS.Z m256 ymm k ymm -// VADDPS.Z xmm xmm k xmm -// VADDPS.Z ymm ymm k ymm -// VADDPS.Z m512 zmm k zmm -// VADDPS.Z zmm zmm k zmm -// -// Construct and append a VADDPS.Z instruction to the active function. -func (c *Context) VADDPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VADDPS_Z(mxyz, xyz, k, xyz1)) -} - -// VADDPS_Z: Add Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDPS.Z m128 xmm k xmm -// VADDPS.Z m256 ymm k ymm -// VADDPS.Z xmm xmm k xmm -// VADDPS.Z ymm ymm k ymm -// VADDPS.Z m512 zmm k zmm -// VADDPS.Z zmm zmm k zmm -// -// Construct and append a VADDPS.Z instruction to the active function. -// Operates on the global context. -func VADDPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VADDPS_Z(mxyz, xyz, k, xyz1) } - -// VADDSD: Add Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VADDSD m64 xmm xmm -// VADDSD xmm xmm xmm -// VADDSD m64 xmm k xmm -// VADDSD xmm xmm k xmm -// -// Construct and append a VADDSD instruction to the active function. -func (c *Context) VADDSD(ops ...operand.Op) { - c.addinstruction(x86.VADDSD(ops...)) -} - -// VADDSD: Add Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VADDSD m64 xmm xmm -// VADDSD xmm xmm xmm -// VADDSD m64 xmm k xmm -// VADDSD xmm xmm k xmm -// -// Construct and append a VADDSD instruction to the active function. -// Operates on the global context. -func VADDSD(ops ...operand.Op) { ctx.VADDSD(ops...) } - -// VADDSD_RD_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDSD.RD_SAE xmm xmm k xmm -// VADDSD.RD_SAE xmm xmm xmm -// -// Construct and append a VADDSD.RD_SAE instruction to the active function. -func (c *Context) VADDSD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDSD_RD_SAE(ops...)) -} - -// VADDSD_RD_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDSD.RD_SAE xmm xmm k xmm -// VADDSD.RD_SAE xmm xmm xmm -// -// Construct and append a VADDSD.RD_SAE instruction to the active function. -// Operates on the global context. -func VADDSD_RD_SAE(ops ...operand.Op) { ctx.VADDSD_RD_SAE(ops...) } - -// VADDSD_RD_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSD.RD_SAE.Z instruction to the active function. -func (c *Context) VADDSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VADDSD_RD_SAE_Z(x, x1, k, x2)) -} - -// VADDSD_RD_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VADDSD_RD_SAE_Z(x, x1, k, x2) } - -// VADDSD_RN_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDSD.RN_SAE xmm xmm k xmm -// VADDSD.RN_SAE xmm xmm xmm -// -// Construct and append a VADDSD.RN_SAE instruction to the active function. -func (c *Context) VADDSD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDSD_RN_SAE(ops...)) -} - -// VADDSD_RN_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDSD.RN_SAE xmm xmm k xmm -// VADDSD.RN_SAE xmm xmm xmm -// -// Construct and append a VADDSD.RN_SAE instruction to the active function. -// Operates on the global context. -func VADDSD_RN_SAE(ops ...operand.Op) { ctx.VADDSD_RN_SAE(ops...) } - -// VADDSD_RN_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSD.RN_SAE.Z instruction to the active function. -func (c *Context) VADDSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VADDSD_RN_SAE_Z(x, x1, k, x2)) -} - -// VADDSD_RN_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VADDSD_RN_SAE_Z(x, x1, k, x2) } - -// VADDSD_RU_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDSD.RU_SAE xmm xmm k xmm -// VADDSD.RU_SAE xmm xmm xmm -// -// Construct and append a VADDSD.RU_SAE instruction to the active function. -func (c *Context) VADDSD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDSD_RU_SAE(ops...)) -} - -// VADDSD_RU_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDSD.RU_SAE xmm xmm k xmm -// VADDSD.RU_SAE xmm xmm xmm -// -// Construct and append a VADDSD.RU_SAE instruction to the active function. -// Operates on the global context. -func VADDSD_RU_SAE(ops ...operand.Op) { ctx.VADDSD_RU_SAE(ops...) } - -// VADDSD_RU_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSD.RU_SAE.Z instruction to the active function. -func (c *Context) VADDSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VADDSD_RU_SAE_Z(x, x1, k, x2)) -} - -// VADDSD_RU_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VADDSD_RU_SAE_Z(x, x1, k, x2) } - -// VADDSD_RZ_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDSD.RZ_SAE xmm xmm k xmm -// VADDSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VADDSD.RZ_SAE instruction to the active function. -func (c *Context) VADDSD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDSD_RZ_SAE(ops...)) -} - -// VADDSD_RZ_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDSD.RZ_SAE xmm xmm k xmm -// VADDSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VADDSD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VADDSD_RZ_SAE(ops ...operand.Op) { ctx.VADDSD_RZ_SAE(ops...) } - -// VADDSD_RZ_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSD.RZ_SAE.Z instruction to the active function. -func (c *Context) VADDSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VADDSD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VADDSD_RZ_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VADDSD_RZ_SAE_Z(x, x1, k, x2) } - -// VADDSD_Z: Add Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDSD.Z m64 xmm k xmm -// VADDSD.Z xmm xmm k xmm -// -// Construct and append a VADDSD.Z instruction to the active function. -func (c *Context) VADDSD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VADDSD_Z(mx, x, k, x1)) -} - -// VADDSD_Z: Add Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDSD.Z m64 xmm k xmm -// VADDSD.Z xmm xmm k xmm -// -// Construct and append a VADDSD.Z instruction to the active function. -// Operates on the global context. -func VADDSD_Z(mx, x, k, x1 operand.Op) { ctx.VADDSD_Z(mx, x, k, x1) } - -// VADDSS: Add Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VADDSS m32 xmm xmm -// VADDSS xmm xmm xmm -// VADDSS m32 xmm k xmm -// VADDSS xmm xmm k xmm -// -// Construct and append a VADDSS instruction to the active function. -func (c *Context) VADDSS(ops ...operand.Op) { - c.addinstruction(x86.VADDSS(ops...)) -} - -// VADDSS: Add Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VADDSS m32 xmm xmm -// VADDSS xmm xmm xmm -// VADDSS m32 xmm k xmm -// VADDSS xmm xmm k xmm -// -// Construct and append a VADDSS instruction to the active function. -// Operates on the global context. -func VADDSS(ops ...operand.Op) { ctx.VADDSS(ops...) } - -// VADDSS_RD_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDSS.RD_SAE xmm xmm k xmm -// VADDSS.RD_SAE xmm xmm xmm -// -// Construct and append a VADDSS.RD_SAE instruction to the active function. -func (c *Context) VADDSS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDSS_RD_SAE(ops...)) -} - -// VADDSS_RD_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDSS.RD_SAE xmm xmm k xmm -// VADDSS.RD_SAE xmm xmm xmm -// -// Construct and append a VADDSS.RD_SAE instruction to the active function. -// Operates on the global context. -func VADDSS_RD_SAE(ops ...operand.Op) { ctx.VADDSS_RD_SAE(ops...) } - -// VADDSS_RD_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSS.RD_SAE.Z instruction to the active function. -func (c *Context) VADDSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VADDSS_RD_SAE_Z(x, x1, k, x2)) -} - -// VADDSS_RD_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VADDSS_RD_SAE_Z(x, x1, k, x2) } - -// VADDSS_RN_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDSS.RN_SAE xmm xmm k xmm -// VADDSS.RN_SAE xmm xmm xmm -// -// Construct and append a VADDSS.RN_SAE instruction to the active function. -func (c *Context) VADDSS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDSS_RN_SAE(ops...)) -} - -// VADDSS_RN_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDSS.RN_SAE xmm xmm k xmm -// VADDSS.RN_SAE xmm xmm xmm -// -// Construct and append a VADDSS.RN_SAE instruction to the active function. -// Operates on the global context. -func VADDSS_RN_SAE(ops ...operand.Op) { ctx.VADDSS_RN_SAE(ops...) } - -// VADDSS_RN_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSS.RN_SAE.Z instruction to the active function. -func (c *Context) VADDSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VADDSS_RN_SAE_Z(x, x1, k, x2)) -} - -// VADDSS_RN_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VADDSS_RN_SAE_Z(x, x1, k, x2) } - -// VADDSS_RU_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDSS.RU_SAE xmm xmm k xmm -// VADDSS.RU_SAE xmm xmm xmm -// -// Construct and append a VADDSS.RU_SAE instruction to the active function. -func (c *Context) VADDSS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDSS_RU_SAE(ops...)) -} - -// VADDSS_RU_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDSS.RU_SAE xmm xmm k xmm -// VADDSS.RU_SAE xmm xmm xmm -// -// Construct and append a VADDSS.RU_SAE instruction to the active function. -// Operates on the global context. -func VADDSS_RU_SAE(ops ...operand.Op) { ctx.VADDSS_RU_SAE(ops...) } - -// VADDSS_RU_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSS.RU_SAE.Z instruction to the active function. -func (c *Context) VADDSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VADDSS_RU_SAE_Z(x, x1, k, x2)) -} - -// VADDSS_RU_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VADDSS_RU_SAE_Z(x, x1, k, x2) } - -// VADDSS_RZ_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDSS.RZ_SAE xmm xmm k xmm -// VADDSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VADDSS.RZ_SAE instruction to the active function. -func (c *Context) VADDSS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VADDSS_RZ_SAE(ops...)) -} - -// VADDSS_RZ_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDSS.RZ_SAE xmm xmm k xmm -// VADDSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VADDSS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VADDSS_RZ_SAE(ops ...operand.Op) { ctx.VADDSS_RZ_SAE(ops...) } - -// VADDSS_RZ_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSS.RZ_SAE.Z instruction to the active function. -func (c *Context) VADDSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VADDSS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VADDSS_RZ_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VADDSS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VADDSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VADDSS_RZ_SAE_Z(x, x1, k, x2) } - -// VADDSS_Z: Add Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDSS.Z m32 xmm k xmm -// VADDSS.Z xmm xmm k xmm -// -// Construct and append a VADDSS.Z instruction to the active function. -func (c *Context) VADDSS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VADDSS_Z(mx, x, k, x1)) -} - -// VADDSS_Z: Add Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDSS.Z m32 xmm k xmm -// VADDSS.Z xmm xmm k xmm -// -// Construct and append a VADDSS.Z instruction to the active function. -// Operates on the global context. -func VADDSS_Z(mx, x, k, x1 operand.Op) { ctx.VADDSS_Z(mx, x, k, x1) } - -// VADDSUBPD: Packed Double-FP Add/Subtract. -// -// Forms: -// -// VADDSUBPD m128 xmm xmm -// VADDSUBPD m256 ymm ymm -// VADDSUBPD xmm xmm xmm -// VADDSUBPD ymm ymm ymm -// -// Construct and append a VADDSUBPD instruction to the active function. -func (c *Context) VADDSUBPD(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VADDSUBPD(mxy, xy, xy1)) -} - -// VADDSUBPD: Packed Double-FP Add/Subtract. -// -// Forms: -// -// VADDSUBPD m128 xmm xmm -// VADDSUBPD m256 ymm ymm -// VADDSUBPD xmm xmm xmm -// VADDSUBPD ymm ymm ymm -// -// Construct and append a VADDSUBPD instruction to the active function. -// Operates on the global context. -func VADDSUBPD(mxy, xy, xy1 operand.Op) { ctx.VADDSUBPD(mxy, xy, xy1) } - -// VADDSUBPS: Packed Single-FP Add/Subtract. -// -// Forms: -// -// VADDSUBPS m128 xmm xmm -// VADDSUBPS m256 ymm ymm -// VADDSUBPS xmm xmm xmm -// VADDSUBPS ymm ymm ymm -// -// Construct and append a VADDSUBPS instruction to the active function. -func (c *Context) VADDSUBPS(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VADDSUBPS(mxy, xy, xy1)) -} - -// VADDSUBPS: Packed Single-FP Add/Subtract. -// -// Forms: -// -// VADDSUBPS m128 xmm xmm -// VADDSUBPS m256 ymm ymm -// VADDSUBPS xmm xmm xmm -// VADDSUBPS ymm ymm ymm -// -// Construct and append a VADDSUBPS instruction to the active function. -// Operates on the global context. -func VADDSUBPS(mxy, xy, xy1 operand.Op) { ctx.VADDSUBPS(mxy, xy, xy1) } - -// VAESDEC: Perform One Round of an AES Decryption Flow. -// -// Forms: -// -// VAESDEC m128 xmm xmm -// VAESDEC xmm xmm xmm -// VAESDEC m256 ymm ymm -// VAESDEC ymm ymm ymm -// VAESDEC m512 zmm zmm -// VAESDEC zmm zmm zmm -// -// Construct and append a VAESDEC instruction to the active function. -func (c *Context) VAESDEC(mxyz, xyz, xyz1 operand.Op) { - c.addinstruction(x86.VAESDEC(mxyz, xyz, xyz1)) -} - -// VAESDEC: Perform One Round of an AES Decryption Flow. -// -// Forms: -// -// VAESDEC m128 xmm xmm -// VAESDEC xmm xmm xmm -// VAESDEC m256 ymm ymm -// VAESDEC ymm ymm ymm -// VAESDEC m512 zmm zmm -// VAESDEC zmm zmm zmm -// -// Construct and append a VAESDEC instruction to the active function. -// Operates on the global context. -func VAESDEC(mxyz, xyz, xyz1 operand.Op) { ctx.VAESDEC(mxyz, xyz, xyz1) } - -// VAESDECLAST: Perform Last Round of an AES Decryption Flow. -// -// Forms: -// -// VAESDECLAST m128 xmm xmm -// VAESDECLAST xmm xmm xmm -// VAESDECLAST m256 ymm ymm -// VAESDECLAST ymm ymm ymm -// VAESDECLAST m512 zmm zmm -// VAESDECLAST zmm zmm zmm -// -// Construct and append a VAESDECLAST instruction to the active function. -func (c *Context) VAESDECLAST(mxyz, xyz, xyz1 operand.Op) { - c.addinstruction(x86.VAESDECLAST(mxyz, xyz, xyz1)) -} - -// VAESDECLAST: Perform Last Round of an AES Decryption Flow. -// -// Forms: -// -// VAESDECLAST m128 xmm xmm -// VAESDECLAST xmm xmm xmm -// VAESDECLAST m256 ymm ymm -// VAESDECLAST ymm ymm ymm -// VAESDECLAST m512 zmm zmm -// VAESDECLAST zmm zmm zmm -// -// Construct and append a VAESDECLAST instruction to the active function. -// Operates on the global context. -func VAESDECLAST(mxyz, xyz, xyz1 operand.Op) { ctx.VAESDECLAST(mxyz, xyz, xyz1) } - -// VAESENC: Perform One Round of an AES Encryption Flow. -// -// Forms: -// -// VAESENC m128 xmm xmm -// VAESENC xmm xmm xmm -// VAESENC m256 ymm ymm -// VAESENC ymm ymm ymm -// VAESENC m512 zmm zmm -// VAESENC zmm zmm zmm -// -// Construct and append a VAESENC instruction to the active function. -func (c *Context) VAESENC(mxyz, xyz, xyz1 operand.Op) { - c.addinstruction(x86.VAESENC(mxyz, xyz, xyz1)) -} - -// VAESENC: Perform One Round of an AES Encryption Flow. -// -// Forms: -// -// VAESENC m128 xmm xmm -// VAESENC xmm xmm xmm -// VAESENC m256 ymm ymm -// VAESENC ymm ymm ymm -// VAESENC m512 zmm zmm -// VAESENC zmm zmm zmm -// -// Construct and append a VAESENC instruction to the active function. -// Operates on the global context. -func VAESENC(mxyz, xyz, xyz1 operand.Op) { ctx.VAESENC(mxyz, xyz, xyz1) } - -// VAESENCLAST: Perform Last Round of an AES Encryption Flow. -// -// Forms: -// -// VAESENCLAST m128 xmm xmm -// VAESENCLAST xmm xmm xmm -// VAESENCLAST m256 ymm ymm -// VAESENCLAST ymm ymm ymm -// VAESENCLAST m512 zmm zmm -// VAESENCLAST zmm zmm zmm -// -// Construct and append a VAESENCLAST instruction to the active function. -func (c *Context) VAESENCLAST(mxyz, xyz, xyz1 operand.Op) { - c.addinstruction(x86.VAESENCLAST(mxyz, xyz, xyz1)) -} - -// VAESENCLAST: Perform Last Round of an AES Encryption Flow. -// -// Forms: -// -// VAESENCLAST m128 xmm xmm -// VAESENCLAST xmm xmm xmm -// VAESENCLAST m256 ymm ymm -// VAESENCLAST ymm ymm ymm -// VAESENCLAST m512 zmm zmm -// VAESENCLAST zmm zmm zmm -// -// Construct and append a VAESENCLAST instruction to the active function. -// Operates on the global context. -func VAESENCLAST(mxyz, xyz, xyz1 operand.Op) { ctx.VAESENCLAST(mxyz, xyz, xyz1) } - -// VAESIMC: Perform the AES InvMixColumn Transformation. -// -// Forms: -// -// VAESIMC m128 xmm -// VAESIMC xmm xmm -// -// Construct and append a VAESIMC instruction to the active function. -func (c *Context) VAESIMC(mx, x operand.Op) { - c.addinstruction(x86.VAESIMC(mx, x)) -} - -// VAESIMC: Perform the AES InvMixColumn Transformation. -// -// Forms: -// -// VAESIMC m128 xmm -// VAESIMC xmm xmm -// -// Construct and append a VAESIMC instruction to the active function. -// Operates on the global context. -func VAESIMC(mx, x operand.Op) { ctx.VAESIMC(mx, x) } - -// VAESKEYGENASSIST: AES Round Key Generation Assist. -// -// Forms: -// -// VAESKEYGENASSIST imm8 m128 xmm -// VAESKEYGENASSIST imm8 xmm xmm -// -// Construct and append a VAESKEYGENASSIST instruction to the active function. -func (c *Context) VAESKEYGENASSIST(i, mx, x operand.Op) { - c.addinstruction(x86.VAESKEYGENASSIST(i, mx, x)) -} - -// VAESKEYGENASSIST: AES Round Key Generation Assist. -// -// Forms: -// -// VAESKEYGENASSIST imm8 m128 xmm -// VAESKEYGENASSIST imm8 xmm xmm -// -// Construct and append a VAESKEYGENASSIST instruction to the active function. -// Operates on the global context. -func VAESKEYGENASSIST(i, mx, x operand.Op) { ctx.VAESKEYGENASSIST(i, mx, x) } - -// VALIGND: Align Doubleword Vectors. -// -// Forms: -// -// VALIGND imm8 m128 xmm k xmm -// VALIGND imm8 m128 xmm xmm -// VALIGND imm8 m256 ymm k ymm -// VALIGND imm8 m256 ymm ymm -// VALIGND imm8 xmm xmm k xmm -// VALIGND imm8 xmm xmm xmm -// VALIGND imm8 ymm ymm k ymm -// VALIGND imm8 ymm ymm ymm -// VALIGND imm8 m512 zmm k zmm -// VALIGND imm8 m512 zmm zmm -// VALIGND imm8 zmm zmm k zmm -// VALIGND imm8 zmm zmm zmm -// -// Construct and append a VALIGND instruction to the active function. -func (c *Context) VALIGND(ops ...operand.Op) { - c.addinstruction(x86.VALIGND(ops...)) -} - -// VALIGND: Align Doubleword Vectors. -// -// Forms: -// -// VALIGND imm8 m128 xmm k xmm -// VALIGND imm8 m128 xmm xmm -// VALIGND imm8 m256 ymm k ymm -// VALIGND imm8 m256 ymm ymm -// VALIGND imm8 xmm xmm k xmm -// VALIGND imm8 xmm xmm xmm -// VALIGND imm8 ymm ymm k ymm -// VALIGND imm8 ymm ymm ymm -// VALIGND imm8 m512 zmm k zmm -// VALIGND imm8 m512 zmm zmm -// VALIGND imm8 zmm zmm k zmm -// VALIGND imm8 zmm zmm zmm -// -// Construct and append a VALIGND instruction to the active function. -// Operates on the global context. -func VALIGND(ops ...operand.Op) { ctx.VALIGND(ops...) } - -// VALIGND_BCST: Align Doubleword Vectors (Broadcast). -// -// Forms: -// -// VALIGND.BCST imm8 m32 xmm k xmm -// VALIGND.BCST imm8 m32 xmm xmm -// VALIGND.BCST imm8 m32 ymm k ymm -// VALIGND.BCST imm8 m32 ymm ymm -// VALIGND.BCST imm8 m32 zmm k zmm -// VALIGND.BCST imm8 m32 zmm zmm -// -// Construct and append a VALIGND.BCST instruction to the active function. -func (c *Context) VALIGND_BCST(ops ...operand.Op) { - c.addinstruction(x86.VALIGND_BCST(ops...)) -} - -// VALIGND_BCST: Align Doubleword Vectors (Broadcast). -// -// Forms: -// -// VALIGND.BCST imm8 m32 xmm k xmm -// VALIGND.BCST imm8 m32 xmm xmm -// VALIGND.BCST imm8 m32 ymm k ymm -// VALIGND.BCST imm8 m32 ymm ymm -// VALIGND.BCST imm8 m32 zmm k zmm -// VALIGND.BCST imm8 m32 zmm zmm -// -// Construct and append a VALIGND.BCST instruction to the active function. -// Operates on the global context. -func VALIGND_BCST(ops ...operand.Op) { ctx.VALIGND_BCST(ops...) } - -// VALIGND_BCST_Z: Align Doubleword Vectors (Broadcast, Zeroing Masking). -// -// Forms: -// -// VALIGND.BCST.Z imm8 m32 xmm k xmm -// VALIGND.BCST.Z imm8 m32 ymm k ymm -// VALIGND.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VALIGND.BCST.Z instruction to the active function. -func (c *Context) VALIGND_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VALIGND_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VALIGND_BCST_Z: Align Doubleword Vectors (Broadcast, Zeroing Masking). -// -// Forms: -// -// VALIGND.BCST.Z imm8 m32 xmm k xmm -// VALIGND.BCST.Z imm8 m32 ymm k ymm -// VALIGND.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VALIGND.BCST.Z instruction to the active function. -// Operates on the global context. -func VALIGND_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VALIGND_BCST_Z(i, m, xyz, k, xyz1) } - -// VALIGND_Z: Align Doubleword Vectors (Zeroing Masking). -// -// Forms: -// -// VALIGND.Z imm8 m128 xmm k xmm -// VALIGND.Z imm8 m256 ymm k ymm -// VALIGND.Z imm8 xmm xmm k xmm -// VALIGND.Z imm8 ymm ymm k ymm -// VALIGND.Z imm8 m512 zmm k zmm -// VALIGND.Z imm8 zmm zmm k zmm -// -// Construct and append a VALIGND.Z instruction to the active function. -func (c *Context) VALIGND_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VALIGND_Z(i, mxyz, xyz, k, xyz1)) -} - -// VALIGND_Z: Align Doubleword Vectors (Zeroing Masking). -// -// Forms: -// -// VALIGND.Z imm8 m128 xmm k xmm -// VALIGND.Z imm8 m256 ymm k ymm -// VALIGND.Z imm8 xmm xmm k xmm -// VALIGND.Z imm8 ymm ymm k ymm -// VALIGND.Z imm8 m512 zmm k zmm -// VALIGND.Z imm8 zmm zmm k zmm -// -// Construct and append a VALIGND.Z instruction to the active function. -// Operates on the global context. -func VALIGND_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VALIGND_Z(i, mxyz, xyz, k, xyz1) } - -// VALIGNQ: Align Quadword Vectors. -// -// Forms: -// -// VALIGNQ imm8 m128 xmm k xmm -// VALIGNQ imm8 m128 xmm xmm -// VALIGNQ imm8 m256 ymm k ymm -// VALIGNQ imm8 m256 ymm ymm -// VALIGNQ imm8 xmm xmm k xmm -// VALIGNQ imm8 xmm xmm xmm -// VALIGNQ imm8 ymm ymm k ymm -// VALIGNQ imm8 ymm ymm ymm -// VALIGNQ imm8 m512 zmm k zmm -// VALIGNQ imm8 m512 zmm zmm -// VALIGNQ imm8 zmm zmm k zmm -// VALIGNQ imm8 zmm zmm zmm -// -// Construct and append a VALIGNQ instruction to the active function. -func (c *Context) VALIGNQ(ops ...operand.Op) { - c.addinstruction(x86.VALIGNQ(ops...)) -} - -// VALIGNQ: Align Quadword Vectors. -// -// Forms: -// -// VALIGNQ imm8 m128 xmm k xmm -// VALIGNQ imm8 m128 xmm xmm -// VALIGNQ imm8 m256 ymm k ymm -// VALIGNQ imm8 m256 ymm ymm -// VALIGNQ imm8 xmm xmm k xmm -// VALIGNQ imm8 xmm xmm xmm -// VALIGNQ imm8 ymm ymm k ymm -// VALIGNQ imm8 ymm ymm ymm -// VALIGNQ imm8 m512 zmm k zmm -// VALIGNQ imm8 m512 zmm zmm -// VALIGNQ imm8 zmm zmm k zmm -// VALIGNQ imm8 zmm zmm zmm -// -// Construct and append a VALIGNQ instruction to the active function. -// Operates on the global context. -func VALIGNQ(ops ...operand.Op) { ctx.VALIGNQ(ops...) } - -// VALIGNQ_BCST: Align Quadword Vectors (Broadcast). -// -// Forms: -// -// VALIGNQ.BCST imm8 m64 xmm k xmm -// VALIGNQ.BCST imm8 m64 xmm xmm -// VALIGNQ.BCST imm8 m64 ymm k ymm -// VALIGNQ.BCST imm8 m64 ymm ymm -// VALIGNQ.BCST imm8 m64 zmm k zmm -// VALIGNQ.BCST imm8 m64 zmm zmm -// -// Construct and append a VALIGNQ.BCST instruction to the active function. -func (c *Context) VALIGNQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VALIGNQ_BCST(ops...)) -} - -// VALIGNQ_BCST: Align Quadword Vectors (Broadcast). -// -// Forms: -// -// VALIGNQ.BCST imm8 m64 xmm k xmm -// VALIGNQ.BCST imm8 m64 xmm xmm -// VALIGNQ.BCST imm8 m64 ymm k ymm -// VALIGNQ.BCST imm8 m64 ymm ymm -// VALIGNQ.BCST imm8 m64 zmm k zmm -// VALIGNQ.BCST imm8 m64 zmm zmm -// -// Construct and append a VALIGNQ.BCST instruction to the active function. -// Operates on the global context. -func VALIGNQ_BCST(ops ...operand.Op) { ctx.VALIGNQ_BCST(ops...) } - -// VALIGNQ_BCST_Z: Align Quadword Vectors (Broadcast, Zeroing Masking). -// -// Forms: -// -// VALIGNQ.BCST.Z imm8 m64 xmm k xmm -// VALIGNQ.BCST.Z imm8 m64 ymm k ymm -// VALIGNQ.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VALIGNQ.BCST.Z instruction to the active function. -func (c *Context) VALIGNQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VALIGNQ_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VALIGNQ_BCST_Z: Align Quadword Vectors (Broadcast, Zeroing Masking). -// -// Forms: -// -// VALIGNQ.BCST.Z imm8 m64 xmm k xmm -// VALIGNQ.BCST.Z imm8 m64 ymm k ymm -// VALIGNQ.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VALIGNQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VALIGNQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VALIGNQ_BCST_Z(i, m, xyz, k, xyz1) } - -// VALIGNQ_Z: Align Quadword Vectors (Zeroing Masking). -// -// Forms: -// -// VALIGNQ.Z imm8 m128 xmm k xmm -// VALIGNQ.Z imm8 m256 ymm k ymm -// VALIGNQ.Z imm8 xmm xmm k xmm -// VALIGNQ.Z imm8 ymm ymm k ymm -// VALIGNQ.Z imm8 m512 zmm k zmm -// VALIGNQ.Z imm8 zmm zmm k zmm -// -// Construct and append a VALIGNQ.Z instruction to the active function. -func (c *Context) VALIGNQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VALIGNQ_Z(i, mxyz, xyz, k, xyz1)) -} - -// VALIGNQ_Z: Align Quadword Vectors (Zeroing Masking). -// -// Forms: -// -// VALIGNQ.Z imm8 m128 xmm k xmm -// VALIGNQ.Z imm8 m256 ymm k ymm -// VALIGNQ.Z imm8 xmm xmm k xmm -// VALIGNQ.Z imm8 ymm ymm k ymm -// VALIGNQ.Z imm8 m512 zmm k zmm -// VALIGNQ.Z imm8 zmm zmm k zmm -// -// Construct and append a VALIGNQ.Z instruction to the active function. -// Operates on the global context. -func VALIGNQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VALIGNQ_Z(i, mxyz, xyz, k, xyz1) } - -// VANDNPD: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VANDNPD m128 xmm xmm -// VANDNPD m256 ymm ymm -// VANDNPD xmm xmm xmm -// VANDNPD ymm ymm ymm -// VANDNPD m128 xmm k xmm -// VANDNPD m256 ymm k ymm -// VANDNPD xmm xmm k xmm -// VANDNPD ymm ymm k ymm -// VANDNPD m512 zmm k zmm -// VANDNPD m512 zmm zmm -// VANDNPD zmm zmm k zmm -// VANDNPD zmm zmm zmm -// -// Construct and append a VANDNPD instruction to the active function. -func (c *Context) VANDNPD(ops ...operand.Op) { - c.addinstruction(x86.VANDNPD(ops...)) -} - -// VANDNPD: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VANDNPD m128 xmm xmm -// VANDNPD m256 ymm ymm -// VANDNPD xmm xmm xmm -// VANDNPD ymm ymm ymm -// VANDNPD m128 xmm k xmm -// VANDNPD m256 ymm k ymm -// VANDNPD xmm xmm k xmm -// VANDNPD ymm ymm k ymm -// VANDNPD m512 zmm k zmm -// VANDNPD m512 zmm zmm -// VANDNPD zmm zmm k zmm -// VANDNPD zmm zmm zmm -// -// Construct and append a VANDNPD instruction to the active function. -// Operates on the global context. -func VANDNPD(ops ...operand.Op) { ctx.VANDNPD(ops...) } - -// VANDNPD_BCST: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDNPD.BCST m64 xmm k xmm -// VANDNPD.BCST m64 xmm xmm -// VANDNPD.BCST m64 ymm k ymm -// VANDNPD.BCST m64 ymm ymm -// VANDNPD.BCST m64 zmm k zmm -// VANDNPD.BCST m64 zmm zmm -// -// Construct and append a VANDNPD.BCST instruction to the active function. -func (c *Context) VANDNPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VANDNPD_BCST(ops...)) -} - -// VANDNPD_BCST: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDNPD.BCST m64 xmm k xmm -// VANDNPD.BCST m64 xmm xmm -// VANDNPD.BCST m64 ymm k ymm -// VANDNPD.BCST m64 ymm ymm -// VANDNPD.BCST m64 zmm k zmm -// VANDNPD.BCST m64 zmm zmm -// -// Construct and append a VANDNPD.BCST instruction to the active function. -// Operates on the global context. -func VANDNPD_BCST(ops ...operand.Op) { ctx.VANDNPD_BCST(ops...) } - -// VANDNPD_BCST_Z: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDNPD.BCST.Z m64 xmm k xmm -// VANDNPD.BCST.Z m64 ymm k ymm -// VANDNPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VANDNPD.BCST.Z instruction to the active function. -func (c *Context) VANDNPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VANDNPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VANDNPD_BCST_Z: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDNPD.BCST.Z m64 xmm k xmm -// VANDNPD.BCST.Z m64 ymm k ymm -// VANDNPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VANDNPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VANDNPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VANDNPD_BCST_Z(m, xyz, k, xyz1) } - -// VANDNPD_Z: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDNPD.Z m128 xmm k xmm -// VANDNPD.Z m256 ymm k ymm -// VANDNPD.Z xmm xmm k xmm -// VANDNPD.Z ymm ymm k ymm -// VANDNPD.Z m512 zmm k zmm -// VANDNPD.Z zmm zmm k zmm -// -// Construct and append a VANDNPD.Z instruction to the active function. -func (c *Context) VANDNPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VANDNPD_Z(mxyz, xyz, k, xyz1)) -} - -// VANDNPD_Z: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDNPD.Z m128 xmm k xmm -// VANDNPD.Z m256 ymm k ymm -// VANDNPD.Z xmm xmm k xmm -// VANDNPD.Z ymm ymm k ymm -// VANDNPD.Z m512 zmm k zmm -// VANDNPD.Z zmm zmm k zmm -// -// Construct and append a VANDNPD.Z instruction to the active function. -// Operates on the global context. -func VANDNPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VANDNPD_Z(mxyz, xyz, k, xyz1) } - -// VANDNPS: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VANDNPS m128 xmm xmm -// VANDNPS m256 ymm ymm -// VANDNPS xmm xmm xmm -// VANDNPS ymm ymm ymm -// VANDNPS m128 xmm k xmm -// VANDNPS m256 ymm k ymm -// VANDNPS xmm xmm k xmm -// VANDNPS ymm ymm k ymm -// VANDNPS m512 zmm k zmm -// VANDNPS m512 zmm zmm -// VANDNPS zmm zmm k zmm -// VANDNPS zmm zmm zmm -// -// Construct and append a VANDNPS instruction to the active function. -func (c *Context) VANDNPS(ops ...operand.Op) { - c.addinstruction(x86.VANDNPS(ops...)) -} - -// VANDNPS: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VANDNPS m128 xmm xmm -// VANDNPS m256 ymm ymm -// VANDNPS xmm xmm xmm -// VANDNPS ymm ymm ymm -// VANDNPS m128 xmm k xmm -// VANDNPS m256 ymm k ymm -// VANDNPS xmm xmm k xmm -// VANDNPS ymm ymm k ymm -// VANDNPS m512 zmm k zmm -// VANDNPS m512 zmm zmm -// VANDNPS zmm zmm k zmm -// VANDNPS zmm zmm zmm -// -// Construct and append a VANDNPS instruction to the active function. -// Operates on the global context. -func VANDNPS(ops ...operand.Op) { ctx.VANDNPS(ops...) } - -// VANDNPS_BCST: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDNPS.BCST m32 xmm k xmm -// VANDNPS.BCST m32 xmm xmm -// VANDNPS.BCST m32 ymm k ymm -// VANDNPS.BCST m32 ymm ymm -// VANDNPS.BCST m32 zmm k zmm -// VANDNPS.BCST m32 zmm zmm -// -// Construct and append a VANDNPS.BCST instruction to the active function. -func (c *Context) VANDNPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VANDNPS_BCST(ops...)) -} - -// VANDNPS_BCST: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDNPS.BCST m32 xmm k xmm -// VANDNPS.BCST m32 xmm xmm -// VANDNPS.BCST m32 ymm k ymm -// VANDNPS.BCST m32 ymm ymm -// VANDNPS.BCST m32 zmm k zmm -// VANDNPS.BCST m32 zmm zmm -// -// Construct and append a VANDNPS.BCST instruction to the active function. -// Operates on the global context. -func VANDNPS_BCST(ops ...operand.Op) { ctx.VANDNPS_BCST(ops...) } - -// VANDNPS_BCST_Z: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDNPS.BCST.Z m32 xmm k xmm -// VANDNPS.BCST.Z m32 ymm k ymm -// VANDNPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VANDNPS.BCST.Z instruction to the active function. -func (c *Context) VANDNPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VANDNPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VANDNPS_BCST_Z: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDNPS.BCST.Z m32 xmm k xmm -// VANDNPS.BCST.Z m32 ymm k ymm -// VANDNPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VANDNPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VANDNPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VANDNPS_BCST_Z(m, xyz, k, xyz1) } - -// VANDNPS_Z: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDNPS.Z m128 xmm k xmm -// VANDNPS.Z m256 ymm k ymm -// VANDNPS.Z xmm xmm k xmm -// VANDNPS.Z ymm ymm k ymm -// VANDNPS.Z m512 zmm k zmm -// VANDNPS.Z zmm zmm k zmm -// -// Construct and append a VANDNPS.Z instruction to the active function. -func (c *Context) VANDNPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VANDNPS_Z(mxyz, xyz, k, xyz1)) -} - -// VANDNPS_Z: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDNPS.Z m128 xmm k xmm -// VANDNPS.Z m256 ymm k ymm -// VANDNPS.Z xmm xmm k xmm -// VANDNPS.Z ymm ymm k ymm -// VANDNPS.Z m512 zmm k zmm -// VANDNPS.Z zmm zmm k zmm -// -// Construct and append a VANDNPS.Z instruction to the active function. -// Operates on the global context. -func VANDNPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VANDNPS_Z(mxyz, xyz, k, xyz1) } - -// VANDPD: Bitwise Logical AND of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VANDPD m128 xmm xmm -// VANDPD m256 ymm ymm -// VANDPD xmm xmm xmm -// VANDPD ymm ymm ymm -// VANDPD m128 xmm k xmm -// VANDPD m256 ymm k ymm -// VANDPD xmm xmm k xmm -// VANDPD ymm ymm k ymm -// VANDPD m512 zmm k zmm -// VANDPD m512 zmm zmm -// VANDPD zmm zmm k zmm -// VANDPD zmm zmm zmm -// -// Construct and append a VANDPD instruction to the active function. -func (c *Context) VANDPD(ops ...operand.Op) { - c.addinstruction(x86.VANDPD(ops...)) -} - -// VANDPD: Bitwise Logical AND of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VANDPD m128 xmm xmm -// VANDPD m256 ymm ymm -// VANDPD xmm xmm xmm -// VANDPD ymm ymm ymm -// VANDPD m128 xmm k xmm -// VANDPD m256 ymm k ymm -// VANDPD xmm xmm k xmm -// VANDPD ymm ymm k ymm -// VANDPD m512 zmm k zmm -// VANDPD m512 zmm zmm -// VANDPD zmm zmm k zmm -// VANDPD zmm zmm zmm -// -// Construct and append a VANDPD instruction to the active function. -// Operates on the global context. -func VANDPD(ops ...operand.Op) { ctx.VANDPD(ops...) } - -// VANDPD_BCST: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDPD.BCST m64 xmm k xmm -// VANDPD.BCST m64 xmm xmm -// VANDPD.BCST m64 ymm k ymm -// VANDPD.BCST m64 ymm ymm -// VANDPD.BCST m64 zmm k zmm -// VANDPD.BCST m64 zmm zmm -// -// Construct and append a VANDPD.BCST instruction to the active function. -func (c *Context) VANDPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VANDPD_BCST(ops...)) -} - -// VANDPD_BCST: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDPD.BCST m64 xmm k xmm -// VANDPD.BCST m64 xmm xmm -// VANDPD.BCST m64 ymm k ymm -// VANDPD.BCST m64 ymm ymm -// VANDPD.BCST m64 zmm k zmm -// VANDPD.BCST m64 zmm zmm -// -// Construct and append a VANDPD.BCST instruction to the active function. -// Operates on the global context. -func VANDPD_BCST(ops ...operand.Op) { ctx.VANDPD_BCST(ops...) } - -// VANDPD_BCST_Z: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDPD.BCST.Z m64 xmm k xmm -// VANDPD.BCST.Z m64 ymm k ymm -// VANDPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VANDPD.BCST.Z instruction to the active function. -func (c *Context) VANDPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VANDPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VANDPD_BCST_Z: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDPD.BCST.Z m64 xmm k xmm -// VANDPD.BCST.Z m64 ymm k ymm -// VANDPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VANDPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VANDPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VANDPD_BCST_Z(m, xyz, k, xyz1) } - -// VANDPD_Z: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDPD.Z m128 xmm k xmm -// VANDPD.Z m256 ymm k ymm -// VANDPD.Z xmm xmm k xmm -// VANDPD.Z ymm ymm k ymm -// VANDPD.Z m512 zmm k zmm -// VANDPD.Z zmm zmm k zmm -// -// Construct and append a VANDPD.Z instruction to the active function. -func (c *Context) VANDPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VANDPD_Z(mxyz, xyz, k, xyz1)) -} - -// VANDPD_Z: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDPD.Z m128 xmm k xmm -// VANDPD.Z m256 ymm k ymm -// VANDPD.Z xmm xmm k xmm -// VANDPD.Z ymm ymm k ymm -// VANDPD.Z m512 zmm k zmm -// VANDPD.Z zmm zmm k zmm -// -// Construct and append a VANDPD.Z instruction to the active function. -// Operates on the global context. -func VANDPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VANDPD_Z(mxyz, xyz, k, xyz1) } - -// VANDPS: Bitwise Logical AND of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VANDPS m128 xmm xmm -// VANDPS m256 ymm ymm -// VANDPS xmm xmm xmm -// VANDPS ymm ymm ymm -// VANDPS m128 xmm k xmm -// VANDPS m256 ymm k ymm -// VANDPS xmm xmm k xmm -// VANDPS ymm ymm k ymm -// VANDPS m512 zmm k zmm -// VANDPS m512 zmm zmm -// VANDPS zmm zmm k zmm -// VANDPS zmm zmm zmm -// -// Construct and append a VANDPS instruction to the active function. -func (c *Context) VANDPS(ops ...operand.Op) { - c.addinstruction(x86.VANDPS(ops...)) -} - -// VANDPS: Bitwise Logical AND of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VANDPS m128 xmm xmm -// VANDPS m256 ymm ymm -// VANDPS xmm xmm xmm -// VANDPS ymm ymm ymm -// VANDPS m128 xmm k xmm -// VANDPS m256 ymm k ymm -// VANDPS xmm xmm k xmm -// VANDPS ymm ymm k ymm -// VANDPS m512 zmm k zmm -// VANDPS m512 zmm zmm -// VANDPS zmm zmm k zmm -// VANDPS zmm zmm zmm -// -// Construct and append a VANDPS instruction to the active function. -// Operates on the global context. -func VANDPS(ops ...operand.Op) { ctx.VANDPS(ops...) } - -// VANDPS_BCST: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDPS.BCST m32 xmm k xmm -// VANDPS.BCST m32 xmm xmm -// VANDPS.BCST m32 ymm k ymm -// VANDPS.BCST m32 ymm ymm -// VANDPS.BCST m32 zmm k zmm -// VANDPS.BCST m32 zmm zmm -// -// Construct and append a VANDPS.BCST instruction to the active function. -func (c *Context) VANDPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VANDPS_BCST(ops...)) -} - -// VANDPS_BCST: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDPS.BCST m32 xmm k xmm -// VANDPS.BCST m32 xmm xmm -// VANDPS.BCST m32 ymm k ymm -// VANDPS.BCST m32 ymm ymm -// VANDPS.BCST m32 zmm k zmm -// VANDPS.BCST m32 zmm zmm -// -// Construct and append a VANDPS.BCST instruction to the active function. -// Operates on the global context. -func VANDPS_BCST(ops ...operand.Op) { ctx.VANDPS_BCST(ops...) } - -// VANDPS_BCST_Z: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDPS.BCST.Z m32 xmm k xmm -// VANDPS.BCST.Z m32 ymm k ymm -// VANDPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VANDPS.BCST.Z instruction to the active function. -func (c *Context) VANDPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VANDPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VANDPS_BCST_Z: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDPS.BCST.Z m32 xmm k xmm -// VANDPS.BCST.Z m32 ymm k ymm -// VANDPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VANDPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VANDPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VANDPS_BCST_Z(m, xyz, k, xyz1) } - -// VANDPS_Z: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDPS.Z m128 xmm k xmm -// VANDPS.Z m256 ymm k ymm -// VANDPS.Z xmm xmm k xmm -// VANDPS.Z ymm ymm k ymm -// VANDPS.Z m512 zmm k zmm -// VANDPS.Z zmm zmm k zmm -// -// Construct and append a VANDPS.Z instruction to the active function. -func (c *Context) VANDPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VANDPS_Z(mxyz, xyz, k, xyz1)) -} - -// VANDPS_Z: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDPS.Z m128 xmm k xmm -// VANDPS.Z m256 ymm k ymm -// VANDPS.Z xmm xmm k xmm -// VANDPS.Z ymm ymm k ymm -// VANDPS.Z m512 zmm k zmm -// VANDPS.Z zmm zmm k zmm -// -// Construct and append a VANDPS.Z instruction to the active function. -// Operates on the global context. -func VANDPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VANDPS_Z(mxyz, xyz, k, xyz1) } - -// VBLENDMPD: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control. -// -// Forms: -// -// VBLENDMPD m128 xmm k xmm -// VBLENDMPD m128 xmm xmm -// VBLENDMPD m256 ymm k ymm -// VBLENDMPD m256 ymm ymm -// VBLENDMPD xmm xmm k xmm -// VBLENDMPD xmm xmm xmm -// VBLENDMPD ymm ymm k ymm -// VBLENDMPD ymm ymm ymm -// VBLENDMPD m512 zmm k zmm -// VBLENDMPD m512 zmm zmm -// VBLENDMPD zmm zmm k zmm -// VBLENDMPD zmm zmm zmm -// -// Construct and append a VBLENDMPD instruction to the active function. -func (c *Context) VBLENDMPD(ops ...operand.Op) { - c.addinstruction(x86.VBLENDMPD(ops...)) -} - -// VBLENDMPD: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control. -// -// Forms: -// -// VBLENDMPD m128 xmm k xmm -// VBLENDMPD m128 xmm xmm -// VBLENDMPD m256 ymm k ymm -// VBLENDMPD m256 ymm ymm -// VBLENDMPD xmm xmm k xmm -// VBLENDMPD xmm xmm xmm -// VBLENDMPD ymm ymm k ymm -// VBLENDMPD ymm ymm ymm -// VBLENDMPD m512 zmm k zmm -// VBLENDMPD m512 zmm zmm -// VBLENDMPD zmm zmm k zmm -// VBLENDMPD zmm zmm zmm -// -// Construct and append a VBLENDMPD instruction to the active function. -// Operates on the global context. -func VBLENDMPD(ops ...operand.Op) { ctx.VBLENDMPD(ops...) } - -// VBLENDMPD_BCST: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VBLENDMPD.BCST m64 xmm k xmm -// VBLENDMPD.BCST m64 xmm xmm -// VBLENDMPD.BCST m64 ymm k ymm -// VBLENDMPD.BCST m64 ymm ymm -// VBLENDMPD.BCST m64 zmm k zmm -// VBLENDMPD.BCST m64 zmm zmm -// -// Construct and append a VBLENDMPD.BCST instruction to the active function. -func (c *Context) VBLENDMPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VBLENDMPD_BCST(ops...)) -} - -// VBLENDMPD_BCST: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VBLENDMPD.BCST m64 xmm k xmm -// VBLENDMPD.BCST m64 xmm xmm -// VBLENDMPD.BCST m64 ymm k ymm -// VBLENDMPD.BCST m64 ymm ymm -// VBLENDMPD.BCST m64 zmm k zmm -// VBLENDMPD.BCST m64 zmm zmm -// -// Construct and append a VBLENDMPD.BCST instruction to the active function. -// Operates on the global context. -func VBLENDMPD_BCST(ops ...operand.Op) { ctx.VBLENDMPD_BCST(ops...) } - -// VBLENDMPD_BCST_Z: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VBLENDMPD.BCST.Z m64 xmm k xmm -// VBLENDMPD.BCST.Z m64 ymm k ymm -// VBLENDMPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VBLENDMPD.BCST.Z instruction to the active function. -func (c *Context) VBLENDMPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VBLENDMPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VBLENDMPD_BCST_Z: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VBLENDMPD.BCST.Z m64 xmm k xmm -// VBLENDMPD.BCST.Z m64 ymm k ymm -// VBLENDMPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VBLENDMPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VBLENDMPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VBLENDMPD_BCST_Z(m, xyz, k, xyz1) } - -// VBLENDMPD_Z: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VBLENDMPD.Z m128 xmm k xmm -// VBLENDMPD.Z m256 ymm k ymm -// VBLENDMPD.Z xmm xmm k xmm -// VBLENDMPD.Z ymm ymm k ymm -// VBLENDMPD.Z m512 zmm k zmm -// VBLENDMPD.Z zmm zmm k zmm -// -// Construct and append a VBLENDMPD.Z instruction to the active function. -func (c *Context) VBLENDMPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VBLENDMPD_Z(mxyz, xyz, k, xyz1)) -} - -// VBLENDMPD_Z: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VBLENDMPD.Z m128 xmm k xmm -// VBLENDMPD.Z m256 ymm k ymm -// VBLENDMPD.Z xmm xmm k xmm -// VBLENDMPD.Z ymm ymm k ymm -// VBLENDMPD.Z m512 zmm k zmm -// VBLENDMPD.Z zmm zmm k zmm -// -// Construct and append a VBLENDMPD.Z instruction to the active function. -// Operates on the global context. -func VBLENDMPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VBLENDMPD_Z(mxyz, xyz, k, xyz1) } - -// VBLENDMPS: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control. -// -// Forms: -// -// VBLENDMPS m128 xmm k xmm -// VBLENDMPS m128 xmm xmm -// VBLENDMPS m256 ymm k ymm -// VBLENDMPS m256 ymm ymm -// VBLENDMPS xmm xmm k xmm -// VBLENDMPS xmm xmm xmm -// VBLENDMPS ymm ymm k ymm -// VBLENDMPS ymm ymm ymm -// VBLENDMPS m512 zmm k zmm -// VBLENDMPS m512 zmm zmm -// VBLENDMPS zmm zmm k zmm -// VBLENDMPS zmm zmm zmm -// -// Construct and append a VBLENDMPS instruction to the active function. -func (c *Context) VBLENDMPS(ops ...operand.Op) { - c.addinstruction(x86.VBLENDMPS(ops...)) -} - -// VBLENDMPS: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control. -// -// Forms: -// -// VBLENDMPS m128 xmm k xmm -// VBLENDMPS m128 xmm xmm -// VBLENDMPS m256 ymm k ymm -// VBLENDMPS m256 ymm ymm -// VBLENDMPS xmm xmm k xmm -// VBLENDMPS xmm xmm xmm -// VBLENDMPS ymm ymm k ymm -// VBLENDMPS ymm ymm ymm -// VBLENDMPS m512 zmm k zmm -// VBLENDMPS m512 zmm zmm -// VBLENDMPS zmm zmm k zmm -// VBLENDMPS zmm zmm zmm -// -// Construct and append a VBLENDMPS instruction to the active function. -// Operates on the global context. -func VBLENDMPS(ops ...operand.Op) { ctx.VBLENDMPS(ops...) } - -// VBLENDMPS_BCST: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VBLENDMPS.BCST m32 xmm k xmm -// VBLENDMPS.BCST m32 xmm xmm -// VBLENDMPS.BCST m32 ymm k ymm -// VBLENDMPS.BCST m32 ymm ymm -// VBLENDMPS.BCST m32 zmm k zmm -// VBLENDMPS.BCST m32 zmm zmm -// -// Construct and append a VBLENDMPS.BCST instruction to the active function. -func (c *Context) VBLENDMPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VBLENDMPS_BCST(ops...)) -} - -// VBLENDMPS_BCST: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VBLENDMPS.BCST m32 xmm k xmm -// VBLENDMPS.BCST m32 xmm xmm -// VBLENDMPS.BCST m32 ymm k ymm -// VBLENDMPS.BCST m32 ymm ymm -// VBLENDMPS.BCST m32 zmm k zmm -// VBLENDMPS.BCST m32 zmm zmm -// -// Construct and append a VBLENDMPS.BCST instruction to the active function. -// Operates on the global context. -func VBLENDMPS_BCST(ops ...operand.Op) { ctx.VBLENDMPS_BCST(ops...) } - -// VBLENDMPS_BCST_Z: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VBLENDMPS.BCST.Z m32 xmm k xmm -// VBLENDMPS.BCST.Z m32 ymm k ymm -// VBLENDMPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VBLENDMPS.BCST.Z instruction to the active function. -func (c *Context) VBLENDMPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VBLENDMPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VBLENDMPS_BCST_Z: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VBLENDMPS.BCST.Z m32 xmm k xmm -// VBLENDMPS.BCST.Z m32 ymm k ymm -// VBLENDMPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VBLENDMPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VBLENDMPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VBLENDMPS_BCST_Z(m, xyz, k, xyz1) } - -// VBLENDMPS_Z: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VBLENDMPS.Z m128 xmm k xmm -// VBLENDMPS.Z m256 ymm k ymm -// VBLENDMPS.Z xmm xmm k xmm -// VBLENDMPS.Z ymm ymm k ymm -// VBLENDMPS.Z m512 zmm k zmm -// VBLENDMPS.Z zmm zmm k zmm -// -// Construct and append a VBLENDMPS.Z instruction to the active function. -func (c *Context) VBLENDMPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VBLENDMPS_Z(mxyz, xyz, k, xyz1)) -} - -// VBLENDMPS_Z: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VBLENDMPS.Z m128 xmm k xmm -// VBLENDMPS.Z m256 ymm k ymm -// VBLENDMPS.Z xmm xmm k xmm -// VBLENDMPS.Z ymm ymm k ymm -// VBLENDMPS.Z m512 zmm k zmm -// VBLENDMPS.Z zmm zmm k zmm -// -// Construct and append a VBLENDMPS.Z instruction to the active function. -// Operates on the global context. -func VBLENDMPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VBLENDMPS_Z(mxyz, xyz, k, xyz1) } - -// VBLENDPD: Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VBLENDPD imm8 m128 xmm xmm -// VBLENDPD imm8 m256 ymm ymm -// VBLENDPD imm8 xmm xmm xmm -// VBLENDPD imm8 ymm ymm ymm -// -// Construct and append a VBLENDPD instruction to the active function. -func (c *Context) VBLENDPD(i, mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VBLENDPD(i, mxy, xy, xy1)) -} - -// VBLENDPD: Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VBLENDPD imm8 m128 xmm xmm -// VBLENDPD imm8 m256 ymm ymm -// VBLENDPD imm8 xmm xmm xmm -// VBLENDPD imm8 ymm ymm ymm -// -// Construct and append a VBLENDPD instruction to the active function. -// Operates on the global context. -func VBLENDPD(i, mxy, xy, xy1 operand.Op) { ctx.VBLENDPD(i, mxy, xy, xy1) } - -// VBLENDPS: Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VBLENDPS imm8 m128 xmm xmm -// VBLENDPS imm8 m256 ymm ymm -// VBLENDPS imm8 xmm xmm xmm -// VBLENDPS imm8 ymm ymm ymm -// -// Construct and append a VBLENDPS instruction to the active function. -func (c *Context) VBLENDPS(i, mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VBLENDPS(i, mxy, xy, xy1)) -} - -// VBLENDPS: Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VBLENDPS imm8 m128 xmm xmm -// VBLENDPS imm8 m256 ymm ymm -// VBLENDPS imm8 xmm xmm xmm -// VBLENDPS imm8 ymm ymm ymm -// -// Construct and append a VBLENDPS instruction to the active function. -// Operates on the global context. -func VBLENDPS(i, mxy, xy, xy1 operand.Op) { ctx.VBLENDPS(i, mxy, xy, xy1) } - -// VBLENDVPD: Variable Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VBLENDVPD xmm m128 xmm xmm -// VBLENDVPD xmm xmm xmm xmm -// VBLENDVPD ymm m256 ymm ymm -// VBLENDVPD ymm ymm ymm ymm -// -// Construct and append a VBLENDVPD instruction to the active function. -func (c *Context) VBLENDVPD(xy, mxy, xy1, xy2 operand.Op) { - c.addinstruction(x86.VBLENDVPD(xy, mxy, xy1, xy2)) -} - -// VBLENDVPD: Variable Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VBLENDVPD xmm m128 xmm xmm -// VBLENDVPD xmm xmm xmm xmm -// VBLENDVPD ymm m256 ymm ymm -// VBLENDVPD ymm ymm ymm ymm -// -// Construct and append a VBLENDVPD instruction to the active function. -// Operates on the global context. -func VBLENDVPD(xy, mxy, xy1, xy2 operand.Op) { ctx.VBLENDVPD(xy, mxy, xy1, xy2) } - -// VBLENDVPS: Variable Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VBLENDVPS xmm m128 xmm xmm -// VBLENDVPS xmm xmm xmm xmm -// VBLENDVPS ymm m256 ymm ymm -// VBLENDVPS ymm ymm ymm ymm -// -// Construct and append a VBLENDVPS instruction to the active function. -func (c *Context) VBLENDVPS(xy, mxy, xy1, xy2 operand.Op) { - c.addinstruction(x86.VBLENDVPS(xy, mxy, xy1, xy2)) -} - -// VBLENDVPS: Variable Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VBLENDVPS xmm m128 xmm xmm -// VBLENDVPS xmm xmm xmm xmm -// VBLENDVPS ymm m256 ymm ymm -// VBLENDVPS ymm ymm ymm ymm -// -// Construct and append a VBLENDVPS instruction to the active function. -// Operates on the global context. -func VBLENDVPS(xy, mxy, xy1, xy2 operand.Op) { ctx.VBLENDVPS(xy, mxy, xy1, xy2) } - -// VBROADCASTF128: Broadcast 128 Bit of Floating-Point Data. -// -// Forms: -// -// VBROADCASTF128 m128 ymm -// -// Construct and append a VBROADCASTF128 instruction to the active function. -func (c *Context) VBROADCASTF128(m, y operand.Op) { - c.addinstruction(x86.VBROADCASTF128(m, y)) -} - -// VBROADCASTF128: Broadcast 128 Bit of Floating-Point Data. -// -// Forms: -// -// VBROADCASTF128 m128 ymm -// -// Construct and append a VBROADCASTF128 instruction to the active function. -// Operates on the global context. -func VBROADCASTF128(m, y operand.Op) { ctx.VBROADCASTF128(m, y) } - -// VBROADCASTF32X2: Broadcast Two Single-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF32X2 m64 k ymm -// VBROADCASTF32X2 m64 ymm -// VBROADCASTF32X2 xmm k ymm -// VBROADCASTF32X2 xmm ymm -// VBROADCASTF32X2 m64 k zmm -// VBROADCASTF32X2 m64 zmm -// VBROADCASTF32X2 xmm k zmm -// VBROADCASTF32X2 xmm zmm -// -// Construct and append a VBROADCASTF32X2 instruction to the active function. -func (c *Context) VBROADCASTF32X2(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTF32X2(ops...)) -} - -// VBROADCASTF32X2: Broadcast Two Single-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF32X2 m64 k ymm -// VBROADCASTF32X2 m64 ymm -// VBROADCASTF32X2 xmm k ymm -// VBROADCASTF32X2 xmm ymm -// VBROADCASTF32X2 m64 k zmm -// VBROADCASTF32X2 m64 zmm -// VBROADCASTF32X2 xmm k zmm -// VBROADCASTF32X2 xmm zmm -// -// Construct and append a VBROADCASTF32X2 instruction to the active function. -// Operates on the global context. -func VBROADCASTF32X2(ops ...operand.Op) { ctx.VBROADCASTF32X2(ops...) } - -// VBROADCASTF32X2_Z: Broadcast Two Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF32X2.Z m64 k ymm -// VBROADCASTF32X2.Z xmm k ymm -// VBROADCASTF32X2.Z m64 k zmm -// VBROADCASTF32X2.Z xmm k zmm -// -// Construct and append a VBROADCASTF32X2.Z instruction to the active function. -func (c *Context) VBROADCASTF32X2_Z(mx, k, yz operand.Op) { - c.addinstruction(x86.VBROADCASTF32X2_Z(mx, k, yz)) -} - -// VBROADCASTF32X2_Z: Broadcast Two Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF32X2.Z m64 k ymm -// VBROADCASTF32X2.Z xmm k ymm -// VBROADCASTF32X2.Z m64 k zmm -// VBROADCASTF32X2.Z xmm k zmm -// -// Construct and append a VBROADCASTF32X2.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTF32X2_Z(mx, k, yz operand.Op) { ctx.VBROADCASTF32X2_Z(mx, k, yz) } - -// VBROADCASTF32X4: Broadcast Four Single-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF32X4 m128 k ymm -// VBROADCASTF32X4 m128 ymm -// VBROADCASTF32X4 m128 k zmm -// VBROADCASTF32X4 m128 zmm -// -// Construct and append a VBROADCASTF32X4 instruction to the active function. -func (c *Context) VBROADCASTF32X4(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTF32X4(ops...)) -} - -// VBROADCASTF32X4: Broadcast Four Single-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF32X4 m128 k ymm -// VBROADCASTF32X4 m128 ymm -// VBROADCASTF32X4 m128 k zmm -// VBROADCASTF32X4 m128 zmm -// -// Construct and append a VBROADCASTF32X4 instruction to the active function. -// Operates on the global context. -func VBROADCASTF32X4(ops ...operand.Op) { ctx.VBROADCASTF32X4(ops...) } - -// VBROADCASTF32X4_Z: Broadcast Four Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF32X4.Z m128 k ymm -// VBROADCASTF32X4.Z m128 k zmm -// -// Construct and append a VBROADCASTF32X4.Z instruction to the active function. -func (c *Context) VBROADCASTF32X4_Z(m, k, yz operand.Op) { - c.addinstruction(x86.VBROADCASTF32X4_Z(m, k, yz)) -} - -// VBROADCASTF32X4_Z: Broadcast Four Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF32X4.Z m128 k ymm -// VBROADCASTF32X4.Z m128 k zmm -// -// Construct and append a VBROADCASTF32X4.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTF32X4_Z(m, k, yz operand.Op) { ctx.VBROADCASTF32X4_Z(m, k, yz) } - -// VBROADCASTF32X8: Broadcast Eight Single-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF32X8 m256 k zmm -// VBROADCASTF32X8 m256 zmm -// -// Construct and append a VBROADCASTF32X8 instruction to the active function. -func (c *Context) VBROADCASTF32X8(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTF32X8(ops...)) -} - -// VBROADCASTF32X8: Broadcast Eight Single-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF32X8 m256 k zmm -// VBROADCASTF32X8 m256 zmm -// -// Construct and append a VBROADCASTF32X8 instruction to the active function. -// Operates on the global context. -func VBROADCASTF32X8(ops ...operand.Op) { ctx.VBROADCASTF32X8(ops...) } - -// VBROADCASTF32X8_Z: Broadcast Eight Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF32X8.Z m256 k zmm -// -// Construct and append a VBROADCASTF32X8.Z instruction to the active function. -func (c *Context) VBROADCASTF32X8_Z(m, k, z operand.Op) { - c.addinstruction(x86.VBROADCASTF32X8_Z(m, k, z)) -} - -// VBROADCASTF32X8_Z: Broadcast Eight Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF32X8.Z m256 k zmm -// -// Construct and append a VBROADCASTF32X8.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTF32X8_Z(m, k, z operand.Op) { ctx.VBROADCASTF32X8_Z(m, k, z) } - -// VBROADCASTF64X2: Broadcast Two Double-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF64X2 m128 k ymm -// VBROADCASTF64X2 m128 ymm -// VBROADCASTF64X2 m128 k zmm -// VBROADCASTF64X2 m128 zmm -// -// Construct and append a VBROADCASTF64X2 instruction to the active function. -func (c *Context) VBROADCASTF64X2(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTF64X2(ops...)) -} - -// VBROADCASTF64X2: Broadcast Two Double-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF64X2 m128 k ymm -// VBROADCASTF64X2 m128 ymm -// VBROADCASTF64X2 m128 k zmm -// VBROADCASTF64X2 m128 zmm -// -// Construct and append a VBROADCASTF64X2 instruction to the active function. -// Operates on the global context. -func VBROADCASTF64X2(ops ...operand.Op) { ctx.VBROADCASTF64X2(ops...) } - -// VBROADCASTF64X2_Z: Broadcast Two Double-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF64X2.Z m128 k ymm -// VBROADCASTF64X2.Z m128 k zmm -// -// Construct and append a VBROADCASTF64X2.Z instruction to the active function. -func (c *Context) VBROADCASTF64X2_Z(m, k, yz operand.Op) { - c.addinstruction(x86.VBROADCASTF64X2_Z(m, k, yz)) -} - -// VBROADCASTF64X2_Z: Broadcast Two Double-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF64X2.Z m128 k ymm -// VBROADCASTF64X2.Z m128 k zmm -// -// Construct and append a VBROADCASTF64X2.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTF64X2_Z(m, k, yz operand.Op) { ctx.VBROADCASTF64X2_Z(m, k, yz) } - -// VBROADCASTF64X4: Broadcast Four Double-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF64X4 m256 k zmm -// VBROADCASTF64X4 m256 zmm -// -// Construct and append a VBROADCASTF64X4 instruction to the active function. -func (c *Context) VBROADCASTF64X4(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTF64X4(ops...)) -} - -// VBROADCASTF64X4: Broadcast Four Double-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF64X4 m256 k zmm -// VBROADCASTF64X4 m256 zmm -// -// Construct and append a VBROADCASTF64X4 instruction to the active function. -// Operates on the global context. -func VBROADCASTF64X4(ops ...operand.Op) { ctx.VBROADCASTF64X4(ops...) } - -// VBROADCASTF64X4_Z: Broadcast Four Double-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF64X4.Z m256 k zmm -// -// Construct and append a VBROADCASTF64X4.Z instruction to the active function. -func (c *Context) VBROADCASTF64X4_Z(m, k, z operand.Op) { - c.addinstruction(x86.VBROADCASTF64X4_Z(m, k, z)) -} - -// VBROADCASTF64X4_Z: Broadcast Four Double-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF64X4.Z m256 k zmm -// -// Construct and append a VBROADCASTF64X4.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTF64X4_Z(m, k, z operand.Op) { ctx.VBROADCASTF64X4_Z(m, k, z) } - -// VBROADCASTI128: Broadcast 128 Bits of Integer Data. -// -// Forms: -// -// VBROADCASTI128 m128 ymm -// -// Construct and append a VBROADCASTI128 instruction to the active function. -func (c *Context) VBROADCASTI128(m, y operand.Op) { - c.addinstruction(x86.VBROADCASTI128(m, y)) -} - -// VBROADCASTI128: Broadcast 128 Bits of Integer Data. -// -// Forms: -// -// VBROADCASTI128 m128 ymm -// -// Construct and append a VBROADCASTI128 instruction to the active function. -// Operates on the global context. -func VBROADCASTI128(m, y operand.Op) { ctx.VBROADCASTI128(m, y) } - -// VBROADCASTI32X2: Broadcast Two Doubleword Elements. -// -// Forms: -// -// VBROADCASTI32X2 m64 k xmm -// VBROADCASTI32X2 m64 k ymm -// VBROADCASTI32X2 m64 xmm -// VBROADCASTI32X2 m64 ymm -// VBROADCASTI32X2 xmm k xmm -// VBROADCASTI32X2 xmm k ymm -// VBROADCASTI32X2 xmm xmm -// VBROADCASTI32X2 xmm ymm -// VBROADCASTI32X2 m64 k zmm -// VBROADCASTI32X2 m64 zmm -// VBROADCASTI32X2 xmm k zmm -// VBROADCASTI32X2 xmm zmm -// -// Construct and append a VBROADCASTI32X2 instruction to the active function. -func (c *Context) VBROADCASTI32X2(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTI32X2(ops...)) -} - -// VBROADCASTI32X2: Broadcast Two Doubleword Elements. -// -// Forms: -// -// VBROADCASTI32X2 m64 k xmm -// VBROADCASTI32X2 m64 k ymm -// VBROADCASTI32X2 m64 xmm -// VBROADCASTI32X2 m64 ymm -// VBROADCASTI32X2 xmm k xmm -// VBROADCASTI32X2 xmm k ymm -// VBROADCASTI32X2 xmm xmm -// VBROADCASTI32X2 xmm ymm -// VBROADCASTI32X2 m64 k zmm -// VBROADCASTI32X2 m64 zmm -// VBROADCASTI32X2 xmm k zmm -// VBROADCASTI32X2 xmm zmm -// -// Construct and append a VBROADCASTI32X2 instruction to the active function. -// Operates on the global context. -func VBROADCASTI32X2(ops ...operand.Op) { ctx.VBROADCASTI32X2(ops...) } - -// VBROADCASTI32X2_Z: Broadcast Two Doubleword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI32X2.Z m64 k xmm -// VBROADCASTI32X2.Z m64 k ymm -// VBROADCASTI32X2.Z xmm k xmm -// VBROADCASTI32X2.Z xmm k ymm -// VBROADCASTI32X2.Z m64 k zmm -// VBROADCASTI32X2.Z xmm k zmm -// -// Construct and append a VBROADCASTI32X2.Z instruction to the active function. -func (c *Context) VBROADCASTI32X2_Z(mx, k, xyz operand.Op) { - c.addinstruction(x86.VBROADCASTI32X2_Z(mx, k, xyz)) -} - -// VBROADCASTI32X2_Z: Broadcast Two Doubleword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI32X2.Z m64 k xmm -// VBROADCASTI32X2.Z m64 k ymm -// VBROADCASTI32X2.Z xmm k xmm -// VBROADCASTI32X2.Z xmm k ymm -// VBROADCASTI32X2.Z m64 k zmm -// VBROADCASTI32X2.Z xmm k zmm -// -// Construct and append a VBROADCASTI32X2.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTI32X2_Z(mx, k, xyz operand.Op) { ctx.VBROADCASTI32X2_Z(mx, k, xyz) } - -// VBROADCASTI32X4: Broadcast Four Doubleword Elements. -// -// Forms: -// -// VBROADCASTI32X4 m128 k ymm -// VBROADCASTI32X4 m128 ymm -// VBROADCASTI32X4 m128 k zmm -// VBROADCASTI32X4 m128 zmm -// -// Construct and append a VBROADCASTI32X4 instruction to the active function. -func (c *Context) VBROADCASTI32X4(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTI32X4(ops...)) -} - -// VBROADCASTI32X4: Broadcast Four Doubleword Elements. -// -// Forms: -// -// VBROADCASTI32X4 m128 k ymm -// VBROADCASTI32X4 m128 ymm -// VBROADCASTI32X4 m128 k zmm -// VBROADCASTI32X4 m128 zmm -// -// Construct and append a VBROADCASTI32X4 instruction to the active function. -// Operates on the global context. -func VBROADCASTI32X4(ops ...operand.Op) { ctx.VBROADCASTI32X4(ops...) } - -// VBROADCASTI32X4_Z: Broadcast Four Doubleword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI32X4.Z m128 k ymm -// VBROADCASTI32X4.Z m128 k zmm -// -// Construct and append a VBROADCASTI32X4.Z instruction to the active function. -func (c *Context) VBROADCASTI32X4_Z(m, k, yz operand.Op) { - c.addinstruction(x86.VBROADCASTI32X4_Z(m, k, yz)) -} - -// VBROADCASTI32X4_Z: Broadcast Four Doubleword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI32X4.Z m128 k ymm -// VBROADCASTI32X4.Z m128 k zmm -// -// Construct and append a VBROADCASTI32X4.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTI32X4_Z(m, k, yz operand.Op) { ctx.VBROADCASTI32X4_Z(m, k, yz) } - -// VBROADCASTI32X8: Broadcast Eight Doubleword Elements. -// -// Forms: -// -// VBROADCASTI32X8 m256 k zmm -// VBROADCASTI32X8 m256 zmm -// -// Construct and append a VBROADCASTI32X8 instruction to the active function. -func (c *Context) VBROADCASTI32X8(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTI32X8(ops...)) -} - -// VBROADCASTI32X8: Broadcast Eight Doubleword Elements. -// -// Forms: -// -// VBROADCASTI32X8 m256 k zmm -// VBROADCASTI32X8 m256 zmm -// -// Construct and append a VBROADCASTI32X8 instruction to the active function. -// Operates on the global context. -func VBROADCASTI32X8(ops ...operand.Op) { ctx.VBROADCASTI32X8(ops...) } - -// VBROADCASTI32X8_Z: Broadcast Eight Doubleword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI32X8.Z m256 k zmm -// -// Construct and append a VBROADCASTI32X8.Z instruction to the active function. -func (c *Context) VBROADCASTI32X8_Z(m, k, z operand.Op) { - c.addinstruction(x86.VBROADCASTI32X8_Z(m, k, z)) -} - -// VBROADCASTI32X8_Z: Broadcast Eight Doubleword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI32X8.Z m256 k zmm -// -// Construct and append a VBROADCASTI32X8.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTI32X8_Z(m, k, z operand.Op) { ctx.VBROADCASTI32X8_Z(m, k, z) } - -// VBROADCASTI64X2: Broadcast Two Quadword Elements. -// -// Forms: -// -// VBROADCASTI64X2 m128 k ymm -// VBROADCASTI64X2 m128 ymm -// VBROADCASTI64X2 m128 k zmm -// VBROADCASTI64X2 m128 zmm -// -// Construct and append a VBROADCASTI64X2 instruction to the active function. -func (c *Context) VBROADCASTI64X2(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTI64X2(ops...)) -} - -// VBROADCASTI64X2: Broadcast Two Quadword Elements. -// -// Forms: -// -// VBROADCASTI64X2 m128 k ymm -// VBROADCASTI64X2 m128 ymm -// VBROADCASTI64X2 m128 k zmm -// VBROADCASTI64X2 m128 zmm -// -// Construct and append a VBROADCASTI64X2 instruction to the active function. -// Operates on the global context. -func VBROADCASTI64X2(ops ...operand.Op) { ctx.VBROADCASTI64X2(ops...) } - -// VBROADCASTI64X2_Z: Broadcast Two Quadword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI64X2.Z m128 k ymm -// VBROADCASTI64X2.Z m128 k zmm -// -// Construct and append a VBROADCASTI64X2.Z instruction to the active function. -func (c *Context) VBROADCASTI64X2_Z(m, k, yz operand.Op) { - c.addinstruction(x86.VBROADCASTI64X2_Z(m, k, yz)) -} - -// VBROADCASTI64X2_Z: Broadcast Two Quadword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI64X2.Z m128 k ymm -// VBROADCASTI64X2.Z m128 k zmm -// -// Construct and append a VBROADCASTI64X2.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTI64X2_Z(m, k, yz operand.Op) { ctx.VBROADCASTI64X2_Z(m, k, yz) } - -// VBROADCASTI64X4: Broadcast Four Quadword Elements. -// -// Forms: -// -// VBROADCASTI64X4 m256 k zmm -// VBROADCASTI64X4 m256 zmm -// -// Construct and append a VBROADCASTI64X4 instruction to the active function. -func (c *Context) VBROADCASTI64X4(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTI64X4(ops...)) -} - -// VBROADCASTI64X4: Broadcast Four Quadword Elements. -// -// Forms: -// -// VBROADCASTI64X4 m256 k zmm -// VBROADCASTI64X4 m256 zmm -// -// Construct and append a VBROADCASTI64X4 instruction to the active function. -// Operates on the global context. -func VBROADCASTI64X4(ops ...operand.Op) { ctx.VBROADCASTI64X4(ops...) } - -// VBROADCASTI64X4_Z: Broadcast Four Quadword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI64X4.Z m256 k zmm -// -// Construct and append a VBROADCASTI64X4.Z instruction to the active function. -func (c *Context) VBROADCASTI64X4_Z(m, k, z operand.Op) { - c.addinstruction(x86.VBROADCASTI64X4_Z(m, k, z)) -} - -// VBROADCASTI64X4_Z: Broadcast Four Quadword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI64X4.Z m256 k zmm -// -// Construct and append a VBROADCASTI64X4.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTI64X4_Z(m, k, z operand.Op) { ctx.VBROADCASTI64X4_Z(m, k, z) } - -// VBROADCASTSD: Broadcast Double-Precision Floating-Point Element. -// -// Forms: -// -// VBROADCASTSD xmm ymm -// VBROADCASTSD m64 ymm -// VBROADCASTSD m64 k ymm -// VBROADCASTSD xmm k ymm -// VBROADCASTSD m64 k zmm -// VBROADCASTSD m64 zmm -// VBROADCASTSD xmm k zmm -// VBROADCASTSD xmm zmm -// -// Construct and append a VBROADCASTSD instruction to the active function. -func (c *Context) VBROADCASTSD(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTSD(ops...)) -} - -// VBROADCASTSD: Broadcast Double-Precision Floating-Point Element. -// -// Forms: -// -// VBROADCASTSD xmm ymm -// VBROADCASTSD m64 ymm -// VBROADCASTSD m64 k ymm -// VBROADCASTSD xmm k ymm -// VBROADCASTSD m64 k zmm -// VBROADCASTSD m64 zmm -// VBROADCASTSD xmm k zmm -// VBROADCASTSD xmm zmm -// -// Construct and append a VBROADCASTSD instruction to the active function. -// Operates on the global context. -func VBROADCASTSD(ops ...operand.Op) { ctx.VBROADCASTSD(ops...) } - -// VBROADCASTSD_Z: Broadcast Double-Precision Floating-Point Element (Zeroing Masking). -// -// Forms: -// -// VBROADCASTSD.Z m64 k ymm -// VBROADCASTSD.Z xmm k ymm -// VBROADCASTSD.Z m64 k zmm -// VBROADCASTSD.Z xmm k zmm -// -// Construct and append a VBROADCASTSD.Z instruction to the active function. -func (c *Context) VBROADCASTSD_Z(mx, k, yz operand.Op) { - c.addinstruction(x86.VBROADCASTSD_Z(mx, k, yz)) -} - -// VBROADCASTSD_Z: Broadcast Double-Precision Floating-Point Element (Zeroing Masking). -// -// Forms: -// -// VBROADCASTSD.Z m64 k ymm -// VBROADCASTSD.Z xmm k ymm -// VBROADCASTSD.Z m64 k zmm -// VBROADCASTSD.Z xmm k zmm -// -// Construct and append a VBROADCASTSD.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTSD_Z(mx, k, yz operand.Op) { ctx.VBROADCASTSD_Z(mx, k, yz) } - -// VBROADCASTSS: Broadcast Single-Precision Floating-Point Element. -// -// Forms: -// -// VBROADCASTSS xmm xmm -// VBROADCASTSS xmm ymm -// VBROADCASTSS m32 xmm -// VBROADCASTSS m32 ymm -// VBROADCASTSS m32 k ymm -// VBROADCASTSS xmm k ymm -// VBROADCASTSS m32 k zmm -// VBROADCASTSS m32 zmm -// VBROADCASTSS xmm k zmm -// VBROADCASTSS xmm zmm -// -// Construct and append a VBROADCASTSS instruction to the active function. -func (c *Context) VBROADCASTSS(ops ...operand.Op) { - c.addinstruction(x86.VBROADCASTSS(ops...)) -} - -// VBROADCASTSS: Broadcast Single-Precision Floating-Point Element. -// -// Forms: -// -// VBROADCASTSS xmm xmm -// VBROADCASTSS xmm ymm -// VBROADCASTSS m32 xmm -// VBROADCASTSS m32 ymm -// VBROADCASTSS m32 k ymm -// VBROADCASTSS xmm k ymm -// VBROADCASTSS m32 k zmm -// VBROADCASTSS m32 zmm -// VBROADCASTSS xmm k zmm -// VBROADCASTSS xmm zmm -// -// Construct and append a VBROADCASTSS instruction to the active function. -// Operates on the global context. -func VBROADCASTSS(ops ...operand.Op) { ctx.VBROADCASTSS(ops...) } - -// VBROADCASTSS_Z: Broadcast Single-Precision Floating-Point Element (Zeroing Masking). -// -// Forms: -// -// VBROADCASTSS.Z m32 k ymm -// VBROADCASTSS.Z xmm k ymm -// VBROADCASTSS.Z m32 k zmm -// VBROADCASTSS.Z xmm k zmm -// -// Construct and append a VBROADCASTSS.Z instruction to the active function. -func (c *Context) VBROADCASTSS_Z(mx, k, yz operand.Op) { - c.addinstruction(x86.VBROADCASTSS_Z(mx, k, yz)) -} - -// VBROADCASTSS_Z: Broadcast Single-Precision Floating-Point Element (Zeroing Masking). -// -// Forms: -// -// VBROADCASTSS.Z m32 k ymm -// VBROADCASTSS.Z xmm k ymm -// VBROADCASTSS.Z m32 k zmm -// VBROADCASTSS.Z xmm k zmm -// -// Construct and append a VBROADCASTSS.Z instruction to the active function. -// Operates on the global context. -func VBROADCASTSS_Z(mx, k, yz operand.Op) { ctx.VBROADCASTSS_Z(mx, k, yz) } - -// VCMPPD: Compare Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCMPPD imm8 m128 xmm xmm -// VCMPPD imm8 m256 ymm ymm -// VCMPPD imm8 xmm xmm xmm -// VCMPPD imm8 ymm ymm ymm -// VCMPPD imm8 m128 xmm k k -// VCMPPD imm8 m128 xmm k -// VCMPPD imm8 m256 ymm k k -// VCMPPD imm8 m256 ymm k -// VCMPPD imm8 xmm xmm k k -// VCMPPD imm8 xmm xmm k -// VCMPPD imm8 ymm ymm k k -// VCMPPD imm8 ymm ymm k -// VCMPPD imm8 m512 zmm k k -// VCMPPD imm8 m512 zmm k -// VCMPPD imm8 zmm zmm k k -// VCMPPD imm8 zmm zmm k -// -// Construct and append a VCMPPD instruction to the active function. -func (c *Context) VCMPPD(ops ...operand.Op) { - c.addinstruction(x86.VCMPPD(ops...)) -} - -// VCMPPD: Compare Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCMPPD imm8 m128 xmm xmm -// VCMPPD imm8 m256 ymm ymm -// VCMPPD imm8 xmm xmm xmm -// VCMPPD imm8 ymm ymm ymm -// VCMPPD imm8 m128 xmm k k -// VCMPPD imm8 m128 xmm k -// VCMPPD imm8 m256 ymm k k -// VCMPPD imm8 m256 ymm k -// VCMPPD imm8 xmm xmm k k -// VCMPPD imm8 xmm xmm k -// VCMPPD imm8 ymm ymm k k -// VCMPPD imm8 ymm ymm k -// VCMPPD imm8 m512 zmm k k -// VCMPPD imm8 m512 zmm k -// VCMPPD imm8 zmm zmm k k -// VCMPPD imm8 zmm zmm k -// -// Construct and append a VCMPPD instruction to the active function. -// Operates on the global context. -func VCMPPD(ops ...operand.Op) { ctx.VCMPPD(ops...) } - -// VCMPPD_BCST: Compare Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCMPPD.BCST imm8 m64 xmm k k -// VCMPPD.BCST imm8 m64 xmm k -// VCMPPD.BCST imm8 m64 ymm k k -// VCMPPD.BCST imm8 m64 ymm k -// VCMPPD.BCST imm8 m64 zmm k k -// VCMPPD.BCST imm8 m64 zmm k -// -// Construct and append a VCMPPD.BCST instruction to the active function. -func (c *Context) VCMPPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCMPPD_BCST(ops...)) -} - -// VCMPPD_BCST: Compare Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCMPPD.BCST imm8 m64 xmm k k -// VCMPPD.BCST imm8 m64 xmm k -// VCMPPD.BCST imm8 m64 ymm k k -// VCMPPD.BCST imm8 m64 ymm k -// VCMPPD.BCST imm8 m64 zmm k k -// VCMPPD.BCST imm8 m64 zmm k -// -// Construct and append a VCMPPD.BCST instruction to the active function. -// Operates on the global context. -func VCMPPD_BCST(ops ...operand.Op) { ctx.VCMPPD_BCST(ops...) } - -// VCMPPD_SAE: Compare Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPPD.SAE imm8 zmm zmm k k -// VCMPPD.SAE imm8 zmm zmm k -// -// Construct and append a VCMPPD.SAE instruction to the active function. -func (c *Context) VCMPPD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCMPPD_SAE(ops...)) -} - -// VCMPPD_SAE: Compare Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPPD.SAE imm8 zmm zmm k k -// VCMPPD.SAE imm8 zmm zmm k -// -// Construct and append a VCMPPD.SAE instruction to the active function. -// Operates on the global context. -func VCMPPD_SAE(ops ...operand.Op) { ctx.VCMPPD_SAE(ops...) } - -// VCMPPS: Compare Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCMPPS imm8 m128 xmm xmm -// VCMPPS imm8 m256 ymm ymm -// VCMPPS imm8 xmm xmm xmm -// VCMPPS imm8 ymm ymm ymm -// VCMPPS imm8 m128 xmm k k -// VCMPPS imm8 m128 xmm k -// VCMPPS imm8 m256 ymm k k -// VCMPPS imm8 m256 ymm k -// VCMPPS imm8 xmm xmm k k -// VCMPPS imm8 xmm xmm k -// VCMPPS imm8 ymm ymm k k -// VCMPPS imm8 ymm ymm k -// VCMPPS imm8 m512 zmm k k -// VCMPPS imm8 m512 zmm k -// VCMPPS imm8 zmm zmm k k -// VCMPPS imm8 zmm zmm k -// -// Construct and append a VCMPPS instruction to the active function. -func (c *Context) VCMPPS(ops ...operand.Op) { - c.addinstruction(x86.VCMPPS(ops...)) -} - -// VCMPPS: Compare Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCMPPS imm8 m128 xmm xmm -// VCMPPS imm8 m256 ymm ymm -// VCMPPS imm8 xmm xmm xmm -// VCMPPS imm8 ymm ymm ymm -// VCMPPS imm8 m128 xmm k k -// VCMPPS imm8 m128 xmm k -// VCMPPS imm8 m256 ymm k k -// VCMPPS imm8 m256 ymm k -// VCMPPS imm8 xmm xmm k k -// VCMPPS imm8 xmm xmm k -// VCMPPS imm8 ymm ymm k k -// VCMPPS imm8 ymm ymm k -// VCMPPS imm8 m512 zmm k k -// VCMPPS imm8 m512 zmm k -// VCMPPS imm8 zmm zmm k k -// VCMPPS imm8 zmm zmm k -// -// Construct and append a VCMPPS instruction to the active function. -// Operates on the global context. -func VCMPPS(ops ...operand.Op) { ctx.VCMPPS(ops...) } - -// VCMPPS_BCST: Compare Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCMPPS.BCST imm8 m32 xmm k k -// VCMPPS.BCST imm8 m32 xmm k -// VCMPPS.BCST imm8 m32 ymm k k -// VCMPPS.BCST imm8 m32 ymm k -// VCMPPS.BCST imm8 m32 zmm k k -// VCMPPS.BCST imm8 m32 zmm k -// -// Construct and append a VCMPPS.BCST instruction to the active function. -func (c *Context) VCMPPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCMPPS_BCST(ops...)) -} - -// VCMPPS_BCST: Compare Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCMPPS.BCST imm8 m32 xmm k k -// VCMPPS.BCST imm8 m32 xmm k -// VCMPPS.BCST imm8 m32 ymm k k -// VCMPPS.BCST imm8 m32 ymm k -// VCMPPS.BCST imm8 m32 zmm k k -// VCMPPS.BCST imm8 m32 zmm k -// -// Construct and append a VCMPPS.BCST instruction to the active function. -// Operates on the global context. -func VCMPPS_BCST(ops ...operand.Op) { ctx.VCMPPS_BCST(ops...) } - -// VCMPPS_SAE: Compare Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPPS.SAE imm8 zmm zmm k k -// VCMPPS.SAE imm8 zmm zmm k -// -// Construct and append a VCMPPS.SAE instruction to the active function. -func (c *Context) VCMPPS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCMPPS_SAE(ops...)) -} - -// VCMPPS_SAE: Compare Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPPS.SAE imm8 zmm zmm k k -// VCMPPS.SAE imm8 zmm zmm k -// -// Construct and append a VCMPPS.SAE instruction to the active function. -// Operates on the global context. -func VCMPPS_SAE(ops ...operand.Op) { ctx.VCMPPS_SAE(ops...) } - -// VCMPSD: Compare Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VCMPSD imm8 m64 xmm xmm -// VCMPSD imm8 xmm xmm xmm -// VCMPSD imm8 m64 xmm k k -// VCMPSD imm8 m64 xmm k -// VCMPSD imm8 xmm xmm k k -// VCMPSD imm8 xmm xmm k -// -// Construct and append a VCMPSD instruction to the active function. -func (c *Context) VCMPSD(ops ...operand.Op) { - c.addinstruction(x86.VCMPSD(ops...)) -} - -// VCMPSD: Compare Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VCMPSD imm8 m64 xmm xmm -// VCMPSD imm8 xmm xmm xmm -// VCMPSD imm8 m64 xmm k k -// VCMPSD imm8 m64 xmm k -// VCMPSD imm8 xmm xmm k k -// VCMPSD imm8 xmm xmm k -// -// Construct and append a VCMPSD instruction to the active function. -// Operates on the global context. -func VCMPSD(ops ...operand.Op) { ctx.VCMPSD(ops...) } - -// VCMPSD_SAE: Compare Scalar Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPSD.SAE imm8 xmm xmm k k -// VCMPSD.SAE imm8 xmm xmm k -// -// Construct and append a VCMPSD.SAE instruction to the active function. -func (c *Context) VCMPSD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCMPSD_SAE(ops...)) -} - -// VCMPSD_SAE: Compare Scalar Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPSD.SAE imm8 xmm xmm k k -// VCMPSD.SAE imm8 xmm xmm k -// -// Construct and append a VCMPSD.SAE instruction to the active function. -// Operates on the global context. -func VCMPSD_SAE(ops ...operand.Op) { ctx.VCMPSD_SAE(ops...) } - -// VCMPSS: Compare Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VCMPSS imm8 m32 xmm xmm -// VCMPSS imm8 xmm xmm xmm -// VCMPSS imm8 m32 xmm k k -// VCMPSS imm8 m32 xmm k -// VCMPSS imm8 xmm xmm k k -// VCMPSS imm8 xmm xmm k -// -// Construct and append a VCMPSS instruction to the active function. -func (c *Context) VCMPSS(ops ...operand.Op) { - c.addinstruction(x86.VCMPSS(ops...)) -} - -// VCMPSS: Compare Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VCMPSS imm8 m32 xmm xmm -// VCMPSS imm8 xmm xmm xmm -// VCMPSS imm8 m32 xmm k k -// VCMPSS imm8 m32 xmm k -// VCMPSS imm8 xmm xmm k k -// VCMPSS imm8 xmm xmm k -// -// Construct and append a VCMPSS instruction to the active function. -// Operates on the global context. -func VCMPSS(ops ...operand.Op) { ctx.VCMPSS(ops...) } - -// VCMPSS_SAE: Compare Scalar Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPSS.SAE imm8 xmm xmm k k -// VCMPSS.SAE imm8 xmm xmm k -// -// Construct and append a VCMPSS.SAE instruction to the active function. -func (c *Context) VCMPSS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCMPSS_SAE(ops...)) -} - -// VCMPSS_SAE: Compare Scalar Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPSS.SAE imm8 xmm xmm k k -// VCMPSS.SAE imm8 xmm xmm k -// -// Construct and append a VCMPSS.SAE instruction to the active function. -// Operates on the global context. -func VCMPSS_SAE(ops ...operand.Op) { ctx.VCMPSS_SAE(ops...) } - -// VCOMISD: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VCOMISD m64 xmm -// VCOMISD xmm xmm -// -// Construct and append a VCOMISD instruction to the active function. -func (c *Context) VCOMISD(mx, x operand.Op) { - c.addinstruction(x86.VCOMISD(mx, x)) -} - -// VCOMISD: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VCOMISD m64 xmm -// VCOMISD xmm xmm -// -// Construct and append a VCOMISD instruction to the active function. -// Operates on the global context. -func VCOMISD(mx, x operand.Op) { ctx.VCOMISD(mx, x) } - -// VCOMISD_SAE: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VCOMISD.SAE xmm xmm -// -// Construct and append a VCOMISD.SAE instruction to the active function. -func (c *Context) VCOMISD_SAE(x, x1 operand.Op) { - c.addinstruction(x86.VCOMISD_SAE(x, x1)) -} - -// VCOMISD_SAE: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VCOMISD.SAE xmm xmm -// -// Construct and append a VCOMISD.SAE instruction to the active function. -// Operates on the global context. -func VCOMISD_SAE(x, x1 operand.Op) { ctx.VCOMISD_SAE(x, x1) } - -// VCOMISS: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VCOMISS m32 xmm -// VCOMISS xmm xmm -// -// Construct and append a VCOMISS instruction to the active function. -func (c *Context) VCOMISS(mx, x operand.Op) { - c.addinstruction(x86.VCOMISS(mx, x)) -} - -// VCOMISS: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VCOMISS m32 xmm -// VCOMISS xmm xmm -// -// Construct and append a VCOMISS instruction to the active function. -// Operates on the global context. -func VCOMISS(mx, x operand.Op) { ctx.VCOMISS(mx, x) } - -// VCOMISS_SAE: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VCOMISS.SAE xmm xmm -// -// Construct and append a VCOMISS.SAE instruction to the active function. -func (c *Context) VCOMISS_SAE(x, x1 operand.Op) { - c.addinstruction(x86.VCOMISS_SAE(x, x1)) -} - -// VCOMISS_SAE: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VCOMISS.SAE xmm xmm -// -// Construct and append a VCOMISS.SAE instruction to the active function. -// Operates on the global context. -func VCOMISS_SAE(x, x1 operand.Op) { ctx.VCOMISS_SAE(x, x1) } - -// VCOMPRESSPD: Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register. -// -// Forms: -// -// VCOMPRESSPD xmm k m128 -// VCOMPRESSPD xmm k xmm -// VCOMPRESSPD xmm m128 -// VCOMPRESSPD xmm xmm -// VCOMPRESSPD ymm k m256 -// VCOMPRESSPD ymm k ymm -// VCOMPRESSPD ymm m256 -// VCOMPRESSPD ymm ymm -// VCOMPRESSPD zmm k m512 -// VCOMPRESSPD zmm k zmm -// VCOMPRESSPD zmm m512 -// VCOMPRESSPD zmm zmm -// -// Construct and append a VCOMPRESSPD instruction to the active function. -func (c *Context) VCOMPRESSPD(ops ...operand.Op) { - c.addinstruction(x86.VCOMPRESSPD(ops...)) -} - -// VCOMPRESSPD: Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register. -// -// Forms: -// -// VCOMPRESSPD xmm k m128 -// VCOMPRESSPD xmm k xmm -// VCOMPRESSPD xmm m128 -// VCOMPRESSPD xmm xmm -// VCOMPRESSPD ymm k m256 -// VCOMPRESSPD ymm k ymm -// VCOMPRESSPD ymm m256 -// VCOMPRESSPD ymm ymm -// VCOMPRESSPD zmm k m512 -// VCOMPRESSPD zmm k zmm -// VCOMPRESSPD zmm m512 -// VCOMPRESSPD zmm zmm -// -// Construct and append a VCOMPRESSPD instruction to the active function. -// Operates on the global context. -func VCOMPRESSPD(ops ...operand.Op) { ctx.VCOMPRESSPD(ops...) } - -// VCOMPRESSPD_Z: Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VCOMPRESSPD.Z xmm k m128 -// VCOMPRESSPD.Z xmm k xmm -// VCOMPRESSPD.Z ymm k m256 -// VCOMPRESSPD.Z ymm k ymm -// VCOMPRESSPD.Z zmm k m512 -// VCOMPRESSPD.Z zmm k zmm -// -// Construct and append a VCOMPRESSPD.Z instruction to the active function. -func (c *Context) VCOMPRESSPD_Z(xyz, k, mxyz operand.Op) { - c.addinstruction(x86.VCOMPRESSPD_Z(xyz, k, mxyz)) -} - -// VCOMPRESSPD_Z: Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VCOMPRESSPD.Z xmm k m128 -// VCOMPRESSPD.Z xmm k xmm -// VCOMPRESSPD.Z ymm k m256 -// VCOMPRESSPD.Z ymm k ymm -// VCOMPRESSPD.Z zmm k m512 -// VCOMPRESSPD.Z zmm k zmm -// -// Construct and append a VCOMPRESSPD.Z instruction to the active function. -// Operates on the global context. -func VCOMPRESSPD_Z(xyz, k, mxyz operand.Op) { ctx.VCOMPRESSPD_Z(xyz, k, mxyz) } - -// VCOMPRESSPS: Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register. -// -// Forms: -// -// VCOMPRESSPS xmm k m128 -// VCOMPRESSPS xmm k xmm -// VCOMPRESSPS xmm m128 -// VCOMPRESSPS xmm xmm -// VCOMPRESSPS ymm k m256 -// VCOMPRESSPS ymm k ymm -// VCOMPRESSPS ymm m256 -// VCOMPRESSPS ymm ymm -// VCOMPRESSPS zmm k m512 -// VCOMPRESSPS zmm k zmm -// VCOMPRESSPS zmm m512 -// VCOMPRESSPS zmm zmm -// -// Construct and append a VCOMPRESSPS instruction to the active function. -func (c *Context) VCOMPRESSPS(ops ...operand.Op) { - c.addinstruction(x86.VCOMPRESSPS(ops...)) -} - -// VCOMPRESSPS: Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register. -// -// Forms: -// -// VCOMPRESSPS xmm k m128 -// VCOMPRESSPS xmm k xmm -// VCOMPRESSPS xmm m128 -// VCOMPRESSPS xmm xmm -// VCOMPRESSPS ymm k m256 -// VCOMPRESSPS ymm k ymm -// VCOMPRESSPS ymm m256 -// VCOMPRESSPS ymm ymm -// VCOMPRESSPS zmm k m512 -// VCOMPRESSPS zmm k zmm -// VCOMPRESSPS zmm m512 -// VCOMPRESSPS zmm zmm -// -// Construct and append a VCOMPRESSPS instruction to the active function. -// Operates on the global context. -func VCOMPRESSPS(ops ...operand.Op) { ctx.VCOMPRESSPS(ops...) } - -// VCOMPRESSPS_Z: Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VCOMPRESSPS.Z xmm k m128 -// VCOMPRESSPS.Z xmm k xmm -// VCOMPRESSPS.Z ymm k m256 -// VCOMPRESSPS.Z ymm k ymm -// VCOMPRESSPS.Z zmm k m512 -// VCOMPRESSPS.Z zmm k zmm -// -// Construct and append a VCOMPRESSPS.Z instruction to the active function. -func (c *Context) VCOMPRESSPS_Z(xyz, k, mxyz operand.Op) { - c.addinstruction(x86.VCOMPRESSPS_Z(xyz, k, mxyz)) -} - -// VCOMPRESSPS_Z: Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VCOMPRESSPS.Z xmm k m128 -// VCOMPRESSPS.Z xmm k xmm -// VCOMPRESSPS.Z ymm k m256 -// VCOMPRESSPS.Z ymm k ymm -// VCOMPRESSPS.Z zmm k m512 -// VCOMPRESSPS.Z zmm k zmm -// -// Construct and append a VCOMPRESSPS.Z instruction to the active function. -// Operates on the global context. -func VCOMPRESSPS_Z(xyz, k, mxyz operand.Op) { ctx.VCOMPRESSPS_Z(xyz, k, mxyz) } - -// VCVTDQ2PD: Convert Packed Dword Integers to Packed Double-Precision FP Values. -// -// Forms: -// -// VCVTDQ2PD m128 ymm -// VCVTDQ2PD m64 xmm -// VCVTDQ2PD xmm xmm -// VCVTDQ2PD xmm ymm -// VCVTDQ2PD m128 k ymm -// VCVTDQ2PD m64 k xmm -// VCVTDQ2PD xmm k xmm -// VCVTDQ2PD xmm k ymm -// VCVTDQ2PD m256 k zmm -// VCVTDQ2PD m256 zmm -// VCVTDQ2PD ymm k zmm -// VCVTDQ2PD ymm zmm -// -// Construct and append a VCVTDQ2PD instruction to the active function. -func (c *Context) VCVTDQ2PD(ops ...operand.Op) { - c.addinstruction(x86.VCVTDQ2PD(ops...)) -} - -// VCVTDQ2PD: Convert Packed Dword Integers to Packed Double-Precision FP Values. -// -// Forms: -// -// VCVTDQ2PD m128 ymm -// VCVTDQ2PD m64 xmm -// VCVTDQ2PD xmm xmm -// VCVTDQ2PD xmm ymm -// VCVTDQ2PD m128 k ymm -// VCVTDQ2PD m64 k xmm -// VCVTDQ2PD xmm k xmm -// VCVTDQ2PD xmm k ymm -// VCVTDQ2PD m256 k zmm -// VCVTDQ2PD m256 zmm -// VCVTDQ2PD ymm k zmm -// VCVTDQ2PD ymm zmm -// -// Construct and append a VCVTDQ2PD instruction to the active function. -// Operates on the global context. -func VCVTDQ2PD(ops ...operand.Op) { ctx.VCVTDQ2PD(ops...) } - -// VCVTDQ2PD_BCST: Convert Packed Dword Integers to Packed Double-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTDQ2PD.BCST m32 k xmm -// VCVTDQ2PD.BCST m32 k ymm -// VCVTDQ2PD.BCST m32 xmm -// VCVTDQ2PD.BCST m32 ymm -// VCVTDQ2PD.BCST m32 k zmm -// VCVTDQ2PD.BCST m32 zmm -// -// Construct and append a VCVTDQ2PD.BCST instruction to the active function. -func (c *Context) VCVTDQ2PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTDQ2PD_BCST(ops...)) -} - -// VCVTDQ2PD_BCST: Convert Packed Dword Integers to Packed Double-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTDQ2PD.BCST m32 k xmm -// VCVTDQ2PD.BCST m32 k ymm -// VCVTDQ2PD.BCST m32 xmm -// VCVTDQ2PD.BCST m32 ymm -// VCVTDQ2PD.BCST m32 k zmm -// VCVTDQ2PD.BCST m32 zmm -// -// Construct and append a VCVTDQ2PD.BCST instruction to the active function. -// Operates on the global context. -func VCVTDQ2PD_BCST(ops ...operand.Op) { ctx.VCVTDQ2PD_BCST(ops...) } - -// VCVTDQ2PD_BCST_Z: Convert Packed Dword Integers to Packed Double-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PD.BCST.Z m32 k xmm -// VCVTDQ2PD.BCST.Z m32 k ymm -// VCVTDQ2PD.BCST.Z m32 k zmm -// -// Construct and append a VCVTDQ2PD.BCST.Z instruction to the active function. -func (c *Context) VCVTDQ2PD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTDQ2PD_BCST_Z(m, k, xyz)) -} - -// VCVTDQ2PD_BCST_Z: Convert Packed Dword Integers to Packed Double-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PD.BCST.Z m32 k xmm -// VCVTDQ2PD.BCST.Z m32 k ymm -// VCVTDQ2PD.BCST.Z m32 k zmm -// -// Construct and append a VCVTDQ2PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTDQ2PD_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTDQ2PD_BCST_Z(m, k, xyz) } - -// VCVTDQ2PD_Z: Convert Packed Dword Integers to Packed Double-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PD.Z m128 k ymm -// VCVTDQ2PD.Z m64 k xmm -// VCVTDQ2PD.Z xmm k xmm -// VCVTDQ2PD.Z xmm k ymm -// VCVTDQ2PD.Z m256 k zmm -// VCVTDQ2PD.Z ymm k zmm -// -// Construct and append a VCVTDQ2PD.Z instruction to the active function. -func (c *Context) VCVTDQ2PD_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VCVTDQ2PD_Z(mxy, k, xyz)) -} - -// VCVTDQ2PD_Z: Convert Packed Dword Integers to Packed Double-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PD.Z m128 k ymm -// VCVTDQ2PD.Z m64 k xmm -// VCVTDQ2PD.Z xmm k xmm -// VCVTDQ2PD.Z xmm k ymm -// VCVTDQ2PD.Z m256 k zmm -// VCVTDQ2PD.Z ymm k zmm -// -// Construct and append a VCVTDQ2PD.Z instruction to the active function. -// Operates on the global context. -func VCVTDQ2PD_Z(mxy, k, xyz operand.Op) { ctx.VCVTDQ2PD_Z(mxy, k, xyz) } - -// VCVTDQ2PS: Convert Packed Dword Integers to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTDQ2PS m128 xmm -// VCVTDQ2PS m256 ymm -// VCVTDQ2PS xmm xmm -// VCVTDQ2PS ymm ymm -// VCVTDQ2PS m128 k xmm -// VCVTDQ2PS m256 k ymm -// VCVTDQ2PS xmm k xmm -// VCVTDQ2PS ymm k ymm -// VCVTDQ2PS m512 k zmm -// VCVTDQ2PS m512 zmm -// VCVTDQ2PS zmm k zmm -// VCVTDQ2PS zmm zmm -// -// Construct and append a VCVTDQ2PS instruction to the active function. -func (c *Context) VCVTDQ2PS(ops ...operand.Op) { - c.addinstruction(x86.VCVTDQ2PS(ops...)) -} - -// VCVTDQ2PS: Convert Packed Dword Integers to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTDQ2PS m128 xmm -// VCVTDQ2PS m256 ymm -// VCVTDQ2PS xmm xmm -// VCVTDQ2PS ymm ymm -// VCVTDQ2PS m128 k xmm -// VCVTDQ2PS m256 k ymm -// VCVTDQ2PS xmm k xmm -// VCVTDQ2PS ymm k ymm -// VCVTDQ2PS m512 k zmm -// VCVTDQ2PS m512 zmm -// VCVTDQ2PS zmm k zmm -// VCVTDQ2PS zmm zmm -// -// Construct and append a VCVTDQ2PS instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS(ops ...operand.Op) { ctx.VCVTDQ2PS(ops...) } - -// VCVTDQ2PS_BCST: Convert Packed Dword Integers to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTDQ2PS.BCST m32 k xmm -// VCVTDQ2PS.BCST m32 k ymm -// VCVTDQ2PS.BCST m32 xmm -// VCVTDQ2PS.BCST m32 ymm -// VCVTDQ2PS.BCST m32 k zmm -// VCVTDQ2PS.BCST m32 zmm -// -// Construct and append a VCVTDQ2PS.BCST instruction to the active function. -func (c *Context) VCVTDQ2PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_BCST(ops...)) -} - -// VCVTDQ2PS_BCST: Convert Packed Dword Integers to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTDQ2PS.BCST m32 k xmm -// VCVTDQ2PS.BCST m32 k ymm -// VCVTDQ2PS.BCST m32 xmm -// VCVTDQ2PS.BCST m32 ymm -// VCVTDQ2PS.BCST m32 k zmm -// VCVTDQ2PS.BCST m32 zmm -// -// Construct and append a VCVTDQ2PS.BCST instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_BCST(ops ...operand.Op) { ctx.VCVTDQ2PS_BCST(ops...) } - -// VCVTDQ2PS_BCST_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.BCST.Z m32 k xmm -// VCVTDQ2PS.BCST.Z m32 k ymm -// VCVTDQ2PS.BCST.Z m32 k zmm -// -// Construct and append a VCVTDQ2PS.BCST.Z instruction to the active function. -func (c *Context) VCVTDQ2PS_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_BCST_Z(m, k, xyz)) -} - -// VCVTDQ2PS_BCST_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.BCST.Z m32 k xmm -// VCVTDQ2PS.BCST.Z m32 k ymm -// VCVTDQ2PS.BCST.Z m32 k zmm -// -// Construct and append a VCVTDQ2PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTDQ2PS_BCST_Z(m, k, xyz) } - -// VCVTDQ2PS_RD_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTDQ2PS.RD_SAE zmm k zmm -// VCVTDQ2PS.RD_SAE zmm zmm -// -// Construct and append a VCVTDQ2PS.RD_SAE instruction to the active function. -func (c *Context) VCVTDQ2PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_RD_SAE(ops...)) -} - -// VCVTDQ2PS_RD_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTDQ2PS.RD_SAE zmm k zmm -// VCVTDQ2PS.RD_SAE zmm zmm -// -// Construct and append a VCVTDQ2PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_RD_SAE(ops ...operand.Op) { ctx.VCVTDQ2PS_RD_SAE(ops...) } - -// VCVTDQ2PS_RD_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTDQ2PS_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_RD_SAE_Z(z, k, z1)) -} - -// VCVTDQ2PS_RD_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTDQ2PS_RD_SAE_Z(z, k, z1) } - -// VCVTDQ2PS_RN_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Nearest). -// -// Forms: -// -// VCVTDQ2PS.RN_SAE zmm k zmm -// VCVTDQ2PS.RN_SAE zmm zmm -// -// Construct and append a VCVTDQ2PS.RN_SAE instruction to the active function. -func (c *Context) VCVTDQ2PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_RN_SAE(ops...)) -} - -// VCVTDQ2PS_RN_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Nearest). -// -// Forms: -// -// VCVTDQ2PS.RN_SAE zmm k zmm -// VCVTDQ2PS.RN_SAE zmm zmm -// -// Construct and append a VCVTDQ2PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_RN_SAE(ops ...operand.Op) { ctx.VCVTDQ2PS_RN_SAE(ops...) } - -// VCVTDQ2PS_RN_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTDQ2PS_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_RN_SAE_Z(z, k, z1)) -} - -// VCVTDQ2PS_RN_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTDQ2PS_RN_SAE_Z(z, k, z1) } - -// VCVTDQ2PS_RU_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTDQ2PS.RU_SAE zmm k zmm -// VCVTDQ2PS.RU_SAE zmm zmm -// -// Construct and append a VCVTDQ2PS.RU_SAE instruction to the active function. -func (c *Context) VCVTDQ2PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_RU_SAE(ops...)) -} - -// VCVTDQ2PS_RU_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTDQ2PS.RU_SAE zmm k zmm -// VCVTDQ2PS.RU_SAE zmm zmm -// -// Construct and append a VCVTDQ2PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_RU_SAE(ops ...operand.Op) { ctx.VCVTDQ2PS_RU_SAE(ops...) } - -// VCVTDQ2PS_RU_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTDQ2PS_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_RU_SAE_Z(z, k, z1)) -} - -// VCVTDQ2PS_RU_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTDQ2PS_RU_SAE_Z(z, k, z1) } - -// VCVTDQ2PS_RZ_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Zero). -// -// Forms: -// -// VCVTDQ2PS.RZ_SAE zmm k zmm -// VCVTDQ2PS.RZ_SAE zmm zmm -// -// Construct and append a VCVTDQ2PS.RZ_SAE instruction to the active function. -func (c *Context) VCVTDQ2PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_RZ_SAE(ops...)) -} - -// VCVTDQ2PS_RZ_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Zero). -// -// Forms: -// -// VCVTDQ2PS.RZ_SAE zmm k zmm -// VCVTDQ2PS.RZ_SAE zmm zmm -// -// Construct and append a VCVTDQ2PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_RZ_SAE(ops ...operand.Op) { ctx.VCVTDQ2PS_RZ_SAE(ops...) } - -// VCVTDQ2PS_RZ_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTDQ2PS_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_RZ_SAE_Z(z, k, z1)) -} - -// VCVTDQ2PS_RZ_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTDQ2PS_RZ_SAE_Z(z, k, z1) } - -// VCVTDQ2PS_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.Z m128 k xmm -// VCVTDQ2PS.Z m256 k ymm -// VCVTDQ2PS.Z xmm k xmm -// VCVTDQ2PS.Z ymm k ymm -// VCVTDQ2PS.Z m512 k zmm -// VCVTDQ2PS.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.Z instruction to the active function. -func (c *Context) VCVTDQ2PS_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTDQ2PS_Z(mxyz, k, xyz)) -} - -// VCVTDQ2PS_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.Z m128 k xmm -// VCVTDQ2PS.Z m256 k ymm -// VCVTDQ2PS.Z xmm k xmm -// VCVTDQ2PS.Z ymm k ymm -// VCVTDQ2PS.Z m512 k zmm -// VCVTDQ2PS.Z zmm k zmm -// -// Construct and append a VCVTDQ2PS.Z instruction to the active function. -// Operates on the global context. -func VCVTDQ2PS_Z(mxyz, k, xyz operand.Op) { ctx.VCVTDQ2PS_Z(mxyz, k, xyz) } - -// VCVTPD2DQ: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPD2DQ m512 k ymm -// VCVTPD2DQ m512 ymm -// VCVTPD2DQ zmm k ymm -// VCVTPD2DQ zmm ymm -// -// Construct and append a VCVTPD2DQ instruction to the active function. -func (c *Context) VCVTPD2DQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQ(ops...)) -} - -// VCVTPD2DQ: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPD2DQ m512 k ymm -// VCVTPD2DQ m512 ymm -// VCVTPD2DQ zmm k ymm -// VCVTPD2DQ zmm ymm -// -// Construct and append a VCVTPD2DQ instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ(ops ...operand.Op) { ctx.VCVTPD2DQ(ops...) } - -// VCVTPD2DQX: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPD2DQX m128 xmm -// VCVTPD2DQX xmm xmm -// VCVTPD2DQX m128 k xmm -// VCVTPD2DQX xmm k xmm -// -// Construct and append a VCVTPD2DQX instruction to the active function. -func (c *Context) VCVTPD2DQX(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQX(ops...)) -} - -// VCVTPD2DQX: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPD2DQX m128 xmm -// VCVTPD2DQX xmm xmm -// VCVTPD2DQX m128 k xmm -// VCVTPD2DQX xmm k xmm -// -// Construct and append a VCVTPD2DQX instruction to the active function. -// Operates on the global context. -func VCVTPD2DQX(ops ...operand.Op) { ctx.VCVTPD2DQX(ops...) } - -// VCVTPD2DQX_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2DQX.BCST m64 k xmm -// VCVTPD2DQX.BCST m64 xmm -// -// Construct and append a VCVTPD2DQX.BCST instruction to the active function. -func (c *Context) VCVTPD2DQX_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQX_BCST(ops...)) -} - -// VCVTPD2DQX_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2DQX.BCST m64 k xmm -// VCVTPD2DQX.BCST m64 xmm -// -// Construct and append a VCVTPD2DQX.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2DQX_BCST(ops ...operand.Op) { ctx.VCVTPD2DQX_BCST(ops...) } - -// VCVTPD2DQX_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQX.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2DQX.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2DQX_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2DQX_BCST_Z(m, k, x)) -} - -// VCVTPD2DQX_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQX.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2DQX.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQX_BCST_Z(m, k, x operand.Op) { ctx.VCVTPD2DQX_BCST_Z(m, k, x) } - -// VCVTPD2DQX_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQX.Z m128 k xmm -// VCVTPD2DQX.Z xmm k xmm -// -// Construct and append a VCVTPD2DQX.Z instruction to the active function. -func (c *Context) VCVTPD2DQX_Z(mx, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2DQX_Z(mx, k, x)) -} - -// VCVTPD2DQX_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQX.Z m128 k xmm -// VCVTPD2DQX.Z xmm k xmm -// -// Construct and append a VCVTPD2DQX.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQX_Z(mx, k, x operand.Op) { ctx.VCVTPD2DQX_Z(mx, k, x) } - -// VCVTPD2DQY: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPD2DQY m256 xmm -// VCVTPD2DQY ymm xmm -// VCVTPD2DQY m256 k xmm -// VCVTPD2DQY ymm k xmm -// -// Construct and append a VCVTPD2DQY instruction to the active function. -func (c *Context) VCVTPD2DQY(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQY(ops...)) -} - -// VCVTPD2DQY: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPD2DQY m256 xmm -// VCVTPD2DQY ymm xmm -// VCVTPD2DQY m256 k xmm -// VCVTPD2DQY ymm k xmm -// -// Construct and append a VCVTPD2DQY instruction to the active function. -// Operates on the global context. -func VCVTPD2DQY(ops ...operand.Op) { ctx.VCVTPD2DQY(ops...) } - -// VCVTPD2DQY_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2DQY.BCST m64 k xmm -// VCVTPD2DQY.BCST m64 xmm -// -// Construct and append a VCVTPD2DQY.BCST instruction to the active function. -func (c *Context) VCVTPD2DQY_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQY_BCST(ops...)) -} - -// VCVTPD2DQY_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2DQY.BCST m64 k xmm -// VCVTPD2DQY.BCST m64 xmm -// -// Construct and append a VCVTPD2DQY.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2DQY_BCST(ops ...operand.Op) { ctx.VCVTPD2DQY_BCST(ops...) } - -// VCVTPD2DQY_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQY.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2DQY.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2DQY_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2DQY_BCST_Z(m, k, x)) -} - -// VCVTPD2DQY_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQY.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2DQY.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQY_BCST_Z(m, k, x operand.Op) { ctx.VCVTPD2DQY_BCST_Z(m, k, x) } - -// VCVTPD2DQY_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQY.Z m256 k xmm -// VCVTPD2DQY.Z ymm k xmm -// -// Construct and append a VCVTPD2DQY.Z instruction to the active function. -func (c *Context) VCVTPD2DQY_Z(my, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2DQY_Z(my, k, x)) -} - -// VCVTPD2DQY_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQY.Z m256 k xmm -// VCVTPD2DQY.Z ymm k xmm -// -// Construct and append a VCVTPD2DQY.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQY_Z(my, k, x operand.Op) { ctx.VCVTPD2DQY_Z(my, k, x) } - -// VCVTPD2DQ_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2DQ.BCST m64 k ymm -// VCVTPD2DQ.BCST m64 ymm -// -// Construct and append a VCVTPD2DQ.BCST instruction to the active function. -func (c *Context) VCVTPD2DQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_BCST(ops...)) -} - -// VCVTPD2DQ_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2DQ.BCST m64 k ymm -// VCVTPD2DQ.BCST m64 ymm -// -// Construct and append a VCVTPD2DQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_BCST(ops ...operand.Op) { ctx.VCVTPD2DQ_BCST(ops...) } - -// VCVTPD2DQ_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.BCST.Z m64 k ymm -// -// Construct and append a VCVTPD2DQ.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2DQ_BCST_Z(m, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_BCST_Z(m, k, y)) -} - -// VCVTPD2DQ_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.BCST.Z m64 k ymm -// -// Construct and append a VCVTPD2DQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_BCST_Z(m, k, y operand.Op) { ctx.VCVTPD2DQ_BCST_Z(m, k, y) } - -// VCVTPD2DQ_RD_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2DQ.RD_SAE zmm k ymm -// VCVTPD2DQ.RD_SAE zmm ymm -// -// Construct and append a VCVTPD2DQ.RD_SAE instruction to the active function. -func (c *Context) VCVTPD2DQ_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_RD_SAE(ops...)) -} - -// VCVTPD2DQ_RD_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2DQ.RD_SAE zmm k ymm -// VCVTPD2DQ.RD_SAE zmm ymm -// -// Construct and append a VCVTPD2DQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_RD_SAE(ops ...operand.Op) { ctx.VCVTPD2DQ_RD_SAE(ops...) } - -// VCVTPD2DQ_RD_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2DQ_RD_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_RD_SAE_Z(z, k, y)) -} - -// VCVTPD2DQ_RD_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_RD_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2DQ_RD_SAE_Z(z, k, y) } - -// VCVTPD2DQ_RN_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2DQ.RN_SAE zmm k ymm -// VCVTPD2DQ.RN_SAE zmm ymm -// -// Construct and append a VCVTPD2DQ.RN_SAE instruction to the active function. -func (c *Context) VCVTPD2DQ_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_RN_SAE(ops...)) -} - -// VCVTPD2DQ_RN_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2DQ.RN_SAE zmm k ymm -// VCVTPD2DQ.RN_SAE zmm ymm -// -// Construct and append a VCVTPD2DQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_RN_SAE(ops ...operand.Op) { ctx.VCVTPD2DQ_RN_SAE(ops...) } - -// VCVTPD2DQ_RN_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2DQ_RN_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_RN_SAE_Z(z, k, y)) -} - -// VCVTPD2DQ_RN_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_RN_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2DQ_RN_SAE_Z(z, k, y) } - -// VCVTPD2DQ_RU_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2DQ.RU_SAE zmm k ymm -// VCVTPD2DQ.RU_SAE zmm ymm -// -// Construct and append a VCVTPD2DQ.RU_SAE instruction to the active function. -func (c *Context) VCVTPD2DQ_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_RU_SAE(ops...)) -} - -// VCVTPD2DQ_RU_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2DQ.RU_SAE zmm k ymm -// VCVTPD2DQ.RU_SAE zmm ymm -// -// Construct and append a VCVTPD2DQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_RU_SAE(ops ...operand.Op) { ctx.VCVTPD2DQ_RU_SAE(ops...) } - -// VCVTPD2DQ_RU_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2DQ_RU_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_RU_SAE_Z(z, k, y)) -} - -// VCVTPD2DQ_RU_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_RU_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2DQ_RU_SAE_Z(z, k, y) } - -// VCVTPD2DQ_RZ_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2DQ.RZ_SAE zmm k ymm -// VCVTPD2DQ.RZ_SAE zmm ymm -// -// Construct and append a VCVTPD2DQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTPD2DQ_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_RZ_SAE(ops...)) -} - -// VCVTPD2DQ_RZ_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2DQ.RZ_SAE zmm k ymm -// VCVTPD2DQ.RZ_SAE zmm ymm -// -// Construct and append a VCVTPD2DQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_RZ_SAE(ops ...operand.Op) { ctx.VCVTPD2DQ_RZ_SAE(ops...) } - -// VCVTPD2DQ_RZ_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2DQ_RZ_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_RZ_SAE_Z(z, k, y)) -} - -// VCVTPD2DQ_RZ_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_RZ_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2DQ_RZ_SAE_Z(z, k, y) } - -// VCVTPD2DQ_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.Z m512 k ymm -// VCVTPD2DQ.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.Z instruction to the active function. -func (c *Context) VCVTPD2DQ_Z(mz, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2DQ_Z(mz, k, y)) -} - -// VCVTPD2DQ_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.Z m512 k ymm -// VCVTPD2DQ.Z zmm k ymm -// -// Construct and append a VCVTPD2DQ.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2DQ_Z(mz, k, y operand.Op) { ctx.VCVTPD2DQ_Z(mz, k, y) } - -// VCVTPD2PS: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTPD2PS m512 k ymm -// VCVTPD2PS m512 ymm -// VCVTPD2PS zmm k ymm -// VCVTPD2PS zmm ymm -// -// Construct and append a VCVTPD2PS instruction to the active function. -func (c *Context) VCVTPD2PS(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PS(ops...)) -} - -// VCVTPD2PS: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTPD2PS m512 k ymm -// VCVTPD2PS m512 ymm -// VCVTPD2PS zmm k ymm -// VCVTPD2PS zmm ymm -// -// Construct and append a VCVTPD2PS instruction to the active function. -// Operates on the global context. -func VCVTPD2PS(ops ...operand.Op) { ctx.VCVTPD2PS(ops...) } - -// VCVTPD2PSX: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTPD2PSX m128 xmm -// VCVTPD2PSX xmm xmm -// VCVTPD2PSX m128 k xmm -// VCVTPD2PSX xmm k xmm -// -// Construct and append a VCVTPD2PSX instruction to the active function. -func (c *Context) VCVTPD2PSX(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PSX(ops...)) -} - -// VCVTPD2PSX: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTPD2PSX m128 xmm -// VCVTPD2PSX xmm xmm -// VCVTPD2PSX m128 k xmm -// VCVTPD2PSX xmm k xmm -// -// Construct and append a VCVTPD2PSX instruction to the active function. -// Operates on the global context. -func VCVTPD2PSX(ops ...operand.Op) { ctx.VCVTPD2PSX(ops...) } - -// VCVTPD2PSX_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPD2PSX.BCST m64 k xmm -// VCVTPD2PSX.BCST m64 xmm -// -// Construct and append a VCVTPD2PSX.BCST instruction to the active function. -func (c *Context) VCVTPD2PSX_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PSX_BCST(ops...)) -} - -// VCVTPD2PSX_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPD2PSX.BCST m64 k xmm -// VCVTPD2PSX.BCST m64 xmm -// -// Construct and append a VCVTPD2PSX.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2PSX_BCST(ops ...operand.Op) { ctx.VCVTPD2PSX_BCST(ops...) } - -// VCVTPD2PSX_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSX.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2PSX.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2PSX_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2PSX_BCST_Z(m, k, x)) -} - -// VCVTPD2PSX_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSX.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2PSX.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PSX_BCST_Z(m, k, x operand.Op) { ctx.VCVTPD2PSX_BCST_Z(m, k, x) } - -// VCVTPD2PSX_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSX.Z m128 k xmm -// VCVTPD2PSX.Z xmm k xmm -// -// Construct and append a VCVTPD2PSX.Z instruction to the active function. -func (c *Context) VCVTPD2PSX_Z(mx, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2PSX_Z(mx, k, x)) -} - -// VCVTPD2PSX_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSX.Z m128 k xmm -// VCVTPD2PSX.Z xmm k xmm -// -// Construct and append a VCVTPD2PSX.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PSX_Z(mx, k, x operand.Op) { ctx.VCVTPD2PSX_Z(mx, k, x) } - -// VCVTPD2PSY: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTPD2PSY m256 xmm -// VCVTPD2PSY ymm xmm -// VCVTPD2PSY m256 k xmm -// VCVTPD2PSY ymm k xmm -// -// Construct and append a VCVTPD2PSY instruction to the active function. -func (c *Context) VCVTPD2PSY(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PSY(ops...)) -} - -// VCVTPD2PSY: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTPD2PSY m256 xmm -// VCVTPD2PSY ymm xmm -// VCVTPD2PSY m256 k xmm -// VCVTPD2PSY ymm k xmm -// -// Construct and append a VCVTPD2PSY instruction to the active function. -// Operates on the global context. -func VCVTPD2PSY(ops ...operand.Op) { ctx.VCVTPD2PSY(ops...) } - -// VCVTPD2PSY_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPD2PSY.BCST m64 k xmm -// VCVTPD2PSY.BCST m64 xmm -// -// Construct and append a VCVTPD2PSY.BCST instruction to the active function. -func (c *Context) VCVTPD2PSY_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PSY_BCST(ops...)) -} - -// VCVTPD2PSY_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPD2PSY.BCST m64 k xmm -// VCVTPD2PSY.BCST m64 xmm -// -// Construct and append a VCVTPD2PSY.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2PSY_BCST(ops ...operand.Op) { ctx.VCVTPD2PSY_BCST(ops...) } - -// VCVTPD2PSY_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSY.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2PSY.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2PSY_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2PSY_BCST_Z(m, k, x)) -} - -// VCVTPD2PSY_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSY.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2PSY.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PSY_BCST_Z(m, k, x operand.Op) { ctx.VCVTPD2PSY_BCST_Z(m, k, x) } - -// VCVTPD2PSY_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSY.Z m256 k xmm -// VCVTPD2PSY.Z ymm k xmm -// -// Construct and append a VCVTPD2PSY.Z instruction to the active function. -func (c *Context) VCVTPD2PSY_Z(my, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2PSY_Z(my, k, x)) -} - -// VCVTPD2PSY_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSY.Z m256 k xmm -// VCVTPD2PSY.Z ymm k xmm -// -// Construct and append a VCVTPD2PSY.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PSY_Z(my, k, x operand.Op) { ctx.VCVTPD2PSY_Z(my, k, x) } - -// VCVTPD2PS_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPD2PS.BCST m64 k ymm -// VCVTPD2PS.BCST m64 ymm -// -// Construct and append a VCVTPD2PS.BCST instruction to the active function. -func (c *Context) VCVTPD2PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PS_BCST(ops...)) -} - -// VCVTPD2PS_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPD2PS.BCST m64 k ymm -// VCVTPD2PS.BCST m64 ymm -// -// Construct and append a VCVTPD2PS.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_BCST(ops ...operand.Op) { ctx.VCVTPD2PS_BCST(ops...) } - -// VCVTPD2PS_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.BCST.Z m64 k ymm -// -// Construct and append a VCVTPD2PS.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2PS_BCST_Z(m, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2PS_BCST_Z(m, k, y)) -} - -// VCVTPD2PS_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.BCST.Z m64 k ymm -// -// Construct and append a VCVTPD2PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_BCST_Z(m, k, y operand.Op) { ctx.VCVTPD2PS_BCST_Z(m, k, y) } - -// VCVTPD2PS_RD_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2PS.RD_SAE zmm k ymm -// VCVTPD2PS.RD_SAE zmm ymm -// -// Construct and append a VCVTPD2PS.RD_SAE instruction to the active function. -func (c *Context) VCVTPD2PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PS_RD_SAE(ops...)) -} - -// VCVTPD2PS_RD_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2PS.RD_SAE zmm k ymm -// VCVTPD2PS.RD_SAE zmm ymm -// -// Construct and append a VCVTPD2PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_RD_SAE(ops ...operand.Op) { ctx.VCVTPD2PS_RD_SAE(ops...) } - -// VCVTPD2PS_RD_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2PS_RD_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2PS_RD_SAE_Z(z, k, y)) -} - -// VCVTPD2PS_RD_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_RD_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2PS_RD_SAE_Z(z, k, y) } - -// VCVTPD2PS_RN_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2PS.RN_SAE zmm k ymm -// VCVTPD2PS.RN_SAE zmm ymm -// -// Construct and append a VCVTPD2PS.RN_SAE instruction to the active function. -func (c *Context) VCVTPD2PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PS_RN_SAE(ops...)) -} - -// VCVTPD2PS_RN_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2PS.RN_SAE zmm k ymm -// VCVTPD2PS.RN_SAE zmm ymm -// -// Construct and append a VCVTPD2PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_RN_SAE(ops ...operand.Op) { ctx.VCVTPD2PS_RN_SAE(ops...) } - -// VCVTPD2PS_RN_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2PS_RN_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2PS_RN_SAE_Z(z, k, y)) -} - -// VCVTPD2PS_RN_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_RN_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2PS_RN_SAE_Z(z, k, y) } - -// VCVTPD2PS_RU_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2PS.RU_SAE zmm k ymm -// VCVTPD2PS.RU_SAE zmm ymm -// -// Construct and append a VCVTPD2PS.RU_SAE instruction to the active function. -func (c *Context) VCVTPD2PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PS_RU_SAE(ops...)) -} - -// VCVTPD2PS_RU_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2PS.RU_SAE zmm k ymm -// VCVTPD2PS.RU_SAE zmm ymm -// -// Construct and append a VCVTPD2PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_RU_SAE(ops ...operand.Op) { ctx.VCVTPD2PS_RU_SAE(ops...) } - -// VCVTPD2PS_RU_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2PS_RU_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2PS_RU_SAE_Z(z, k, y)) -} - -// VCVTPD2PS_RU_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_RU_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2PS_RU_SAE_Z(z, k, y) } - -// VCVTPD2PS_RZ_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Zero). -// -// Forms: -// -// VCVTPD2PS.RZ_SAE zmm k ymm -// VCVTPD2PS.RZ_SAE zmm ymm -// -// Construct and append a VCVTPD2PS.RZ_SAE instruction to the active function. -func (c *Context) VCVTPD2PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2PS_RZ_SAE(ops...)) -} - -// VCVTPD2PS_RZ_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Zero). -// -// Forms: -// -// VCVTPD2PS.RZ_SAE zmm k ymm -// VCVTPD2PS.RZ_SAE zmm ymm -// -// Construct and append a VCVTPD2PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_RZ_SAE(ops ...operand.Op) { ctx.VCVTPD2PS_RZ_SAE(ops...) } - -// VCVTPD2PS_RZ_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2PS_RZ_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2PS_RZ_SAE_Z(z, k, y)) -} - -// VCVTPD2PS_RZ_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_RZ_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2PS_RZ_SAE_Z(z, k, y) } - -// VCVTPD2PS_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.Z m512 k ymm -// VCVTPD2PS.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.Z instruction to the active function. -func (c *Context) VCVTPD2PS_Z(mz, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2PS_Z(mz, k, y)) -} - -// VCVTPD2PS_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.Z m512 k ymm -// VCVTPD2PS.Z zmm k ymm -// -// Construct and append a VCVTPD2PS.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2PS_Z(mz, k, y operand.Op) { ctx.VCVTPD2PS_Z(mz, k, y) } - -// VCVTPD2QQ: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers. -// -// Forms: -// -// VCVTPD2QQ m128 k xmm -// VCVTPD2QQ m128 xmm -// VCVTPD2QQ m256 k ymm -// VCVTPD2QQ m256 ymm -// VCVTPD2QQ xmm k xmm -// VCVTPD2QQ xmm xmm -// VCVTPD2QQ ymm k ymm -// VCVTPD2QQ ymm ymm -// VCVTPD2QQ m512 k zmm -// VCVTPD2QQ m512 zmm -// VCVTPD2QQ zmm k zmm -// VCVTPD2QQ zmm zmm -// -// Construct and append a VCVTPD2QQ instruction to the active function. -func (c *Context) VCVTPD2QQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2QQ(ops...)) -} - -// VCVTPD2QQ: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers. -// -// Forms: -// -// VCVTPD2QQ m128 k xmm -// VCVTPD2QQ m128 xmm -// VCVTPD2QQ m256 k ymm -// VCVTPD2QQ m256 ymm -// VCVTPD2QQ xmm k xmm -// VCVTPD2QQ xmm xmm -// VCVTPD2QQ ymm k ymm -// VCVTPD2QQ ymm ymm -// VCVTPD2QQ m512 k zmm -// VCVTPD2QQ m512 zmm -// VCVTPD2QQ zmm k zmm -// VCVTPD2QQ zmm zmm -// -// Construct and append a VCVTPD2QQ instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ(ops ...operand.Op) { ctx.VCVTPD2QQ(ops...) } - -// VCVTPD2QQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2QQ.BCST m64 k xmm -// VCVTPD2QQ.BCST m64 k ymm -// VCVTPD2QQ.BCST m64 xmm -// VCVTPD2QQ.BCST m64 ymm -// VCVTPD2QQ.BCST m64 k zmm -// VCVTPD2QQ.BCST m64 zmm -// -// Construct and append a VCVTPD2QQ.BCST instruction to the active function. -func (c *Context) VCVTPD2QQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_BCST(ops...)) -} - -// VCVTPD2QQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2QQ.BCST m64 k xmm -// VCVTPD2QQ.BCST m64 k ymm -// VCVTPD2QQ.BCST m64 xmm -// VCVTPD2QQ.BCST m64 ymm -// VCVTPD2QQ.BCST m64 k zmm -// VCVTPD2QQ.BCST m64 zmm -// -// Construct and append a VCVTPD2QQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_BCST(ops ...operand.Op) { ctx.VCVTPD2QQ_BCST(ops...) } - -// VCVTPD2QQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.BCST.Z m64 k xmm -// VCVTPD2QQ.BCST.Z m64 k ymm -// VCVTPD2QQ.BCST.Z m64 k zmm -// -// Construct and append a VCVTPD2QQ.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2QQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_BCST_Z(m, k, xyz)) -} - -// VCVTPD2QQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.BCST.Z m64 k xmm -// VCVTPD2QQ.BCST.Z m64 k ymm -// VCVTPD2QQ.BCST.Z m64 k zmm -// -// Construct and append a VCVTPD2QQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTPD2QQ_BCST_Z(m, k, xyz) } - -// VCVTPD2QQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2QQ.RD_SAE zmm k zmm -// VCVTPD2QQ.RD_SAE zmm zmm -// -// Construct and append a VCVTPD2QQ.RD_SAE instruction to the active function. -func (c *Context) VCVTPD2QQ_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_RD_SAE(ops...)) -} - -// VCVTPD2QQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2QQ.RD_SAE zmm k zmm -// VCVTPD2QQ.RD_SAE zmm zmm -// -// Construct and append a VCVTPD2QQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_RD_SAE(ops ...operand.Op) { ctx.VCVTPD2QQ_RD_SAE(ops...) } - -// VCVTPD2QQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2QQ_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_RD_SAE_Z(z, k, z1)) -} - -// VCVTPD2QQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPD2QQ_RD_SAE_Z(z, k, z1) } - -// VCVTPD2QQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2QQ.RN_SAE zmm k zmm -// VCVTPD2QQ.RN_SAE zmm zmm -// -// Construct and append a VCVTPD2QQ.RN_SAE instruction to the active function. -func (c *Context) VCVTPD2QQ_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_RN_SAE(ops...)) -} - -// VCVTPD2QQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2QQ.RN_SAE zmm k zmm -// VCVTPD2QQ.RN_SAE zmm zmm -// -// Construct and append a VCVTPD2QQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_RN_SAE(ops ...operand.Op) { ctx.VCVTPD2QQ_RN_SAE(ops...) } - -// VCVTPD2QQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2QQ_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_RN_SAE_Z(z, k, z1)) -} - -// VCVTPD2QQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPD2QQ_RN_SAE_Z(z, k, z1) } - -// VCVTPD2QQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2QQ.RU_SAE zmm k zmm -// VCVTPD2QQ.RU_SAE zmm zmm -// -// Construct and append a VCVTPD2QQ.RU_SAE instruction to the active function. -func (c *Context) VCVTPD2QQ_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_RU_SAE(ops...)) -} - -// VCVTPD2QQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2QQ.RU_SAE zmm k zmm -// VCVTPD2QQ.RU_SAE zmm zmm -// -// Construct and append a VCVTPD2QQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_RU_SAE(ops ...operand.Op) { ctx.VCVTPD2QQ_RU_SAE(ops...) } - -// VCVTPD2QQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2QQ_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_RU_SAE_Z(z, k, z1)) -} - -// VCVTPD2QQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPD2QQ_RU_SAE_Z(z, k, z1) } - -// VCVTPD2QQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2QQ.RZ_SAE zmm k zmm -// VCVTPD2QQ.RZ_SAE zmm zmm -// -// Construct and append a VCVTPD2QQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTPD2QQ_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_RZ_SAE(ops...)) -} - -// VCVTPD2QQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2QQ.RZ_SAE zmm k zmm -// VCVTPD2QQ.RZ_SAE zmm zmm -// -// Construct and append a VCVTPD2QQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_RZ_SAE(ops ...operand.Op) { ctx.VCVTPD2QQ_RZ_SAE(ops...) } - -// VCVTPD2QQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2QQ_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_RZ_SAE_Z(z, k, z1)) -} - -// VCVTPD2QQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPD2QQ_RZ_SAE_Z(z, k, z1) } - -// VCVTPD2QQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.Z m128 k xmm -// VCVTPD2QQ.Z m256 k ymm -// VCVTPD2QQ.Z xmm k xmm -// VCVTPD2QQ.Z ymm k ymm -// VCVTPD2QQ.Z m512 k zmm -// VCVTPD2QQ.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.Z instruction to the active function. -func (c *Context) VCVTPD2QQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPD2QQ_Z(mxyz, k, xyz)) -} - -// VCVTPD2QQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.Z m128 k xmm -// VCVTPD2QQ.Z m256 k ymm -// VCVTPD2QQ.Z xmm k xmm -// VCVTPD2QQ.Z ymm k ymm -// VCVTPD2QQ.Z m512 k zmm -// VCVTPD2QQ.Z zmm k zmm -// -// Construct and append a VCVTPD2QQ.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2QQ_Z(mxyz, k, xyz operand.Op) { ctx.VCVTPD2QQ_Z(mxyz, k, xyz) } - -// VCVTPD2UDQ: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTPD2UDQ m512 k ymm -// VCVTPD2UDQ m512 ymm -// VCVTPD2UDQ zmm k ymm -// VCVTPD2UDQ zmm ymm -// -// Construct and append a VCVTPD2UDQ instruction to the active function. -func (c *Context) VCVTPD2UDQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ(ops...)) -} - -// VCVTPD2UDQ: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTPD2UDQ m512 k ymm -// VCVTPD2UDQ m512 ymm -// VCVTPD2UDQ zmm k ymm -// VCVTPD2UDQ zmm ymm -// -// Construct and append a VCVTPD2UDQ instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ(ops ...operand.Op) { ctx.VCVTPD2UDQ(ops...) } - -// VCVTPD2UDQX: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTPD2UDQX m128 k xmm -// VCVTPD2UDQX m128 xmm -// VCVTPD2UDQX xmm k xmm -// VCVTPD2UDQX xmm xmm -// -// Construct and append a VCVTPD2UDQX instruction to the active function. -func (c *Context) VCVTPD2UDQX(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQX(ops...)) -} - -// VCVTPD2UDQX: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTPD2UDQX m128 k xmm -// VCVTPD2UDQX m128 xmm -// VCVTPD2UDQX xmm k xmm -// VCVTPD2UDQX xmm xmm -// -// Construct and append a VCVTPD2UDQX instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQX(ops ...operand.Op) { ctx.VCVTPD2UDQX(ops...) } - -// VCVTPD2UDQX_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UDQX.BCST m64 k xmm -// VCVTPD2UDQX.BCST m64 xmm -// -// Construct and append a VCVTPD2UDQX.BCST instruction to the active function. -func (c *Context) VCVTPD2UDQX_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQX_BCST(ops...)) -} - -// VCVTPD2UDQX_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UDQX.BCST m64 k xmm -// VCVTPD2UDQX.BCST m64 xmm -// -// Construct and append a VCVTPD2UDQX.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQX_BCST(ops ...operand.Op) { ctx.VCVTPD2UDQX_BCST(ops...) } - -// VCVTPD2UDQX_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQX.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2UDQX.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2UDQX_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2UDQX_BCST_Z(m, k, x)) -} - -// VCVTPD2UDQX_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQX.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2UDQX.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQX_BCST_Z(m, k, x operand.Op) { ctx.VCVTPD2UDQX_BCST_Z(m, k, x) } - -// VCVTPD2UDQX_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQX.Z m128 k xmm -// VCVTPD2UDQX.Z xmm k xmm -// -// Construct and append a VCVTPD2UDQX.Z instruction to the active function. -func (c *Context) VCVTPD2UDQX_Z(mx, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2UDQX_Z(mx, k, x)) -} - -// VCVTPD2UDQX_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQX.Z m128 k xmm -// VCVTPD2UDQX.Z xmm k xmm -// -// Construct and append a VCVTPD2UDQX.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQX_Z(mx, k, x operand.Op) { ctx.VCVTPD2UDQX_Z(mx, k, x) } - -// VCVTPD2UDQY: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTPD2UDQY m256 k xmm -// VCVTPD2UDQY m256 xmm -// VCVTPD2UDQY ymm k xmm -// VCVTPD2UDQY ymm xmm -// -// Construct and append a VCVTPD2UDQY instruction to the active function. -func (c *Context) VCVTPD2UDQY(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQY(ops...)) -} - -// VCVTPD2UDQY: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTPD2UDQY m256 k xmm -// VCVTPD2UDQY m256 xmm -// VCVTPD2UDQY ymm k xmm -// VCVTPD2UDQY ymm xmm -// -// Construct and append a VCVTPD2UDQY instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQY(ops ...operand.Op) { ctx.VCVTPD2UDQY(ops...) } - -// VCVTPD2UDQY_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UDQY.BCST m64 k xmm -// VCVTPD2UDQY.BCST m64 xmm -// -// Construct and append a VCVTPD2UDQY.BCST instruction to the active function. -func (c *Context) VCVTPD2UDQY_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQY_BCST(ops...)) -} - -// VCVTPD2UDQY_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UDQY.BCST m64 k xmm -// VCVTPD2UDQY.BCST m64 xmm -// -// Construct and append a VCVTPD2UDQY.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQY_BCST(ops ...operand.Op) { ctx.VCVTPD2UDQY_BCST(ops...) } - -// VCVTPD2UDQY_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQY.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2UDQY.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2UDQY_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2UDQY_BCST_Z(m, k, x)) -} - -// VCVTPD2UDQY_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQY.BCST.Z m64 k xmm -// -// Construct and append a VCVTPD2UDQY.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQY_BCST_Z(m, k, x operand.Op) { ctx.VCVTPD2UDQY_BCST_Z(m, k, x) } - -// VCVTPD2UDQY_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQY.Z m256 k xmm -// VCVTPD2UDQY.Z ymm k xmm -// -// Construct and append a VCVTPD2UDQY.Z instruction to the active function. -func (c *Context) VCVTPD2UDQY_Z(my, k, x operand.Op) { - c.addinstruction(x86.VCVTPD2UDQY_Z(my, k, x)) -} - -// VCVTPD2UDQY_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQY.Z m256 k xmm -// VCVTPD2UDQY.Z ymm k xmm -// -// Construct and append a VCVTPD2UDQY.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQY_Z(my, k, x operand.Op) { ctx.VCVTPD2UDQY_Z(my, k, x) } - -// VCVTPD2UDQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UDQ.BCST m64 k ymm -// VCVTPD2UDQ.BCST m64 ymm -// -// Construct and append a VCVTPD2UDQ.BCST instruction to the active function. -func (c *Context) VCVTPD2UDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_BCST(ops...)) -} - -// VCVTPD2UDQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UDQ.BCST m64 k ymm -// VCVTPD2UDQ.BCST m64 ymm -// -// Construct and append a VCVTPD2UDQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_BCST(ops ...operand.Op) { ctx.VCVTPD2UDQ_BCST(ops...) } - -// VCVTPD2UDQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.BCST.Z m64 k ymm -// -// Construct and append a VCVTPD2UDQ.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2UDQ_BCST_Z(m, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_BCST_Z(m, k, y)) -} - -// VCVTPD2UDQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.BCST.Z m64 k ymm -// -// Construct and append a VCVTPD2UDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_BCST_Z(m, k, y operand.Op) { ctx.VCVTPD2UDQ_BCST_Z(m, k, y) } - -// VCVTPD2UDQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2UDQ.RD_SAE zmm k ymm -// VCVTPD2UDQ.RD_SAE zmm ymm -// -// Construct and append a VCVTPD2UDQ.RD_SAE instruction to the active function. -func (c *Context) VCVTPD2UDQ_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_RD_SAE(ops...)) -} - -// VCVTPD2UDQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2UDQ.RD_SAE zmm k ymm -// VCVTPD2UDQ.RD_SAE zmm ymm -// -// Construct and append a VCVTPD2UDQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_RD_SAE(ops ...operand.Op) { ctx.VCVTPD2UDQ_RD_SAE(ops...) } - -// VCVTPD2UDQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2UDQ_RD_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_RD_SAE_Z(z, k, y)) -} - -// VCVTPD2UDQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_RD_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2UDQ_RD_SAE_Z(z, k, y) } - -// VCVTPD2UDQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2UDQ.RN_SAE zmm k ymm -// VCVTPD2UDQ.RN_SAE zmm ymm -// -// Construct and append a VCVTPD2UDQ.RN_SAE instruction to the active function. -func (c *Context) VCVTPD2UDQ_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_RN_SAE(ops...)) -} - -// VCVTPD2UDQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2UDQ.RN_SAE zmm k ymm -// VCVTPD2UDQ.RN_SAE zmm ymm -// -// Construct and append a VCVTPD2UDQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_RN_SAE(ops ...operand.Op) { ctx.VCVTPD2UDQ_RN_SAE(ops...) } - -// VCVTPD2UDQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2UDQ_RN_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_RN_SAE_Z(z, k, y)) -} - -// VCVTPD2UDQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_RN_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2UDQ_RN_SAE_Z(z, k, y) } - -// VCVTPD2UDQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2UDQ.RU_SAE zmm k ymm -// VCVTPD2UDQ.RU_SAE zmm ymm -// -// Construct and append a VCVTPD2UDQ.RU_SAE instruction to the active function. -func (c *Context) VCVTPD2UDQ_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_RU_SAE(ops...)) -} - -// VCVTPD2UDQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2UDQ.RU_SAE zmm k ymm -// VCVTPD2UDQ.RU_SAE zmm ymm -// -// Construct and append a VCVTPD2UDQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_RU_SAE(ops ...operand.Op) { ctx.VCVTPD2UDQ_RU_SAE(ops...) } - -// VCVTPD2UDQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2UDQ_RU_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_RU_SAE_Z(z, k, y)) -} - -// VCVTPD2UDQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_RU_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2UDQ_RU_SAE_Z(z, k, y) } - -// VCVTPD2UDQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2UDQ.RZ_SAE zmm k ymm -// VCVTPD2UDQ.RZ_SAE zmm ymm -// -// Construct and append a VCVTPD2UDQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTPD2UDQ_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_RZ_SAE(ops...)) -} - -// VCVTPD2UDQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2UDQ.RZ_SAE zmm k ymm -// VCVTPD2UDQ.RZ_SAE zmm ymm -// -// Construct and append a VCVTPD2UDQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_RZ_SAE(ops ...operand.Op) { ctx.VCVTPD2UDQ_RZ_SAE(ops...) } - -// VCVTPD2UDQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2UDQ_RZ_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_RZ_SAE_Z(z, k, y)) -} - -// VCVTPD2UDQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_RZ_SAE_Z(z, k, y operand.Op) { ctx.VCVTPD2UDQ_RZ_SAE_Z(z, k, y) } - -// VCVTPD2UDQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.Z m512 k ymm -// VCVTPD2UDQ.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.Z instruction to the active function. -func (c *Context) VCVTPD2UDQ_Z(mz, k, y operand.Op) { - c.addinstruction(x86.VCVTPD2UDQ_Z(mz, k, y)) -} - -// VCVTPD2UDQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.Z m512 k ymm -// VCVTPD2UDQ.Z zmm k ymm -// -// Construct and append a VCVTPD2UDQ.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UDQ_Z(mz, k, y operand.Op) { ctx.VCVTPD2UDQ_Z(mz, k, y) } - -// VCVTPD2UQQ: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers. -// -// Forms: -// -// VCVTPD2UQQ m128 k xmm -// VCVTPD2UQQ m128 xmm -// VCVTPD2UQQ m256 k ymm -// VCVTPD2UQQ m256 ymm -// VCVTPD2UQQ xmm k xmm -// VCVTPD2UQQ xmm xmm -// VCVTPD2UQQ ymm k ymm -// VCVTPD2UQQ ymm ymm -// VCVTPD2UQQ m512 k zmm -// VCVTPD2UQQ m512 zmm -// VCVTPD2UQQ zmm k zmm -// VCVTPD2UQQ zmm zmm -// -// Construct and append a VCVTPD2UQQ instruction to the active function. -func (c *Context) VCVTPD2UQQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ(ops...)) -} - -// VCVTPD2UQQ: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers. -// -// Forms: -// -// VCVTPD2UQQ m128 k xmm -// VCVTPD2UQQ m128 xmm -// VCVTPD2UQQ m256 k ymm -// VCVTPD2UQQ m256 ymm -// VCVTPD2UQQ xmm k xmm -// VCVTPD2UQQ xmm xmm -// VCVTPD2UQQ ymm k ymm -// VCVTPD2UQQ ymm ymm -// VCVTPD2UQQ m512 k zmm -// VCVTPD2UQQ m512 zmm -// VCVTPD2UQQ zmm k zmm -// VCVTPD2UQQ zmm zmm -// -// Construct and append a VCVTPD2UQQ instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ(ops ...operand.Op) { ctx.VCVTPD2UQQ(ops...) } - -// VCVTPD2UQQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UQQ.BCST m64 k xmm -// VCVTPD2UQQ.BCST m64 k ymm -// VCVTPD2UQQ.BCST m64 xmm -// VCVTPD2UQQ.BCST m64 ymm -// VCVTPD2UQQ.BCST m64 k zmm -// VCVTPD2UQQ.BCST m64 zmm -// -// Construct and append a VCVTPD2UQQ.BCST instruction to the active function. -func (c *Context) VCVTPD2UQQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_BCST(ops...)) -} - -// VCVTPD2UQQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UQQ.BCST m64 k xmm -// VCVTPD2UQQ.BCST m64 k ymm -// VCVTPD2UQQ.BCST m64 xmm -// VCVTPD2UQQ.BCST m64 ymm -// VCVTPD2UQQ.BCST m64 k zmm -// VCVTPD2UQQ.BCST m64 zmm -// -// Construct and append a VCVTPD2UQQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_BCST(ops ...operand.Op) { ctx.VCVTPD2UQQ_BCST(ops...) } - -// VCVTPD2UQQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.BCST.Z m64 k xmm -// VCVTPD2UQQ.BCST.Z m64 k ymm -// VCVTPD2UQQ.BCST.Z m64 k zmm -// -// Construct and append a VCVTPD2UQQ.BCST.Z instruction to the active function. -func (c *Context) VCVTPD2UQQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_BCST_Z(m, k, xyz)) -} - -// VCVTPD2UQQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.BCST.Z m64 k xmm -// VCVTPD2UQQ.BCST.Z m64 k ymm -// VCVTPD2UQQ.BCST.Z m64 k zmm -// -// Construct and append a VCVTPD2UQQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTPD2UQQ_BCST_Z(m, k, xyz) } - -// VCVTPD2UQQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2UQQ.RD_SAE zmm k zmm -// VCVTPD2UQQ.RD_SAE zmm zmm -// -// Construct and append a VCVTPD2UQQ.RD_SAE instruction to the active function. -func (c *Context) VCVTPD2UQQ_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_RD_SAE(ops...)) -} - -// VCVTPD2UQQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2UQQ.RD_SAE zmm k zmm -// VCVTPD2UQQ.RD_SAE zmm zmm -// -// Construct and append a VCVTPD2UQQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_RD_SAE(ops ...operand.Op) { ctx.VCVTPD2UQQ_RD_SAE(ops...) } - -// VCVTPD2UQQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2UQQ_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_RD_SAE_Z(z, k, z1)) -} - -// VCVTPD2UQQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPD2UQQ_RD_SAE_Z(z, k, z1) } - -// VCVTPD2UQQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2UQQ.RN_SAE zmm k zmm -// VCVTPD2UQQ.RN_SAE zmm zmm -// -// Construct and append a VCVTPD2UQQ.RN_SAE instruction to the active function. -func (c *Context) VCVTPD2UQQ_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_RN_SAE(ops...)) -} - -// VCVTPD2UQQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2UQQ.RN_SAE zmm k zmm -// VCVTPD2UQQ.RN_SAE zmm zmm -// -// Construct and append a VCVTPD2UQQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_RN_SAE(ops ...operand.Op) { ctx.VCVTPD2UQQ_RN_SAE(ops...) } - -// VCVTPD2UQQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2UQQ_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_RN_SAE_Z(z, k, z1)) -} - -// VCVTPD2UQQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPD2UQQ_RN_SAE_Z(z, k, z1) } - -// VCVTPD2UQQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2UQQ.RU_SAE zmm k zmm -// VCVTPD2UQQ.RU_SAE zmm zmm -// -// Construct and append a VCVTPD2UQQ.RU_SAE instruction to the active function. -func (c *Context) VCVTPD2UQQ_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_RU_SAE(ops...)) -} - -// VCVTPD2UQQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2UQQ.RU_SAE zmm k zmm -// VCVTPD2UQQ.RU_SAE zmm zmm -// -// Construct and append a VCVTPD2UQQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_RU_SAE(ops ...operand.Op) { ctx.VCVTPD2UQQ_RU_SAE(ops...) } - -// VCVTPD2UQQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2UQQ_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_RU_SAE_Z(z, k, z1)) -} - -// VCVTPD2UQQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPD2UQQ_RU_SAE_Z(z, k, z1) } - -// VCVTPD2UQQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2UQQ.RZ_SAE zmm k zmm -// VCVTPD2UQQ.RZ_SAE zmm zmm -// -// Construct and append a VCVTPD2UQQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTPD2UQQ_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_RZ_SAE(ops...)) -} - -// VCVTPD2UQQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2UQQ.RZ_SAE zmm k zmm -// VCVTPD2UQQ.RZ_SAE zmm zmm -// -// Construct and append a VCVTPD2UQQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_RZ_SAE(ops ...operand.Op) { ctx.VCVTPD2UQQ_RZ_SAE(ops...) } - -// VCVTPD2UQQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTPD2UQQ_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_RZ_SAE_Z(z, k, z1)) -} - -// VCVTPD2UQQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPD2UQQ_RZ_SAE_Z(z, k, z1) } - -// VCVTPD2UQQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.Z m128 k xmm -// VCVTPD2UQQ.Z m256 k ymm -// VCVTPD2UQQ.Z xmm k xmm -// VCVTPD2UQQ.Z ymm k ymm -// VCVTPD2UQQ.Z m512 k zmm -// VCVTPD2UQQ.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.Z instruction to the active function. -func (c *Context) VCVTPD2UQQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPD2UQQ_Z(mxyz, k, xyz)) -} - -// VCVTPD2UQQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.Z m128 k xmm -// VCVTPD2UQQ.Z m256 k ymm -// VCVTPD2UQQ.Z xmm k xmm -// VCVTPD2UQQ.Z ymm k ymm -// VCVTPD2UQQ.Z m512 k zmm -// VCVTPD2UQQ.Z zmm k zmm -// -// Construct and append a VCVTPD2UQQ.Z instruction to the active function. -// Operates on the global context. -func VCVTPD2UQQ_Z(mxyz, k, xyz operand.Op) { ctx.VCVTPD2UQQ_Z(mxyz, k, xyz) } - -// VCVTPH2PS: Convert Half-Precision FP Values to Single-Precision FP Values. -// -// Forms: -// -// VCVTPH2PS m128 ymm -// VCVTPH2PS m64 xmm -// VCVTPH2PS xmm xmm -// VCVTPH2PS xmm ymm -// VCVTPH2PS m128 k ymm -// VCVTPH2PS m64 k xmm -// VCVTPH2PS xmm k xmm -// VCVTPH2PS xmm k ymm -// VCVTPH2PS m256 k zmm -// VCVTPH2PS m256 zmm -// VCVTPH2PS ymm k zmm -// VCVTPH2PS ymm zmm -// -// Construct and append a VCVTPH2PS instruction to the active function. -func (c *Context) VCVTPH2PS(ops ...operand.Op) { - c.addinstruction(x86.VCVTPH2PS(ops...)) -} - -// VCVTPH2PS: Convert Half-Precision FP Values to Single-Precision FP Values. -// -// Forms: -// -// VCVTPH2PS m128 ymm -// VCVTPH2PS m64 xmm -// VCVTPH2PS xmm xmm -// VCVTPH2PS xmm ymm -// VCVTPH2PS m128 k ymm -// VCVTPH2PS m64 k xmm -// VCVTPH2PS xmm k xmm -// VCVTPH2PS xmm k ymm -// VCVTPH2PS m256 k zmm -// VCVTPH2PS m256 zmm -// VCVTPH2PS ymm k zmm -// VCVTPH2PS ymm zmm -// -// Construct and append a VCVTPH2PS instruction to the active function. -// Operates on the global context. -func VCVTPH2PS(ops ...operand.Op) { ctx.VCVTPH2PS(ops...) } - -// VCVTPH2PS_SAE: Convert Half-Precision FP Values to Single-Precision FP Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTPH2PS.SAE ymm k zmm -// VCVTPH2PS.SAE ymm zmm -// -// Construct and append a VCVTPH2PS.SAE instruction to the active function. -func (c *Context) VCVTPH2PS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPH2PS_SAE(ops...)) -} - -// VCVTPH2PS_SAE: Convert Half-Precision FP Values to Single-Precision FP Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTPH2PS.SAE ymm k zmm -// VCVTPH2PS.SAE ymm zmm -// -// Construct and append a VCVTPH2PS.SAE instruction to the active function. -// Operates on the global context. -func VCVTPH2PS_SAE(ops ...operand.Op) { ctx.VCVTPH2PS_SAE(ops...) } - -// VCVTPH2PS_SAE_Z: Convert Half-Precision FP Values to Single-Precision FP Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTPH2PS.SAE.Z ymm k zmm -// -// Construct and append a VCVTPH2PS.SAE.Z instruction to the active function. -func (c *Context) VCVTPH2PS_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPH2PS_SAE_Z(y, k, z)) -} - -// VCVTPH2PS_SAE_Z: Convert Half-Precision FP Values to Single-Precision FP Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTPH2PS.SAE.Z ymm k zmm -// -// Construct and append a VCVTPH2PS.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPH2PS_SAE_Z(y, k, z operand.Op) { ctx.VCVTPH2PS_SAE_Z(y, k, z) } - -// VCVTPH2PS_Z: Convert Half-Precision FP Values to Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPH2PS.Z m128 k ymm -// VCVTPH2PS.Z m64 k xmm -// VCVTPH2PS.Z xmm k xmm -// VCVTPH2PS.Z xmm k ymm -// VCVTPH2PS.Z m256 k zmm -// VCVTPH2PS.Z ymm k zmm -// -// Construct and append a VCVTPH2PS.Z instruction to the active function. -func (c *Context) VCVTPH2PS_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPH2PS_Z(mxy, k, xyz)) -} - -// VCVTPH2PS_Z: Convert Half-Precision FP Values to Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPH2PS.Z m128 k ymm -// VCVTPH2PS.Z m64 k xmm -// VCVTPH2PS.Z xmm k xmm -// VCVTPH2PS.Z xmm k ymm -// VCVTPH2PS.Z m256 k zmm -// VCVTPH2PS.Z ymm k zmm -// -// Construct and append a VCVTPH2PS.Z instruction to the active function. -// Operates on the global context. -func VCVTPH2PS_Z(mxy, k, xyz operand.Op) { ctx.VCVTPH2PS_Z(mxy, k, xyz) } - -// VCVTPS2DQ: Convert Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPS2DQ m128 xmm -// VCVTPS2DQ m256 ymm -// VCVTPS2DQ xmm xmm -// VCVTPS2DQ ymm ymm -// VCVTPS2DQ m128 k xmm -// VCVTPS2DQ m256 k ymm -// VCVTPS2DQ xmm k xmm -// VCVTPS2DQ ymm k ymm -// VCVTPS2DQ m512 k zmm -// VCVTPS2DQ m512 zmm -// VCVTPS2DQ zmm k zmm -// VCVTPS2DQ zmm zmm -// -// Construct and append a VCVTPS2DQ instruction to the active function. -func (c *Context) VCVTPS2DQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2DQ(ops...)) -} - -// VCVTPS2DQ: Convert Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPS2DQ m128 xmm -// VCVTPS2DQ m256 ymm -// VCVTPS2DQ xmm xmm -// VCVTPS2DQ ymm ymm -// VCVTPS2DQ m128 k xmm -// VCVTPS2DQ m256 k ymm -// VCVTPS2DQ xmm k xmm -// VCVTPS2DQ ymm k ymm -// VCVTPS2DQ m512 k zmm -// VCVTPS2DQ m512 zmm -// VCVTPS2DQ zmm k zmm -// VCVTPS2DQ zmm zmm -// -// Construct and append a VCVTPS2DQ instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ(ops ...operand.Op) { ctx.VCVTPS2DQ(ops...) } - -// VCVTPS2DQ_BCST: Convert Packed Single-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPS2DQ.BCST m32 k xmm -// VCVTPS2DQ.BCST m32 k ymm -// VCVTPS2DQ.BCST m32 xmm -// VCVTPS2DQ.BCST m32 ymm -// VCVTPS2DQ.BCST m32 k zmm -// VCVTPS2DQ.BCST m32 zmm -// -// Construct and append a VCVTPS2DQ.BCST instruction to the active function. -func (c *Context) VCVTPS2DQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_BCST(ops...)) -} - -// VCVTPS2DQ_BCST: Convert Packed Single-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPS2DQ.BCST m32 k xmm -// VCVTPS2DQ.BCST m32 k ymm -// VCVTPS2DQ.BCST m32 xmm -// VCVTPS2DQ.BCST m32 ymm -// VCVTPS2DQ.BCST m32 k zmm -// VCVTPS2DQ.BCST m32 zmm -// -// Construct and append a VCVTPS2DQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_BCST(ops ...operand.Op) { ctx.VCVTPS2DQ_BCST(ops...) } - -// VCVTPS2DQ_BCST_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.BCST.Z m32 k xmm -// VCVTPS2DQ.BCST.Z m32 k ymm -// VCVTPS2DQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTPS2DQ.BCST.Z instruction to the active function. -func (c *Context) VCVTPS2DQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_BCST_Z(m, k, xyz)) -} - -// VCVTPS2DQ_BCST_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.BCST.Z m32 k xmm -// VCVTPS2DQ.BCST.Z m32 k ymm -// VCVTPS2DQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTPS2DQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTPS2DQ_BCST_Z(m, k, xyz) } - -// VCVTPS2DQ_RD_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2DQ.RD_SAE zmm k zmm -// VCVTPS2DQ.RD_SAE zmm zmm -// -// Construct and append a VCVTPS2DQ.RD_SAE instruction to the active function. -func (c *Context) VCVTPS2DQ_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_RD_SAE(ops...)) -} - -// VCVTPS2DQ_RD_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2DQ.RD_SAE zmm k zmm -// VCVTPS2DQ.RD_SAE zmm zmm -// -// Construct and append a VCVTPS2DQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_RD_SAE(ops ...operand.Op) { ctx.VCVTPS2DQ_RD_SAE(ops...) } - -// VCVTPS2DQ_RD_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2DQ_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_RD_SAE_Z(z, k, z1)) -} - -// VCVTPS2DQ_RD_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPS2DQ_RD_SAE_Z(z, k, z1) } - -// VCVTPS2DQ_RN_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2DQ.RN_SAE zmm k zmm -// VCVTPS2DQ.RN_SAE zmm zmm -// -// Construct and append a VCVTPS2DQ.RN_SAE instruction to the active function. -func (c *Context) VCVTPS2DQ_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_RN_SAE(ops...)) -} - -// VCVTPS2DQ_RN_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2DQ.RN_SAE zmm k zmm -// VCVTPS2DQ.RN_SAE zmm zmm -// -// Construct and append a VCVTPS2DQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_RN_SAE(ops ...operand.Op) { ctx.VCVTPS2DQ_RN_SAE(ops...) } - -// VCVTPS2DQ_RN_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2DQ_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_RN_SAE_Z(z, k, z1)) -} - -// VCVTPS2DQ_RN_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPS2DQ_RN_SAE_Z(z, k, z1) } - -// VCVTPS2DQ_RU_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2DQ.RU_SAE zmm k zmm -// VCVTPS2DQ.RU_SAE zmm zmm -// -// Construct and append a VCVTPS2DQ.RU_SAE instruction to the active function. -func (c *Context) VCVTPS2DQ_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_RU_SAE(ops...)) -} - -// VCVTPS2DQ_RU_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2DQ.RU_SAE zmm k zmm -// VCVTPS2DQ.RU_SAE zmm zmm -// -// Construct and append a VCVTPS2DQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_RU_SAE(ops ...operand.Op) { ctx.VCVTPS2DQ_RU_SAE(ops...) } - -// VCVTPS2DQ_RU_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2DQ_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_RU_SAE_Z(z, k, z1)) -} - -// VCVTPS2DQ_RU_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPS2DQ_RU_SAE_Z(z, k, z1) } - -// VCVTPS2DQ_RZ_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPS2DQ.RZ_SAE zmm k zmm -// VCVTPS2DQ.RZ_SAE zmm zmm -// -// Construct and append a VCVTPS2DQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTPS2DQ_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_RZ_SAE(ops...)) -} - -// VCVTPS2DQ_RZ_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPS2DQ.RZ_SAE zmm k zmm -// VCVTPS2DQ.RZ_SAE zmm zmm -// -// Construct and append a VCVTPS2DQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_RZ_SAE(ops ...operand.Op) { ctx.VCVTPS2DQ_RZ_SAE(ops...) } - -// VCVTPS2DQ_RZ_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2DQ_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_RZ_SAE_Z(z, k, z1)) -} - -// VCVTPS2DQ_RZ_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPS2DQ_RZ_SAE_Z(z, k, z1) } - -// VCVTPS2DQ_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.Z m128 k xmm -// VCVTPS2DQ.Z m256 k ymm -// VCVTPS2DQ.Z xmm k xmm -// VCVTPS2DQ.Z ymm k ymm -// VCVTPS2DQ.Z m512 k zmm -// VCVTPS2DQ.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.Z instruction to the active function. -func (c *Context) VCVTPS2DQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2DQ_Z(mxyz, k, xyz)) -} - -// VCVTPS2DQ_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.Z m128 k xmm -// VCVTPS2DQ.Z m256 k ymm -// VCVTPS2DQ.Z xmm k xmm -// VCVTPS2DQ.Z ymm k ymm -// VCVTPS2DQ.Z m512 k zmm -// VCVTPS2DQ.Z zmm k zmm -// -// Construct and append a VCVTPS2DQ.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2DQ_Z(mxyz, k, xyz operand.Op) { ctx.VCVTPS2DQ_Z(mxyz, k, xyz) } - -// VCVTPS2PD: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values. -// -// Forms: -// -// VCVTPS2PD m128 ymm -// VCVTPS2PD m64 xmm -// VCVTPS2PD xmm xmm -// VCVTPS2PD xmm ymm -// VCVTPS2PD m64 k xmm -// VCVTPS2PD xmm k xmm -// VCVTPS2PD m256 k zmm -// VCVTPS2PD m256 zmm -// VCVTPS2PD ymm k zmm -// VCVTPS2PD ymm zmm -// VCVTPS2PD m128 k ymm -// VCVTPS2PD xmm k ymm -// -// Construct and append a VCVTPS2PD instruction to the active function. -func (c *Context) VCVTPS2PD(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2PD(ops...)) -} - -// VCVTPS2PD: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values. -// -// Forms: -// -// VCVTPS2PD m128 ymm -// VCVTPS2PD m64 xmm -// VCVTPS2PD xmm xmm -// VCVTPS2PD xmm ymm -// VCVTPS2PD m64 k xmm -// VCVTPS2PD xmm k xmm -// VCVTPS2PD m256 k zmm -// VCVTPS2PD m256 zmm -// VCVTPS2PD ymm k zmm -// VCVTPS2PD ymm zmm -// VCVTPS2PD m128 k ymm -// VCVTPS2PD xmm k ymm -// -// Construct and append a VCVTPS2PD instruction to the active function. -// Operates on the global context. -func VCVTPS2PD(ops ...operand.Op) { ctx.VCVTPS2PD(ops...) } - -// VCVTPS2PD_BCST: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPS2PD.BCST m32 k xmm -// VCVTPS2PD.BCST m32 xmm -// VCVTPS2PD.BCST m32 k zmm -// VCVTPS2PD.BCST m32 zmm -// VCVTPS2PD.BCST m32 k ymm -// VCVTPS2PD.BCST m32 ymm -// -// Construct and append a VCVTPS2PD.BCST instruction to the active function. -func (c *Context) VCVTPS2PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2PD_BCST(ops...)) -} - -// VCVTPS2PD_BCST: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPS2PD.BCST m32 k xmm -// VCVTPS2PD.BCST m32 xmm -// VCVTPS2PD.BCST m32 k zmm -// VCVTPS2PD.BCST m32 zmm -// VCVTPS2PD.BCST m32 k ymm -// VCVTPS2PD.BCST m32 ymm -// -// Construct and append a VCVTPS2PD.BCST instruction to the active function. -// Operates on the global context. -func VCVTPS2PD_BCST(ops ...operand.Op) { ctx.VCVTPS2PD_BCST(ops...) } - -// VCVTPS2PD_BCST_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2PD.BCST.Z m32 k xmm -// VCVTPS2PD.BCST.Z m32 k zmm -// VCVTPS2PD.BCST.Z m32 k ymm -// -// Construct and append a VCVTPS2PD.BCST.Z instruction to the active function. -func (c *Context) VCVTPS2PD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2PD_BCST_Z(m, k, xyz)) -} - -// VCVTPS2PD_BCST_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2PD.BCST.Z m32 k xmm -// VCVTPS2PD.BCST.Z m32 k zmm -// VCVTPS2PD.BCST.Z m32 k ymm -// -// Construct and append a VCVTPS2PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2PD_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTPS2PD_BCST_Z(m, k, xyz) } - -// VCVTPS2PD_SAE: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTPS2PD.SAE ymm k zmm -// VCVTPS2PD.SAE ymm zmm -// -// Construct and append a VCVTPS2PD.SAE instruction to the active function. -func (c *Context) VCVTPS2PD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2PD_SAE(ops...)) -} - -// VCVTPS2PD_SAE: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTPS2PD.SAE ymm k zmm -// VCVTPS2PD.SAE ymm zmm -// -// Construct and append a VCVTPS2PD.SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2PD_SAE(ops ...operand.Op) { ctx.VCVTPS2PD_SAE(ops...) } - -// VCVTPS2PD_SAE_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTPS2PD.SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2PD.SAE.Z instruction to the active function. -func (c *Context) VCVTPS2PD_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPS2PD_SAE_Z(y, k, z)) -} - -// VCVTPS2PD_SAE_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTPS2PD.SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2PD.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2PD_SAE_Z(y, k, z operand.Op) { ctx.VCVTPS2PD_SAE_Z(y, k, z) } - -// VCVTPS2PD_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2PD.Z m64 k xmm -// VCVTPS2PD.Z xmm k xmm -// VCVTPS2PD.Z m256 k zmm -// VCVTPS2PD.Z ymm k zmm -// VCVTPS2PD.Z m128 k ymm -// VCVTPS2PD.Z xmm k ymm -// -// Construct and append a VCVTPS2PD.Z instruction to the active function. -func (c *Context) VCVTPS2PD_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2PD_Z(mxy, k, xyz)) -} - -// VCVTPS2PD_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2PD.Z m64 k xmm -// VCVTPS2PD.Z xmm k xmm -// VCVTPS2PD.Z m256 k zmm -// VCVTPS2PD.Z ymm k zmm -// VCVTPS2PD.Z m128 k ymm -// VCVTPS2PD.Z xmm k ymm -// -// Construct and append a VCVTPS2PD.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2PD_Z(mxy, k, xyz operand.Op) { ctx.VCVTPS2PD_Z(mxy, k, xyz) } - -// VCVTPS2PH: Convert Single-Precision FP value to Half-Precision FP value. -// -// Forms: -// -// VCVTPS2PH imm8 xmm m64 -// VCVTPS2PH imm8 xmm xmm -// VCVTPS2PH imm8 ymm m128 -// VCVTPS2PH imm8 ymm xmm -// VCVTPS2PH imm8 xmm k m64 -// VCVTPS2PH imm8 xmm k xmm -// VCVTPS2PH imm8 ymm k m128 -// VCVTPS2PH imm8 ymm k xmm -// VCVTPS2PH imm8 zmm k m256 -// VCVTPS2PH imm8 zmm k ymm -// VCVTPS2PH imm8 zmm m256 -// VCVTPS2PH imm8 zmm ymm -// -// Construct and append a VCVTPS2PH instruction to the active function. -func (c *Context) VCVTPS2PH(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2PH(ops...)) -} - -// VCVTPS2PH: Convert Single-Precision FP value to Half-Precision FP value. -// -// Forms: -// -// VCVTPS2PH imm8 xmm m64 -// VCVTPS2PH imm8 xmm xmm -// VCVTPS2PH imm8 ymm m128 -// VCVTPS2PH imm8 ymm xmm -// VCVTPS2PH imm8 xmm k m64 -// VCVTPS2PH imm8 xmm k xmm -// VCVTPS2PH imm8 ymm k m128 -// VCVTPS2PH imm8 ymm k xmm -// VCVTPS2PH imm8 zmm k m256 -// VCVTPS2PH imm8 zmm k ymm -// VCVTPS2PH imm8 zmm m256 -// VCVTPS2PH imm8 zmm ymm -// -// Construct and append a VCVTPS2PH instruction to the active function. -// Operates on the global context. -func VCVTPS2PH(ops ...operand.Op) { ctx.VCVTPS2PH(ops...) } - -// VCVTPS2PH_SAE: Convert Single-Precision FP value to Half-Precision FP value (Suppress All Exceptions). -// -// Forms: -// -// VCVTPS2PH.SAE imm8 zmm k ymm -// VCVTPS2PH.SAE imm8 zmm ymm -// -// Construct and append a VCVTPS2PH.SAE instruction to the active function. -func (c *Context) VCVTPS2PH_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2PH_SAE(ops...)) -} - -// VCVTPS2PH_SAE: Convert Single-Precision FP value to Half-Precision FP value (Suppress All Exceptions). -// -// Forms: -// -// VCVTPS2PH.SAE imm8 zmm k ymm -// VCVTPS2PH.SAE imm8 zmm ymm -// -// Construct and append a VCVTPS2PH.SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2PH_SAE(ops ...operand.Op) { ctx.VCVTPS2PH_SAE(ops...) } - -// VCVTPS2PH_SAE_Z: Convert Single-Precision FP value to Half-Precision FP value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTPS2PH.SAE.Z imm8 zmm k ymm -// -// Construct and append a VCVTPS2PH.SAE.Z instruction to the active function. -func (c *Context) VCVTPS2PH_SAE_Z(i, z, k, y operand.Op) { - c.addinstruction(x86.VCVTPS2PH_SAE_Z(i, z, k, y)) -} - -// VCVTPS2PH_SAE_Z: Convert Single-Precision FP value to Half-Precision FP value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTPS2PH.SAE.Z imm8 zmm k ymm -// -// Construct and append a VCVTPS2PH.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2PH_SAE_Z(i, z, k, y operand.Op) { ctx.VCVTPS2PH_SAE_Z(i, z, k, y) } - -// VCVTPS2PH_Z: Convert Single-Precision FP value to Half-Precision FP value (Zeroing Masking). -// -// Forms: -// -// VCVTPS2PH.Z imm8 xmm k m64 -// VCVTPS2PH.Z imm8 xmm k xmm -// VCVTPS2PH.Z imm8 ymm k m128 -// VCVTPS2PH.Z imm8 ymm k xmm -// VCVTPS2PH.Z imm8 zmm k m256 -// VCVTPS2PH.Z imm8 zmm k ymm -// -// Construct and append a VCVTPS2PH.Z instruction to the active function. -func (c *Context) VCVTPS2PH_Z(i, xyz, k, mxy operand.Op) { - c.addinstruction(x86.VCVTPS2PH_Z(i, xyz, k, mxy)) -} - -// VCVTPS2PH_Z: Convert Single-Precision FP value to Half-Precision FP value (Zeroing Masking). -// -// Forms: -// -// VCVTPS2PH.Z imm8 xmm k m64 -// VCVTPS2PH.Z imm8 xmm k xmm -// VCVTPS2PH.Z imm8 ymm k m128 -// VCVTPS2PH.Z imm8 ymm k xmm -// VCVTPS2PH.Z imm8 zmm k m256 -// VCVTPS2PH.Z imm8 zmm k ymm -// -// Construct and append a VCVTPS2PH.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2PH_Z(i, xyz, k, mxy operand.Op) { ctx.VCVTPS2PH_Z(i, xyz, k, mxy) } - -// VCVTPS2QQ: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values. -// -// Forms: -// -// VCVTPS2QQ m128 k ymm -// VCVTPS2QQ m128 ymm -// VCVTPS2QQ m64 k xmm -// VCVTPS2QQ m64 xmm -// VCVTPS2QQ xmm k xmm -// VCVTPS2QQ xmm k ymm -// VCVTPS2QQ xmm xmm -// VCVTPS2QQ xmm ymm -// VCVTPS2QQ m256 k zmm -// VCVTPS2QQ m256 zmm -// VCVTPS2QQ ymm k zmm -// VCVTPS2QQ ymm zmm -// -// Construct and append a VCVTPS2QQ instruction to the active function. -func (c *Context) VCVTPS2QQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2QQ(ops...)) -} - -// VCVTPS2QQ: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values. -// -// Forms: -// -// VCVTPS2QQ m128 k ymm -// VCVTPS2QQ m128 ymm -// VCVTPS2QQ m64 k xmm -// VCVTPS2QQ m64 xmm -// VCVTPS2QQ xmm k xmm -// VCVTPS2QQ xmm k ymm -// VCVTPS2QQ xmm xmm -// VCVTPS2QQ xmm ymm -// VCVTPS2QQ m256 k zmm -// VCVTPS2QQ m256 zmm -// VCVTPS2QQ ymm k zmm -// VCVTPS2QQ ymm zmm -// -// Construct and append a VCVTPS2QQ instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ(ops ...operand.Op) { ctx.VCVTPS2QQ(ops...) } - -// VCVTPS2QQ_BCST: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTPS2QQ.BCST m32 k xmm -// VCVTPS2QQ.BCST m32 k ymm -// VCVTPS2QQ.BCST m32 xmm -// VCVTPS2QQ.BCST m32 ymm -// VCVTPS2QQ.BCST m32 k zmm -// VCVTPS2QQ.BCST m32 zmm -// -// Construct and append a VCVTPS2QQ.BCST instruction to the active function. -func (c *Context) VCVTPS2QQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_BCST(ops...)) -} - -// VCVTPS2QQ_BCST: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTPS2QQ.BCST m32 k xmm -// VCVTPS2QQ.BCST m32 k ymm -// VCVTPS2QQ.BCST m32 xmm -// VCVTPS2QQ.BCST m32 ymm -// VCVTPS2QQ.BCST m32 k zmm -// VCVTPS2QQ.BCST m32 zmm -// -// Construct and append a VCVTPS2QQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_BCST(ops ...operand.Op) { ctx.VCVTPS2QQ_BCST(ops...) } - -// VCVTPS2QQ_BCST_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.BCST.Z m32 k xmm -// VCVTPS2QQ.BCST.Z m32 k ymm -// VCVTPS2QQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTPS2QQ.BCST.Z instruction to the active function. -func (c *Context) VCVTPS2QQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_BCST_Z(m, k, xyz)) -} - -// VCVTPS2QQ_BCST_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.BCST.Z m32 k xmm -// VCVTPS2QQ.BCST.Z m32 k ymm -// VCVTPS2QQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTPS2QQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTPS2QQ_BCST_Z(m, k, xyz) } - -// VCVTPS2QQ_RD_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2QQ.RD_SAE ymm k zmm -// VCVTPS2QQ.RD_SAE ymm zmm -// -// Construct and append a VCVTPS2QQ.RD_SAE instruction to the active function. -func (c *Context) VCVTPS2QQ_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_RD_SAE(ops...)) -} - -// VCVTPS2QQ_RD_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2QQ.RD_SAE ymm k zmm -// VCVTPS2QQ.RD_SAE ymm zmm -// -// Construct and append a VCVTPS2QQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_RD_SAE(ops ...operand.Op) { ctx.VCVTPS2QQ_RD_SAE(ops...) } - -// VCVTPS2QQ_RD_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RD_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2QQ_RD_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_RD_SAE_Z(y, k, z)) -} - -// VCVTPS2QQ_RD_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RD_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_RD_SAE_Z(y, k, z operand.Op) { ctx.VCVTPS2QQ_RD_SAE_Z(y, k, z) } - -// VCVTPS2QQ_RN_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2QQ.RN_SAE ymm k zmm -// VCVTPS2QQ.RN_SAE ymm zmm -// -// Construct and append a VCVTPS2QQ.RN_SAE instruction to the active function. -func (c *Context) VCVTPS2QQ_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_RN_SAE(ops...)) -} - -// VCVTPS2QQ_RN_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2QQ.RN_SAE ymm k zmm -// VCVTPS2QQ.RN_SAE ymm zmm -// -// Construct and append a VCVTPS2QQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_RN_SAE(ops ...operand.Op) { ctx.VCVTPS2QQ_RN_SAE(ops...) } - -// VCVTPS2QQ_RN_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RN_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2QQ_RN_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_RN_SAE_Z(y, k, z)) -} - -// VCVTPS2QQ_RN_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RN_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_RN_SAE_Z(y, k, z operand.Op) { ctx.VCVTPS2QQ_RN_SAE_Z(y, k, z) } - -// VCVTPS2QQ_RU_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2QQ.RU_SAE ymm k zmm -// VCVTPS2QQ.RU_SAE ymm zmm -// -// Construct and append a VCVTPS2QQ.RU_SAE instruction to the active function. -func (c *Context) VCVTPS2QQ_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_RU_SAE(ops...)) -} - -// VCVTPS2QQ_RU_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2QQ.RU_SAE ymm k zmm -// VCVTPS2QQ.RU_SAE ymm zmm -// -// Construct and append a VCVTPS2QQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_RU_SAE(ops ...operand.Op) { ctx.VCVTPS2QQ_RU_SAE(ops...) } - -// VCVTPS2QQ_RU_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RU_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2QQ_RU_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_RU_SAE_Z(y, k, z)) -} - -// VCVTPS2QQ_RU_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RU_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_RU_SAE_Z(y, k, z operand.Op) { ctx.VCVTPS2QQ_RU_SAE_Z(y, k, z) } - -// VCVTPS2QQ_RZ_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Zero). -// -// Forms: -// -// VCVTPS2QQ.RZ_SAE ymm k zmm -// VCVTPS2QQ.RZ_SAE ymm zmm -// -// Construct and append a VCVTPS2QQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTPS2QQ_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_RZ_SAE(ops...)) -} - -// VCVTPS2QQ_RZ_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Zero). -// -// Forms: -// -// VCVTPS2QQ.RZ_SAE ymm k zmm -// VCVTPS2QQ.RZ_SAE ymm zmm -// -// Construct and append a VCVTPS2QQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_RZ_SAE(ops ...operand.Op) { ctx.VCVTPS2QQ_RZ_SAE(ops...) } - -// VCVTPS2QQ_RZ_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RZ_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2QQ_RZ_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_RZ_SAE_Z(y, k, z)) -} - -// VCVTPS2QQ_RZ_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RZ_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_RZ_SAE_Z(y, k, z operand.Op) { ctx.VCVTPS2QQ_RZ_SAE_Z(y, k, z) } - -// VCVTPS2QQ_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.Z m128 k ymm -// VCVTPS2QQ.Z m64 k xmm -// VCVTPS2QQ.Z xmm k xmm -// VCVTPS2QQ.Z xmm k ymm -// VCVTPS2QQ.Z m256 k zmm -// VCVTPS2QQ.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.Z instruction to the active function. -func (c *Context) VCVTPS2QQ_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2QQ_Z(mxy, k, xyz)) -} - -// VCVTPS2QQ_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.Z m128 k ymm -// VCVTPS2QQ.Z m64 k xmm -// VCVTPS2QQ.Z xmm k xmm -// VCVTPS2QQ.Z xmm k ymm -// VCVTPS2QQ.Z m256 k zmm -// VCVTPS2QQ.Z ymm k zmm -// -// Construct and append a VCVTPS2QQ.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2QQ_Z(mxy, k, xyz operand.Op) { ctx.VCVTPS2QQ_Z(mxy, k, xyz) } - -// VCVTPS2UDQ: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values. -// -// Forms: -// -// VCVTPS2UDQ m128 k xmm -// VCVTPS2UDQ m128 xmm -// VCVTPS2UDQ m256 k ymm -// VCVTPS2UDQ m256 ymm -// VCVTPS2UDQ xmm k xmm -// VCVTPS2UDQ xmm xmm -// VCVTPS2UDQ ymm k ymm -// VCVTPS2UDQ ymm ymm -// VCVTPS2UDQ m512 k zmm -// VCVTPS2UDQ m512 zmm -// VCVTPS2UDQ zmm k zmm -// VCVTPS2UDQ zmm zmm -// -// Construct and append a VCVTPS2UDQ instruction to the active function. -func (c *Context) VCVTPS2UDQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ(ops...)) -} - -// VCVTPS2UDQ: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values. -// -// Forms: -// -// VCVTPS2UDQ m128 k xmm -// VCVTPS2UDQ m128 xmm -// VCVTPS2UDQ m256 k ymm -// VCVTPS2UDQ m256 ymm -// VCVTPS2UDQ xmm k xmm -// VCVTPS2UDQ xmm xmm -// VCVTPS2UDQ ymm k ymm -// VCVTPS2UDQ ymm ymm -// VCVTPS2UDQ m512 k zmm -// VCVTPS2UDQ m512 zmm -// VCVTPS2UDQ zmm k zmm -// VCVTPS2UDQ zmm zmm -// -// Construct and append a VCVTPS2UDQ instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ(ops ...operand.Op) { ctx.VCVTPS2UDQ(ops...) } - -// VCVTPS2UDQ_BCST: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast). -// -// Forms: -// -// VCVTPS2UDQ.BCST m32 k xmm -// VCVTPS2UDQ.BCST m32 k ymm -// VCVTPS2UDQ.BCST m32 xmm -// VCVTPS2UDQ.BCST m32 ymm -// VCVTPS2UDQ.BCST m32 k zmm -// VCVTPS2UDQ.BCST m32 zmm -// -// Construct and append a VCVTPS2UDQ.BCST instruction to the active function. -func (c *Context) VCVTPS2UDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_BCST(ops...)) -} - -// VCVTPS2UDQ_BCST: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast). -// -// Forms: -// -// VCVTPS2UDQ.BCST m32 k xmm -// VCVTPS2UDQ.BCST m32 k ymm -// VCVTPS2UDQ.BCST m32 xmm -// VCVTPS2UDQ.BCST m32 ymm -// VCVTPS2UDQ.BCST m32 k zmm -// VCVTPS2UDQ.BCST m32 zmm -// -// Construct and append a VCVTPS2UDQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_BCST(ops ...operand.Op) { ctx.VCVTPS2UDQ_BCST(ops...) } - -// VCVTPS2UDQ_BCST_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.BCST.Z m32 k xmm -// VCVTPS2UDQ.BCST.Z m32 k ymm -// VCVTPS2UDQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTPS2UDQ.BCST.Z instruction to the active function. -func (c *Context) VCVTPS2UDQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_BCST_Z(m, k, xyz)) -} - -// VCVTPS2UDQ_BCST_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.BCST.Z m32 k xmm -// VCVTPS2UDQ.BCST.Z m32 k ymm -// VCVTPS2UDQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTPS2UDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTPS2UDQ_BCST_Z(m, k, xyz) } - -// VCVTPS2UDQ_RD_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2UDQ.RD_SAE zmm k zmm -// VCVTPS2UDQ.RD_SAE zmm zmm -// -// Construct and append a VCVTPS2UDQ.RD_SAE instruction to the active function. -func (c *Context) VCVTPS2UDQ_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_RD_SAE(ops...)) -} - -// VCVTPS2UDQ_RD_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2UDQ.RD_SAE zmm k zmm -// VCVTPS2UDQ.RD_SAE zmm zmm -// -// Construct and append a VCVTPS2UDQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_RD_SAE(ops ...operand.Op) { ctx.VCVTPS2UDQ_RD_SAE(ops...) } - -// VCVTPS2UDQ_RD_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2UDQ_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_RD_SAE_Z(z, k, z1)) -} - -// VCVTPS2UDQ_RD_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPS2UDQ_RD_SAE_Z(z, k, z1) } - -// VCVTPS2UDQ_RN_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2UDQ.RN_SAE zmm k zmm -// VCVTPS2UDQ.RN_SAE zmm zmm -// -// Construct and append a VCVTPS2UDQ.RN_SAE instruction to the active function. -func (c *Context) VCVTPS2UDQ_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_RN_SAE(ops...)) -} - -// VCVTPS2UDQ_RN_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2UDQ.RN_SAE zmm k zmm -// VCVTPS2UDQ.RN_SAE zmm zmm -// -// Construct and append a VCVTPS2UDQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_RN_SAE(ops ...operand.Op) { ctx.VCVTPS2UDQ_RN_SAE(ops...) } - -// VCVTPS2UDQ_RN_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2UDQ_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_RN_SAE_Z(z, k, z1)) -} - -// VCVTPS2UDQ_RN_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPS2UDQ_RN_SAE_Z(z, k, z1) } - -// VCVTPS2UDQ_RU_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2UDQ.RU_SAE zmm k zmm -// VCVTPS2UDQ.RU_SAE zmm zmm -// -// Construct and append a VCVTPS2UDQ.RU_SAE instruction to the active function. -func (c *Context) VCVTPS2UDQ_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_RU_SAE(ops...)) -} - -// VCVTPS2UDQ_RU_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2UDQ.RU_SAE zmm k zmm -// VCVTPS2UDQ.RU_SAE zmm zmm -// -// Construct and append a VCVTPS2UDQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_RU_SAE(ops ...operand.Op) { ctx.VCVTPS2UDQ_RU_SAE(ops...) } - -// VCVTPS2UDQ_RU_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2UDQ_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_RU_SAE_Z(z, k, z1)) -} - -// VCVTPS2UDQ_RU_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPS2UDQ_RU_SAE_Z(z, k, z1) } - -// VCVTPS2UDQ_RZ_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Zero). -// -// Forms: -// -// VCVTPS2UDQ.RZ_SAE zmm k zmm -// VCVTPS2UDQ.RZ_SAE zmm zmm -// -// Construct and append a VCVTPS2UDQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTPS2UDQ_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_RZ_SAE(ops...)) -} - -// VCVTPS2UDQ_RZ_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Zero). -// -// Forms: -// -// VCVTPS2UDQ.RZ_SAE zmm k zmm -// VCVTPS2UDQ.RZ_SAE zmm zmm -// -// Construct and append a VCVTPS2UDQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_RZ_SAE(ops ...operand.Op) { ctx.VCVTPS2UDQ_RZ_SAE(ops...) } - -// VCVTPS2UDQ_RZ_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2UDQ_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_RZ_SAE_Z(z, k, z1)) -} - -// VCVTPS2UDQ_RZ_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTPS2UDQ_RZ_SAE_Z(z, k, z1) } - -// VCVTPS2UDQ_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.Z m128 k xmm -// VCVTPS2UDQ.Z m256 k ymm -// VCVTPS2UDQ.Z xmm k xmm -// VCVTPS2UDQ.Z ymm k ymm -// VCVTPS2UDQ.Z m512 k zmm -// VCVTPS2UDQ.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.Z instruction to the active function. -func (c *Context) VCVTPS2UDQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2UDQ_Z(mxyz, k, xyz)) -} - -// VCVTPS2UDQ_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.Z m128 k xmm -// VCVTPS2UDQ.Z m256 k ymm -// VCVTPS2UDQ.Z xmm k xmm -// VCVTPS2UDQ.Z ymm k ymm -// VCVTPS2UDQ.Z m512 k zmm -// VCVTPS2UDQ.Z zmm k zmm -// -// Construct and append a VCVTPS2UDQ.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UDQ_Z(mxyz, k, xyz operand.Op) { ctx.VCVTPS2UDQ_Z(mxyz, k, xyz) } - -// VCVTPS2UQQ: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values. -// -// Forms: -// -// VCVTPS2UQQ m128 k ymm -// VCVTPS2UQQ m128 ymm -// VCVTPS2UQQ m64 k xmm -// VCVTPS2UQQ m64 xmm -// VCVTPS2UQQ xmm k xmm -// VCVTPS2UQQ xmm k ymm -// VCVTPS2UQQ xmm xmm -// VCVTPS2UQQ xmm ymm -// VCVTPS2UQQ m256 k zmm -// VCVTPS2UQQ m256 zmm -// VCVTPS2UQQ ymm k zmm -// VCVTPS2UQQ ymm zmm -// -// Construct and append a VCVTPS2UQQ instruction to the active function. -func (c *Context) VCVTPS2UQQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ(ops...)) -} - -// VCVTPS2UQQ: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values. -// -// Forms: -// -// VCVTPS2UQQ m128 k ymm -// VCVTPS2UQQ m128 ymm -// VCVTPS2UQQ m64 k xmm -// VCVTPS2UQQ m64 xmm -// VCVTPS2UQQ xmm k xmm -// VCVTPS2UQQ xmm k ymm -// VCVTPS2UQQ xmm xmm -// VCVTPS2UQQ xmm ymm -// VCVTPS2UQQ m256 k zmm -// VCVTPS2UQQ m256 zmm -// VCVTPS2UQQ ymm k zmm -// VCVTPS2UQQ ymm zmm -// -// Construct and append a VCVTPS2UQQ instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ(ops ...operand.Op) { ctx.VCVTPS2UQQ(ops...) } - -// VCVTPS2UQQ_BCST: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTPS2UQQ.BCST m32 k xmm -// VCVTPS2UQQ.BCST m32 k ymm -// VCVTPS2UQQ.BCST m32 xmm -// VCVTPS2UQQ.BCST m32 ymm -// VCVTPS2UQQ.BCST m32 k zmm -// VCVTPS2UQQ.BCST m32 zmm -// -// Construct and append a VCVTPS2UQQ.BCST instruction to the active function. -func (c *Context) VCVTPS2UQQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_BCST(ops...)) -} - -// VCVTPS2UQQ_BCST: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTPS2UQQ.BCST m32 k xmm -// VCVTPS2UQQ.BCST m32 k ymm -// VCVTPS2UQQ.BCST m32 xmm -// VCVTPS2UQQ.BCST m32 ymm -// VCVTPS2UQQ.BCST m32 k zmm -// VCVTPS2UQQ.BCST m32 zmm -// -// Construct and append a VCVTPS2UQQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_BCST(ops ...operand.Op) { ctx.VCVTPS2UQQ_BCST(ops...) } - -// VCVTPS2UQQ_BCST_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.BCST.Z m32 k xmm -// VCVTPS2UQQ.BCST.Z m32 k ymm -// VCVTPS2UQQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTPS2UQQ.BCST.Z instruction to the active function. -func (c *Context) VCVTPS2UQQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_BCST_Z(m, k, xyz)) -} - -// VCVTPS2UQQ_BCST_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.BCST.Z m32 k xmm -// VCVTPS2UQQ.BCST.Z m32 k ymm -// VCVTPS2UQQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTPS2UQQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTPS2UQQ_BCST_Z(m, k, xyz) } - -// VCVTPS2UQQ_RD_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2UQQ.RD_SAE ymm k zmm -// VCVTPS2UQQ.RD_SAE ymm zmm -// -// Construct and append a VCVTPS2UQQ.RD_SAE instruction to the active function. -func (c *Context) VCVTPS2UQQ_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_RD_SAE(ops...)) -} - -// VCVTPS2UQQ_RD_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2UQQ.RD_SAE ymm k zmm -// VCVTPS2UQQ.RD_SAE ymm zmm -// -// Construct and append a VCVTPS2UQQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_RD_SAE(ops ...operand.Op) { ctx.VCVTPS2UQQ_RD_SAE(ops...) } - -// VCVTPS2UQQ_RD_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RD_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2UQQ_RD_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_RD_SAE_Z(y, k, z)) -} - -// VCVTPS2UQQ_RD_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RD_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_RD_SAE_Z(y, k, z operand.Op) { ctx.VCVTPS2UQQ_RD_SAE_Z(y, k, z) } - -// VCVTPS2UQQ_RN_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2UQQ.RN_SAE ymm k zmm -// VCVTPS2UQQ.RN_SAE ymm zmm -// -// Construct and append a VCVTPS2UQQ.RN_SAE instruction to the active function. -func (c *Context) VCVTPS2UQQ_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_RN_SAE(ops...)) -} - -// VCVTPS2UQQ_RN_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2UQQ.RN_SAE ymm k zmm -// VCVTPS2UQQ.RN_SAE ymm zmm -// -// Construct and append a VCVTPS2UQQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_RN_SAE(ops ...operand.Op) { ctx.VCVTPS2UQQ_RN_SAE(ops...) } - -// VCVTPS2UQQ_RN_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RN_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2UQQ_RN_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_RN_SAE_Z(y, k, z)) -} - -// VCVTPS2UQQ_RN_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RN_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_RN_SAE_Z(y, k, z operand.Op) { ctx.VCVTPS2UQQ_RN_SAE_Z(y, k, z) } - -// VCVTPS2UQQ_RU_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2UQQ.RU_SAE ymm k zmm -// VCVTPS2UQQ.RU_SAE ymm zmm -// -// Construct and append a VCVTPS2UQQ.RU_SAE instruction to the active function. -func (c *Context) VCVTPS2UQQ_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_RU_SAE(ops...)) -} - -// VCVTPS2UQQ_RU_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2UQQ.RU_SAE ymm k zmm -// VCVTPS2UQQ.RU_SAE ymm zmm -// -// Construct and append a VCVTPS2UQQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_RU_SAE(ops ...operand.Op) { ctx.VCVTPS2UQQ_RU_SAE(ops...) } - -// VCVTPS2UQQ_RU_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RU_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2UQQ_RU_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_RU_SAE_Z(y, k, z)) -} - -// VCVTPS2UQQ_RU_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RU_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_RU_SAE_Z(y, k, z operand.Op) { ctx.VCVTPS2UQQ_RU_SAE_Z(y, k, z) } - -// VCVTPS2UQQ_RZ_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Zero). -// -// Forms: -// -// VCVTPS2UQQ.RZ_SAE ymm k zmm -// VCVTPS2UQQ.RZ_SAE ymm zmm -// -// Construct and append a VCVTPS2UQQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTPS2UQQ_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_RZ_SAE(ops...)) -} - -// VCVTPS2UQQ_RZ_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Zero). -// -// Forms: -// -// VCVTPS2UQQ.RZ_SAE ymm k zmm -// VCVTPS2UQQ.RZ_SAE ymm zmm -// -// Construct and append a VCVTPS2UQQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_RZ_SAE(ops ...operand.Op) { ctx.VCVTPS2UQQ_RZ_SAE(ops...) } - -// VCVTPS2UQQ_RZ_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RZ_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTPS2UQQ_RZ_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_RZ_SAE_Z(y, k, z)) -} - -// VCVTPS2UQQ_RZ_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RZ_SAE.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_RZ_SAE_Z(y, k, z operand.Op) { ctx.VCVTPS2UQQ_RZ_SAE_Z(y, k, z) } - -// VCVTPS2UQQ_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.Z m128 k ymm -// VCVTPS2UQQ.Z m64 k xmm -// VCVTPS2UQQ.Z xmm k xmm -// VCVTPS2UQQ.Z xmm k ymm -// VCVTPS2UQQ.Z m256 k zmm -// VCVTPS2UQQ.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.Z instruction to the active function. -func (c *Context) VCVTPS2UQQ_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VCVTPS2UQQ_Z(mxy, k, xyz)) -} - -// VCVTPS2UQQ_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.Z m128 k ymm -// VCVTPS2UQQ.Z m64 k xmm -// VCVTPS2UQQ.Z xmm k xmm -// VCVTPS2UQQ.Z xmm k ymm -// VCVTPS2UQQ.Z m256 k zmm -// VCVTPS2UQQ.Z ymm k zmm -// -// Construct and append a VCVTPS2UQQ.Z instruction to the active function. -// Operates on the global context. -func VCVTPS2UQQ_Z(mxy, k, xyz operand.Op) { ctx.VCVTPS2UQQ_Z(mxy, k, xyz) } - -// VCVTQQ2PD: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PD m128 k xmm -// VCVTQQ2PD m128 xmm -// VCVTQQ2PD m256 k ymm -// VCVTQQ2PD m256 ymm -// VCVTQQ2PD xmm k xmm -// VCVTQQ2PD xmm xmm -// VCVTQQ2PD ymm k ymm -// VCVTQQ2PD ymm ymm -// VCVTQQ2PD m512 k zmm -// VCVTQQ2PD m512 zmm -// VCVTQQ2PD zmm k zmm -// VCVTQQ2PD zmm zmm -// -// Construct and append a VCVTQQ2PD instruction to the active function. -func (c *Context) VCVTQQ2PD(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PD(ops...)) -} - -// VCVTQQ2PD: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PD m128 k xmm -// VCVTQQ2PD m128 xmm -// VCVTQQ2PD m256 k ymm -// VCVTQQ2PD m256 ymm -// VCVTQQ2PD xmm k xmm -// VCVTQQ2PD xmm xmm -// VCVTQQ2PD ymm k ymm -// VCVTQQ2PD ymm ymm -// VCVTQQ2PD m512 k zmm -// VCVTQQ2PD m512 zmm -// VCVTQQ2PD zmm k zmm -// VCVTQQ2PD zmm zmm -// -// Construct and append a VCVTQQ2PD instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD(ops ...operand.Op) { ctx.VCVTQQ2PD(ops...) } - -// VCVTQQ2PD_BCST: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PD.BCST m64 k xmm -// VCVTQQ2PD.BCST m64 k ymm -// VCVTQQ2PD.BCST m64 xmm -// VCVTQQ2PD.BCST m64 ymm -// VCVTQQ2PD.BCST m64 k zmm -// VCVTQQ2PD.BCST m64 zmm -// -// Construct and append a VCVTQQ2PD.BCST instruction to the active function. -func (c *Context) VCVTQQ2PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_BCST(ops...)) -} - -// VCVTQQ2PD_BCST: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PD.BCST m64 k xmm -// VCVTQQ2PD.BCST m64 k ymm -// VCVTQQ2PD.BCST m64 xmm -// VCVTQQ2PD.BCST m64 ymm -// VCVTQQ2PD.BCST m64 k zmm -// VCVTQQ2PD.BCST m64 zmm -// -// Construct and append a VCVTQQ2PD.BCST instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_BCST(ops ...operand.Op) { ctx.VCVTQQ2PD_BCST(ops...) } - -// VCVTQQ2PD_BCST_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.BCST.Z m64 k xmm -// VCVTQQ2PD.BCST.Z m64 k ymm -// VCVTQQ2PD.BCST.Z m64 k zmm -// -// Construct and append a VCVTQQ2PD.BCST.Z instruction to the active function. -func (c *Context) VCVTQQ2PD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_BCST_Z(m, k, xyz)) -} - -// VCVTQQ2PD_BCST_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.BCST.Z m64 k xmm -// VCVTQQ2PD.BCST.Z m64 k ymm -// VCVTQQ2PD.BCST.Z m64 k zmm -// -// Construct and append a VCVTQQ2PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTQQ2PD_BCST_Z(m, k, xyz) } - -// VCVTQQ2PD_RD_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTQQ2PD.RD_SAE zmm k zmm -// VCVTQQ2PD.RD_SAE zmm zmm -// -// Construct and append a VCVTQQ2PD.RD_SAE instruction to the active function. -func (c *Context) VCVTQQ2PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_RD_SAE(ops...)) -} - -// VCVTQQ2PD_RD_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTQQ2PD.RD_SAE zmm k zmm -// VCVTQQ2PD.RD_SAE zmm zmm -// -// Construct and append a VCVTQQ2PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_RD_SAE(ops ...operand.Op) { ctx.VCVTQQ2PD_RD_SAE(ops...) } - -// VCVTQQ2PD_RD_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTQQ2PD_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_RD_SAE_Z(z, k, z1)) -} - -// VCVTQQ2PD_RD_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTQQ2PD_RD_SAE_Z(z, k, z1) } - -// VCVTQQ2PD_RN_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTQQ2PD.RN_SAE zmm k zmm -// VCVTQQ2PD.RN_SAE zmm zmm -// -// Construct and append a VCVTQQ2PD.RN_SAE instruction to the active function. -func (c *Context) VCVTQQ2PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_RN_SAE(ops...)) -} - -// VCVTQQ2PD_RN_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTQQ2PD.RN_SAE zmm k zmm -// VCVTQQ2PD.RN_SAE zmm zmm -// -// Construct and append a VCVTQQ2PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_RN_SAE(ops ...operand.Op) { ctx.VCVTQQ2PD_RN_SAE(ops...) } - -// VCVTQQ2PD_RN_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTQQ2PD_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_RN_SAE_Z(z, k, z1)) -} - -// VCVTQQ2PD_RN_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTQQ2PD_RN_SAE_Z(z, k, z1) } - -// VCVTQQ2PD_RU_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTQQ2PD.RU_SAE zmm k zmm -// VCVTQQ2PD.RU_SAE zmm zmm -// -// Construct and append a VCVTQQ2PD.RU_SAE instruction to the active function. -func (c *Context) VCVTQQ2PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_RU_SAE(ops...)) -} - -// VCVTQQ2PD_RU_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTQQ2PD.RU_SAE zmm k zmm -// VCVTQQ2PD.RU_SAE zmm zmm -// -// Construct and append a VCVTQQ2PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_RU_SAE(ops ...operand.Op) { ctx.VCVTQQ2PD_RU_SAE(ops...) } - -// VCVTQQ2PD_RU_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTQQ2PD_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_RU_SAE_Z(z, k, z1)) -} - -// VCVTQQ2PD_RU_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTQQ2PD_RU_SAE_Z(z, k, z1) } - -// VCVTQQ2PD_RZ_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTQQ2PD.RZ_SAE zmm k zmm -// VCVTQQ2PD.RZ_SAE zmm zmm -// -// Construct and append a VCVTQQ2PD.RZ_SAE instruction to the active function. -func (c *Context) VCVTQQ2PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_RZ_SAE(ops...)) -} - -// VCVTQQ2PD_RZ_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTQQ2PD.RZ_SAE zmm k zmm -// VCVTQQ2PD.RZ_SAE zmm zmm -// -// Construct and append a VCVTQQ2PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_RZ_SAE(ops ...operand.Op) { ctx.VCVTQQ2PD_RZ_SAE(ops...) } - -// VCVTQQ2PD_RZ_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTQQ2PD_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_RZ_SAE_Z(z, k, z1)) -} - -// VCVTQQ2PD_RZ_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTQQ2PD_RZ_SAE_Z(z, k, z1) } - -// VCVTQQ2PD_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.Z m128 k xmm -// VCVTQQ2PD.Z m256 k ymm -// VCVTQQ2PD.Z xmm k xmm -// VCVTQQ2PD.Z ymm k ymm -// VCVTQQ2PD.Z m512 k zmm -// VCVTQQ2PD.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.Z instruction to the active function. -func (c *Context) VCVTQQ2PD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTQQ2PD_Z(mxyz, k, xyz)) -} - -// VCVTQQ2PD_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.Z m128 k xmm -// VCVTQQ2PD.Z m256 k ymm -// VCVTQQ2PD.Z xmm k xmm -// VCVTQQ2PD.Z ymm k ymm -// VCVTQQ2PD.Z m512 k zmm -// VCVTQQ2PD.Z zmm k zmm -// -// Construct and append a VCVTQQ2PD.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PD_Z(mxyz, k, xyz operand.Op) { ctx.VCVTQQ2PD_Z(mxyz, k, xyz) } - -// VCVTQQ2PS: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PS m512 k ymm -// VCVTQQ2PS m512 ymm -// VCVTQQ2PS zmm k ymm -// VCVTQQ2PS zmm ymm -// -// Construct and append a VCVTQQ2PS instruction to the active function. -func (c *Context) VCVTQQ2PS(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PS(ops...)) -} - -// VCVTQQ2PS: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PS m512 k ymm -// VCVTQQ2PS m512 ymm -// VCVTQQ2PS zmm k ymm -// VCVTQQ2PS zmm ymm -// -// Construct and append a VCVTQQ2PS instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS(ops ...operand.Op) { ctx.VCVTQQ2PS(ops...) } - -// VCVTQQ2PSX: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PSX m128 k xmm -// VCVTQQ2PSX m128 xmm -// VCVTQQ2PSX xmm k xmm -// VCVTQQ2PSX xmm xmm -// -// Construct and append a VCVTQQ2PSX instruction to the active function. -func (c *Context) VCVTQQ2PSX(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PSX(ops...)) -} - -// VCVTQQ2PSX: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PSX m128 k xmm -// VCVTQQ2PSX m128 xmm -// VCVTQQ2PSX xmm k xmm -// VCVTQQ2PSX xmm xmm -// -// Construct and append a VCVTQQ2PSX instruction to the active function. -// Operates on the global context. -func VCVTQQ2PSX(ops ...operand.Op) { ctx.VCVTQQ2PSX(ops...) } - -// VCVTQQ2PSX_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PSX.BCST m64 k xmm -// VCVTQQ2PSX.BCST m64 xmm -// -// Construct and append a VCVTQQ2PSX.BCST instruction to the active function. -func (c *Context) VCVTQQ2PSX_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PSX_BCST(ops...)) -} - -// VCVTQQ2PSX_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PSX.BCST m64 k xmm -// VCVTQQ2PSX.BCST m64 xmm -// -// Construct and append a VCVTQQ2PSX.BCST instruction to the active function. -// Operates on the global context. -func VCVTQQ2PSX_BCST(ops ...operand.Op) { ctx.VCVTQQ2PSX_BCST(ops...) } - -// VCVTQQ2PSX_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSX.BCST.Z m64 k xmm -// -// Construct and append a VCVTQQ2PSX.BCST.Z instruction to the active function. -func (c *Context) VCVTQQ2PSX_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTQQ2PSX_BCST_Z(m, k, x)) -} - -// VCVTQQ2PSX_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSX.BCST.Z m64 k xmm -// -// Construct and append a VCVTQQ2PSX.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PSX_BCST_Z(m, k, x operand.Op) { ctx.VCVTQQ2PSX_BCST_Z(m, k, x) } - -// VCVTQQ2PSX_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSX.Z m128 k xmm -// VCVTQQ2PSX.Z xmm k xmm -// -// Construct and append a VCVTQQ2PSX.Z instruction to the active function. -func (c *Context) VCVTQQ2PSX_Z(mx, k, x operand.Op) { - c.addinstruction(x86.VCVTQQ2PSX_Z(mx, k, x)) -} - -// VCVTQQ2PSX_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSX.Z m128 k xmm -// VCVTQQ2PSX.Z xmm k xmm -// -// Construct and append a VCVTQQ2PSX.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PSX_Z(mx, k, x operand.Op) { ctx.VCVTQQ2PSX_Z(mx, k, x) } - -// VCVTQQ2PSY: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PSY m256 k xmm -// VCVTQQ2PSY m256 xmm -// VCVTQQ2PSY ymm k xmm -// VCVTQQ2PSY ymm xmm -// -// Construct and append a VCVTQQ2PSY instruction to the active function. -func (c *Context) VCVTQQ2PSY(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PSY(ops...)) -} - -// VCVTQQ2PSY: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PSY m256 k xmm -// VCVTQQ2PSY m256 xmm -// VCVTQQ2PSY ymm k xmm -// VCVTQQ2PSY ymm xmm -// -// Construct and append a VCVTQQ2PSY instruction to the active function. -// Operates on the global context. -func VCVTQQ2PSY(ops ...operand.Op) { ctx.VCVTQQ2PSY(ops...) } - -// VCVTQQ2PSY_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PSY.BCST m64 k xmm -// VCVTQQ2PSY.BCST m64 xmm -// -// Construct and append a VCVTQQ2PSY.BCST instruction to the active function. -func (c *Context) VCVTQQ2PSY_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PSY_BCST(ops...)) -} - -// VCVTQQ2PSY_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PSY.BCST m64 k xmm -// VCVTQQ2PSY.BCST m64 xmm -// -// Construct and append a VCVTQQ2PSY.BCST instruction to the active function. -// Operates on the global context. -func VCVTQQ2PSY_BCST(ops ...operand.Op) { ctx.VCVTQQ2PSY_BCST(ops...) } - -// VCVTQQ2PSY_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSY.BCST.Z m64 k xmm -// -// Construct and append a VCVTQQ2PSY.BCST.Z instruction to the active function. -func (c *Context) VCVTQQ2PSY_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTQQ2PSY_BCST_Z(m, k, x)) -} - -// VCVTQQ2PSY_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSY.BCST.Z m64 k xmm -// -// Construct and append a VCVTQQ2PSY.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PSY_BCST_Z(m, k, x operand.Op) { ctx.VCVTQQ2PSY_BCST_Z(m, k, x) } - -// VCVTQQ2PSY_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSY.Z m256 k xmm -// VCVTQQ2PSY.Z ymm k xmm -// -// Construct and append a VCVTQQ2PSY.Z instruction to the active function. -func (c *Context) VCVTQQ2PSY_Z(my, k, x operand.Op) { - c.addinstruction(x86.VCVTQQ2PSY_Z(my, k, x)) -} - -// VCVTQQ2PSY_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSY.Z m256 k xmm -// VCVTQQ2PSY.Z ymm k xmm -// -// Construct and append a VCVTQQ2PSY.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PSY_Z(my, k, x operand.Op) { ctx.VCVTQQ2PSY_Z(my, k, x) } - -// VCVTQQ2PS_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PS.BCST m64 k ymm -// VCVTQQ2PS.BCST m64 ymm -// -// Construct and append a VCVTQQ2PS.BCST instruction to the active function. -func (c *Context) VCVTQQ2PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_BCST(ops...)) -} - -// VCVTQQ2PS_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PS.BCST m64 k ymm -// VCVTQQ2PS.BCST m64 ymm -// -// Construct and append a VCVTQQ2PS.BCST instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_BCST(ops ...operand.Op) { ctx.VCVTQQ2PS_BCST(ops...) } - -// VCVTQQ2PS_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.BCST.Z m64 k ymm -// -// Construct and append a VCVTQQ2PS.BCST.Z instruction to the active function. -func (c *Context) VCVTQQ2PS_BCST_Z(m, k, y operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_BCST_Z(m, k, y)) -} - -// VCVTQQ2PS_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.BCST.Z m64 k ymm -// -// Construct and append a VCVTQQ2PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_BCST_Z(m, k, y operand.Op) { ctx.VCVTQQ2PS_BCST_Z(m, k, y) } - -// VCVTQQ2PS_RD_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTQQ2PS.RD_SAE zmm k ymm -// VCVTQQ2PS.RD_SAE zmm ymm -// -// Construct and append a VCVTQQ2PS.RD_SAE instruction to the active function. -func (c *Context) VCVTQQ2PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_RD_SAE(ops...)) -} - -// VCVTQQ2PS_RD_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTQQ2PS.RD_SAE zmm k ymm -// VCVTQQ2PS.RD_SAE zmm ymm -// -// Construct and append a VCVTQQ2PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_RD_SAE(ops ...operand.Op) { ctx.VCVTQQ2PS_RD_SAE(ops...) } - -// VCVTQQ2PS_RD_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTQQ2PS_RD_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_RD_SAE_Z(z, k, y)) -} - -// VCVTQQ2PS_RD_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_RD_SAE_Z(z, k, y operand.Op) { ctx.VCVTQQ2PS_RD_SAE_Z(z, k, y) } - -// VCVTQQ2PS_RN_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTQQ2PS.RN_SAE zmm k ymm -// VCVTQQ2PS.RN_SAE zmm ymm -// -// Construct and append a VCVTQQ2PS.RN_SAE instruction to the active function. -func (c *Context) VCVTQQ2PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_RN_SAE(ops...)) -} - -// VCVTQQ2PS_RN_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTQQ2PS.RN_SAE zmm k ymm -// VCVTQQ2PS.RN_SAE zmm ymm -// -// Construct and append a VCVTQQ2PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_RN_SAE(ops ...operand.Op) { ctx.VCVTQQ2PS_RN_SAE(ops...) } - -// VCVTQQ2PS_RN_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTQQ2PS_RN_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_RN_SAE_Z(z, k, y)) -} - -// VCVTQQ2PS_RN_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_RN_SAE_Z(z, k, y operand.Op) { ctx.VCVTQQ2PS_RN_SAE_Z(z, k, y) } - -// VCVTQQ2PS_RU_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTQQ2PS.RU_SAE zmm k ymm -// VCVTQQ2PS.RU_SAE zmm ymm -// -// Construct and append a VCVTQQ2PS.RU_SAE instruction to the active function. -func (c *Context) VCVTQQ2PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_RU_SAE(ops...)) -} - -// VCVTQQ2PS_RU_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTQQ2PS.RU_SAE zmm k ymm -// VCVTQQ2PS.RU_SAE zmm ymm -// -// Construct and append a VCVTQQ2PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_RU_SAE(ops ...operand.Op) { ctx.VCVTQQ2PS_RU_SAE(ops...) } - -// VCVTQQ2PS_RU_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTQQ2PS_RU_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_RU_SAE_Z(z, k, y)) -} - -// VCVTQQ2PS_RU_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_RU_SAE_Z(z, k, y operand.Op) { ctx.VCVTQQ2PS_RU_SAE_Z(z, k, y) } - -// VCVTQQ2PS_RZ_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTQQ2PS.RZ_SAE zmm k ymm -// VCVTQQ2PS.RZ_SAE zmm ymm -// -// Construct and append a VCVTQQ2PS.RZ_SAE instruction to the active function. -func (c *Context) VCVTQQ2PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_RZ_SAE(ops...)) -} - -// VCVTQQ2PS_RZ_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTQQ2PS.RZ_SAE zmm k ymm -// VCVTQQ2PS.RZ_SAE zmm ymm -// -// Construct and append a VCVTQQ2PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_RZ_SAE(ops ...operand.Op) { ctx.VCVTQQ2PS_RZ_SAE(ops...) } - -// VCVTQQ2PS_RZ_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTQQ2PS_RZ_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_RZ_SAE_Z(z, k, y)) -} - -// VCVTQQ2PS_RZ_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_RZ_SAE_Z(z, k, y operand.Op) { ctx.VCVTQQ2PS_RZ_SAE_Z(z, k, y) } - -// VCVTQQ2PS_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.Z m512 k ymm -// VCVTQQ2PS.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.Z instruction to the active function. -func (c *Context) VCVTQQ2PS_Z(mz, k, y operand.Op) { - c.addinstruction(x86.VCVTQQ2PS_Z(mz, k, y)) -} - -// VCVTQQ2PS_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.Z m512 k ymm -// VCVTQQ2PS.Z zmm k ymm -// -// Construct and append a VCVTQQ2PS.Z instruction to the active function. -// Operates on the global context. -func VCVTQQ2PS_Z(mz, k, y operand.Op) { ctx.VCVTQQ2PS_Z(mz, k, y) } - -// VCVTSD2SI: Convert Scalar Double-Precision FP Value to Integer. -// -// Forms: -// -// VCVTSD2SI m64 r32 -// VCVTSD2SI xmm r32 -// -// Construct and append a VCVTSD2SI instruction to the active function. -func (c *Context) VCVTSD2SI(mx, r operand.Op) { - c.addinstruction(x86.VCVTSD2SI(mx, r)) -} - -// VCVTSD2SI: Convert Scalar Double-Precision FP Value to Integer. -// -// Forms: -// -// VCVTSD2SI m64 r32 -// VCVTSD2SI xmm r32 -// -// Construct and append a VCVTSD2SI instruction to the active function. -// Operates on the global context. -func VCVTSD2SI(mx, r operand.Op) { ctx.VCVTSD2SI(mx, r) } - -// VCVTSD2SIQ: Convert Scalar Double-Precision FP Value to Integer. -// -// Forms: -// -// VCVTSD2SIQ m64 r64 -// VCVTSD2SIQ xmm r64 -// -// Construct and append a VCVTSD2SIQ instruction to the active function. -func (c *Context) VCVTSD2SIQ(mx, r operand.Op) { - c.addinstruction(x86.VCVTSD2SIQ(mx, r)) -} - -// VCVTSD2SIQ: Convert Scalar Double-Precision FP Value to Integer. -// -// Forms: -// -// VCVTSD2SIQ m64 r64 -// VCVTSD2SIQ xmm r64 -// -// Construct and append a VCVTSD2SIQ instruction to the active function. -// Operates on the global context. -func VCVTSD2SIQ(mx, r operand.Op) { ctx.VCVTSD2SIQ(mx, r) } - -// VCVTSD2SIQ_RD_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2SIQ.RD_SAE xmm r64 -// -// Construct and append a VCVTSD2SIQ.RD_SAE instruction to the active function. -func (c *Context) VCVTSD2SIQ_RD_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2SIQ_RD_SAE(x, r)) -} - -// VCVTSD2SIQ_RD_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2SIQ.RD_SAE xmm r64 -// -// Construct and append a VCVTSD2SIQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SIQ_RD_SAE(x, r operand.Op) { ctx.VCVTSD2SIQ_RD_SAE(x, r) } - -// VCVTSD2SIQ_RN_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2SIQ.RN_SAE xmm r64 -// -// Construct and append a VCVTSD2SIQ.RN_SAE instruction to the active function. -func (c *Context) VCVTSD2SIQ_RN_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2SIQ_RN_SAE(x, r)) -} - -// VCVTSD2SIQ_RN_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2SIQ.RN_SAE xmm r64 -// -// Construct and append a VCVTSD2SIQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SIQ_RN_SAE(x, r operand.Op) { ctx.VCVTSD2SIQ_RN_SAE(x, r) } - -// VCVTSD2SIQ_RU_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2SIQ.RU_SAE xmm r64 -// -// Construct and append a VCVTSD2SIQ.RU_SAE instruction to the active function. -func (c *Context) VCVTSD2SIQ_RU_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2SIQ_RU_SAE(x, r)) -} - -// VCVTSD2SIQ_RU_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2SIQ.RU_SAE xmm r64 -// -// Construct and append a VCVTSD2SIQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SIQ_RU_SAE(x, r operand.Op) { ctx.VCVTSD2SIQ_RU_SAE(x, r) } - -// VCVTSD2SIQ_RZ_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2SIQ.RZ_SAE xmm r64 -// -// Construct and append a VCVTSD2SIQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTSD2SIQ_RZ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2SIQ_RZ_SAE(x, r)) -} - -// VCVTSD2SIQ_RZ_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2SIQ.RZ_SAE xmm r64 -// -// Construct and append a VCVTSD2SIQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SIQ_RZ_SAE(x, r operand.Op) { ctx.VCVTSD2SIQ_RZ_SAE(x, r) } - -// VCVTSD2SI_RD_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2SI.RD_SAE xmm r32 -// -// Construct and append a VCVTSD2SI.RD_SAE instruction to the active function. -func (c *Context) VCVTSD2SI_RD_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2SI_RD_SAE(x, r)) -} - -// VCVTSD2SI_RD_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2SI.RD_SAE xmm r32 -// -// Construct and append a VCVTSD2SI.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SI_RD_SAE(x, r operand.Op) { ctx.VCVTSD2SI_RD_SAE(x, r) } - -// VCVTSD2SI_RN_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2SI.RN_SAE xmm r32 -// -// Construct and append a VCVTSD2SI.RN_SAE instruction to the active function. -func (c *Context) VCVTSD2SI_RN_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2SI_RN_SAE(x, r)) -} - -// VCVTSD2SI_RN_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2SI.RN_SAE xmm r32 -// -// Construct and append a VCVTSD2SI.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SI_RN_SAE(x, r operand.Op) { ctx.VCVTSD2SI_RN_SAE(x, r) } - -// VCVTSD2SI_RU_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2SI.RU_SAE xmm r32 -// -// Construct and append a VCVTSD2SI.RU_SAE instruction to the active function. -func (c *Context) VCVTSD2SI_RU_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2SI_RU_SAE(x, r)) -} - -// VCVTSD2SI_RU_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2SI.RU_SAE xmm r32 -// -// Construct and append a VCVTSD2SI.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SI_RU_SAE(x, r operand.Op) { ctx.VCVTSD2SI_RU_SAE(x, r) } - -// VCVTSD2SI_RZ_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2SI.RZ_SAE xmm r32 -// -// Construct and append a VCVTSD2SI.RZ_SAE instruction to the active function. -func (c *Context) VCVTSD2SI_RZ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2SI_RZ_SAE(x, r)) -} - -// VCVTSD2SI_RZ_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2SI.RZ_SAE xmm r32 -// -// Construct and append a VCVTSD2SI.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SI_RZ_SAE(x, r operand.Op) { ctx.VCVTSD2SI_RZ_SAE(x, r) } - -// VCVTSD2SS: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value. -// -// Forms: -// -// VCVTSD2SS m64 xmm xmm -// VCVTSD2SS xmm xmm xmm -// VCVTSD2SS m64 xmm k xmm -// VCVTSD2SS xmm xmm k xmm -// -// Construct and append a VCVTSD2SS instruction to the active function. -func (c *Context) VCVTSD2SS(ops ...operand.Op) { - c.addinstruction(x86.VCVTSD2SS(ops...)) -} - -// VCVTSD2SS: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value. -// -// Forms: -// -// VCVTSD2SS m64 xmm xmm -// VCVTSD2SS xmm xmm xmm -// VCVTSD2SS m64 xmm k xmm -// VCVTSD2SS xmm xmm k xmm -// -// Construct and append a VCVTSD2SS instruction to the active function. -// Operates on the global context. -func VCVTSD2SS(ops ...operand.Op) { ctx.VCVTSD2SS(ops...) } - -// VCVTSD2SS_RD_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2SS.RD_SAE xmm xmm k xmm -// VCVTSD2SS.RD_SAE xmm xmm xmm -// -// Construct and append a VCVTSD2SS.RD_SAE instruction to the active function. -func (c *Context) VCVTSD2SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTSD2SS_RD_SAE(ops...)) -} - -// VCVTSD2SS_RD_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2SS.RD_SAE xmm xmm k xmm -// VCVTSD2SS.RD_SAE xmm xmm xmm -// -// Construct and append a VCVTSD2SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SS_RD_SAE(ops ...operand.Op) { ctx.VCVTSD2SS_RD_SAE(ops...) } - -// VCVTSD2SS_RD_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTSD2SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VCVTSD2SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VCVTSD2SS_RD_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTSD2SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VCVTSD2SS_RD_SAE_Z(x, x1, k, x2) } - -// VCVTSD2SS_RN_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2SS.RN_SAE xmm xmm k xmm -// VCVTSD2SS.RN_SAE xmm xmm xmm -// -// Construct and append a VCVTSD2SS.RN_SAE instruction to the active function. -func (c *Context) VCVTSD2SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTSD2SS_RN_SAE(ops...)) -} - -// VCVTSD2SS_RN_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2SS.RN_SAE xmm xmm k xmm -// VCVTSD2SS.RN_SAE xmm xmm xmm -// -// Construct and append a VCVTSD2SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SS_RN_SAE(ops ...operand.Op) { ctx.VCVTSD2SS_RN_SAE(ops...) } - -// VCVTSD2SS_RN_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTSD2SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VCVTSD2SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VCVTSD2SS_RN_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTSD2SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VCVTSD2SS_RN_SAE_Z(x, x1, k, x2) } - -// VCVTSD2SS_RU_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2SS.RU_SAE xmm xmm k xmm -// VCVTSD2SS.RU_SAE xmm xmm xmm -// -// Construct and append a VCVTSD2SS.RU_SAE instruction to the active function. -func (c *Context) VCVTSD2SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTSD2SS_RU_SAE(ops...)) -} - -// VCVTSD2SS_RU_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2SS.RU_SAE xmm xmm k xmm -// VCVTSD2SS.RU_SAE xmm xmm xmm -// -// Construct and append a VCVTSD2SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SS_RU_SAE(ops ...operand.Op) { ctx.VCVTSD2SS_RU_SAE(ops...) } - -// VCVTSD2SS_RU_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTSD2SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VCVTSD2SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VCVTSD2SS_RU_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTSD2SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VCVTSD2SS_RU_SAE_Z(x, x1, k, x2) } - -// VCVTSD2SS_RZ_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSD2SS.RZ_SAE xmm xmm k xmm -// VCVTSD2SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VCVTSD2SS.RZ_SAE instruction to the active function. -func (c *Context) VCVTSD2SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTSD2SS_RZ_SAE(ops...)) -} - -// VCVTSD2SS_RZ_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSD2SS.RZ_SAE xmm xmm k xmm -// VCVTSD2SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VCVTSD2SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2SS_RZ_SAE(ops ...operand.Op) { ctx.VCVTSD2SS_RZ_SAE(ops...) } - -// VCVTSD2SS_RZ_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTSD2SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VCVTSD2SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VCVTSD2SS_RZ_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTSD2SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VCVTSD2SS_RZ_SAE_Z(x, x1, k, x2) } - -// VCVTSD2SS_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.Z m64 xmm k xmm -// VCVTSD2SS.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.Z instruction to the active function. -func (c *Context) VCVTSD2SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VCVTSD2SS_Z(mx, x, k, x1)) -} - -// VCVTSD2SS_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.Z m64 xmm k xmm -// VCVTSD2SS.Z xmm xmm k xmm -// -// Construct and append a VCVTSD2SS.Z instruction to the active function. -// Operates on the global context. -func VCVTSD2SS_Z(mx, x, k, x1 operand.Op) { ctx.VCVTSD2SS_Z(mx, x, k, x1) } - -// VCVTSD2USIL: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSD2USIL m64 r32 -// VCVTSD2USIL xmm r32 -// -// Construct and append a VCVTSD2USIL instruction to the active function. -func (c *Context) VCVTSD2USIL(mx, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIL(mx, r)) -} - -// VCVTSD2USIL: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSD2USIL m64 r32 -// VCVTSD2USIL xmm r32 -// -// Construct and append a VCVTSD2USIL instruction to the active function. -// Operates on the global context. -func VCVTSD2USIL(mx, r operand.Op) { ctx.VCVTSD2USIL(mx, r) } - -// VCVTSD2USIL_RD_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2USIL.RD_SAE xmm r32 -// -// Construct and append a VCVTSD2USIL.RD_SAE instruction to the active function. -func (c *Context) VCVTSD2USIL_RD_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIL_RD_SAE(x, r)) -} - -// VCVTSD2USIL_RD_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2USIL.RD_SAE xmm r32 -// -// Construct and append a VCVTSD2USIL.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2USIL_RD_SAE(x, r operand.Op) { ctx.VCVTSD2USIL_RD_SAE(x, r) } - -// VCVTSD2USIL_RN_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2USIL.RN_SAE xmm r32 -// -// Construct and append a VCVTSD2USIL.RN_SAE instruction to the active function. -func (c *Context) VCVTSD2USIL_RN_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIL_RN_SAE(x, r)) -} - -// VCVTSD2USIL_RN_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2USIL.RN_SAE xmm r32 -// -// Construct and append a VCVTSD2USIL.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2USIL_RN_SAE(x, r operand.Op) { ctx.VCVTSD2USIL_RN_SAE(x, r) } - -// VCVTSD2USIL_RU_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2USIL.RU_SAE xmm r32 -// -// Construct and append a VCVTSD2USIL.RU_SAE instruction to the active function. -func (c *Context) VCVTSD2USIL_RU_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIL_RU_SAE(x, r)) -} - -// VCVTSD2USIL_RU_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2USIL.RU_SAE xmm r32 -// -// Construct and append a VCVTSD2USIL.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2USIL_RU_SAE(x, r operand.Op) { ctx.VCVTSD2USIL_RU_SAE(x, r) } - -// VCVTSD2USIL_RZ_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2USIL.RZ_SAE xmm r32 -// -// Construct and append a VCVTSD2USIL.RZ_SAE instruction to the active function. -func (c *Context) VCVTSD2USIL_RZ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIL_RZ_SAE(x, r)) -} - -// VCVTSD2USIL_RZ_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2USIL.RZ_SAE xmm r32 -// -// Construct and append a VCVTSD2USIL.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2USIL_RZ_SAE(x, r operand.Op) { ctx.VCVTSD2USIL_RZ_SAE(x, r) } - -// VCVTSD2USIQ: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSD2USIQ m64 r64 -// VCVTSD2USIQ xmm r64 -// -// Construct and append a VCVTSD2USIQ instruction to the active function. -func (c *Context) VCVTSD2USIQ(mx, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIQ(mx, r)) -} - -// VCVTSD2USIQ: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSD2USIQ m64 r64 -// VCVTSD2USIQ xmm r64 -// -// Construct and append a VCVTSD2USIQ instruction to the active function. -// Operates on the global context. -func VCVTSD2USIQ(mx, r operand.Op) { ctx.VCVTSD2USIQ(mx, r) } - -// VCVTSD2USIQ_RD_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2USIQ.RD_SAE xmm r64 -// -// Construct and append a VCVTSD2USIQ.RD_SAE instruction to the active function. -func (c *Context) VCVTSD2USIQ_RD_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIQ_RD_SAE(x, r)) -} - -// VCVTSD2USIQ_RD_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2USIQ.RD_SAE xmm r64 -// -// Construct and append a VCVTSD2USIQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2USIQ_RD_SAE(x, r operand.Op) { ctx.VCVTSD2USIQ_RD_SAE(x, r) } - -// VCVTSD2USIQ_RN_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2USIQ.RN_SAE xmm r64 -// -// Construct and append a VCVTSD2USIQ.RN_SAE instruction to the active function. -func (c *Context) VCVTSD2USIQ_RN_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIQ_RN_SAE(x, r)) -} - -// VCVTSD2USIQ_RN_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2USIQ.RN_SAE xmm r64 -// -// Construct and append a VCVTSD2USIQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2USIQ_RN_SAE(x, r operand.Op) { ctx.VCVTSD2USIQ_RN_SAE(x, r) } - -// VCVTSD2USIQ_RU_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2USIQ.RU_SAE xmm r64 -// -// Construct and append a VCVTSD2USIQ.RU_SAE instruction to the active function. -func (c *Context) VCVTSD2USIQ_RU_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIQ_RU_SAE(x, r)) -} - -// VCVTSD2USIQ_RU_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2USIQ.RU_SAE xmm r64 -// -// Construct and append a VCVTSD2USIQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2USIQ_RU_SAE(x, r operand.Op) { ctx.VCVTSD2USIQ_RU_SAE(x, r) } - -// VCVTSD2USIQ_RZ_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2USIQ.RZ_SAE xmm r64 -// -// Construct and append a VCVTSD2USIQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTSD2USIQ_RZ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSD2USIQ_RZ_SAE(x, r)) -} - -// VCVTSD2USIQ_RZ_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2USIQ.RZ_SAE xmm r64 -// -// Construct and append a VCVTSD2USIQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSD2USIQ_RZ_SAE(x, r operand.Op) { ctx.VCVTSD2USIQ_RZ_SAE(x, r) } - -// VCVTSI2SDL: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// VCVTSI2SDL m32 xmm xmm -// VCVTSI2SDL r32 xmm xmm -// -// Construct and append a VCVTSI2SDL instruction to the active function. -func (c *Context) VCVTSI2SDL(mr, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SDL(mr, x, x1)) -} - -// VCVTSI2SDL: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// VCVTSI2SDL m32 xmm xmm -// VCVTSI2SDL r32 xmm xmm -// -// Construct and append a VCVTSI2SDL instruction to the active function. -// Operates on the global context. -func VCVTSI2SDL(mr, x, x1 operand.Op) { ctx.VCVTSI2SDL(mr, x, x1) } - -// VCVTSI2SDQ: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// VCVTSI2SDQ m64 xmm xmm -// VCVTSI2SDQ r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ instruction to the active function. -func (c *Context) VCVTSI2SDQ(mr, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SDQ(mr, x, x1)) -} - -// VCVTSI2SDQ: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// VCVTSI2SDQ m64 xmm xmm -// VCVTSI2SDQ r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ instruction to the active function. -// Operates on the global context. -func VCVTSI2SDQ(mr, x, x1 operand.Op) { ctx.VCVTSI2SDQ(mr, x, x1) } - -// VCVTSI2SDQ_RD_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSI2SDQ.RD_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ.RD_SAE instruction to the active function. -func (c *Context) VCVTSI2SDQ_RD_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SDQ_RD_SAE(r, x, x1)) -} - -// VCVTSI2SDQ_RD_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSI2SDQ.RD_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SDQ_RD_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SDQ_RD_SAE(r, x, x1) } - -// VCVTSI2SDQ_RN_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSI2SDQ.RN_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ.RN_SAE instruction to the active function. -func (c *Context) VCVTSI2SDQ_RN_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SDQ_RN_SAE(r, x, x1)) -} - -// VCVTSI2SDQ_RN_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSI2SDQ.RN_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SDQ_RN_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SDQ_RN_SAE(r, x, x1) } - -// VCVTSI2SDQ_RU_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSI2SDQ.RU_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ.RU_SAE instruction to the active function. -func (c *Context) VCVTSI2SDQ_RU_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SDQ_RU_SAE(r, x, x1)) -} - -// VCVTSI2SDQ_RU_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSI2SDQ.RU_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SDQ_RU_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SDQ_RU_SAE(r, x, x1) } - -// VCVTSI2SDQ_RZ_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSI2SDQ.RZ_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTSI2SDQ_RZ_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SDQ_RZ_SAE(r, x, x1)) -} - -// VCVTSI2SDQ_RZ_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSI2SDQ.RZ_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SDQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SDQ_RZ_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SDQ_RZ_SAE(r, x, x1) } - -// VCVTSI2SSL: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// VCVTSI2SSL m32 xmm xmm -// VCVTSI2SSL r32 xmm xmm -// -// Construct and append a VCVTSI2SSL instruction to the active function. -func (c *Context) VCVTSI2SSL(mr, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSL(mr, x, x1)) -} - -// VCVTSI2SSL: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// VCVTSI2SSL m32 xmm xmm -// VCVTSI2SSL r32 xmm xmm -// -// Construct and append a VCVTSI2SSL instruction to the active function. -// Operates on the global context. -func VCVTSI2SSL(mr, x, x1 operand.Op) { ctx.VCVTSI2SSL(mr, x, x1) } - -// VCVTSI2SSL_RD_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSI2SSL.RD_SAE r32 xmm xmm -// -// Construct and append a VCVTSI2SSL.RD_SAE instruction to the active function. -func (c *Context) VCVTSI2SSL_RD_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSL_RD_SAE(r, x, x1)) -} - -// VCVTSI2SSL_RD_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSI2SSL.RD_SAE r32 xmm xmm -// -// Construct and append a VCVTSI2SSL.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SSL_RD_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SSL_RD_SAE(r, x, x1) } - -// VCVTSI2SSL_RN_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSI2SSL.RN_SAE r32 xmm xmm -// -// Construct and append a VCVTSI2SSL.RN_SAE instruction to the active function. -func (c *Context) VCVTSI2SSL_RN_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSL_RN_SAE(r, x, x1)) -} - -// VCVTSI2SSL_RN_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSI2SSL.RN_SAE r32 xmm xmm -// -// Construct and append a VCVTSI2SSL.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SSL_RN_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SSL_RN_SAE(r, x, x1) } - -// VCVTSI2SSL_RU_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSI2SSL.RU_SAE r32 xmm xmm -// -// Construct and append a VCVTSI2SSL.RU_SAE instruction to the active function. -func (c *Context) VCVTSI2SSL_RU_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSL_RU_SAE(r, x, x1)) -} - -// VCVTSI2SSL_RU_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSI2SSL.RU_SAE r32 xmm xmm -// -// Construct and append a VCVTSI2SSL.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SSL_RU_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SSL_RU_SAE(r, x, x1) } - -// VCVTSI2SSL_RZ_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSI2SSL.RZ_SAE r32 xmm xmm -// -// Construct and append a VCVTSI2SSL.RZ_SAE instruction to the active function. -func (c *Context) VCVTSI2SSL_RZ_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSL_RZ_SAE(r, x, x1)) -} - -// VCVTSI2SSL_RZ_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSI2SSL.RZ_SAE r32 xmm xmm -// -// Construct and append a VCVTSI2SSL.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SSL_RZ_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SSL_RZ_SAE(r, x, x1) } - -// VCVTSI2SSQ: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// VCVTSI2SSQ m64 xmm xmm -// VCVTSI2SSQ r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ instruction to the active function. -func (c *Context) VCVTSI2SSQ(mr, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSQ(mr, x, x1)) -} - -// VCVTSI2SSQ: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// VCVTSI2SSQ m64 xmm xmm -// VCVTSI2SSQ r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ instruction to the active function. -// Operates on the global context. -func VCVTSI2SSQ(mr, x, x1 operand.Op) { ctx.VCVTSI2SSQ(mr, x, x1) } - -// VCVTSI2SSQ_RD_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSI2SSQ.RD_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ.RD_SAE instruction to the active function. -func (c *Context) VCVTSI2SSQ_RD_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSQ_RD_SAE(r, x, x1)) -} - -// VCVTSI2SSQ_RD_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSI2SSQ.RD_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SSQ_RD_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SSQ_RD_SAE(r, x, x1) } - -// VCVTSI2SSQ_RN_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSI2SSQ.RN_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ.RN_SAE instruction to the active function. -func (c *Context) VCVTSI2SSQ_RN_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSQ_RN_SAE(r, x, x1)) -} - -// VCVTSI2SSQ_RN_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSI2SSQ.RN_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SSQ_RN_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SSQ_RN_SAE(r, x, x1) } - -// VCVTSI2SSQ_RU_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSI2SSQ.RU_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ.RU_SAE instruction to the active function. -func (c *Context) VCVTSI2SSQ_RU_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSQ_RU_SAE(r, x, x1)) -} - -// VCVTSI2SSQ_RU_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSI2SSQ.RU_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SSQ_RU_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SSQ_RU_SAE(r, x, x1) } - -// VCVTSI2SSQ_RZ_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSI2SSQ.RZ_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTSI2SSQ_RZ_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTSI2SSQ_RZ_SAE(r, x, x1)) -} - -// VCVTSI2SSQ_RZ_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSI2SSQ.RZ_SAE r64 xmm xmm -// -// Construct and append a VCVTSI2SSQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSI2SSQ_RZ_SAE(r, x, x1 operand.Op) { ctx.VCVTSI2SSQ_RZ_SAE(r, x, x1) } - -// VCVTSS2SD: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value. -// -// Forms: -// -// VCVTSS2SD m32 xmm xmm -// VCVTSS2SD xmm xmm xmm -// VCVTSS2SD m32 xmm k xmm -// VCVTSS2SD xmm xmm k xmm -// -// Construct and append a VCVTSS2SD instruction to the active function. -func (c *Context) VCVTSS2SD(ops ...operand.Op) { - c.addinstruction(x86.VCVTSS2SD(ops...)) -} - -// VCVTSS2SD: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value. -// -// Forms: -// -// VCVTSS2SD m32 xmm xmm -// VCVTSS2SD xmm xmm xmm -// VCVTSS2SD m32 xmm k xmm -// VCVTSS2SD xmm xmm k xmm -// -// Construct and append a VCVTSS2SD instruction to the active function. -// Operates on the global context. -func VCVTSS2SD(ops ...operand.Op) { ctx.VCVTSS2SD(ops...) } - -// VCVTSS2SD_SAE: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Suppress All Exceptions). -// -// Forms: -// -// VCVTSS2SD.SAE xmm xmm k xmm -// VCVTSS2SD.SAE xmm xmm xmm -// -// Construct and append a VCVTSS2SD.SAE instruction to the active function. -func (c *Context) VCVTSS2SD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTSS2SD_SAE(ops...)) -} - -// VCVTSS2SD_SAE: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Suppress All Exceptions). -// -// Forms: -// -// VCVTSS2SD.SAE xmm xmm k xmm -// VCVTSS2SD.SAE xmm xmm xmm -// -// Construct and append a VCVTSS2SD.SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2SD_SAE(ops ...operand.Op) { ctx.VCVTSS2SD_SAE(ops...) } - -// VCVTSS2SD_SAE_Z: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTSS2SD.SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSS2SD.SAE.Z instruction to the active function. -func (c *Context) VCVTSS2SD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VCVTSS2SD_SAE_Z(x, x1, k, x2)) -} - -// VCVTSS2SD_SAE_Z: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTSS2SD.SAE.Z xmm xmm k xmm -// -// Construct and append a VCVTSS2SD.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTSS2SD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VCVTSS2SD_SAE_Z(x, x1, k, x2) } - -// VCVTSS2SD_Z: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Zeroing Masking). -// -// Forms: -// -// VCVTSS2SD.Z m32 xmm k xmm -// VCVTSS2SD.Z xmm xmm k xmm -// -// Construct and append a VCVTSS2SD.Z instruction to the active function. -func (c *Context) VCVTSS2SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VCVTSS2SD_Z(mx, x, k, x1)) -} - -// VCVTSS2SD_Z: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Zeroing Masking). -// -// Forms: -// -// VCVTSS2SD.Z m32 xmm k xmm -// VCVTSS2SD.Z xmm xmm k xmm -// -// Construct and append a VCVTSS2SD.Z instruction to the active function. -// Operates on the global context. -func VCVTSS2SD_Z(mx, x, k, x1 operand.Op) { ctx.VCVTSS2SD_Z(mx, x, k, x1) } - -// VCVTSS2SI: Convert Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTSS2SI m32 r32 -// VCVTSS2SI xmm r32 -// -// Construct and append a VCVTSS2SI instruction to the active function. -func (c *Context) VCVTSS2SI(mx, r operand.Op) { - c.addinstruction(x86.VCVTSS2SI(mx, r)) -} - -// VCVTSS2SI: Convert Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTSS2SI m32 r32 -// VCVTSS2SI xmm r32 -// -// Construct and append a VCVTSS2SI instruction to the active function. -// Operates on the global context. -func VCVTSS2SI(mx, r operand.Op) { ctx.VCVTSS2SI(mx, r) } - -// VCVTSS2SIQ: Convert Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTSS2SIQ m32 r64 -// VCVTSS2SIQ xmm r64 -// -// Construct and append a VCVTSS2SIQ instruction to the active function. -func (c *Context) VCVTSS2SIQ(mx, r operand.Op) { - c.addinstruction(x86.VCVTSS2SIQ(mx, r)) -} - -// VCVTSS2SIQ: Convert Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTSS2SIQ m32 r64 -// VCVTSS2SIQ xmm r64 -// -// Construct and append a VCVTSS2SIQ instruction to the active function. -// Operates on the global context. -func VCVTSS2SIQ(mx, r operand.Op) { ctx.VCVTSS2SIQ(mx, r) } - -// VCVTSS2SIQ_RD_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2SIQ.RD_SAE xmm r64 -// -// Construct and append a VCVTSS2SIQ.RD_SAE instruction to the active function. -func (c *Context) VCVTSS2SIQ_RD_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2SIQ_RD_SAE(x, r)) -} - -// VCVTSS2SIQ_RD_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2SIQ.RD_SAE xmm r64 -// -// Construct and append a VCVTSS2SIQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2SIQ_RD_SAE(x, r operand.Op) { ctx.VCVTSS2SIQ_RD_SAE(x, r) } - -// VCVTSS2SIQ_RN_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2SIQ.RN_SAE xmm r64 -// -// Construct and append a VCVTSS2SIQ.RN_SAE instruction to the active function. -func (c *Context) VCVTSS2SIQ_RN_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2SIQ_RN_SAE(x, r)) -} - -// VCVTSS2SIQ_RN_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2SIQ.RN_SAE xmm r64 -// -// Construct and append a VCVTSS2SIQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2SIQ_RN_SAE(x, r operand.Op) { ctx.VCVTSS2SIQ_RN_SAE(x, r) } - -// VCVTSS2SIQ_RU_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2SIQ.RU_SAE xmm r64 -// -// Construct and append a VCVTSS2SIQ.RU_SAE instruction to the active function. -func (c *Context) VCVTSS2SIQ_RU_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2SIQ_RU_SAE(x, r)) -} - -// VCVTSS2SIQ_RU_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2SIQ.RU_SAE xmm r64 -// -// Construct and append a VCVTSS2SIQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2SIQ_RU_SAE(x, r operand.Op) { ctx.VCVTSS2SIQ_RU_SAE(x, r) } - -// VCVTSS2SIQ_RZ_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2SIQ.RZ_SAE xmm r64 -// -// Construct and append a VCVTSS2SIQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTSS2SIQ_RZ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2SIQ_RZ_SAE(x, r)) -} - -// VCVTSS2SIQ_RZ_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2SIQ.RZ_SAE xmm r64 -// -// Construct and append a VCVTSS2SIQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2SIQ_RZ_SAE(x, r operand.Op) { ctx.VCVTSS2SIQ_RZ_SAE(x, r) } - -// VCVTSS2SI_RD_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2SI.RD_SAE xmm r32 -// -// Construct and append a VCVTSS2SI.RD_SAE instruction to the active function. -func (c *Context) VCVTSS2SI_RD_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2SI_RD_SAE(x, r)) -} - -// VCVTSS2SI_RD_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2SI.RD_SAE xmm r32 -// -// Construct and append a VCVTSS2SI.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2SI_RD_SAE(x, r operand.Op) { ctx.VCVTSS2SI_RD_SAE(x, r) } - -// VCVTSS2SI_RN_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2SI.RN_SAE xmm r32 -// -// Construct and append a VCVTSS2SI.RN_SAE instruction to the active function. -func (c *Context) VCVTSS2SI_RN_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2SI_RN_SAE(x, r)) -} - -// VCVTSS2SI_RN_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2SI.RN_SAE xmm r32 -// -// Construct and append a VCVTSS2SI.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2SI_RN_SAE(x, r operand.Op) { ctx.VCVTSS2SI_RN_SAE(x, r) } - -// VCVTSS2SI_RU_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2SI.RU_SAE xmm r32 -// -// Construct and append a VCVTSS2SI.RU_SAE instruction to the active function. -func (c *Context) VCVTSS2SI_RU_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2SI_RU_SAE(x, r)) -} - -// VCVTSS2SI_RU_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2SI.RU_SAE xmm r32 -// -// Construct and append a VCVTSS2SI.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2SI_RU_SAE(x, r operand.Op) { ctx.VCVTSS2SI_RU_SAE(x, r) } - -// VCVTSS2SI_RZ_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2SI.RZ_SAE xmm r32 -// -// Construct and append a VCVTSS2SI.RZ_SAE instruction to the active function. -func (c *Context) VCVTSS2SI_RZ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2SI_RZ_SAE(x, r)) -} - -// VCVTSS2SI_RZ_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2SI.RZ_SAE xmm r32 -// -// Construct and append a VCVTSS2SI.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2SI_RZ_SAE(x, r operand.Op) { ctx.VCVTSS2SI_RZ_SAE(x, r) } - -// VCVTSS2USIL: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSS2USIL m32 r32 -// VCVTSS2USIL xmm r32 -// -// Construct and append a VCVTSS2USIL instruction to the active function. -func (c *Context) VCVTSS2USIL(mx, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIL(mx, r)) -} - -// VCVTSS2USIL: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSS2USIL m32 r32 -// VCVTSS2USIL xmm r32 -// -// Construct and append a VCVTSS2USIL instruction to the active function. -// Operates on the global context. -func VCVTSS2USIL(mx, r operand.Op) { ctx.VCVTSS2USIL(mx, r) } - -// VCVTSS2USIL_RD_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2USIL.RD_SAE xmm r32 -// -// Construct and append a VCVTSS2USIL.RD_SAE instruction to the active function. -func (c *Context) VCVTSS2USIL_RD_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIL_RD_SAE(x, r)) -} - -// VCVTSS2USIL_RD_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2USIL.RD_SAE xmm r32 -// -// Construct and append a VCVTSS2USIL.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2USIL_RD_SAE(x, r operand.Op) { ctx.VCVTSS2USIL_RD_SAE(x, r) } - -// VCVTSS2USIL_RN_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2USIL.RN_SAE xmm r32 -// -// Construct and append a VCVTSS2USIL.RN_SAE instruction to the active function. -func (c *Context) VCVTSS2USIL_RN_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIL_RN_SAE(x, r)) -} - -// VCVTSS2USIL_RN_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2USIL.RN_SAE xmm r32 -// -// Construct and append a VCVTSS2USIL.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2USIL_RN_SAE(x, r operand.Op) { ctx.VCVTSS2USIL_RN_SAE(x, r) } - -// VCVTSS2USIL_RU_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2USIL.RU_SAE xmm r32 -// -// Construct and append a VCVTSS2USIL.RU_SAE instruction to the active function. -func (c *Context) VCVTSS2USIL_RU_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIL_RU_SAE(x, r)) -} - -// VCVTSS2USIL_RU_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2USIL.RU_SAE xmm r32 -// -// Construct and append a VCVTSS2USIL.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2USIL_RU_SAE(x, r operand.Op) { ctx.VCVTSS2USIL_RU_SAE(x, r) } - -// VCVTSS2USIL_RZ_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2USIL.RZ_SAE xmm r32 -// -// Construct and append a VCVTSS2USIL.RZ_SAE instruction to the active function. -func (c *Context) VCVTSS2USIL_RZ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIL_RZ_SAE(x, r)) -} - -// VCVTSS2USIL_RZ_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2USIL.RZ_SAE xmm r32 -// -// Construct and append a VCVTSS2USIL.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2USIL_RZ_SAE(x, r operand.Op) { ctx.VCVTSS2USIL_RZ_SAE(x, r) } - -// VCVTSS2USIQ: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSS2USIQ m32 r64 -// VCVTSS2USIQ xmm r64 -// -// Construct and append a VCVTSS2USIQ instruction to the active function. -func (c *Context) VCVTSS2USIQ(mx, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIQ(mx, r)) -} - -// VCVTSS2USIQ: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSS2USIQ m32 r64 -// VCVTSS2USIQ xmm r64 -// -// Construct and append a VCVTSS2USIQ instruction to the active function. -// Operates on the global context. -func VCVTSS2USIQ(mx, r operand.Op) { ctx.VCVTSS2USIQ(mx, r) } - -// VCVTSS2USIQ_RD_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2USIQ.RD_SAE xmm r64 -// -// Construct and append a VCVTSS2USIQ.RD_SAE instruction to the active function. -func (c *Context) VCVTSS2USIQ_RD_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIQ_RD_SAE(x, r)) -} - -// VCVTSS2USIQ_RD_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2USIQ.RD_SAE xmm r64 -// -// Construct and append a VCVTSS2USIQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2USIQ_RD_SAE(x, r operand.Op) { ctx.VCVTSS2USIQ_RD_SAE(x, r) } - -// VCVTSS2USIQ_RN_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2USIQ.RN_SAE xmm r64 -// -// Construct and append a VCVTSS2USIQ.RN_SAE instruction to the active function. -func (c *Context) VCVTSS2USIQ_RN_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIQ_RN_SAE(x, r)) -} - -// VCVTSS2USIQ_RN_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2USIQ.RN_SAE xmm r64 -// -// Construct and append a VCVTSS2USIQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2USIQ_RN_SAE(x, r operand.Op) { ctx.VCVTSS2USIQ_RN_SAE(x, r) } - -// VCVTSS2USIQ_RU_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2USIQ.RU_SAE xmm r64 -// -// Construct and append a VCVTSS2USIQ.RU_SAE instruction to the active function. -func (c *Context) VCVTSS2USIQ_RU_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIQ_RU_SAE(x, r)) -} - -// VCVTSS2USIQ_RU_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2USIQ.RU_SAE xmm r64 -// -// Construct and append a VCVTSS2USIQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2USIQ_RU_SAE(x, r operand.Op) { ctx.VCVTSS2USIQ_RU_SAE(x, r) } - -// VCVTSS2USIQ_RZ_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2USIQ.RZ_SAE xmm r64 -// -// Construct and append a VCVTSS2USIQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTSS2USIQ_RZ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTSS2USIQ_RZ_SAE(x, r)) -} - -// VCVTSS2USIQ_RZ_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2USIQ.RZ_SAE xmm r64 -// -// Construct and append a VCVTSS2USIQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTSS2USIQ_RZ_SAE(x, r operand.Op) { ctx.VCVTSS2USIQ_RZ_SAE(x, r) } - -// VCVTTPD2DQ: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPD2DQ m512 k ymm -// VCVTTPD2DQ m512 ymm -// VCVTTPD2DQ zmm k ymm -// VCVTTPD2DQ zmm ymm -// -// Construct and append a VCVTTPD2DQ instruction to the active function. -func (c *Context) VCVTTPD2DQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2DQ(ops...)) -} - -// VCVTTPD2DQ: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPD2DQ m512 k ymm -// VCVTTPD2DQ m512 ymm -// VCVTTPD2DQ zmm k ymm -// VCVTTPD2DQ zmm ymm -// -// Construct and append a VCVTTPD2DQ instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQ(ops ...operand.Op) { ctx.VCVTTPD2DQ(ops...) } - -// VCVTTPD2DQX: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPD2DQX m128 xmm -// VCVTTPD2DQX xmm xmm -// VCVTTPD2DQX m128 k xmm -// VCVTTPD2DQX xmm k xmm -// -// Construct and append a VCVTTPD2DQX instruction to the active function. -func (c *Context) VCVTTPD2DQX(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2DQX(ops...)) -} - -// VCVTTPD2DQX: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPD2DQX m128 xmm -// VCVTTPD2DQX xmm xmm -// VCVTTPD2DQX m128 k xmm -// VCVTTPD2DQX xmm k xmm -// -// Construct and append a VCVTTPD2DQX instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQX(ops ...operand.Op) { ctx.VCVTTPD2DQX(ops...) } - -// VCVTTPD2DQX_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2DQX.BCST m64 k xmm -// VCVTTPD2DQX.BCST m64 xmm -// -// Construct and append a VCVTTPD2DQX.BCST instruction to the active function. -func (c *Context) VCVTTPD2DQX_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2DQX_BCST(ops...)) -} - -// VCVTTPD2DQX_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2DQX.BCST m64 k xmm -// VCVTTPD2DQX.BCST m64 xmm -// -// Construct and append a VCVTTPD2DQX.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQX_BCST(ops ...operand.Op) { ctx.VCVTTPD2DQX_BCST(ops...) } - -// VCVTTPD2DQX_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQX.BCST.Z m64 k xmm -// -// Construct and append a VCVTTPD2DQX.BCST.Z instruction to the active function. -func (c *Context) VCVTTPD2DQX_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTTPD2DQX_BCST_Z(m, k, x)) -} - -// VCVTTPD2DQX_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQX.BCST.Z m64 k xmm -// -// Construct and append a VCVTTPD2DQX.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQX_BCST_Z(m, k, x operand.Op) { ctx.VCVTTPD2DQX_BCST_Z(m, k, x) } - -// VCVTTPD2DQX_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQX.Z m128 k xmm -// VCVTTPD2DQX.Z xmm k xmm -// -// Construct and append a VCVTTPD2DQX.Z instruction to the active function. -func (c *Context) VCVTTPD2DQX_Z(mx, k, x operand.Op) { - c.addinstruction(x86.VCVTTPD2DQX_Z(mx, k, x)) -} - -// VCVTTPD2DQX_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQX.Z m128 k xmm -// VCVTTPD2DQX.Z xmm k xmm -// -// Construct and append a VCVTTPD2DQX.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQX_Z(mx, k, x operand.Op) { ctx.VCVTTPD2DQX_Z(mx, k, x) } - -// VCVTTPD2DQY: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPD2DQY m256 xmm -// VCVTTPD2DQY ymm xmm -// VCVTTPD2DQY m256 k xmm -// VCVTTPD2DQY ymm k xmm -// -// Construct and append a VCVTTPD2DQY instruction to the active function. -func (c *Context) VCVTTPD2DQY(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2DQY(ops...)) -} - -// VCVTTPD2DQY: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPD2DQY m256 xmm -// VCVTTPD2DQY ymm xmm -// VCVTTPD2DQY m256 k xmm -// VCVTTPD2DQY ymm k xmm -// -// Construct and append a VCVTTPD2DQY instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQY(ops ...operand.Op) { ctx.VCVTTPD2DQY(ops...) } - -// VCVTTPD2DQY_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2DQY.BCST m64 k xmm -// VCVTTPD2DQY.BCST m64 xmm -// -// Construct and append a VCVTTPD2DQY.BCST instruction to the active function. -func (c *Context) VCVTTPD2DQY_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2DQY_BCST(ops...)) -} - -// VCVTTPD2DQY_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2DQY.BCST m64 k xmm -// VCVTTPD2DQY.BCST m64 xmm -// -// Construct and append a VCVTTPD2DQY.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQY_BCST(ops ...operand.Op) { ctx.VCVTTPD2DQY_BCST(ops...) } - -// VCVTTPD2DQY_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQY.BCST.Z m64 k xmm -// -// Construct and append a VCVTTPD2DQY.BCST.Z instruction to the active function. -func (c *Context) VCVTTPD2DQY_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTTPD2DQY_BCST_Z(m, k, x)) -} - -// VCVTTPD2DQY_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQY.BCST.Z m64 k xmm -// -// Construct and append a VCVTTPD2DQY.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQY_BCST_Z(m, k, x operand.Op) { ctx.VCVTTPD2DQY_BCST_Z(m, k, x) } - -// VCVTTPD2DQY_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQY.Z m256 k xmm -// VCVTTPD2DQY.Z ymm k xmm -// -// Construct and append a VCVTTPD2DQY.Z instruction to the active function. -func (c *Context) VCVTTPD2DQY_Z(my, k, x operand.Op) { - c.addinstruction(x86.VCVTTPD2DQY_Z(my, k, x)) -} - -// VCVTTPD2DQY_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQY.Z m256 k xmm -// VCVTTPD2DQY.Z ymm k xmm -// -// Construct and append a VCVTTPD2DQY.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQY_Z(my, k, x operand.Op) { ctx.VCVTTPD2DQY_Z(my, k, x) } - -// VCVTTPD2DQ_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2DQ.BCST m64 k ymm -// VCVTTPD2DQ.BCST m64 ymm -// -// Construct and append a VCVTTPD2DQ.BCST instruction to the active function. -func (c *Context) VCVTTPD2DQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2DQ_BCST(ops...)) -} - -// VCVTTPD2DQ_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2DQ.BCST m64 k ymm -// VCVTTPD2DQ.BCST m64 ymm -// -// Construct and append a VCVTTPD2DQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQ_BCST(ops ...operand.Op) { ctx.VCVTTPD2DQ_BCST(ops...) } - -// VCVTTPD2DQ_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQ.BCST.Z m64 k ymm -// -// Construct and append a VCVTTPD2DQ.BCST.Z instruction to the active function. -func (c *Context) VCVTTPD2DQ_BCST_Z(m, k, y operand.Op) { - c.addinstruction(x86.VCVTTPD2DQ_BCST_Z(m, k, y)) -} - -// VCVTTPD2DQ_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQ.BCST.Z m64 k ymm -// -// Construct and append a VCVTTPD2DQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQ_BCST_Z(m, k, y operand.Op) { ctx.VCVTTPD2DQ_BCST_Z(m, k, y) } - -// VCVTTPD2DQ_SAE: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2DQ.SAE zmm k ymm -// VCVTTPD2DQ.SAE zmm ymm -// -// Construct and append a VCVTTPD2DQ.SAE instruction to the active function. -func (c *Context) VCVTTPD2DQ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2DQ_SAE(ops...)) -} - -// VCVTTPD2DQ_SAE: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2DQ.SAE zmm k ymm -// VCVTTPD2DQ.SAE zmm ymm -// -// Construct and append a VCVTTPD2DQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQ_SAE(ops ...operand.Op) { ctx.VCVTTPD2DQ_SAE(ops...) } - -// VCVTTPD2DQ_SAE_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQ.SAE.Z zmm k ymm -// -// Construct and append a VCVTTPD2DQ.SAE.Z instruction to the active function. -func (c *Context) VCVTTPD2DQ_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTTPD2DQ_SAE_Z(z, k, y)) -} - -// VCVTTPD2DQ_SAE_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQ.SAE.Z zmm k ymm -// -// Construct and append a VCVTTPD2DQ.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQ_SAE_Z(z, k, y operand.Op) { ctx.VCVTTPD2DQ_SAE_Z(z, k, y) } - -// VCVTTPD2DQ_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQ.Z m512 k ymm -// VCVTTPD2DQ.Z zmm k ymm -// -// Construct and append a VCVTTPD2DQ.Z instruction to the active function. -func (c *Context) VCVTTPD2DQ_Z(mz, k, y operand.Op) { - c.addinstruction(x86.VCVTTPD2DQ_Z(mz, k, y)) -} - -// VCVTTPD2DQ_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQ.Z m512 k ymm -// VCVTTPD2DQ.Z zmm k ymm -// -// Construct and append a VCVTTPD2DQ.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2DQ_Z(mz, k, y operand.Op) { ctx.VCVTTPD2DQ_Z(mz, k, y) } - -// VCVTTPD2QQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers. -// -// Forms: -// -// VCVTTPD2QQ m128 k xmm -// VCVTTPD2QQ m128 xmm -// VCVTTPD2QQ m256 k ymm -// VCVTTPD2QQ m256 ymm -// VCVTTPD2QQ xmm k xmm -// VCVTTPD2QQ xmm xmm -// VCVTTPD2QQ ymm k ymm -// VCVTTPD2QQ ymm ymm -// VCVTTPD2QQ m512 k zmm -// VCVTTPD2QQ m512 zmm -// VCVTTPD2QQ zmm k zmm -// VCVTTPD2QQ zmm zmm -// -// Construct and append a VCVTTPD2QQ instruction to the active function. -func (c *Context) VCVTTPD2QQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2QQ(ops...)) -} - -// VCVTTPD2QQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers. -// -// Forms: -// -// VCVTTPD2QQ m128 k xmm -// VCVTTPD2QQ m128 xmm -// VCVTTPD2QQ m256 k ymm -// VCVTTPD2QQ m256 ymm -// VCVTTPD2QQ xmm k xmm -// VCVTTPD2QQ xmm xmm -// VCVTTPD2QQ ymm k ymm -// VCVTTPD2QQ ymm ymm -// VCVTTPD2QQ m512 k zmm -// VCVTTPD2QQ m512 zmm -// VCVTTPD2QQ zmm k zmm -// VCVTTPD2QQ zmm zmm -// -// Construct and append a VCVTTPD2QQ instruction to the active function. -// Operates on the global context. -func VCVTTPD2QQ(ops ...operand.Op) { ctx.VCVTTPD2QQ(ops...) } - -// VCVTTPD2QQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2QQ.BCST m64 k xmm -// VCVTTPD2QQ.BCST m64 k ymm -// VCVTTPD2QQ.BCST m64 xmm -// VCVTTPD2QQ.BCST m64 ymm -// VCVTTPD2QQ.BCST m64 k zmm -// VCVTTPD2QQ.BCST m64 zmm -// -// Construct and append a VCVTTPD2QQ.BCST instruction to the active function. -func (c *Context) VCVTTPD2QQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2QQ_BCST(ops...)) -} - -// VCVTTPD2QQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2QQ.BCST m64 k xmm -// VCVTTPD2QQ.BCST m64 k ymm -// VCVTTPD2QQ.BCST m64 xmm -// VCVTTPD2QQ.BCST m64 ymm -// VCVTTPD2QQ.BCST m64 k zmm -// VCVTTPD2QQ.BCST m64 zmm -// -// Construct and append a VCVTTPD2QQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPD2QQ_BCST(ops ...operand.Op) { ctx.VCVTTPD2QQ_BCST(ops...) } - -// VCVTTPD2QQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2QQ.BCST.Z m64 k xmm -// VCVTTPD2QQ.BCST.Z m64 k ymm -// VCVTTPD2QQ.BCST.Z m64 k zmm -// -// Construct and append a VCVTTPD2QQ.BCST.Z instruction to the active function. -func (c *Context) VCVTTPD2QQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPD2QQ_BCST_Z(m, k, xyz)) -} - -// VCVTTPD2QQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2QQ.BCST.Z m64 k xmm -// VCVTTPD2QQ.BCST.Z m64 k ymm -// VCVTTPD2QQ.BCST.Z m64 k zmm -// -// Construct and append a VCVTTPD2QQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2QQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTTPD2QQ_BCST_Z(m, k, xyz) } - -// VCVTTPD2QQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2QQ.SAE zmm k zmm -// VCVTTPD2QQ.SAE zmm zmm -// -// Construct and append a VCVTTPD2QQ.SAE instruction to the active function. -func (c *Context) VCVTTPD2QQ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2QQ_SAE(ops...)) -} - -// VCVTTPD2QQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2QQ.SAE zmm k zmm -// VCVTTPD2QQ.SAE zmm zmm -// -// Construct and append a VCVTTPD2QQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTPD2QQ_SAE(ops ...operand.Op) { ctx.VCVTTPD2QQ_SAE(ops...) } - -// VCVTTPD2QQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2QQ.SAE.Z zmm k zmm -// -// Construct and append a VCVTTPD2QQ.SAE.Z instruction to the active function. -func (c *Context) VCVTTPD2QQ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTTPD2QQ_SAE_Z(z, k, z1)) -} - -// VCVTTPD2QQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2QQ.SAE.Z zmm k zmm -// -// Construct and append a VCVTTPD2QQ.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2QQ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTTPD2QQ_SAE_Z(z, k, z1) } - -// VCVTTPD2QQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2QQ.Z m128 k xmm -// VCVTTPD2QQ.Z m256 k ymm -// VCVTTPD2QQ.Z xmm k xmm -// VCVTTPD2QQ.Z ymm k ymm -// VCVTTPD2QQ.Z m512 k zmm -// VCVTTPD2QQ.Z zmm k zmm -// -// Construct and append a VCVTTPD2QQ.Z instruction to the active function. -func (c *Context) VCVTTPD2QQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPD2QQ_Z(mxyz, k, xyz)) -} - -// VCVTTPD2QQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2QQ.Z m128 k xmm -// VCVTTPD2QQ.Z m256 k ymm -// VCVTTPD2QQ.Z xmm k xmm -// VCVTTPD2QQ.Z ymm k ymm -// VCVTTPD2QQ.Z m512 k zmm -// VCVTTPD2QQ.Z zmm k zmm -// -// Construct and append a VCVTTPD2QQ.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2QQ_Z(mxyz, k, xyz operand.Op) { ctx.VCVTTPD2QQ_Z(mxyz, k, xyz) } - -// VCVTTPD2UDQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTTPD2UDQ m512 k ymm -// VCVTTPD2UDQ m512 ymm -// VCVTTPD2UDQ zmm k ymm -// VCVTTPD2UDQ zmm ymm -// -// Construct and append a VCVTTPD2UDQ instruction to the active function. -func (c *Context) VCVTTPD2UDQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQ(ops...)) -} - -// VCVTTPD2UDQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTTPD2UDQ m512 k ymm -// VCVTTPD2UDQ m512 ymm -// VCVTTPD2UDQ zmm k ymm -// VCVTTPD2UDQ zmm ymm -// -// Construct and append a VCVTTPD2UDQ instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQ(ops ...operand.Op) { ctx.VCVTTPD2UDQ(ops...) } - -// VCVTTPD2UDQX: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTTPD2UDQX m128 k xmm -// VCVTTPD2UDQX m128 xmm -// VCVTTPD2UDQX xmm k xmm -// VCVTTPD2UDQX xmm xmm -// -// Construct and append a VCVTTPD2UDQX instruction to the active function. -func (c *Context) VCVTTPD2UDQX(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQX(ops...)) -} - -// VCVTTPD2UDQX: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTTPD2UDQX m128 k xmm -// VCVTTPD2UDQX m128 xmm -// VCVTTPD2UDQX xmm k xmm -// VCVTTPD2UDQX xmm xmm -// -// Construct and append a VCVTTPD2UDQX instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQX(ops ...operand.Op) { ctx.VCVTTPD2UDQX(ops...) } - -// VCVTTPD2UDQX_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UDQX.BCST m64 k xmm -// VCVTTPD2UDQX.BCST m64 xmm -// -// Construct and append a VCVTTPD2UDQX.BCST instruction to the active function. -func (c *Context) VCVTTPD2UDQX_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQX_BCST(ops...)) -} - -// VCVTTPD2UDQX_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UDQX.BCST m64 k xmm -// VCVTTPD2UDQX.BCST m64 xmm -// -// Construct and append a VCVTTPD2UDQX.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQX_BCST(ops ...operand.Op) { ctx.VCVTTPD2UDQX_BCST(ops...) } - -// VCVTTPD2UDQX_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQX.BCST.Z m64 k xmm -// -// Construct and append a VCVTTPD2UDQX.BCST.Z instruction to the active function. -func (c *Context) VCVTTPD2UDQX_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQX_BCST_Z(m, k, x)) -} - -// VCVTTPD2UDQX_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQX.BCST.Z m64 k xmm -// -// Construct and append a VCVTTPD2UDQX.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQX_BCST_Z(m, k, x operand.Op) { ctx.VCVTTPD2UDQX_BCST_Z(m, k, x) } - -// VCVTTPD2UDQX_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQX.Z m128 k xmm -// VCVTTPD2UDQX.Z xmm k xmm -// -// Construct and append a VCVTTPD2UDQX.Z instruction to the active function. -func (c *Context) VCVTTPD2UDQX_Z(mx, k, x operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQX_Z(mx, k, x)) -} - -// VCVTTPD2UDQX_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQX.Z m128 k xmm -// VCVTTPD2UDQX.Z xmm k xmm -// -// Construct and append a VCVTTPD2UDQX.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQX_Z(mx, k, x operand.Op) { ctx.VCVTTPD2UDQX_Z(mx, k, x) } - -// VCVTTPD2UDQY: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTTPD2UDQY m256 k xmm -// VCVTTPD2UDQY m256 xmm -// VCVTTPD2UDQY ymm k xmm -// VCVTTPD2UDQY ymm xmm -// -// Construct and append a VCVTTPD2UDQY instruction to the active function. -func (c *Context) VCVTTPD2UDQY(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQY(ops...)) -} - -// VCVTTPD2UDQY: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTTPD2UDQY m256 k xmm -// VCVTTPD2UDQY m256 xmm -// VCVTTPD2UDQY ymm k xmm -// VCVTTPD2UDQY ymm xmm -// -// Construct and append a VCVTTPD2UDQY instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQY(ops ...operand.Op) { ctx.VCVTTPD2UDQY(ops...) } - -// VCVTTPD2UDQY_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UDQY.BCST m64 k xmm -// VCVTTPD2UDQY.BCST m64 xmm -// -// Construct and append a VCVTTPD2UDQY.BCST instruction to the active function. -func (c *Context) VCVTTPD2UDQY_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQY_BCST(ops...)) -} - -// VCVTTPD2UDQY_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UDQY.BCST m64 k xmm -// VCVTTPD2UDQY.BCST m64 xmm -// -// Construct and append a VCVTTPD2UDQY.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQY_BCST(ops ...operand.Op) { ctx.VCVTTPD2UDQY_BCST(ops...) } - -// VCVTTPD2UDQY_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQY.BCST.Z m64 k xmm -// -// Construct and append a VCVTTPD2UDQY.BCST.Z instruction to the active function. -func (c *Context) VCVTTPD2UDQY_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQY_BCST_Z(m, k, x)) -} - -// VCVTTPD2UDQY_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQY.BCST.Z m64 k xmm -// -// Construct and append a VCVTTPD2UDQY.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQY_BCST_Z(m, k, x operand.Op) { ctx.VCVTTPD2UDQY_BCST_Z(m, k, x) } - -// VCVTTPD2UDQY_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQY.Z m256 k xmm -// VCVTTPD2UDQY.Z ymm k xmm -// -// Construct and append a VCVTTPD2UDQY.Z instruction to the active function. -func (c *Context) VCVTTPD2UDQY_Z(my, k, x operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQY_Z(my, k, x)) -} - -// VCVTTPD2UDQY_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQY.Z m256 k xmm -// VCVTTPD2UDQY.Z ymm k xmm -// -// Construct and append a VCVTTPD2UDQY.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQY_Z(my, k, x operand.Op) { ctx.VCVTTPD2UDQY_Z(my, k, x) } - -// VCVTTPD2UDQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UDQ.BCST m64 k ymm -// VCVTTPD2UDQ.BCST m64 ymm -// -// Construct and append a VCVTTPD2UDQ.BCST instruction to the active function. -func (c *Context) VCVTTPD2UDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQ_BCST(ops...)) -} - -// VCVTTPD2UDQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UDQ.BCST m64 k ymm -// VCVTTPD2UDQ.BCST m64 ymm -// -// Construct and append a VCVTTPD2UDQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQ_BCST(ops ...operand.Op) { ctx.VCVTTPD2UDQ_BCST(ops...) } - -// VCVTTPD2UDQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQ.BCST.Z m64 k ymm -// -// Construct and append a VCVTTPD2UDQ.BCST.Z instruction to the active function. -func (c *Context) VCVTTPD2UDQ_BCST_Z(m, k, y operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQ_BCST_Z(m, k, y)) -} - -// VCVTTPD2UDQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQ.BCST.Z m64 k ymm -// -// Construct and append a VCVTTPD2UDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQ_BCST_Z(m, k, y operand.Op) { ctx.VCVTTPD2UDQ_BCST_Z(m, k, y) } - -// VCVTTPD2UDQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2UDQ.SAE zmm k ymm -// VCVTTPD2UDQ.SAE zmm ymm -// -// Construct and append a VCVTTPD2UDQ.SAE instruction to the active function. -func (c *Context) VCVTTPD2UDQ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQ_SAE(ops...)) -} - -// VCVTTPD2UDQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2UDQ.SAE zmm k ymm -// VCVTTPD2UDQ.SAE zmm ymm -// -// Construct and append a VCVTTPD2UDQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQ_SAE(ops ...operand.Op) { ctx.VCVTTPD2UDQ_SAE(ops...) } - -// VCVTTPD2UDQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQ.SAE.Z zmm k ymm -// -// Construct and append a VCVTTPD2UDQ.SAE.Z instruction to the active function. -func (c *Context) VCVTTPD2UDQ_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQ_SAE_Z(z, k, y)) -} - -// VCVTTPD2UDQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQ.SAE.Z zmm k ymm -// -// Construct and append a VCVTTPD2UDQ.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQ_SAE_Z(z, k, y operand.Op) { ctx.VCVTTPD2UDQ_SAE_Z(z, k, y) } - -// VCVTTPD2UDQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQ.Z m512 k ymm -// VCVTTPD2UDQ.Z zmm k ymm -// -// Construct and append a VCVTTPD2UDQ.Z instruction to the active function. -func (c *Context) VCVTTPD2UDQ_Z(mz, k, y operand.Op) { - c.addinstruction(x86.VCVTTPD2UDQ_Z(mz, k, y)) -} - -// VCVTTPD2UDQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQ.Z m512 k ymm -// VCVTTPD2UDQ.Z zmm k ymm -// -// Construct and append a VCVTTPD2UDQ.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UDQ_Z(mz, k, y operand.Op) { ctx.VCVTTPD2UDQ_Z(mz, k, y) } - -// VCVTTPD2UQQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers. -// -// Forms: -// -// VCVTTPD2UQQ m128 k xmm -// VCVTTPD2UQQ m128 xmm -// VCVTTPD2UQQ m256 k ymm -// VCVTTPD2UQQ m256 ymm -// VCVTTPD2UQQ xmm k xmm -// VCVTTPD2UQQ xmm xmm -// VCVTTPD2UQQ ymm k ymm -// VCVTTPD2UQQ ymm ymm -// VCVTTPD2UQQ m512 k zmm -// VCVTTPD2UQQ m512 zmm -// VCVTTPD2UQQ zmm k zmm -// VCVTTPD2UQQ zmm zmm -// -// Construct and append a VCVTTPD2UQQ instruction to the active function. -func (c *Context) VCVTTPD2UQQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UQQ(ops...)) -} - -// VCVTTPD2UQQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers. -// -// Forms: -// -// VCVTTPD2UQQ m128 k xmm -// VCVTTPD2UQQ m128 xmm -// VCVTTPD2UQQ m256 k ymm -// VCVTTPD2UQQ m256 ymm -// VCVTTPD2UQQ xmm k xmm -// VCVTTPD2UQQ xmm xmm -// VCVTTPD2UQQ ymm k ymm -// VCVTTPD2UQQ ymm ymm -// VCVTTPD2UQQ m512 k zmm -// VCVTTPD2UQQ m512 zmm -// VCVTTPD2UQQ zmm k zmm -// VCVTTPD2UQQ zmm zmm -// -// Construct and append a VCVTTPD2UQQ instruction to the active function. -// Operates on the global context. -func VCVTTPD2UQQ(ops ...operand.Op) { ctx.VCVTTPD2UQQ(ops...) } - -// VCVTTPD2UQQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UQQ.BCST m64 k xmm -// VCVTTPD2UQQ.BCST m64 k ymm -// VCVTTPD2UQQ.BCST m64 xmm -// VCVTTPD2UQQ.BCST m64 ymm -// VCVTTPD2UQQ.BCST m64 k zmm -// VCVTTPD2UQQ.BCST m64 zmm -// -// Construct and append a VCVTTPD2UQQ.BCST instruction to the active function. -func (c *Context) VCVTTPD2UQQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UQQ_BCST(ops...)) -} - -// VCVTTPD2UQQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UQQ.BCST m64 k xmm -// VCVTTPD2UQQ.BCST m64 k ymm -// VCVTTPD2UQQ.BCST m64 xmm -// VCVTTPD2UQQ.BCST m64 ymm -// VCVTTPD2UQQ.BCST m64 k zmm -// VCVTTPD2UQQ.BCST m64 zmm -// -// Construct and append a VCVTTPD2UQQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPD2UQQ_BCST(ops ...operand.Op) { ctx.VCVTTPD2UQQ_BCST(ops...) } - -// VCVTTPD2UQQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UQQ.BCST.Z m64 k xmm -// VCVTTPD2UQQ.BCST.Z m64 k ymm -// VCVTTPD2UQQ.BCST.Z m64 k zmm -// -// Construct and append a VCVTTPD2UQQ.BCST.Z instruction to the active function. -func (c *Context) VCVTTPD2UQQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPD2UQQ_BCST_Z(m, k, xyz)) -} - -// VCVTTPD2UQQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UQQ.BCST.Z m64 k xmm -// VCVTTPD2UQQ.BCST.Z m64 k ymm -// VCVTTPD2UQQ.BCST.Z m64 k zmm -// -// Construct and append a VCVTTPD2UQQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UQQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTTPD2UQQ_BCST_Z(m, k, xyz) } - -// VCVTTPD2UQQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2UQQ.SAE zmm k zmm -// VCVTTPD2UQQ.SAE zmm zmm -// -// Construct and append a VCVTTPD2UQQ.SAE instruction to the active function. -func (c *Context) VCVTTPD2UQQ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPD2UQQ_SAE(ops...)) -} - -// VCVTTPD2UQQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2UQQ.SAE zmm k zmm -// VCVTTPD2UQQ.SAE zmm zmm -// -// Construct and append a VCVTTPD2UQQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTPD2UQQ_SAE(ops ...operand.Op) { ctx.VCVTTPD2UQQ_SAE(ops...) } - -// VCVTTPD2UQQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UQQ.SAE.Z zmm k zmm -// -// Construct and append a VCVTTPD2UQQ.SAE.Z instruction to the active function. -func (c *Context) VCVTTPD2UQQ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTTPD2UQQ_SAE_Z(z, k, z1)) -} - -// VCVTTPD2UQQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UQQ.SAE.Z zmm k zmm -// -// Construct and append a VCVTTPD2UQQ.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UQQ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTTPD2UQQ_SAE_Z(z, k, z1) } - -// VCVTTPD2UQQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UQQ.Z m128 k xmm -// VCVTTPD2UQQ.Z m256 k ymm -// VCVTTPD2UQQ.Z xmm k xmm -// VCVTTPD2UQQ.Z ymm k ymm -// VCVTTPD2UQQ.Z m512 k zmm -// VCVTTPD2UQQ.Z zmm k zmm -// -// Construct and append a VCVTTPD2UQQ.Z instruction to the active function. -func (c *Context) VCVTTPD2UQQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPD2UQQ_Z(mxyz, k, xyz)) -} - -// VCVTTPD2UQQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UQQ.Z m128 k xmm -// VCVTTPD2UQQ.Z m256 k ymm -// VCVTTPD2UQQ.Z xmm k xmm -// VCVTTPD2UQQ.Z ymm k ymm -// VCVTTPD2UQQ.Z m512 k zmm -// VCVTTPD2UQQ.Z zmm k zmm -// -// Construct and append a VCVTTPD2UQQ.Z instruction to the active function. -// Operates on the global context. -func VCVTTPD2UQQ_Z(mxyz, k, xyz operand.Op) { ctx.VCVTTPD2UQQ_Z(mxyz, k, xyz) } - -// VCVTTPS2DQ: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPS2DQ m128 xmm -// VCVTTPS2DQ m256 ymm -// VCVTTPS2DQ xmm xmm -// VCVTTPS2DQ ymm ymm -// VCVTTPS2DQ m128 k xmm -// VCVTTPS2DQ m256 k ymm -// VCVTTPS2DQ xmm k xmm -// VCVTTPS2DQ ymm k ymm -// VCVTTPS2DQ m512 k zmm -// VCVTTPS2DQ m512 zmm -// VCVTTPS2DQ zmm k zmm -// VCVTTPS2DQ zmm zmm -// -// Construct and append a VCVTTPS2DQ instruction to the active function. -func (c *Context) VCVTTPS2DQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2DQ(ops...)) -} - -// VCVTTPS2DQ: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPS2DQ m128 xmm -// VCVTTPS2DQ m256 ymm -// VCVTTPS2DQ xmm xmm -// VCVTTPS2DQ ymm ymm -// VCVTTPS2DQ m128 k xmm -// VCVTTPS2DQ m256 k ymm -// VCVTTPS2DQ xmm k xmm -// VCVTTPS2DQ ymm k ymm -// VCVTTPS2DQ m512 k zmm -// VCVTTPS2DQ m512 zmm -// VCVTTPS2DQ zmm k zmm -// VCVTTPS2DQ zmm zmm -// -// Construct and append a VCVTTPS2DQ instruction to the active function. -// Operates on the global context. -func VCVTTPS2DQ(ops ...operand.Op) { ctx.VCVTTPS2DQ(ops...) } - -// VCVTTPS2DQ_BCST: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPS2DQ.BCST m32 k xmm -// VCVTTPS2DQ.BCST m32 k ymm -// VCVTTPS2DQ.BCST m32 xmm -// VCVTTPS2DQ.BCST m32 ymm -// VCVTTPS2DQ.BCST m32 k zmm -// VCVTTPS2DQ.BCST m32 zmm -// -// Construct and append a VCVTTPS2DQ.BCST instruction to the active function. -func (c *Context) VCVTTPS2DQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2DQ_BCST(ops...)) -} - -// VCVTTPS2DQ_BCST: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPS2DQ.BCST m32 k xmm -// VCVTTPS2DQ.BCST m32 k ymm -// VCVTTPS2DQ.BCST m32 xmm -// VCVTTPS2DQ.BCST m32 ymm -// VCVTTPS2DQ.BCST m32 k zmm -// VCVTTPS2DQ.BCST m32 zmm -// -// Construct and append a VCVTTPS2DQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPS2DQ_BCST(ops ...operand.Op) { ctx.VCVTTPS2DQ_BCST(ops...) } - -// VCVTTPS2DQ_BCST_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2DQ.BCST.Z m32 k xmm -// VCVTTPS2DQ.BCST.Z m32 k ymm -// VCVTTPS2DQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTTPS2DQ.BCST.Z instruction to the active function. -func (c *Context) VCVTTPS2DQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPS2DQ_BCST_Z(m, k, xyz)) -} - -// VCVTTPS2DQ_BCST_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2DQ.BCST.Z m32 k xmm -// VCVTTPS2DQ.BCST.Z m32 k ymm -// VCVTTPS2DQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTTPS2DQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2DQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTTPS2DQ_BCST_Z(m, k, xyz) } - -// VCVTTPS2DQ_SAE: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2DQ.SAE zmm k zmm -// VCVTTPS2DQ.SAE zmm zmm -// -// Construct and append a VCVTTPS2DQ.SAE instruction to the active function. -func (c *Context) VCVTTPS2DQ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2DQ_SAE(ops...)) -} - -// VCVTTPS2DQ_SAE: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2DQ.SAE zmm k zmm -// VCVTTPS2DQ.SAE zmm zmm -// -// Construct and append a VCVTTPS2DQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTPS2DQ_SAE(ops ...operand.Op) { ctx.VCVTTPS2DQ_SAE(ops...) } - -// VCVTTPS2DQ_SAE_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2DQ.SAE.Z zmm k zmm -// -// Construct and append a VCVTTPS2DQ.SAE.Z instruction to the active function. -func (c *Context) VCVTTPS2DQ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTTPS2DQ_SAE_Z(z, k, z1)) -} - -// VCVTTPS2DQ_SAE_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2DQ.SAE.Z zmm k zmm -// -// Construct and append a VCVTTPS2DQ.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2DQ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTTPS2DQ_SAE_Z(z, k, z1) } - -// VCVTTPS2DQ_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2DQ.Z m128 k xmm -// VCVTTPS2DQ.Z m256 k ymm -// VCVTTPS2DQ.Z xmm k xmm -// VCVTTPS2DQ.Z ymm k ymm -// VCVTTPS2DQ.Z m512 k zmm -// VCVTTPS2DQ.Z zmm k zmm -// -// Construct and append a VCVTTPS2DQ.Z instruction to the active function. -func (c *Context) VCVTTPS2DQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPS2DQ_Z(mxyz, k, xyz)) -} - -// VCVTTPS2DQ_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2DQ.Z m128 k xmm -// VCVTTPS2DQ.Z m256 k ymm -// VCVTTPS2DQ.Z xmm k xmm -// VCVTTPS2DQ.Z ymm k ymm -// VCVTTPS2DQ.Z m512 k zmm -// VCVTTPS2DQ.Z zmm k zmm -// -// Construct and append a VCVTTPS2DQ.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2DQ_Z(mxyz, k, xyz operand.Op) { ctx.VCVTTPS2DQ_Z(mxyz, k, xyz) } - -// VCVTTPS2QQ: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values. -// -// Forms: -// -// VCVTTPS2QQ m128 k ymm -// VCVTTPS2QQ m128 ymm -// VCVTTPS2QQ m64 k xmm -// VCVTTPS2QQ m64 xmm -// VCVTTPS2QQ xmm k xmm -// VCVTTPS2QQ xmm k ymm -// VCVTTPS2QQ xmm xmm -// VCVTTPS2QQ xmm ymm -// VCVTTPS2QQ m256 k zmm -// VCVTTPS2QQ m256 zmm -// VCVTTPS2QQ ymm k zmm -// VCVTTPS2QQ ymm zmm -// -// Construct and append a VCVTTPS2QQ instruction to the active function. -func (c *Context) VCVTTPS2QQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2QQ(ops...)) -} - -// VCVTTPS2QQ: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values. -// -// Forms: -// -// VCVTTPS2QQ m128 k ymm -// VCVTTPS2QQ m128 ymm -// VCVTTPS2QQ m64 k xmm -// VCVTTPS2QQ m64 xmm -// VCVTTPS2QQ xmm k xmm -// VCVTTPS2QQ xmm k ymm -// VCVTTPS2QQ xmm xmm -// VCVTTPS2QQ xmm ymm -// VCVTTPS2QQ m256 k zmm -// VCVTTPS2QQ m256 zmm -// VCVTTPS2QQ ymm k zmm -// VCVTTPS2QQ ymm zmm -// -// Construct and append a VCVTTPS2QQ instruction to the active function. -// Operates on the global context. -func VCVTTPS2QQ(ops ...operand.Op) { ctx.VCVTTPS2QQ(ops...) } - -// VCVTTPS2QQ_BCST: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTTPS2QQ.BCST m32 k xmm -// VCVTTPS2QQ.BCST m32 k ymm -// VCVTTPS2QQ.BCST m32 xmm -// VCVTTPS2QQ.BCST m32 ymm -// VCVTTPS2QQ.BCST m32 k zmm -// VCVTTPS2QQ.BCST m32 zmm -// -// Construct and append a VCVTTPS2QQ.BCST instruction to the active function. -func (c *Context) VCVTTPS2QQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2QQ_BCST(ops...)) -} - -// VCVTTPS2QQ_BCST: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTTPS2QQ.BCST m32 k xmm -// VCVTTPS2QQ.BCST m32 k ymm -// VCVTTPS2QQ.BCST m32 xmm -// VCVTTPS2QQ.BCST m32 ymm -// VCVTTPS2QQ.BCST m32 k zmm -// VCVTTPS2QQ.BCST m32 zmm -// -// Construct and append a VCVTTPS2QQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPS2QQ_BCST(ops ...operand.Op) { ctx.VCVTTPS2QQ_BCST(ops...) } - -// VCVTTPS2QQ_BCST_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2QQ.BCST.Z m32 k xmm -// VCVTTPS2QQ.BCST.Z m32 k ymm -// VCVTTPS2QQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTTPS2QQ.BCST.Z instruction to the active function. -func (c *Context) VCVTTPS2QQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPS2QQ_BCST_Z(m, k, xyz)) -} - -// VCVTTPS2QQ_BCST_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2QQ.BCST.Z m32 k xmm -// VCVTTPS2QQ.BCST.Z m32 k ymm -// VCVTTPS2QQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTTPS2QQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2QQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTTPS2QQ_BCST_Z(m, k, xyz) } - -// VCVTTPS2QQ_SAE: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2QQ.SAE ymm k zmm -// VCVTTPS2QQ.SAE ymm zmm -// -// Construct and append a VCVTTPS2QQ.SAE instruction to the active function. -func (c *Context) VCVTTPS2QQ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2QQ_SAE(ops...)) -} - -// VCVTTPS2QQ_SAE: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2QQ.SAE ymm k zmm -// VCVTTPS2QQ.SAE ymm zmm -// -// Construct and append a VCVTTPS2QQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTPS2QQ_SAE(ops ...operand.Op) { ctx.VCVTTPS2QQ_SAE(ops...) } - -// VCVTTPS2QQ_SAE_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2QQ.SAE.Z ymm k zmm -// -// Construct and append a VCVTTPS2QQ.SAE.Z instruction to the active function. -func (c *Context) VCVTTPS2QQ_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTTPS2QQ_SAE_Z(y, k, z)) -} - -// VCVTTPS2QQ_SAE_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2QQ.SAE.Z ymm k zmm -// -// Construct and append a VCVTTPS2QQ.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2QQ_SAE_Z(y, k, z operand.Op) { ctx.VCVTTPS2QQ_SAE_Z(y, k, z) } - -// VCVTTPS2QQ_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2QQ.Z m128 k ymm -// VCVTTPS2QQ.Z m64 k xmm -// VCVTTPS2QQ.Z xmm k xmm -// VCVTTPS2QQ.Z xmm k ymm -// VCVTTPS2QQ.Z m256 k zmm -// VCVTTPS2QQ.Z ymm k zmm -// -// Construct and append a VCVTTPS2QQ.Z instruction to the active function. -func (c *Context) VCVTTPS2QQ_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPS2QQ_Z(mxy, k, xyz)) -} - -// VCVTTPS2QQ_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2QQ.Z m128 k ymm -// VCVTTPS2QQ.Z m64 k xmm -// VCVTTPS2QQ.Z xmm k xmm -// VCVTTPS2QQ.Z xmm k ymm -// VCVTTPS2QQ.Z m256 k zmm -// VCVTTPS2QQ.Z ymm k zmm -// -// Construct and append a VCVTTPS2QQ.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2QQ_Z(mxy, k, xyz operand.Op) { ctx.VCVTTPS2QQ_Z(mxy, k, xyz) } - -// VCVTTPS2UDQ: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values. -// -// Forms: -// -// VCVTTPS2UDQ m128 k xmm -// VCVTTPS2UDQ m128 xmm -// VCVTTPS2UDQ m256 k ymm -// VCVTTPS2UDQ m256 ymm -// VCVTTPS2UDQ xmm k xmm -// VCVTTPS2UDQ xmm xmm -// VCVTTPS2UDQ ymm k ymm -// VCVTTPS2UDQ ymm ymm -// VCVTTPS2UDQ m512 k zmm -// VCVTTPS2UDQ m512 zmm -// VCVTTPS2UDQ zmm k zmm -// VCVTTPS2UDQ zmm zmm -// -// Construct and append a VCVTTPS2UDQ instruction to the active function. -func (c *Context) VCVTTPS2UDQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2UDQ(ops...)) -} - -// VCVTTPS2UDQ: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values. -// -// Forms: -// -// VCVTTPS2UDQ m128 k xmm -// VCVTTPS2UDQ m128 xmm -// VCVTTPS2UDQ m256 k ymm -// VCVTTPS2UDQ m256 ymm -// VCVTTPS2UDQ xmm k xmm -// VCVTTPS2UDQ xmm xmm -// VCVTTPS2UDQ ymm k ymm -// VCVTTPS2UDQ ymm ymm -// VCVTTPS2UDQ m512 k zmm -// VCVTTPS2UDQ m512 zmm -// VCVTTPS2UDQ zmm k zmm -// VCVTTPS2UDQ zmm zmm -// -// Construct and append a VCVTTPS2UDQ instruction to the active function. -// Operates on the global context. -func VCVTTPS2UDQ(ops ...operand.Op) { ctx.VCVTTPS2UDQ(ops...) } - -// VCVTTPS2UDQ_BCST: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast). -// -// Forms: -// -// VCVTTPS2UDQ.BCST m32 k xmm -// VCVTTPS2UDQ.BCST m32 k ymm -// VCVTTPS2UDQ.BCST m32 xmm -// VCVTTPS2UDQ.BCST m32 ymm -// VCVTTPS2UDQ.BCST m32 k zmm -// VCVTTPS2UDQ.BCST m32 zmm -// -// Construct and append a VCVTTPS2UDQ.BCST instruction to the active function. -func (c *Context) VCVTTPS2UDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2UDQ_BCST(ops...)) -} - -// VCVTTPS2UDQ_BCST: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast). -// -// Forms: -// -// VCVTTPS2UDQ.BCST m32 k xmm -// VCVTTPS2UDQ.BCST m32 k ymm -// VCVTTPS2UDQ.BCST m32 xmm -// VCVTTPS2UDQ.BCST m32 ymm -// VCVTTPS2UDQ.BCST m32 k zmm -// VCVTTPS2UDQ.BCST m32 zmm -// -// Construct and append a VCVTTPS2UDQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPS2UDQ_BCST(ops ...operand.Op) { ctx.VCVTTPS2UDQ_BCST(ops...) } - -// VCVTTPS2UDQ_BCST_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UDQ.BCST.Z m32 k xmm -// VCVTTPS2UDQ.BCST.Z m32 k ymm -// VCVTTPS2UDQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTTPS2UDQ.BCST.Z instruction to the active function. -func (c *Context) VCVTTPS2UDQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPS2UDQ_BCST_Z(m, k, xyz)) -} - -// VCVTTPS2UDQ_BCST_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UDQ.BCST.Z m32 k xmm -// VCVTTPS2UDQ.BCST.Z m32 k ymm -// VCVTTPS2UDQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTTPS2UDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2UDQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTTPS2UDQ_BCST_Z(m, k, xyz) } - -// VCVTTPS2UDQ_SAE: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2UDQ.SAE zmm k zmm -// VCVTTPS2UDQ.SAE zmm zmm -// -// Construct and append a VCVTTPS2UDQ.SAE instruction to the active function. -func (c *Context) VCVTTPS2UDQ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2UDQ_SAE(ops...)) -} - -// VCVTTPS2UDQ_SAE: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2UDQ.SAE zmm k zmm -// VCVTTPS2UDQ.SAE zmm zmm -// -// Construct and append a VCVTTPS2UDQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTPS2UDQ_SAE(ops ...operand.Op) { ctx.VCVTTPS2UDQ_SAE(ops...) } - -// VCVTTPS2UDQ_SAE_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UDQ.SAE.Z zmm k zmm -// -// Construct and append a VCVTTPS2UDQ.SAE.Z instruction to the active function. -func (c *Context) VCVTTPS2UDQ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTTPS2UDQ_SAE_Z(z, k, z1)) -} - -// VCVTTPS2UDQ_SAE_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UDQ.SAE.Z zmm k zmm -// -// Construct and append a VCVTTPS2UDQ.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2UDQ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTTPS2UDQ_SAE_Z(z, k, z1) } - -// VCVTTPS2UDQ_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UDQ.Z m128 k xmm -// VCVTTPS2UDQ.Z m256 k ymm -// VCVTTPS2UDQ.Z xmm k xmm -// VCVTTPS2UDQ.Z ymm k ymm -// VCVTTPS2UDQ.Z m512 k zmm -// VCVTTPS2UDQ.Z zmm k zmm -// -// Construct and append a VCVTTPS2UDQ.Z instruction to the active function. -func (c *Context) VCVTTPS2UDQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPS2UDQ_Z(mxyz, k, xyz)) -} - -// VCVTTPS2UDQ_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UDQ.Z m128 k xmm -// VCVTTPS2UDQ.Z m256 k ymm -// VCVTTPS2UDQ.Z xmm k xmm -// VCVTTPS2UDQ.Z ymm k ymm -// VCVTTPS2UDQ.Z m512 k zmm -// VCVTTPS2UDQ.Z zmm k zmm -// -// Construct and append a VCVTTPS2UDQ.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2UDQ_Z(mxyz, k, xyz operand.Op) { ctx.VCVTTPS2UDQ_Z(mxyz, k, xyz) } - -// VCVTTPS2UQQ: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values. -// -// Forms: -// -// VCVTTPS2UQQ m128 k ymm -// VCVTTPS2UQQ m128 ymm -// VCVTTPS2UQQ m64 k xmm -// VCVTTPS2UQQ m64 xmm -// VCVTTPS2UQQ xmm k xmm -// VCVTTPS2UQQ xmm k ymm -// VCVTTPS2UQQ xmm xmm -// VCVTTPS2UQQ xmm ymm -// VCVTTPS2UQQ m256 k zmm -// VCVTTPS2UQQ m256 zmm -// VCVTTPS2UQQ ymm k zmm -// VCVTTPS2UQQ ymm zmm -// -// Construct and append a VCVTTPS2UQQ instruction to the active function. -func (c *Context) VCVTTPS2UQQ(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2UQQ(ops...)) -} - -// VCVTTPS2UQQ: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values. -// -// Forms: -// -// VCVTTPS2UQQ m128 k ymm -// VCVTTPS2UQQ m128 ymm -// VCVTTPS2UQQ m64 k xmm -// VCVTTPS2UQQ m64 xmm -// VCVTTPS2UQQ xmm k xmm -// VCVTTPS2UQQ xmm k ymm -// VCVTTPS2UQQ xmm xmm -// VCVTTPS2UQQ xmm ymm -// VCVTTPS2UQQ m256 k zmm -// VCVTTPS2UQQ m256 zmm -// VCVTTPS2UQQ ymm k zmm -// VCVTTPS2UQQ ymm zmm -// -// Construct and append a VCVTTPS2UQQ instruction to the active function. -// Operates on the global context. -func VCVTTPS2UQQ(ops ...operand.Op) { ctx.VCVTTPS2UQQ(ops...) } - -// VCVTTPS2UQQ_BCST: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTTPS2UQQ.BCST m32 k xmm -// VCVTTPS2UQQ.BCST m32 k ymm -// VCVTTPS2UQQ.BCST m32 xmm -// VCVTTPS2UQQ.BCST m32 ymm -// VCVTTPS2UQQ.BCST m32 k zmm -// VCVTTPS2UQQ.BCST m32 zmm -// -// Construct and append a VCVTTPS2UQQ.BCST instruction to the active function. -func (c *Context) VCVTTPS2UQQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2UQQ_BCST(ops...)) -} - -// VCVTTPS2UQQ_BCST: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTTPS2UQQ.BCST m32 k xmm -// VCVTTPS2UQQ.BCST m32 k ymm -// VCVTTPS2UQQ.BCST m32 xmm -// VCVTTPS2UQQ.BCST m32 ymm -// VCVTTPS2UQQ.BCST m32 k zmm -// VCVTTPS2UQQ.BCST m32 zmm -// -// Construct and append a VCVTTPS2UQQ.BCST instruction to the active function. -// Operates on the global context. -func VCVTTPS2UQQ_BCST(ops ...operand.Op) { ctx.VCVTTPS2UQQ_BCST(ops...) } - -// VCVTTPS2UQQ_BCST_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UQQ.BCST.Z m32 k xmm -// VCVTTPS2UQQ.BCST.Z m32 k ymm -// VCVTTPS2UQQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTTPS2UQQ.BCST.Z instruction to the active function. -func (c *Context) VCVTTPS2UQQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPS2UQQ_BCST_Z(m, k, xyz)) -} - -// VCVTTPS2UQQ_BCST_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UQQ.BCST.Z m32 k xmm -// VCVTTPS2UQQ.BCST.Z m32 k ymm -// VCVTTPS2UQQ.BCST.Z m32 k zmm -// -// Construct and append a VCVTTPS2UQQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2UQQ_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTTPS2UQQ_BCST_Z(m, k, xyz) } - -// VCVTTPS2UQQ_SAE: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2UQQ.SAE ymm k zmm -// VCVTTPS2UQQ.SAE ymm zmm -// -// Construct and append a VCVTTPS2UQQ.SAE instruction to the active function. -func (c *Context) VCVTTPS2UQQ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTTPS2UQQ_SAE(ops...)) -} - -// VCVTTPS2UQQ_SAE: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2UQQ.SAE ymm k zmm -// VCVTTPS2UQQ.SAE ymm zmm -// -// Construct and append a VCVTTPS2UQQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTPS2UQQ_SAE(ops ...operand.Op) { ctx.VCVTTPS2UQQ_SAE(ops...) } - -// VCVTTPS2UQQ_SAE_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UQQ.SAE.Z ymm k zmm -// -// Construct and append a VCVTTPS2UQQ.SAE.Z instruction to the active function. -func (c *Context) VCVTTPS2UQQ_SAE_Z(y, k, z operand.Op) { - c.addinstruction(x86.VCVTTPS2UQQ_SAE_Z(y, k, z)) -} - -// VCVTTPS2UQQ_SAE_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UQQ.SAE.Z ymm k zmm -// -// Construct and append a VCVTTPS2UQQ.SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2UQQ_SAE_Z(y, k, z operand.Op) { ctx.VCVTTPS2UQQ_SAE_Z(y, k, z) } - -// VCVTTPS2UQQ_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UQQ.Z m128 k ymm -// VCVTTPS2UQQ.Z m64 k xmm -// VCVTTPS2UQQ.Z xmm k xmm -// VCVTTPS2UQQ.Z xmm k ymm -// VCVTTPS2UQQ.Z m256 k zmm -// VCVTTPS2UQQ.Z ymm k zmm -// -// Construct and append a VCVTTPS2UQQ.Z instruction to the active function. -func (c *Context) VCVTTPS2UQQ_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VCVTTPS2UQQ_Z(mxy, k, xyz)) -} - -// VCVTTPS2UQQ_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UQQ.Z m128 k ymm -// VCVTTPS2UQQ.Z m64 k xmm -// VCVTTPS2UQQ.Z xmm k xmm -// VCVTTPS2UQQ.Z xmm k ymm -// VCVTTPS2UQQ.Z m256 k zmm -// VCVTTPS2UQQ.Z ymm k zmm -// -// Construct and append a VCVTTPS2UQQ.Z instruction to the active function. -// Operates on the global context. -func VCVTTPS2UQQ_Z(mxy, k, xyz operand.Op) { ctx.VCVTTPS2UQQ_Z(mxy, k, xyz) } - -// VCVTTSD2SI: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// VCVTTSD2SI m64 r32 -// VCVTTSD2SI xmm r32 -// -// Construct and append a VCVTTSD2SI instruction to the active function. -func (c *Context) VCVTTSD2SI(mx, r operand.Op) { - c.addinstruction(x86.VCVTTSD2SI(mx, r)) -} - -// VCVTTSD2SI: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// VCVTTSD2SI m64 r32 -// VCVTTSD2SI xmm r32 -// -// Construct and append a VCVTTSD2SI instruction to the active function. -// Operates on the global context. -func VCVTTSD2SI(mx, r operand.Op) { ctx.VCVTTSD2SI(mx, r) } - -// VCVTTSD2SIQ: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// VCVTTSD2SIQ m64 r64 -// VCVTTSD2SIQ xmm r64 -// -// Construct and append a VCVTTSD2SIQ instruction to the active function. -func (c *Context) VCVTTSD2SIQ(mx, r operand.Op) { - c.addinstruction(x86.VCVTTSD2SIQ(mx, r)) -} - -// VCVTTSD2SIQ: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// VCVTTSD2SIQ m64 r64 -// VCVTTSD2SIQ xmm r64 -// -// Construct and append a VCVTTSD2SIQ instruction to the active function. -// Operates on the global context. -func VCVTTSD2SIQ(mx, r operand.Op) { ctx.VCVTTSD2SIQ(mx, r) } - -// VCVTTSD2SIQ_SAE: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2SIQ.SAE xmm r64 -// -// Construct and append a VCVTTSD2SIQ.SAE instruction to the active function. -func (c *Context) VCVTTSD2SIQ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTTSD2SIQ_SAE(x, r)) -} - -// VCVTTSD2SIQ_SAE: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2SIQ.SAE xmm r64 -// -// Construct and append a VCVTTSD2SIQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTSD2SIQ_SAE(x, r operand.Op) { ctx.VCVTTSD2SIQ_SAE(x, r) } - -// VCVTTSD2SI_SAE: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2SI.SAE xmm r32 -// -// Construct and append a VCVTTSD2SI.SAE instruction to the active function. -func (c *Context) VCVTTSD2SI_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTTSD2SI_SAE(x, r)) -} - -// VCVTTSD2SI_SAE: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2SI.SAE xmm r32 -// -// Construct and append a VCVTTSD2SI.SAE instruction to the active function. -// Operates on the global context. -func VCVTTSD2SI_SAE(x, r operand.Op) { ctx.VCVTTSD2SI_SAE(x, r) } - -// VCVTTSD2USIL: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSD2USIL m64 r32 -// VCVTTSD2USIL xmm r32 -// -// Construct and append a VCVTTSD2USIL instruction to the active function. -func (c *Context) VCVTTSD2USIL(mx, r operand.Op) { - c.addinstruction(x86.VCVTTSD2USIL(mx, r)) -} - -// VCVTTSD2USIL: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSD2USIL m64 r32 -// VCVTTSD2USIL xmm r32 -// -// Construct and append a VCVTTSD2USIL instruction to the active function. -// Operates on the global context. -func VCVTTSD2USIL(mx, r operand.Op) { ctx.VCVTTSD2USIL(mx, r) } - -// VCVTTSD2USIL_SAE: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2USIL.SAE xmm r32 -// -// Construct and append a VCVTTSD2USIL.SAE instruction to the active function. -func (c *Context) VCVTTSD2USIL_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTTSD2USIL_SAE(x, r)) -} - -// VCVTTSD2USIL_SAE: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2USIL.SAE xmm r32 -// -// Construct and append a VCVTTSD2USIL.SAE instruction to the active function. -// Operates on the global context. -func VCVTTSD2USIL_SAE(x, r operand.Op) { ctx.VCVTTSD2USIL_SAE(x, r) } - -// VCVTTSD2USIQ: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSD2USIQ m64 r64 -// VCVTTSD2USIQ xmm r64 -// -// Construct and append a VCVTTSD2USIQ instruction to the active function. -func (c *Context) VCVTTSD2USIQ(mx, r operand.Op) { - c.addinstruction(x86.VCVTTSD2USIQ(mx, r)) -} - -// VCVTTSD2USIQ: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSD2USIQ m64 r64 -// VCVTTSD2USIQ xmm r64 -// -// Construct and append a VCVTTSD2USIQ instruction to the active function. -// Operates on the global context. -func VCVTTSD2USIQ(mx, r operand.Op) { ctx.VCVTTSD2USIQ(mx, r) } - -// VCVTTSD2USIQ_SAE: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2USIQ.SAE xmm r64 -// -// Construct and append a VCVTTSD2USIQ.SAE instruction to the active function. -func (c *Context) VCVTTSD2USIQ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTTSD2USIQ_SAE(x, r)) -} - -// VCVTTSD2USIQ_SAE: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2USIQ.SAE xmm r64 -// -// Construct and append a VCVTTSD2USIQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTSD2USIQ_SAE(x, r operand.Op) { ctx.VCVTTSD2USIQ_SAE(x, r) } - -// VCVTTSS2SI: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTTSS2SI m32 r32 -// VCVTTSS2SI xmm r32 -// -// Construct and append a VCVTTSS2SI instruction to the active function. -func (c *Context) VCVTTSS2SI(mx, r operand.Op) { - c.addinstruction(x86.VCVTTSS2SI(mx, r)) -} - -// VCVTTSS2SI: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTTSS2SI m32 r32 -// VCVTTSS2SI xmm r32 -// -// Construct and append a VCVTTSS2SI instruction to the active function. -// Operates on the global context. -func VCVTTSS2SI(mx, r operand.Op) { ctx.VCVTTSS2SI(mx, r) } - -// VCVTTSS2SIQ: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTTSS2SIQ m32 r64 -// VCVTTSS2SIQ xmm r64 -// -// Construct and append a VCVTTSS2SIQ instruction to the active function. -func (c *Context) VCVTTSS2SIQ(mx, r operand.Op) { - c.addinstruction(x86.VCVTTSS2SIQ(mx, r)) -} - -// VCVTTSS2SIQ: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTTSS2SIQ m32 r64 -// VCVTTSS2SIQ xmm r64 -// -// Construct and append a VCVTTSS2SIQ instruction to the active function. -// Operates on the global context. -func VCVTTSS2SIQ(mx, r operand.Op) { ctx.VCVTTSS2SIQ(mx, r) } - -// VCVTTSS2SIQ_SAE: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2SIQ.SAE xmm r64 -// -// Construct and append a VCVTTSS2SIQ.SAE instruction to the active function. -func (c *Context) VCVTTSS2SIQ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTTSS2SIQ_SAE(x, r)) -} - -// VCVTTSS2SIQ_SAE: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2SIQ.SAE xmm r64 -// -// Construct and append a VCVTTSS2SIQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTSS2SIQ_SAE(x, r operand.Op) { ctx.VCVTTSS2SIQ_SAE(x, r) } - -// VCVTTSS2SI_SAE: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2SI.SAE xmm r32 -// -// Construct and append a VCVTTSS2SI.SAE instruction to the active function. -func (c *Context) VCVTTSS2SI_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTTSS2SI_SAE(x, r)) -} - -// VCVTTSS2SI_SAE: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2SI.SAE xmm r32 -// -// Construct and append a VCVTTSS2SI.SAE instruction to the active function. -// Operates on the global context. -func VCVTTSS2SI_SAE(x, r operand.Op) { ctx.VCVTTSS2SI_SAE(x, r) } - -// VCVTTSS2USIL: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSS2USIL m32 r32 -// VCVTTSS2USIL xmm r32 -// -// Construct and append a VCVTTSS2USIL instruction to the active function. -func (c *Context) VCVTTSS2USIL(mx, r operand.Op) { - c.addinstruction(x86.VCVTTSS2USIL(mx, r)) -} - -// VCVTTSS2USIL: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSS2USIL m32 r32 -// VCVTTSS2USIL xmm r32 -// -// Construct and append a VCVTTSS2USIL instruction to the active function. -// Operates on the global context. -func VCVTTSS2USIL(mx, r operand.Op) { ctx.VCVTTSS2USIL(mx, r) } - -// VCVTTSS2USIL_SAE: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2USIL.SAE xmm r32 -// -// Construct and append a VCVTTSS2USIL.SAE instruction to the active function. -func (c *Context) VCVTTSS2USIL_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTTSS2USIL_SAE(x, r)) -} - -// VCVTTSS2USIL_SAE: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2USIL.SAE xmm r32 -// -// Construct and append a VCVTTSS2USIL.SAE instruction to the active function. -// Operates on the global context. -func VCVTTSS2USIL_SAE(x, r operand.Op) { ctx.VCVTTSS2USIL_SAE(x, r) } - -// VCVTTSS2USIQ: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSS2USIQ m32 r64 -// VCVTTSS2USIQ xmm r64 -// -// Construct and append a VCVTTSS2USIQ instruction to the active function. -func (c *Context) VCVTTSS2USIQ(mx, r operand.Op) { - c.addinstruction(x86.VCVTTSS2USIQ(mx, r)) -} - -// VCVTTSS2USIQ: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSS2USIQ m32 r64 -// VCVTTSS2USIQ xmm r64 -// -// Construct and append a VCVTTSS2USIQ instruction to the active function. -// Operates on the global context. -func VCVTTSS2USIQ(mx, r operand.Op) { ctx.VCVTTSS2USIQ(mx, r) } - -// VCVTTSS2USIQ_SAE: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2USIQ.SAE xmm r64 -// -// Construct and append a VCVTTSS2USIQ.SAE instruction to the active function. -func (c *Context) VCVTTSS2USIQ_SAE(x, r operand.Op) { - c.addinstruction(x86.VCVTTSS2USIQ_SAE(x, r)) -} - -// VCVTTSS2USIQ_SAE: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2USIQ.SAE xmm r64 -// -// Construct and append a VCVTTSS2USIQ.SAE instruction to the active function. -// Operates on the global context. -func VCVTTSS2USIQ_SAE(x, r operand.Op) { ctx.VCVTTSS2USIQ_SAE(x, r) } - -// VCVTUDQ2PD: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUDQ2PD m128 k ymm -// VCVTUDQ2PD m128 ymm -// VCVTUDQ2PD m64 k xmm -// VCVTUDQ2PD m64 xmm -// VCVTUDQ2PD xmm k xmm -// VCVTUDQ2PD xmm k ymm -// VCVTUDQ2PD xmm xmm -// VCVTUDQ2PD xmm ymm -// VCVTUDQ2PD m256 k zmm -// VCVTUDQ2PD m256 zmm -// VCVTUDQ2PD ymm k zmm -// VCVTUDQ2PD ymm zmm -// -// Construct and append a VCVTUDQ2PD instruction to the active function. -func (c *Context) VCVTUDQ2PD(ops ...operand.Op) { - c.addinstruction(x86.VCVTUDQ2PD(ops...)) -} - -// VCVTUDQ2PD: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUDQ2PD m128 k ymm -// VCVTUDQ2PD m128 ymm -// VCVTUDQ2PD m64 k xmm -// VCVTUDQ2PD m64 xmm -// VCVTUDQ2PD xmm k xmm -// VCVTUDQ2PD xmm k ymm -// VCVTUDQ2PD xmm xmm -// VCVTUDQ2PD xmm ymm -// VCVTUDQ2PD m256 k zmm -// VCVTUDQ2PD m256 zmm -// VCVTUDQ2PD ymm k zmm -// VCVTUDQ2PD ymm zmm -// -// Construct and append a VCVTUDQ2PD instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PD(ops ...operand.Op) { ctx.VCVTUDQ2PD(ops...) } - -// VCVTUDQ2PD_BCST: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUDQ2PD.BCST m32 k xmm -// VCVTUDQ2PD.BCST m32 k ymm -// VCVTUDQ2PD.BCST m32 xmm -// VCVTUDQ2PD.BCST m32 ymm -// VCVTUDQ2PD.BCST m32 k zmm -// VCVTUDQ2PD.BCST m32 zmm -// -// Construct and append a VCVTUDQ2PD.BCST instruction to the active function. -func (c *Context) VCVTUDQ2PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTUDQ2PD_BCST(ops...)) -} - -// VCVTUDQ2PD_BCST: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUDQ2PD.BCST m32 k xmm -// VCVTUDQ2PD.BCST m32 k ymm -// VCVTUDQ2PD.BCST m32 xmm -// VCVTUDQ2PD.BCST m32 ymm -// VCVTUDQ2PD.BCST m32 k zmm -// VCVTUDQ2PD.BCST m32 zmm -// -// Construct and append a VCVTUDQ2PD.BCST instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PD_BCST(ops ...operand.Op) { ctx.VCVTUDQ2PD_BCST(ops...) } - -// VCVTUDQ2PD_BCST_Z: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PD.BCST.Z m32 k xmm -// VCVTUDQ2PD.BCST.Z m32 k ymm -// VCVTUDQ2PD.BCST.Z m32 k zmm -// -// Construct and append a VCVTUDQ2PD.BCST.Z instruction to the active function. -func (c *Context) VCVTUDQ2PD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTUDQ2PD_BCST_Z(m, k, xyz)) -} - -// VCVTUDQ2PD_BCST_Z: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PD.BCST.Z m32 k xmm -// VCVTUDQ2PD.BCST.Z m32 k ymm -// VCVTUDQ2PD.BCST.Z m32 k zmm -// -// Construct and append a VCVTUDQ2PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PD_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTUDQ2PD_BCST_Z(m, k, xyz) } - -// VCVTUDQ2PD_Z: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PD.Z m128 k ymm -// VCVTUDQ2PD.Z m64 k xmm -// VCVTUDQ2PD.Z xmm k xmm -// VCVTUDQ2PD.Z xmm k ymm -// VCVTUDQ2PD.Z m256 k zmm -// VCVTUDQ2PD.Z ymm k zmm -// -// Construct and append a VCVTUDQ2PD.Z instruction to the active function. -func (c *Context) VCVTUDQ2PD_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VCVTUDQ2PD_Z(mxy, k, xyz)) -} - -// VCVTUDQ2PD_Z: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PD.Z m128 k ymm -// VCVTUDQ2PD.Z m64 k xmm -// VCVTUDQ2PD.Z xmm k xmm -// VCVTUDQ2PD.Z xmm k ymm -// VCVTUDQ2PD.Z m256 k zmm -// VCVTUDQ2PD.Z ymm k zmm -// -// Construct and append a VCVTUDQ2PD.Z instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PD_Z(mxy, k, xyz operand.Op) { ctx.VCVTUDQ2PD_Z(mxy, k, xyz) } - -// VCVTUDQ2PS: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUDQ2PS m128 k xmm -// VCVTUDQ2PS m128 xmm -// VCVTUDQ2PS m256 k ymm -// VCVTUDQ2PS m256 ymm -// VCVTUDQ2PS xmm k xmm -// VCVTUDQ2PS xmm xmm -// VCVTUDQ2PS ymm k ymm -// VCVTUDQ2PS ymm ymm -// VCVTUDQ2PS m512 k zmm -// VCVTUDQ2PS m512 zmm -// VCVTUDQ2PS zmm k zmm -// VCVTUDQ2PS zmm zmm -// -// Construct and append a VCVTUDQ2PS instruction to the active function. -func (c *Context) VCVTUDQ2PS(ops ...operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS(ops...)) -} - -// VCVTUDQ2PS: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUDQ2PS m128 k xmm -// VCVTUDQ2PS m128 xmm -// VCVTUDQ2PS m256 k ymm -// VCVTUDQ2PS m256 ymm -// VCVTUDQ2PS xmm k xmm -// VCVTUDQ2PS xmm xmm -// VCVTUDQ2PS ymm k ymm -// VCVTUDQ2PS ymm ymm -// VCVTUDQ2PS m512 k zmm -// VCVTUDQ2PS m512 zmm -// VCVTUDQ2PS zmm k zmm -// VCVTUDQ2PS zmm zmm -// -// Construct and append a VCVTUDQ2PS instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS(ops ...operand.Op) { ctx.VCVTUDQ2PS(ops...) } - -// VCVTUDQ2PS_BCST: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUDQ2PS.BCST m32 k xmm -// VCVTUDQ2PS.BCST m32 k ymm -// VCVTUDQ2PS.BCST m32 xmm -// VCVTUDQ2PS.BCST m32 ymm -// VCVTUDQ2PS.BCST m32 k zmm -// VCVTUDQ2PS.BCST m32 zmm -// -// Construct and append a VCVTUDQ2PS.BCST instruction to the active function. -func (c *Context) VCVTUDQ2PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_BCST(ops...)) -} - -// VCVTUDQ2PS_BCST: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUDQ2PS.BCST m32 k xmm -// VCVTUDQ2PS.BCST m32 k ymm -// VCVTUDQ2PS.BCST m32 xmm -// VCVTUDQ2PS.BCST m32 ymm -// VCVTUDQ2PS.BCST m32 k zmm -// VCVTUDQ2PS.BCST m32 zmm -// -// Construct and append a VCVTUDQ2PS.BCST instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_BCST(ops ...operand.Op) { ctx.VCVTUDQ2PS_BCST(ops...) } - -// VCVTUDQ2PS_BCST_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.BCST.Z m32 k xmm -// VCVTUDQ2PS.BCST.Z m32 k ymm -// VCVTUDQ2PS.BCST.Z m32 k zmm -// -// Construct and append a VCVTUDQ2PS.BCST.Z instruction to the active function. -func (c *Context) VCVTUDQ2PS_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_BCST_Z(m, k, xyz)) -} - -// VCVTUDQ2PS_BCST_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.BCST.Z m32 k xmm -// VCVTUDQ2PS.BCST.Z m32 k ymm -// VCVTUDQ2PS.BCST.Z m32 k zmm -// -// Construct and append a VCVTUDQ2PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTUDQ2PS_BCST_Z(m, k, xyz) } - -// VCVTUDQ2PS_RD_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUDQ2PS.RD_SAE zmm k zmm -// VCVTUDQ2PS.RD_SAE zmm zmm -// -// Construct and append a VCVTUDQ2PS.RD_SAE instruction to the active function. -func (c *Context) VCVTUDQ2PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_RD_SAE(ops...)) -} - -// VCVTUDQ2PS_RD_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUDQ2PS.RD_SAE zmm k zmm -// VCVTUDQ2PS.RD_SAE zmm zmm -// -// Construct and append a VCVTUDQ2PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_RD_SAE(ops ...operand.Op) { ctx.VCVTUDQ2PS_RD_SAE(ops...) } - -// VCVTUDQ2PS_RD_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTUDQ2PS_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_RD_SAE_Z(z, k, z1)) -} - -// VCVTUDQ2PS_RD_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTUDQ2PS_RD_SAE_Z(z, k, z1) } - -// VCVTUDQ2PS_RN_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTUDQ2PS.RN_SAE zmm k zmm -// VCVTUDQ2PS.RN_SAE zmm zmm -// -// Construct and append a VCVTUDQ2PS.RN_SAE instruction to the active function. -func (c *Context) VCVTUDQ2PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_RN_SAE(ops...)) -} - -// VCVTUDQ2PS_RN_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTUDQ2PS.RN_SAE zmm k zmm -// VCVTUDQ2PS.RN_SAE zmm zmm -// -// Construct and append a VCVTUDQ2PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_RN_SAE(ops ...operand.Op) { ctx.VCVTUDQ2PS_RN_SAE(ops...) } - -// VCVTUDQ2PS_RN_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTUDQ2PS_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_RN_SAE_Z(z, k, z1)) -} - -// VCVTUDQ2PS_RN_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTUDQ2PS_RN_SAE_Z(z, k, z1) } - -// VCVTUDQ2PS_RU_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUDQ2PS.RU_SAE zmm k zmm -// VCVTUDQ2PS.RU_SAE zmm zmm -// -// Construct and append a VCVTUDQ2PS.RU_SAE instruction to the active function. -func (c *Context) VCVTUDQ2PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_RU_SAE(ops...)) -} - -// VCVTUDQ2PS_RU_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUDQ2PS.RU_SAE zmm k zmm -// VCVTUDQ2PS.RU_SAE zmm zmm -// -// Construct and append a VCVTUDQ2PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_RU_SAE(ops ...operand.Op) { ctx.VCVTUDQ2PS_RU_SAE(ops...) } - -// VCVTUDQ2PS_RU_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTUDQ2PS_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_RU_SAE_Z(z, k, z1)) -} - -// VCVTUDQ2PS_RU_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTUDQ2PS_RU_SAE_Z(z, k, z1) } - -// VCVTUDQ2PS_RZ_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTUDQ2PS.RZ_SAE zmm k zmm -// VCVTUDQ2PS.RZ_SAE zmm zmm -// -// Construct and append a VCVTUDQ2PS.RZ_SAE instruction to the active function. -func (c *Context) VCVTUDQ2PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_RZ_SAE(ops...)) -} - -// VCVTUDQ2PS_RZ_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTUDQ2PS.RZ_SAE zmm k zmm -// VCVTUDQ2PS.RZ_SAE zmm zmm -// -// Construct and append a VCVTUDQ2PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_RZ_SAE(ops ...operand.Op) { ctx.VCVTUDQ2PS_RZ_SAE(ops...) } - -// VCVTUDQ2PS_RZ_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTUDQ2PS_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_RZ_SAE_Z(z, k, z1)) -} - -// VCVTUDQ2PS_RZ_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTUDQ2PS_RZ_SAE_Z(z, k, z1) } - -// VCVTUDQ2PS_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.Z m128 k xmm -// VCVTUDQ2PS.Z m256 k ymm -// VCVTUDQ2PS.Z xmm k xmm -// VCVTUDQ2PS.Z ymm k ymm -// VCVTUDQ2PS.Z m512 k zmm -// VCVTUDQ2PS.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.Z instruction to the active function. -func (c *Context) VCVTUDQ2PS_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTUDQ2PS_Z(mxyz, k, xyz)) -} - -// VCVTUDQ2PS_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.Z m128 k xmm -// VCVTUDQ2PS.Z m256 k ymm -// VCVTUDQ2PS.Z xmm k xmm -// VCVTUDQ2PS.Z ymm k ymm -// VCVTUDQ2PS.Z m512 k zmm -// VCVTUDQ2PS.Z zmm k zmm -// -// Construct and append a VCVTUDQ2PS.Z instruction to the active function. -// Operates on the global context. -func VCVTUDQ2PS_Z(mxyz, k, xyz operand.Op) { ctx.VCVTUDQ2PS_Z(mxyz, k, xyz) } - -// VCVTUQQ2PD: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PD m128 k xmm -// VCVTUQQ2PD m128 xmm -// VCVTUQQ2PD m256 k ymm -// VCVTUQQ2PD m256 ymm -// VCVTUQQ2PD xmm k xmm -// VCVTUQQ2PD xmm xmm -// VCVTUQQ2PD ymm k ymm -// VCVTUQQ2PD ymm ymm -// VCVTUQQ2PD m512 k zmm -// VCVTUQQ2PD m512 zmm -// VCVTUQQ2PD zmm k zmm -// VCVTUQQ2PD zmm zmm -// -// Construct and append a VCVTUQQ2PD instruction to the active function. -func (c *Context) VCVTUQQ2PD(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD(ops...)) -} - -// VCVTUQQ2PD: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PD m128 k xmm -// VCVTUQQ2PD m128 xmm -// VCVTUQQ2PD m256 k ymm -// VCVTUQQ2PD m256 ymm -// VCVTUQQ2PD xmm k xmm -// VCVTUQQ2PD xmm xmm -// VCVTUQQ2PD ymm k ymm -// VCVTUQQ2PD ymm ymm -// VCVTUQQ2PD m512 k zmm -// VCVTUQQ2PD m512 zmm -// VCVTUQQ2PD zmm k zmm -// VCVTUQQ2PD zmm zmm -// -// Construct and append a VCVTUQQ2PD instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD(ops ...operand.Op) { ctx.VCVTUQQ2PD(ops...) } - -// VCVTUQQ2PD_BCST: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PD.BCST m64 k xmm -// VCVTUQQ2PD.BCST m64 k ymm -// VCVTUQQ2PD.BCST m64 xmm -// VCVTUQQ2PD.BCST m64 ymm -// VCVTUQQ2PD.BCST m64 k zmm -// VCVTUQQ2PD.BCST m64 zmm -// -// Construct and append a VCVTUQQ2PD.BCST instruction to the active function. -func (c *Context) VCVTUQQ2PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_BCST(ops...)) -} - -// VCVTUQQ2PD_BCST: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PD.BCST m64 k xmm -// VCVTUQQ2PD.BCST m64 k ymm -// VCVTUQQ2PD.BCST m64 xmm -// VCVTUQQ2PD.BCST m64 ymm -// VCVTUQQ2PD.BCST m64 k zmm -// VCVTUQQ2PD.BCST m64 zmm -// -// Construct and append a VCVTUQQ2PD.BCST instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_BCST(ops ...operand.Op) { ctx.VCVTUQQ2PD_BCST(ops...) } - -// VCVTUQQ2PD_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.BCST.Z m64 k xmm -// VCVTUQQ2PD.BCST.Z m64 k ymm -// VCVTUQQ2PD.BCST.Z m64 k zmm -// -// Construct and append a VCVTUQQ2PD.BCST.Z instruction to the active function. -func (c *Context) VCVTUQQ2PD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_BCST_Z(m, k, xyz)) -} - -// VCVTUQQ2PD_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.BCST.Z m64 k xmm -// VCVTUQQ2PD.BCST.Z m64 k ymm -// VCVTUQQ2PD.BCST.Z m64 k zmm -// -// Construct and append a VCVTUQQ2PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_BCST_Z(m, k, xyz operand.Op) { ctx.VCVTUQQ2PD_BCST_Z(m, k, xyz) } - -// VCVTUQQ2PD_RD_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUQQ2PD.RD_SAE zmm k zmm -// VCVTUQQ2PD.RD_SAE zmm zmm -// -// Construct and append a VCVTUQQ2PD.RD_SAE instruction to the active function. -func (c *Context) VCVTUQQ2PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_RD_SAE(ops...)) -} - -// VCVTUQQ2PD_RD_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUQQ2PD.RD_SAE zmm k zmm -// VCVTUQQ2PD.RD_SAE zmm zmm -// -// Construct and append a VCVTUQQ2PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_RD_SAE(ops ...operand.Op) { ctx.VCVTUQQ2PD_RD_SAE(ops...) } - -// VCVTUQQ2PD_RD_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTUQQ2PD_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_RD_SAE_Z(z, k, z1)) -} - -// VCVTUQQ2PD_RD_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RD_SAE.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTUQQ2PD_RD_SAE_Z(z, k, z1) } - -// VCVTUQQ2PD_RN_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTUQQ2PD.RN_SAE zmm k zmm -// VCVTUQQ2PD.RN_SAE zmm zmm -// -// Construct and append a VCVTUQQ2PD.RN_SAE instruction to the active function. -func (c *Context) VCVTUQQ2PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_RN_SAE(ops...)) -} - -// VCVTUQQ2PD_RN_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTUQQ2PD.RN_SAE zmm k zmm -// VCVTUQQ2PD.RN_SAE zmm zmm -// -// Construct and append a VCVTUQQ2PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_RN_SAE(ops ...operand.Op) { ctx.VCVTUQQ2PD_RN_SAE(ops...) } - -// VCVTUQQ2PD_RN_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTUQQ2PD_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_RN_SAE_Z(z, k, z1)) -} - -// VCVTUQQ2PD_RN_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RN_SAE.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTUQQ2PD_RN_SAE_Z(z, k, z1) } - -// VCVTUQQ2PD_RU_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUQQ2PD.RU_SAE zmm k zmm -// VCVTUQQ2PD.RU_SAE zmm zmm -// -// Construct and append a VCVTUQQ2PD.RU_SAE instruction to the active function. -func (c *Context) VCVTUQQ2PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_RU_SAE(ops...)) -} - -// VCVTUQQ2PD_RU_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUQQ2PD.RU_SAE zmm k zmm -// VCVTUQQ2PD.RU_SAE zmm zmm -// -// Construct and append a VCVTUQQ2PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_RU_SAE(ops ...operand.Op) { ctx.VCVTUQQ2PD_RU_SAE(ops...) } - -// VCVTUQQ2PD_RU_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTUQQ2PD_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_RU_SAE_Z(z, k, z1)) -} - -// VCVTUQQ2PD_RU_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RU_SAE.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTUQQ2PD_RU_SAE_Z(z, k, z1) } - -// VCVTUQQ2PD_RZ_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTUQQ2PD.RZ_SAE zmm k zmm -// VCVTUQQ2PD.RZ_SAE zmm zmm -// -// Construct and append a VCVTUQQ2PD.RZ_SAE instruction to the active function. -func (c *Context) VCVTUQQ2PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_RZ_SAE(ops...)) -} - -// VCVTUQQ2PD_RZ_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTUQQ2PD.RZ_SAE zmm k zmm -// VCVTUQQ2PD.RZ_SAE zmm zmm -// -// Construct and append a VCVTUQQ2PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_RZ_SAE(ops ...operand.Op) { ctx.VCVTUQQ2PD_RZ_SAE(ops...) } - -// VCVTUQQ2PD_RZ_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTUQQ2PD_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_RZ_SAE_Z(z, k, z1)) -} - -// VCVTUQQ2PD_RZ_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RZ_SAE.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VCVTUQQ2PD_RZ_SAE_Z(z, k, z1) } - -// VCVTUQQ2PD_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.Z m128 k xmm -// VCVTUQQ2PD.Z m256 k ymm -// VCVTUQQ2PD.Z xmm k xmm -// VCVTUQQ2PD.Z ymm k ymm -// VCVTUQQ2PD.Z m512 k zmm -// VCVTUQQ2PD.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.Z instruction to the active function. -func (c *Context) VCVTUQQ2PD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VCVTUQQ2PD_Z(mxyz, k, xyz)) -} - -// VCVTUQQ2PD_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.Z m128 k xmm -// VCVTUQQ2PD.Z m256 k ymm -// VCVTUQQ2PD.Z xmm k xmm -// VCVTUQQ2PD.Z ymm k ymm -// VCVTUQQ2PD.Z m512 k zmm -// VCVTUQQ2PD.Z zmm k zmm -// -// Construct and append a VCVTUQQ2PD.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PD_Z(mxyz, k, xyz operand.Op) { ctx.VCVTUQQ2PD_Z(mxyz, k, xyz) } - -// VCVTUQQ2PS: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PS m512 k ymm -// VCVTUQQ2PS m512 ymm -// VCVTUQQ2PS zmm k ymm -// VCVTUQQ2PS zmm ymm -// -// Construct and append a VCVTUQQ2PS instruction to the active function. -func (c *Context) VCVTUQQ2PS(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS(ops...)) -} - -// VCVTUQQ2PS: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PS m512 k ymm -// VCVTUQQ2PS m512 ymm -// VCVTUQQ2PS zmm k ymm -// VCVTUQQ2PS zmm ymm -// -// Construct and append a VCVTUQQ2PS instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS(ops ...operand.Op) { ctx.VCVTUQQ2PS(ops...) } - -// VCVTUQQ2PSX: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PSX m128 k xmm -// VCVTUQQ2PSX m128 xmm -// VCVTUQQ2PSX xmm k xmm -// VCVTUQQ2PSX xmm xmm -// -// Construct and append a VCVTUQQ2PSX instruction to the active function. -func (c *Context) VCVTUQQ2PSX(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PSX(ops...)) -} - -// VCVTUQQ2PSX: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PSX m128 k xmm -// VCVTUQQ2PSX m128 xmm -// VCVTUQQ2PSX xmm k xmm -// VCVTUQQ2PSX xmm xmm -// -// Construct and append a VCVTUQQ2PSX instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PSX(ops ...operand.Op) { ctx.VCVTUQQ2PSX(ops...) } - -// VCVTUQQ2PSX_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PSX.BCST m64 k xmm -// VCVTUQQ2PSX.BCST m64 xmm -// -// Construct and append a VCVTUQQ2PSX.BCST instruction to the active function. -func (c *Context) VCVTUQQ2PSX_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PSX_BCST(ops...)) -} - -// VCVTUQQ2PSX_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PSX.BCST m64 k xmm -// VCVTUQQ2PSX.BCST m64 xmm -// -// Construct and append a VCVTUQQ2PSX.BCST instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PSX_BCST(ops ...operand.Op) { ctx.VCVTUQQ2PSX_BCST(ops...) } - -// VCVTUQQ2PSX_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSX.BCST.Z m64 k xmm -// -// Construct and append a VCVTUQQ2PSX.BCST.Z instruction to the active function. -func (c *Context) VCVTUQQ2PSX_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTUQQ2PSX_BCST_Z(m, k, x)) -} - -// VCVTUQQ2PSX_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSX.BCST.Z m64 k xmm -// -// Construct and append a VCVTUQQ2PSX.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PSX_BCST_Z(m, k, x operand.Op) { ctx.VCVTUQQ2PSX_BCST_Z(m, k, x) } - -// VCVTUQQ2PSX_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSX.Z m128 k xmm -// VCVTUQQ2PSX.Z xmm k xmm -// -// Construct and append a VCVTUQQ2PSX.Z instruction to the active function. -func (c *Context) VCVTUQQ2PSX_Z(mx, k, x operand.Op) { - c.addinstruction(x86.VCVTUQQ2PSX_Z(mx, k, x)) -} - -// VCVTUQQ2PSX_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSX.Z m128 k xmm -// VCVTUQQ2PSX.Z xmm k xmm -// -// Construct and append a VCVTUQQ2PSX.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PSX_Z(mx, k, x operand.Op) { ctx.VCVTUQQ2PSX_Z(mx, k, x) } - -// VCVTUQQ2PSY: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PSY m256 k xmm -// VCVTUQQ2PSY m256 xmm -// VCVTUQQ2PSY ymm k xmm -// VCVTUQQ2PSY ymm xmm -// -// Construct and append a VCVTUQQ2PSY instruction to the active function. -func (c *Context) VCVTUQQ2PSY(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PSY(ops...)) -} - -// VCVTUQQ2PSY: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PSY m256 k xmm -// VCVTUQQ2PSY m256 xmm -// VCVTUQQ2PSY ymm k xmm -// VCVTUQQ2PSY ymm xmm -// -// Construct and append a VCVTUQQ2PSY instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PSY(ops ...operand.Op) { ctx.VCVTUQQ2PSY(ops...) } - -// VCVTUQQ2PSY_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PSY.BCST m64 k xmm -// VCVTUQQ2PSY.BCST m64 xmm -// -// Construct and append a VCVTUQQ2PSY.BCST instruction to the active function. -func (c *Context) VCVTUQQ2PSY_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PSY_BCST(ops...)) -} - -// VCVTUQQ2PSY_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PSY.BCST m64 k xmm -// VCVTUQQ2PSY.BCST m64 xmm -// -// Construct and append a VCVTUQQ2PSY.BCST instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PSY_BCST(ops ...operand.Op) { ctx.VCVTUQQ2PSY_BCST(ops...) } - -// VCVTUQQ2PSY_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSY.BCST.Z m64 k xmm -// -// Construct and append a VCVTUQQ2PSY.BCST.Z instruction to the active function. -func (c *Context) VCVTUQQ2PSY_BCST_Z(m, k, x operand.Op) { - c.addinstruction(x86.VCVTUQQ2PSY_BCST_Z(m, k, x)) -} - -// VCVTUQQ2PSY_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSY.BCST.Z m64 k xmm -// -// Construct and append a VCVTUQQ2PSY.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PSY_BCST_Z(m, k, x operand.Op) { ctx.VCVTUQQ2PSY_BCST_Z(m, k, x) } - -// VCVTUQQ2PSY_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSY.Z m256 k xmm -// VCVTUQQ2PSY.Z ymm k xmm -// -// Construct and append a VCVTUQQ2PSY.Z instruction to the active function. -func (c *Context) VCVTUQQ2PSY_Z(my, k, x operand.Op) { - c.addinstruction(x86.VCVTUQQ2PSY_Z(my, k, x)) -} - -// VCVTUQQ2PSY_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSY.Z m256 k xmm -// VCVTUQQ2PSY.Z ymm k xmm -// -// Construct and append a VCVTUQQ2PSY.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PSY_Z(my, k, x operand.Op) { ctx.VCVTUQQ2PSY_Z(my, k, x) } - -// VCVTUQQ2PS_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PS.BCST m64 k ymm -// VCVTUQQ2PS.BCST m64 ymm -// -// Construct and append a VCVTUQQ2PS.BCST instruction to the active function. -func (c *Context) VCVTUQQ2PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_BCST(ops...)) -} - -// VCVTUQQ2PS_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PS.BCST m64 k ymm -// VCVTUQQ2PS.BCST m64 ymm -// -// Construct and append a VCVTUQQ2PS.BCST instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_BCST(ops ...operand.Op) { ctx.VCVTUQQ2PS_BCST(ops...) } - -// VCVTUQQ2PS_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.BCST.Z m64 k ymm -// -// Construct and append a VCVTUQQ2PS.BCST.Z instruction to the active function. -func (c *Context) VCVTUQQ2PS_BCST_Z(m, k, y operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_BCST_Z(m, k, y)) -} - -// VCVTUQQ2PS_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.BCST.Z m64 k ymm -// -// Construct and append a VCVTUQQ2PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_BCST_Z(m, k, y operand.Op) { ctx.VCVTUQQ2PS_BCST_Z(m, k, y) } - -// VCVTUQQ2PS_RD_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUQQ2PS.RD_SAE zmm k ymm -// VCVTUQQ2PS.RD_SAE zmm ymm -// -// Construct and append a VCVTUQQ2PS.RD_SAE instruction to the active function. -func (c *Context) VCVTUQQ2PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_RD_SAE(ops...)) -} - -// VCVTUQQ2PS_RD_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUQQ2PS.RD_SAE zmm k ymm -// VCVTUQQ2PS.RD_SAE zmm ymm -// -// Construct and append a VCVTUQQ2PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_RD_SAE(ops ...operand.Op) { ctx.VCVTUQQ2PS_RD_SAE(ops...) } - -// VCVTUQQ2PS_RD_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.RD_SAE.Z instruction to the active function. -func (c *Context) VCVTUQQ2PS_RD_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_RD_SAE_Z(z, k, y)) -} - -// VCVTUQQ2PS_RD_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RD_SAE.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_RD_SAE_Z(z, k, y operand.Op) { ctx.VCVTUQQ2PS_RD_SAE_Z(z, k, y) } - -// VCVTUQQ2PS_RN_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTUQQ2PS.RN_SAE zmm k ymm -// VCVTUQQ2PS.RN_SAE zmm ymm -// -// Construct and append a VCVTUQQ2PS.RN_SAE instruction to the active function. -func (c *Context) VCVTUQQ2PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_RN_SAE(ops...)) -} - -// VCVTUQQ2PS_RN_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTUQQ2PS.RN_SAE zmm k ymm -// VCVTUQQ2PS.RN_SAE zmm ymm -// -// Construct and append a VCVTUQQ2PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_RN_SAE(ops ...operand.Op) { ctx.VCVTUQQ2PS_RN_SAE(ops...) } - -// VCVTUQQ2PS_RN_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.RN_SAE.Z instruction to the active function. -func (c *Context) VCVTUQQ2PS_RN_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_RN_SAE_Z(z, k, y)) -} - -// VCVTUQQ2PS_RN_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RN_SAE.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_RN_SAE_Z(z, k, y operand.Op) { ctx.VCVTUQQ2PS_RN_SAE_Z(z, k, y) } - -// VCVTUQQ2PS_RU_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUQQ2PS.RU_SAE zmm k ymm -// VCVTUQQ2PS.RU_SAE zmm ymm -// -// Construct and append a VCVTUQQ2PS.RU_SAE instruction to the active function. -func (c *Context) VCVTUQQ2PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_RU_SAE(ops...)) -} - -// VCVTUQQ2PS_RU_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUQQ2PS.RU_SAE zmm k ymm -// VCVTUQQ2PS.RU_SAE zmm ymm -// -// Construct and append a VCVTUQQ2PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_RU_SAE(ops ...operand.Op) { ctx.VCVTUQQ2PS_RU_SAE(ops...) } - -// VCVTUQQ2PS_RU_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.RU_SAE.Z instruction to the active function. -func (c *Context) VCVTUQQ2PS_RU_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_RU_SAE_Z(z, k, y)) -} - -// VCVTUQQ2PS_RU_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RU_SAE.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_RU_SAE_Z(z, k, y operand.Op) { ctx.VCVTUQQ2PS_RU_SAE_Z(z, k, y) } - -// VCVTUQQ2PS_RZ_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTUQQ2PS.RZ_SAE zmm k ymm -// VCVTUQQ2PS.RZ_SAE zmm ymm -// -// Construct and append a VCVTUQQ2PS.RZ_SAE instruction to the active function. -func (c *Context) VCVTUQQ2PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_RZ_SAE(ops...)) -} - -// VCVTUQQ2PS_RZ_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTUQQ2PS.RZ_SAE zmm k ymm -// VCVTUQQ2PS.RZ_SAE zmm ymm -// -// Construct and append a VCVTUQQ2PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_RZ_SAE(ops ...operand.Op) { ctx.VCVTUQQ2PS_RZ_SAE(ops...) } - -// VCVTUQQ2PS_RZ_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VCVTUQQ2PS_RZ_SAE_Z(z, k, y operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_RZ_SAE_Z(z, k, y)) -} - -// VCVTUQQ2PS_RZ_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RZ_SAE.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_RZ_SAE_Z(z, k, y operand.Op) { ctx.VCVTUQQ2PS_RZ_SAE_Z(z, k, y) } - -// VCVTUQQ2PS_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.Z m512 k ymm -// VCVTUQQ2PS.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.Z instruction to the active function. -func (c *Context) VCVTUQQ2PS_Z(mz, k, y operand.Op) { - c.addinstruction(x86.VCVTUQQ2PS_Z(mz, k, y)) -} - -// VCVTUQQ2PS_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.Z m512 k ymm -// VCVTUQQ2PS.Z zmm k ymm -// -// Construct and append a VCVTUQQ2PS.Z instruction to the active function. -// Operates on the global context. -func VCVTUQQ2PS_Z(mz, k, y operand.Op) { ctx.VCVTUQQ2PS_Z(mz, k, y) } - -// VCVTUSI2SDL: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SDL m32 xmm xmm -// VCVTUSI2SDL r32 xmm xmm -// -// Construct and append a VCVTUSI2SDL instruction to the active function. -func (c *Context) VCVTUSI2SDL(mr, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SDL(mr, x, x1)) -} - -// VCVTUSI2SDL: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SDL m32 xmm xmm -// VCVTUSI2SDL r32 xmm xmm -// -// Construct and append a VCVTUSI2SDL instruction to the active function. -// Operates on the global context. -func VCVTUSI2SDL(mr, x, x1 operand.Op) { ctx.VCVTUSI2SDL(mr, x, x1) } - -// VCVTUSI2SDQ: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SDQ m64 xmm xmm -// VCVTUSI2SDQ r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ instruction to the active function. -func (c *Context) VCVTUSI2SDQ(mr, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SDQ(mr, x, x1)) -} - -// VCVTUSI2SDQ: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SDQ m64 xmm xmm -// VCVTUSI2SDQ r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ instruction to the active function. -// Operates on the global context. -func VCVTUSI2SDQ(mr, x, x1 operand.Op) { ctx.VCVTUSI2SDQ(mr, x, x1) } - -// VCVTUSI2SDQ_RD_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUSI2SDQ.RD_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ.RD_SAE instruction to the active function. -func (c *Context) VCVTUSI2SDQ_RD_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SDQ_RD_SAE(r, x, x1)) -} - -// VCVTUSI2SDQ_RD_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUSI2SDQ.RD_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SDQ_RD_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SDQ_RD_SAE(r, x, x1) } - -// VCVTUSI2SDQ_RN_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VCVTUSI2SDQ.RN_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ.RN_SAE instruction to the active function. -func (c *Context) VCVTUSI2SDQ_RN_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SDQ_RN_SAE(r, x, x1)) -} - -// VCVTUSI2SDQ_RN_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VCVTUSI2SDQ.RN_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SDQ_RN_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SDQ_RN_SAE(r, x, x1) } - -// VCVTUSI2SDQ_RU_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUSI2SDQ.RU_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ.RU_SAE instruction to the active function. -func (c *Context) VCVTUSI2SDQ_RU_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SDQ_RU_SAE(r, x, x1)) -} - -// VCVTUSI2SDQ_RU_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUSI2SDQ.RU_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SDQ_RU_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SDQ_RU_SAE(r, x, x1) } - -// VCVTUSI2SDQ_RZ_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VCVTUSI2SDQ.RZ_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTUSI2SDQ_RZ_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SDQ_RZ_SAE(r, x, x1)) -} - -// VCVTUSI2SDQ_RZ_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VCVTUSI2SDQ.RZ_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SDQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SDQ_RZ_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SDQ_RZ_SAE(r, x, x1) } - -// VCVTUSI2SSL: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SSL m32 xmm xmm -// VCVTUSI2SSL r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL instruction to the active function. -func (c *Context) VCVTUSI2SSL(mr, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSL(mr, x, x1)) -} - -// VCVTUSI2SSL: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SSL m32 xmm xmm -// VCVTUSI2SSL r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSL(mr, x, x1 operand.Op) { ctx.VCVTUSI2SSL(mr, x, x1) } - -// VCVTUSI2SSL_RD_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUSI2SSL.RD_SAE r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL.RD_SAE instruction to the active function. -func (c *Context) VCVTUSI2SSL_RD_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSL_RD_SAE(r, x, x1)) -} - -// VCVTUSI2SSL_RD_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUSI2SSL.RD_SAE r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSL_RD_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SSL_RD_SAE(r, x, x1) } - -// VCVTUSI2SSL_RN_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VCVTUSI2SSL.RN_SAE r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL.RN_SAE instruction to the active function. -func (c *Context) VCVTUSI2SSL_RN_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSL_RN_SAE(r, x, x1)) -} - -// VCVTUSI2SSL_RN_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VCVTUSI2SSL.RN_SAE r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSL_RN_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SSL_RN_SAE(r, x, x1) } - -// VCVTUSI2SSL_RU_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUSI2SSL.RU_SAE r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL.RU_SAE instruction to the active function. -func (c *Context) VCVTUSI2SSL_RU_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSL_RU_SAE(r, x, x1)) -} - -// VCVTUSI2SSL_RU_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUSI2SSL.RU_SAE r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSL_RU_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SSL_RU_SAE(r, x, x1) } - -// VCVTUSI2SSL_RZ_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VCVTUSI2SSL.RZ_SAE r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL.RZ_SAE instruction to the active function. -func (c *Context) VCVTUSI2SSL_RZ_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSL_RZ_SAE(r, x, x1)) -} - -// VCVTUSI2SSL_RZ_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VCVTUSI2SSL.RZ_SAE r32 xmm xmm -// -// Construct and append a VCVTUSI2SSL.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSL_RZ_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SSL_RZ_SAE(r, x, x1) } - -// VCVTUSI2SSQ: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SSQ m64 xmm xmm -// VCVTUSI2SSQ r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ instruction to the active function. -func (c *Context) VCVTUSI2SSQ(mr, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSQ(mr, x, x1)) -} - -// VCVTUSI2SSQ: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SSQ m64 xmm xmm -// VCVTUSI2SSQ r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSQ(mr, x, x1 operand.Op) { ctx.VCVTUSI2SSQ(mr, x, x1) } - -// VCVTUSI2SSQ_RD_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUSI2SSQ.RD_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ.RD_SAE instruction to the active function. -func (c *Context) VCVTUSI2SSQ_RD_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSQ_RD_SAE(r, x, x1)) -} - -// VCVTUSI2SSQ_RD_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUSI2SSQ.RD_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ.RD_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSQ_RD_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SSQ_RD_SAE(r, x, x1) } - -// VCVTUSI2SSQ_RN_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VCVTUSI2SSQ.RN_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ.RN_SAE instruction to the active function. -func (c *Context) VCVTUSI2SSQ_RN_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSQ_RN_SAE(r, x, x1)) -} - -// VCVTUSI2SSQ_RN_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VCVTUSI2SSQ.RN_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ.RN_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSQ_RN_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SSQ_RN_SAE(r, x, x1) } - -// VCVTUSI2SSQ_RU_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUSI2SSQ.RU_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ.RU_SAE instruction to the active function. -func (c *Context) VCVTUSI2SSQ_RU_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSQ_RU_SAE(r, x, x1)) -} - -// VCVTUSI2SSQ_RU_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUSI2SSQ.RU_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ.RU_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSQ_RU_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SSQ_RU_SAE(r, x, x1) } - -// VCVTUSI2SSQ_RZ_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VCVTUSI2SSQ.RZ_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ.RZ_SAE instruction to the active function. -func (c *Context) VCVTUSI2SSQ_RZ_SAE(r, x, x1 operand.Op) { - c.addinstruction(x86.VCVTUSI2SSQ_RZ_SAE(r, x, x1)) -} - -// VCVTUSI2SSQ_RZ_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VCVTUSI2SSQ.RZ_SAE r64 xmm xmm -// -// Construct and append a VCVTUSI2SSQ.RZ_SAE instruction to the active function. -// Operates on the global context. -func VCVTUSI2SSQ_RZ_SAE(r, x, x1 operand.Op) { ctx.VCVTUSI2SSQ_RZ_SAE(r, x, x1) } - -// VDBPSADBW: Double Block Packed Sum-Absolute-Differences on Unsigned Bytes. -// -// Forms: -// -// VDBPSADBW imm8 m128 xmm k xmm -// VDBPSADBW imm8 m128 xmm xmm -// VDBPSADBW imm8 m256 ymm k ymm -// VDBPSADBW imm8 m256 ymm ymm -// VDBPSADBW imm8 xmm xmm k xmm -// VDBPSADBW imm8 xmm xmm xmm -// VDBPSADBW imm8 ymm ymm k ymm -// VDBPSADBW imm8 ymm ymm ymm -// VDBPSADBW imm8 m512 zmm k zmm -// VDBPSADBW imm8 m512 zmm zmm -// VDBPSADBW imm8 zmm zmm k zmm -// VDBPSADBW imm8 zmm zmm zmm -// -// Construct and append a VDBPSADBW instruction to the active function. -func (c *Context) VDBPSADBW(ops ...operand.Op) { - c.addinstruction(x86.VDBPSADBW(ops...)) -} - -// VDBPSADBW: Double Block Packed Sum-Absolute-Differences on Unsigned Bytes. -// -// Forms: -// -// VDBPSADBW imm8 m128 xmm k xmm -// VDBPSADBW imm8 m128 xmm xmm -// VDBPSADBW imm8 m256 ymm k ymm -// VDBPSADBW imm8 m256 ymm ymm -// VDBPSADBW imm8 xmm xmm k xmm -// VDBPSADBW imm8 xmm xmm xmm -// VDBPSADBW imm8 ymm ymm k ymm -// VDBPSADBW imm8 ymm ymm ymm -// VDBPSADBW imm8 m512 zmm k zmm -// VDBPSADBW imm8 m512 zmm zmm -// VDBPSADBW imm8 zmm zmm k zmm -// VDBPSADBW imm8 zmm zmm zmm -// -// Construct and append a VDBPSADBW instruction to the active function. -// Operates on the global context. -func VDBPSADBW(ops ...operand.Op) { ctx.VDBPSADBW(ops...) } - -// VDBPSADBW_Z: Double Block Packed Sum-Absolute-Differences on Unsigned Bytes (Zeroing Masking). -// -// Forms: -// -// VDBPSADBW.Z imm8 m128 xmm k xmm -// VDBPSADBW.Z imm8 m256 ymm k ymm -// VDBPSADBW.Z imm8 xmm xmm k xmm -// VDBPSADBW.Z imm8 ymm ymm k ymm -// VDBPSADBW.Z imm8 m512 zmm k zmm -// VDBPSADBW.Z imm8 zmm zmm k zmm -// -// Construct and append a VDBPSADBW.Z instruction to the active function. -func (c *Context) VDBPSADBW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VDBPSADBW_Z(i, mxyz, xyz, k, xyz1)) -} - -// VDBPSADBW_Z: Double Block Packed Sum-Absolute-Differences on Unsigned Bytes (Zeroing Masking). -// -// Forms: -// -// VDBPSADBW.Z imm8 m128 xmm k xmm -// VDBPSADBW.Z imm8 m256 ymm k ymm -// VDBPSADBW.Z imm8 xmm xmm k xmm -// VDBPSADBW.Z imm8 ymm ymm k ymm -// VDBPSADBW.Z imm8 m512 zmm k zmm -// VDBPSADBW.Z imm8 zmm zmm k zmm -// -// Construct and append a VDBPSADBW.Z instruction to the active function. -// Operates on the global context. -func VDBPSADBW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VDBPSADBW_Z(i, mxyz, xyz, k, xyz1) } - -// VDIVPD: Divide Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VDIVPD m128 xmm xmm -// VDIVPD m256 ymm ymm -// VDIVPD xmm xmm xmm -// VDIVPD ymm ymm ymm -// VDIVPD m128 xmm k xmm -// VDIVPD m256 ymm k ymm -// VDIVPD xmm xmm k xmm -// VDIVPD ymm ymm k ymm -// VDIVPD m512 zmm k zmm -// VDIVPD m512 zmm zmm -// VDIVPD zmm zmm k zmm -// VDIVPD zmm zmm zmm -// -// Construct and append a VDIVPD instruction to the active function. -func (c *Context) VDIVPD(ops ...operand.Op) { - c.addinstruction(x86.VDIVPD(ops...)) -} - -// VDIVPD: Divide Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VDIVPD m128 xmm xmm -// VDIVPD m256 ymm ymm -// VDIVPD xmm xmm xmm -// VDIVPD ymm ymm ymm -// VDIVPD m128 xmm k xmm -// VDIVPD m256 ymm k ymm -// VDIVPD xmm xmm k xmm -// VDIVPD ymm ymm k ymm -// VDIVPD m512 zmm k zmm -// VDIVPD m512 zmm zmm -// VDIVPD zmm zmm k zmm -// VDIVPD zmm zmm zmm -// -// Construct and append a VDIVPD instruction to the active function. -// Operates on the global context. -func VDIVPD(ops ...operand.Op) { ctx.VDIVPD(ops...) } - -// VDIVPD_BCST: Divide Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VDIVPD.BCST m64 xmm k xmm -// VDIVPD.BCST m64 xmm xmm -// VDIVPD.BCST m64 ymm k ymm -// VDIVPD.BCST m64 ymm ymm -// VDIVPD.BCST m64 zmm k zmm -// VDIVPD.BCST m64 zmm zmm -// -// Construct and append a VDIVPD.BCST instruction to the active function. -func (c *Context) VDIVPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VDIVPD_BCST(ops...)) -} - -// VDIVPD_BCST: Divide Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VDIVPD.BCST m64 xmm k xmm -// VDIVPD.BCST m64 xmm xmm -// VDIVPD.BCST m64 ymm k ymm -// VDIVPD.BCST m64 ymm ymm -// VDIVPD.BCST m64 zmm k zmm -// VDIVPD.BCST m64 zmm zmm -// -// Construct and append a VDIVPD.BCST instruction to the active function. -// Operates on the global context. -func VDIVPD_BCST(ops ...operand.Op) { ctx.VDIVPD_BCST(ops...) } - -// VDIVPD_BCST_Z: Divide Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VDIVPD.BCST.Z m64 xmm k xmm -// VDIVPD.BCST.Z m64 ymm k ymm -// VDIVPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VDIVPD.BCST.Z instruction to the active function. -func (c *Context) VDIVPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VDIVPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VDIVPD_BCST_Z: Divide Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VDIVPD.BCST.Z m64 xmm k xmm -// VDIVPD.BCST.Z m64 ymm k ymm -// VDIVPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VDIVPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VDIVPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VDIVPD_BCST_Z(m, xyz, k, xyz1) } - -// VDIVPD_RD_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVPD.RD_SAE zmm zmm k zmm -// VDIVPD.RD_SAE zmm zmm zmm -// -// Construct and append a VDIVPD.RD_SAE instruction to the active function. -func (c *Context) VDIVPD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVPD_RD_SAE(ops...)) -} - -// VDIVPD_RD_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVPD.RD_SAE zmm zmm k zmm -// VDIVPD.RD_SAE zmm zmm zmm -// -// Construct and append a VDIVPD.RD_SAE instruction to the active function. -// Operates on the global context. -func VDIVPD_RD_SAE(ops ...operand.Op) { ctx.VDIVPD_RD_SAE(ops...) } - -// VDIVPD_RD_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.RD_SAE.Z instruction to the active function. -func (c *Context) VDIVPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VDIVPD_RD_SAE_Z(z, z1, k, z2)) -} - -// VDIVPD_RD_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VDIVPD_RD_SAE_Z(z, z1, k, z2) } - -// VDIVPD_RN_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVPD.RN_SAE zmm zmm k zmm -// VDIVPD.RN_SAE zmm zmm zmm -// -// Construct and append a VDIVPD.RN_SAE instruction to the active function. -func (c *Context) VDIVPD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVPD_RN_SAE(ops...)) -} - -// VDIVPD_RN_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVPD.RN_SAE zmm zmm k zmm -// VDIVPD.RN_SAE zmm zmm zmm -// -// Construct and append a VDIVPD.RN_SAE instruction to the active function. -// Operates on the global context. -func VDIVPD_RN_SAE(ops ...operand.Op) { ctx.VDIVPD_RN_SAE(ops...) } - -// VDIVPD_RN_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.RN_SAE.Z instruction to the active function. -func (c *Context) VDIVPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VDIVPD_RN_SAE_Z(z, z1, k, z2)) -} - -// VDIVPD_RN_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VDIVPD_RN_SAE_Z(z, z1, k, z2) } - -// VDIVPD_RU_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVPD.RU_SAE zmm zmm k zmm -// VDIVPD.RU_SAE zmm zmm zmm -// -// Construct and append a VDIVPD.RU_SAE instruction to the active function. -func (c *Context) VDIVPD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVPD_RU_SAE(ops...)) -} - -// VDIVPD_RU_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVPD.RU_SAE zmm zmm k zmm -// VDIVPD.RU_SAE zmm zmm zmm -// -// Construct and append a VDIVPD.RU_SAE instruction to the active function. -// Operates on the global context. -func VDIVPD_RU_SAE(ops ...operand.Op) { ctx.VDIVPD_RU_SAE(ops...) } - -// VDIVPD_RU_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.RU_SAE.Z instruction to the active function. -func (c *Context) VDIVPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VDIVPD_RU_SAE_Z(z, z1, k, z2)) -} - -// VDIVPD_RU_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VDIVPD_RU_SAE_Z(z, z1, k, z2) } - -// VDIVPD_RZ_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVPD.RZ_SAE zmm zmm k zmm -// VDIVPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VDIVPD.RZ_SAE instruction to the active function. -func (c *Context) VDIVPD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVPD_RZ_SAE(ops...)) -} - -// VDIVPD_RZ_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVPD.RZ_SAE zmm zmm k zmm -// VDIVPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VDIVPD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VDIVPD_RZ_SAE(ops ...operand.Op) { ctx.VDIVPD_RZ_SAE(ops...) } - -// VDIVPD_RZ_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.RZ_SAE.Z instruction to the active function. -func (c *Context) VDIVPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VDIVPD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VDIVPD_RZ_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VDIVPD_RZ_SAE_Z(z, z1, k, z2) } - -// VDIVPD_Z: Divide Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVPD.Z m128 xmm k xmm -// VDIVPD.Z m256 ymm k ymm -// VDIVPD.Z xmm xmm k xmm -// VDIVPD.Z ymm ymm k ymm -// VDIVPD.Z m512 zmm k zmm -// VDIVPD.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.Z instruction to the active function. -func (c *Context) VDIVPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VDIVPD_Z(mxyz, xyz, k, xyz1)) -} - -// VDIVPD_Z: Divide Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVPD.Z m128 xmm k xmm -// VDIVPD.Z m256 ymm k ymm -// VDIVPD.Z xmm xmm k xmm -// VDIVPD.Z ymm ymm k ymm -// VDIVPD.Z m512 zmm k zmm -// VDIVPD.Z zmm zmm k zmm -// -// Construct and append a VDIVPD.Z instruction to the active function. -// Operates on the global context. -func VDIVPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VDIVPD_Z(mxyz, xyz, k, xyz1) } - -// VDIVPS: Divide Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VDIVPS m128 xmm xmm -// VDIVPS m256 ymm ymm -// VDIVPS xmm xmm xmm -// VDIVPS ymm ymm ymm -// VDIVPS m128 xmm k xmm -// VDIVPS m256 ymm k ymm -// VDIVPS xmm xmm k xmm -// VDIVPS ymm ymm k ymm -// VDIVPS m512 zmm k zmm -// VDIVPS m512 zmm zmm -// VDIVPS zmm zmm k zmm -// VDIVPS zmm zmm zmm -// -// Construct and append a VDIVPS instruction to the active function. -func (c *Context) VDIVPS(ops ...operand.Op) { - c.addinstruction(x86.VDIVPS(ops...)) -} - -// VDIVPS: Divide Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VDIVPS m128 xmm xmm -// VDIVPS m256 ymm ymm -// VDIVPS xmm xmm xmm -// VDIVPS ymm ymm ymm -// VDIVPS m128 xmm k xmm -// VDIVPS m256 ymm k ymm -// VDIVPS xmm xmm k xmm -// VDIVPS ymm ymm k ymm -// VDIVPS m512 zmm k zmm -// VDIVPS m512 zmm zmm -// VDIVPS zmm zmm k zmm -// VDIVPS zmm zmm zmm -// -// Construct and append a VDIVPS instruction to the active function. -// Operates on the global context. -func VDIVPS(ops ...operand.Op) { ctx.VDIVPS(ops...) } - -// VDIVPS_BCST: Divide Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VDIVPS.BCST m32 xmm k xmm -// VDIVPS.BCST m32 xmm xmm -// VDIVPS.BCST m32 ymm k ymm -// VDIVPS.BCST m32 ymm ymm -// VDIVPS.BCST m32 zmm k zmm -// VDIVPS.BCST m32 zmm zmm -// -// Construct and append a VDIVPS.BCST instruction to the active function. -func (c *Context) VDIVPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VDIVPS_BCST(ops...)) -} - -// VDIVPS_BCST: Divide Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VDIVPS.BCST m32 xmm k xmm -// VDIVPS.BCST m32 xmm xmm -// VDIVPS.BCST m32 ymm k ymm -// VDIVPS.BCST m32 ymm ymm -// VDIVPS.BCST m32 zmm k zmm -// VDIVPS.BCST m32 zmm zmm -// -// Construct and append a VDIVPS.BCST instruction to the active function. -// Operates on the global context. -func VDIVPS_BCST(ops ...operand.Op) { ctx.VDIVPS_BCST(ops...) } - -// VDIVPS_BCST_Z: Divide Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VDIVPS.BCST.Z m32 xmm k xmm -// VDIVPS.BCST.Z m32 ymm k ymm -// VDIVPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VDIVPS.BCST.Z instruction to the active function. -func (c *Context) VDIVPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VDIVPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VDIVPS_BCST_Z: Divide Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VDIVPS.BCST.Z m32 xmm k xmm -// VDIVPS.BCST.Z m32 ymm k ymm -// VDIVPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VDIVPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VDIVPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VDIVPS_BCST_Z(m, xyz, k, xyz1) } - -// VDIVPS_RD_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVPS.RD_SAE zmm zmm k zmm -// VDIVPS.RD_SAE zmm zmm zmm -// -// Construct and append a VDIVPS.RD_SAE instruction to the active function. -func (c *Context) VDIVPS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVPS_RD_SAE(ops...)) -} - -// VDIVPS_RD_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVPS.RD_SAE zmm zmm k zmm -// VDIVPS.RD_SAE zmm zmm zmm -// -// Construct and append a VDIVPS.RD_SAE instruction to the active function. -// Operates on the global context. -func VDIVPS_RD_SAE(ops ...operand.Op) { ctx.VDIVPS_RD_SAE(ops...) } - -// VDIVPS_RD_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.RD_SAE.Z instruction to the active function. -func (c *Context) VDIVPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VDIVPS_RD_SAE_Z(z, z1, k, z2)) -} - -// VDIVPS_RD_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VDIVPS_RD_SAE_Z(z, z1, k, z2) } - -// VDIVPS_RN_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVPS.RN_SAE zmm zmm k zmm -// VDIVPS.RN_SAE zmm zmm zmm -// -// Construct and append a VDIVPS.RN_SAE instruction to the active function. -func (c *Context) VDIVPS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVPS_RN_SAE(ops...)) -} - -// VDIVPS_RN_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVPS.RN_SAE zmm zmm k zmm -// VDIVPS.RN_SAE zmm zmm zmm -// -// Construct and append a VDIVPS.RN_SAE instruction to the active function. -// Operates on the global context. -func VDIVPS_RN_SAE(ops ...operand.Op) { ctx.VDIVPS_RN_SAE(ops...) } - -// VDIVPS_RN_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.RN_SAE.Z instruction to the active function. -func (c *Context) VDIVPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VDIVPS_RN_SAE_Z(z, z1, k, z2)) -} - -// VDIVPS_RN_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VDIVPS_RN_SAE_Z(z, z1, k, z2) } - -// VDIVPS_RU_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVPS.RU_SAE zmm zmm k zmm -// VDIVPS.RU_SAE zmm zmm zmm -// -// Construct and append a VDIVPS.RU_SAE instruction to the active function. -func (c *Context) VDIVPS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVPS_RU_SAE(ops...)) -} - -// VDIVPS_RU_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVPS.RU_SAE zmm zmm k zmm -// VDIVPS.RU_SAE zmm zmm zmm -// -// Construct and append a VDIVPS.RU_SAE instruction to the active function. -// Operates on the global context. -func VDIVPS_RU_SAE(ops ...operand.Op) { ctx.VDIVPS_RU_SAE(ops...) } - -// VDIVPS_RU_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.RU_SAE.Z instruction to the active function. -func (c *Context) VDIVPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VDIVPS_RU_SAE_Z(z, z1, k, z2)) -} - -// VDIVPS_RU_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VDIVPS_RU_SAE_Z(z, z1, k, z2) } - -// VDIVPS_RZ_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVPS.RZ_SAE zmm zmm k zmm -// VDIVPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VDIVPS.RZ_SAE instruction to the active function. -func (c *Context) VDIVPS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVPS_RZ_SAE(ops...)) -} - -// VDIVPS_RZ_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVPS.RZ_SAE zmm zmm k zmm -// VDIVPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VDIVPS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VDIVPS_RZ_SAE(ops ...operand.Op) { ctx.VDIVPS_RZ_SAE(ops...) } - -// VDIVPS_RZ_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.RZ_SAE.Z instruction to the active function. -func (c *Context) VDIVPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VDIVPS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VDIVPS_RZ_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VDIVPS_RZ_SAE_Z(z, z1, k, z2) } - -// VDIVPS_Z: Divide Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVPS.Z m128 xmm k xmm -// VDIVPS.Z m256 ymm k ymm -// VDIVPS.Z xmm xmm k xmm -// VDIVPS.Z ymm ymm k ymm -// VDIVPS.Z m512 zmm k zmm -// VDIVPS.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.Z instruction to the active function. -func (c *Context) VDIVPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VDIVPS_Z(mxyz, xyz, k, xyz1)) -} - -// VDIVPS_Z: Divide Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVPS.Z m128 xmm k xmm -// VDIVPS.Z m256 ymm k ymm -// VDIVPS.Z xmm xmm k xmm -// VDIVPS.Z ymm ymm k ymm -// VDIVPS.Z m512 zmm k zmm -// VDIVPS.Z zmm zmm k zmm -// -// Construct and append a VDIVPS.Z instruction to the active function. -// Operates on the global context. -func VDIVPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VDIVPS_Z(mxyz, xyz, k, xyz1) } - -// VDIVSD: Divide Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VDIVSD m64 xmm xmm -// VDIVSD xmm xmm xmm -// VDIVSD m64 xmm k xmm -// VDIVSD xmm xmm k xmm -// -// Construct and append a VDIVSD instruction to the active function. -func (c *Context) VDIVSD(ops ...operand.Op) { - c.addinstruction(x86.VDIVSD(ops...)) -} - -// VDIVSD: Divide Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VDIVSD m64 xmm xmm -// VDIVSD xmm xmm xmm -// VDIVSD m64 xmm k xmm -// VDIVSD xmm xmm k xmm -// -// Construct and append a VDIVSD instruction to the active function. -// Operates on the global context. -func VDIVSD(ops ...operand.Op) { ctx.VDIVSD(ops...) } - -// VDIVSD_RD_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVSD.RD_SAE xmm xmm k xmm -// VDIVSD.RD_SAE xmm xmm xmm -// -// Construct and append a VDIVSD.RD_SAE instruction to the active function. -func (c *Context) VDIVSD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVSD_RD_SAE(ops...)) -} - -// VDIVSD_RD_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVSD.RD_SAE xmm xmm k xmm -// VDIVSD.RD_SAE xmm xmm xmm -// -// Construct and append a VDIVSD.RD_SAE instruction to the active function. -// Operates on the global context. -func VDIVSD_RD_SAE(ops ...operand.Op) { ctx.VDIVSD_RD_SAE(ops...) } - -// VDIVSD_RD_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.RD_SAE.Z instruction to the active function. -func (c *Context) VDIVSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VDIVSD_RD_SAE_Z(x, x1, k, x2)) -} - -// VDIVSD_RD_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VDIVSD_RD_SAE_Z(x, x1, k, x2) } - -// VDIVSD_RN_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVSD.RN_SAE xmm xmm k xmm -// VDIVSD.RN_SAE xmm xmm xmm -// -// Construct and append a VDIVSD.RN_SAE instruction to the active function. -func (c *Context) VDIVSD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVSD_RN_SAE(ops...)) -} - -// VDIVSD_RN_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVSD.RN_SAE xmm xmm k xmm -// VDIVSD.RN_SAE xmm xmm xmm -// -// Construct and append a VDIVSD.RN_SAE instruction to the active function. -// Operates on the global context. -func VDIVSD_RN_SAE(ops ...operand.Op) { ctx.VDIVSD_RN_SAE(ops...) } - -// VDIVSD_RN_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.RN_SAE.Z instruction to the active function. -func (c *Context) VDIVSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VDIVSD_RN_SAE_Z(x, x1, k, x2)) -} - -// VDIVSD_RN_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VDIVSD_RN_SAE_Z(x, x1, k, x2) } - -// VDIVSD_RU_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVSD.RU_SAE xmm xmm k xmm -// VDIVSD.RU_SAE xmm xmm xmm -// -// Construct and append a VDIVSD.RU_SAE instruction to the active function. -func (c *Context) VDIVSD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVSD_RU_SAE(ops...)) -} - -// VDIVSD_RU_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVSD.RU_SAE xmm xmm k xmm -// VDIVSD.RU_SAE xmm xmm xmm -// -// Construct and append a VDIVSD.RU_SAE instruction to the active function. -// Operates on the global context. -func VDIVSD_RU_SAE(ops ...operand.Op) { ctx.VDIVSD_RU_SAE(ops...) } - -// VDIVSD_RU_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.RU_SAE.Z instruction to the active function. -func (c *Context) VDIVSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VDIVSD_RU_SAE_Z(x, x1, k, x2)) -} - -// VDIVSD_RU_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VDIVSD_RU_SAE_Z(x, x1, k, x2) } - -// VDIVSD_RZ_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVSD.RZ_SAE xmm xmm k xmm -// VDIVSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VDIVSD.RZ_SAE instruction to the active function. -func (c *Context) VDIVSD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVSD_RZ_SAE(ops...)) -} - -// VDIVSD_RZ_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVSD.RZ_SAE xmm xmm k xmm -// VDIVSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VDIVSD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VDIVSD_RZ_SAE(ops ...operand.Op) { ctx.VDIVSD_RZ_SAE(ops...) } - -// VDIVSD_RZ_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.RZ_SAE.Z instruction to the active function. -func (c *Context) VDIVSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VDIVSD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VDIVSD_RZ_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VDIVSD_RZ_SAE_Z(x, x1, k, x2) } - -// VDIVSD_Z: Divide Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVSD.Z m64 xmm k xmm -// VDIVSD.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.Z instruction to the active function. -func (c *Context) VDIVSD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VDIVSD_Z(mx, x, k, x1)) -} - -// VDIVSD_Z: Divide Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVSD.Z m64 xmm k xmm -// VDIVSD.Z xmm xmm k xmm -// -// Construct and append a VDIVSD.Z instruction to the active function. -// Operates on the global context. -func VDIVSD_Z(mx, x, k, x1 operand.Op) { ctx.VDIVSD_Z(mx, x, k, x1) } - -// VDIVSS: Divide Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VDIVSS m32 xmm xmm -// VDIVSS xmm xmm xmm -// VDIVSS m32 xmm k xmm -// VDIVSS xmm xmm k xmm -// -// Construct and append a VDIVSS instruction to the active function. -func (c *Context) VDIVSS(ops ...operand.Op) { - c.addinstruction(x86.VDIVSS(ops...)) -} - -// VDIVSS: Divide Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VDIVSS m32 xmm xmm -// VDIVSS xmm xmm xmm -// VDIVSS m32 xmm k xmm -// VDIVSS xmm xmm k xmm -// -// Construct and append a VDIVSS instruction to the active function. -// Operates on the global context. -func VDIVSS(ops ...operand.Op) { ctx.VDIVSS(ops...) } - -// VDIVSS_RD_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVSS.RD_SAE xmm xmm k xmm -// VDIVSS.RD_SAE xmm xmm xmm -// -// Construct and append a VDIVSS.RD_SAE instruction to the active function. -func (c *Context) VDIVSS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVSS_RD_SAE(ops...)) -} - -// VDIVSS_RD_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVSS.RD_SAE xmm xmm k xmm -// VDIVSS.RD_SAE xmm xmm xmm -// -// Construct and append a VDIVSS.RD_SAE instruction to the active function. -// Operates on the global context. -func VDIVSS_RD_SAE(ops ...operand.Op) { ctx.VDIVSS_RD_SAE(ops...) } - -// VDIVSS_RD_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.RD_SAE.Z instruction to the active function. -func (c *Context) VDIVSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VDIVSS_RD_SAE_Z(x, x1, k, x2)) -} - -// VDIVSS_RD_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VDIVSS_RD_SAE_Z(x, x1, k, x2) } - -// VDIVSS_RN_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVSS.RN_SAE xmm xmm k xmm -// VDIVSS.RN_SAE xmm xmm xmm -// -// Construct and append a VDIVSS.RN_SAE instruction to the active function. -func (c *Context) VDIVSS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVSS_RN_SAE(ops...)) -} - -// VDIVSS_RN_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVSS.RN_SAE xmm xmm k xmm -// VDIVSS.RN_SAE xmm xmm xmm -// -// Construct and append a VDIVSS.RN_SAE instruction to the active function. -// Operates on the global context. -func VDIVSS_RN_SAE(ops ...operand.Op) { ctx.VDIVSS_RN_SAE(ops...) } - -// VDIVSS_RN_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.RN_SAE.Z instruction to the active function. -func (c *Context) VDIVSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VDIVSS_RN_SAE_Z(x, x1, k, x2)) -} - -// VDIVSS_RN_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VDIVSS_RN_SAE_Z(x, x1, k, x2) } - -// VDIVSS_RU_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVSS.RU_SAE xmm xmm k xmm -// VDIVSS.RU_SAE xmm xmm xmm -// -// Construct and append a VDIVSS.RU_SAE instruction to the active function. -func (c *Context) VDIVSS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVSS_RU_SAE(ops...)) -} - -// VDIVSS_RU_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVSS.RU_SAE xmm xmm k xmm -// VDIVSS.RU_SAE xmm xmm xmm -// -// Construct and append a VDIVSS.RU_SAE instruction to the active function. -// Operates on the global context. -func VDIVSS_RU_SAE(ops ...operand.Op) { ctx.VDIVSS_RU_SAE(ops...) } - -// VDIVSS_RU_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.RU_SAE.Z instruction to the active function. -func (c *Context) VDIVSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VDIVSS_RU_SAE_Z(x, x1, k, x2)) -} - -// VDIVSS_RU_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VDIVSS_RU_SAE_Z(x, x1, k, x2) } - -// VDIVSS_RZ_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVSS.RZ_SAE xmm xmm k xmm -// VDIVSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VDIVSS.RZ_SAE instruction to the active function. -func (c *Context) VDIVSS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VDIVSS_RZ_SAE(ops...)) -} - -// VDIVSS_RZ_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVSS.RZ_SAE xmm xmm k xmm -// VDIVSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VDIVSS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VDIVSS_RZ_SAE(ops ...operand.Op) { ctx.VDIVSS_RZ_SAE(ops...) } - -// VDIVSS_RZ_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.RZ_SAE.Z instruction to the active function. -func (c *Context) VDIVSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VDIVSS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VDIVSS_RZ_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VDIVSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VDIVSS_RZ_SAE_Z(x, x1, k, x2) } - -// VDIVSS_Z: Divide Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVSS.Z m32 xmm k xmm -// VDIVSS.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.Z instruction to the active function. -func (c *Context) VDIVSS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VDIVSS_Z(mx, x, k, x1)) -} - -// VDIVSS_Z: Divide Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVSS.Z m32 xmm k xmm -// VDIVSS.Z xmm xmm k xmm -// -// Construct and append a VDIVSS.Z instruction to the active function. -// Operates on the global context. -func VDIVSS_Z(mx, x, k, x1 operand.Op) { ctx.VDIVSS_Z(mx, x, k, x1) } - -// VDPPD: Dot Product of Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VDPPD imm8 m128 xmm xmm -// VDPPD imm8 xmm xmm xmm -// -// Construct and append a VDPPD instruction to the active function. -func (c *Context) VDPPD(i, mx, x, x1 operand.Op) { - c.addinstruction(x86.VDPPD(i, mx, x, x1)) -} - -// VDPPD: Dot Product of Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VDPPD imm8 m128 xmm xmm -// VDPPD imm8 xmm xmm xmm -// -// Construct and append a VDPPD instruction to the active function. -// Operates on the global context. -func VDPPD(i, mx, x, x1 operand.Op) { ctx.VDPPD(i, mx, x, x1) } - -// VDPPS: Dot Product of Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VDPPS imm8 m128 xmm xmm -// VDPPS imm8 m256 ymm ymm -// VDPPS imm8 xmm xmm xmm -// VDPPS imm8 ymm ymm ymm -// -// Construct and append a VDPPS instruction to the active function. -func (c *Context) VDPPS(i, mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VDPPS(i, mxy, xy, xy1)) -} - -// VDPPS: Dot Product of Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VDPPS imm8 m128 xmm xmm -// VDPPS imm8 m256 ymm ymm -// VDPPS imm8 xmm xmm xmm -// VDPPS imm8 ymm ymm ymm -// -// Construct and append a VDPPS instruction to the active function. -// Operates on the global context. -func VDPPS(i, mxy, xy, xy1 operand.Op) { ctx.VDPPS(i, mxy, xy, xy1) } - -// VEXP2PD: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error. -// -// Forms: -// -// VEXP2PD m512 k zmm -// VEXP2PD m512 zmm -// VEXP2PD zmm k zmm -// VEXP2PD zmm zmm -// -// Construct and append a VEXP2PD instruction to the active function. -func (c *Context) VEXP2PD(ops ...operand.Op) { - c.addinstruction(x86.VEXP2PD(ops...)) -} - -// VEXP2PD: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error. -// -// Forms: -// -// VEXP2PD m512 k zmm -// VEXP2PD m512 zmm -// VEXP2PD zmm k zmm -// VEXP2PD zmm zmm -// -// Construct and append a VEXP2PD instruction to the active function. -// Operates on the global context. -func VEXP2PD(ops ...operand.Op) { ctx.VEXP2PD(ops...) } - -// VEXP2PD_BCST: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast). -// -// Forms: -// -// VEXP2PD.BCST m64 k zmm -// VEXP2PD.BCST m64 zmm -// -// Construct and append a VEXP2PD.BCST instruction to the active function. -func (c *Context) VEXP2PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VEXP2PD_BCST(ops...)) -} - -// VEXP2PD_BCST: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast). -// -// Forms: -// -// VEXP2PD.BCST m64 k zmm -// VEXP2PD.BCST m64 zmm -// -// Construct and append a VEXP2PD.BCST instruction to the active function. -// Operates on the global context. -func VEXP2PD_BCST(ops ...operand.Op) { ctx.VEXP2PD_BCST(ops...) } - -// VEXP2PD_BCST_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VEXP2PD.BCST.Z m64 k zmm -// -// Construct and append a VEXP2PD.BCST.Z instruction to the active function. -func (c *Context) VEXP2PD_BCST_Z(m, k, z operand.Op) { - c.addinstruction(x86.VEXP2PD_BCST_Z(m, k, z)) -} - -// VEXP2PD_BCST_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VEXP2PD.BCST.Z m64 k zmm -// -// Construct and append a VEXP2PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VEXP2PD_BCST_Z(m, k, z operand.Op) { ctx.VEXP2PD_BCST_Z(m, k, z) } - -// VEXP2PD_SAE: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VEXP2PD.SAE zmm k zmm -// VEXP2PD.SAE zmm zmm -// -// Construct and append a VEXP2PD.SAE instruction to the active function. -func (c *Context) VEXP2PD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VEXP2PD_SAE(ops...)) -} - -// VEXP2PD_SAE: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VEXP2PD.SAE zmm k zmm -// VEXP2PD.SAE zmm zmm -// -// Construct and append a VEXP2PD.SAE instruction to the active function. -// Operates on the global context. -func VEXP2PD_SAE(ops ...operand.Op) { ctx.VEXP2PD_SAE(ops...) } - -// VEXP2PD_SAE_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VEXP2PD.SAE.Z zmm k zmm -// -// Construct and append a VEXP2PD.SAE.Z instruction to the active function. -func (c *Context) VEXP2PD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VEXP2PD_SAE_Z(z, k, z1)) -} - -// VEXP2PD_SAE_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VEXP2PD.SAE.Z zmm k zmm -// -// Construct and append a VEXP2PD.SAE.Z instruction to the active function. -// Operates on the global context. -func VEXP2PD_SAE_Z(z, k, z1 operand.Op) { ctx.VEXP2PD_SAE_Z(z, k, z1) } - -// VEXP2PD_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Zeroing Masking). -// -// Forms: -// -// VEXP2PD.Z m512 k zmm -// VEXP2PD.Z zmm k zmm -// -// Construct and append a VEXP2PD.Z instruction to the active function. -func (c *Context) VEXP2PD_Z(mz, k, z operand.Op) { - c.addinstruction(x86.VEXP2PD_Z(mz, k, z)) -} - -// VEXP2PD_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Zeroing Masking). -// -// Forms: -// -// VEXP2PD.Z m512 k zmm -// VEXP2PD.Z zmm k zmm -// -// Construct and append a VEXP2PD.Z instruction to the active function. -// Operates on the global context. -func VEXP2PD_Z(mz, k, z operand.Op) { ctx.VEXP2PD_Z(mz, k, z) } - -// VEXP2PS: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error. -// -// Forms: -// -// VEXP2PS m512 k zmm -// VEXP2PS m512 zmm -// VEXP2PS zmm k zmm -// VEXP2PS zmm zmm -// -// Construct and append a VEXP2PS instruction to the active function. -func (c *Context) VEXP2PS(ops ...operand.Op) { - c.addinstruction(x86.VEXP2PS(ops...)) -} - -// VEXP2PS: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error. -// -// Forms: -// -// VEXP2PS m512 k zmm -// VEXP2PS m512 zmm -// VEXP2PS zmm k zmm -// VEXP2PS zmm zmm -// -// Construct and append a VEXP2PS instruction to the active function. -// Operates on the global context. -func VEXP2PS(ops ...operand.Op) { ctx.VEXP2PS(ops...) } - -// VEXP2PS_BCST: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast). -// -// Forms: -// -// VEXP2PS.BCST m32 k zmm -// VEXP2PS.BCST m32 zmm -// -// Construct and append a VEXP2PS.BCST instruction to the active function. -func (c *Context) VEXP2PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VEXP2PS_BCST(ops...)) -} - -// VEXP2PS_BCST: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast). -// -// Forms: -// -// VEXP2PS.BCST m32 k zmm -// VEXP2PS.BCST m32 zmm -// -// Construct and append a VEXP2PS.BCST instruction to the active function. -// Operates on the global context. -func VEXP2PS_BCST(ops ...operand.Op) { ctx.VEXP2PS_BCST(ops...) } - -// VEXP2PS_BCST_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VEXP2PS.BCST.Z m32 k zmm -// -// Construct and append a VEXP2PS.BCST.Z instruction to the active function. -func (c *Context) VEXP2PS_BCST_Z(m, k, z operand.Op) { - c.addinstruction(x86.VEXP2PS_BCST_Z(m, k, z)) -} - -// VEXP2PS_BCST_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VEXP2PS.BCST.Z m32 k zmm -// -// Construct and append a VEXP2PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VEXP2PS_BCST_Z(m, k, z operand.Op) { ctx.VEXP2PS_BCST_Z(m, k, z) } - -// VEXP2PS_SAE: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VEXP2PS.SAE zmm k zmm -// VEXP2PS.SAE zmm zmm -// -// Construct and append a VEXP2PS.SAE instruction to the active function. -func (c *Context) VEXP2PS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VEXP2PS_SAE(ops...)) -} - -// VEXP2PS_SAE: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VEXP2PS.SAE zmm k zmm -// VEXP2PS.SAE zmm zmm -// -// Construct and append a VEXP2PS.SAE instruction to the active function. -// Operates on the global context. -func VEXP2PS_SAE(ops ...operand.Op) { ctx.VEXP2PS_SAE(ops...) } - -// VEXP2PS_SAE_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VEXP2PS.SAE.Z zmm k zmm -// -// Construct and append a VEXP2PS.SAE.Z instruction to the active function. -func (c *Context) VEXP2PS_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VEXP2PS_SAE_Z(z, k, z1)) -} - -// VEXP2PS_SAE_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VEXP2PS.SAE.Z zmm k zmm -// -// Construct and append a VEXP2PS.SAE.Z instruction to the active function. -// Operates on the global context. -func VEXP2PS_SAE_Z(z, k, z1 operand.Op) { ctx.VEXP2PS_SAE_Z(z, k, z1) } - -// VEXP2PS_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Zeroing Masking). -// -// Forms: -// -// VEXP2PS.Z m512 k zmm -// VEXP2PS.Z zmm k zmm -// -// Construct and append a VEXP2PS.Z instruction to the active function. -func (c *Context) VEXP2PS_Z(mz, k, z operand.Op) { - c.addinstruction(x86.VEXP2PS_Z(mz, k, z)) -} - -// VEXP2PS_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Zeroing Masking). -// -// Forms: -// -// VEXP2PS.Z m512 k zmm -// VEXP2PS.Z zmm k zmm -// -// Construct and append a VEXP2PS.Z instruction to the active function. -// Operates on the global context. -func VEXP2PS_Z(mz, k, z operand.Op) { ctx.VEXP2PS_Z(mz, k, z) } - -// VEXPANDPD: Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory. -// -// Forms: -// -// VEXPANDPD m256 k ymm -// VEXPANDPD m256 ymm -// VEXPANDPD ymm k ymm -// VEXPANDPD ymm ymm -// VEXPANDPD m512 k zmm -// VEXPANDPD m512 zmm -// VEXPANDPD zmm k zmm -// VEXPANDPD zmm zmm -// VEXPANDPD m128 k xmm -// VEXPANDPD m128 xmm -// VEXPANDPD xmm k xmm -// VEXPANDPD xmm xmm -// -// Construct and append a VEXPANDPD instruction to the active function. -func (c *Context) VEXPANDPD(ops ...operand.Op) { - c.addinstruction(x86.VEXPANDPD(ops...)) -} - -// VEXPANDPD: Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory. -// -// Forms: -// -// VEXPANDPD m256 k ymm -// VEXPANDPD m256 ymm -// VEXPANDPD ymm k ymm -// VEXPANDPD ymm ymm -// VEXPANDPD m512 k zmm -// VEXPANDPD m512 zmm -// VEXPANDPD zmm k zmm -// VEXPANDPD zmm zmm -// VEXPANDPD m128 k xmm -// VEXPANDPD m128 xmm -// VEXPANDPD xmm k xmm -// VEXPANDPD xmm xmm -// -// Construct and append a VEXPANDPD instruction to the active function. -// Operates on the global context. -func VEXPANDPD(ops ...operand.Op) { ctx.VEXPANDPD(ops...) } - -// VEXPANDPD_Z: Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory (Zeroing Masking). -// -// Forms: -// -// VEXPANDPD.Z m256 k ymm -// VEXPANDPD.Z ymm k ymm -// VEXPANDPD.Z m512 k zmm -// VEXPANDPD.Z zmm k zmm -// VEXPANDPD.Z m128 k xmm -// VEXPANDPD.Z xmm k xmm -// -// Construct and append a VEXPANDPD.Z instruction to the active function. -func (c *Context) VEXPANDPD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VEXPANDPD_Z(mxyz, k, xyz)) -} - -// VEXPANDPD_Z: Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory (Zeroing Masking). -// -// Forms: -// -// VEXPANDPD.Z m256 k ymm -// VEXPANDPD.Z ymm k ymm -// VEXPANDPD.Z m512 k zmm -// VEXPANDPD.Z zmm k zmm -// VEXPANDPD.Z m128 k xmm -// VEXPANDPD.Z xmm k xmm -// -// Construct and append a VEXPANDPD.Z instruction to the active function. -// Operates on the global context. -func VEXPANDPD_Z(mxyz, k, xyz operand.Op) { ctx.VEXPANDPD_Z(mxyz, k, xyz) } - -// VEXPANDPS: Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory. -// -// Forms: -// -// VEXPANDPS m128 k xmm -// VEXPANDPS m128 xmm -// VEXPANDPS m256 k ymm -// VEXPANDPS m256 ymm -// VEXPANDPS xmm k xmm -// VEXPANDPS xmm xmm -// VEXPANDPS ymm k ymm -// VEXPANDPS ymm ymm -// VEXPANDPS m512 k zmm -// VEXPANDPS m512 zmm -// VEXPANDPS zmm k zmm -// VEXPANDPS zmm zmm -// -// Construct and append a VEXPANDPS instruction to the active function. -func (c *Context) VEXPANDPS(ops ...operand.Op) { - c.addinstruction(x86.VEXPANDPS(ops...)) -} - -// VEXPANDPS: Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory. -// -// Forms: -// -// VEXPANDPS m128 k xmm -// VEXPANDPS m128 xmm -// VEXPANDPS m256 k ymm -// VEXPANDPS m256 ymm -// VEXPANDPS xmm k xmm -// VEXPANDPS xmm xmm -// VEXPANDPS ymm k ymm -// VEXPANDPS ymm ymm -// VEXPANDPS m512 k zmm -// VEXPANDPS m512 zmm -// VEXPANDPS zmm k zmm -// VEXPANDPS zmm zmm -// -// Construct and append a VEXPANDPS instruction to the active function. -// Operates on the global context. -func VEXPANDPS(ops ...operand.Op) { ctx.VEXPANDPS(ops...) } - -// VEXPANDPS_Z: Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory (Zeroing Masking). -// -// Forms: -// -// VEXPANDPS.Z m128 k xmm -// VEXPANDPS.Z m256 k ymm -// VEXPANDPS.Z xmm k xmm -// VEXPANDPS.Z ymm k ymm -// VEXPANDPS.Z m512 k zmm -// VEXPANDPS.Z zmm k zmm -// -// Construct and append a VEXPANDPS.Z instruction to the active function. -func (c *Context) VEXPANDPS_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VEXPANDPS_Z(mxyz, k, xyz)) -} - -// VEXPANDPS_Z: Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory (Zeroing Masking). -// -// Forms: -// -// VEXPANDPS.Z m128 k xmm -// VEXPANDPS.Z m256 k ymm -// VEXPANDPS.Z xmm k xmm -// VEXPANDPS.Z ymm k ymm -// VEXPANDPS.Z m512 k zmm -// VEXPANDPS.Z zmm k zmm -// -// Construct and append a VEXPANDPS.Z instruction to the active function. -// Operates on the global context. -func VEXPANDPS_Z(mxyz, k, xyz operand.Op) { ctx.VEXPANDPS_Z(mxyz, k, xyz) } - -// VEXTRACTF128: Extract Packed Floating-Point Values. -// -// Forms: -// -// VEXTRACTF128 imm8 ymm m128 -// VEXTRACTF128 imm8 ymm xmm -// -// Construct and append a VEXTRACTF128 instruction to the active function. -func (c *Context) VEXTRACTF128(i, y, mx operand.Op) { - c.addinstruction(x86.VEXTRACTF128(i, y, mx)) -} - -// VEXTRACTF128: Extract Packed Floating-Point Values. -// -// Forms: -// -// VEXTRACTF128 imm8 ymm m128 -// VEXTRACTF128 imm8 ymm xmm -// -// Construct and append a VEXTRACTF128 instruction to the active function. -// Operates on the global context. -func VEXTRACTF128(i, y, mx operand.Op) { ctx.VEXTRACTF128(i, y, mx) } - -// VEXTRACTF32X4: Extract 128 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF32X4 imm8 ymm k m128 -// VEXTRACTF32X4 imm8 ymm k xmm -// VEXTRACTF32X4 imm8 ymm m128 -// VEXTRACTF32X4 imm8 ymm xmm -// VEXTRACTF32X4 imm8 zmm k m128 -// VEXTRACTF32X4 imm8 zmm k xmm -// VEXTRACTF32X4 imm8 zmm m128 -// VEXTRACTF32X4 imm8 zmm xmm -// -// Construct and append a VEXTRACTF32X4 instruction to the active function. -func (c *Context) VEXTRACTF32X4(ops ...operand.Op) { - c.addinstruction(x86.VEXTRACTF32X4(ops...)) -} - -// VEXTRACTF32X4: Extract 128 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF32X4 imm8 ymm k m128 -// VEXTRACTF32X4 imm8 ymm k xmm -// VEXTRACTF32X4 imm8 ymm m128 -// VEXTRACTF32X4 imm8 ymm xmm -// VEXTRACTF32X4 imm8 zmm k m128 -// VEXTRACTF32X4 imm8 zmm k xmm -// VEXTRACTF32X4 imm8 zmm m128 -// VEXTRACTF32X4 imm8 zmm xmm -// -// Construct and append a VEXTRACTF32X4 instruction to the active function. -// Operates on the global context. -func VEXTRACTF32X4(ops ...operand.Op) { ctx.VEXTRACTF32X4(ops...) } - -// VEXTRACTF32X4_Z: Extract 128 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF32X4.Z imm8 ymm k m128 -// VEXTRACTF32X4.Z imm8 ymm k xmm -// VEXTRACTF32X4.Z imm8 zmm k m128 -// VEXTRACTF32X4.Z imm8 zmm k xmm -// -// Construct and append a VEXTRACTF32X4.Z instruction to the active function. -func (c *Context) VEXTRACTF32X4_Z(i, yz, k, mx operand.Op) { - c.addinstruction(x86.VEXTRACTF32X4_Z(i, yz, k, mx)) -} - -// VEXTRACTF32X4_Z: Extract 128 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF32X4.Z imm8 ymm k m128 -// VEXTRACTF32X4.Z imm8 ymm k xmm -// VEXTRACTF32X4.Z imm8 zmm k m128 -// VEXTRACTF32X4.Z imm8 zmm k xmm -// -// Construct and append a VEXTRACTF32X4.Z instruction to the active function. -// Operates on the global context. -func VEXTRACTF32X4_Z(i, yz, k, mx operand.Op) { ctx.VEXTRACTF32X4_Z(i, yz, k, mx) } - -// VEXTRACTF32X8: Extract 256 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF32X8 imm8 zmm k m256 -// VEXTRACTF32X8 imm8 zmm k ymm -// VEXTRACTF32X8 imm8 zmm m256 -// VEXTRACTF32X8 imm8 zmm ymm -// -// Construct and append a VEXTRACTF32X8 instruction to the active function. -func (c *Context) VEXTRACTF32X8(ops ...operand.Op) { - c.addinstruction(x86.VEXTRACTF32X8(ops...)) -} - -// VEXTRACTF32X8: Extract 256 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF32X8 imm8 zmm k m256 -// VEXTRACTF32X8 imm8 zmm k ymm -// VEXTRACTF32X8 imm8 zmm m256 -// VEXTRACTF32X8 imm8 zmm ymm -// -// Construct and append a VEXTRACTF32X8 instruction to the active function. -// Operates on the global context. -func VEXTRACTF32X8(ops ...operand.Op) { ctx.VEXTRACTF32X8(ops...) } - -// VEXTRACTF32X8_Z: Extract 256 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF32X8.Z imm8 zmm k m256 -// VEXTRACTF32X8.Z imm8 zmm k ymm -// -// Construct and append a VEXTRACTF32X8.Z instruction to the active function. -func (c *Context) VEXTRACTF32X8_Z(i, z, k, my operand.Op) { - c.addinstruction(x86.VEXTRACTF32X8_Z(i, z, k, my)) -} - -// VEXTRACTF32X8_Z: Extract 256 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF32X8.Z imm8 zmm k m256 -// VEXTRACTF32X8.Z imm8 zmm k ymm -// -// Construct and append a VEXTRACTF32X8.Z instruction to the active function. -// Operates on the global context. -func VEXTRACTF32X8_Z(i, z, k, my operand.Op) { ctx.VEXTRACTF32X8_Z(i, z, k, my) } - -// VEXTRACTF64X2: Extract 128 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF64X2 imm8 ymm k m128 -// VEXTRACTF64X2 imm8 ymm k xmm -// VEXTRACTF64X2 imm8 ymm m128 -// VEXTRACTF64X2 imm8 ymm xmm -// VEXTRACTF64X2 imm8 zmm k m128 -// VEXTRACTF64X2 imm8 zmm k xmm -// VEXTRACTF64X2 imm8 zmm m128 -// VEXTRACTF64X2 imm8 zmm xmm -// -// Construct and append a VEXTRACTF64X2 instruction to the active function. -func (c *Context) VEXTRACTF64X2(ops ...operand.Op) { - c.addinstruction(x86.VEXTRACTF64X2(ops...)) -} - -// VEXTRACTF64X2: Extract 128 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF64X2 imm8 ymm k m128 -// VEXTRACTF64X2 imm8 ymm k xmm -// VEXTRACTF64X2 imm8 ymm m128 -// VEXTRACTF64X2 imm8 ymm xmm -// VEXTRACTF64X2 imm8 zmm k m128 -// VEXTRACTF64X2 imm8 zmm k xmm -// VEXTRACTF64X2 imm8 zmm m128 -// VEXTRACTF64X2 imm8 zmm xmm -// -// Construct and append a VEXTRACTF64X2 instruction to the active function. -// Operates on the global context. -func VEXTRACTF64X2(ops ...operand.Op) { ctx.VEXTRACTF64X2(ops...) } - -// VEXTRACTF64X2_Z: Extract 128 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF64X2.Z imm8 ymm k m128 -// VEXTRACTF64X2.Z imm8 ymm k xmm -// VEXTRACTF64X2.Z imm8 zmm k m128 -// VEXTRACTF64X2.Z imm8 zmm k xmm -// -// Construct and append a VEXTRACTF64X2.Z instruction to the active function. -func (c *Context) VEXTRACTF64X2_Z(i, yz, k, mx operand.Op) { - c.addinstruction(x86.VEXTRACTF64X2_Z(i, yz, k, mx)) -} - -// VEXTRACTF64X2_Z: Extract 128 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF64X2.Z imm8 ymm k m128 -// VEXTRACTF64X2.Z imm8 ymm k xmm -// VEXTRACTF64X2.Z imm8 zmm k m128 -// VEXTRACTF64X2.Z imm8 zmm k xmm -// -// Construct and append a VEXTRACTF64X2.Z instruction to the active function. -// Operates on the global context. -func VEXTRACTF64X2_Z(i, yz, k, mx operand.Op) { ctx.VEXTRACTF64X2_Z(i, yz, k, mx) } - -// VEXTRACTF64X4: Extract 256 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF64X4 imm8 zmm k m256 -// VEXTRACTF64X4 imm8 zmm k ymm -// VEXTRACTF64X4 imm8 zmm m256 -// VEXTRACTF64X4 imm8 zmm ymm -// -// Construct and append a VEXTRACTF64X4 instruction to the active function. -func (c *Context) VEXTRACTF64X4(ops ...operand.Op) { - c.addinstruction(x86.VEXTRACTF64X4(ops...)) -} - -// VEXTRACTF64X4: Extract 256 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF64X4 imm8 zmm k m256 -// VEXTRACTF64X4 imm8 zmm k ymm -// VEXTRACTF64X4 imm8 zmm m256 -// VEXTRACTF64X4 imm8 zmm ymm -// -// Construct and append a VEXTRACTF64X4 instruction to the active function. -// Operates on the global context. -func VEXTRACTF64X4(ops ...operand.Op) { ctx.VEXTRACTF64X4(ops...) } - -// VEXTRACTF64X4_Z: Extract 256 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF64X4.Z imm8 zmm k m256 -// VEXTRACTF64X4.Z imm8 zmm k ymm -// -// Construct and append a VEXTRACTF64X4.Z instruction to the active function. -func (c *Context) VEXTRACTF64X4_Z(i, z, k, my operand.Op) { - c.addinstruction(x86.VEXTRACTF64X4_Z(i, z, k, my)) -} - -// VEXTRACTF64X4_Z: Extract 256 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF64X4.Z imm8 zmm k m256 -// VEXTRACTF64X4.Z imm8 zmm k ymm -// -// Construct and append a VEXTRACTF64X4.Z instruction to the active function. -// Operates on the global context. -func VEXTRACTF64X4_Z(i, z, k, my operand.Op) { ctx.VEXTRACTF64X4_Z(i, z, k, my) } - -// VEXTRACTI128: Extract Packed Integer Values. -// -// Forms: -// -// VEXTRACTI128 imm8 ymm m128 -// VEXTRACTI128 imm8 ymm xmm -// -// Construct and append a VEXTRACTI128 instruction to the active function. -func (c *Context) VEXTRACTI128(i, y, mx operand.Op) { - c.addinstruction(x86.VEXTRACTI128(i, y, mx)) -} - -// VEXTRACTI128: Extract Packed Integer Values. -// -// Forms: -// -// VEXTRACTI128 imm8 ymm m128 -// VEXTRACTI128 imm8 ymm xmm -// -// Construct and append a VEXTRACTI128 instruction to the active function. -// Operates on the global context. -func VEXTRACTI128(i, y, mx operand.Op) { ctx.VEXTRACTI128(i, y, mx) } - -// VEXTRACTI32X4: Extract 128 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VEXTRACTI32X4 imm8 ymm k m128 -// VEXTRACTI32X4 imm8 ymm k xmm -// VEXTRACTI32X4 imm8 ymm m128 -// VEXTRACTI32X4 imm8 ymm xmm -// VEXTRACTI32X4 imm8 zmm k m128 -// VEXTRACTI32X4 imm8 zmm k xmm -// VEXTRACTI32X4 imm8 zmm m128 -// VEXTRACTI32X4 imm8 zmm xmm -// -// Construct and append a VEXTRACTI32X4 instruction to the active function. -func (c *Context) VEXTRACTI32X4(ops ...operand.Op) { - c.addinstruction(x86.VEXTRACTI32X4(ops...)) -} - -// VEXTRACTI32X4: Extract 128 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VEXTRACTI32X4 imm8 ymm k m128 -// VEXTRACTI32X4 imm8 ymm k xmm -// VEXTRACTI32X4 imm8 ymm m128 -// VEXTRACTI32X4 imm8 ymm xmm -// VEXTRACTI32X4 imm8 zmm k m128 -// VEXTRACTI32X4 imm8 zmm k xmm -// VEXTRACTI32X4 imm8 zmm m128 -// VEXTRACTI32X4 imm8 zmm xmm -// -// Construct and append a VEXTRACTI32X4 instruction to the active function. -// Operates on the global context. -func VEXTRACTI32X4(ops ...operand.Op) { ctx.VEXTRACTI32X4(ops...) } - -// VEXTRACTI32X4_Z: Extract 128 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI32X4.Z imm8 ymm k m128 -// VEXTRACTI32X4.Z imm8 ymm k xmm -// VEXTRACTI32X4.Z imm8 zmm k m128 -// VEXTRACTI32X4.Z imm8 zmm k xmm -// -// Construct and append a VEXTRACTI32X4.Z instruction to the active function. -func (c *Context) VEXTRACTI32X4_Z(i, yz, k, mx operand.Op) { - c.addinstruction(x86.VEXTRACTI32X4_Z(i, yz, k, mx)) -} - -// VEXTRACTI32X4_Z: Extract 128 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI32X4.Z imm8 ymm k m128 -// VEXTRACTI32X4.Z imm8 ymm k xmm -// VEXTRACTI32X4.Z imm8 zmm k m128 -// VEXTRACTI32X4.Z imm8 zmm k xmm -// -// Construct and append a VEXTRACTI32X4.Z instruction to the active function. -// Operates on the global context. -func VEXTRACTI32X4_Z(i, yz, k, mx operand.Op) { ctx.VEXTRACTI32X4_Z(i, yz, k, mx) } - -// VEXTRACTI32X8: Extract 256 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VEXTRACTI32X8 imm8 zmm k m256 -// VEXTRACTI32X8 imm8 zmm k ymm -// VEXTRACTI32X8 imm8 zmm m256 -// VEXTRACTI32X8 imm8 zmm ymm -// -// Construct and append a VEXTRACTI32X8 instruction to the active function. -func (c *Context) VEXTRACTI32X8(ops ...operand.Op) { - c.addinstruction(x86.VEXTRACTI32X8(ops...)) -} - -// VEXTRACTI32X8: Extract 256 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VEXTRACTI32X8 imm8 zmm k m256 -// VEXTRACTI32X8 imm8 zmm k ymm -// VEXTRACTI32X8 imm8 zmm m256 -// VEXTRACTI32X8 imm8 zmm ymm -// -// Construct and append a VEXTRACTI32X8 instruction to the active function. -// Operates on the global context. -func VEXTRACTI32X8(ops ...operand.Op) { ctx.VEXTRACTI32X8(ops...) } - -// VEXTRACTI32X8_Z: Extract 256 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI32X8.Z imm8 zmm k m256 -// VEXTRACTI32X8.Z imm8 zmm k ymm -// -// Construct and append a VEXTRACTI32X8.Z instruction to the active function. -func (c *Context) VEXTRACTI32X8_Z(i, z, k, my operand.Op) { - c.addinstruction(x86.VEXTRACTI32X8_Z(i, z, k, my)) -} - -// VEXTRACTI32X8_Z: Extract 256 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI32X8.Z imm8 zmm k m256 -// VEXTRACTI32X8.Z imm8 zmm k ymm -// -// Construct and append a VEXTRACTI32X8.Z instruction to the active function. -// Operates on the global context. -func VEXTRACTI32X8_Z(i, z, k, my operand.Op) { ctx.VEXTRACTI32X8_Z(i, z, k, my) } - -// VEXTRACTI64X2: Extract 128 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VEXTRACTI64X2 imm8 ymm k m128 -// VEXTRACTI64X2 imm8 ymm k xmm -// VEXTRACTI64X2 imm8 ymm m128 -// VEXTRACTI64X2 imm8 ymm xmm -// VEXTRACTI64X2 imm8 zmm k m128 -// VEXTRACTI64X2 imm8 zmm k xmm -// VEXTRACTI64X2 imm8 zmm m128 -// VEXTRACTI64X2 imm8 zmm xmm -// -// Construct and append a VEXTRACTI64X2 instruction to the active function. -func (c *Context) VEXTRACTI64X2(ops ...operand.Op) { - c.addinstruction(x86.VEXTRACTI64X2(ops...)) -} - -// VEXTRACTI64X2: Extract 128 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VEXTRACTI64X2 imm8 ymm k m128 -// VEXTRACTI64X2 imm8 ymm k xmm -// VEXTRACTI64X2 imm8 ymm m128 -// VEXTRACTI64X2 imm8 ymm xmm -// VEXTRACTI64X2 imm8 zmm k m128 -// VEXTRACTI64X2 imm8 zmm k xmm -// VEXTRACTI64X2 imm8 zmm m128 -// VEXTRACTI64X2 imm8 zmm xmm -// -// Construct and append a VEXTRACTI64X2 instruction to the active function. -// Operates on the global context. -func VEXTRACTI64X2(ops ...operand.Op) { ctx.VEXTRACTI64X2(ops...) } - -// VEXTRACTI64X2_Z: Extract 128 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI64X2.Z imm8 ymm k m128 -// VEXTRACTI64X2.Z imm8 ymm k xmm -// VEXTRACTI64X2.Z imm8 zmm k m128 -// VEXTRACTI64X2.Z imm8 zmm k xmm -// -// Construct and append a VEXTRACTI64X2.Z instruction to the active function. -func (c *Context) VEXTRACTI64X2_Z(i, yz, k, mx operand.Op) { - c.addinstruction(x86.VEXTRACTI64X2_Z(i, yz, k, mx)) -} - -// VEXTRACTI64X2_Z: Extract 128 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI64X2.Z imm8 ymm k m128 -// VEXTRACTI64X2.Z imm8 ymm k xmm -// VEXTRACTI64X2.Z imm8 zmm k m128 -// VEXTRACTI64X2.Z imm8 zmm k xmm -// -// Construct and append a VEXTRACTI64X2.Z instruction to the active function. -// Operates on the global context. -func VEXTRACTI64X2_Z(i, yz, k, mx operand.Op) { ctx.VEXTRACTI64X2_Z(i, yz, k, mx) } - -// VEXTRACTI64X4: Extract 256 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VEXTRACTI64X4 imm8 zmm k m256 -// VEXTRACTI64X4 imm8 zmm k ymm -// VEXTRACTI64X4 imm8 zmm m256 -// VEXTRACTI64X4 imm8 zmm ymm -// -// Construct and append a VEXTRACTI64X4 instruction to the active function. -func (c *Context) VEXTRACTI64X4(ops ...operand.Op) { - c.addinstruction(x86.VEXTRACTI64X4(ops...)) -} - -// VEXTRACTI64X4: Extract 256 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VEXTRACTI64X4 imm8 zmm k m256 -// VEXTRACTI64X4 imm8 zmm k ymm -// VEXTRACTI64X4 imm8 zmm m256 -// VEXTRACTI64X4 imm8 zmm ymm -// -// Construct and append a VEXTRACTI64X4 instruction to the active function. -// Operates on the global context. -func VEXTRACTI64X4(ops ...operand.Op) { ctx.VEXTRACTI64X4(ops...) } - -// VEXTRACTI64X4_Z: Extract 256 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI64X4.Z imm8 zmm k m256 -// VEXTRACTI64X4.Z imm8 zmm k ymm -// -// Construct and append a VEXTRACTI64X4.Z instruction to the active function. -func (c *Context) VEXTRACTI64X4_Z(i, z, k, my operand.Op) { - c.addinstruction(x86.VEXTRACTI64X4_Z(i, z, k, my)) -} - -// VEXTRACTI64X4_Z: Extract 256 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI64X4.Z imm8 zmm k m256 -// VEXTRACTI64X4.Z imm8 zmm k ymm -// -// Construct and append a VEXTRACTI64X4.Z instruction to the active function. -// Operates on the global context. -func VEXTRACTI64X4_Z(i, z, k, my operand.Op) { ctx.VEXTRACTI64X4_Z(i, z, k, my) } - -// VEXTRACTPS: Extract Packed Single Precision Floating-Point Value. -// -// Forms: -// -// VEXTRACTPS imm8 xmm m32 -// VEXTRACTPS imm8 xmm r32 -// -// Construct and append a VEXTRACTPS instruction to the active function. -func (c *Context) VEXTRACTPS(i, x, mr operand.Op) { - c.addinstruction(x86.VEXTRACTPS(i, x, mr)) -} - -// VEXTRACTPS: Extract Packed Single Precision Floating-Point Value. -// -// Forms: -// -// VEXTRACTPS imm8 xmm m32 -// VEXTRACTPS imm8 xmm r32 -// -// Construct and append a VEXTRACTPS instruction to the active function. -// Operates on the global context. -func VEXTRACTPS(i, x, mr operand.Op) { ctx.VEXTRACTPS(i, x, mr) } - -// VFIXUPIMMPD: Fix Up Special Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFIXUPIMMPD imm8 m128 xmm k xmm -// VFIXUPIMMPD imm8 m128 xmm xmm -// VFIXUPIMMPD imm8 m256 ymm k ymm -// VFIXUPIMMPD imm8 m256 ymm ymm -// VFIXUPIMMPD imm8 xmm xmm k xmm -// VFIXUPIMMPD imm8 xmm xmm xmm -// VFIXUPIMMPD imm8 ymm ymm k ymm -// VFIXUPIMMPD imm8 ymm ymm ymm -// VFIXUPIMMPD imm8 m512 zmm k zmm -// VFIXUPIMMPD imm8 m512 zmm zmm -// VFIXUPIMMPD imm8 zmm zmm k zmm -// VFIXUPIMMPD imm8 zmm zmm zmm -// -// Construct and append a VFIXUPIMMPD instruction to the active function. -func (c *Context) VFIXUPIMMPD(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMPD(ops...)) -} - -// VFIXUPIMMPD: Fix Up Special Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFIXUPIMMPD imm8 m128 xmm k xmm -// VFIXUPIMMPD imm8 m128 xmm xmm -// VFIXUPIMMPD imm8 m256 ymm k ymm -// VFIXUPIMMPD imm8 m256 ymm ymm -// VFIXUPIMMPD imm8 xmm xmm k xmm -// VFIXUPIMMPD imm8 xmm xmm xmm -// VFIXUPIMMPD imm8 ymm ymm k ymm -// VFIXUPIMMPD imm8 ymm ymm ymm -// VFIXUPIMMPD imm8 m512 zmm k zmm -// VFIXUPIMMPD imm8 m512 zmm zmm -// VFIXUPIMMPD imm8 zmm zmm k zmm -// VFIXUPIMMPD imm8 zmm zmm zmm -// -// Construct and append a VFIXUPIMMPD instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPD(ops ...operand.Op) { ctx.VFIXUPIMMPD(ops...) } - -// VFIXUPIMMPD_BCST: Fix Up Special Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFIXUPIMMPD.BCST imm8 m64 xmm k xmm -// VFIXUPIMMPD.BCST imm8 m64 xmm xmm -// VFIXUPIMMPD.BCST imm8 m64 ymm k ymm -// VFIXUPIMMPD.BCST imm8 m64 ymm ymm -// VFIXUPIMMPD.BCST imm8 m64 zmm k zmm -// VFIXUPIMMPD.BCST imm8 m64 zmm zmm -// -// Construct and append a VFIXUPIMMPD.BCST instruction to the active function. -func (c *Context) VFIXUPIMMPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMPD_BCST(ops...)) -} - -// VFIXUPIMMPD_BCST: Fix Up Special Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFIXUPIMMPD.BCST imm8 m64 xmm k xmm -// VFIXUPIMMPD.BCST imm8 m64 xmm xmm -// VFIXUPIMMPD.BCST imm8 m64 ymm k ymm -// VFIXUPIMMPD.BCST imm8 m64 ymm ymm -// VFIXUPIMMPD.BCST imm8 m64 zmm k zmm -// VFIXUPIMMPD.BCST imm8 m64 zmm zmm -// -// Construct and append a VFIXUPIMMPD.BCST instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPD_BCST(ops ...operand.Op) { ctx.VFIXUPIMMPD_BCST(ops...) } - -// VFIXUPIMMPD_BCST_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPD.BCST.Z imm8 m64 xmm k xmm -// VFIXUPIMMPD.BCST.Z imm8 m64 ymm k ymm -// VFIXUPIMMPD.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VFIXUPIMMPD.BCST.Z instruction to the active function. -func (c *Context) VFIXUPIMMPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFIXUPIMMPD_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VFIXUPIMMPD_BCST_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPD.BCST.Z imm8 m64 xmm k xmm -// VFIXUPIMMPD.BCST.Z imm8 m64 ymm k ymm -// VFIXUPIMMPD.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VFIXUPIMMPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VFIXUPIMMPD_BCST_Z(i, m, xyz, k, xyz1) } - -// VFIXUPIMMPD_SAE: Fix Up Special Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMPD.SAE imm8 zmm zmm k zmm -// VFIXUPIMMPD.SAE imm8 zmm zmm zmm -// -// Construct and append a VFIXUPIMMPD.SAE instruction to the active function. -func (c *Context) VFIXUPIMMPD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMPD_SAE(ops...)) -} - -// VFIXUPIMMPD_SAE: Fix Up Special Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMPD.SAE imm8 zmm zmm k zmm -// VFIXUPIMMPD.SAE imm8 zmm zmm zmm -// -// Construct and append a VFIXUPIMMPD.SAE instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPD_SAE(ops ...operand.Op) { ctx.VFIXUPIMMPD_SAE(ops...) } - -// VFIXUPIMMPD_SAE_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPD.SAE.Z imm8 zmm zmm k zmm -// -// Construct and append a VFIXUPIMMPD.SAE.Z instruction to the active function. -func (c *Context) VFIXUPIMMPD_SAE_Z(i, z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFIXUPIMMPD_SAE_Z(i, z, z1, k, z2)) -} - -// VFIXUPIMMPD_SAE_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPD.SAE.Z imm8 zmm zmm k zmm -// -// Construct and append a VFIXUPIMMPD.SAE.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPD_SAE_Z(i, z, z1, k, z2 operand.Op) { ctx.VFIXUPIMMPD_SAE_Z(i, z, z1, k, z2) } - -// VFIXUPIMMPD_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPD.Z imm8 m128 xmm k xmm -// VFIXUPIMMPD.Z imm8 m256 ymm k ymm -// VFIXUPIMMPD.Z imm8 xmm xmm k xmm -// VFIXUPIMMPD.Z imm8 ymm ymm k ymm -// VFIXUPIMMPD.Z imm8 m512 zmm k zmm -// VFIXUPIMMPD.Z imm8 zmm zmm k zmm -// -// Construct and append a VFIXUPIMMPD.Z instruction to the active function. -func (c *Context) VFIXUPIMMPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFIXUPIMMPD_Z(i, mxyz, xyz, k, xyz1)) -} - -// VFIXUPIMMPD_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPD.Z imm8 m128 xmm k xmm -// VFIXUPIMMPD.Z imm8 m256 ymm k ymm -// VFIXUPIMMPD.Z imm8 xmm xmm k xmm -// VFIXUPIMMPD.Z imm8 ymm ymm k ymm -// VFIXUPIMMPD.Z imm8 m512 zmm k zmm -// VFIXUPIMMPD.Z imm8 zmm zmm k zmm -// -// Construct and append a VFIXUPIMMPD.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VFIXUPIMMPD_Z(i, mxyz, xyz, k, xyz1) } - -// VFIXUPIMMPS: Fix Up Special Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFIXUPIMMPS imm8 m256 ymm k ymm -// VFIXUPIMMPS imm8 m256 ymm ymm -// VFIXUPIMMPS imm8 ymm ymm k ymm -// VFIXUPIMMPS imm8 ymm ymm ymm -// VFIXUPIMMPS imm8 m512 zmm k zmm -// VFIXUPIMMPS imm8 m512 zmm zmm -// VFIXUPIMMPS imm8 zmm zmm k zmm -// VFIXUPIMMPS imm8 zmm zmm zmm -// VFIXUPIMMPS imm8 m128 xmm k xmm -// VFIXUPIMMPS imm8 m128 xmm xmm -// VFIXUPIMMPS imm8 xmm xmm k xmm -// VFIXUPIMMPS imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMPS instruction to the active function. -func (c *Context) VFIXUPIMMPS(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMPS(ops...)) -} - -// VFIXUPIMMPS: Fix Up Special Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFIXUPIMMPS imm8 m256 ymm k ymm -// VFIXUPIMMPS imm8 m256 ymm ymm -// VFIXUPIMMPS imm8 ymm ymm k ymm -// VFIXUPIMMPS imm8 ymm ymm ymm -// VFIXUPIMMPS imm8 m512 zmm k zmm -// VFIXUPIMMPS imm8 m512 zmm zmm -// VFIXUPIMMPS imm8 zmm zmm k zmm -// VFIXUPIMMPS imm8 zmm zmm zmm -// VFIXUPIMMPS imm8 m128 xmm k xmm -// VFIXUPIMMPS imm8 m128 xmm xmm -// VFIXUPIMMPS imm8 xmm xmm k xmm -// VFIXUPIMMPS imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMPS instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPS(ops ...operand.Op) { ctx.VFIXUPIMMPS(ops...) } - -// VFIXUPIMMPS_BCST: Fix Up Special Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFIXUPIMMPS.BCST imm8 m32 ymm k ymm -// VFIXUPIMMPS.BCST imm8 m32 ymm ymm -// VFIXUPIMMPS.BCST imm8 m32 zmm k zmm -// VFIXUPIMMPS.BCST imm8 m32 zmm zmm -// VFIXUPIMMPS.BCST imm8 m32 xmm k xmm -// VFIXUPIMMPS.BCST imm8 m32 xmm xmm -// -// Construct and append a VFIXUPIMMPS.BCST instruction to the active function. -func (c *Context) VFIXUPIMMPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMPS_BCST(ops...)) -} - -// VFIXUPIMMPS_BCST: Fix Up Special Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFIXUPIMMPS.BCST imm8 m32 ymm k ymm -// VFIXUPIMMPS.BCST imm8 m32 ymm ymm -// VFIXUPIMMPS.BCST imm8 m32 zmm k zmm -// VFIXUPIMMPS.BCST imm8 m32 zmm zmm -// VFIXUPIMMPS.BCST imm8 m32 xmm k xmm -// VFIXUPIMMPS.BCST imm8 m32 xmm xmm -// -// Construct and append a VFIXUPIMMPS.BCST instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPS_BCST(ops ...operand.Op) { ctx.VFIXUPIMMPS_BCST(ops...) } - -// VFIXUPIMMPS_BCST_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPS.BCST.Z imm8 m32 ymm k ymm -// VFIXUPIMMPS.BCST.Z imm8 m32 zmm k zmm -// VFIXUPIMMPS.BCST.Z imm8 m32 xmm k xmm -// -// Construct and append a VFIXUPIMMPS.BCST.Z instruction to the active function. -func (c *Context) VFIXUPIMMPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFIXUPIMMPS_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VFIXUPIMMPS_BCST_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPS.BCST.Z imm8 m32 ymm k ymm -// VFIXUPIMMPS.BCST.Z imm8 m32 zmm k zmm -// VFIXUPIMMPS.BCST.Z imm8 m32 xmm k xmm -// -// Construct and append a VFIXUPIMMPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VFIXUPIMMPS_BCST_Z(i, m, xyz, k, xyz1) } - -// VFIXUPIMMPS_SAE: Fix Up Special Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMPS.SAE imm8 zmm zmm k zmm -// VFIXUPIMMPS.SAE imm8 zmm zmm zmm -// -// Construct and append a VFIXUPIMMPS.SAE instruction to the active function. -func (c *Context) VFIXUPIMMPS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMPS_SAE(ops...)) -} - -// VFIXUPIMMPS_SAE: Fix Up Special Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMPS.SAE imm8 zmm zmm k zmm -// VFIXUPIMMPS.SAE imm8 zmm zmm zmm -// -// Construct and append a VFIXUPIMMPS.SAE instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPS_SAE(ops ...operand.Op) { ctx.VFIXUPIMMPS_SAE(ops...) } - -// VFIXUPIMMPS_SAE_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPS.SAE.Z imm8 zmm zmm k zmm -// -// Construct and append a VFIXUPIMMPS.SAE.Z instruction to the active function. -func (c *Context) VFIXUPIMMPS_SAE_Z(i, z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFIXUPIMMPS_SAE_Z(i, z, z1, k, z2)) -} - -// VFIXUPIMMPS_SAE_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPS.SAE.Z imm8 zmm zmm k zmm -// -// Construct and append a VFIXUPIMMPS.SAE.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPS_SAE_Z(i, z, z1, k, z2 operand.Op) { ctx.VFIXUPIMMPS_SAE_Z(i, z, z1, k, z2) } - -// VFIXUPIMMPS_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPS.Z imm8 m256 ymm k ymm -// VFIXUPIMMPS.Z imm8 ymm ymm k ymm -// VFIXUPIMMPS.Z imm8 m512 zmm k zmm -// VFIXUPIMMPS.Z imm8 zmm zmm k zmm -// VFIXUPIMMPS.Z imm8 m128 xmm k xmm -// VFIXUPIMMPS.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMPS.Z instruction to the active function. -func (c *Context) VFIXUPIMMPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFIXUPIMMPS_Z(i, mxyz, xyz, k, xyz1)) -} - -// VFIXUPIMMPS_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPS.Z imm8 m256 ymm k ymm -// VFIXUPIMMPS.Z imm8 ymm ymm k ymm -// VFIXUPIMMPS.Z imm8 m512 zmm k zmm -// VFIXUPIMMPS.Z imm8 zmm zmm k zmm -// VFIXUPIMMPS.Z imm8 m128 xmm k xmm -// VFIXUPIMMPS.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMPS.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VFIXUPIMMPS_Z(i, mxyz, xyz, k, xyz1) } - -// VFIXUPIMMSD: Fix Up Special Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VFIXUPIMMSD imm8 m64 xmm k xmm -// VFIXUPIMMSD imm8 m64 xmm xmm -// VFIXUPIMMSD imm8 xmm xmm k xmm -// VFIXUPIMMSD imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMSD instruction to the active function. -func (c *Context) VFIXUPIMMSD(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMSD(ops...)) -} - -// VFIXUPIMMSD: Fix Up Special Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VFIXUPIMMSD imm8 m64 xmm k xmm -// VFIXUPIMMSD imm8 m64 xmm xmm -// VFIXUPIMMSD imm8 xmm xmm k xmm -// VFIXUPIMMSD imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMSD instruction to the active function. -// Operates on the global context. -func VFIXUPIMMSD(ops ...operand.Op) { ctx.VFIXUPIMMSD(ops...) } - -// VFIXUPIMMSD_SAE: Fix Up Special Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMSD.SAE imm8 xmm xmm k xmm -// VFIXUPIMMSD.SAE imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMSD.SAE instruction to the active function. -func (c *Context) VFIXUPIMMSD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMSD_SAE(ops...)) -} - -// VFIXUPIMMSD_SAE: Fix Up Special Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMSD.SAE imm8 xmm xmm k xmm -// VFIXUPIMMSD.SAE imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMSD.SAE instruction to the active function. -// Operates on the global context. -func VFIXUPIMMSD_SAE(ops ...operand.Op) { ctx.VFIXUPIMMSD_SAE(ops...) } - -// VFIXUPIMMSD_SAE_Z: Fix Up Special Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSD.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMSD.SAE.Z instruction to the active function. -func (c *Context) VFIXUPIMMSD_SAE_Z(i, x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFIXUPIMMSD_SAE_Z(i, x, x1, k, x2)) -} - -// VFIXUPIMMSD_SAE_Z: Fix Up Special Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSD.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMSD.SAE.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMSD_SAE_Z(i, x, x1, k, x2 operand.Op) { ctx.VFIXUPIMMSD_SAE_Z(i, x, x1, k, x2) } - -// VFIXUPIMMSD_Z: Fix Up Special Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSD.Z imm8 m64 xmm k xmm -// VFIXUPIMMSD.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMSD.Z instruction to the active function. -func (c *Context) VFIXUPIMMSD_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFIXUPIMMSD_Z(i, mx, x, k, x1)) -} - -// VFIXUPIMMSD_Z: Fix Up Special Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSD.Z imm8 m64 xmm k xmm -// VFIXUPIMMSD.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMSD.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMSD_Z(i, mx, x, k, x1 operand.Op) { ctx.VFIXUPIMMSD_Z(i, mx, x, k, x1) } - -// VFIXUPIMMSS: Fix Up Special Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VFIXUPIMMSS imm8 m32 xmm k xmm -// VFIXUPIMMSS imm8 m32 xmm xmm -// VFIXUPIMMSS imm8 xmm xmm k xmm -// VFIXUPIMMSS imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMSS instruction to the active function. -func (c *Context) VFIXUPIMMSS(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMSS(ops...)) -} - -// VFIXUPIMMSS: Fix Up Special Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VFIXUPIMMSS imm8 m32 xmm k xmm -// VFIXUPIMMSS imm8 m32 xmm xmm -// VFIXUPIMMSS imm8 xmm xmm k xmm -// VFIXUPIMMSS imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMSS instruction to the active function. -// Operates on the global context. -func VFIXUPIMMSS(ops ...operand.Op) { ctx.VFIXUPIMMSS(ops...) } - -// VFIXUPIMMSS_SAE: Fix Up Special Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMSS.SAE imm8 xmm xmm k xmm -// VFIXUPIMMSS.SAE imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMSS.SAE instruction to the active function. -func (c *Context) VFIXUPIMMSS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFIXUPIMMSS_SAE(ops...)) -} - -// VFIXUPIMMSS_SAE: Fix Up Special Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMSS.SAE imm8 xmm xmm k xmm -// VFIXUPIMMSS.SAE imm8 xmm xmm xmm -// -// Construct and append a VFIXUPIMMSS.SAE instruction to the active function. -// Operates on the global context. -func VFIXUPIMMSS_SAE(ops ...operand.Op) { ctx.VFIXUPIMMSS_SAE(ops...) } - -// VFIXUPIMMSS_SAE_Z: Fix Up Special Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSS.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMSS.SAE.Z instruction to the active function. -func (c *Context) VFIXUPIMMSS_SAE_Z(i, x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFIXUPIMMSS_SAE_Z(i, x, x1, k, x2)) -} - -// VFIXUPIMMSS_SAE_Z: Fix Up Special Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSS.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMSS.SAE.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMSS_SAE_Z(i, x, x1, k, x2 operand.Op) { ctx.VFIXUPIMMSS_SAE_Z(i, x, x1, k, x2) } - -// VFIXUPIMMSS_Z: Fix Up Special Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSS.Z imm8 m32 xmm k xmm -// VFIXUPIMMSS.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMSS.Z instruction to the active function. -func (c *Context) VFIXUPIMMSS_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFIXUPIMMSS_Z(i, mx, x, k, x1)) -} - -// VFIXUPIMMSS_Z: Fix Up Special Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSS.Z imm8 m32 xmm k xmm -// VFIXUPIMMSS.Z imm8 xmm xmm k xmm -// -// Construct and append a VFIXUPIMMSS.Z instruction to the active function. -// Operates on the global context. -func VFIXUPIMMSS_Z(i, mx, x, k, x1 operand.Op) { ctx.VFIXUPIMMSS_Z(i, mx, x, k, x1) } - -// VFMADD132PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132PD m128 xmm xmm -// VFMADD132PD m256 ymm ymm -// VFMADD132PD xmm xmm xmm -// VFMADD132PD ymm ymm ymm -// VFMADD132PD m128 xmm k xmm -// VFMADD132PD m256 ymm k ymm -// VFMADD132PD xmm xmm k xmm -// VFMADD132PD ymm ymm k ymm -// VFMADD132PD m512 zmm k zmm -// VFMADD132PD m512 zmm zmm -// VFMADD132PD zmm zmm k zmm -// VFMADD132PD zmm zmm zmm -// -// Construct and append a VFMADD132PD instruction to the active function. -func (c *Context) VFMADD132PD(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PD(ops...)) -} - -// VFMADD132PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132PD m128 xmm xmm -// VFMADD132PD m256 ymm ymm -// VFMADD132PD xmm xmm xmm -// VFMADD132PD ymm ymm ymm -// VFMADD132PD m128 xmm k xmm -// VFMADD132PD m256 ymm k ymm -// VFMADD132PD xmm xmm k xmm -// VFMADD132PD ymm ymm k ymm -// VFMADD132PD m512 zmm k zmm -// VFMADD132PD m512 zmm zmm -// VFMADD132PD zmm zmm k zmm -// VFMADD132PD zmm zmm zmm -// -// Construct and append a VFMADD132PD instruction to the active function. -// Operates on the global context. -func VFMADD132PD(ops ...operand.Op) { ctx.VFMADD132PD(ops...) } - -// VFMADD132PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD132PD.BCST m64 xmm k xmm -// VFMADD132PD.BCST m64 xmm xmm -// VFMADD132PD.BCST m64 ymm k ymm -// VFMADD132PD.BCST m64 ymm ymm -// VFMADD132PD.BCST m64 zmm k zmm -// VFMADD132PD.BCST m64 zmm zmm -// -// Construct and append a VFMADD132PD.BCST instruction to the active function. -func (c *Context) VFMADD132PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PD_BCST(ops...)) -} - -// VFMADD132PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD132PD.BCST m64 xmm k xmm -// VFMADD132PD.BCST m64 xmm xmm -// VFMADD132PD.BCST m64 ymm k ymm -// VFMADD132PD.BCST m64 ymm ymm -// VFMADD132PD.BCST m64 zmm k zmm -// VFMADD132PD.BCST m64 zmm zmm -// -// Construct and append a VFMADD132PD.BCST instruction to the active function. -// Operates on the global context. -func VFMADD132PD_BCST(ops ...operand.Op) { ctx.VFMADD132PD_BCST(ops...) } - -// VFMADD132PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.BCST.Z m64 xmm k xmm -// VFMADD132PD.BCST.Z m64 ymm k ymm -// VFMADD132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADD132PD.BCST.Z instruction to the active function. -func (c *Context) VFMADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD132PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADD132PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.BCST.Z m64 xmm k xmm -// VFMADD132PD.BCST.Z m64 ymm k ymm -// VFMADD132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADD132PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADD132PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMADD132PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132PD.RD_SAE zmm zmm k zmm -// VFMADD132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PD.RD_SAE instruction to the active function. -func (c *Context) VFMADD132PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PD_RD_SAE(ops...)) -} - -// VFMADD132PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132PD.RD_SAE zmm zmm k zmm -// VFMADD132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132PD_RD_SAE(ops ...operand.Op) { ctx.VFMADD132PD_RD_SAE(ops...) } - -// VFMADD132PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD132PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADD132PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD132PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMADD132PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132PD.RN_SAE zmm zmm k zmm -// VFMADD132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PD.RN_SAE instruction to the active function. -func (c *Context) VFMADD132PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PD_RN_SAE(ops...)) -} - -// VFMADD132PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132PD.RN_SAE zmm zmm k zmm -// VFMADD132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132PD_RN_SAE(ops ...operand.Op) { ctx.VFMADD132PD_RN_SAE(ops...) } - -// VFMADD132PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD132PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADD132PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD132PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMADD132PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132PD.RU_SAE zmm zmm k zmm -// VFMADD132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PD.RU_SAE instruction to the active function. -func (c *Context) VFMADD132PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PD_RU_SAE(ops...)) -} - -// VFMADD132PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132PD.RU_SAE zmm zmm k zmm -// VFMADD132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132PD_RU_SAE(ops ...operand.Op) { ctx.VFMADD132PD_RU_SAE(ops...) } - -// VFMADD132PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD132PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADD132PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD132PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMADD132PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132PD.RZ_SAE zmm zmm k zmm -// VFMADD132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PD.RZ_SAE instruction to the active function. -func (c *Context) VFMADD132PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PD_RZ_SAE(ops...)) -} - -// VFMADD132PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132PD.RZ_SAE zmm zmm k zmm -// VFMADD132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132PD_RZ_SAE(ops ...operand.Op) { ctx.VFMADD132PD_RZ_SAE(ops...) } - -// VFMADD132PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD132PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADD132PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD132PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADD132PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.Z m128 xmm k xmm -// VFMADD132PD.Z m256 ymm k ymm -// VFMADD132PD.Z xmm xmm k xmm -// VFMADD132PD.Z ymm ymm k ymm -// VFMADD132PD.Z m512 zmm k zmm -// VFMADD132PD.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.Z instruction to the active function. -func (c *Context) VFMADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD132PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADD132PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.Z m128 xmm k xmm -// VFMADD132PD.Z m256 ymm k ymm -// VFMADD132PD.Z xmm xmm k xmm -// VFMADD132PD.Z ymm ymm k ymm -// VFMADD132PD.Z m512 zmm k zmm -// VFMADD132PD.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PD.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADD132PD_Z(mxyz, xyz, k, xyz1) } - -// VFMADD132PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132PS m128 xmm xmm -// VFMADD132PS m256 ymm ymm -// VFMADD132PS xmm xmm xmm -// VFMADD132PS ymm ymm ymm -// VFMADD132PS m128 xmm k xmm -// VFMADD132PS m256 ymm k ymm -// VFMADD132PS xmm xmm k xmm -// VFMADD132PS ymm ymm k ymm -// VFMADD132PS m512 zmm k zmm -// VFMADD132PS m512 zmm zmm -// VFMADD132PS zmm zmm k zmm -// VFMADD132PS zmm zmm zmm -// -// Construct and append a VFMADD132PS instruction to the active function. -func (c *Context) VFMADD132PS(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PS(ops...)) -} - -// VFMADD132PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132PS m128 xmm xmm -// VFMADD132PS m256 ymm ymm -// VFMADD132PS xmm xmm xmm -// VFMADD132PS ymm ymm ymm -// VFMADD132PS m128 xmm k xmm -// VFMADD132PS m256 ymm k ymm -// VFMADD132PS xmm xmm k xmm -// VFMADD132PS ymm ymm k ymm -// VFMADD132PS m512 zmm k zmm -// VFMADD132PS m512 zmm zmm -// VFMADD132PS zmm zmm k zmm -// VFMADD132PS zmm zmm zmm -// -// Construct and append a VFMADD132PS instruction to the active function. -// Operates on the global context. -func VFMADD132PS(ops ...operand.Op) { ctx.VFMADD132PS(ops...) } - -// VFMADD132PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD132PS.BCST m32 xmm k xmm -// VFMADD132PS.BCST m32 xmm xmm -// VFMADD132PS.BCST m32 ymm k ymm -// VFMADD132PS.BCST m32 ymm ymm -// VFMADD132PS.BCST m32 zmm k zmm -// VFMADD132PS.BCST m32 zmm zmm -// -// Construct and append a VFMADD132PS.BCST instruction to the active function. -func (c *Context) VFMADD132PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PS_BCST(ops...)) -} - -// VFMADD132PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD132PS.BCST m32 xmm k xmm -// VFMADD132PS.BCST m32 xmm xmm -// VFMADD132PS.BCST m32 ymm k ymm -// VFMADD132PS.BCST m32 ymm ymm -// VFMADD132PS.BCST m32 zmm k zmm -// VFMADD132PS.BCST m32 zmm zmm -// -// Construct and append a VFMADD132PS.BCST instruction to the active function. -// Operates on the global context. -func VFMADD132PS_BCST(ops ...operand.Op) { ctx.VFMADD132PS_BCST(ops...) } - -// VFMADD132PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.BCST.Z m32 xmm k xmm -// VFMADD132PS.BCST.Z m32 ymm k ymm -// VFMADD132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADD132PS.BCST.Z instruction to the active function. -func (c *Context) VFMADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD132PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADD132PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.BCST.Z m32 xmm k xmm -// VFMADD132PS.BCST.Z m32 ymm k ymm -// VFMADD132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADD132PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADD132PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMADD132PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132PS.RD_SAE zmm zmm k zmm -// VFMADD132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PS.RD_SAE instruction to the active function. -func (c *Context) VFMADD132PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PS_RD_SAE(ops...)) -} - -// VFMADD132PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132PS.RD_SAE zmm zmm k zmm -// VFMADD132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132PS_RD_SAE(ops ...operand.Op) { ctx.VFMADD132PS_RD_SAE(ops...) } - -// VFMADD132PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD132PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADD132PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD132PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMADD132PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132PS.RN_SAE zmm zmm k zmm -// VFMADD132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PS.RN_SAE instruction to the active function. -func (c *Context) VFMADD132PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PS_RN_SAE(ops...)) -} - -// VFMADD132PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132PS.RN_SAE zmm zmm k zmm -// VFMADD132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132PS_RN_SAE(ops ...operand.Op) { ctx.VFMADD132PS_RN_SAE(ops...) } - -// VFMADD132PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD132PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADD132PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD132PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMADD132PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132PS.RU_SAE zmm zmm k zmm -// VFMADD132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PS.RU_SAE instruction to the active function. -func (c *Context) VFMADD132PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PS_RU_SAE(ops...)) -} - -// VFMADD132PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132PS.RU_SAE zmm zmm k zmm -// VFMADD132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132PS_RU_SAE(ops ...operand.Op) { ctx.VFMADD132PS_RU_SAE(ops...) } - -// VFMADD132PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD132PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADD132PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD132PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMADD132PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132PS.RZ_SAE zmm zmm k zmm -// VFMADD132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PS.RZ_SAE instruction to the active function. -func (c *Context) VFMADD132PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132PS_RZ_SAE(ops...)) -} - -// VFMADD132PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132PS.RZ_SAE zmm zmm k zmm -// VFMADD132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD132PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132PS_RZ_SAE(ops ...operand.Op) { ctx.VFMADD132PS_RZ_SAE(ops...) } - -// VFMADD132PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD132PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADD132PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD132PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADD132PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.Z m128 xmm k xmm -// VFMADD132PS.Z m256 ymm k ymm -// VFMADD132PS.Z xmm xmm k xmm -// VFMADD132PS.Z ymm ymm k ymm -// VFMADD132PS.Z m512 zmm k zmm -// VFMADD132PS.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.Z instruction to the active function. -func (c *Context) VFMADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD132PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADD132PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.Z m128 xmm k xmm -// VFMADD132PS.Z m256 ymm k ymm -// VFMADD132PS.Z xmm xmm k xmm -// VFMADD132PS.Z ymm ymm k ymm -// VFMADD132PS.Z m512 zmm k zmm -// VFMADD132PS.Z zmm zmm k zmm -// -// Construct and append a VFMADD132PS.Z instruction to the active function. -// Operates on the global context. -func VFMADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADD132PS_Z(mxyz, xyz, k, xyz1) } - -// VFMADD132SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132SD m64 xmm xmm -// VFMADD132SD xmm xmm xmm -// VFMADD132SD m64 xmm k xmm -// VFMADD132SD xmm xmm k xmm -// -// Construct and append a VFMADD132SD instruction to the active function. -func (c *Context) VFMADD132SD(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SD(ops...)) -} - -// VFMADD132SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132SD m64 xmm xmm -// VFMADD132SD xmm xmm xmm -// VFMADD132SD m64 xmm k xmm -// VFMADD132SD xmm xmm k xmm -// -// Construct and append a VFMADD132SD instruction to the active function. -// Operates on the global context. -func VFMADD132SD(ops ...operand.Op) { ctx.VFMADD132SD(ops...) } - -// VFMADD132SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132SD.RD_SAE xmm xmm k xmm -// VFMADD132SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SD.RD_SAE instruction to the active function. -func (c *Context) VFMADD132SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SD_RD_SAE(ops...)) -} - -// VFMADD132SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132SD.RD_SAE xmm xmm k xmm -// VFMADD132SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132SD_RD_SAE(ops ...operand.Op) { ctx.VFMADD132SD_RD_SAE(ops...) } - -// VFMADD132SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD132SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMADD132SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD132SD_RD_SAE_Z(x, x1, k, x2) } - -// VFMADD132SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132SD.RN_SAE xmm xmm k xmm -// VFMADD132SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SD.RN_SAE instruction to the active function. -func (c *Context) VFMADD132SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SD_RN_SAE(ops...)) -} - -// VFMADD132SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132SD.RN_SAE xmm xmm k xmm -// VFMADD132SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132SD_RN_SAE(ops ...operand.Op) { ctx.VFMADD132SD_RN_SAE(ops...) } - -// VFMADD132SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD132SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMADD132SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD132SD_RN_SAE_Z(x, x1, k, x2) } - -// VFMADD132SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132SD.RU_SAE xmm xmm k xmm -// VFMADD132SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SD.RU_SAE instruction to the active function. -func (c *Context) VFMADD132SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SD_RU_SAE(ops...)) -} - -// VFMADD132SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132SD.RU_SAE xmm xmm k xmm -// VFMADD132SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132SD_RU_SAE(ops ...operand.Op) { ctx.VFMADD132SD_RU_SAE(ops...) } - -// VFMADD132SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD132SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMADD132SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD132SD_RU_SAE_Z(x, x1, k, x2) } - -// VFMADD132SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132SD.RZ_SAE xmm xmm k xmm -// VFMADD132SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SD.RZ_SAE instruction to the active function. -func (c *Context) VFMADD132SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SD_RZ_SAE(ops...)) -} - -// VFMADD132SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132SD.RZ_SAE xmm xmm k xmm -// VFMADD132SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132SD_RZ_SAE(ops ...operand.Op) { ctx.VFMADD132SD_RZ_SAE(ops...) } - -// VFMADD132SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD132SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMADD132SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD132SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFMADD132SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.Z m64 xmm k xmm -// VFMADD132SD.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.Z instruction to the active function. -func (c *Context) VFMADD132SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMADD132SD_Z(mx, x, k, x1)) -} - -// VFMADD132SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.Z m64 xmm k xmm -// VFMADD132SD.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SD.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SD_Z(mx, x, k, x1 operand.Op) { ctx.VFMADD132SD_Z(mx, x, k, x1) } - -// VFMADD132SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132SS m32 xmm xmm -// VFMADD132SS xmm xmm xmm -// VFMADD132SS m32 xmm k xmm -// VFMADD132SS xmm xmm k xmm -// -// Construct and append a VFMADD132SS instruction to the active function. -func (c *Context) VFMADD132SS(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SS(ops...)) -} - -// VFMADD132SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132SS m32 xmm xmm -// VFMADD132SS xmm xmm xmm -// VFMADD132SS m32 xmm k xmm -// VFMADD132SS xmm xmm k xmm -// -// Construct and append a VFMADD132SS instruction to the active function. -// Operates on the global context. -func VFMADD132SS(ops ...operand.Op) { ctx.VFMADD132SS(ops...) } - -// VFMADD132SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132SS.RD_SAE xmm xmm k xmm -// VFMADD132SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SS.RD_SAE instruction to the active function. -func (c *Context) VFMADD132SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SS_RD_SAE(ops...)) -} - -// VFMADD132SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132SS.RD_SAE xmm xmm k xmm -// VFMADD132SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132SS_RD_SAE(ops ...operand.Op) { ctx.VFMADD132SS_RD_SAE(ops...) } - -// VFMADD132SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD132SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMADD132SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD132SS_RD_SAE_Z(x, x1, k, x2) } - -// VFMADD132SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132SS.RN_SAE xmm xmm k xmm -// VFMADD132SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SS.RN_SAE instruction to the active function. -func (c *Context) VFMADD132SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SS_RN_SAE(ops...)) -} - -// VFMADD132SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132SS.RN_SAE xmm xmm k xmm -// VFMADD132SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132SS_RN_SAE(ops ...operand.Op) { ctx.VFMADD132SS_RN_SAE(ops...) } - -// VFMADD132SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD132SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMADD132SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD132SS_RN_SAE_Z(x, x1, k, x2) } - -// VFMADD132SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132SS.RU_SAE xmm xmm k xmm -// VFMADD132SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SS.RU_SAE instruction to the active function. -func (c *Context) VFMADD132SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SS_RU_SAE(ops...)) -} - -// VFMADD132SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132SS.RU_SAE xmm xmm k xmm -// VFMADD132SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132SS_RU_SAE(ops ...operand.Op) { ctx.VFMADD132SS_RU_SAE(ops...) } - -// VFMADD132SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD132SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMADD132SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD132SS_RU_SAE_Z(x, x1, k, x2) } - -// VFMADD132SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132SS.RZ_SAE xmm xmm k xmm -// VFMADD132SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SS.RZ_SAE instruction to the active function. -func (c *Context) VFMADD132SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD132SS_RZ_SAE(ops...)) -} - -// VFMADD132SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132SS.RZ_SAE xmm xmm k xmm -// VFMADD132SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD132SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD132SS_RZ_SAE(ops ...operand.Op) { ctx.VFMADD132SS_RZ_SAE(ops...) } - -// VFMADD132SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD132SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMADD132SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD132SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFMADD132SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.Z m32 xmm k xmm -// VFMADD132SS.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.Z instruction to the active function. -func (c *Context) VFMADD132SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMADD132SS_Z(mx, x, k, x1)) -} - -// VFMADD132SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.Z m32 xmm k xmm -// VFMADD132SS.Z xmm xmm k xmm -// -// Construct and append a VFMADD132SS.Z instruction to the active function. -// Operates on the global context. -func VFMADD132SS_Z(mx, x, k, x1 operand.Op) { ctx.VFMADD132SS_Z(mx, x, k, x1) } - -// VFMADD213PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213PD m128 xmm xmm -// VFMADD213PD m256 ymm ymm -// VFMADD213PD xmm xmm xmm -// VFMADD213PD ymm ymm ymm -// VFMADD213PD m128 xmm k xmm -// VFMADD213PD m256 ymm k ymm -// VFMADD213PD xmm xmm k xmm -// VFMADD213PD ymm ymm k ymm -// VFMADD213PD m512 zmm k zmm -// VFMADD213PD m512 zmm zmm -// VFMADD213PD zmm zmm k zmm -// VFMADD213PD zmm zmm zmm -// -// Construct and append a VFMADD213PD instruction to the active function. -func (c *Context) VFMADD213PD(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PD(ops...)) -} - -// VFMADD213PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213PD m128 xmm xmm -// VFMADD213PD m256 ymm ymm -// VFMADD213PD xmm xmm xmm -// VFMADD213PD ymm ymm ymm -// VFMADD213PD m128 xmm k xmm -// VFMADD213PD m256 ymm k ymm -// VFMADD213PD xmm xmm k xmm -// VFMADD213PD ymm ymm k ymm -// VFMADD213PD m512 zmm k zmm -// VFMADD213PD m512 zmm zmm -// VFMADD213PD zmm zmm k zmm -// VFMADD213PD zmm zmm zmm -// -// Construct and append a VFMADD213PD instruction to the active function. -// Operates on the global context. -func VFMADD213PD(ops ...operand.Op) { ctx.VFMADD213PD(ops...) } - -// VFMADD213PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD213PD.BCST m64 xmm k xmm -// VFMADD213PD.BCST m64 xmm xmm -// VFMADD213PD.BCST m64 ymm k ymm -// VFMADD213PD.BCST m64 ymm ymm -// VFMADD213PD.BCST m64 zmm k zmm -// VFMADD213PD.BCST m64 zmm zmm -// -// Construct and append a VFMADD213PD.BCST instruction to the active function. -func (c *Context) VFMADD213PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PD_BCST(ops...)) -} - -// VFMADD213PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD213PD.BCST m64 xmm k xmm -// VFMADD213PD.BCST m64 xmm xmm -// VFMADD213PD.BCST m64 ymm k ymm -// VFMADD213PD.BCST m64 ymm ymm -// VFMADD213PD.BCST m64 zmm k zmm -// VFMADD213PD.BCST m64 zmm zmm -// -// Construct and append a VFMADD213PD.BCST instruction to the active function. -// Operates on the global context. -func VFMADD213PD_BCST(ops ...operand.Op) { ctx.VFMADD213PD_BCST(ops...) } - -// VFMADD213PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.BCST.Z m64 xmm k xmm -// VFMADD213PD.BCST.Z m64 ymm k ymm -// VFMADD213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADD213PD.BCST.Z instruction to the active function. -func (c *Context) VFMADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD213PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADD213PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.BCST.Z m64 xmm k xmm -// VFMADD213PD.BCST.Z m64 ymm k ymm -// VFMADD213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADD213PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADD213PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMADD213PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213PD.RD_SAE zmm zmm k zmm -// VFMADD213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PD.RD_SAE instruction to the active function. -func (c *Context) VFMADD213PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PD_RD_SAE(ops...)) -} - -// VFMADD213PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213PD.RD_SAE zmm zmm k zmm -// VFMADD213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213PD_RD_SAE(ops ...operand.Op) { ctx.VFMADD213PD_RD_SAE(ops...) } - -// VFMADD213PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD213PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADD213PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD213PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMADD213PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213PD.RN_SAE zmm zmm k zmm -// VFMADD213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PD.RN_SAE instruction to the active function. -func (c *Context) VFMADD213PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PD_RN_SAE(ops...)) -} - -// VFMADD213PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213PD.RN_SAE zmm zmm k zmm -// VFMADD213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213PD_RN_SAE(ops ...operand.Op) { ctx.VFMADD213PD_RN_SAE(ops...) } - -// VFMADD213PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD213PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADD213PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD213PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMADD213PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213PD.RU_SAE zmm zmm k zmm -// VFMADD213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PD.RU_SAE instruction to the active function. -func (c *Context) VFMADD213PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PD_RU_SAE(ops...)) -} - -// VFMADD213PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213PD.RU_SAE zmm zmm k zmm -// VFMADD213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213PD_RU_SAE(ops ...operand.Op) { ctx.VFMADD213PD_RU_SAE(ops...) } - -// VFMADD213PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD213PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADD213PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD213PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMADD213PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213PD.RZ_SAE zmm zmm k zmm -// VFMADD213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PD.RZ_SAE instruction to the active function. -func (c *Context) VFMADD213PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PD_RZ_SAE(ops...)) -} - -// VFMADD213PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213PD.RZ_SAE zmm zmm k zmm -// VFMADD213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213PD_RZ_SAE(ops ...operand.Op) { ctx.VFMADD213PD_RZ_SAE(ops...) } - -// VFMADD213PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD213PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADD213PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD213PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADD213PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.Z m128 xmm k xmm -// VFMADD213PD.Z m256 ymm k ymm -// VFMADD213PD.Z xmm xmm k xmm -// VFMADD213PD.Z ymm ymm k ymm -// VFMADD213PD.Z m512 zmm k zmm -// VFMADD213PD.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.Z instruction to the active function. -func (c *Context) VFMADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD213PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADD213PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.Z m128 xmm k xmm -// VFMADD213PD.Z m256 ymm k ymm -// VFMADD213PD.Z xmm xmm k xmm -// VFMADD213PD.Z ymm ymm k ymm -// VFMADD213PD.Z m512 zmm k zmm -// VFMADD213PD.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PD.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADD213PD_Z(mxyz, xyz, k, xyz1) } - -// VFMADD213PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213PS m128 xmm xmm -// VFMADD213PS m256 ymm ymm -// VFMADD213PS xmm xmm xmm -// VFMADD213PS ymm ymm ymm -// VFMADD213PS m128 xmm k xmm -// VFMADD213PS m256 ymm k ymm -// VFMADD213PS xmm xmm k xmm -// VFMADD213PS ymm ymm k ymm -// VFMADD213PS m512 zmm k zmm -// VFMADD213PS m512 zmm zmm -// VFMADD213PS zmm zmm k zmm -// VFMADD213PS zmm zmm zmm -// -// Construct and append a VFMADD213PS instruction to the active function. -func (c *Context) VFMADD213PS(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PS(ops...)) -} - -// VFMADD213PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213PS m128 xmm xmm -// VFMADD213PS m256 ymm ymm -// VFMADD213PS xmm xmm xmm -// VFMADD213PS ymm ymm ymm -// VFMADD213PS m128 xmm k xmm -// VFMADD213PS m256 ymm k ymm -// VFMADD213PS xmm xmm k xmm -// VFMADD213PS ymm ymm k ymm -// VFMADD213PS m512 zmm k zmm -// VFMADD213PS m512 zmm zmm -// VFMADD213PS zmm zmm k zmm -// VFMADD213PS zmm zmm zmm -// -// Construct and append a VFMADD213PS instruction to the active function. -// Operates on the global context. -func VFMADD213PS(ops ...operand.Op) { ctx.VFMADD213PS(ops...) } - -// VFMADD213PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD213PS.BCST m32 xmm k xmm -// VFMADD213PS.BCST m32 xmm xmm -// VFMADD213PS.BCST m32 ymm k ymm -// VFMADD213PS.BCST m32 ymm ymm -// VFMADD213PS.BCST m32 zmm k zmm -// VFMADD213PS.BCST m32 zmm zmm -// -// Construct and append a VFMADD213PS.BCST instruction to the active function. -func (c *Context) VFMADD213PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PS_BCST(ops...)) -} - -// VFMADD213PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD213PS.BCST m32 xmm k xmm -// VFMADD213PS.BCST m32 xmm xmm -// VFMADD213PS.BCST m32 ymm k ymm -// VFMADD213PS.BCST m32 ymm ymm -// VFMADD213PS.BCST m32 zmm k zmm -// VFMADD213PS.BCST m32 zmm zmm -// -// Construct and append a VFMADD213PS.BCST instruction to the active function. -// Operates on the global context. -func VFMADD213PS_BCST(ops ...operand.Op) { ctx.VFMADD213PS_BCST(ops...) } - -// VFMADD213PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.BCST.Z m32 xmm k xmm -// VFMADD213PS.BCST.Z m32 ymm k ymm -// VFMADD213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADD213PS.BCST.Z instruction to the active function. -func (c *Context) VFMADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD213PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADD213PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.BCST.Z m32 xmm k xmm -// VFMADD213PS.BCST.Z m32 ymm k ymm -// VFMADD213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADD213PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADD213PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMADD213PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213PS.RD_SAE zmm zmm k zmm -// VFMADD213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PS.RD_SAE instruction to the active function. -func (c *Context) VFMADD213PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PS_RD_SAE(ops...)) -} - -// VFMADD213PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213PS.RD_SAE zmm zmm k zmm -// VFMADD213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213PS_RD_SAE(ops ...operand.Op) { ctx.VFMADD213PS_RD_SAE(ops...) } - -// VFMADD213PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD213PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADD213PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD213PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMADD213PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213PS.RN_SAE zmm zmm k zmm -// VFMADD213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PS.RN_SAE instruction to the active function. -func (c *Context) VFMADD213PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PS_RN_SAE(ops...)) -} - -// VFMADD213PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213PS.RN_SAE zmm zmm k zmm -// VFMADD213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213PS_RN_SAE(ops ...operand.Op) { ctx.VFMADD213PS_RN_SAE(ops...) } - -// VFMADD213PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD213PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADD213PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD213PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMADD213PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213PS.RU_SAE zmm zmm k zmm -// VFMADD213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PS.RU_SAE instruction to the active function. -func (c *Context) VFMADD213PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PS_RU_SAE(ops...)) -} - -// VFMADD213PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213PS.RU_SAE zmm zmm k zmm -// VFMADD213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213PS_RU_SAE(ops ...operand.Op) { ctx.VFMADD213PS_RU_SAE(ops...) } - -// VFMADD213PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD213PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADD213PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD213PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMADD213PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213PS.RZ_SAE zmm zmm k zmm -// VFMADD213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PS.RZ_SAE instruction to the active function. -func (c *Context) VFMADD213PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213PS_RZ_SAE(ops...)) -} - -// VFMADD213PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213PS.RZ_SAE zmm zmm k zmm -// VFMADD213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD213PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213PS_RZ_SAE(ops ...operand.Op) { ctx.VFMADD213PS_RZ_SAE(ops...) } - -// VFMADD213PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD213PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADD213PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD213PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADD213PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.Z m128 xmm k xmm -// VFMADD213PS.Z m256 ymm k ymm -// VFMADD213PS.Z xmm xmm k xmm -// VFMADD213PS.Z ymm ymm k ymm -// VFMADD213PS.Z m512 zmm k zmm -// VFMADD213PS.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.Z instruction to the active function. -func (c *Context) VFMADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD213PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADD213PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.Z m128 xmm k xmm -// VFMADD213PS.Z m256 ymm k ymm -// VFMADD213PS.Z xmm xmm k xmm -// VFMADD213PS.Z ymm ymm k ymm -// VFMADD213PS.Z m512 zmm k zmm -// VFMADD213PS.Z zmm zmm k zmm -// -// Construct and append a VFMADD213PS.Z instruction to the active function. -// Operates on the global context. -func VFMADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADD213PS_Z(mxyz, xyz, k, xyz1) } - -// VFMADD213SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213SD m64 xmm xmm -// VFMADD213SD xmm xmm xmm -// VFMADD213SD m64 xmm k xmm -// VFMADD213SD xmm xmm k xmm -// -// Construct and append a VFMADD213SD instruction to the active function. -func (c *Context) VFMADD213SD(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SD(ops...)) -} - -// VFMADD213SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213SD m64 xmm xmm -// VFMADD213SD xmm xmm xmm -// VFMADD213SD m64 xmm k xmm -// VFMADD213SD xmm xmm k xmm -// -// Construct and append a VFMADD213SD instruction to the active function. -// Operates on the global context. -func VFMADD213SD(ops ...operand.Op) { ctx.VFMADD213SD(ops...) } - -// VFMADD213SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213SD.RD_SAE xmm xmm k xmm -// VFMADD213SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SD.RD_SAE instruction to the active function. -func (c *Context) VFMADD213SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SD_RD_SAE(ops...)) -} - -// VFMADD213SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213SD.RD_SAE xmm xmm k xmm -// VFMADD213SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213SD_RD_SAE(ops ...operand.Op) { ctx.VFMADD213SD_RD_SAE(ops...) } - -// VFMADD213SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD213SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMADD213SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD213SD_RD_SAE_Z(x, x1, k, x2) } - -// VFMADD213SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213SD.RN_SAE xmm xmm k xmm -// VFMADD213SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SD.RN_SAE instruction to the active function. -func (c *Context) VFMADD213SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SD_RN_SAE(ops...)) -} - -// VFMADD213SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213SD.RN_SAE xmm xmm k xmm -// VFMADD213SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213SD_RN_SAE(ops ...operand.Op) { ctx.VFMADD213SD_RN_SAE(ops...) } - -// VFMADD213SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD213SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMADD213SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD213SD_RN_SAE_Z(x, x1, k, x2) } - -// VFMADD213SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213SD.RU_SAE xmm xmm k xmm -// VFMADD213SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SD.RU_SAE instruction to the active function. -func (c *Context) VFMADD213SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SD_RU_SAE(ops...)) -} - -// VFMADD213SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213SD.RU_SAE xmm xmm k xmm -// VFMADD213SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213SD_RU_SAE(ops ...operand.Op) { ctx.VFMADD213SD_RU_SAE(ops...) } - -// VFMADD213SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD213SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMADD213SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD213SD_RU_SAE_Z(x, x1, k, x2) } - -// VFMADD213SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213SD.RZ_SAE xmm xmm k xmm -// VFMADD213SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SD.RZ_SAE instruction to the active function. -func (c *Context) VFMADD213SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SD_RZ_SAE(ops...)) -} - -// VFMADD213SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213SD.RZ_SAE xmm xmm k xmm -// VFMADD213SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213SD_RZ_SAE(ops ...operand.Op) { ctx.VFMADD213SD_RZ_SAE(ops...) } - -// VFMADD213SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD213SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMADD213SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD213SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFMADD213SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.Z m64 xmm k xmm -// VFMADD213SD.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.Z instruction to the active function. -func (c *Context) VFMADD213SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMADD213SD_Z(mx, x, k, x1)) -} - -// VFMADD213SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.Z m64 xmm k xmm -// VFMADD213SD.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SD.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SD_Z(mx, x, k, x1 operand.Op) { ctx.VFMADD213SD_Z(mx, x, k, x1) } - -// VFMADD213SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213SS m32 xmm xmm -// VFMADD213SS xmm xmm xmm -// VFMADD213SS m32 xmm k xmm -// VFMADD213SS xmm xmm k xmm -// -// Construct and append a VFMADD213SS instruction to the active function. -func (c *Context) VFMADD213SS(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SS(ops...)) -} - -// VFMADD213SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213SS m32 xmm xmm -// VFMADD213SS xmm xmm xmm -// VFMADD213SS m32 xmm k xmm -// VFMADD213SS xmm xmm k xmm -// -// Construct and append a VFMADD213SS instruction to the active function. -// Operates on the global context. -func VFMADD213SS(ops ...operand.Op) { ctx.VFMADD213SS(ops...) } - -// VFMADD213SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213SS.RD_SAE xmm xmm k xmm -// VFMADD213SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SS.RD_SAE instruction to the active function. -func (c *Context) VFMADD213SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SS_RD_SAE(ops...)) -} - -// VFMADD213SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213SS.RD_SAE xmm xmm k xmm -// VFMADD213SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213SS_RD_SAE(ops ...operand.Op) { ctx.VFMADD213SS_RD_SAE(ops...) } - -// VFMADD213SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD213SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMADD213SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD213SS_RD_SAE_Z(x, x1, k, x2) } - -// VFMADD213SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213SS.RN_SAE xmm xmm k xmm -// VFMADD213SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SS.RN_SAE instruction to the active function. -func (c *Context) VFMADD213SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SS_RN_SAE(ops...)) -} - -// VFMADD213SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213SS.RN_SAE xmm xmm k xmm -// VFMADD213SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213SS_RN_SAE(ops ...operand.Op) { ctx.VFMADD213SS_RN_SAE(ops...) } - -// VFMADD213SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD213SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMADD213SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD213SS_RN_SAE_Z(x, x1, k, x2) } - -// VFMADD213SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213SS.RU_SAE xmm xmm k xmm -// VFMADD213SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SS.RU_SAE instruction to the active function. -func (c *Context) VFMADD213SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SS_RU_SAE(ops...)) -} - -// VFMADD213SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213SS.RU_SAE xmm xmm k xmm -// VFMADD213SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213SS_RU_SAE(ops ...operand.Op) { ctx.VFMADD213SS_RU_SAE(ops...) } - -// VFMADD213SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD213SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMADD213SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD213SS_RU_SAE_Z(x, x1, k, x2) } - -// VFMADD213SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213SS.RZ_SAE xmm xmm k xmm -// VFMADD213SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SS.RZ_SAE instruction to the active function. -func (c *Context) VFMADD213SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD213SS_RZ_SAE(ops...)) -} - -// VFMADD213SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213SS.RZ_SAE xmm xmm k xmm -// VFMADD213SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD213SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD213SS_RZ_SAE(ops ...operand.Op) { ctx.VFMADD213SS_RZ_SAE(ops...) } - -// VFMADD213SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD213SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMADD213SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD213SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFMADD213SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.Z m32 xmm k xmm -// VFMADD213SS.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.Z instruction to the active function. -func (c *Context) VFMADD213SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMADD213SS_Z(mx, x, k, x1)) -} - -// VFMADD213SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.Z m32 xmm k xmm -// VFMADD213SS.Z xmm xmm k xmm -// -// Construct and append a VFMADD213SS.Z instruction to the active function. -// Operates on the global context. -func VFMADD213SS_Z(mx, x, k, x1 operand.Op) { ctx.VFMADD213SS_Z(mx, x, k, x1) } - -// VFMADD231PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231PD m128 xmm xmm -// VFMADD231PD m256 ymm ymm -// VFMADD231PD xmm xmm xmm -// VFMADD231PD ymm ymm ymm -// VFMADD231PD m128 xmm k xmm -// VFMADD231PD m256 ymm k ymm -// VFMADD231PD xmm xmm k xmm -// VFMADD231PD ymm ymm k ymm -// VFMADD231PD m512 zmm k zmm -// VFMADD231PD m512 zmm zmm -// VFMADD231PD zmm zmm k zmm -// VFMADD231PD zmm zmm zmm -// -// Construct and append a VFMADD231PD instruction to the active function. -func (c *Context) VFMADD231PD(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PD(ops...)) -} - -// VFMADD231PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231PD m128 xmm xmm -// VFMADD231PD m256 ymm ymm -// VFMADD231PD xmm xmm xmm -// VFMADD231PD ymm ymm ymm -// VFMADD231PD m128 xmm k xmm -// VFMADD231PD m256 ymm k ymm -// VFMADD231PD xmm xmm k xmm -// VFMADD231PD ymm ymm k ymm -// VFMADD231PD m512 zmm k zmm -// VFMADD231PD m512 zmm zmm -// VFMADD231PD zmm zmm k zmm -// VFMADD231PD zmm zmm zmm -// -// Construct and append a VFMADD231PD instruction to the active function. -// Operates on the global context. -func VFMADD231PD(ops ...operand.Op) { ctx.VFMADD231PD(ops...) } - -// VFMADD231PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD231PD.BCST m64 xmm k xmm -// VFMADD231PD.BCST m64 xmm xmm -// VFMADD231PD.BCST m64 ymm k ymm -// VFMADD231PD.BCST m64 ymm ymm -// VFMADD231PD.BCST m64 zmm k zmm -// VFMADD231PD.BCST m64 zmm zmm -// -// Construct and append a VFMADD231PD.BCST instruction to the active function. -func (c *Context) VFMADD231PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PD_BCST(ops...)) -} - -// VFMADD231PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD231PD.BCST m64 xmm k xmm -// VFMADD231PD.BCST m64 xmm xmm -// VFMADD231PD.BCST m64 ymm k ymm -// VFMADD231PD.BCST m64 ymm ymm -// VFMADD231PD.BCST m64 zmm k zmm -// VFMADD231PD.BCST m64 zmm zmm -// -// Construct and append a VFMADD231PD.BCST instruction to the active function. -// Operates on the global context. -func VFMADD231PD_BCST(ops ...operand.Op) { ctx.VFMADD231PD_BCST(ops...) } - -// VFMADD231PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.BCST.Z m64 xmm k xmm -// VFMADD231PD.BCST.Z m64 ymm k ymm -// VFMADD231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADD231PD.BCST.Z instruction to the active function. -func (c *Context) VFMADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD231PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADD231PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.BCST.Z m64 xmm k xmm -// VFMADD231PD.BCST.Z m64 ymm k ymm -// VFMADD231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADD231PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADD231PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMADD231PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231PD.RD_SAE zmm zmm k zmm -// VFMADD231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PD.RD_SAE instruction to the active function. -func (c *Context) VFMADD231PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PD_RD_SAE(ops...)) -} - -// VFMADD231PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231PD.RD_SAE zmm zmm k zmm -// VFMADD231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231PD_RD_SAE(ops ...operand.Op) { ctx.VFMADD231PD_RD_SAE(ops...) } - -// VFMADD231PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD231PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADD231PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD231PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMADD231PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231PD.RN_SAE zmm zmm k zmm -// VFMADD231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PD.RN_SAE instruction to the active function. -func (c *Context) VFMADD231PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PD_RN_SAE(ops...)) -} - -// VFMADD231PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231PD.RN_SAE zmm zmm k zmm -// VFMADD231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231PD_RN_SAE(ops ...operand.Op) { ctx.VFMADD231PD_RN_SAE(ops...) } - -// VFMADD231PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD231PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADD231PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD231PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMADD231PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231PD.RU_SAE zmm zmm k zmm -// VFMADD231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PD.RU_SAE instruction to the active function. -func (c *Context) VFMADD231PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PD_RU_SAE(ops...)) -} - -// VFMADD231PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231PD.RU_SAE zmm zmm k zmm -// VFMADD231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231PD_RU_SAE(ops ...operand.Op) { ctx.VFMADD231PD_RU_SAE(ops...) } - -// VFMADD231PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD231PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADD231PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD231PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMADD231PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231PD.RZ_SAE zmm zmm k zmm -// VFMADD231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PD.RZ_SAE instruction to the active function. -func (c *Context) VFMADD231PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PD_RZ_SAE(ops...)) -} - -// VFMADD231PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231PD.RZ_SAE zmm zmm k zmm -// VFMADD231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231PD_RZ_SAE(ops ...operand.Op) { ctx.VFMADD231PD_RZ_SAE(ops...) } - -// VFMADD231PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD231PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADD231PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD231PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADD231PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.Z m128 xmm k xmm -// VFMADD231PD.Z m256 ymm k ymm -// VFMADD231PD.Z xmm xmm k xmm -// VFMADD231PD.Z ymm ymm k ymm -// VFMADD231PD.Z m512 zmm k zmm -// VFMADD231PD.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.Z instruction to the active function. -func (c *Context) VFMADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD231PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADD231PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.Z m128 xmm k xmm -// VFMADD231PD.Z m256 ymm k ymm -// VFMADD231PD.Z xmm xmm k xmm -// VFMADD231PD.Z ymm ymm k ymm -// VFMADD231PD.Z m512 zmm k zmm -// VFMADD231PD.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PD.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADD231PD_Z(mxyz, xyz, k, xyz1) } - -// VFMADD231PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231PS m128 xmm xmm -// VFMADD231PS m256 ymm ymm -// VFMADD231PS xmm xmm xmm -// VFMADD231PS ymm ymm ymm -// VFMADD231PS m128 xmm k xmm -// VFMADD231PS m256 ymm k ymm -// VFMADD231PS xmm xmm k xmm -// VFMADD231PS ymm ymm k ymm -// VFMADD231PS m512 zmm k zmm -// VFMADD231PS m512 zmm zmm -// VFMADD231PS zmm zmm k zmm -// VFMADD231PS zmm zmm zmm -// -// Construct and append a VFMADD231PS instruction to the active function. -func (c *Context) VFMADD231PS(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PS(ops...)) -} - -// VFMADD231PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231PS m128 xmm xmm -// VFMADD231PS m256 ymm ymm -// VFMADD231PS xmm xmm xmm -// VFMADD231PS ymm ymm ymm -// VFMADD231PS m128 xmm k xmm -// VFMADD231PS m256 ymm k ymm -// VFMADD231PS xmm xmm k xmm -// VFMADD231PS ymm ymm k ymm -// VFMADD231PS m512 zmm k zmm -// VFMADD231PS m512 zmm zmm -// VFMADD231PS zmm zmm k zmm -// VFMADD231PS zmm zmm zmm -// -// Construct and append a VFMADD231PS instruction to the active function. -// Operates on the global context. -func VFMADD231PS(ops ...operand.Op) { ctx.VFMADD231PS(ops...) } - -// VFMADD231PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD231PS.BCST m32 xmm k xmm -// VFMADD231PS.BCST m32 xmm xmm -// VFMADD231PS.BCST m32 ymm k ymm -// VFMADD231PS.BCST m32 ymm ymm -// VFMADD231PS.BCST m32 zmm k zmm -// VFMADD231PS.BCST m32 zmm zmm -// -// Construct and append a VFMADD231PS.BCST instruction to the active function. -func (c *Context) VFMADD231PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PS_BCST(ops...)) -} - -// VFMADD231PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD231PS.BCST m32 xmm k xmm -// VFMADD231PS.BCST m32 xmm xmm -// VFMADD231PS.BCST m32 ymm k ymm -// VFMADD231PS.BCST m32 ymm ymm -// VFMADD231PS.BCST m32 zmm k zmm -// VFMADD231PS.BCST m32 zmm zmm -// -// Construct and append a VFMADD231PS.BCST instruction to the active function. -// Operates on the global context. -func VFMADD231PS_BCST(ops ...operand.Op) { ctx.VFMADD231PS_BCST(ops...) } - -// VFMADD231PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.BCST.Z m32 xmm k xmm -// VFMADD231PS.BCST.Z m32 ymm k ymm -// VFMADD231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADD231PS.BCST.Z instruction to the active function. -func (c *Context) VFMADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD231PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADD231PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.BCST.Z m32 xmm k xmm -// VFMADD231PS.BCST.Z m32 ymm k ymm -// VFMADD231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADD231PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADD231PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMADD231PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231PS.RD_SAE zmm zmm k zmm -// VFMADD231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PS.RD_SAE instruction to the active function. -func (c *Context) VFMADD231PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PS_RD_SAE(ops...)) -} - -// VFMADD231PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231PS.RD_SAE zmm zmm k zmm -// VFMADD231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231PS_RD_SAE(ops ...operand.Op) { ctx.VFMADD231PS_RD_SAE(ops...) } - -// VFMADD231PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD231PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADD231PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD231PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMADD231PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231PS.RN_SAE zmm zmm k zmm -// VFMADD231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PS.RN_SAE instruction to the active function. -func (c *Context) VFMADD231PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PS_RN_SAE(ops...)) -} - -// VFMADD231PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231PS.RN_SAE zmm zmm k zmm -// VFMADD231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231PS_RN_SAE(ops ...operand.Op) { ctx.VFMADD231PS_RN_SAE(ops...) } - -// VFMADD231PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD231PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADD231PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD231PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMADD231PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231PS.RU_SAE zmm zmm k zmm -// VFMADD231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PS.RU_SAE instruction to the active function. -func (c *Context) VFMADD231PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PS_RU_SAE(ops...)) -} - -// VFMADD231PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231PS.RU_SAE zmm zmm k zmm -// VFMADD231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231PS_RU_SAE(ops ...operand.Op) { ctx.VFMADD231PS_RU_SAE(ops...) } - -// VFMADD231PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD231PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADD231PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD231PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMADD231PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231PS.RZ_SAE zmm zmm k zmm -// VFMADD231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PS.RZ_SAE instruction to the active function. -func (c *Context) VFMADD231PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231PS_RZ_SAE(ops...)) -} - -// VFMADD231PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231PS.RZ_SAE zmm zmm k zmm -// VFMADD231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADD231PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231PS_RZ_SAE(ops ...operand.Op) { ctx.VFMADD231PS_RZ_SAE(ops...) } - -// VFMADD231PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADD231PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADD231PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADD231PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADD231PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.Z m128 xmm k xmm -// VFMADD231PS.Z m256 ymm k ymm -// VFMADD231PS.Z xmm xmm k xmm -// VFMADD231PS.Z ymm ymm k ymm -// VFMADD231PS.Z m512 zmm k zmm -// VFMADD231PS.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.Z instruction to the active function. -func (c *Context) VFMADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADD231PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADD231PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.Z m128 xmm k xmm -// VFMADD231PS.Z m256 ymm k ymm -// VFMADD231PS.Z xmm xmm k xmm -// VFMADD231PS.Z ymm ymm k ymm -// VFMADD231PS.Z m512 zmm k zmm -// VFMADD231PS.Z zmm zmm k zmm -// -// Construct and append a VFMADD231PS.Z instruction to the active function. -// Operates on the global context. -func VFMADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADD231PS_Z(mxyz, xyz, k, xyz1) } - -// VFMADD231SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231SD m64 xmm xmm -// VFMADD231SD xmm xmm xmm -// VFMADD231SD m64 xmm k xmm -// VFMADD231SD xmm xmm k xmm -// -// Construct and append a VFMADD231SD instruction to the active function. -func (c *Context) VFMADD231SD(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SD(ops...)) -} - -// VFMADD231SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231SD m64 xmm xmm -// VFMADD231SD xmm xmm xmm -// VFMADD231SD m64 xmm k xmm -// VFMADD231SD xmm xmm k xmm -// -// Construct and append a VFMADD231SD instruction to the active function. -// Operates on the global context. -func VFMADD231SD(ops ...operand.Op) { ctx.VFMADD231SD(ops...) } - -// VFMADD231SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231SD.RD_SAE xmm xmm k xmm -// VFMADD231SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SD.RD_SAE instruction to the active function. -func (c *Context) VFMADD231SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SD_RD_SAE(ops...)) -} - -// VFMADD231SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231SD.RD_SAE xmm xmm k xmm -// VFMADD231SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231SD_RD_SAE(ops ...operand.Op) { ctx.VFMADD231SD_RD_SAE(ops...) } - -// VFMADD231SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD231SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMADD231SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD231SD_RD_SAE_Z(x, x1, k, x2) } - -// VFMADD231SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231SD.RN_SAE xmm xmm k xmm -// VFMADD231SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SD.RN_SAE instruction to the active function. -func (c *Context) VFMADD231SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SD_RN_SAE(ops...)) -} - -// VFMADD231SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231SD.RN_SAE xmm xmm k xmm -// VFMADD231SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231SD_RN_SAE(ops ...operand.Op) { ctx.VFMADD231SD_RN_SAE(ops...) } - -// VFMADD231SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD231SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMADD231SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD231SD_RN_SAE_Z(x, x1, k, x2) } - -// VFMADD231SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231SD.RU_SAE xmm xmm k xmm -// VFMADD231SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SD.RU_SAE instruction to the active function. -func (c *Context) VFMADD231SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SD_RU_SAE(ops...)) -} - -// VFMADD231SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231SD.RU_SAE xmm xmm k xmm -// VFMADD231SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231SD_RU_SAE(ops ...operand.Op) { ctx.VFMADD231SD_RU_SAE(ops...) } - -// VFMADD231SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD231SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMADD231SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD231SD_RU_SAE_Z(x, x1, k, x2) } - -// VFMADD231SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231SD.RZ_SAE xmm xmm k xmm -// VFMADD231SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SD.RZ_SAE instruction to the active function. -func (c *Context) VFMADD231SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SD_RZ_SAE(ops...)) -} - -// VFMADD231SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231SD.RZ_SAE xmm xmm k xmm -// VFMADD231SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231SD_RZ_SAE(ops ...operand.Op) { ctx.VFMADD231SD_RZ_SAE(ops...) } - -// VFMADD231SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD231SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMADD231SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD231SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFMADD231SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.Z m64 xmm k xmm -// VFMADD231SD.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.Z instruction to the active function. -func (c *Context) VFMADD231SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMADD231SD_Z(mx, x, k, x1)) -} - -// VFMADD231SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.Z m64 xmm k xmm -// VFMADD231SD.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SD.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SD_Z(mx, x, k, x1 operand.Op) { ctx.VFMADD231SD_Z(mx, x, k, x1) } - -// VFMADD231SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231SS m32 xmm xmm -// VFMADD231SS xmm xmm xmm -// VFMADD231SS m32 xmm k xmm -// VFMADD231SS xmm xmm k xmm -// -// Construct and append a VFMADD231SS instruction to the active function. -func (c *Context) VFMADD231SS(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SS(ops...)) -} - -// VFMADD231SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231SS m32 xmm xmm -// VFMADD231SS xmm xmm xmm -// VFMADD231SS m32 xmm k xmm -// VFMADD231SS xmm xmm k xmm -// -// Construct and append a VFMADD231SS instruction to the active function. -// Operates on the global context. -func VFMADD231SS(ops ...operand.Op) { ctx.VFMADD231SS(ops...) } - -// VFMADD231SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231SS.RD_SAE xmm xmm k xmm -// VFMADD231SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SS.RD_SAE instruction to the active function. -func (c *Context) VFMADD231SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SS_RD_SAE(ops...)) -} - -// VFMADD231SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231SS.RD_SAE xmm xmm k xmm -// VFMADD231SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231SS_RD_SAE(ops ...operand.Op) { ctx.VFMADD231SS_RD_SAE(ops...) } - -// VFMADD231SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADD231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD231SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMADD231SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD231SS_RD_SAE_Z(x, x1, k, x2) } - -// VFMADD231SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231SS.RN_SAE xmm xmm k xmm -// VFMADD231SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SS.RN_SAE instruction to the active function. -func (c *Context) VFMADD231SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SS_RN_SAE(ops...)) -} - -// VFMADD231SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231SS.RN_SAE xmm xmm k xmm -// VFMADD231SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231SS_RN_SAE(ops ...operand.Op) { ctx.VFMADD231SS_RN_SAE(ops...) } - -// VFMADD231SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADD231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD231SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMADD231SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD231SS_RN_SAE_Z(x, x1, k, x2) } - -// VFMADD231SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231SS.RU_SAE xmm xmm k xmm -// VFMADD231SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SS.RU_SAE instruction to the active function. -func (c *Context) VFMADD231SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SS_RU_SAE(ops...)) -} - -// VFMADD231SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231SS.RU_SAE xmm xmm k xmm -// VFMADD231SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231SS_RU_SAE(ops ...operand.Op) { ctx.VFMADD231SS_RU_SAE(ops...) } - -// VFMADD231SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADD231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD231SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMADD231SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD231SS_RU_SAE_Z(x, x1, k, x2) } - -// VFMADD231SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231SS.RZ_SAE xmm xmm k xmm -// VFMADD231SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SS.RZ_SAE instruction to the active function. -func (c *Context) VFMADD231SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADD231SS_RZ_SAE(ops...)) -} - -// VFMADD231SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231SS.RZ_SAE xmm xmm k xmm -// VFMADD231SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMADD231SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADD231SS_RZ_SAE(ops ...operand.Op) { ctx.VFMADD231SS_RZ_SAE(ops...) } - -// VFMADD231SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADD231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMADD231SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMADD231SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMADD231SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFMADD231SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.Z m32 xmm k xmm -// VFMADD231SS.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.Z instruction to the active function. -func (c *Context) VFMADD231SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMADD231SS_Z(mx, x, k, x1)) -} - -// VFMADD231SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.Z m32 xmm k xmm -// VFMADD231SS.Z xmm xmm k xmm -// -// Construct and append a VFMADD231SS.Z instruction to the active function. -// Operates on the global context. -func VFMADD231SS_Z(mx, x, k, x1 operand.Op) { ctx.VFMADD231SS_Z(mx, x, k, x1) } - -// VFMADDSUB132PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB132PD m128 xmm xmm -// VFMADDSUB132PD m256 ymm ymm -// VFMADDSUB132PD xmm xmm xmm -// VFMADDSUB132PD ymm ymm ymm -// VFMADDSUB132PD m128 xmm k xmm -// VFMADDSUB132PD m256 ymm k ymm -// VFMADDSUB132PD xmm xmm k xmm -// VFMADDSUB132PD ymm ymm k ymm -// VFMADDSUB132PD m512 zmm k zmm -// VFMADDSUB132PD m512 zmm zmm -// VFMADDSUB132PD zmm zmm k zmm -// VFMADDSUB132PD zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD instruction to the active function. -func (c *Context) VFMADDSUB132PD(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD(ops...)) -} - -// VFMADDSUB132PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB132PD m128 xmm xmm -// VFMADDSUB132PD m256 ymm ymm -// VFMADDSUB132PD xmm xmm xmm -// VFMADDSUB132PD ymm ymm ymm -// VFMADDSUB132PD m128 xmm k xmm -// VFMADDSUB132PD m256 ymm k ymm -// VFMADDSUB132PD xmm xmm k xmm -// VFMADDSUB132PD ymm ymm k ymm -// VFMADDSUB132PD m512 zmm k zmm -// VFMADDSUB132PD m512 zmm zmm -// VFMADDSUB132PD zmm zmm k zmm -// VFMADDSUB132PD zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD(ops ...operand.Op) { ctx.VFMADDSUB132PD(ops...) } - -// VFMADDSUB132PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB132PD.BCST m64 xmm k xmm -// VFMADDSUB132PD.BCST m64 xmm xmm -// VFMADDSUB132PD.BCST m64 ymm k ymm -// VFMADDSUB132PD.BCST m64 ymm ymm -// VFMADDSUB132PD.BCST m64 zmm k zmm -// VFMADDSUB132PD.BCST m64 zmm zmm -// -// Construct and append a VFMADDSUB132PD.BCST instruction to the active function. -func (c *Context) VFMADDSUB132PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_BCST(ops...)) -} - -// VFMADDSUB132PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB132PD.BCST m64 xmm k xmm -// VFMADDSUB132PD.BCST m64 xmm xmm -// VFMADDSUB132PD.BCST m64 ymm k ymm -// VFMADDSUB132PD.BCST m64 ymm ymm -// VFMADDSUB132PD.BCST m64 zmm k zmm -// VFMADDSUB132PD.BCST m64 zmm zmm -// -// Construct and append a VFMADDSUB132PD.BCST instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_BCST(ops ...operand.Op) { ctx.VFMADDSUB132PD_BCST(ops...) } - -// VFMADDSUB132PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.BCST.Z m64 xmm k xmm -// VFMADDSUB132PD.BCST.Z m64 ymm k ymm -// VFMADDSUB132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADDSUB132PD.BCST.Z instruction to the active function. -func (c *Context) VFMADDSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADDSUB132PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.BCST.Z m64 xmm k xmm -// VFMADDSUB132PD.BCST.Z m64 ymm k ymm -// VFMADDSUB132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADDSUB132PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB132PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMADDSUB132PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB132PD.RD_SAE zmm zmm k zmm -// VFMADDSUB132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD.RD_SAE instruction to the active function. -func (c *Context) VFMADDSUB132PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_RD_SAE(ops...)) -} - -// VFMADDSUB132PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB132PD.RD_SAE zmm zmm k zmm -// VFMADDSUB132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_RD_SAE(ops ...operand.Op) { ctx.VFMADDSUB132PD_RD_SAE(ops...) } - -// VFMADDSUB132PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB132PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB132PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB132PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB132PD.RN_SAE zmm zmm k zmm -// VFMADDSUB132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD.RN_SAE instruction to the active function. -func (c *Context) VFMADDSUB132PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_RN_SAE(ops...)) -} - -// VFMADDSUB132PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB132PD.RN_SAE zmm zmm k zmm -// VFMADDSUB132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_RN_SAE(ops ...operand.Op) { ctx.VFMADDSUB132PD_RN_SAE(ops...) } - -// VFMADDSUB132PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB132PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB132PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB132PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB132PD.RU_SAE zmm zmm k zmm -// VFMADDSUB132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD.RU_SAE instruction to the active function. -func (c *Context) VFMADDSUB132PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_RU_SAE(ops...)) -} - -// VFMADDSUB132PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB132PD.RU_SAE zmm zmm k zmm -// VFMADDSUB132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_RU_SAE(ops ...operand.Op) { ctx.VFMADDSUB132PD_RU_SAE(ops...) } - -// VFMADDSUB132PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB132PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB132PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB132PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB132PD.RZ_SAE zmm zmm k zmm -// VFMADDSUB132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD.RZ_SAE instruction to the active function. -func (c *Context) VFMADDSUB132PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_RZ_SAE(ops...)) -} - -// VFMADDSUB132PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB132PD.RZ_SAE zmm zmm k zmm -// VFMADDSUB132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_RZ_SAE(ops ...operand.Op) { ctx.VFMADDSUB132PD_RZ_SAE(ops...) } - -// VFMADDSUB132PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB132PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB132PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB132PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.Z m128 xmm k xmm -// VFMADDSUB132PD.Z m256 ymm k ymm -// VFMADDSUB132PD.Z xmm xmm k xmm -// VFMADDSUB132PD.Z ymm ymm k ymm -// VFMADDSUB132PD.Z m512 zmm k zmm -// VFMADDSUB132PD.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.Z instruction to the active function. -func (c *Context) VFMADDSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADDSUB132PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.Z m128 xmm k xmm -// VFMADDSUB132PD.Z m256 ymm k ymm -// VFMADDSUB132PD.Z xmm xmm k xmm -// VFMADDSUB132PD.Z ymm ymm k ymm -// VFMADDSUB132PD.Z m512 zmm k zmm -// VFMADDSUB132PD.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PD.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB132PD_Z(mxyz, xyz, k, xyz1) } - -// VFMADDSUB132PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB132PS m128 xmm xmm -// VFMADDSUB132PS m256 ymm ymm -// VFMADDSUB132PS xmm xmm xmm -// VFMADDSUB132PS ymm ymm ymm -// VFMADDSUB132PS m128 xmm k xmm -// VFMADDSUB132PS m256 ymm k ymm -// VFMADDSUB132PS xmm xmm k xmm -// VFMADDSUB132PS ymm ymm k ymm -// VFMADDSUB132PS m512 zmm k zmm -// VFMADDSUB132PS m512 zmm zmm -// VFMADDSUB132PS zmm zmm k zmm -// VFMADDSUB132PS zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS instruction to the active function. -func (c *Context) VFMADDSUB132PS(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS(ops...)) -} - -// VFMADDSUB132PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB132PS m128 xmm xmm -// VFMADDSUB132PS m256 ymm ymm -// VFMADDSUB132PS xmm xmm xmm -// VFMADDSUB132PS ymm ymm ymm -// VFMADDSUB132PS m128 xmm k xmm -// VFMADDSUB132PS m256 ymm k ymm -// VFMADDSUB132PS xmm xmm k xmm -// VFMADDSUB132PS ymm ymm k ymm -// VFMADDSUB132PS m512 zmm k zmm -// VFMADDSUB132PS m512 zmm zmm -// VFMADDSUB132PS zmm zmm k zmm -// VFMADDSUB132PS zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS(ops ...operand.Op) { ctx.VFMADDSUB132PS(ops...) } - -// VFMADDSUB132PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB132PS.BCST m32 xmm k xmm -// VFMADDSUB132PS.BCST m32 xmm xmm -// VFMADDSUB132PS.BCST m32 ymm k ymm -// VFMADDSUB132PS.BCST m32 ymm ymm -// VFMADDSUB132PS.BCST m32 zmm k zmm -// VFMADDSUB132PS.BCST m32 zmm zmm -// -// Construct and append a VFMADDSUB132PS.BCST instruction to the active function. -func (c *Context) VFMADDSUB132PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_BCST(ops...)) -} - -// VFMADDSUB132PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB132PS.BCST m32 xmm k xmm -// VFMADDSUB132PS.BCST m32 xmm xmm -// VFMADDSUB132PS.BCST m32 ymm k ymm -// VFMADDSUB132PS.BCST m32 ymm ymm -// VFMADDSUB132PS.BCST m32 zmm k zmm -// VFMADDSUB132PS.BCST m32 zmm zmm -// -// Construct and append a VFMADDSUB132PS.BCST instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_BCST(ops ...operand.Op) { ctx.VFMADDSUB132PS_BCST(ops...) } - -// VFMADDSUB132PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.BCST.Z m32 xmm k xmm -// VFMADDSUB132PS.BCST.Z m32 ymm k ymm -// VFMADDSUB132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADDSUB132PS.BCST.Z instruction to the active function. -func (c *Context) VFMADDSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADDSUB132PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.BCST.Z m32 xmm k xmm -// VFMADDSUB132PS.BCST.Z m32 ymm k ymm -// VFMADDSUB132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADDSUB132PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB132PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMADDSUB132PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB132PS.RD_SAE zmm zmm k zmm -// VFMADDSUB132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS.RD_SAE instruction to the active function. -func (c *Context) VFMADDSUB132PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_RD_SAE(ops...)) -} - -// VFMADDSUB132PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB132PS.RD_SAE zmm zmm k zmm -// VFMADDSUB132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_RD_SAE(ops ...operand.Op) { ctx.VFMADDSUB132PS_RD_SAE(ops...) } - -// VFMADDSUB132PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB132PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB132PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB132PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB132PS.RN_SAE zmm zmm k zmm -// VFMADDSUB132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS.RN_SAE instruction to the active function. -func (c *Context) VFMADDSUB132PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_RN_SAE(ops...)) -} - -// VFMADDSUB132PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB132PS.RN_SAE zmm zmm k zmm -// VFMADDSUB132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_RN_SAE(ops ...operand.Op) { ctx.VFMADDSUB132PS_RN_SAE(ops...) } - -// VFMADDSUB132PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB132PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB132PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB132PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB132PS.RU_SAE zmm zmm k zmm -// VFMADDSUB132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS.RU_SAE instruction to the active function. -func (c *Context) VFMADDSUB132PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_RU_SAE(ops...)) -} - -// VFMADDSUB132PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB132PS.RU_SAE zmm zmm k zmm -// VFMADDSUB132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_RU_SAE(ops ...operand.Op) { ctx.VFMADDSUB132PS_RU_SAE(ops...) } - -// VFMADDSUB132PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB132PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB132PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB132PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB132PS.RZ_SAE zmm zmm k zmm -// VFMADDSUB132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS.RZ_SAE instruction to the active function. -func (c *Context) VFMADDSUB132PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_RZ_SAE(ops...)) -} - -// VFMADDSUB132PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB132PS.RZ_SAE zmm zmm k zmm -// VFMADDSUB132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB132PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_RZ_SAE(ops ...operand.Op) { ctx.VFMADDSUB132PS_RZ_SAE(ops...) } - -// VFMADDSUB132PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB132PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB132PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB132PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.Z m128 xmm k xmm -// VFMADDSUB132PS.Z m256 ymm k ymm -// VFMADDSUB132PS.Z xmm xmm k xmm -// VFMADDSUB132PS.Z ymm ymm k ymm -// VFMADDSUB132PS.Z m512 zmm k zmm -// VFMADDSUB132PS.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.Z instruction to the active function. -func (c *Context) VFMADDSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB132PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADDSUB132PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.Z m128 xmm k xmm -// VFMADDSUB132PS.Z m256 ymm k ymm -// VFMADDSUB132PS.Z xmm xmm k xmm -// VFMADDSUB132PS.Z ymm ymm k ymm -// VFMADDSUB132PS.Z m512 zmm k zmm -// VFMADDSUB132PS.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB132PS.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB132PS_Z(mxyz, xyz, k, xyz1) } - -// VFMADDSUB213PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB213PD m128 xmm xmm -// VFMADDSUB213PD m256 ymm ymm -// VFMADDSUB213PD xmm xmm xmm -// VFMADDSUB213PD ymm ymm ymm -// VFMADDSUB213PD m128 xmm k xmm -// VFMADDSUB213PD m256 ymm k ymm -// VFMADDSUB213PD xmm xmm k xmm -// VFMADDSUB213PD ymm ymm k ymm -// VFMADDSUB213PD m512 zmm k zmm -// VFMADDSUB213PD m512 zmm zmm -// VFMADDSUB213PD zmm zmm k zmm -// VFMADDSUB213PD zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD instruction to the active function. -func (c *Context) VFMADDSUB213PD(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD(ops...)) -} - -// VFMADDSUB213PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB213PD m128 xmm xmm -// VFMADDSUB213PD m256 ymm ymm -// VFMADDSUB213PD xmm xmm xmm -// VFMADDSUB213PD ymm ymm ymm -// VFMADDSUB213PD m128 xmm k xmm -// VFMADDSUB213PD m256 ymm k ymm -// VFMADDSUB213PD xmm xmm k xmm -// VFMADDSUB213PD ymm ymm k ymm -// VFMADDSUB213PD m512 zmm k zmm -// VFMADDSUB213PD m512 zmm zmm -// VFMADDSUB213PD zmm zmm k zmm -// VFMADDSUB213PD zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD(ops ...operand.Op) { ctx.VFMADDSUB213PD(ops...) } - -// VFMADDSUB213PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB213PD.BCST m64 xmm k xmm -// VFMADDSUB213PD.BCST m64 xmm xmm -// VFMADDSUB213PD.BCST m64 ymm k ymm -// VFMADDSUB213PD.BCST m64 ymm ymm -// VFMADDSUB213PD.BCST m64 zmm k zmm -// VFMADDSUB213PD.BCST m64 zmm zmm -// -// Construct and append a VFMADDSUB213PD.BCST instruction to the active function. -func (c *Context) VFMADDSUB213PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_BCST(ops...)) -} - -// VFMADDSUB213PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB213PD.BCST m64 xmm k xmm -// VFMADDSUB213PD.BCST m64 xmm xmm -// VFMADDSUB213PD.BCST m64 ymm k ymm -// VFMADDSUB213PD.BCST m64 ymm ymm -// VFMADDSUB213PD.BCST m64 zmm k zmm -// VFMADDSUB213PD.BCST m64 zmm zmm -// -// Construct and append a VFMADDSUB213PD.BCST instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_BCST(ops ...operand.Op) { ctx.VFMADDSUB213PD_BCST(ops...) } - -// VFMADDSUB213PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.BCST.Z m64 xmm k xmm -// VFMADDSUB213PD.BCST.Z m64 ymm k ymm -// VFMADDSUB213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADDSUB213PD.BCST.Z instruction to the active function. -func (c *Context) VFMADDSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADDSUB213PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.BCST.Z m64 xmm k xmm -// VFMADDSUB213PD.BCST.Z m64 ymm k ymm -// VFMADDSUB213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADDSUB213PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB213PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMADDSUB213PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB213PD.RD_SAE zmm zmm k zmm -// VFMADDSUB213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD.RD_SAE instruction to the active function. -func (c *Context) VFMADDSUB213PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_RD_SAE(ops...)) -} - -// VFMADDSUB213PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB213PD.RD_SAE zmm zmm k zmm -// VFMADDSUB213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_RD_SAE(ops ...operand.Op) { ctx.VFMADDSUB213PD_RD_SAE(ops...) } - -// VFMADDSUB213PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB213PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB213PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB213PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB213PD.RN_SAE zmm zmm k zmm -// VFMADDSUB213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD.RN_SAE instruction to the active function. -func (c *Context) VFMADDSUB213PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_RN_SAE(ops...)) -} - -// VFMADDSUB213PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB213PD.RN_SAE zmm zmm k zmm -// VFMADDSUB213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_RN_SAE(ops ...operand.Op) { ctx.VFMADDSUB213PD_RN_SAE(ops...) } - -// VFMADDSUB213PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB213PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB213PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB213PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB213PD.RU_SAE zmm zmm k zmm -// VFMADDSUB213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD.RU_SAE instruction to the active function. -func (c *Context) VFMADDSUB213PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_RU_SAE(ops...)) -} - -// VFMADDSUB213PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB213PD.RU_SAE zmm zmm k zmm -// VFMADDSUB213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_RU_SAE(ops ...operand.Op) { ctx.VFMADDSUB213PD_RU_SAE(ops...) } - -// VFMADDSUB213PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB213PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB213PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB213PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB213PD.RZ_SAE zmm zmm k zmm -// VFMADDSUB213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD.RZ_SAE instruction to the active function. -func (c *Context) VFMADDSUB213PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_RZ_SAE(ops...)) -} - -// VFMADDSUB213PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB213PD.RZ_SAE zmm zmm k zmm -// VFMADDSUB213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_RZ_SAE(ops ...operand.Op) { ctx.VFMADDSUB213PD_RZ_SAE(ops...) } - -// VFMADDSUB213PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB213PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB213PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB213PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.Z m128 xmm k xmm -// VFMADDSUB213PD.Z m256 ymm k ymm -// VFMADDSUB213PD.Z xmm xmm k xmm -// VFMADDSUB213PD.Z ymm ymm k ymm -// VFMADDSUB213PD.Z m512 zmm k zmm -// VFMADDSUB213PD.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.Z instruction to the active function. -func (c *Context) VFMADDSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADDSUB213PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.Z m128 xmm k xmm -// VFMADDSUB213PD.Z m256 ymm k ymm -// VFMADDSUB213PD.Z xmm xmm k xmm -// VFMADDSUB213PD.Z ymm ymm k ymm -// VFMADDSUB213PD.Z m512 zmm k zmm -// VFMADDSUB213PD.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PD.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB213PD_Z(mxyz, xyz, k, xyz1) } - -// VFMADDSUB213PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB213PS m128 xmm xmm -// VFMADDSUB213PS m256 ymm ymm -// VFMADDSUB213PS xmm xmm xmm -// VFMADDSUB213PS ymm ymm ymm -// VFMADDSUB213PS m128 xmm k xmm -// VFMADDSUB213PS m256 ymm k ymm -// VFMADDSUB213PS xmm xmm k xmm -// VFMADDSUB213PS ymm ymm k ymm -// VFMADDSUB213PS m512 zmm k zmm -// VFMADDSUB213PS m512 zmm zmm -// VFMADDSUB213PS zmm zmm k zmm -// VFMADDSUB213PS zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS instruction to the active function. -func (c *Context) VFMADDSUB213PS(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS(ops...)) -} - -// VFMADDSUB213PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB213PS m128 xmm xmm -// VFMADDSUB213PS m256 ymm ymm -// VFMADDSUB213PS xmm xmm xmm -// VFMADDSUB213PS ymm ymm ymm -// VFMADDSUB213PS m128 xmm k xmm -// VFMADDSUB213PS m256 ymm k ymm -// VFMADDSUB213PS xmm xmm k xmm -// VFMADDSUB213PS ymm ymm k ymm -// VFMADDSUB213PS m512 zmm k zmm -// VFMADDSUB213PS m512 zmm zmm -// VFMADDSUB213PS zmm zmm k zmm -// VFMADDSUB213PS zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS(ops ...operand.Op) { ctx.VFMADDSUB213PS(ops...) } - -// VFMADDSUB213PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB213PS.BCST m32 xmm k xmm -// VFMADDSUB213PS.BCST m32 xmm xmm -// VFMADDSUB213PS.BCST m32 ymm k ymm -// VFMADDSUB213PS.BCST m32 ymm ymm -// VFMADDSUB213PS.BCST m32 zmm k zmm -// VFMADDSUB213PS.BCST m32 zmm zmm -// -// Construct and append a VFMADDSUB213PS.BCST instruction to the active function. -func (c *Context) VFMADDSUB213PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_BCST(ops...)) -} - -// VFMADDSUB213PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB213PS.BCST m32 xmm k xmm -// VFMADDSUB213PS.BCST m32 xmm xmm -// VFMADDSUB213PS.BCST m32 ymm k ymm -// VFMADDSUB213PS.BCST m32 ymm ymm -// VFMADDSUB213PS.BCST m32 zmm k zmm -// VFMADDSUB213PS.BCST m32 zmm zmm -// -// Construct and append a VFMADDSUB213PS.BCST instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_BCST(ops ...operand.Op) { ctx.VFMADDSUB213PS_BCST(ops...) } - -// VFMADDSUB213PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.BCST.Z m32 xmm k xmm -// VFMADDSUB213PS.BCST.Z m32 ymm k ymm -// VFMADDSUB213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADDSUB213PS.BCST.Z instruction to the active function. -func (c *Context) VFMADDSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADDSUB213PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.BCST.Z m32 xmm k xmm -// VFMADDSUB213PS.BCST.Z m32 ymm k ymm -// VFMADDSUB213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADDSUB213PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB213PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMADDSUB213PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB213PS.RD_SAE zmm zmm k zmm -// VFMADDSUB213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS.RD_SAE instruction to the active function. -func (c *Context) VFMADDSUB213PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_RD_SAE(ops...)) -} - -// VFMADDSUB213PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB213PS.RD_SAE zmm zmm k zmm -// VFMADDSUB213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_RD_SAE(ops ...operand.Op) { ctx.VFMADDSUB213PS_RD_SAE(ops...) } - -// VFMADDSUB213PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB213PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB213PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB213PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB213PS.RN_SAE zmm zmm k zmm -// VFMADDSUB213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS.RN_SAE instruction to the active function. -func (c *Context) VFMADDSUB213PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_RN_SAE(ops...)) -} - -// VFMADDSUB213PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB213PS.RN_SAE zmm zmm k zmm -// VFMADDSUB213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_RN_SAE(ops ...operand.Op) { ctx.VFMADDSUB213PS_RN_SAE(ops...) } - -// VFMADDSUB213PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB213PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB213PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB213PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB213PS.RU_SAE zmm zmm k zmm -// VFMADDSUB213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS.RU_SAE instruction to the active function. -func (c *Context) VFMADDSUB213PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_RU_SAE(ops...)) -} - -// VFMADDSUB213PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB213PS.RU_SAE zmm zmm k zmm -// VFMADDSUB213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_RU_SAE(ops ...operand.Op) { ctx.VFMADDSUB213PS_RU_SAE(ops...) } - -// VFMADDSUB213PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB213PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB213PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB213PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB213PS.RZ_SAE zmm zmm k zmm -// VFMADDSUB213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS.RZ_SAE instruction to the active function. -func (c *Context) VFMADDSUB213PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_RZ_SAE(ops...)) -} - -// VFMADDSUB213PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB213PS.RZ_SAE zmm zmm k zmm -// VFMADDSUB213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB213PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_RZ_SAE(ops ...operand.Op) { ctx.VFMADDSUB213PS_RZ_SAE(ops...) } - -// VFMADDSUB213PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB213PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB213PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB213PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.Z m128 xmm k xmm -// VFMADDSUB213PS.Z m256 ymm k ymm -// VFMADDSUB213PS.Z xmm xmm k xmm -// VFMADDSUB213PS.Z ymm ymm k ymm -// VFMADDSUB213PS.Z m512 zmm k zmm -// VFMADDSUB213PS.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.Z instruction to the active function. -func (c *Context) VFMADDSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB213PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADDSUB213PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.Z m128 xmm k xmm -// VFMADDSUB213PS.Z m256 ymm k ymm -// VFMADDSUB213PS.Z xmm xmm k xmm -// VFMADDSUB213PS.Z ymm ymm k ymm -// VFMADDSUB213PS.Z m512 zmm k zmm -// VFMADDSUB213PS.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB213PS.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB213PS_Z(mxyz, xyz, k, xyz1) } - -// VFMADDSUB231PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB231PD m128 xmm xmm -// VFMADDSUB231PD m256 ymm ymm -// VFMADDSUB231PD xmm xmm xmm -// VFMADDSUB231PD ymm ymm ymm -// VFMADDSUB231PD m128 xmm k xmm -// VFMADDSUB231PD m256 ymm k ymm -// VFMADDSUB231PD xmm xmm k xmm -// VFMADDSUB231PD ymm ymm k ymm -// VFMADDSUB231PD m512 zmm k zmm -// VFMADDSUB231PD m512 zmm zmm -// VFMADDSUB231PD zmm zmm k zmm -// VFMADDSUB231PD zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD instruction to the active function. -func (c *Context) VFMADDSUB231PD(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD(ops...)) -} - -// VFMADDSUB231PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB231PD m128 xmm xmm -// VFMADDSUB231PD m256 ymm ymm -// VFMADDSUB231PD xmm xmm xmm -// VFMADDSUB231PD ymm ymm ymm -// VFMADDSUB231PD m128 xmm k xmm -// VFMADDSUB231PD m256 ymm k ymm -// VFMADDSUB231PD xmm xmm k xmm -// VFMADDSUB231PD ymm ymm k ymm -// VFMADDSUB231PD m512 zmm k zmm -// VFMADDSUB231PD m512 zmm zmm -// VFMADDSUB231PD zmm zmm k zmm -// VFMADDSUB231PD zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD(ops ...operand.Op) { ctx.VFMADDSUB231PD(ops...) } - -// VFMADDSUB231PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB231PD.BCST m64 xmm k xmm -// VFMADDSUB231PD.BCST m64 xmm xmm -// VFMADDSUB231PD.BCST m64 ymm k ymm -// VFMADDSUB231PD.BCST m64 ymm ymm -// VFMADDSUB231PD.BCST m64 zmm k zmm -// VFMADDSUB231PD.BCST m64 zmm zmm -// -// Construct and append a VFMADDSUB231PD.BCST instruction to the active function. -func (c *Context) VFMADDSUB231PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_BCST(ops...)) -} - -// VFMADDSUB231PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB231PD.BCST m64 xmm k xmm -// VFMADDSUB231PD.BCST m64 xmm xmm -// VFMADDSUB231PD.BCST m64 ymm k ymm -// VFMADDSUB231PD.BCST m64 ymm ymm -// VFMADDSUB231PD.BCST m64 zmm k zmm -// VFMADDSUB231PD.BCST m64 zmm zmm -// -// Construct and append a VFMADDSUB231PD.BCST instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_BCST(ops ...operand.Op) { ctx.VFMADDSUB231PD_BCST(ops...) } - -// VFMADDSUB231PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.BCST.Z m64 xmm k xmm -// VFMADDSUB231PD.BCST.Z m64 ymm k ymm -// VFMADDSUB231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADDSUB231PD.BCST.Z instruction to the active function. -func (c *Context) VFMADDSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADDSUB231PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.BCST.Z m64 xmm k xmm -// VFMADDSUB231PD.BCST.Z m64 ymm k ymm -// VFMADDSUB231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMADDSUB231PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB231PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMADDSUB231PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB231PD.RD_SAE zmm zmm k zmm -// VFMADDSUB231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD.RD_SAE instruction to the active function. -func (c *Context) VFMADDSUB231PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_RD_SAE(ops...)) -} - -// VFMADDSUB231PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB231PD.RD_SAE zmm zmm k zmm -// VFMADDSUB231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_RD_SAE(ops ...operand.Op) { ctx.VFMADDSUB231PD_RD_SAE(ops...) } - -// VFMADDSUB231PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB231PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB231PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB231PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB231PD.RN_SAE zmm zmm k zmm -// VFMADDSUB231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD.RN_SAE instruction to the active function. -func (c *Context) VFMADDSUB231PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_RN_SAE(ops...)) -} - -// VFMADDSUB231PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB231PD.RN_SAE zmm zmm k zmm -// VFMADDSUB231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_RN_SAE(ops ...operand.Op) { ctx.VFMADDSUB231PD_RN_SAE(ops...) } - -// VFMADDSUB231PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB231PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB231PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB231PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB231PD.RU_SAE zmm zmm k zmm -// VFMADDSUB231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD.RU_SAE instruction to the active function. -func (c *Context) VFMADDSUB231PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_RU_SAE(ops...)) -} - -// VFMADDSUB231PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB231PD.RU_SAE zmm zmm k zmm -// VFMADDSUB231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_RU_SAE(ops ...operand.Op) { ctx.VFMADDSUB231PD_RU_SAE(ops...) } - -// VFMADDSUB231PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB231PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB231PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB231PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB231PD.RZ_SAE zmm zmm k zmm -// VFMADDSUB231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD.RZ_SAE instruction to the active function. -func (c *Context) VFMADDSUB231PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_RZ_SAE(ops...)) -} - -// VFMADDSUB231PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB231PD.RZ_SAE zmm zmm k zmm -// VFMADDSUB231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_RZ_SAE(ops ...operand.Op) { ctx.VFMADDSUB231PD_RZ_SAE(ops...) } - -// VFMADDSUB231PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB231PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB231PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB231PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.Z m128 xmm k xmm -// VFMADDSUB231PD.Z m256 ymm k ymm -// VFMADDSUB231PD.Z xmm xmm k xmm -// VFMADDSUB231PD.Z ymm ymm k ymm -// VFMADDSUB231PD.Z m512 zmm k zmm -// VFMADDSUB231PD.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.Z instruction to the active function. -func (c *Context) VFMADDSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADDSUB231PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.Z m128 xmm k xmm -// VFMADDSUB231PD.Z m256 ymm k ymm -// VFMADDSUB231PD.Z xmm xmm k xmm -// VFMADDSUB231PD.Z ymm ymm k ymm -// VFMADDSUB231PD.Z m512 zmm k zmm -// VFMADDSUB231PD.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PD.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB231PD_Z(mxyz, xyz, k, xyz1) } - -// VFMADDSUB231PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB231PS m128 xmm xmm -// VFMADDSUB231PS m256 ymm ymm -// VFMADDSUB231PS xmm xmm xmm -// VFMADDSUB231PS ymm ymm ymm -// VFMADDSUB231PS m128 xmm k xmm -// VFMADDSUB231PS m256 ymm k ymm -// VFMADDSUB231PS xmm xmm k xmm -// VFMADDSUB231PS ymm ymm k ymm -// VFMADDSUB231PS m512 zmm k zmm -// VFMADDSUB231PS m512 zmm zmm -// VFMADDSUB231PS zmm zmm k zmm -// VFMADDSUB231PS zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS instruction to the active function. -func (c *Context) VFMADDSUB231PS(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS(ops...)) -} - -// VFMADDSUB231PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB231PS m128 xmm xmm -// VFMADDSUB231PS m256 ymm ymm -// VFMADDSUB231PS xmm xmm xmm -// VFMADDSUB231PS ymm ymm ymm -// VFMADDSUB231PS m128 xmm k xmm -// VFMADDSUB231PS m256 ymm k ymm -// VFMADDSUB231PS xmm xmm k xmm -// VFMADDSUB231PS ymm ymm k ymm -// VFMADDSUB231PS m512 zmm k zmm -// VFMADDSUB231PS m512 zmm zmm -// VFMADDSUB231PS zmm zmm k zmm -// VFMADDSUB231PS zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS(ops ...operand.Op) { ctx.VFMADDSUB231PS(ops...) } - -// VFMADDSUB231PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB231PS.BCST m32 xmm k xmm -// VFMADDSUB231PS.BCST m32 xmm xmm -// VFMADDSUB231PS.BCST m32 ymm k ymm -// VFMADDSUB231PS.BCST m32 ymm ymm -// VFMADDSUB231PS.BCST m32 zmm k zmm -// VFMADDSUB231PS.BCST m32 zmm zmm -// -// Construct and append a VFMADDSUB231PS.BCST instruction to the active function. -func (c *Context) VFMADDSUB231PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_BCST(ops...)) -} - -// VFMADDSUB231PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB231PS.BCST m32 xmm k xmm -// VFMADDSUB231PS.BCST m32 xmm xmm -// VFMADDSUB231PS.BCST m32 ymm k ymm -// VFMADDSUB231PS.BCST m32 ymm ymm -// VFMADDSUB231PS.BCST m32 zmm k zmm -// VFMADDSUB231PS.BCST m32 zmm zmm -// -// Construct and append a VFMADDSUB231PS.BCST instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_BCST(ops ...operand.Op) { ctx.VFMADDSUB231PS_BCST(ops...) } - -// VFMADDSUB231PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.BCST.Z m32 xmm k xmm -// VFMADDSUB231PS.BCST.Z m32 ymm k ymm -// VFMADDSUB231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADDSUB231PS.BCST.Z instruction to the active function. -func (c *Context) VFMADDSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMADDSUB231PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.BCST.Z m32 xmm k xmm -// VFMADDSUB231PS.BCST.Z m32 ymm k ymm -// VFMADDSUB231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMADDSUB231PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB231PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMADDSUB231PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB231PS.RD_SAE zmm zmm k zmm -// VFMADDSUB231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS.RD_SAE instruction to the active function. -func (c *Context) VFMADDSUB231PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_RD_SAE(ops...)) -} - -// VFMADDSUB231PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB231PS.RD_SAE zmm zmm k zmm -// VFMADDSUB231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_RD_SAE(ops ...operand.Op) { ctx.VFMADDSUB231PS_RD_SAE(ops...) } - -// VFMADDSUB231PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB231PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB231PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB231PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB231PS.RN_SAE zmm zmm k zmm -// VFMADDSUB231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS.RN_SAE instruction to the active function. -func (c *Context) VFMADDSUB231PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_RN_SAE(ops...)) -} - -// VFMADDSUB231PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB231PS.RN_SAE zmm zmm k zmm -// VFMADDSUB231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_RN_SAE(ops ...operand.Op) { ctx.VFMADDSUB231PS_RN_SAE(ops...) } - -// VFMADDSUB231PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB231PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB231PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB231PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB231PS.RU_SAE zmm zmm k zmm -// VFMADDSUB231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS.RU_SAE instruction to the active function. -func (c *Context) VFMADDSUB231PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_RU_SAE(ops...)) -} - -// VFMADDSUB231PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB231PS.RU_SAE zmm zmm k zmm -// VFMADDSUB231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_RU_SAE(ops ...operand.Op) { ctx.VFMADDSUB231PS_RU_SAE(ops...) } - -// VFMADDSUB231PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB231PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB231PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB231PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB231PS.RZ_SAE zmm zmm k zmm -// VFMADDSUB231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS.RZ_SAE instruction to the active function. -func (c *Context) VFMADDSUB231PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_RZ_SAE(ops...)) -} - -// VFMADDSUB231PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB231PS.RZ_SAE zmm zmm k zmm -// VFMADDSUB231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMADDSUB231PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_RZ_SAE(ops ...operand.Op) { ctx.VFMADDSUB231PS_RZ_SAE(ops...) } - -// VFMADDSUB231PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMADDSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMADDSUB231PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMADDSUB231PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMADDSUB231PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.Z m128 xmm k xmm -// VFMADDSUB231PS.Z m256 ymm k ymm -// VFMADDSUB231PS.Z xmm xmm k xmm -// VFMADDSUB231PS.Z ymm ymm k ymm -// VFMADDSUB231PS.Z m512 zmm k zmm -// VFMADDSUB231PS.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.Z instruction to the active function. -func (c *Context) VFMADDSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMADDSUB231PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMADDSUB231PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.Z m128 xmm k xmm -// VFMADDSUB231PS.Z m256 ymm k ymm -// VFMADDSUB231PS.Z xmm xmm k xmm -// VFMADDSUB231PS.Z ymm ymm k ymm -// VFMADDSUB231PS.Z m512 zmm k zmm -// VFMADDSUB231PS.Z zmm zmm k zmm -// -// Construct and append a VFMADDSUB231PS.Z instruction to the active function. -// Operates on the global context. -func VFMADDSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMADDSUB231PS_Z(mxyz, xyz, k, xyz1) } - -// VFMSUB132PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132PD m128 xmm xmm -// VFMSUB132PD m256 ymm ymm -// VFMSUB132PD xmm xmm xmm -// VFMSUB132PD ymm ymm ymm -// VFMSUB132PD m128 xmm k xmm -// VFMSUB132PD m256 ymm k ymm -// VFMSUB132PD xmm xmm k xmm -// VFMSUB132PD ymm ymm k ymm -// VFMSUB132PD m512 zmm k zmm -// VFMSUB132PD m512 zmm zmm -// VFMSUB132PD zmm zmm k zmm -// VFMSUB132PD zmm zmm zmm -// -// Construct and append a VFMSUB132PD instruction to the active function. -func (c *Context) VFMSUB132PD(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PD(ops...)) -} - -// VFMSUB132PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132PD m128 xmm xmm -// VFMSUB132PD m256 ymm ymm -// VFMSUB132PD xmm xmm xmm -// VFMSUB132PD ymm ymm ymm -// VFMSUB132PD m128 xmm k xmm -// VFMSUB132PD m256 ymm k ymm -// VFMSUB132PD xmm xmm k xmm -// VFMSUB132PD ymm ymm k ymm -// VFMSUB132PD m512 zmm k zmm -// VFMSUB132PD m512 zmm zmm -// VFMSUB132PD zmm zmm k zmm -// VFMSUB132PD zmm zmm zmm -// -// Construct and append a VFMSUB132PD instruction to the active function. -// Operates on the global context. -func VFMSUB132PD(ops ...operand.Op) { ctx.VFMSUB132PD(ops...) } - -// VFMSUB132PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB132PD.BCST m64 xmm k xmm -// VFMSUB132PD.BCST m64 xmm xmm -// VFMSUB132PD.BCST m64 ymm k ymm -// VFMSUB132PD.BCST m64 ymm ymm -// VFMSUB132PD.BCST m64 zmm k zmm -// VFMSUB132PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUB132PD.BCST instruction to the active function. -func (c *Context) VFMSUB132PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PD_BCST(ops...)) -} - -// VFMSUB132PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB132PD.BCST m64 xmm k xmm -// VFMSUB132PD.BCST m64 xmm xmm -// VFMSUB132PD.BCST m64 ymm k ymm -// VFMSUB132PD.BCST m64 ymm ymm -// VFMSUB132PD.BCST m64 zmm k zmm -// VFMSUB132PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUB132PD.BCST instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_BCST(ops ...operand.Op) { ctx.VFMSUB132PD_BCST(ops...) } - -// VFMSUB132PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.BCST.Z m64 xmm k xmm -// VFMSUB132PD.BCST.Z m64 ymm k ymm -// VFMSUB132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUB132PD.BCST.Z instruction to the active function. -func (c *Context) VFMSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB132PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUB132PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.BCST.Z m64 xmm k xmm -// VFMSUB132PD.BCST.Z m64 ymm k ymm -// VFMSUB132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUB132PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUB132PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUB132PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132PD.RD_SAE zmm zmm k zmm -// VFMSUB132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PD.RD_SAE instruction to the active function. -func (c *Context) VFMSUB132PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PD_RD_SAE(ops...)) -} - -// VFMSUB132PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132PD.RD_SAE zmm zmm k zmm -// VFMSUB132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_RD_SAE(ops ...operand.Op) { ctx.VFMSUB132PD_RD_SAE(ops...) } - -// VFMSUB132PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB132PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB132PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB132PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUB132PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132PD.RN_SAE zmm zmm k zmm -// VFMSUB132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PD.RN_SAE instruction to the active function. -func (c *Context) VFMSUB132PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PD_RN_SAE(ops...)) -} - -// VFMSUB132PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132PD.RN_SAE zmm zmm k zmm -// VFMSUB132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_RN_SAE(ops ...operand.Op) { ctx.VFMSUB132PD_RN_SAE(ops...) } - -// VFMSUB132PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB132PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB132PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB132PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUB132PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132PD.RU_SAE zmm zmm k zmm -// VFMSUB132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PD.RU_SAE instruction to the active function. -func (c *Context) VFMSUB132PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PD_RU_SAE(ops...)) -} - -// VFMSUB132PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132PD.RU_SAE zmm zmm k zmm -// VFMSUB132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_RU_SAE(ops ...operand.Op) { ctx.VFMSUB132PD_RU_SAE(ops...) } - -// VFMSUB132PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB132PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB132PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB132PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUB132PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132PD.RZ_SAE zmm zmm k zmm -// VFMSUB132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PD.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB132PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PD_RZ_SAE(ops...)) -} - -// VFMSUB132PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132PD.RZ_SAE zmm zmm k zmm -// VFMSUB132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB132PD_RZ_SAE(ops...) } - -// VFMSUB132PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB132PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB132PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB132PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUB132PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.Z m128 xmm k xmm -// VFMSUB132PD.Z m256 ymm k ymm -// VFMSUB132PD.Z xmm xmm k xmm -// VFMSUB132PD.Z ymm ymm k ymm -// VFMSUB132PD.Z m512 zmm k zmm -// VFMSUB132PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.Z instruction to the active function. -func (c *Context) VFMSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB132PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUB132PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.Z m128 xmm k xmm -// VFMSUB132PD.Z m256 ymm k ymm -// VFMSUB132PD.Z xmm xmm k xmm -// VFMSUB132PD.Z ymm ymm k ymm -// VFMSUB132PD.Z m512 zmm k zmm -// VFMSUB132PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PD.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUB132PD_Z(mxyz, xyz, k, xyz1) } - -// VFMSUB132PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132PS m128 xmm xmm -// VFMSUB132PS m256 ymm ymm -// VFMSUB132PS xmm xmm xmm -// VFMSUB132PS ymm ymm ymm -// VFMSUB132PS m128 xmm k xmm -// VFMSUB132PS m256 ymm k ymm -// VFMSUB132PS xmm xmm k xmm -// VFMSUB132PS ymm ymm k ymm -// VFMSUB132PS m512 zmm k zmm -// VFMSUB132PS m512 zmm zmm -// VFMSUB132PS zmm zmm k zmm -// VFMSUB132PS zmm zmm zmm -// -// Construct and append a VFMSUB132PS instruction to the active function. -func (c *Context) VFMSUB132PS(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PS(ops...)) -} - -// VFMSUB132PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132PS m128 xmm xmm -// VFMSUB132PS m256 ymm ymm -// VFMSUB132PS xmm xmm xmm -// VFMSUB132PS ymm ymm ymm -// VFMSUB132PS m128 xmm k xmm -// VFMSUB132PS m256 ymm k ymm -// VFMSUB132PS xmm xmm k xmm -// VFMSUB132PS ymm ymm k ymm -// VFMSUB132PS m512 zmm k zmm -// VFMSUB132PS m512 zmm zmm -// VFMSUB132PS zmm zmm k zmm -// VFMSUB132PS zmm zmm zmm -// -// Construct and append a VFMSUB132PS instruction to the active function. -// Operates on the global context. -func VFMSUB132PS(ops ...operand.Op) { ctx.VFMSUB132PS(ops...) } - -// VFMSUB132PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB132PS.BCST m32 xmm k xmm -// VFMSUB132PS.BCST m32 xmm xmm -// VFMSUB132PS.BCST m32 ymm k ymm -// VFMSUB132PS.BCST m32 ymm ymm -// VFMSUB132PS.BCST m32 zmm k zmm -// VFMSUB132PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUB132PS.BCST instruction to the active function. -func (c *Context) VFMSUB132PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PS_BCST(ops...)) -} - -// VFMSUB132PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB132PS.BCST m32 xmm k xmm -// VFMSUB132PS.BCST m32 xmm xmm -// VFMSUB132PS.BCST m32 ymm k ymm -// VFMSUB132PS.BCST m32 ymm ymm -// VFMSUB132PS.BCST m32 zmm k zmm -// VFMSUB132PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUB132PS.BCST instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_BCST(ops ...operand.Op) { ctx.VFMSUB132PS_BCST(ops...) } - -// VFMSUB132PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.BCST.Z m32 xmm k xmm -// VFMSUB132PS.BCST.Z m32 ymm k ymm -// VFMSUB132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUB132PS.BCST.Z instruction to the active function. -func (c *Context) VFMSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB132PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUB132PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.BCST.Z m32 xmm k xmm -// VFMSUB132PS.BCST.Z m32 ymm k ymm -// VFMSUB132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUB132PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUB132PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUB132PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132PS.RD_SAE zmm zmm k zmm -// VFMSUB132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PS.RD_SAE instruction to the active function. -func (c *Context) VFMSUB132PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PS_RD_SAE(ops...)) -} - -// VFMSUB132PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132PS.RD_SAE zmm zmm k zmm -// VFMSUB132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_RD_SAE(ops ...operand.Op) { ctx.VFMSUB132PS_RD_SAE(ops...) } - -// VFMSUB132PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB132PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB132PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB132PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUB132PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132PS.RN_SAE zmm zmm k zmm -// VFMSUB132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PS.RN_SAE instruction to the active function. -func (c *Context) VFMSUB132PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PS_RN_SAE(ops...)) -} - -// VFMSUB132PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132PS.RN_SAE zmm zmm k zmm -// VFMSUB132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_RN_SAE(ops ...operand.Op) { ctx.VFMSUB132PS_RN_SAE(ops...) } - -// VFMSUB132PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB132PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB132PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB132PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUB132PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132PS.RU_SAE zmm zmm k zmm -// VFMSUB132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PS.RU_SAE instruction to the active function. -func (c *Context) VFMSUB132PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PS_RU_SAE(ops...)) -} - -// VFMSUB132PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132PS.RU_SAE zmm zmm k zmm -// VFMSUB132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_RU_SAE(ops ...operand.Op) { ctx.VFMSUB132PS_RU_SAE(ops...) } - -// VFMSUB132PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB132PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB132PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB132PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUB132PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132PS.RZ_SAE zmm zmm k zmm -// VFMSUB132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PS.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB132PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132PS_RZ_SAE(ops...)) -} - -// VFMSUB132PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132PS.RZ_SAE zmm zmm k zmm -// VFMSUB132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB132PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB132PS_RZ_SAE(ops...) } - -// VFMSUB132PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB132PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB132PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB132PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUB132PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.Z m128 xmm k xmm -// VFMSUB132PS.Z m256 ymm k ymm -// VFMSUB132PS.Z xmm xmm k xmm -// VFMSUB132PS.Z ymm ymm k ymm -// VFMSUB132PS.Z m512 zmm k zmm -// VFMSUB132PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.Z instruction to the active function. -func (c *Context) VFMSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB132PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUB132PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.Z m128 xmm k xmm -// VFMSUB132PS.Z m256 ymm k ymm -// VFMSUB132PS.Z xmm xmm k xmm -// VFMSUB132PS.Z ymm ymm k ymm -// VFMSUB132PS.Z m512 zmm k zmm -// VFMSUB132PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUB132PS.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUB132PS_Z(mxyz, xyz, k, xyz1) } - -// VFMSUB132SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132SD m64 xmm xmm -// VFMSUB132SD xmm xmm xmm -// VFMSUB132SD m64 xmm k xmm -// VFMSUB132SD xmm xmm k xmm -// -// Construct and append a VFMSUB132SD instruction to the active function. -func (c *Context) VFMSUB132SD(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SD(ops...)) -} - -// VFMSUB132SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132SD m64 xmm xmm -// VFMSUB132SD xmm xmm xmm -// VFMSUB132SD m64 xmm k xmm -// VFMSUB132SD xmm xmm k xmm -// -// Construct and append a VFMSUB132SD instruction to the active function. -// Operates on the global context. -func VFMSUB132SD(ops ...operand.Op) { ctx.VFMSUB132SD(ops...) } - -// VFMSUB132SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132SD.RD_SAE xmm xmm k xmm -// VFMSUB132SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SD.RD_SAE instruction to the active function. -func (c *Context) VFMSUB132SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SD_RD_SAE(ops...)) -} - -// VFMSUB132SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132SD.RD_SAE xmm xmm k xmm -// VFMSUB132SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132SD_RD_SAE(ops ...operand.Op) { ctx.VFMSUB132SD_RD_SAE(ops...) } - -// VFMSUB132SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB132SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB132SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB132SD_RD_SAE_Z(x, x1, k, x2) } - -// VFMSUB132SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132SD.RN_SAE xmm xmm k xmm -// VFMSUB132SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SD.RN_SAE instruction to the active function. -func (c *Context) VFMSUB132SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SD_RN_SAE(ops...)) -} - -// VFMSUB132SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132SD.RN_SAE xmm xmm k xmm -// VFMSUB132SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132SD_RN_SAE(ops ...operand.Op) { ctx.VFMSUB132SD_RN_SAE(ops...) } - -// VFMSUB132SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB132SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB132SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB132SD_RN_SAE_Z(x, x1, k, x2) } - -// VFMSUB132SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132SD.RU_SAE xmm xmm k xmm -// VFMSUB132SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SD.RU_SAE instruction to the active function. -func (c *Context) VFMSUB132SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SD_RU_SAE(ops...)) -} - -// VFMSUB132SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132SD.RU_SAE xmm xmm k xmm -// VFMSUB132SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132SD_RU_SAE(ops ...operand.Op) { ctx.VFMSUB132SD_RU_SAE(ops...) } - -// VFMSUB132SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB132SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB132SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB132SD_RU_SAE_Z(x, x1, k, x2) } - -// VFMSUB132SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132SD.RZ_SAE xmm xmm k xmm -// VFMSUB132SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SD.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB132SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SD_RZ_SAE(ops...)) -} - -// VFMSUB132SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132SD.RZ_SAE xmm xmm k xmm -// VFMSUB132SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132SD_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB132SD_RZ_SAE(ops...) } - -// VFMSUB132SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB132SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB132SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB132SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFMSUB132SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.Z m64 xmm k xmm -// VFMSUB132SD.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.Z instruction to the active function. -func (c *Context) VFMSUB132SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMSUB132SD_Z(mx, x, k, x1)) -} - -// VFMSUB132SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.Z m64 xmm k xmm -// VFMSUB132SD.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SD.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SD_Z(mx, x, k, x1 operand.Op) { ctx.VFMSUB132SD_Z(mx, x, k, x1) } - -// VFMSUB132SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132SS m32 xmm xmm -// VFMSUB132SS xmm xmm xmm -// VFMSUB132SS m32 xmm k xmm -// VFMSUB132SS xmm xmm k xmm -// -// Construct and append a VFMSUB132SS instruction to the active function. -func (c *Context) VFMSUB132SS(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SS(ops...)) -} - -// VFMSUB132SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132SS m32 xmm xmm -// VFMSUB132SS xmm xmm xmm -// VFMSUB132SS m32 xmm k xmm -// VFMSUB132SS xmm xmm k xmm -// -// Construct and append a VFMSUB132SS instruction to the active function. -// Operates on the global context. -func VFMSUB132SS(ops ...operand.Op) { ctx.VFMSUB132SS(ops...) } - -// VFMSUB132SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132SS.RD_SAE xmm xmm k xmm -// VFMSUB132SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SS.RD_SAE instruction to the active function. -func (c *Context) VFMSUB132SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SS_RD_SAE(ops...)) -} - -// VFMSUB132SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132SS.RD_SAE xmm xmm k xmm -// VFMSUB132SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132SS_RD_SAE(ops ...operand.Op) { ctx.VFMSUB132SS_RD_SAE(ops...) } - -// VFMSUB132SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB132SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB132SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB132SS_RD_SAE_Z(x, x1, k, x2) } - -// VFMSUB132SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132SS.RN_SAE xmm xmm k xmm -// VFMSUB132SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SS.RN_SAE instruction to the active function. -func (c *Context) VFMSUB132SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SS_RN_SAE(ops...)) -} - -// VFMSUB132SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132SS.RN_SAE xmm xmm k xmm -// VFMSUB132SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132SS_RN_SAE(ops ...operand.Op) { ctx.VFMSUB132SS_RN_SAE(ops...) } - -// VFMSUB132SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB132SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB132SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB132SS_RN_SAE_Z(x, x1, k, x2) } - -// VFMSUB132SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132SS.RU_SAE xmm xmm k xmm -// VFMSUB132SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SS.RU_SAE instruction to the active function. -func (c *Context) VFMSUB132SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SS_RU_SAE(ops...)) -} - -// VFMSUB132SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132SS.RU_SAE xmm xmm k xmm -// VFMSUB132SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132SS_RU_SAE(ops ...operand.Op) { ctx.VFMSUB132SS_RU_SAE(ops...) } - -// VFMSUB132SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB132SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB132SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB132SS_RU_SAE_Z(x, x1, k, x2) } - -// VFMSUB132SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132SS.RZ_SAE xmm xmm k xmm -// VFMSUB132SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SS.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB132SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB132SS_RZ_SAE(ops...)) -} - -// VFMSUB132SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132SS.RZ_SAE xmm xmm k xmm -// VFMSUB132SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB132SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB132SS_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB132SS_RZ_SAE(ops...) } - -// VFMSUB132SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB132SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB132SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB132SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFMSUB132SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.Z m32 xmm k xmm -// VFMSUB132SS.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.Z instruction to the active function. -func (c *Context) VFMSUB132SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMSUB132SS_Z(mx, x, k, x1)) -} - -// VFMSUB132SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.Z m32 xmm k xmm -// VFMSUB132SS.Z xmm xmm k xmm -// -// Construct and append a VFMSUB132SS.Z instruction to the active function. -// Operates on the global context. -func VFMSUB132SS_Z(mx, x, k, x1 operand.Op) { ctx.VFMSUB132SS_Z(mx, x, k, x1) } - -// VFMSUB213PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213PD m128 xmm xmm -// VFMSUB213PD m256 ymm ymm -// VFMSUB213PD xmm xmm xmm -// VFMSUB213PD ymm ymm ymm -// VFMSUB213PD m128 xmm k xmm -// VFMSUB213PD m256 ymm k ymm -// VFMSUB213PD xmm xmm k xmm -// VFMSUB213PD ymm ymm k ymm -// VFMSUB213PD m512 zmm k zmm -// VFMSUB213PD m512 zmm zmm -// VFMSUB213PD zmm zmm k zmm -// VFMSUB213PD zmm zmm zmm -// -// Construct and append a VFMSUB213PD instruction to the active function. -func (c *Context) VFMSUB213PD(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PD(ops...)) -} - -// VFMSUB213PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213PD m128 xmm xmm -// VFMSUB213PD m256 ymm ymm -// VFMSUB213PD xmm xmm xmm -// VFMSUB213PD ymm ymm ymm -// VFMSUB213PD m128 xmm k xmm -// VFMSUB213PD m256 ymm k ymm -// VFMSUB213PD xmm xmm k xmm -// VFMSUB213PD ymm ymm k ymm -// VFMSUB213PD m512 zmm k zmm -// VFMSUB213PD m512 zmm zmm -// VFMSUB213PD zmm zmm k zmm -// VFMSUB213PD zmm zmm zmm -// -// Construct and append a VFMSUB213PD instruction to the active function. -// Operates on the global context. -func VFMSUB213PD(ops ...operand.Op) { ctx.VFMSUB213PD(ops...) } - -// VFMSUB213PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB213PD.BCST m64 xmm k xmm -// VFMSUB213PD.BCST m64 xmm xmm -// VFMSUB213PD.BCST m64 ymm k ymm -// VFMSUB213PD.BCST m64 ymm ymm -// VFMSUB213PD.BCST m64 zmm k zmm -// VFMSUB213PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUB213PD.BCST instruction to the active function. -func (c *Context) VFMSUB213PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PD_BCST(ops...)) -} - -// VFMSUB213PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB213PD.BCST m64 xmm k xmm -// VFMSUB213PD.BCST m64 xmm xmm -// VFMSUB213PD.BCST m64 ymm k ymm -// VFMSUB213PD.BCST m64 ymm ymm -// VFMSUB213PD.BCST m64 zmm k zmm -// VFMSUB213PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUB213PD.BCST instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_BCST(ops ...operand.Op) { ctx.VFMSUB213PD_BCST(ops...) } - -// VFMSUB213PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.BCST.Z m64 xmm k xmm -// VFMSUB213PD.BCST.Z m64 ymm k ymm -// VFMSUB213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUB213PD.BCST.Z instruction to the active function. -func (c *Context) VFMSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB213PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUB213PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.BCST.Z m64 xmm k xmm -// VFMSUB213PD.BCST.Z m64 ymm k ymm -// VFMSUB213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUB213PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUB213PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUB213PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213PD.RD_SAE zmm zmm k zmm -// VFMSUB213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PD.RD_SAE instruction to the active function. -func (c *Context) VFMSUB213PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PD_RD_SAE(ops...)) -} - -// VFMSUB213PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213PD.RD_SAE zmm zmm k zmm -// VFMSUB213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_RD_SAE(ops ...operand.Op) { ctx.VFMSUB213PD_RD_SAE(ops...) } - -// VFMSUB213PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB213PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB213PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB213PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUB213PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213PD.RN_SAE zmm zmm k zmm -// VFMSUB213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PD.RN_SAE instruction to the active function. -func (c *Context) VFMSUB213PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PD_RN_SAE(ops...)) -} - -// VFMSUB213PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213PD.RN_SAE zmm zmm k zmm -// VFMSUB213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_RN_SAE(ops ...operand.Op) { ctx.VFMSUB213PD_RN_SAE(ops...) } - -// VFMSUB213PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB213PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB213PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB213PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUB213PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213PD.RU_SAE zmm zmm k zmm -// VFMSUB213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PD.RU_SAE instruction to the active function. -func (c *Context) VFMSUB213PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PD_RU_SAE(ops...)) -} - -// VFMSUB213PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213PD.RU_SAE zmm zmm k zmm -// VFMSUB213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_RU_SAE(ops ...operand.Op) { ctx.VFMSUB213PD_RU_SAE(ops...) } - -// VFMSUB213PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB213PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB213PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB213PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUB213PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213PD.RZ_SAE zmm zmm k zmm -// VFMSUB213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PD.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB213PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PD_RZ_SAE(ops...)) -} - -// VFMSUB213PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213PD.RZ_SAE zmm zmm k zmm -// VFMSUB213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB213PD_RZ_SAE(ops...) } - -// VFMSUB213PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB213PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB213PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB213PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUB213PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.Z m128 xmm k xmm -// VFMSUB213PD.Z m256 ymm k ymm -// VFMSUB213PD.Z xmm xmm k xmm -// VFMSUB213PD.Z ymm ymm k ymm -// VFMSUB213PD.Z m512 zmm k zmm -// VFMSUB213PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.Z instruction to the active function. -func (c *Context) VFMSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB213PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUB213PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.Z m128 xmm k xmm -// VFMSUB213PD.Z m256 ymm k ymm -// VFMSUB213PD.Z xmm xmm k xmm -// VFMSUB213PD.Z ymm ymm k ymm -// VFMSUB213PD.Z m512 zmm k zmm -// VFMSUB213PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PD.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUB213PD_Z(mxyz, xyz, k, xyz1) } - -// VFMSUB213PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213PS m128 xmm xmm -// VFMSUB213PS m256 ymm ymm -// VFMSUB213PS xmm xmm xmm -// VFMSUB213PS ymm ymm ymm -// VFMSUB213PS m128 xmm k xmm -// VFMSUB213PS m256 ymm k ymm -// VFMSUB213PS xmm xmm k xmm -// VFMSUB213PS ymm ymm k ymm -// VFMSUB213PS m512 zmm k zmm -// VFMSUB213PS m512 zmm zmm -// VFMSUB213PS zmm zmm k zmm -// VFMSUB213PS zmm zmm zmm -// -// Construct and append a VFMSUB213PS instruction to the active function. -func (c *Context) VFMSUB213PS(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PS(ops...)) -} - -// VFMSUB213PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213PS m128 xmm xmm -// VFMSUB213PS m256 ymm ymm -// VFMSUB213PS xmm xmm xmm -// VFMSUB213PS ymm ymm ymm -// VFMSUB213PS m128 xmm k xmm -// VFMSUB213PS m256 ymm k ymm -// VFMSUB213PS xmm xmm k xmm -// VFMSUB213PS ymm ymm k ymm -// VFMSUB213PS m512 zmm k zmm -// VFMSUB213PS m512 zmm zmm -// VFMSUB213PS zmm zmm k zmm -// VFMSUB213PS zmm zmm zmm -// -// Construct and append a VFMSUB213PS instruction to the active function. -// Operates on the global context. -func VFMSUB213PS(ops ...operand.Op) { ctx.VFMSUB213PS(ops...) } - -// VFMSUB213PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB213PS.BCST m32 xmm k xmm -// VFMSUB213PS.BCST m32 xmm xmm -// VFMSUB213PS.BCST m32 ymm k ymm -// VFMSUB213PS.BCST m32 ymm ymm -// VFMSUB213PS.BCST m32 zmm k zmm -// VFMSUB213PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUB213PS.BCST instruction to the active function. -func (c *Context) VFMSUB213PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PS_BCST(ops...)) -} - -// VFMSUB213PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB213PS.BCST m32 xmm k xmm -// VFMSUB213PS.BCST m32 xmm xmm -// VFMSUB213PS.BCST m32 ymm k ymm -// VFMSUB213PS.BCST m32 ymm ymm -// VFMSUB213PS.BCST m32 zmm k zmm -// VFMSUB213PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUB213PS.BCST instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_BCST(ops ...operand.Op) { ctx.VFMSUB213PS_BCST(ops...) } - -// VFMSUB213PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.BCST.Z m32 xmm k xmm -// VFMSUB213PS.BCST.Z m32 ymm k ymm -// VFMSUB213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUB213PS.BCST.Z instruction to the active function. -func (c *Context) VFMSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB213PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUB213PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.BCST.Z m32 xmm k xmm -// VFMSUB213PS.BCST.Z m32 ymm k ymm -// VFMSUB213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUB213PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUB213PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUB213PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213PS.RD_SAE zmm zmm k zmm -// VFMSUB213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PS.RD_SAE instruction to the active function. -func (c *Context) VFMSUB213PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PS_RD_SAE(ops...)) -} - -// VFMSUB213PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213PS.RD_SAE zmm zmm k zmm -// VFMSUB213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_RD_SAE(ops ...operand.Op) { ctx.VFMSUB213PS_RD_SAE(ops...) } - -// VFMSUB213PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB213PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB213PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB213PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUB213PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213PS.RN_SAE zmm zmm k zmm -// VFMSUB213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PS.RN_SAE instruction to the active function. -func (c *Context) VFMSUB213PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PS_RN_SAE(ops...)) -} - -// VFMSUB213PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213PS.RN_SAE zmm zmm k zmm -// VFMSUB213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_RN_SAE(ops ...operand.Op) { ctx.VFMSUB213PS_RN_SAE(ops...) } - -// VFMSUB213PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB213PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB213PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB213PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUB213PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213PS.RU_SAE zmm zmm k zmm -// VFMSUB213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PS.RU_SAE instruction to the active function. -func (c *Context) VFMSUB213PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PS_RU_SAE(ops...)) -} - -// VFMSUB213PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213PS.RU_SAE zmm zmm k zmm -// VFMSUB213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_RU_SAE(ops ...operand.Op) { ctx.VFMSUB213PS_RU_SAE(ops...) } - -// VFMSUB213PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB213PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB213PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB213PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUB213PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213PS.RZ_SAE zmm zmm k zmm -// VFMSUB213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PS.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB213PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213PS_RZ_SAE(ops...)) -} - -// VFMSUB213PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213PS.RZ_SAE zmm zmm k zmm -// VFMSUB213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB213PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB213PS_RZ_SAE(ops...) } - -// VFMSUB213PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB213PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB213PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB213PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUB213PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.Z m128 xmm k xmm -// VFMSUB213PS.Z m256 ymm k ymm -// VFMSUB213PS.Z xmm xmm k xmm -// VFMSUB213PS.Z ymm ymm k ymm -// VFMSUB213PS.Z m512 zmm k zmm -// VFMSUB213PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.Z instruction to the active function. -func (c *Context) VFMSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB213PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUB213PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.Z m128 xmm k xmm -// VFMSUB213PS.Z m256 ymm k ymm -// VFMSUB213PS.Z xmm xmm k xmm -// VFMSUB213PS.Z ymm ymm k ymm -// VFMSUB213PS.Z m512 zmm k zmm -// VFMSUB213PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUB213PS.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUB213PS_Z(mxyz, xyz, k, xyz1) } - -// VFMSUB213SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213SD m64 xmm xmm -// VFMSUB213SD xmm xmm xmm -// VFMSUB213SD m64 xmm k xmm -// VFMSUB213SD xmm xmm k xmm -// -// Construct and append a VFMSUB213SD instruction to the active function. -func (c *Context) VFMSUB213SD(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SD(ops...)) -} - -// VFMSUB213SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213SD m64 xmm xmm -// VFMSUB213SD xmm xmm xmm -// VFMSUB213SD m64 xmm k xmm -// VFMSUB213SD xmm xmm k xmm -// -// Construct and append a VFMSUB213SD instruction to the active function. -// Operates on the global context. -func VFMSUB213SD(ops ...operand.Op) { ctx.VFMSUB213SD(ops...) } - -// VFMSUB213SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213SD.RD_SAE xmm xmm k xmm -// VFMSUB213SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SD.RD_SAE instruction to the active function. -func (c *Context) VFMSUB213SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SD_RD_SAE(ops...)) -} - -// VFMSUB213SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213SD.RD_SAE xmm xmm k xmm -// VFMSUB213SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213SD_RD_SAE(ops ...operand.Op) { ctx.VFMSUB213SD_RD_SAE(ops...) } - -// VFMSUB213SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB213SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB213SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB213SD_RD_SAE_Z(x, x1, k, x2) } - -// VFMSUB213SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213SD.RN_SAE xmm xmm k xmm -// VFMSUB213SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SD.RN_SAE instruction to the active function. -func (c *Context) VFMSUB213SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SD_RN_SAE(ops...)) -} - -// VFMSUB213SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213SD.RN_SAE xmm xmm k xmm -// VFMSUB213SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213SD_RN_SAE(ops ...operand.Op) { ctx.VFMSUB213SD_RN_SAE(ops...) } - -// VFMSUB213SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB213SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB213SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB213SD_RN_SAE_Z(x, x1, k, x2) } - -// VFMSUB213SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213SD.RU_SAE xmm xmm k xmm -// VFMSUB213SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SD.RU_SAE instruction to the active function. -func (c *Context) VFMSUB213SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SD_RU_SAE(ops...)) -} - -// VFMSUB213SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213SD.RU_SAE xmm xmm k xmm -// VFMSUB213SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213SD_RU_SAE(ops ...operand.Op) { ctx.VFMSUB213SD_RU_SAE(ops...) } - -// VFMSUB213SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB213SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB213SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB213SD_RU_SAE_Z(x, x1, k, x2) } - -// VFMSUB213SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213SD.RZ_SAE xmm xmm k xmm -// VFMSUB213SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SD.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB213SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SD_RZ_SAE(ops...)) -} - -// VFMSUB213SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213SD.RZ_SAE xmm xmm k xmm -// VFMSUB213SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213SD_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB213SD_RZ_SAE(ops...) } - -// VFMSUB213SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB213SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB213SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB213SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFMSUB213SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.Z m64 xmm k xmm -// VFMSUB213SD.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.Z instruction to the active function. -func (c *Context) VFMSUB213SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMSUB213SD_Z(mx, x, k, x1)) -} - -// VFMSUB213SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.Z m64 xmm k xmm -// VFMSUB213SD.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SD.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SD_Z(mx, x, k, x1 operand.Op) { ctx.VFMSUB213SD_Z(mx, x, k, x1) } - -// VFMSUB213SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213SS m32 xmm xmm -// VFMSUB213SS xmm xmm xmm -// VFMSUB213SS m32 xmm k xmm -// VFMSUB213SS xmm xmm k xmm -// -// Construct and append a VFMSUB213SS instruction to the active function. -func (c *Context) VFMSUB213SS(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SS(ops...)) -} - -// VFMSUB213SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213SS m32 xmm xmm -// VFMSUB213SS xmm xmm xmm -// VFMSUB213SS m32 xmm k xmm -// VFMSUB213SS xmm xmm k xmm -// -// Construct and append a VFMSUB213SS instruction to the active function. -// Operates on the global context. -func VFMSUB213SS(ops ...operand.Op) { ctx.VFMSUB213SS(ops...) } - -// VFMSUB213SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213SS.RD_SAE xmm xmm k xmm -// VFMSUB213SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SS.RD_SAE instruction to the active function. -func (c *Context) VFMSUB213SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SS_RD_SAE(ops...)) -} - -// VFMSUB213SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213SS.RD_SAE xmm xmm k xmm -// VFMSUB213SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213SS_RD_SAE(ops ...operand.Op) { ctx.VFMSUB213SS_RD_SAE(ops...) } - -// VFMSUB213SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB213SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB213SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB213SS_RD_SAE_Z(x, x1, k, x2) } - -// VFMSUB213SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213SS.RN_SAE xmm xmm k xmm -// VFMSUB213SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SS.RN_SAE instruction to the active function. -func (c *Context) VFMSUB213SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SS_RN_SAE(ops...)) -} - -// VFMSUB213SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213SS.RN_SAE xmm xmm k xmm -// VFMSUB213SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213SS_RN_SAE(ops ...operand.Op) { ctx.VFMSUB213SS_RN_SAE(ops...) } - -// VFMSUB213SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB213SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB213SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB213SS_RN_SAE_Z(x, x1, k, x2) } - -// VFMSUB213SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213SS.RU_SAE xmm xmm k xmm -// VFMSUB213SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SS.RU_SAE instruction to the active function. -func (c *Context) VFMSUB213SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SS_RU_SAE(ops...)) -} - -// VFMSUB213SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213SS.RU_SAE xmm xmm k xmm -// VFMSUB213SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213SS_RU_SAE(ops ...operand.Op) { ctx.VFMSUB213SS_RU_SAE(ops...) } - -// VFMSUB213SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB213SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB213SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB213SS_RU_SAE_Z(x, x1, k, x2) } - -// VFMSUB213SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213SS.RZ_SAE xmm xmm k xmm -// VFMSUB213SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SS.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB213SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB213SS_RZ_SAE(ops...)) -} - -// VFMSUB213SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213SS.RZ_SAE xmm xmm k xmm -// VFMSUB213SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB213SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB213SS_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB213SS_RZ_SAE(ops...) } - -// VFMSUB213SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB213SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB213SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB213SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFMSUB213SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.Z m32 xmm k xmm -// VFMSUB213SS.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.Z instruction to the active function. -func (c *Context) VFMSUB213SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMSUB213SS_Z(mx, x, k, x1)) -} - -// VFMSUB213SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.Z m32 xmm k xmm -// VFMSUB213SS.Z xmm xmm k xmm -// -// Construct and append a VFMSUB213SS.Z instruction to the active function. -// Operates on the global context. -func VFMSUB213SS_Z(mx, x, k, x1 operand.Op) { ctx.VFMSUB213SS_Z(mx, x, k, x1) } - -// VFMSUB231PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231PD m128 xmm xmm -// VFMSUB231PD m256 ymm ymm -// VFMSUB231PD xmm xmm xmm -// VFMSUB231PD ymm ymm ymm -// VFMSUB231PD m128 xmm k xmm -// VFMSUB231PD m256 ymm k ymm -// VFMSUB231PD xmm xmm k xmm -// VFMSUB231PD ymm ymm k ymm -// VFMSUB231PD m512 zmm k zmm -// VFMSUB231PD m512 zmm zmm -// VFMSUB231PD zmm zmm k zmm -// VFMSUB231PD zmm zmm zmm -// -// Construct and append a VFMSUB231PD instruction to the active function. -func (c *Context) VFMSUB231PD(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PD(ops...)) -} - -// VFMSUB231PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231PD m128 xmm xmm -// VFMSUB231PD m256 ymm ymm -// VFMSUB231PD xmm xmm xmm -// VFMSUB231PD ymm ymm ymm -// VFMSUB231PD m128 xmm k xmm -// VFMSUB231PD m256 ymm k ymm -// VFMSUB231PD xmm xmm k xmm -// VFMSUB231PD ymm ymm k ymm -// VFMSUB231PD m512 zmm k zmm -// VFMSUB231PD m512 zmm zmm -// VFMSUB231PD zmm zmm k zmm -// VFMSUB231PD zmm zmm zmm -// -// Construct and append a VFMSUB231PD instruction to the active function. -// Operates on the global context. -func VFMSUB231PD(ops ...operand.Op) { ctx.VFMSUB231PD(ops...) } - -// VFMSUB231PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB231PD.BCST m64 xmm k xmm -// VFMSUB231PD.BCST m64 xmm xmm -// VFMSUB231PD.BCST m64 ymm k ymm -// VFMSUB231PD.BCST m64 ymm ymm -// VFMSUB231PD.BCST m64 zmm k zmm -// VFMSUB231PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUB231PD.BCST instruction to the active function. -func (c *Context) VFMSUB231PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PD_BCST(ops...)) -} - -// VFMSUB231PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB231PD.BCST m64 xmm k xmm -// VFMSUB231PD.BCST m64 xmm xmm -// VFMSUB231PD.BCST m64 ymm k ymm -// VFMSUB231PD.BCST m64 ymm ymm -// VFMSUB231PD.BCST m64 zmm k zmm -// VFMSUB231PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUB231PD.BCST instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_BCST(ops ...operand.Op) { ctx.VFMSUB231PD_BCST(ops...) } - -// VFMSUB231PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.BCST.Z m64 xmm k xmm -// VFMSUB231PD.BCST.Z m64 ymm k ymm -// VFMSUB231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUB231PD.BCST.Z instruction to the active function. -func (c *Context) VFMSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB231PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUB231PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.BCST.Z m64 xmm k xmm -// VFMSUB231PD.BCST.Z m64 ymm k ymm -// VFMSUB231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUB231PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUB231PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUB231PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231PD.RD_SAE zmm zmm k zmm -// VFMSUB231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PD.RD_SAE instruction to the active function. -func (c *Context) VFMSUB231PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PD_RD_SAE(ops...)) -} - -// VFMSUB231PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231PD.RD_SAE zmm zmm k zmm -// VFMSUB231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_RD_SAE(ops ...operand.Op) { ctx.VFMSUB231PD_RD_SAE(ops...) } - -// VFMSUB231PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB231PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB231PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB231PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUB231PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231PD.RN_SAE zmm zmm k zmm -// VFMSUB231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PD.RN_SAE instruction to the active function. -func (c *Context) VFMSUB231PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PD_RN_SAE(ops...)) -} - -// VFMSUB231PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231PD.RN_SAE zmm zmm k zmm -// VFMSUB231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_RN_SAE(ops ...operand.Op) { ctx.VFMSUB231PD_RN_SAE(ops...) } - -// VFMSUB231PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB231PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB231PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB231PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUB231PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231PD.RU_SAE zmm zmm k zmm -// VFMSUB231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PD.RU_SAE instruction to the active function. -func (c *Context) VFMSUB231PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PD_RU_SAE(ops...)) -} - -// VFMSUB231PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231PD.RU_SAE zmm zmm k zmm -// VFMSUB231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_RU_SAE(ops ...operand.Op) { ctx.VFMSUB231PD_RU_SAE(ops...) } - -// VFMSUB231PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB231PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB231PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB231PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUB231PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231PD.RZ_SAE zmm zmm k zmm -// VFMSUB231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PD.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB231PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PD_RZ_SAE(ops...)) -} - -// VFMSUB231PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231PD.RZ_SAE zmm zmm k zmm -// VFMSUB231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB231PD_RZ_SAE(ops...) } - -// VFMSUB231PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB231PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB231PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB231PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUB231PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.Z m128 xmm k xmm -// VFMSUB231PD.Z m256 ymm k ymm -// VFMSUB231PD.Z xmm xmm k xmm -// VFMSUB231PD.Z ymm ymm k ymm -// VFMSUB231PD.Z m512 zmm k zmm -// VFMSUB231PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.Z instruction to the active function. -func (c *Context) VFMSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB231PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUB231PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.Z m128 xmm k xmm -// VFMSUB231PD.Z m256 ymm k ymm -// VFMSUB231PD.Z xmm xmm k xmm -// VFMSUB231PD.Z ymm ymm k ymm -// VFMSUB231PD.Z m512 zmm k zmm -// VFMSUB231PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PD.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUB231PD_Z(mxyz, xyz, k, xyz1) } - -// VFMSUB231PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231PS m128 xmm xmm -// VFMSUB231PS m256 ymm ymm -// VFMSUB231PS xmm xmm xmm -// VFMSUB231PS ymm ymm ymm -// VFMSUB231PS m128 xmm k xmm -// VFMSUB231PS m256 ymm k ymm -// VFMSUB231PS xmm xmm k xmm -// VFMSUB231PS ymm ymm k ymm -// VFMSUB231PS m512 zmm k zmm -// VFMSUB231PS m512 zmm zmm -// VFMSUB231PS zmm zmm k zmm -// VFMSUB231PS zmm zmm zmm -// -// Construct and append a VFMSUB231PS instruction to the active function. -func (c *Context) VFMSUB231PS(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PS(ops...)) -} - -// VFMSUB231PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231PS m128 xmm xmm -// VFMSUB231PS m256 ymm ymm -// VFMSUB231PS xmm xmm xmm -// VFMSUB231PS ymm ymm ymm -// VFMSUB231PS m128 xmm k xmm -// VFMSUB231PS m256 ymm k ymm -// VFMSUB231PS xmm xmm k xmm -// VFMSUB231PS ymm ymm k ymm -// VFMSUB231PS m512 zmm k zmm -// VFMSUB231PS m512 zmm zmm -// VFMSUB231PS zmm zmm k zmm -// VFMSUB231PS zmm zmm zmm -// -// Construct and append a VFMSUB231PS instruction to the active function. -// Operates on the global context. -func VFMSUB231PS(ops ...operand.Op) { ctx.VFMSUB231PS(ops...) } - -// VFMSUB231PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB231PS.BCST m32 xmm k xmm -// VFMSUB231PS.BCST m32 xmm xmm -// VFMSUB231PS.BCST m32 ymm k ymm -// VFMSUB231PS.BCST m32 ymm ymm -// VFMSUB231PS.BCST m32 zmm k zmm -// VFMSUB231PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUB231PS.BCST instruction to the active function. -func (c *Context) VFMSUB231PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PS_BCST(ops...)) -} - -// VFMSUB231PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB231PS.BCST m32 xmm k xmm -// VFMSUB231PS.BCST m32 xmm xmm -// VFMSUB231PS.BCST m32 ymm k ymm -// VFMSUB231PS.BCST m32 ymm ymm -// VFMSUB231PS.BCST m32 zmm k zmm -// VFMSUB231PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUB231PS.BCST instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_BCST(ops ...operand.Op) { ctx.VFMSUB231PS_BCST(ops...) } - -// VFMSUB231PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.BCST.Z m32 xmm k xmm -// VFMSUB231PS.BCST.Z m32 ymm k ymm -// VFMSUB231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUB231PS.BCST.Z instruction to the active function. -func (c *Context) VFMSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB231PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUB231PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.BCST.Z m32 xmm k xmm -// VFMSUB231PS.BCST.Z m32 ymm k ymm -// VFMSUB231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUB231PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUB231PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUB231PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231PS.RD_SAE zmm zmm k zmm -// VFMSUB231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PS.RD_SAE instruction to the active function. -func (c *Context) VFMSUB231PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PS_RD_SAE(ops...)) -} - -// VFMSUB231PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231PS.RD_SAE zmm zmm k zmm -// VFMSUB231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_RD_SAE(ops ...operand.Op) { ctx.VFMSUB231PS_RD_SAE(ops...) } - -// VFMSUB231PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB231PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB231PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB231PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUB231PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231PS.RN_SAE zmm zmm k zmm -// VFMSUB231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PS.RN_SAE instruction to the active function. -func (c *Context) VFMSUB231PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PS_RN_SAE(ops...)) -} - -// VFMSUB231PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231PS.RN_SAE zmm zmm k zmm -// VFMSUB231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_RN_SAE(ops ...operand.Op) { ctx.VFMSUB231PS_RN_SAE(ops...) } - -// VFMSUB231PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB231PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB231PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB231PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUB231PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231PS.RU_SAE zmm zmm k zmm -// VFMSUB231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PS.RU_SAE instruction to the active function. -func (c *Context) VFMSUB231PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PS_RU_SAE(ops...)) -} - -// VFMSUB231PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231PS.RU_SAE zmm zmm k zmm -// VFMSUB231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_RU_SAE(ops ...operand.Op) { ctx.VFMSUB231PS_RU_SAE(ops...) } - -// VFMSUB231PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB231PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB231PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB231PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUB231PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231PS.RZ_SAE zmm zmm k zmm -// VFMSUB231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PS.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB231PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231PS_RZ_SAE(ops...)) -} - -// VFMSUB231PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231PS.RZ_SAE zmm zmm k zmm -// VFMSUB231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUB231PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB231PS_RZ_SAE(ops...) } - -// VFMSUB231PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUB231PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUB231PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUB231PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUB231PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.Z m128 xmm k xmm -// VFMSUB231PS.Z m256 ymm k ymm -// VFMSUB231PS.Z xmm xmm k xmm -// VFMSUB231PS.Z ymm ymm k ymm -// VFMSUB231PS.Z m512 zmm k zmm -// VFMSUB231PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.Z instruction to the active function. -func (c *Context) VFMSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUB231PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUB231PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.Z m128 xmm k xmm -// VFMSUB231PS.Z m256 ymm k ymm -// VFMSUB231PS.Z xmm xmm k xmm -// VFMSUB231PS.Z ymm ymm k ymm -// VFMSUB231PS.Z m512 zmm k zmm -// VFMSUB231PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUB231PS.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUB231PS_Z(mxyz, xyz, k, xyz1) } - -// VFMSUB231SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231SD m64 xmm xmm -// VFMSUB231SD xmm xmm xmm -// VFMSUB231SD m64 xmm k xmm -// VFMSUB231SD xmm xmm k xmm -// -// Construct and append a VFMSUB231SD instruction to the active function. -func (c *Context) VFMSUB231SD(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SD(ops...)) -} - -// VFMSUB231SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231SD m64 xmm xmm -// VFMSUB231SD xmm xmm xmm -// VFMSUB231SD m64 xmm k xmm -// VFMSUB231SD xmm xmm k xmm -// -// Construct and append a VFMSUB231SD instruction to the active function. -// Operates on the global context. -func VFMSUB231SD(ops ...operand.Op) { ctx.VFMSUB231SD(ops...) } - -// VFMSUB231SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231SD.RD_SAE xmm xmm k xmm -// VFMSUB231SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SD.RD_SAE instruction to the active function. -func (c *Context) VFMSUB231SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SD_RD_SAE(ops...)) -} - -// VFMSUB231SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231SD.RD_SAE xmm xmm k xmm -// VFMSUB231SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231SD_RD_SAE(ops ...operand.Op) { ctx.VFMSUB231SD_RD_SAE(ops...) } - -// VFMSUB231SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB231SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB231SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB231SD_RD_SAE_Z(x, x1, k, x2) } - -// VFMSUB231SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231SD.RN_SAE xmm xmm k xmm -// VFMSUB231SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SD.RN_SAE instruction to the active function. -func (c *Context) VFMSUB231SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SD_RN_SAE(ops...)) -} - -// VFMSUB231SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231SD.RN_SAE xmm xmm k xmm -// VFMSUB231SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231SD_RN_SAE(ops ...operand.Op) { ctx.VFMSUB231SD_RN_SAE(ops...) } - -// VFMSUB231SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB231SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB231SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB231SD_RN_SAE_Z(x, x1, k, x2) } - -// VFMSUB231SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231SD.RU_SAE xmm xmm k xmm -// VFMSUB231SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SD.RU_SAE instruction to the active function. -func (c *Context) VFMSUB231SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SD_RU_SAE(ops...)) -} - -// VFMSUB231SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231SD.RU_SAE xmm xmm k xmm -// VFMSUB231SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231SD_RU_SAE(ops ...operand.Op) { ctx.VFMSUB231SD_RU_SAE(ops...) } - -// VFMSUB231SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB231SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB231SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB231SD_RU_SAE_Z(x, x1, k, x2) } - -// VFMSUB231SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231SD.RZ_SAE xmm xmm k xmm -// VFMSUB231SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SD.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB231SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SD_RZ_SAE(ops...)) -} - -// VFMSUB231SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231SD.RZ_SAE xmm xmm k xmm -// VFMSUB231SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231SD_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB231SD_RZ_SAE(ops...) } - -// VFMSUB231SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB231SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB231SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB231SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFMSUB231SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.Z m64 xmm k xmm -// VFMSUB231SD.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.Z instruction to the active function. -func (c *Context) VFMSUB231SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMSUB231SD_Z(mx, x, k, x1)) -} - -// VFMSUB231SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.Z m64 xmm k xmm -// VFMSUB231SD.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SD.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SD_Z(mx, x, k, x1 operand.Op) { ctx.VFMSUB231SD_Z(mx, x, k, x1) } - -// VFMSUB231SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231SS m32 xmm xmm -// VFMSUB231SS xmm xmm xmm -// VFMSUB231SS m32 xmm k xmm -// VFMSUB231SS xmm xmm k xmm -// -// Construct and append a VFMSUB231SS instruction to the active function. -func (c *Context) VFMSUB231SS(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SS(ops...)) -} - -// VFMSUB231SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231SS m32 xmm xmm -// VFMSUB231SS xmm xmm xmm -// VFMSUB231SS m32 xmm k xmm -// VFMSUB231SS xmm xmm k xmm -// -// Construct and append a VFMSUB231SS instruction to the active function. -// Operates on the global context. -func VFMSUB231SS(ops ...operand.Op) { ctx.VFMSUB231SS(ops...) } - -// VFMSUB231SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231SS.RD_SAE xmm xmm k xmm -// VFMSUB231SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SS.RD_SAE instruction to the active function. -func (c *Context) VFMSUB231SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SS_RD_SAE(ops...)) -} - -// VFMSUB231SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231SS.RD_SAE xmm xmm k xmm -// VFMSUB231SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231SS_RD_SAE(ops ...operand.Op) { ctx.VFMSUB231SS_RD_SAE(ops...) } - -// VFMSUB231SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB231SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB231SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB231SS_RD_SAE_Z(x, x1, k, x2) } - -// VFMSUB231SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231SS.RN_SAE xmm xmm k xmm -// VFMSUB231SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SS.RN_SAE instruction to the active function. -func (c *Context) VFMSUB231SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SS_RN_SAE(ops...)) -} - -// VFMSUB231SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231SS.RN_SAE xmm xmm k xmm -// VFMSUB231SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231SS_RN_SAE(ops ...operand.Op) { ctx.VFMSUB231SS_RN_SAE(ops...) } - -// VFMSUB231SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB231SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB231SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB231SS_RN_SAE_Z(x, x1, k, x2) } - -// VFMSUB231SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231SS.RU_SAE xmm xmm k xmm -// VFMSUB231SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SS.RU_SAE instruction to the active function. -func (c *Context) VFMSUB231SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SS_RU_SAE(ops...)) -} - -// VFMSUB231SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231SS.RU_SAE xmm xmm k xmm -// VFMSUB231SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231SS_RU_SAE(ops ...operand.Op) { ctx.VFMSUB231SS_RU_SAE(ops...) } - -// VFMSUB231SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB231SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB231SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB231SS_RU_SAE_Z(x, x1, k, x2) } - -// VFMSUB231SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231SS.RZ_SAE xmm xmm k xmm -// VFMSUB231SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SS.RZ_SAE instruction to the active function. -func (c *Context) VFMSUB231SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUB231SS_RZ_SAE(ops...)) -} - -// VFMSUB231SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231SS.RZ_SAE xmm xmm k xmm -// VFMSUB231SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFMSUB231SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUB231SS_RZ_SAE(ops ...operand.Op) { ctx.VFMSUB231SS_RZ_SAE(ops...) } - -// VFMSUB231SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUB231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFMSUB231SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFMSUB231SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFMSUB231SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFMSUB231SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.Z m32 xmm k xmm -// VFMSUB231SS.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.Z instruction to the active function. -func (c *Context) VFMSUB231SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFMSUB231SS_Z(mx, x, k, x1)) -} - -// VFMSUB231SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.Z m32 xmm k xmm -// VFMSUB231SS.Z xmm xmm k xmm -// -// Construct and append a VFMSUB231SS.Z instruction to the active function. -// Operates on the global context. -func VFMSUB231SS_Z(mx, x, k, x1 operand.Op) { ctx.VFMSUB231SS_Z(mx, x, k, x1) } - -// VFMSUBADD132PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD132PD m128 xmm xmm -// VFMSUBADD132PD m256 ymm ymm -// VFMSUBADD132PD xmm xmm xmm -// VFMSUBADD132PD ymm ymm ymm -// VFMSUBADD132PD m128 xmm k xmm -// VFMSUBADD132PD m256 ymm k ymm -// VFMSUBADD132PD xmm xmm k xmm -// VFMSUBADD132PD ymm ymm k ymm -// VFMSUBADD132PD m512 zmm k zmm -// VFMSUBADD132PD m512 zmm zmm -// VFMSUBADD132PD zmm zmm k zmm -// VFMSUBADD132PD zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD instruction to the active function. -func (c *Context) VFMSUBADD132PD(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD(ops...)) -} - -// VFMSUBADD132PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD132PD m128 xmm xmm -// VFMSUBADD132PD m256 ymm ymm -// VFMSUBADD132PD xmm xmm xmm -// VFMSUBADD132PD ymm ymm ymm -// VFMSUBADD132PD m128 xmm k xmm -// VFMSUBADD132PD m256 ymm k ymm -// VFMSUBADD132PD xmm xmm k xmm -// VFMSUBADD132PD ymm ymm k ymm -// VFMSUBADD132PD m512 zmm k zmm -// VFMSUBADD132PD m512 zmm zmm -// VFMSUBADD132PD zmm zmm k zmm -// VFMSUBADD132PD zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD(ops ...operand.Op) { ctx.VFMSUBADD132PD(ops...) } - -// VFMSUBADD132PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD132PD.BCST m64 xmm k xmm -// VFMSUBADD132PD.BCST m64 xmm xmm -// VFMSUBADD132PD.BCST m64 ymm k ymm -// VFMSUBADD132PD.BCST m64 ymm ymm -// VFMSUBADD132PD.BCST m64 zmm k zmm -// VFMSUBADD132PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUBADD132PD.BCST instruction to the active function. -func (c *Context) VFMSUBADD132PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_BCST(ops...)) -} - -// VFMSUBADD132PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD132PD.BCST m64 xmm k xmm -// VFMSUBADD132PD.BCST m64 xmm xmm -// VFMSUBADD132PD.BCST m64 ymm k ymm -// VFMSUBADD132PD.BCST m64 ymm ymm -// VFMSUBADD132PD.BCST m64 zmm k zmm -// VFMSUBADD132PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUBADD132PD.BCST instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_BCST(ops ...operand.Op) { ctx.VFMSUBADD132PD_BCST(ops...) } - -// VFMSUBADD132PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.BCST.Z m64 xmm k xmm -// VFMSUBADD132PD.BCST.Z m64 ymm k ymm -// VFMSUBADD132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUBADD132PD.BCST.Z instruction to the active function. -func (c *Context) VFMSUBADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUBADD132PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.BCST.Z m64 xmm k xmm -// VFMSUBADD132PD.BCST.Z m64 ymm k ymm -// VFMSUBADD132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUBADD132PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD132PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUBADD132PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD132PD.RD_SAE zmm zmm k zmm -// VFMSUBADD132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD.RD_SAE instruction to the active function. -func (c *Context) VFMSUBADD132PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_RD_SAE(ops...)) -} - -// VFMSUBADD132PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD132PD.RD_SAE zmm zmm k zmm -// VFMSUBADD132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_RD_SAE(ops ...operand.Op) { ctx.VFMSUBADD132PD_RD_SAE(ops...) } - -// VFMSUBADD132PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD132PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD132PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD132PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD132PD.RN_SAE zmm zmm k zmm -// VFMSUBADD132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD.RN_SAE instruction to the active function. -func (c *Context) VFMSUBADD132PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_RN_SAE(ops...)) -} - -// VFMSUBADD132PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD132PD.RN_SAE zmm zmm k zmm -// VFMSUBADD132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_RN_SAE(ops ...operand.Op) { ctx.VFMSUBADD132PD_RN_SAE(ops...) } - -// VFMSUBADD132PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD132PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD132PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD132PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD132PD.RU_SAE zmm zmm k zmm -// VFMSUBADD132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD.RU_SAE instruction to the active function. -func (c *Context) VFMSUBADD132PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_RU_SAE(ops...)) -} - -// VFMSUBADD132PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD132PD.RU_SAE zmm zmm k zmm -// VFMSUBADD132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_RU_SAE(ops ...operand.Op) { ctx.VFMSUBADD132PD_RU_SAE(ops...) } - -// VFMSUBADD132PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD132PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD132PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD132PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD132PD.RZ_SAE zmm zmm k zmm -// VFMSUBADD132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD.RZ_SAE instruction to the active function. -func (c *Context) VFMSUBADD132PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_RZ_SAE(ops...)) -} - -// VFMSUBADD132PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD132PD.RZ_SAE zmm zmm k zmm -// VFMSUBADD132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_RZ_SAE(ops ...operand.Op) { ctx.VFMSUBADD132PD_RZ_SAE(ops...) } - -// VFMSUBADD132PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD132PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD132PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD132PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.Z m128 xmm k xmm -// VFMSUBADD132PD.Z m256 ymm k ymm -// VFMSUBADD132PD.Z xmm xmm k xmm -// VFMSUBADD132PD.Z ymm ymm k ymm -// VFMSUBADD132PD.Z m512 zmm k zmm -// VFMSUBADD132PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.Z instruction to the active function. -func (c *Context) VFMSUBADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUBADD132PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.Z m128 xmm k xmm -// VFMSUBADD132PD.Z m256 ymm k ymm -// VFMSUBADD132PD.Z xmm xmm k xmm -// VFMSUBADD132PD.Z ymm ymm k ymm -// VFMSUBADD132PD.Z m512 zmm k zmm -// VFMSUBADD132PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PD.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD132PD_Z(mxyz, xyz, k, xyz1) } - -// VFMSUBADD132PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD132PS m128 xmm xmm -// VFMSUBADD132PS m256 ymm ymm -// VFMSUBADD132PS xmm xmm xmm -// VFMSUBADD132PS ymm ymm ymm -// VFMSUBADD132PS m128 xmm k xmm -// VFMSUBADD132PS m256 ymm k ymm -// VFMSUBADD132PS xmm xmm k xmm -// VFMSUBADD132PS ymm ymm k ymm -// VFMSUBADD132PS m512 zmm k zmm -// VFMSUBADD132PS m512 zmm zmm -// VFMSUBADD132PS zmm zmm k zmm -// VFMSUBADD132PS zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS instruction to the active function. -func (c *Context) VFMSUBADD132PS(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS(ops...)) -} - -// VFMSUBADD132PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD132PS m128 xmm xmm -// VFMSUBADD132PS m256 ymm ymm -// VFMSUBADD132PS xmm xmm xmm -// VFMSUBADD132PS ymm ymm ymm -// VFMSUBADD132PS m128 xmm k xmm -// VFMSUBADD132PS m256 ymm k ymm -// VFMSUBADD132PS xmm xmm k xmm -// VFMSUBADD132PS ymm ymm k ymm -// VFMSUBADD132PS m512 zmm k zmm -// VFMSUBADD132PS m512 zmm zmm -// VFMSUBADD132PS zmm zmm k zmm -// VFMSUBADD132PS zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS(ops ...operand.Op) { ctx.VFMSUBADD132PS(ops...) } - -// VFMSUBADD132PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD132PS.BCST m32 xmm k xmm -// VFMSUBADD132PS.BCST m32 xmm xmm -// VFMSUBADD132PS.BCST m32 ymm k ymm -// VFMSUBADD132PS.BCST m32 ymm ymm -// VFMSUBADD132PS.BCST m32 zmm k zmm -// VFMSUBADD132PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUBADD132PS.BCST instruction to the active function. -func (c *Context) VFMSUBADD132PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_BCST(ops...)) -} - -// VFMSUBADD132PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD132PS.BCST m32 xmm k xmm -// VFMSUBADD132PS.BCST m32 xmm xmm -// VFMSUBADD132PS.BCST m32 ymm k ymm -// VFMSUBADD132PS.BCST m32 ymm ymm -// VFMSUBADD132PS.BCST m32 zmm k zmm -// VFMSUBADD132PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUBADD132PS.BCST instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_BCST(ops ...operand.Op) { ctx.VFMSUBADD132PS_BCST(ops...) } - -// VFMSUBADD132PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.BCST.Z m32 xmm k xmm -// VFMSUBADD132PS.BCST.Z m32 ymm k ymm -// VFMSUBADD132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUBADD132PS.BCST.Z instruction to the active function. -func (c *Context) VFMSUBADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUBADD132PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.BCST.Z m32 xmm k xmm -// VFMSUBADD132PS.BCST.Z m32 ymm k ymm -// VFMSUBADD132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUBADD132PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD132PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUBADD132PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD132PS.RD_SAE zmm zmm k zmm -// VFMSUBADD132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS.RD_SAE instruction to the active function. -func (c *Context) VFMSUBADD132PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_RD_SAE(ops...)) -} - -// VFMSUBADD132PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD132PS.RD_SAE zmm zmm k zmm -// VFMSUBADD132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_RD_SAE(ops ...operand.Op) { ctx.VFMSUBADD132PS_RD_SAE(ops...) } - -// VFMSUBADD132PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD132PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD132PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD132PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD132PS.RN_SAE zmm zmm k zmm -// VFMSUBADD132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS.RN_SAE instruction to the active function. -func (c *Context) VFMSUBADD132PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_RN_SAE(ops...)) -} - -// VFMSUBADD132PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD132PS.RN_SAE zmm zmm k zmm -// VFMSUBADD132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_RN_SAE(ops ...operand.Op) { ctx.VFMSUBADD132PS_RN_SAE(ops...) } - -// VFMSUBADD132PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD132PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD132PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD132PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD132PS.RU_SAE zmm zmm k zmm -// VFMSUBADD132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS.RU_SAE instruction to the active function. -func (c *Context) VFMSUBADD132PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_RU_SAE(ops...)) -} - -// VFMSUBADD132PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD132PS.RU_SAE zmm zmm k zmm -// VFMSUBADD132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_RU_SAE(ops ...operand.Op) { ctx.VFMSUBADD132PS_RU_SAE(ops...) } - -// VFMSUBADD132PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD132PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD132PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD132PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD132PS.RZ_SAE zmm zmm k zmm -// VFMSUBADD132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS.RZ_SAE instruction to the active function. -func (c *Context) VFMSUBADD132PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_RZ_SAE(ops...)) -} - -// VFMSUBADD132PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD132PS.RZ_SAE zmm zmm k zmm -// VFMSUBADD132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD132PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_RZ_SAE(ops ...operand.Op) { ctx.VFMSUBADD132PS_RZ_SAE(ops...) } - -// VFMSUBADD132PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD132PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD132PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD132PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.Z m128 xmm k xmm -// VFMSUBADD132PS.Z m256 ymm k ymm -// VFMSUBADD132PS.Z xmm xmm k xmm -// VFMSUBADD132PS.Z ymm ymm k ymm -// VFMSUBADD132PS.Z m512 zmm k zmm -// VFMSUBADD132PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.Z instruction to the active function. -func (c *Context) VFMSUBADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD132PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUBADD132PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.Z m128 xmm k xmm -// VFMSUBADD132PS.Z m256 ymm k ymm -// VFMSUBADD132PS.Z xmm xmm k xmm -// VFMSUBADD132PS.Z ymm ymm k ymm -// VFMSUBADD132PS.Z m512 zmm k zmm -// VFMSUBADD132PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD132PS.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD132PS_Z(mxyz, xyz, k, xyz1) } - -// VFMSUBADD213PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD213PD m128 xmm xmm -// VFMSUBADD213PD m256 ymm ymm -// VFMSUBADD213PD xmm xmm xmm -// VFMSUBADD213PD ymm ymm ymm -// VFMSUBADD213PD m128 xmm k xmm -// VFMSUBADD213PD m256 ymm k ymm -// VFMSUBADD213PD xmm xmm k xmm -// VFMSUBADD213PD ymm ymm k ymm -// VFMSUBADD213PD m512 zmm k zmm -// VFMSUBADD213PD m512 zmm zmm -// VFMSUBADD213PD zmm zmm k zmm -// VFMSUBADD213PD zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD instruction to the active function. -func (c *Context) VFMSUBADD213PD(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD(ops...)) -} - -// VFMSUBADD213PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD213PD m128 xmm xmm -// VFMSUBADD213PD m256 ymm ymm -// VFMSUBADD213PD xmm xmm xmm -// VFMSUBADD213PD ymm ymm ymm -// VFMSUBADD213PD m128 xmm k xmm -// VFMSUBADD213PD m256 ymm k ymm -// VFMSUBADD213PD xmm xmm k xmm -// VFMSUBADD213PD ymm ymm k ymm -// VFMSUBADD213PD m512 zmm k zmm -// VFMSUBADD213PD m512 zmm zmm -// VFMSUBADD213PD zmm zmm k zmm -// VFMSUBADD213PD zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD(ops ...operand.Op) { ctx.VFMSUBADD213PD(ops...) } - -// VFMSUBADD213PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD213PD.BCST m64 xmm k xmm -// VFMSUBADD213PD.BCST m64 xmm xmm -// VFMSUBADD213PD.BCST m64 ymm k ymm -// VFMSUBADD213PD.BCST m64 ymm ymm -// VFMSUBADD213PD.BCST m64 zmm k zmm -// VFMSUBADD213PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUBADD213PD.BCST instruction to the active function. -func (c *Context) VFMSUBADD213PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_BCST(ops...)) -} - -// VFMSUBADD213PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD213PD.BCST m64 xmm k xmm -// VFMSUBADD213PD.BCST m64 xmm xmm -// VFMSUBADD213PD.BCST m64 ymm k ymm -// VFMSUBADD213PD.BCST m64 ymm ymm -// VFMSUBADD213PD.BCST m64 zmm k zmm -// VFMSUBADD213PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUBADD213PD.BCST instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_BCST(ops ...operand.Op) { ctx.VFMSUBADD213PD_BCST(ops...) } - -// VFMSUBADD213PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.BCST.Z m64 xmm k xmm -// VFMSUBADD213PD.BCST.Z m64 ymm k ymm -// VFMSUBADD213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUBADD213PD.BCST.Z instruction to the active function. -func (c *Context) VFMSUBADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUBADD213PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.BCST.Z m64 xmm k xmm -// VFMSUBADD213PD.BCST.Z m64 ymm k ymm -// VFMSUBADD213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUBADD213PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD213PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUBADD213PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD213PD.RD_SAE zmm zmm k zmm -// VFMSUBADD213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD.RD_SAE instruction to the active function. -func (c *Context) VFMSUBADD213PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_RD_SAE(ops...)) -} - -// VFMSUBADD213PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD213PD.RD_SAE zmm zmm k zmm -// VFMSUBADD213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_RD_SAE(ops ...operand.Op) { ctx.VFMSUBADD213PD_RD_SAE(ops...) } - -// VFMSUBADD213PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD213PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD213PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD213PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD213PD.RN_SAE zmm zmm k zmm -// VFMSUBADD213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD.RN_SAE instruction to the active function. -func (c *Context) VFMSUBADD213PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_RN_SAE(ops...)) -} - -// VFMSUBADD213PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD213PD.RN_SAE zmm zmm k zmm -// VFMSUBADD213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_RN_SAE(ops ...operand.Op) { ctx.VFMSUBADD213PD_RN_SAE(ops...) } - -// VFMSUBADD213PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD213PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD213PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD213PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD213PD.RU_SAE zmm zmm k zmm -// VFMSUBADD213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD.RU_SAE instruction to the active function. -func (c *Context) VFMSUBADD213PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_RU_SAE(ops...)) -} - -// VFMSUBADD213PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD213PD.RU_SAE zmm zmm k zmm -// VFMSUBADD213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_RU_SAE(ops ...operand.Op) { ctx.VFMSUBADD213PD_RU_SAE(ops...) } - -// VFMSUBADD213PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD213PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD213PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD213PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD213PD.RZ_SAE zmm zmm k zmm -// VFMSUBADD213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD.RZ_SAE instruction to the active function. -func (c *Context) VFMSUBADD213PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_RZ_SAE(ops...)) -} - -// VFMSUBADD213PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD213PD.RZ_SAE zmm zmm k zmm -// VFMSUBADD213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_RZ_SAE(ops ...operand.Op) { ctx.VFMSUBADD213PD_RZ_SAE(ops...) } - -// VFMSUBADD213PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD213PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD213PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD213PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.Z m128 xmm k xmm -// VFMSUBADD213PD.Z m256 ymm k ymm -// VFMSUBADD213PD.Z xmm xmm k xmm -// VFMSUBADD213PD.Z ymm ymm k ymm -// VFMSUBADD213PD.Z m512 zmm k zmm -// VFMSUBADD213PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.Z instruction to the active function. -func (c *Context) VFMSUBADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUBADD213PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.Z m128 xmm k xmm -// VFMSUBADD213PD.Z m256 ymm k ymm -// VFMSUBADD213PD.Z xmm xmm k xmm -// VFMSUBADD213PD.Z ymm ymm k ymm -// VFMSUBADD213PD.Z m512 zmm k zmm -// VFMSUBADD213PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PD.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD213PD_Z(mxyz, xyz, k, xyz1) } - -// VFMSUBADD213PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD213PS m128 xmm xmm -// VFMSUBADD213PS m256 ymm ymm -// VFMSUBADD213PS xmm xmm xmm -// VFMSUBADD213PS ymm ymm ymm -// VFMSUBADD213PS m128 xmm k xmm -// VFMSUBADD213PS m256 ymm k ymm -// VFMSUBADD213PS xmm xmm k xmm -// VFMSUBADD213PS ymm ymm k ymm -// VFMSUBADD213PS m512 zmm k zmm -// VFMSUBADD213PS m512 zmm zmm -// VFMSUBADD213PS zmm zmm k zmm -// VFMSUBADD213PS zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS instruction to the active function. -func (c *Context) VFMSUBADD213PS(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS(ops...)) -} - -// VFMSUBADD213PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD213PS m128 xmm xmm -// VFMSUBADD213PS m256 ymm ymm -// VFMSUBADD213PS xmm xmm xmm -// VFMSUBADD213PS ymm ymm ymm -// VFMSUBADD213PS m128 xmm k xmm -// VFMSUBADD213PS m256 ymm k ymm -// VFMSUBADD213PS xmm xmm k xmm -// VFMSUBADD213PS ymm ymm k ymm -// VFMSUBADD213PS m512 zmm k zmm -// VFMSUBADD213PS m512 zmm zmm -// VFMSUBADD213PS zmm zmm k zmm -// VFMSUBADD213PS zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS(ops ...operand.Op) { ctx.VFMSUBADD213PS(ops...) } - -// VFMSUBADD213PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD213PS.BCST m32 xmm k xmm -// VFMSUBADD213PS.BCST m32 xmm xmm -// VFMSUBADD213PS.BCST m32 ymm k ymm -// VFMSUBADD213PS.BCST m32 ymm ymm -// VFMSUBADD213PS.BCST m32 zmm k zmm -// VFMSUBADD213PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUBADD213PS.BCST instruction to the active function. -func (c *Context) VFMSUBADD213PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_BCST(ops...)) -} - -// VFMSUBADD213PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD213PS.BCST m32 xmm k xmm -// VFMSUBADD213PS.BCST m32 xmm xmm -// VFMSUBADD213PS.BCST m32 ymm k ymm -// VFMSUBADD213PS.BCST m32 ymm ymm -// VFMSUBADD213PS.BCST m32 zmm k zmm -// VFMSUBADD213PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUBADD213PS.BCST instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_BCST(ops ...operand.Op) { ctx.VFMSUBADD213PS_BCST(ops...) } - -// VFMSUBADD213PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.BCST.Z m32 xmm k xmm -// VFMSUBADD213PS.BCST.Z m32 ymm k ymm -// VFMSUBADD213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUBADD213PS.BCST.Z instruction to the active function. -func (c *Context) VFMSUBADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUBADD213PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.BCST.Z m32 xmm k xmm -// VFMSUBADD213PS.BCST.Z m32 ymm k ymm -// VFMSUBADD213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUBADD213PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD213PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUBADD213PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD213PS.RD_SAE zmm zmm k zmm -// VFMSUBADD213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS.RD_SAE instruction to the active function. -func (c *Context) VFMSUBADD213PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_RD_SAE(ops...)) -} - -// VFMSUBADD213PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD213PS.RD_SAE zmm zmm k zmm -// VFMSUBADD213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_RD_SAE(ops ...operand.Op) { ctx.VFMSUBADD213PS_RD_SAE(ops...) } - -// VFMSUBADD213PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD213PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD213PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD213PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD213PS.RN_SAE zmm zmm k zmm -// VFMSUBADD213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS.RN_SAE instruction to the active function. -func (c *Context) VFMSUBADD213PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_RN_SAE(ops...)) -} - -// VFMSUBADD213PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD213PS.RN_SAE zmm zmm k zmm -// VFMSUBADD213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_RN_SAE(ops ...operand.Op) { ctx.VFMSUBADD213PS_RN_SAE(ops...) } - -// VFMSUBADD213PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD213PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD213PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD213PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD213PS.RU_SAE zmm zmm k zmm -// VFMSUBADD213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS.RU_SAE instruction to the active function. -func (c *Context) VFMSUBADD213PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_RU_SAE(ops...)) -} - -// VFMSUBADD213PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD213PS.RU_SAE zmm zmm k zmm -// VFMSUBADD213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_RU_SAE(ops ...operand.Op) { ctx.VFMSUBADD213PS_RU_SAE(ops...) } - -// VFMSUBADD213PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD213PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD213PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD213PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD213PS.RZ_SAE zmm zmm k zmm -// VFMSUBADD213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS.RZ_SAE instruction to the active function. -func (c *Context) VFMSUBADD213PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_RZ_SAE(ops...)) -} - -// VFMSUBADD213PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD213PS.RZ_SAE zmm zmm k zmm -// VFMSUBADD213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD213PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_RZ_SAE(ops ...operand.Op) { ctx.VFMSUBADD213PS_RZ_SAE(ops...) } - -// VFMSUBADD213PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD213PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD213PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD213PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.Z m128 xmm k xmm -// VFMSUBADD213PS.Z m256 ymm k ymm -// VFMSUBADD213PS.Z xmm xmm k xmm -// VFMSUBADD213PS.Z ymm ymm k ymm -// VFMSUBADD213PS.Z m512 zmm k zmm -// VFMSUBADD213PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.Z instruction to the active function. -func (c *Context) VFMSUBADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD213PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUBADD213PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.Z m128 xmm k xmm -// VFMSUBADD213PS.Z m256 ymm k ymm -// VFMSUBADD213PS.Z xmm xmm k xmm -// VFMSUBADD213PS.Z ymm ymm k ymm -// VFMSUBADD213PS.Z m512 zmm k zmm -// VFMSUBADD213PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD213PS.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD213PS_Z(mxyz, xyz, k, xyz1) } - -// VFMSUBADD231PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD231PD m128 xmm xmm -// VFMSUBADD231PD m256 ymm ymm -// VFMSUBADD231PD xmm xmm xmm -// VFMSUBADD231PD ymm ymm ymm -// VFMSUBADD231PD m128 xmm k xmm -// VFMSUBADD231PD m256 ymm k ymm -// VFMSUBADD231PD xmm xmm k xmm -// VFMSUBADD231PD ymm ymm k ymm -// VFMSUBADD231PD m512 zmm k zmm -// VFMSUBADD231PD m512 zmm zmm -// VFMSUBADD231PD zmm zmm k zmm -// VFMSUBADD231PD zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD instruction to the active function. -func (c *Context) VFMSUBADD231PD(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD(ops...)) -} - -// VFMSUBADD231PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD231PD m128 xmm xmm -// VFMSUBADD231PD m256 ymm ymm -// VFMSUBADD231PD xmm xmm xmm -// VFMSUBADD231PD ymm ymm ymm -// VFMSUBADD231PD m128 xmm k xmm -// VFMSUBADD231PD m256 ymm k ymm -// VFMSUBADD231PD xmm xmm k xmm -// VFMSUBADD231PD ymm ymm k ymm -// VFMSUBADD231PD m512 zmm k zmm -// VFMSUBADD231PD m512 zmm zmm -// VFMSUBADD231PD zmm zmm k zmm -// VFMSUBADD231PD zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD(ops ...operand.Op) { ctx.VFMSUBADD231PD(ops...) } - -// VFMSUBADD231PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD231PD.BCST m64 xmm k xmm -// VFMSUBADD231PD.BCST m64 xmm xmm -// VFMSUBADD231PD.BCST m64 ymm k ymm -// VFMSUBADD231PD.BCST m64 ymm ymm -// VFMSUBADD231PD.BCST m64 zmm k zmm -// VFMSUBADD231PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUBADD231PD.BCST instruction to the active function. -func (c *Context) VFMSUBADD231PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_BCST(ops...)) -} - -// VFMSUBADD231PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD231PD.BCST m64 xmm k xmm -// VFMSUBADD231PD.BCST m64 xmm xmm -// VFMSUBADD231PD.BCST m64 ymm k ymm -// VFMSUBADD231PD.BCST m64 ymm ymm -// VFMSUBADD231PD.BCST m64 zmm k zmm -// VFMSUBADD231PD.BCST m64 zmm zmm -// -// Construct and append a VFMSUBADD231PD.BCST instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_BCST(ops ...operand.Op) { ctx.VFMSUBADD231PD_BCST(ops...) } - -// VFMSUBADD231PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.BCST.Z m64 xmm k xmm -// VFMSUBADD231PD.BCST.Z m64 ymm k ymm -// VFMSUBADD231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUBADD231PD.BCST.Z instruction to the active function. -func (c *Context) VFMSUBADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUBADD231PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.BCST.Z m64 xmm k xmm -// VFMSUBADD231PD.BCST.Z m64 ymm k ymm -// VFMSUBADD231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFMSUBADD231PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD231PD_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUBADD231PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD231PD.RD_SAE zmm zmm k zmm -// VFMSUBADD231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD.RD_SAE instruction to the active function. -func (c *Context) VFMSUBADD231PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_RD_SAE(ops...)) -} - -// VFMSUBADD231PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD231PD.RD_SAE zmm zmm k zmm -// VFMSUBADD231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_RD_SAE(ops ...operand.Op) { ctx.VFMSUBADD231PD_RD_SAE(ops...) } - -// VFMSUBADD231PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD231PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD231PD_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD231PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD231PD.RN_SAE zmm zmm k zmm -// VFMSUBADD231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD.RN_SAE instruction to the active function. -func (c *Context) VFMSUBADD231PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_RN_SAE(ops...)) -} - -// VFMSUBADD231PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD231PD.RN_SAE zmm zmm k zmm -// VFMSUBADD231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_RN_SAE(ops ...operand.Op) { ctx.VFMSUBADD231PD_RN_SAE(ops...) } - -// VFMSUBADD231PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD231PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD231PD_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD231PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD231PD.RU_SAE zmm zmm k zmm -// VFMSUBADD231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD.RU_SAE instruction to the active function. -func (c *Context) VFMSUBADD231PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_RU_SAE(ops...)) -} - -// VFMSUBADD231PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD231PD.RU_SAE zmm zmm k zmm -// VFMSUBADD231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_RU_SAE(ops ...operand.Op) { ctx.VFMSUBADD231PD_RU_SAE(ops...) } - -// VFMSUBADD231PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD231PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD231PD_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD231PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD231PD.RZ_SAE zmm zmm k zmm -// VFMSUBADD231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD.RZ_SAE instruction to the active function. -func (c *Context) VFMSUBADD231PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_RZ_SAE(ops...)) -} - -// VFMSUBADD231PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD231PD.RZ_SAE zmm zmm k zmm -// VFMSUBADD231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_RZ_SAE(ops ...operand.Op) { ctx.VFMSUBADD231PD_RZ_SAE(ops...) } - -// VFMSUBADD231PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD231PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD231PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD231PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.Z m128 xmm k xmm -// VFMSUBADD231PD.Z m256 ymm k ymm -// VFMSUBADD231PD.Z xmm xmm k xmm -// VFMSUBADD231PD.Z ymm ymm k ymm -// VFMSUBADD231PD.Z m512 zmm k zmm -// VFMSUBADD231PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.Z instruction to the active function. -func (c *Context) VFMSUBADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUBADD231PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.Z m128 xmm k xmm -// VFMSUBADD231PD.Z m256 ymm k ymm -// VFMSUBADD231PD.Z xmm xmm k xmm -// VFMSUBADD231PD.Z ymm ymm k ymm -// VFMSUBADD231PD.Z m512 zmm k zmm -// VFMSUBADD231PD.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PD.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD231PD_Z(mxyz, xyz, k, xyz1) } - -// VFMSUBADD231PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD231PS m128 xmm xmm -// VFMSUBADD231PS m256 ymm ymm -// VFMSUBADD231PS xmm xmm xmm -// VFMSUBADD231PS ymm ymm ymm -// VFMSUBADD231PS m128 xmm k xmm -// VFMSUBADD231PS m256 ymm k ymm -// VFMSUBADD231PS xmm xmm k xmm -// VFMSUBADD231PS ymm ymm k ymm -// VFMSUBADD231PS m512 zmm k zmm -// VFMSUBADD231PS m512 zmm zmm -// VFMSUBADD231PS zmm zmm k zmm -// VFMSUBADD231PS zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS instruction to the active function. -func (c *Context) VFMSUBADD231PS(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS(ops...)) -} - -// VFMSUBADD231PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD231PS m128 xmm xmm -// VFMSUBADD231PS m256 ymm ymm -// VFMSUBADD231PS xmm xmm xmm -// VFMSUBADD231PS ymm ymm ymm -// VFMSUBADD231PS m128 xmm k xmm -// VFMSUBADD231PS m256 ymm k ymm -// VFMSUBADD231PS xmm xmm k xmm -// VFMSUBADD231PS ymm ymm k ymm -// VFMSUBADD231PS m512 zmm k zmm -// VFMSUBADD231PS m512 zmm zmm -// VFMSUBADD231PS zmm zmm k zmm -// VFMSUBADD231PS zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS(ops ...operand.Op) { ctx.VFMSUBADD231PS(ops...) } - -// VFMSUBADD231PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD231PS.BCST m32 xmm k xmm -// VFMSUBADD231PS.BCST m32 xmm xmm -// VFMSUBADD231PS.BCST m32 ymm k ymm -// VFMSUBADD231PS.BCST m32 ymm ymm -// VFMSUBADD231PS.BCST m32 zmm k zmm -// VFMSUBADD231PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUBADD231PS.BCST instruction to the active function. -func (c *Context) VFMSUBADD231PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_BCST(ops...)) -} - -// VFMSUBADD231PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD231PS.BCST m32 xmm k xmm -// VFMSUBADD231PS.BCST m32 xmm xmm -// VFMSUBADD231PS.BCST m32 ymm k ymm -// VFMSUBADD231PS.BCST m32 ymm ymm -// VFMSUBADD231PS.BCST m32 zmm k zmm -// VFMSUBADD231PS.BCST m32 zmm zmm -// -// Construct and append a VFMSUBADD231PS.BCST instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_BCST(ops ...operand.Op) { ctx.VFMSUBADD231PS_BCST(ops...) } - -// VFMSUBADD231PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.BCST.Z m32 xmm k xmm -// VFMSUBADD231PS.BCST.Z m32 ymm k ymm -// VFMSUBADD231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUBADD231PS.BCST.Z instruction to the active function. -func (c *Context) VFMSUBADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFMSUBADD231PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.BCST.Z m32 xmm k xmm -// VFMSUBADD231PS.BCST.Z m32 ymm k ymm -// VFMSUBADD231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFMSUBADD231PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD231PS_BCST_Z(m, xyz, k, xyz1) } - -// VFMSUBADD231PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD231PS.RD_SAE zmm zmm k zmm -// VFMSUBADD231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS.RD_SAE instruction to the active function. -func (c *Context) VFMSUBADD231PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_RD_SAE(ops...)) -} - -// VFMSUBADD231PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD231PS.RD_SAE zmm zmm k zmm -// VFMSUBADD231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_RD_SAE(ops ...operand.Op) { ctx.VFMSUBADD231PS_RD_SAE(ops...) } - -// VFMSUBADD231PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD231PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD231PS_RD_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD231PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD231PS.RN_SAE zmm zmm k zmm -// VFMSUBADD231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS.RN_SAE instruction to the active function. -func (c *Context) VFMSUBADD231PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_RN_SAE(ops...)) -} - -// VFMSUBADD231PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD231PS.RN_SAE zmm zmm k zmm -// VFMSUBADD231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_RN_SAE(ops ...operand.Op) { ctx.VFMSUBADD231PS_RN_SAE(ops...) } - -// VFMSUBADD231PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD231PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD231PS_RN_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD231PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD231PS.RU_SAE zmm zmm k zmm -// VFMSUBADD231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS.RU_SAE instruction to the active function. -func (c *Context) VFMSUBADD231PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_RU_SAE(ops...)) -} - -// VFMSUBADD231PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD231PS.RU_SAE zmm zmm k zmm -// VFMSUBADD231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_RU_SAE(ops ...operand.Op) { ctx.VFMSUBADD231PS_RU_SAE(ops...) } - -// VFMSUBADD231PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD231PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD231PS_RU_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD231PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD231PS.RZ_SAE zmm zmm k zmm -// VFMSUBADD231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS.RZ_SAE instruction to the active function. -func (c *Context) VFMSUBADD231PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_RZ_SAE(ops...)) -} - -// VFMSUBADD231PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD231PS.RZ_SAE zmm zmm k zmm -// VFMSUBADD231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFMSUBADD231PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_RZ_SAE(ops ...operand.Op) { ctx.VFMSUBADD231PS_RZ_SAE(ops...) } - -// VFMSUBADD231PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFMSUBADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFMSUBADD231PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFMSUBADD231PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFMSUBADD231PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.Z m128 xmm k xmm -// VFMSUBADD231PS.Z m256 ymm k ymm -// VFMSUBADD231PS.Z xmm xmm k xmm -// VFMSUBADD231PS.Z ymm ymm k ymm -// VFMSUBADD231PS.Z m512 zmm k zmm -// VFMSUBADD231PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.Z instruction to the active function. -func (c *Context) VFMSUBADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFMSUBADD231PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFMSUBADD231PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.Z m128 xmm k xmm -// VFMSUBADD231PS.Z m256 ymm k ymm -// VFMSUBADD231PS.Z xmm xmm k xmm -// VFMSUBADD231PS.Z ymm ymm k ymm -// VFMSUBADD231PS.Z m512 zmm k zmm -// VFMSUBADD231PS.Z zmm zmm k zmm -// -// Construct and append a VFMSUBADD231PS.Z instruction to the active function. -// Operates on the global context. -func VFMSUBADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFMSUBADD231PS_Z(mxyz, xyz, k, xyz1) } - -// VFNMADD132PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132PD m128 xmm xmm -// VFNMADD132PD m256 ymm ymm -// VFNMADD132PD xmm xmm xmm -// VFNMADD132PD ymm ymm ymm -// VFNMADD132PD m128 xmm k xmm -// VFNMADD132PD m256 ymm k ymm -// VFNMADD132PD xmm xmm k xmm -// VFNMADD132PD ymm ymm k ymm -// VFNMADD132PD m512 zmm k zmm -// VFNMADD132PD m512 zmm zmm -// VFNMADD132PD zmm zmm k zmm -// VFNMADD132PD zmm zmm zmm -// -// Construct and append a VFNMADD132PD instruction to the active function. -func (c *Context) VFNMADD132PD(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PD(ops...)) -} - -// VFNMADD132PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132PD m128 xmm xmm -// VFNMADD132PD m256 ymm ymm -// VFNMADD132PD xmm xmm xmm -// VFNMADD132PD ymm ymm ymm -// VFNMADD132PD m128 xmm k xmm -// VFNMADD132PD m256 ymm k ymm -// VFNMADD132PD xmm xmm k xmm -// VFNMADD132PD ymm ymm k ymm -// VFNMADD132PD m512 zmm k zmm -// VFNMADD132PD m512 zmm zmm -// VFNMADD132PD zmm zmm k zmm -// VFNMADD132PD zmm zmm zmm -// -// Construct and append a VFNMADD132PD instruction to the active function. -// Operates on the global context. -func VFNMADD132PD(ops ...operand.Op) { ctx.VFNMADD132PD(ops...) } - -// VFNMADD132PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD132PD.BCST m64 xmm k xmm -// VFNMADD132PD.BCST m64 xmm xmm -// VFNMADD132PD.BCST m64 ymm k ymm -// VFNMADD132PD.BCST m64 ymm ymm -// VFNMADD132PD.BCST m64 zmm k zmm -// VFNMADD132PD.BCST m64 zmm zmm -// -// Construct and append a VFNMADD132PD.BCST instruction to the active function. -func (c *Context) VFNMADD132PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PD_BCST(ops...)) -} - -// VFNMADD132PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD132PD.BCST m64 xmm k xmm -// VFNMADD132PD.BCST m64 xmm xmm -// VFNMADD132PD.BCST m64 ymm k ymm -// VFNMADD132PD.BCST m64 ymm ymm -// VFNMADD132PD.BCST m64 zmm k zmm -// VFNMADD132PD.BCST m64 zmm zmm -// -// Construct and append a VFNMADD132PD.BCST instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_BCST(ops ...operand.Op) { ctx.VFNMADD132PD_BCST(ops...) } - -// VFNMADD132PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.BCST.Z m64 xmm k xmm -// VFNMADD132PD.BCST.Z m64 ymm k ymm -// VFNMADD132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMADD132PD.BCST.Z instruction to the active function. -func (c *Context) VFNMADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD132PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMADD132PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.BCST.Z m64 xmm k xmm -// VFNMADD132PD.BCST.Z m64 ymm k ymm -// VFNMADD132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMADD132PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMADD132PD_BCST_Z(m, xyz, k, xyz1) } - -// VFNMADD132PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132PD.RD_SAE zmm zmm k zmm -// VFNMADD132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PD.RD_SAE instruction to the active function. -func (c *Context) VFNMADD132PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PD_RD_SAE(ops...)) -} - -// VFNMADD132PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132PD.RD_SAE zmm zmm k zmm -// VFNMADD132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_RD_SAE(ops ...operand.Op) { ctx.VFNMADD132PD_RD_SAE(ops...) } - -// VFNMADD132PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD132PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD132PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD132PD_RD_SAE_Z(z, z1, k, z2) } - -// VFNMADD132PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132PD.RN_SAE zmm zmm k zmm -// VFNMADD132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PD.RN_SAE instruction to the active function. -func (c *Context) VFNMADD132PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PD_RN_SAE(ops...)) -} - -// VFNMADD132PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132PD.RN_SAE zmm zmm k zmm -// VFNMADD132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_RN_SAE(ops ...operand.Op) { ctx.VFNMADD132PD_RN_SAE(ops...) } - -// VFNMADD132PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD132PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD132PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD132PD_RN_SAE_Z(z, z1, k, z2) } - -// VFNMADD132PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132PD.RU_SAE zmm zmm k zmm -// VFNMADD132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PD.RU_SAE instruction to the active function. -func (c *Context) VFNMADD132PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PD_RU_SAE(ops...)) -} - -// VFNMADD132PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132PD.RU_SAE zmm zmm k zmm -// VFNMADD132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_RU_SAE(ops ...operand.Op) { ctx.VFNMADD132PD_RU_SAE(ops...) } - -// VFNMADD132PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD132PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD132PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD132PD_RU_SAE_Z(z, z1, k, z2) } - -// VFNMADD132PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132PD.RZ_SAE zmm zmm k zmm -// VFNMADD132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PD.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD132PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PD_RZ_SAE(ops...)) -} - -// VFNMADD132PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132PD.RZ_SAE zmm zmm k zmm -// VFNMADD132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD132PD_RZ_SAE(ops...) } - -// VFNMADD132PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD132PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD132PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD132PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMADD132PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.Z m128 xmm k xmm -// VFNMADD132PD.Z m256 ymm k ymm -// VFNMADD132PD.Z xmm xmm k xmm -// VFNMADD132PD.Z ymm ymm k ymm -// VFNMADD132PD.Z m512 zmm k zmm -// VFNMADD132PD.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.Z instruction to the active function. -func (c *Context) VFNMADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD132PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMADD132PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.Z m128 xmm k xmm -// VFNMADD132PD.Z m256 ymm k ymm -// VFNMADD132PD.Z xmm xmm k xmm -// VFNMADD132PD.Z ymm ymm k ymm -// VFNMADD132PD.Z m512 zmm k zmm -// VFNMADD132PD.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PD.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMADD132PD_Z(mxyz, xyz, k, xyz1) } - -// VFNMADD132PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132PS m128 xmm xmm -// VFNMADD132PS m256 ymm ymm -// VFNMADD132PS xmm xmm xmm -// VFNMADD132PS ymm ymm ymm -// VFNMADD132PS m128 xmm k xmm -// VFNMADD132PS m256 ymm k ymm -// VFNMADD132PS xmm xmm k xmm -// VFNMADD132PS ymm ymm k ymm -// VFNMADD132PS m512 zmm k zmm -// VFNMADD132PS m512 zmm zmm -// VFNMADD132PS zmm zmm k zmm -// VFNMADD132PS zmm zmm zmm -// -// Construct and append a VFNMADD132PS instruction to the active function. -func (c *Context) VFNMADD132PS(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PS(ops...)) -} - -// VFNMADD132PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132PS m128 xmm xmm -// VFNMADD132PS m256 ymm ymm -// VFNMADD132PS xmm xmm xmm -// VFNMADD132PS ymm ymm ymm -// VFNMADD132PS m128 xmm k xmm -// VFNMADD132PS m256 ymm k ymm -// VFNMADD132PS xmm xmm k xmm -// VFNMADD132PS ymm ymm k ymm -// VFNMADD132PS m512 zmm k zmm -// VFNMADD132PS m512 zmm zmm -// VFNMADD132PS zmm zmm k zmm -// VFNMADD132PS zmm zmm zmm -// -// Construct and append a VFNMADD132PS instruction to the active function. -// Operates on the global context. -func VFNMADD132PS(ops ...operand.Op) { ctx.VFNMADD132PS(ops...) } - -// VFNMADD132PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD132PS.BCST m32 xmm k xmm -// VFNMADD132PS.BCST m32 xmm xmm -// VFNMADD132PS.BCST m32 ymm k ymm -// VFNMADD132PS.BCST m32 ymm ymm -// VFNMADD132PS.BCST m32 zmm k zmm -// VFNMADD132PS.BCST m32 zmm zmm -// -// Construct and append a VFNMADD132PS.BCST instruction to the active function. -func (c *Context) VFNMADD132PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PS_BCST(ops...)) -} - -// VFNMADD132PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD132PS.BCST m32 xmm k xmm -// VFNMADD132PS.BCST m32 xmm xmm -// VFNMADD132PS.BCST m32 ymm k ymm -// VFNMADD132PS.BCST m32 ymm ymm -// VFNMADD132PS.BCST m32 zmm k zmm -// VFNMADD132PS.BCST m32 zmm zmm -// -// Construct and append a VFNMADD132PS.BCST instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_BCST(ops ...operand.Op) { ctx.VFNMADD132PS_BCST(ops...) } - -// VFNMADD132PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.BCST.Z m32 xmm k xmm -// VFNMADD132PS.BCST.Z m32 ymm k ymm -// VFNMADD132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMADD132PS.BCST.Z instruction to the active function. -func (c *Context) VFNMADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD132PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMADD132PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.BCST.Z m32 xmm k xmm -// VFNMADD132PS.BCST.Z m32 ymm k ymm -// VFNMADD132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMADD132PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMADD132PS_BCST_Z(m, xyz, k, xyz1) } - -// VFNMADD132PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132PS.RD_SAE zmm zmm k zmm -// VFNMADD132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PS.RD_SAE instruction to the active function. -func (c *Context) VFNMADD132PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PS_RD_SAE(ops...)) -} - -// VFNMADD132PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132PS.RD_SAE zmm zmm k zmm -// VFNMADD132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_RD_SAE(ops ...operand.Op) { ctx.VFNMADD132PS_RD_SAE(ops...) } - -// VFNMADD132PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD132PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD132PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD132PS_RD_SAE_Z(z, z1, k, z2) } - -// VFNMADD132PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132PS.RN_SAE zmm zmm k zmm -// VFNMADD132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PS.RN_SAE instruction to the active function. -func (c *Context) VFNMADD132PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PS_RN_SAE(ops...)) -} - -// VFNMADD132PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132PS.RN_SAE zmm zmm k zmm -// VFNMADD132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_RN_SAE(ops ...operand.Op) { ctx.VFNMADD132PS_RN_SAE(ops...) } - -// VFNMADD132PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD132PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD132PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD132PS_RN_SAE_Z(z, z1, k, z2) } - -// VFNMADD132PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132PS.RU_SAE zmm zmm k zmm -// VFNMADD132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PS.RU_SAE instruction to the active function. -func (c *Context) VFNMADD132PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PS_RU_SAE(ops...)) -} - -// VFNMADD132PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132PS.RU_SAE zmm zmm k zmm -// VFNMADD132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_RU_SAE(ops ...operand.Op) { ctx.VFNMADD132PS_RU_SAE(ops...) } - -// VFNMADD132PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD132PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD132PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD132PS_RU_SAE_Z(z, z1, k, z2) } - -// VFNMADD132PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132PS.RZ_SAE zmm zmm k zmm -// VFNMADD132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PS.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD132PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132PS_RZ_SAE(ops...)) -} - -// VFNMADD132PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132PS.RZ_SAE zmm zmm k zmm -// VFNMADD132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD132PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD132PS_RZ_SAE(ops...) } - -// VFNMADD132PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD132PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD132PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD132PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMADD132PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.Z m128 xmm k xmm -// VFNMADD132PS.Z m256 ymm k ymm -// VFNMADD132PS.Z xmm xmm k xmm -// VFNMADD132PS.Z ymm ymm k ymm -// VFNMADD132PS.Z m512 zmm k zmm -// VFNMADD132PS.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.Z instruction to the active function. -func (c *Context) VFNMADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD132PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMADD132PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.Z m128 xmm k xmm -// VFNMADD132PS.Z m256 ymm k ymm -// VFNMADD132PS.Z xmm xmm k xmm -// VFNMADD132PS.Z ymm ymm k ymm -// VFNMADD132PS.Z m512 zmm k zmm -// VFNMADD132PS.Z zmm zmm k zmm -// -// Construct and append a VFNMADD132PS.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMADD132PS_Z(mxyz, xyz, k, xyz1) } - -// VFNMADD132SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132SD m64 xmm xmm -// VFNMADD132SD xmm xmm xmm -// VFNMADD132SD m64 xmm k xmm -// VFNMADD132SD xmm xmm k xmm -// -// Construct and append a VFNMADD132SD instruction to the active function. -func (c *Context) VFNMADD132SD(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SD(ops...)) -} - -// VFNMADD132SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132SD m64 xmm xmm -// VFNMADD132SD xmm xmm xmm -// VFNMADD132SD m64 xmm k xmm -// VFNMADD132SD xmm xmm k xmm -// -// Construct and append a VFNMADD132SD instruction to the active function. -// Operates on the global context. -func VFNMADD132SD(ops ...operand.Op) { ctx.VFNMADD132SD(ops...) } - -// VFNMADD132SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132SD.RD_SAE xmm xmm k xmm -// VFNMADD132SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SD.RD_SAE instruction to the active function. -func (c *Context) VFNMADD132SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SD_RD_SAE(ops...)) -} - -// VFNMADD132SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132SD.RD_SAE xmm xmm k xmm -// VFNMADD132SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132SD_RD_SAE(ops ...operand.Op) { ctx.VFNMADD132SD_RD_SAE(ops...) } - -// VFNMADD132SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD132SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD132SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD132SD_RD_SAE_Z(x, x1, k, x2) } - -// VFNMADD132SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132SD.RN_SAE xmm xmm k xmm -// VFNMADD132SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SD.RN_SAE instruction to the active function. -func (c *Context) VFNMADD132SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SD_RN_SAE(ops...)) -} - -// VFNMADD132SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132SD.RN_SAE xmm xmm k xmm -// VFNMADD132SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132SD_RN_SAE(ops ...operand.Op) { ctx.VFNMADD132SD_RN_SAE(ops...) } - -// VFNMADD132SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD132SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD132SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD132SD_RN_SAE_Z(x, x1, k, x2) } - -// VFNMADD132SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132SD.RU_SAE xmm xmm k xmm -// VFNMADD132SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SD.RU_SAE instruction to the active function. -func (c *Context) VFNMADD132SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SD_RU_SAE(ops...)) -} - -// VFNMADD132SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132SD.RU_SAE xmm xmm k xmm -// VFNMADD132SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132SD_RU_SAE(ops ...operand.Op) { ctx.VFNMADD132SD_RU_SAE(ops...) } - -// VFNMADD132SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD132SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD132SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD132SD_RU_SAE_Z(x, x1, k, x2) } - -// VFNMADD132SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132SD.RZ_SAE xmm xmm k xmm -// VFNMADD132SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SD.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD132SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SD_RZ_SAE(ops...)) -} - -// VFNMADD132SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132SD.RZ_SAE xmm xmm k xmm -// VFNMADD132SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132SD_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD132SD_RZ_SAE(ops...) } - -// VFNMADD132SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD132SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD132SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD132SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMADD132SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.Z m64 xmm k xmm -// VFNMADD132SD.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.Z instruction to the active function. -func (c *Context) VFNMADD132SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMADD132SD_Z(mx, x, k, x1)) -} - -// VFNMADD132SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.Z m64 xmm k xmm -// VFNMADD132SD.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SD.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SD_Z(mx, x, k, x1 operand.Op) { ctx.VFNMADD132SD_Z(mx, x, k, x1) } - -// VFNMADD132SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132SS m32 xmm xmm -// VFNMADD132SS xmm xmm xmm -// VFNMADD132SS m32 xmm k xmm -// VFNMADD132SS xmm xmm k xmm -// -// Construct and append a VFNMADD132SS instruction to the active function. -func (c *Context) VFNMADD132SS(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SS(ops...)) -} - -// VFNMADD132SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132SS m32 xmm xmm -// VFNMADD132SS xmm xmm xmm -// VFNMADD132SS m32 xmm k xmm -// VFNMADD132SS xmm xmm k xmm -// -// Construct and append a VFNMADD132SS instruction to the active function. -// Operates on the global context. -func VFNMADD132SS(ops ...operand.Op) { ctx.VFNMADD132SS(ops...) } - -// VFNMADD132SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132SS.RD_SAE xmm xmm k xmm -// VFNMADD132SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SS.RD_SAE instruction to the active function. -func (c *Context) VFNMADD132SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SS_RD_SAE(ops...)) -} - -// VFNMADD132SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132SS.RD_SAE xmm xmm k xmm -// VFNMADD132SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132SS_RD_SAE(ops ...operand.Op) { ctx.VFNMADD132SS_RD_SAE(ops...) } - -// VFNMADD132SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD132SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD132SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD132SS_RD_SAE_Z(x, x1, k, x2) } - -// VFNMADD132SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132SS.RN_SAE xmm xmm k xmm -// VFNMADD132SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SS.RN_SAE instruction to the active function. -func (c *Context) VFNMADD132SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SS_RN_SAE(ops...)) -} - -// VFNMADD132SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132SS.RN_SAE xmm xmm k xmm -// VFNMADD132SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132SS_RN_SAE(ops ...operand.Op) { ctx.VFNMADD132SS_RN_SAE(ops...) } - -// VFNMADD132SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD132SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD132SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD132SS_RN_SAE_Z(x, x1, k, x2) } - -// VFNMADD132SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132SS.RU_SAE xmm xmm k xmm -// VFNMADD132SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SS.RU_SAE instruction to the active function. -func (c *Context) VFNMADD132SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SS_RU_SAE(ops...)) -} - -// VFNMADD132SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132SS.RU_SAE xmm xmm k xmm -// VFNMADD132SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132SS_RU_SAE(ops ...operand.Op) { ctx.VFNMADD132SS_RU_SAE(ops...) } - -// VFNMADD132SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD132SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD132SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD132SS_RU_SAE_Z(x, x1, k, x2) } - -// VFNMADD132SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132SS.RZ_SAE xmm xmm k xmm -// VFNMADD132SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SS.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD132SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD132SS_RZ_SAE(ops...)) -} - -// VFNMADD132SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132SS.RZ_SAE xmm xmm k xmm -// VFNMADD132SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD132SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD132SS_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD132SS_RZ_SAE(ops...) } - -// VFNMADD132SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD132SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD132SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD132SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMADD132SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.Z m32 xmm k xmm -// VFNMADD132SS.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.Z instruction to the active function. -func (c *Context) VFNMADD132SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMADD132SS_Z(mx, x, k, x1)) -} - -// VFNMADD132SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.Z m32 xmm k xmm -// VFNMADD132SS.Z xmm xmm k xmm -// -// Construct and append a VFNMADD132SS.Z instruction to the active function. -// Operates on the global context. -func VFNMADD132SS_Z(mx, x, k, x1 operand.Op) { ctx.VFNMADD132SS_Z(mx, x, k, x1) } - -// VFNMADD213PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213PD m128 xmm xmm -// VFNMADD213PD m256 ymm ymm -// VFNMADD213PD xmm xmm xmm -// VFNMADD213PD ymm ymm ymm -// VFNMADD213PD m128 xmm k xmm -// VFNMADD213PD m256 ymm k ymm -// VFNMADD213PD xmm xmm k xmm -// VFNMADD213PD ymm ymm k ymm -// VFNMADD213PD m512 zmm k zmm -// VFNMADD213PD m512 zmm zmm -// VFNMADD213PD zmm zmm k zmm -// VFNMADD213PD zmm zmm zmm -// -// Construct and append a VFNMADD213PD instruction to the active function. -func (c *Context) VFNMADD213PD(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PD(ops...)) -} - -// VFNMADD213PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213PD m128 xmm xmm -// VFNMADD213PD m256 ymm ymm -// VFNMADD213PD xmm xmm xmm -// VFNMADD213PD ymm ymm ymm -// VFNMADD213PD m128 xmm k xmm -// VFNMADD213PD m256 ymm k ymm -// VFNMADD213PD xmm xmm k xmm -// VFNMADD213PD ymm ymm k ymm -// VFNMADD213PD m512 zmm k zmm -// VFNMADD213PD m512 zmm zmm -// VFNMADD213PD zmm zmm k zmm -// VFNMADD213PD zmm zmm zmm -// -// Construct and append a VFNMADD213PD instruction to the active function. -// Operates on the global context. -func VFNMADD213PD(ops ...operand.Op) { ctx.VFNMADD213PD(ops...) } - -// VFNMADD213PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD213PD.BCST m64 xmm k xmm -// VFNMADD213PD.BCST m64 xmm xmm -// VFNMADD213PD.BCST m64 ymm k ymm -// VFNMADD213PD.BCST m64 ymm ymm -// VFNMADD213PD.BCST m64 zmm k zmm -// VFNMADD213PD.BCST m64 zmm zmm -// -// Construct and append a VFNMADD213PD.BCST instruction to the active function. -func (c *Context) VFNMADD213PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PD_BCST(ops...)) -} - -// VFNMADD213PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD213PD.BCST m64 xmm k xmm -// VFNMADD213PD.BCST m64 xmm xmm -// VFNMADD213PD.BCST m64 ymm k ymm -// VFNMADD213PD.BCST m64 ymm ymm -// VFNMADD213PD.BCST m64 zmm k zmm -// VFNMADD213PD.BCST m64 zmm zmm -// -// Construct and append a VFNMADD213PD.BCST instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_BCST(ops ...operand.Op) { ctx.VFNMADD213PD_BCST(ops...) } - -// VFNMADD213PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.BCST.Z m64 xmm k xmm -// VFNMADD213PD.BCST.Z m64 ymm k ymm -// VFNMADD213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMADD213PD.BCST.Z instruction to the active function. -func (c *Context) VFNMADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD213PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMADD213PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.BCST.Z m64 xmm k xmm -// VFNMADD213PD.BCST.Z m64 ymm k ymm -// VFNMADD213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMADD213PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMADD213PD_BCST_Z(m, xyz, k, xyz1) } - -// VFNMADD213PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213PD.RD_SAE zmm zmm k zmm -// VFNMADD213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PD.RD_SAE instruction to the active function. -func (c *Context) VFNMADD213PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PD_RD_SAE(ops...)) -} - -// VFNMADD213PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213PD.RD_SAE zmm zmm k zmm -// VFNMADD213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_RD_SAE(ops ...operand.Op) { ctx.VFNMADD213PD_RD_SAE(ops...) } - -// VFNMADD213PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD213PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD213PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD213PD_RD_SAE_Z(z, z1, k, z2) } - -// VFNMADD213PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213PD.RN_SAE zmm zmm k zmm -// VFNMADD213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PD.RN_SAE instruction to the active function. -func (c *Context) VFNMADD213PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PD_RN_SAE(ops...)) -} - -// VFNMADD213PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213PD.RN_SAE zmm zmm k zmm -// VFNMADD213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_RN_SAE(ops ...operand.Op) { ctx.VFNMADD213PD_RN_SAE(ops...) } - -// VFNMADD213PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD213PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD213PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD213PD_RN_SAE_Z(z, z1, k, z2) } - -// VFNMADD213PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213PD.RU_SAE zmm zmm k zmm -// VFNMADD213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PD.RU_SAE instruction to the active function. -func (c *Context) VFNMADD213PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PD_RU_SAE(ops...)) -} - -// VFNMADD213PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213PD.RU_SAE zmm zmm k zmm -// VFNMADD213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_RU_SAE(ops ...operand.Op) { ctx.VFNMADD213PD_RU_SAE(ops...) } - -// VFNMADD213PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD213PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD213PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD213PD_RU_SAE_Z(z, z1, k, z2) } - -// VFNMADD213PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213PD.RZ_SAE zmm zmm k zmm -// VFNMADD213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PD.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD213PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PD_RZ_SAE(ops...)) -} - -// VFNMADD213PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213PD.RZ_SAE zmm zmm k zmm -// VFNMADD213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD213PD_RZ_SAE(ops...) } - -// VFNMADD213PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD213PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD213PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD213PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMADD213PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.Z m128 xmm k xmm -// VFNMADD213PD.Z m256 ymm k ymm -// VFNMADD213PD.Z xmm xmm k xmm -// VFNMADD213PD.Z ymm ymm k ymm -// VFNMADD213PD.Z m512 zmm k zmm -// VFNMADD213PD.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.Z instruction to the active function. -func (c *Context) VFNMADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD213PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMADD213PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.Z m128 xmm k xmm -// VFNMADD213PD.Z m256 ymm k ymm -// VFNMADD213PD.Z xmm xmm k xmm -// VFNMADD213PD.Z ymm ymm k ymm -// VFNMADD213PD.Z m512 zmm k zmm -// VFNMADD213PD.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PD.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMADD213PD_Z(mxyz, xyz, k, xyz1) } - -// VFNMADD213PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213PS m128 xmm xmm -// VFNMADD213PS m256 ymm ymm -// VFNMADD213PS xmm xmm xmm -// VFNMADD213PS ymm ymm ymm -// VFNMADD213PS m128 xmm k xmm -// VFNMADD213PS m256 ymm k ymm -// VFNMADD213PS xmm xmm k xmm -// VFNMADD213PS ymm ymm k ymm -// VFNMADD213PS m512 zmm k zmm -// VFNMADD213PS m512 zmm zmm -// VFNMADD213PS zmm zmm k zmm -// VFNMADD213PS zmm zmm zmm -// -// Construct and append a VFNMADD213PS instruction to the active function. -func (c *Context) VFNMADD213PS(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PS(ops...)) -} - -// VFNMADD213PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213PS m128 xmm xmm -// VFNMADD213PS m256 ymm ymm -// VFNMADD213PS xmm xmm xmm -// VFNMADD213PS ymm ymm ymm -// VFNMADD213PS m128 xmm k xmm -// VFNMADD213PS m256 ymm k ymm -// VFNMADD213PS xmm xmm k xmm -// VFNMADD213PS ymm ymm k ymm -// VFNMADD213PS m512 zmm k zmm -// VFNMADD213PS m512 zmm zmm -// VFNMADD213PS zmm zmm k zmm -// VFNMADD213PS zmm zmm zmm -// -// Construct and append a VFNMADD213PS instruction to the active function. -// Operates on the global context. -func VFNMADD213PS(ops ...operand.Op) { ctx.VFNMADD213PS(ops...) } - -// VFNMADD213PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD213PS.BCST m32 xmm k xmm -// VFNMADD213PS.BCST m32 xmm xmm -// VFNMADD213PS.BCST m32 ymm k ymm -// VFNMADD213PS.BCST m32 ymm ymm -// VFNMADD213PS.BCST m32 zmm k zmm -// VFNMADD213PS.BCST m32 zmm zmm -// -// Construct and append a VFNMADD213PS.BCST instruction to the active function. -func (c *Context) VFNMADD213PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PS_BCST(ops...)) -} - -// VFNMADD213PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD213PS.BCST m32 xmm k xmm -// VFNMADD213PS.BCST m32 xmm xmm -// VFNMADD213PS.BCST m32 ymm k ymm -// VFNMADD213PS.BCST m32 ymm ymm -// VFNMADD213PS.BCST m32 zmm k zmm -// VFNMADD213PS.BCST m32 zmm zmm -// -// Construct and append a VFNMADD213PS.BCST instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_BCST(ops ...operand.Op) { ctx.VFNMADD213PS_BCST(ops...) } - -// VFNMADD213PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.BCST.Z m32 xmm k xmm -// VFNMADD213PS.BCST.Z m32 ymm k ymm -// VFNMADD213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMADD213PS.BCST.Z instruction to the active function. -func (c *Context) VFNMADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD213PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMADD213PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.BCST.Z m32 xmm k xmm -// VFNMADD213PS.BCST.Z m32 ymm k ymm -// VFNMADD213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMADD213PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMADD213PS_BCST_Z(m, xyz, k, xyz1) } - -// VFNMADD213PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213PS.RD_SAE zmm zmm k zmm -// VFNMADD213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PS.RD_SAE instruction to the active function. -func (c *Context) VFNMADD213PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PS_RD_SAE(ops...)) -} - -// VFNMADD213PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213PS.RD_SAE zmm zmm k zmm -// VFNMADD213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_RD_SAE(ops ...operand.Op) { ctx.VFNMADD213PS_RD_SAE(ops...) } - -// VFNMADD213PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD213PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD213PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD213PS_RD_SAE_Z(z, z1, k, z2) } - -// VFNMADD213PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213PS.RN_SAE zmm zmm k zmm -// VFNMADD213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PS.RN_SAE instruction to the active function. -func (c *Context) VFNMADD213PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PS_RN_SAE(ops...)) -} - -// VFNMADD213PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213PS.RN_SAE zmm zmm k zmm -// VFNMADD213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_RN_SAE(ops ...operand.Op) { ctx.VFNMADD213PS_RN_SAE(ops...) } - -// VFNMADD213PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD213PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD213PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD213PS_RN_SAE_Z(z, z1, k, z2) } - -// VFNMADD213PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213PS.RU_SAE zmm zmm k zmm -// VFNMADD213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PS.RU_SAE instruction to the active function. -func (c *Context) VFNMADD213PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PS_RU_SAE(ops...)) -} - -// VFNMADD213PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213PS.RU_SAE zmm zmm k zmm -// VFNMADD213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_RU_SAE(ops ...operand.Op) { ctx.VFNMADD213PS_RU_SAE(ops...) } - -// VFNMADD213PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD213PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD213PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD213PS_RU_SAE_Z(z, z1, k, z2) } - -// VFNMADD213PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213PS.RZ_SAE zmm zmm k zmm -// VFNMADD213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PS.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD213PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213PS_RZ_SAE(ops...)) -} - -// VFNMADD213PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213PS.RZ_SAE zmm zmm k zmm -// VFNMADD213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD213PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD213PS_RZ_SAE(ops...) } - -// VFNMADD213PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD213PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD213PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD213PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMADD213PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.Z m128 xmm k xmm -// VFNMADD213PS.Z m256 ymm k ymm -// VFNMADD213PS.Z xmm xmm k xmm -// VFNMADD213PS.Z ymm ymm k ymm -// VFNMADD213PS.Z m512 zmm k zmm -// VFNMADD213PS.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.Z instruction to the active function. -func (c *Context) VFNMADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD213PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMADD213PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.Z m128 xmm k xmm -// VFNMADD213PS.Z m256 ymm k ymm -// VFNMADD213PS.Z xmm xmm k xmm -// VFNMADD213PS.Z ymm ymm k ymm -// VFNMADD213PS.Z m512 zmm k zmm -// VFNMADD213PS.Z zmm zmm k zmm -// -// Construct and append a VFNMADD213PS.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMADD213PS_Z(mxyz, xyz, k, xyz1) } - -// VFNMADD213SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213SD m64 xmm xmm -// VFNMADD213SD xmm xmm xmm -// VFNMADD213SD m64 xmm k xmm -// VFNMADD213SD xmm xmm k xmm -// -// Construct and append a VFNMADD213SD instruction to the active function. -func (c *Context) VFNMADD213SD(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SD(ops...)) -} - -// VFNMADD213SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213SD m64 xmm xmm -// VFNMADD213SD xmm xmm xmm -// VFNMADD213SD m64 xmm k xmm -// VFNMADD213SD xmm xmm k xmm -// -// Construct and append a VFNMADD213SD instruction to the active function. -// Operates on the global context. -func VFNMADD213SD(ops ...operand.Op) { ctx.VFNMADD213SD(ops...) } - -// VFNMADD213SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213SD.RD_SAE xmm xmm k xmm -// VFNMADD213SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SD.RD_SAE instruction to the active function. -func (c *Context) VFNMADD213SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SD_RD_SAE(ops...)) -} - -// VFNMADD213SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213SD.RD_SAE xmm xmm k xmm -// VFNMADD213SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213SD_RD_SAE(ops ...operand.Op) { ctx.VFNMADD213SD_RD_SAE(ops...) } - -// VFNMADD213SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD213SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD213SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD213SD_RD_SAE_Z(x, x1, k, x2) } - -// VFNMADD213SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213SD.RN_SAE xmm xmm k xmm -// VFNMADD213SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SD.RN_SAE instruction to the active function. -func (c *Context) VFNMADD213SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SD_RN_SAE(ops...)) -} - -// VFNMADD213SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213SD.RN_SAE xmm xmm k xmm -// VFNMADD213SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213SD_RN_SAE(ops ...operand.Op) { ctx.VFNMADD213SD_RN_SAE(ops...) } - -// VFNMADD213SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD213SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD213SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD213SD_RN_SAE_Z(x, x1, k, x2) } - -// VFNMADD213SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213SD.RU_SAE xmm xmm k xmm -// VFNMADD213SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SD.RU_SAE instruction to the active function. -func (c *Context) VFNMADD213SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SD_RU_SAE(ops...)) -} - -// VFNMADD213SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213SD.RU_SAE xmm xmm k xmm -// VFNMADD213SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213SD_RU_SAE(ops ...operand.Op) { ctx.VFNMADD213SD_RU_SAE(ops...) } - -// VFNMADD213SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD213SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD213SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD213SD_RU_SAE_Z(x, x1, k, x2) } - -// VFNMADD213SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213SD.RZ_SAE xmm xmm k xmm -// VFNMADD213SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SD.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD213SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SD_RZ_SAE(ops...)) -} - -// VFNMADD213SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213SD.RZ_SAE xmm xmm k xmm -// VFNMADD213SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213SD_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD213SD_RZ_SAE(ops...) } - -// VFNMADD213SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD213SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD213SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD213SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMADD213SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.Z m64 xmm k xmm -// VFNMADD213SD.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.Z instruction to the active function. -func (c *Context) VFNMADD213SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMADD213SD_Z(mx, x, k, x1)) -} - -// VFNMADD213SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.Z m64 xmm k xmm -// VFNMADD213SD.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SD.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SD_Z(mx, x, k, x1 operand.Op) { ctx.VFNMADD213SD_Z(mx, x, k, x1) } - -// VFNMADD213SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213SS m32 xmm xmm -// VFNMADD213SS xmm xmm xmm -// VFNMADD213SS m32 xmm k xmm -// VFNMADD213SS xmm xmm k xmm -// -// Construct and append a VFNMADD213SS instruction to the active function. -func (c *Context) VFNMADD213SS(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SS(ops...)) -} - -// VFNMADD213SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213SS m32 xmm xmm -// VFNMADD213SS xmm xmm xmm -// VFNMADD213SS m32 xmm k xmm -// VFNMADD213SS xmm xmm k xmm -// -// Construct and append a VFNMADD213SS instruction to the active function. -// Operates on the global context. -func VFNMADD213SS(ops ...operand.Op) { ctx.VFNMADD213SS(ops...) } - -// VFNMADD213SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213SS.RD_SAE xmm xmm k xmm -// VFNMADD213SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SS.RD_SAE instruction to the active function. -func (c *Context) VFNMADD213SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SS_RD_SAE(ops...)) -} - -// VFNMADD213SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213SS.RD_SAE xmm xmm k xmm -// VFNMADD213SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213SS_RD_SAE(ops ...operand.Op) { ctx.VFNMADD213SS_RD_SAE(ops...) } - -// VFNMADD213SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD213SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD213SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD213SS_RD_SAE_Z(x, x1, k, x2) } - -// VFNMADD213SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213SS.RN_SAE xmm xmm k xmm -// VFNMADD213SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SS.RN_SAE instruction to the active function. -func (c *Context) VFNMADD213SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SS_RN_SAE(ops...)) -} - -// VFNMADD213SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213SS.RN_SAE xmm xmm k xmm -// VFNMADD213SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213SS_RN_SAE(ops ...operand.Op) { ctx.VFNMADD213SS_RN_SAE(ops...) } - -// VFNMADD213SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD213SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD213SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD213SS_RN_SAE_Z(x, x1, k, x2) } - -// VFNMADD213SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213SS.RU_SAE xmm xmm k xmm -// VFNMADD213SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SS.RU_SAE instruction to the active function. -func (c *Context) VFNMADD213SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SS_RU_SAE(ops...)) -} - -// VFNMADD213SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213SS.RU_SAE xmm xmm k xmm -// VFNMADD213SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213SS_RU_SAE(ops ...operand.Op) { ctx.VFNMADD213SS_RU_SAE(ops...) } - -// VFNMADD213SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD213SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD213SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD213SS_RU_SAE_Z(x, x1, k, x2) } - -// VFNMADD213SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213SS.RZ_SAE xmm xmm k xmm -// VFNMADD213SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SS.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD213SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD213SS_RZ_SAE(ops...)) -} - -// VFNMADD213SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213SS.RZ_SAE xmm xmm k xmm -// VFNMADD213SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD213SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD213SS_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD213SS_RZ_SAE(ops...) } - -// VFNMADD213SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD213SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD213SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD213SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMADD213SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.Z m32 xmm k xmm -// VFNMADD213SS.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.Z instruction to the active function. -func (c *Context) VFNMADD213SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMADD213SS_Z(mx, x, k, x1)) -} - -// VFNMADD213SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.Z m32 xmm k xmm -// VFNMADD213SS.Z xmm xmm k xmm -// -// Construct and append a VFNMADD213SS.Z instruction to the active function. -// Operates on the global context. -func VFNMADD213SS_Z(mx, x, k, x1 operand.Op) { ctx.VFNMADD213SS_Z(mx, x, k, x1) } - -// VFNMADD231PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231PD m128 xmm xmm -// VFNMADD231PD m256 ymm ymm -// VFNMADD231PD xmm xmm xmm -// VFNMADD231PD ymm ymm ymm -// VFNMADD231PD m128 xmm k xmm -// VFNMADD231PD m256 ymm k ymm -// VFNMADD231PD xmm xmm k xmm -// VFNMADD231PD ymm ymm k ymm -// VFNMADD231PD m512 zmm k zmm -// VFNMADD231PD m512 zmm zmm -// VFNMADD231PD zmm zmm k zmm -// VFNMADD231PD zmm zmm zmm -// -// Construct and append a VFNMADD231PD instruction to the active function. -func (c *Context) VFNMADD231PD(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PD(ops...)) -} - -// VFNMADD231PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231PD m128 xmm xmm -// VFNMADD231PD m256 ymm ymm -// VFNMADD231PD xmm xmm xmm -// VFNMADD231PD ymm ymm ymm -// VFNMADD231PD m128 xmm k xmm -// VFNMADD231PD m256 ymm k ymm -// VFNMADD231PD xmm xmm k xmm -// VFNMADD231PD ymm ymm k ymm -// VFNMADD231PD m512 zmm k zmm -// VFNMADD231PD m512 zmm zmm -// VFNMADD231PD zmm zmm k zmm -// VFNMADD231PD zmm zmm zmm -// -// Construct and append a VFNMADD231PD instruction to the active function. -// Operates on the global context. -func VFNMADD231PD(ops ...operand.Op) { ctx.VFNMADD231PD(ops...) } - -// VFNMADD231PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD231PD.BCST m64 xmm k xmm -// VFNMADD231PD.BCST m64 xmm xmm -// VFNMADD231PD.BCST m64 ymm k ymm -// VFNMADD231PD.BCST m64 ymm ymm -// VFNMADD231PD.BCST m64 zmm k zmm -// VFNMADD231PD.BCST m64 zmm zmm -// -// Construct and append a VFNMADD231PD.BCST instruction to the active function. -func (c *Context) VFNMADD231PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PD_BCST(ops...)) -} - -// VFNMADD231PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD231PD.BCST m64 xmm k xmm -// VFNMADD231PD.BCST m64 xmm xmm -// VFNMADD231PD.BCST m64 ymm k ymm -// VFNMADD231PD.BCST m64 ymm ymm -// VFNMADD231PD.BCST m64 zmm k zmm -// VFNMADD231PD.BCST m64 zmm zmm -// -// Construct and append a VFNMADD231PD.BCST instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_BCST(ops ...operand.Op) { ctx.VFNMADD231PD_BCST(ops...) } - -// VFNMADD231PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.BCST.Z m64 xmm k xmm -// VFNMADD231PD.BCST.Z m64 ymm k ymm -// VFNMADD231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMADD231PD.BCST.Z instruction to the active function. -func (c *Context) VFNMADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD231PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMADD231PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.BCST.Z m64 xmm k xmm -// VFNMADD231PD.BCST.Z m64 ymm k ymm -// VFNMADD231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMADD231PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMADD231PD_BCST_Z(m, xyz, k, xyz1) } - -// VFNMADD231PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231PD.RD_SAE zmm zmm k zmm -// VFNMADD231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PD.RD_SAE instruction to the active function. -func (c *Context) VFNMADD231PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PD_RD_SAE(ops...)) -} - -// VFNMADD231PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231PD.RD_SAE zmm zmm k zmm -// VFNMADD231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_RD_SAE(ops ...operand.Op) { ctx.VFNMADD231PD_RD_SAE(ops...) } - -// VFNMADD231PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD231PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD231PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD231PD_RD_SAE_Z(z, z1, k, z2) } - -// VFNMADD231PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231PD.RN_SAE zmm zmm k zmm -// VFNMADD231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PD.RN_SAE instruction to the active function. -func (c *Context) VFNMADD231PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PD_RN_SAE(ops...)) -} - -// VFNMADD231PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231PD.RN_SAE zmm zmm k zmm -// VFNMADD231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_RN_SAE(ops ...operand.Op) { ctx.VFNMADD231PD_RN_SAE(ops...) } - -// VFNMADD231PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD231PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD231PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD231PD_RN_SAE_Z(z, z1, k, z2) } - -// VFNMADD231PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231PD.RU_SAE zmm zmm k zmm -// VFNMADD231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PD.RU_SAE instruction to the active function. -func (c *Context) VFNMADD231PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PD_RU_SAE(ops...)) -} - -// VFNMADD231PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231PD.RU_SAE zmm zmm k zmm -// VFNMADD231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_RU_SAE(ops ...operand.Op) { ctx.VFNMADD231PD_RU_SAE(ops...) } - -// VFNMADD231PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD231PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD231PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD231PD_RU_SAE_Z(z, z1, k, z2) } - -// VFNMADD231PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231PD.RZ_SAE zmm zmm k zmm -// VFNMADD231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PD.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD231PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PD_RZ_SAE(ops...)) -} - -// VFNMADD231PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231PD.RZ_SAE zmm zmm k zmm -// VFNMADD231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD231PD_RZ_SAE(ops...) } - -// VFNMADD231PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD231PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD231PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD231PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMADD231PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.Z m128 xmm k xmm -// VFNMADD231PD.Z m256 ymm k ymm -// VFNMADD231PD.Z xmm xmm k xmm -// VFNMADD231PD.Z ymm ymm k ymm -// VFNMADD231PD.Z m512 zmm k zmm -// VFNMADD231PD.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.Z instruction to the active function. -func (c *Context) VFNMADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD231PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMADD231PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.Z m128 xmm k xmm -// VFNMADD231PD.Z m256 ymm k ymm -// VFNMADD231PD.Z xmm xmm k xmm -// VFNMADD231PD.Z ymm ymm k ymm -// VFNMADD231PD.Z m512 zmm k zmm -// VFNMADD231PD.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PD.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMADD231PD_Z(mxyz, xyz, k, xyz1) } - -// VFNMADD231PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231PS m128 xmm xmm -// VFNMADD231PS m256 ymm ymm -// VFNMADD231PS xmm xmm xmm -// VFNMADD231PS ymm ymm ymm -// VFNMADD231PS m128 xmm k xmm -// VFNMADD231PS m256 ymm k ymm -// VFNMADD231PS xmm xmm k xmm -// VFNMADD231PS ymm ymm k ymm -// VFNMADD231PS m512 zmm k zmm -// VFNMADD231PS m512 zmm zmm -// VFNMADD231PS zmm zmm k zmm -// VFNMADD231PS zmm zmm zmm -// -// Construct and append a VFNMADD231PS instruction to the active function. -func (c *Context) VFNMADD231PS(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PS(ops...)) -} - -// VFNMADD231PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231PS m128 xmm xmm -// VFNMADD231PS m256 ymm ymm -// VFNMADD231PS xmm xmm xmm -// VFNMADD231PS ymm ymm ymm -// VFNMADD231PS m128 xmm k xmm -// VFNMADD231PS m256 ymm k ymm -// VFNMADD231PS xmm xmm k xmm -// VFNMADD231PS ymm ymm k ymm -// VFNMADD231PS m512 zmm k zmm -// VFNMADD231PS m512 zmm zmm -// VFNMADD231PS zmm zmm k zmm -// VFNMADD231PS zmm zmm zmm -// -// Construct and append a VFNMADD231PS instruction to the active function. -// Operates on the global context. -func VFNMADD231PS(ops ...operand.Op) { ctx.VFNMADD231PS(ops...) } - -// VFNMADD231PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD231PS.BCST m32 xmm k xmm -// VFNMADD231PS.BCST m32 xmm xmm -// VFNMADD231PS.BCST m32 ymm k ymm -// VFNMADD231PS.BCST m32 ymm ymm -// VFNMADD231PS.BCST m32 zmm k zmm -// VFNMADD231PS.BCST m32 zmm zmm -// -// Construct and append a VFNMADD231PS.BCST instruction to the active function. -func (c *Context) VFNMADD231PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PS_BCST(ops...)) -} - -// VFNMADD231PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD231PS.BCST m32 xmm k xmm -// VFNMADD231PS.BCST m32 xmm xmm -// VFNMADD231PS.BCST m32 ymm k ymm -// VFNMADD231PS.BCST m32 ymm ymm -// VFNMADD231PS.BCST m32 zmm k zmm -// VFNMADD231PS.BCST m32 zmm zmm -// -// Construct and append a VFNMADD231PS.BCST instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_BCST(ops ...operand.Op) { ctx.VFNMADD231PS_BCST(ops...) } - -// VFNMADD231PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.BCST.Z m32 xmm k xmm -// VFNMADD231PS.BCST.Z m32 ymm k ymm -// VFNMADD231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMADD231PS.BCST.Z instruction to the active function. -func (c *Context) VFNMADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD231PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMADD231PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.BCST.Z m32 xmm k xmm -// VFNMADD231PS.BCST.Z m32 ymm k ymm -// VFNMADD231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMADD231PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMADD231PS_BCST_Z(m, xyz, k, xyz1) } - -// VFNMADD231PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231PS.RD_SAE zmm zmm k zmm -// VFNMADD231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PS.RD_SAE instruction to the active function. -func (c *Context) VFNMADD231PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PS_RD_SAE(ops...)) -} - -// VFNMADD231PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231PS.RD_SAE zmm zmm k zmm -// VFNMADD231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_RD_SAE(ops ...operand.Op) { ctx.VFNMADD231PS_RD_SAE(ops...) } - -// VFNMADD231PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD231PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD231PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD231PS_RD_SAE_Z(z, z1, k, z2) } - -// VFNMADD231PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231PS.RN_SAE zmm zmm k zmm -// VFNMADD231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PS.RN_SAE instruction to the active function. -func (c *Context) VFNMADD231PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PS_RN_SAE(ops...)) -} - -// VFNMADD231PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231PS.RN_SAE zmm zmm k zmm -// VFNMADD231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_RN_SAE(ops ...operand.Op) { ctx.VFNMADD231PS_RN_SAE(ops...) } - -// VFNMADD231PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD231PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD231PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD231PS_RN_SAE_Z(z, z1, k, z2) } - -// VFNMADD231PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231PS.RU_SAE zmm zmm k zmm -// VFNMADD231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PS.RU_SAE instruction to the active function. -func (c *Context) VFNMADD231PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PS_RU_SAE(ops...)) -} - -// VFNMADD231PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231PS.RU_SAE zmm zmm k zmm -// VFNMADD231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_RU_SAE(ops ...operand.Op) { ctx.VFNMADD231PS_RU_SAE(ops...) } - -// VFNMADD231PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD231PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD231PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD231PS_RU_SAE_Z(z, z1, k, z2) } - -// VFNMADD231PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231PS.RZ_SAE zmm zmm k zmm -// VFNMADD231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PS.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD231PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231PS_RZ_SAE(ops...)) -} - -// VFNMADD231PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231PS.RZ_SAE zmm zmm k zmm -// VFNMADD231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMADD231PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD231PS_RZ_SAE(ops...) } - -// VFNMADD231PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMADD231PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMADD231PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMADD231PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMADD231PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.Z m128 xmm k xmm -// VFNMADD231PS.Z m256 ymm k ymm -// VFNMADD231PS.Z xmm xmm k xmm -// VFNMADD231PS.Z ymm ymm k ymm -// VFNMADD231PS.Z m512 zmm k zmm -// VFNMADD231PS.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.Z instruction to the active function. -func (c *Context) VFNMADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMADD231PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMADD231PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.Z m128 xmm k xmm -// VFNMADD231PS.Z m256 ymm k ymm -// VFNMADD231PS.Z xmm xmm k xmm -// VFNMADD231PS.Z ymm ymm k ymm -// VFNMADD231PS.Z m512 zmm k zmm -// VFNMADD231PS.Z zmm zmm k zmm -// -// Construct and append a VFNMADD231PS.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMADD231PS_Z(mxyz, xyz, k, xyz1) } - -// VFNMADD231SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231SD m64 xmm xmm -// VFNMADD231SD xmm xmm xmm -// VFNMADD231SD m64 xmm k xmm -// VFNMADD231SD xmm xmm k xmm -// -// Construct and append a VFNMADD231SD instruction to the active function. -func (c *Context) VFNMADD231SD(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SD(ops...)) -} - -// VFNMADD231SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231SD m64 xmm xmm -// VFNMADD231SD xmm xmm xmm -// VFNMADD231SD m64 xmm k xmm -// VFNMADD231SD xmm xmm k xmm -// -// Construct and append a VFNMADD231SD instruction to the active function. -// Operates on the global context. -func VFNMADD231SD(ops ...operand.Op) { ctx.VFNMADD231SD(ops...) } - -// VFNMADD231SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231SD.RD_SAE xmm xmm k xmm -// VFNMADD231SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SD.RD_SAE instruction to the active function. -func (c *Context) VFNMADD231SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SD_RD_SAE(ops...)) -} - -// VFNMADD231SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231SD.RD_SAE xmm xmm k xmm -// VFNMADD231SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231SD_RD_SAE(ops ...operand.Op) { ctx.VFNMADD231SD_RD_SAE(ops...) } - -// VFNMADD231SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD231SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD231SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD231SD_RD_SAE_Z(x, x1, k, x2) } - -// VFNMADD231SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231SD.RN_SAE xmm xmm k xmm -// VFNMADD231SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SD.RN_SAE instruction to the active function. -func (c *Context) VFNMADD231SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SD_RN_SAE(ops...)) -} - -// VFNMADD231SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231SD.RN_SAE xmm xmm k xmm -// VFNMADD231SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231SD_RN_SAE(ops ...operand.Op) { ctx.VFNMADD231SD_RN_SAE(ops...) } - -// VFNMADD231SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD231SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD231SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD231SD_RN_SAE_Z(x, x1, k, x2) } - -// VFNMADD231SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231SD.RU_SAE xmm xmm k xmm -// VFNMADD231SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SD.RU_SAE instruction to the active function. -func (c *Context) VFNMADD231SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SD_RU_SAE(ops...)) -} - -// VFNMADD231SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231SD.RU_SAE xmm xmm k xmm -// VFNMADD231SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231SD_RU_SAE(ops ...operand.Op) { ctx.VFNMADD231SD_RU_SAE(ops...) } - -// VFNMADD231SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD231SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD231SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD231SD_RU_SAE_Z(x, x1, k, x2) } - -// VFNMADD231SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231SD.RZ_SAE xmm xmm k xmm -// VFNMADD231SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SD.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD231SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SD_RZ_SAE(ops...)) -} - -// VFNMADD231SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231SD.RZ_SAE xmm xmm k xmm -// VFNMADD231SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231SD_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD231SD_RZ_SAE(ops...) } - -// VFNMADD231SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD231SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD231SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD231SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMADD231SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.Z m64 xmm k xmm -// VFNMADD231SD.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.Z instruction to the active function. -func (c *Context) VFNMADD231SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMADD231SD_Z(mx, x, k, x1)) -} - -// VFNMADD231SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.Z m64 xmm k xmm -// VFNMADD231SD.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SD.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SD_Z(mx, x, k, x1 operand.Op) { ctx.VFNMADD231SD_Z(mx, x, k, x1) } - -// VFNMADD231SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231SS m32 xmm xmm -// VFNMADD231SS xmm xmm xmm -// VFNMADD231SS m32 xmm k xmm -// VFNMADD231SS xmm xmm k xmm -// -// Construct and append a VFNMADD231SS instruction to the active function. -func (c *Context) VFNMADD231SS(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SS(ops...)) -} - -// VFNMADD231SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231SS m32 xmm xmm -// VFNMADD231SS xmm xmm xmm -// VFNMADD231SS m32 xmm k xmm -// VFNMADD231SS xmm xmm k xmm -// -// Construct and append a VFNMADD231SS instruction to the active function. -// Operates on the global context. -func VFNMADD231SS(ops ...operand.Op) { ctx.VFNMADD231SS(ops...) } - -// VFNMADD231SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231SS.RD_SAE xmm xmm k xmm -// VFNMADD231SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SS.RD_SAE instruction to the active function. -func (c *Context) VFNMADD231SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SS_RD_SAE(ops...)) -} - -// VFNMADD231SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231SS.RD_SAE xmm xmm k xmm -// VFNMADD231SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231SS_RD_SAE(ops ...operand.Op) { ctx.VFNMADD231SS_RD_SAE(ops...) } - -// VFNMADD231SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD231SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD231SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD231SS_RD_SAE_Z(x, x1, k, x2) } - -// VFNMADD231SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231SS.RN_SAE xmm xmm k xmm -// VFNMADD231SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SS.RN_SAE instruction to the active function. -func (c *Context) VFNMADD231SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SS_RN_SAE(ops...)) -} - -// VFNMADD231SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231SS.RN_SAE xmm xmm k xmm -// VFNMADD231SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231SS_RN_SAE(ops ...operand.Op) { ctx.VFNMADD231SS_RN_SAE(ops...) } - -// VFNMADD231SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD231SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD231SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD231SS_RN_SAE_Z(x, x1, k, x2) } - -// VFNMADD231SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231SS.RU_SAE xmm xmm k xmm -// VFNMADD231SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SS.RU_SAE instruction to the active function. -func (c *Context) VFNMADD231SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SS_RU_SAE(ops...)) -} - -// VFNMADD231SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231SS.RU_SAE xmm xmm k xmm -// VFNMADD231SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231SS_RU_SAE(ops ...operand.Op) { ctx.VFNMADD231SS_RU_SAE(ops...) } - -// VFNMADD231SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD231SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD231SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD231SS_RU_SAE_Z(x, x1, k, x2) } - -// VFNMADD231SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231SS.RZ_SAE xmm xmm k xmm -// VFNMADD231SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SS.RZ_SAE instruction to the active function. -func (c *Context) VFNMADD231SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMADD231SS_RZ_SAE(ops...)) -} - -// VFNMADD231SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231SS.RZ_SAE xmm xmm k xmm -// VFNMADD231SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMADD231SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMADD231SS_RZ_SAE(ops ...operand.Op) { ctx.VFNMADD231SS_RZ_SAE(ops...) } - -// VFNMADD231SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMADD231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMADD231SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMADD231SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMADD231SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMADD231SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.Z m32 xmm k xmm -// VFNMADD231SS.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.Z instruction to the active function. -func (c *Context) VFNMADD231SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMADD231SS_Z(mx, x, k, x1)) -} - -// VFNMADD231SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.Z m32 xmm k xmm -// VFNMADD231SS.Z xmm xmm k xmm -// -// Construct and append a VFNMADD231SS.Z instruction to the active function. -// Operates on the global context. -func VFNMADD231SS_Z(mx, x, k, x1 operand.Op) { ctx.VFNMADD231SS_Z(mx, x, k, x1) } - -// VFNMSUB132PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132PD m128 xmm xmm -// VFNMSUB132PD m256 ymm ymm -// VFNMSUB132PD xmm xmm xmm -// VFNMSUB132PD ymm ymm ymm -// VFNMSUB132PD m128 xmm k xmm -// VFNMSUB132PD m256 ymm k ymm -// VFNMSUB132PD xmm xmm k xmm -// VFNMSUB132PD ymm ymm k ymm -// VFNMSUB132PD m512 zmm k zmm -// VFNMSUB132PD m512 zmm zmm -// VFNMSUB132PD zmm zmm k zmm -// VFNMSUB132PD zmm zmm zmm -// -// Construct and append a VFNMSUB132PD instruction to the active function. -func (c *Context) VFNMSUB132PD(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PD(ops...)) -} - -// VFNMSUB132PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132PD m128 xmm xmm -// VFNMSUB132PD m256 ymm ymm -// VFNMSUB132PD xmm xmm xmm -// VFNMSUB132PD ymm ymm ymm -// VFNMSUB132PD m128 xmm k xmm -// VFNMSUB132PD m256 ymm k ymm -// VFNMSUB132PD xmm xmm k xmm -// VFNMSUB132PD ymm ymm k ymm -// VFNMSUB132PD m512 zmm k zmm -// VFNMSUB132PD m512 zmm zmm -// VFNMSUB132PD zmm zmm k zmm -// VFNMSUB132PD zmm zmm zmm -// -// Construct and append a VFNMSUB132PD instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD(ops ...operand.Op) { ctx.VFNMSUB132PD(ops...) } - -// VFNMSUB132PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB132PD.BCST m64 xmm k xmm -// VFNMSUB132PD.BCST m64 xmm xmm -// VFNMSUB132PD.BCST m64 ymm k ymm -// VFNMSUB132PD.BCST m64 ymm ymm -// VFNMSUB132PD.BCST m64 zmm k zmm -// VFNMSUB132PD.BCST m64 zmm zmm -// -// Construct and append a VFNMSUB132PD.BCST instruction to the active function. -func (c *Context) VFNMSUB132PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_BCST(ops...)) -} - -// VFNMSUB132PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB132PD.BCST m64 xmm k xmm -// VFNMSUB132PD.BCST m64 xmm xmm -// VFNMSUB132PD.BCST m64 ymm k ymm -// VFNMSUB132PD.BCST m64 ymm ymm -// VFNMSUB132PD.BCST m64 zmm k zmm -// VFNMSUB132PD.BCST m64 zmm zmm -// -// Construct and append a VFNMSUB132PD.BCST instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_BCST(ops ...operand.Op) { ctx.VFNMSUB132PD_BCST(ops...) } - -// VFNMSUB132PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.BCST.Z m64 xmm k xmm -// VFNMSUB132PD.BCST.Z m64 ymm k ymm -// VFNMSUB132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMSUB132PD.BCST.Z instruction to the active function. -func (c *Context) VFNMSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMSUB132PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.BCST.Z m64 xmm k xmm -// VFNMSUB132PD.BCST.Z m64 ymm k ymm -// VFNMSUB132PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMSUB132PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB132PD_BCST_Z(m, xyz, k, xyz1) } - -// VFNMSUB132PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132PD.RD_SAE zmm zmm k zmm -// VFNMSUB132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PD.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB132PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_RD_SAE(ops...)) -} - -// VFNMSUB132PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132PD.RD_SAE zmm zmm k zmm -// VFNMSUB132PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB132PD_RD_SAE(ops...) } - -// VFNMSUB132PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB132PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB132PD_RD_SAE_Z(z, z1, k, z2) } - -// VFNMSUB132PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132PD.RN_SAE zmm zmm k zmm -// VFNMSUB132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PD.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB132PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_RN_SAE(ops...)) -} - -// VFNMSUB132PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132PD.RN_SAE zmm zmm k zmm -// VFNMSUB132PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB132PD_RN_SAE(ops...) } - -// VFNMSUB132PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB132PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB132PD_RN_SAE_Z(z, z1, k, z2) } - -// VFNMSUB132PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132PD.RU_SAE zmm zmm k zmm -// VFNMSUB132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PD.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB132PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_RU_SAE(ops...)) -} - -// VFNMSUB132PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132PD.RU_SAE zmm zmm k zmm -// VFNMSUB132PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB132PD_RU_SAE(ops...) } - -// VFNMSUB132PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB132PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB132PD_RU_SAE_Z(z, z1, k, z2) } - -// VFNMSUB132PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132PD.RZ_SAE zmm zmm k zmm -// VFNMSUB132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PD.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB132PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_RZ_SAE(ops...)) -} - -// VFNMSUB132PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132PD.RZ_SAE zmm zmm k zmm -// VFNMSUB132PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB132PD_RZ_SAE(ops...) } - -// VFNMSUB132PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB132PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB132PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMSUB132PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.Z m128 xmm k xmm -// VFNMSUB132PD.Z m256 ymm k ymm -// VFNMSUB132PD.Z xmm xmm k xmm -// VFNMSUB132PD.Z ymm ymm k ymm -// VFNMSUB132PD.Z m512 zmm k zmm -// VFNMSUB132PD.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.Z instruction to the active function. -func (c *Context) VFNMSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB132PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMSUB132PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.Z m128 xmm k xmm -// VFNMSUB132PD.Z m256 ymm k ymm -// VFNMSUB132PD.Z xmm xmm k xmm -// VFNMSUB132PD.Z ymm ymm k ymm -// VFNMSUB132PD.Z m512 zmm k zmm -// VFNMSUB132PD.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PD.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB132PD_Z(mxyz, xyz, k, xyz1) } - -// VFNMSUB132PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132PS m128 xmm xmm -// VFNMSUB132PS m256 ymm ymm -// VFNMSUB132PS xmm xmm xmm -// VFNMSUB132PS ymm ymm ymm -// VFNMSUB132PS m128 xmm k xmm -// VFNMSUB132PS m256 ymm k ymm -// VFNMSUB132PS xmm xmm k xmm -// VFNMSUB132PS ymm ymm k ymm -// VFNMSUB132PS m512 zmm k zmm -// VFNMSUB132PS m512 zmm zmm -// VFNMSUB132PS zmm zmm k zmm -// VFNMSUB132PS zmm zmm zmm -// -// Construct and append a VFNMSUB132PS instruction to the active function. -func (c *Context) VFNMSUB132PS(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PS(ops...)) -} - -// VFNMSUB132PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132PS m128 xmm xmm -// VFNMSUB132PS m256 ymm ymm -// VFNMSUB132PS xmm xmm xmm -// VFNMSUB132PS ymm ymm ymm -// VFNMSUB132PS m128 xmm k xmm -// VFNMSUB132PS m256 ymm k ymm -// VFNMSUB132PS xmm xmm k xmm -// VFNMSUB132PS ymm ymm k ymm -// VFNMSUB132PS m512 zmm k zmm -// VFNMSUB132PS m512 zmm zmm -// VFNMSUB132PS zmm zmm k zmm -// VFNMSUB132PS zmm zmm zmm -// -// Construct and append a VFNMSUB132PS instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS(ops ...operand.Op) { ctx.VFNMSUB132PS(ops...) } - -// VFNMSUB132PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB132PS.BCST m32 xmm k xmm -// VFNMSUB132PS.BCST m32 xmm xmm -// VFNMSUB132PS.BCST m32 ymm k ymm -// VFNMSUB132PS.BCST m32 ymm ymm -// VFNMSUB132PS.BCST m32 zmm k zmm -// VFNMSUB132PS.BCST m32 zmm zmm -// -// Construct and append a VFNMSUB132PS.BCST instruction to the active function. -func (c *Context) VFNMSUB132PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_BCST(ops...)) -} - -// VFNMSUB132PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB132PS.BCST m32 xmm k xmm -// VFNMSUB132PS.BCST m32 xmm xmm -// VFNMSUB132PS.BCST m32 ymm k ymm -// VFNMSUB132PS.BCST m32 ymm ymm -// VFNMSUB132PS.BCST m32 zmm k zmm -// VFNMSUB132PS.BCST m32 zmm zmm -// -// Construct and append a VFNMSUB132PS.BCST instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_BCST(ops ...operand.Op) { ctx.VFNMSUB132PS_BCST(ops...) } - -// VFNMSUB132PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.BCST.Z m32 xmm k xmm -// VFNMSUB132PS.BCST.Z m32 ymm k ymm -// VFNMSUB132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMSUB132PS.BCST.Z instruction to the active function. -func (c *Context) VFNMSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMSUB132PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.BCST.Z m32 xmm k xmm -// VFNMSUB132PS.BCST.Z m32 ymm k ymm -// VFNMSUB132PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMSUB132PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB132PS_BCST_Z(m, xyz, k, xyz1) } - -// VFNMSUB132PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132PS.RD_SAE zmm zmm k zmm -// VFNMSUB132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PS.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB132PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_RD_SAE(ops...)) -} - -// VFNMSUB132PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132PS.RD_SAE zmm zmm k zmm -// VFNMSUB132PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB132PS_RD_SAE(ops...) } - -// VFNMSUB132PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB132PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB132PS_RD_SAE_Z(z, z1, k, z2) } - -// VFNMSUB132PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132PS.RN_SAE zmm zmm k zmm -// VFNMSUB132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PS.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB132PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_RN_SAE(ops...)) -} - -// VFNMSUB132PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132PS.RN_SAE zmm zmm k zmm -// VFNMSUB132PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB132PS_RN_SAE(ops...) } - -// VFNMSUB132PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB132PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB132PS_RN_SAE_Z(z, z1, k, z2) } - -// VFNMSUB132PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132PS.RU_SAE zmm zmm k zmm -// VFNMSUB132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PS.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB132PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_RU_SAE(ops...)) -} - -// VFNMSUB132PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132PS.RU_SAE zmm zmm k zmm -// VFNMSUB132PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB132PS_RU_SAE(ops...) } - -// VFNMSUB132PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB132PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB132PS_RU_SAE_Z(z, z1, k, z2) } - -// VFNMSUB132PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132PS.RZ_SAE zmm zmm k zmm -// VFNMSUB132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PS.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB132PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_RZ_SAE(ops...)) -} - -// VFNMSUB132PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132PS.RZ_SAE zmm zmm k zmm -// VFNMSUB132PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB132PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB132PS_RZ_SAE(ops...) } - -// VFNMSUB132PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB132PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB132PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMSUB132PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.Z m128 xmm k xmm -// VFNMSUB132PS.Z m256 ymm k ymm -// VFNMSUB132PS.Z xmm xmm k xmm -// VFNMSUB132PS.Z ymm ymm k ymm -// VFNMSUB132PS.Z m512 zmm k zmm -// VFNMSUB132PS.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.Z instruction to the active function. -func (c *Context) VFNMSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB132PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMSUB132PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.Z m128 xmm k xmm -// VFNMSUB132PS.Z m256 ymm k ymm -// VFNMSUB132PS.Z xmm xmm k xmm -// VFNMSUB132PS.Z ymm ymm k ymm -// VFNMSUB132PS.Z m512 zmm k zmm -// VFNMSUB132PS.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB132PS.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB132PS_Z(mxyz, xyz, k, xyz1) } - -// VFNMSUB132SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132SD m64 xmm xmm -// VFNMSUB132SD xmm xmm xmm -// VFNMSUB132SD m64 xmm k xmm -// VFNMSUB132SD xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD instruction to the active function. -func (c *Context) VFNMSUB132SD(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SD(ops...)) -} - -// VFNMSUB132SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132SD m64 xmm xmm -// VFNMSUB132SD xmm xmm xmm -// VFNMSUB132SD m64 xmm k xmm -// VFNMSUB132SD xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD(ops ...operand.Op) { ctx.VFNMSUB132SD(ops...) } - -// VFNMSUB132SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132SD.RD_SAE xmm xmm k xmm -// VFNMSUB132SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SD.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB132SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SD_RD_SAE(ops...)) -} - -// VFNMSUB132SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132SD.RD_SAE xmm xmm k xmm -// VFNMSUB132SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB132SD_RD_SAE(ops...) } - -// VFNMSUB132SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB132SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB132SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB132SD_RD_SAE_Z(x, x1, k, x2) } - -// VFNMSUB132SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132SD.RN_SAE xmm xmm k xmm -// VFNMSUB132SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SD.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB132SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SD_RN_SAE(ops...)) -} - -// VFNMSUB132SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132SD.RN_SAE xmm xmm k xmm -// VFNMSUB132SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB132SD_RN_SAE(ops...) } - -// VFNMSUB132SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB132SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB132SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB132SD_RN_SAE_Z(x, x1, k, x2) } - -// VFNMSUB132SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132SD.RU_SAE xmm xmm k xmm -// VFNMSUB132SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SD.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB132SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SD_RU_SAE(ops...)) -} - -// VFNMSUB132SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132SD.RU_SAE xmm xmm k xmm -// VFNMSUB132SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB132SD_RU_SAE(ops...) } - -// VFNMSUB132SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB132SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB132SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB132SD_RU_SAE_Z(x, x1, k, x2) } - -// VFNMSUB132SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132SD.RZ_SAE xmm xmm k xmm -// VFNMSUB132SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SD.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB132SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SD_RZ_SAE(ops...)) -} - -// VFNMSUB132SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132SD.RZ_SAE xmm xmm k xmm -// VFNMSUB132SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB132SD_RZ_SAE(ops...) } - -// VFNMSUB132SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB132SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB132SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB132SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMSUB132SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.Z m64 xmm k xmm -// VFNMSUB132SD.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.Z instruction to the active function. -func (c *Context) VFNMSUB132SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMSUB132SD_Z(mx, x, k, x1)) -} - -// VFNMSUB132SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.Z m64 xmm k xmm -// VFNMSUB132SD.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SD.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SD_Z(mx, x, k, x1 operand.Op) { ctx.VFNMSUB132SD_Z(mx, x, k, x1) } - -// VFNMSUB132SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132SS m32 xmm xmm -// VFNMSUB132SS xmm xmm xmm -// VFNMSUB132SS m32 xmm k xmm -// VFNMSUB132SS xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS instruction to the active function. -func (c *Context) VFNMSUB132SS(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SS(ops...)) -} - -// VFNMSUB132SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132SS m32 xmm xmm -// VFNMSUB132SS xmm xmm xmm -// VFNMSUB132SS m32 xmm k xmm -// VFNMSUB132SS xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS(ops ...operand.Op) { ctx.VFNMSUB132SS(ops...) } - -// VFNMSUB132SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132SS.RD_SAE xmm xmm k xmm -// VFNMSUB132SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SS.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB132SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SS_RD_SAE(ops...)) -} - -// VFNMSUB132SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132SS.RD_SAE xmm xmm k xmm -// VFNMSUB132SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB132SS_RD_SAE(ops...) } - -// VFNMSUB132SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB132SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB132SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB132SS_RD_SAE_Z(x, x1, k, x2) } - -// VFNMSUB132SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132SS.RN_SAE xmm xmm k xmm -// VFNMSUB132SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SS.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB132SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SS_RN_SAE(ops...)) -} - -// VFNMSUB132SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132SS.RN_SAE xmm xmm k xmm -// VFNMSUB132SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB132SS_RN_SAE(ops...) } - -// VFNMSUB132SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB132SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB132SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB132SS_RN_SAE_Z(x, x1, k, x2) } - -// VFNMSUB132SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132SS.RU_SAE xmm xmm k xmm -// VFNMSUB132SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SS.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB132SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SS_RU_SAE(ops...)) -} - -// VFNMSUB132SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132SS.RU_SAE xmm xmm k xmm -// VFNMSUB132SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB132SS_RU_SAE(ops...) } - -// VFNMSUB132SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB132SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB132SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB132SS_RU_SAE_Z(x, x1, k, x2) } - -// VFNMSUB132SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132SS.RZ_SAE xmm xmm k xmm -// VFNMSUB132SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SS.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB132SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB132SS_RZ_SAE(ops...)) -} - -// VFNMSUB132SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132SS.RZ_SAE xmm xmm k xmm -// VFNMSUB132SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB132SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB132SS_RZ_SAE(ops...) } - -// VFNMSUB132SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB132SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB132SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB132SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMSUB132SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.Z m32 xmm k xmm -// VFNMSUB132SS.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.Z instruction to the active function. -func (c *Context) VFNMSUB132SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMSUB132SS_Z(mx, x, k, x1)) -} - -// VFNMSUB132SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.Z m32 xmm k xmm -// VFNMSUB132SS.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB132SS.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB132SS_Z(mx, x, k, x1 operand.Op) { ctx.VFNMSUB132SS_Z(mx, x, k, x1) } - -// VFNMSUB213PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213PD m128 xmm xmm -// VFNMSUB213PD m256 ymm ymm -// VFNMSUB213PD xmm xmm xmm -// VFNMSUB213PD ymm ymm ymm -// VFNMSUB213PD m128 xmm k xmm -// VFNMSUB213PD m256 ymm k ymm -// VFNMSUB213PD xmm xmm k xmm -// VFNMSUB213PD ymm ymm k ymm -// VFNMSUB213PD m512 zmm k zmm -// VFNMSUB213PD m512 zmm zmm -// VFNMSUB213PD zmm zmm k zmm -// VFNMSUB213PD zmm zmm zmm -// -// Construct and append a VFNMSUB213PD instruction to the active function. -func (c *Context) VFNMSUB213PD(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PD(ops...)) -} - -// VFNMSUB213PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213PD m128 xmm xmm -// VFNMSUB213PD m256 ymm ymm -// VFNMSUB213PD xmm xmm xmm -// VFNMSUB213PD ymm ymm ymm -// VFNMSUB213PD m128 xmm k xmm -// VFNMSUB213PD m256 ymm k ymm -// VFNMSUB213PD xmm xmm k xmm -// VFNMSUB213PD ymm ymm k ymm -// VFNMSUB213PD m512 zmm k zmm -// VFNMSUB213PD m512 zmm zmm -// VFNMSUB213PD zmm zmm k zmm -// VFNMSUB213PD zmm zmm zmm -// -// Construct and append a VFNMSUB213PD instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD(ops ...operand.Op) { ctx.VFNMSUB213PD(ops...) } - -// VFNMSUB213PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB213PD.BCST m64 xmm k xmm -// VFNMSUB213PD.BCST m64 xmm xmm -// VFNMSUB213PD.BCST m64 ymm k ymm -// VFNMSUB213PD.BCST m64 ymm ymm -// VFNMSUB213PD.BCST m64 zmm k zmm -// VFNMSUB213PD.BCST m64 zmm zmm -// -// Construct and append a VFNMSUB213PD.BCST instruction to the active function. -func (c *Context) VFNMSUB213PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_BCST(ops...)) -} - -// VFNMSUB213PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB213PD.BCST m64 xmm k xmm -// VFNMSUB213PD.BCST m64 xmm xmm -// VFNMSUB213PD.BCST m64 ymm k ymm -// VFNMSUB213PD.BCST m64 ymm ymm -// VFNMSUB213PD.BCST m64 zmm k zmm -// VFNMSUB213PD.BCST m64 zmm zmm -// -// Construct and append a VFNMSUB213PD.BCST instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_BCST(ops ...operand.Op) { ctx.VFNMSUB213PD_BCST(ops...) } - -// VFNMSUB213PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.BCST.Z m64 xmm k xmm -// VFNMSUB213PD.BCST.Z m64 ymm k ymm -// VFNMSUB213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMSUB213PD.BCST.Z instruction to the active function. -func (c *Context) VFNMSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMSUB213PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.BCST.Z m64 xmm k xmm -// VFNMSUB213PD.BCST.Z m64 ymm k ymm -// VFNMSUB213PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMSUB213PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB213PD_BCST_Z(m, xyz, k, xyz1) } - -// VFNMSUB213PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213PD.RD_SAE zmm zmm k zmm -// VFNMSUB213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PD.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB213PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_RD_SAE(ops...)) -} - -// VFNMSUB213PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213PD.RD_SAE zmm zmm k zmm -// VFNMSUB213PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB213PD_RD_SAE(ops...) } - -// VFNMSUB213PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB213PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB213PD_RD_SAE_Z(z, z1, k, z2) } - -// VFNMSUB213PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213PD.RN_SAE zmm zmm k zmm -// VFNMSUB213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PD.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB213PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_RN_SAE(ops...)) -} - -// VFNMSUB213PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213PD.RN_SAE zmm zmm k zmm -// VFNMSUB213PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB213PD_RN_SAE(ops...) } - -// VFNMSUB213PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB213PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB213PD_RN_SAE_Z(z, z1, k, z2) } - -// VFNMSUB213PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213PD.RU_SAE zmm zmm k zmm -// VFNMSUB213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PD.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB213PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_RU_SAE(ops...)) -} - -// VFNMSUB213PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213PD.RU_SAE zmm zmm k zmm -// VFNMSUB213PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB213PD_RU_SAE(ops...) } - -// VFNMSUB213PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB213PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB213PD_RU_SAE_Z(z, z1, k, z2) } - -// VFNMSUB213PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213PD.RZ_SAE zmm zmm k zmm -// VFNMSUB213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PD.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB213PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_RZ_SAE(ops...)) -} - -// VFNMSUB213PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213PD.RZ_SAE zmm zmm k zmm -// VFNMSUB213PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB213PD_RZ_SAE(ops...) } - -// VFNMSUB213PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB213PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB213PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMSUB213PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.Z m128 xmm k xmm -// VFNMSUB213PD.Z m256 ymm k ymm -// VFNMSUB213PD.Z xmm xmm k xmm -// VFNMSUB213PD.Z ymm ymm k ymm -// VFNMSUB213PD.Z m512 zmm k zmm -// VFNMSUB213PD.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.Z instruction to the active function. -func (c *Context) VFNMSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB213PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMSUB213PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.Z m128 xmm k xmm -// VFNMSUB213PD.Z m256 ymm k ymm -// VFNMSUB213PD.Z xmm xmm k xmm -// VFNMSUB213PD.Z ymm ymm k ymm -// VFNMSUB213PD.Z m512 zmm k zmm -// VFNMSUB213PD.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PD.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB213PD_Z(mxyz, xyz, k, xyz1) } - -// VFNMSUB213PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213PS m128 xmm xmm -// VFNMSUB213PS m256 ymm ymm -// VFNMSUB213PS xmm xmm xmm -// VFNMSUB213PS ymm ymm ymm -// VFNMSUB213PS m128 xmm k xmm -// VFNMSUB213PS m256 ymm k ymm -// VFNMSUB213PS xmm xmm k xmm -// VFNMSUB213PS ymm ymm k ymm -// VFNMSUB213PS m512 zmm k zmm -// VFNMSUB213PS m512 zmm zmm -// VFNMSUB213PS zmm zmm k zmm -// VFNMSUB213PS zmm zmm zmm -// -// Construct and append a VFNMSUB213PS instruction to the active function. -func (c *Context) VFNMSUB213PS(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PS(ops...)) -} - -// VFNMSUB213PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213PS m128 xmm xmm -// VFNMSUB213PS m256 ymm ymm -// VFNMSUB213PS xmm xmm xmm -// VFNMSUB213PS ymm ymm ymm -// VFNMSUB213PS m128 xmm k xmm -// VFNMSUB213PS m256 ymm k ymm -// VFNMSUB213PS xmm xmm k xmm -// VFNMSUB213PS ymm ymm k ymm -// VFNMSUB213PS m512 zmm k zmm -// VFNMSUB213PS m512 zmm zmm -// VFNMSUB213PS zmm zmm k zmm -// VFNMSUB213PS zmm zmm zmm -// -// Construct and append a VFNMSUB213PS instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS(ops ...operand.Op) { ctx.VFNMSUB213PS(ops...) } - -// VFNMSUB213PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB213PS.BCST m32 xmm k xmm -// VFNMSUB213PS.BCST m32 xmm xmm -// VFNMSUB213PS.BCST m32 ymm k ymm -// VFNMSUB213PS.BCST m32 ymm ymm -// VFNMSUB213PS.BCST m32 zmm k zmm -// VFNMSUB213PS.BCST m32 zmm zmm -// -// Construct and append a VFNMSUB213PS.BCST instruction to the active function. -func (c *Context) VFNMSUB213PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_BCST(ops...)) -} - -// VFNMSUB213PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB213PS.BCST m32 xmm k xmm -// VFNMSUB213PS.BCST m32 xmm xmm -// VFNMSUB213PS.BCST m32 ymm k ymm -// VFNMSUB213PS.BCST m32 ymm ymm -// VFNMSUB213PS.BCST m32 zmm k zmm -// VFNMSUB213PS.BCST m32 zmm zmm -// -// Construct and append a VFNMSUB213PS.BCST instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_BCST(ops ...operand.Op) { ctx.VFNMSUB213PS_BCST(ops...) } - -// VFNMSUB213PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.BCST.Z m32 xmm k xmm -// VFNMSUB213PS.BCST.Z m32 ymm k ymm -// VFNMSUB213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMSUB213PS.BCST.Z instruction to the active function. -func (c *Context) VFNMSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMSUB213PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.BCST.Z m32 xmm k xmm -// VFNMSUB213PS.BCST.Z m32 ymm k ymm -// VFNMSUB213PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMSUB213PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB213PS_BCST_Z(m, xyz, k, xyz1) } - -// VFNMSUB213PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213PS.RD_SAE zmm zmm k zmm -// VFNMSUB213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PS.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB213PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_RD_SAE(ops...)) -} - -// VFNMSUB213PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213PS.RD_SAE zmm zmm k zmm -// VFNMSUB213PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB213PS_RD_SAE(ops...) } - -// VFNMSUB213PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB213PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB213PS_RD_SAE_Z(z, z1, k, z2) } - -// VFNMSUB213PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213PS.RN_SAE zmm zmm k zmm -// VFNMSUB213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PS.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB213PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_RN_SAE(ops...)) -} - -// VFNMSUB213PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213PS.RN_SAE zmm zmm k zmm -// VFNMSUB213PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB213PS_RN_SAE(ops...) } - -// VFNMSUB213PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB213PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB213PS_RN_SAE_Z(z, z1, k, z2) } - -// VFNMSUB213PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213PS.RU_SAE zmm zmm k zmm -// VFNMSUB213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PS.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB213PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_RU_SAE(ops...)) -} - -// VFNMSUB213PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213PS.RU_SAE zmm zmm k zmm -// VFNMSUB213PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB213PS_RU_SAE(ops...) } - -// VFNMSUB213PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB213PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB213PS_RU_SAE_Z(z, z1, k, z2) } - -// VFNMSUB213PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213PS.RZ_SAE zmm zmm k zmm -// VFNMSUB213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PS.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB213PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_RZ_SAE(ops...)) -} - -// VFNMSUB213PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213PS.RZ_SAE zmm zmm k zmm -// VFNMSUB213PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB213PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB213PS_RZ_SAE(ops...) } - -// VFNMSUB213PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB213PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB213PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMSUB213PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.Z m128 xmm k xmm -// VFNMSUB213PS.Z m256 ymm k ymm -// VFNMSUB213PS.Z xmm xmm k xmm -// VFNMSUB213PS.Z ymm ymm k ymm -// VFNMSUB213PS.Z m512 zmm k zmm -// VFNMSUB213PS.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.Z instruction to the active function. -func (c *Context) VFNMSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB213PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMSUB213PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.Z m128 xmm k xmm -// VFNMSUB213PS.Z m256 ymm k ymm -// VFNMSUB213PS.Z xmm xmm k xmm -// VFNMSUB213PS.Z ymm ymm k ymm -// VFNMSUB213PS.Z m512 zmm k zmm -// VFNMSUB213PS.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB213PS.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB213PS_Z(mxyz, xyz, k, xyz1) } - -// VFNMSUB213SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213SD m64 xmm xmm -// VFNMSUB213SD xmm xmm xmm -// VFNMSUB213SD m64 xmm k xmm -// VFNMSUB213SD xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD instruction to the active function. -func (c *Context) VFNMSUB213SD(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SD(ops...)) -} - -// VFNMSUB213SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213SD m64 xmm xmm -// VFNMSUB213SD xmm xmm xmm -// VFNMSUB213SD m64 xmm k xmm -// VFNMSUB213SD xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD(ops ...operand.Op) { ctx.VFNMSUB213SD(ops...) } - -// VFNMSUB213SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213SD.RD_SAE xmm xmm k xmm -// VFNMSUB213SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SD.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB213SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SD_RD_SAE(ops...)) -} - -// VFNMSUB213SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213SD.RD_SAE xmm xmm k xmm -// VFNMSUB213SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB213SD_RD_SAE(ops...) } - -// VFNMSUB213SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB213SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB213SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB213SD_RD_SAE_Z(x, x1, k, x2) } - -// VFNMSUB213SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213SD.RN_SAE xmm xmm k xmm -// VFNMSUB213SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SD.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB213SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SD_RN_SAE(ops...)) -} - -// VFNMSUB213SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213SD.RN_SAE xmm xmm k xmm -// VFNMSUB213SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB213SD_RN_SAE(ops...) } - -// VFNMSUB213SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB213SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB213SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB213SD_RN_SAE_Z(x, x1, k, x2) } - -// VFNMSUB213SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213SD.RU_SAE xmm xmm k xmm -// VFNMSUB213SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SD.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB213SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SD_RU_SAE(ops...)) -} - -// VFNMSUB213SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213SD.RU_SAE xmm xmm k xmm -// VFNMSUB213SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB213SD_RU_SAE(ops...) } - -// VFNMSUB213SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB213SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB213SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB213SD_RU_SAE_Z(x, x1, k, x2) } - -// VFNMSUB213SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213SD.RZ_SAE xmm xmm k xmm -// VFNMSUB213SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SD.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB213SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SD_RZ_SAE(ops...)) -} - -// VFNMSUB213SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213SD.RZ_SAE xmm xmm k xmm -// VFNMSUB213SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB213SD_RZ_SAE(ops...) } - -// VFNMSUB213SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB213SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB213SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB213SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMSUB213SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.Z m64 xmm k xmm -// VFNMSUB213SD.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.Z instruction to the active function. -func (c *Context) VFNMSUB213SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMSUB213SD_Z(mx, x, k, x1)) -} - -// VFNMSUB213SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.Z m64 xmm k xmm -// VFNMSUB213SD.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SD.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SD_Z(mx, x, k, x1 operand.Op) { ctx.VFNMSUB213SD_Z(mx, x, k, x1) } - -// VFNMSUB213SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213SS m32 xmm xmm -// VFNMSUB213SS xmm xmm xmm -// VFNMSUB213SS m32 xmm k xmm -// VFNMSUB213SS xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS instruction to the active function. -func (c *Context) VFNMSUB213SS(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SS(ops...)) -} - -// VFNMSUB213SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213SS m32 xmm xmm -// VFNMSUB213SS xmm xmm xmm -// VFNMSUB213SS m32 xmm k xmm -// VFNMSUB213SS xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS(ops ...operand.Op) { ctx.VFNMSUB213SS(ops...) } - -// VFNMSUB213SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213SS.RD_SAE xmm xmm k xmm -// VFNMSUB213SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SS.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB213SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SS_RD_SAE(ops...)) -} - -// VFNMSUB213SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213SS.RD_SAE xmm xmm k xmm -// VFNMSUB213SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB213SS_RD_SAE(ops...) } - -// VFNMSUB213SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB213SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB213SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB213SS_RD_SAE_Z(x, x1, k, x2) } - -// VFNMSUB213SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213SS.RN_SAE xmm xmm k xmm -// VFNMSUB213SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SS.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB213SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SS_RN_SAE(ops...)) -} - -// VFNMSUB213SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213SS.RN_SAE xmm xmm k xmm -// VFNMSUB213SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB213SS_RN_SAE(ops...) } - -// VFNMSUB213SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB213SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB213SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB213SS_RN_SAE_Z(x, x1, k, x2) } - -// VFNMSUB213SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213SS.RU_SAE xmm xmm k xmm -// VFNMSUB213SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SS.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB213SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SS_RU_SAE(ops...)) -} - -// VFNMSUB213SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213SS.RU_SAE xmm xmm k xmm -// VFNMSUB213SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB213SS_RU_SAE(ops...) } - -// VFNMSUB213SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB213SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB213SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB213SS_RU_SAE_Z(x, x1, k, x2) } - -// VFNMSUB213SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213SS.RZ_SAE xmm xmm k xmm -// VFNMSUB213SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SS.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB213SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB213SS_RZ_SAE(ops...)) -} - -// VFNMSUB213SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213SS.RZ_SAE xmm xmm k xmm -// VFNMSUB213SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB213SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB213SS_RZ_SAE(ops...) } - -// VFNMSUB213SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB213SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB213SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB213SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMSUB213SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.Z m32 xmm k xmm -// VFNMSUB213SS.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.Z instruction to the active function. -func (c *Context) VFNMSUB213SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMSUB213SS_Z(mx, x, k, x1)) -} - -// VFNMSUB213SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.Z m32 xmm k xmm -// VFNMSUB213SS.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB213SS.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB213SS_Z(mx, x, k, x1 operand.Op) { ctx.VFNMSUB213SS_Z(mx, x, k, x1) } - -// VFNMSUB231PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231PD m128 xmm xmm -// VFNMSUB231PD m256 ymm ymm -// VFNMSUB231PD xmm xmm xmm -// VFNMSUB231PD ymm ymm ymm -// VFNMSUB231PD m128 xmm k xmm -// VFNMSUB231PD m256 ymm k ymm -// VFNMSUB231PD xmm xmm k xmm -// VFNMSUB231PD ymm ymm k ymm -// VFNMSUB231PD m512 zmm k zmm -// VFNMSUB231PD m512 zmm zmm -// VFNMSUB231PD zmm zmm k zmm -// VFNMSUB231PD zmm zmm zmm -// -// Construct and append a VFNMSUB231PD instruction to the active function. -func (c *Context) VFNMSUB231PD(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PD(ops...)) -} - -// VFNMSUB231PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231PD m128 xmm xmm -// VFNMSUB231PD m256 ymm ymm -// VFNMSUB231PD xmm xmm xmm -// VFNMSUB231PD ymm ymm ymm -// VFNMSUB231PD m128 xmm k xmm -// VFNMSUB231PD m256 ymm k ymm -// VFNMSUB231PD xmm xmm k xmm -// VFNMSUB231PD ymm ymm k ymm -// VFNMSUB231PD m512 zmm k zmm -// VFNMSUB231PD m512 zmm zmm -// VFNMSUB231PD zmm zmm k zmm -// VFNMSUB231PD zmm zmm zmm -// -// Construct and append a VFNMSUB231PD instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD(ops ...operand.Op) { ctx.VFNMSUB231PD(ops...) } - -// VFNMSUB231PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB231PD.BCST m64 xmm k xmm -// VFNMSUB231PD.BCST m64 xmm xmm -// VFNMSUB231PD.BCST m64 ymm k ymm -// VFNMSUB231PD.BCST m64 ymm ymm -// VFNMSUB231PD.BCST m64 zmm k zmm -// VFNMSUB231PD.BCST m64 zmm zmm -// -// Construct and append a VFNMSUB231PD.BCST instruction to the active function. -func (c *Context) VFNMSUB231PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_BCST(ops...)) -} - -// VFNMSUB231PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB231PD.BCST m64 xmm k xmm -// VFNMSUB231PD.BCST m64 xmm xmm -// VFNMSUB231PD.BCST m64 ymm k ymm -// VFNMSUB231PD.BCST m64 ymm ymm -// VFNMSUB231PD.BCST m64 zmm k zmm -// VFNMSUB231PD.BCST m64 zmm zmm -// -// Construct and append a VFNMSUB231PD.BCST instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_BCST(ops ...operand.Op) { ctx.VFNMSUB231PD_BCST(ops...) } - -// VFNMSUB231PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.BCST.Z m64 xmm k xmm -// VFNMSUB231PD.BCST.Z m64 ymm k ymm -// VFNMSUB231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMSUB231PD.BCST.Z instruction to the active function. -func (c *Context) VFNMSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMSUB231PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.BCST.Z m64 xmm k xmm -// VFNMSUB231PD.BCST.Z m64 ymm k ymm -// VFNMSUB231PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VFNMSUB231PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB231PD_BCST_Z(m, xyz, k, xyz1) } - -// VFNMSUB231PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231PD.RD_SAE zmm zmm k zmm -// VFNMSUB231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PD.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB231PD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_RD_SAE(ops...)) -} - -// VFNMSUB231PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231PD.RD_SAE zmm zmm k zmm -// VFNMSUB231PD.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB231PD_RD_SAE(ops...) } - -// VFNMSUB231PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB231PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB231PD_RD_SAE_Z(z, z1, k, z2) } - -// VFNMSUB231PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231PD.RN_SAE zmm zmm k zmm -// VFNMSUB231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PD.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB231PD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_RN_SAE(ops...)) -} - -// VFNMSUB231PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231PD.RN_SAE zmm zmm k zmm -// VFNMSUB231PD.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB231PD_RN_SAE(ops...) } - -// VFNMSUB231PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB231PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB231PD_RN_SAE_Z(z, z1, k, z2) } - -// VFNMSUB231PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231PD.RU_SAE zmm zmm k zmm -// VFNMSUB231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PD.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB231PD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_RU_SAE(ops...)) -} - -// VFNMSUB231PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231PD.RU_SAE zmm zmm k zmm -// VFNMSUB231PD.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB231PD_RU_SAE(ops...) } - -// VFNMSUB231PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB231PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB231PD_RU_SAE_Z(z, z1, k, z2) } - -// VFNMSUB231PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231PD.RZ_SAE zmm zmm k zmm -// VFNMSUB231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PD.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB231PD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_RZ_SAE(ops...)) -} - -// VFNMSUB231PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231PD.RZ_SAE zmm zmm k zmm -// VFNMSUB231PD.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB231PD_RZ_SAE(ops...) } - -// VFNMSUB231PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB231PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB231PD_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMSUB231PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.Z m128 xmm k xmm -// VFNMSUB231PD.Z m256 ymm k ymm -// VFNMSUB231PD.Z xmm xmm k xmm -// VFNMSUB231PD.Z ymm ymm k ymm -// VFNMSUB231PD.Z m512 zmm k zmm -// VFNMSUB231PD.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.Z instruction to the active function. -func (c *Context) VFNMSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB231PD_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMSUB231PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.Z m128 xmm k xmm -// VFNMSUB231PD.Z m256 ymm k ymm -// VFNMSUB231PD.Z xmm xmm k xmm -// VFNMSUB231PD.Z ymm ymm k ymm -// VFNMSUB231PD.Z m512 zmm k zmm -// VFNMSUB231PD.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PD.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB231PD_Z(mxyz, xyz, k, xyz1) } - -// VFNMSUB231PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231PS m128 xmm xmm -// VFNMSUB231PS m256 ymm ymm -// VFNMSUB231PS xmm xmm xmm -// VFNMSUB231PS ymm ymm ymm -// VFNMSUB231PS m128 xmm k xmm -// VFNMSUB231PS m256 ymm k ymm -// VFNMSUB231PS xmm xmm k xmm -// VFNMSUB231PS ymm ymm k ymm -// VFNMSUB231PS m512 zmm k zmm -// VFNMSUB231PS m512 zmm zmm -// VFNMSUB231PS zmm zmm k zmm -// VFNMSUB231PS zmm zmm zmm -// -// Construct and append a VFNMSUB231PS instruction to the active function. -func (c *Context) VFNMSUB231PS(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PS(ops...)) -} - -// VFNMSUB231PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231PS m128 xmm xmm -// VFNMSUB231PS m256 ymm ymm -// VFNMSUB231PS xmm xmm xmm -// VFNMSUB231PS ymm ymm ymm -// VFNMSUB231PS m128 xmm k xmm -// VFNMSUB231PS m256 ymm k ymm -// VFNMSUB231PS xmm xmm k xmm -// VFNMSUB231PS ymm ymm k ymm -// VFNMSUB231PS m512 zmm k zmm -// VFNMSUB231PS m512 zmm zmm -// VFNMSUB231PS zmm zmm k zmm -// VFNMSUB231PS zmm zmm zmm -// -// Construct and append a VFNMSUB231PS instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS(ops ...operand.Op) { ctx.VFNMSUB231PS(ops...) } - -// VFNMSUB231PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB231PS.BCST m32 xmm k xmm -// VFNMSUB231PS.BCST m32 xmm xmm -// VFNMSUB231PS.BCST m32 ymm k ymm -// VFNMSUB231PS.BCST m32 ymm ymm -// VFNMSUB231PS.BCST m32 zmm k zmm -// VFNMSUB231PS.BCST m32 zmm zmm -// -// Construct and append a VFNMSUB231PS.BCST instruction to the active function. -func (c *Context) VFNMSUB231PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_BCST(ops...)) -} - -// VFNMSUB231PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB231PS.BCST m32 xmm k xmm -// VFNMSUB231PS.BCST m32 xmm xmm -// VFNMSUB231PS.BCST m32 ymm k ymm -// VFNMSUB231PS.BCST m32 ymm ymm -// VFNMSUB231PS.BCST m32 zmm k zmm -// VFNMSUB231PS.BCST m32 zmm zmm -// -// Construct and append a VFNMSUB231PS.BCST instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_BCST(ops ...operand.Op) { ctx.VFNMSUB231PS_BCST(ops...) } - -// VFNMSUB231PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.BCST.Z m32 xmm k xmm -// VFNMSUB231PS.BCST.Z m32 ymm k ymm -// VFNMSUB231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMSUB231PS.BCST.Z instruction to the active function. -func (c *Context) VFNMSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VFNMSUB231PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.BCST.Z m32 xmm k xmm -// VFNMSUB231PS.BCST.Z m32 ymm k ymm -// VFNMSUB231PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VFNMSUB231PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB231PS_BCST_Z(m, xyz, k, xyz1) } - -// VFNMSUB231PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231PS.RD_SAE zmm zmm k zmm -// VFNMSUB231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PS.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB231PS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_RD_SAE(ops...)) -} - -// VFNMSUB231PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231PS.RD_SAE zmm zmm k zmm -// VFNMSUB231PS.RD_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB231PS_RD_SAE(ops...) } - -// VFNMSUB231PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_RD_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB231PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB231PS_RD_SAE_Z(z, z1, k, z2) } - -// VFNMSUB231PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231PS.RN_SAE zmm zmm k zmm -// VFNMSUB231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PS.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB231PS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_RN_SAE(ops...)) -} - -// VFNMSUB231PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231PS.RN_SAE zmm zmm k zmm -// VFNMSUB231PS.RN_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB231PS_RN_SAE(ops...) } - -// VFNMSUB231PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_RN_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB231PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB231PS_RN_SAE_Z(z, z1, k, z2) } - -// VFNMSUB231PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231PS.RU_SAE zmm zmm k zmm -// VFNMSUB231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PS.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB231PS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_RU_SAE(ops...)) -} - -// VFNMSUB231PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231PS.RU_SAE zmm zmm k zmm -// VFNMSUB231PS.RU_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB231PS_RU_SAE(ops...) } - -// VFNMSUB231PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_RU_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB231PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB231PS_RU_SAE_Z(z, z1, k, z2) } - -// VFNMSUB231PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231PS.RZ_SAE zmm zmm k zmm -// VFNMSUB231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PS.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB231PS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_RZ_SAE(ops...)) -} - -// VFNMSUB231PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231PS.RZ_SAE zmm zmm k zmm -// VFNMSUB231PS.RZ_SAE zmm zmm zmm -// -// Construct and append a VFNMSUB231PS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB231PS_RZ_SAE(ops...) } - -// VFNMSUB231PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VFNMSUB231PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VFNMSUB231PS_RZ_SAE_Z(z, z1, k, z2) } - -// VFNMSUB231PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.Z m128 xmm k xmm -// VFNMSUB231PS.Z m256 ymm k ymm -// VFNMSUB231PS.Z xmm xmm k xmm -// VFNMSUB231PS.Z ymm ymm k ymm -// VFNMSUB231PS.Z m512 zmm k zmm -// VFNMSUB231PS.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.Z instruction to the active function. -func (c *Context) VFNMSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VFNMSUB231PS_Z(mxyz, xyz, k, xyz1)) -} - -// VFNMSUB231PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.Z m128 xmm k xmm -// VFNMSUB231PS.Z m256 ymm k ymm -// VFNMSUB231PS.Z xmm xmm k xmm -// VFNMSUB231PS.Z ymm ymm k ymm -// VFNMSUB231PS.Z m512 zmm k zmm -// VFNMSUB231PS.Z zmm zmm k zmm -// -// Construct and append a VFNMSUB231PS.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VFNMSUB231PS_Z(mxyz, xyz, k, xyz1) } - -// VFNMSUB231SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231SD m64 xmm xmm -// VFNMSUB231SD xmm xmm xmm -// VFNMSUB231SD m64 xmm k xmm -// VFNMSUB231SD xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD instruction to the active function. -func (c *Context) VFNMSUB231SD(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SD(ops...)) -} - -// VFNMSUB231SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231SD m64 xmm xmm -// VFNMSUB231SD xmm xmm xmm -// VFNMSUB231SD m64 xmm k xmm -// VFNMSUB231SD xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD(ops ...operand.Op) { ctx.VFNMSUB231SD(ops...) } - -// VFNMSUB231SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231SD.RD_SAE xmm xmm k xmm -// VFNMSUB231SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SD.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB231SD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SD_RD_SAE(ops...)) -} - -// VFNMSUB231SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231SD.RD_SAE xmm xmm k xmm -// VFNMSUB231SD.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SD.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB231SD_RD_SAE(ops...) } - -// VFNMSUB231SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB231SD_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB231SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB231SD_RD_SAE_Z(x, x1, k, x2) } - -// VFNMSUB231SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231SD.RN_SAE xmm xmm k xmm -// VFNMSUB231SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SD.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB231SD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SD_RN_SAE(ops...)) -} - -// VFNMSUB231SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231SD.RN_SAE xmm xmm k xmm -// VFNMSUB231SD.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SD.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB231SD_RN_SAE(ops...) } - -// VFNMSUB231SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB231SD_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB231SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB231SD_RN_SAE_Z(x, x1, k, x2) } - -// VFNMSUB231SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231SD.RU_SAE xmm xmm k xmm -// VFNMSUB231SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SD.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB231SD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SD_RU_SAE(ops...)) -} - -// VFNMSUB231SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231SD.RU_SAE xmm xmm k xmm -// VFNMSUB231SD.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SD.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB231SD_RU_SAE(ops...) } - -// VFNMSUB231SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB231SD_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB231SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB231SD_RU_SAE_Z(x, x1, k, x2) } - -// VFNMSUB231SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231SD.RZ_SAE xmm xmm k xmm -// VFNMSUB231SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SD.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB231SD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SD_RZ_SAE(ops...)) -} - -// VFNMSUB231SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231SD.RZ_SAE xmm xmm k xmm -// VFNMSUB231SD.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB231SD_RZ_SAE(ops...) } - -// VFNMSUB231SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB231SD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB231SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB231SD_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMSUB231SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.Z m64 xmm k xmm -// VFNMSUB231SD.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.Z instruction to the active function. -func (c *Context) VFNMSUB231SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMSUB231SD_Z(mx, x, k, x1)) -} - -// VFNMSUB231SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.Z m64 xmm k xmm -// VFNMSUB231SD.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SD.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SD_Z(mx, x, k, x1 operand.Op) { ctx.VFNMSUB231SD_Z(mx, x, k, x1) } - -// VFNMSUB231SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231SS m32 xmm xmm -// VFNMSUB231SS xmm xmm xmm -// VFNMSUB231SS m32 xmm k xmm -// VFNMSUB231SS xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS instruction to the active function. -func (c *Context) VFNMSUB231SS(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SS(ops...)) -} - -// VFNMSUB231SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231SS m32 xmm xmm -// VFNMSUB231SS xmm xmm xmm -// VFNMSUB231SS m32 xmm k xmm -// VFNMSUB231SS xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS(ops ...operand.Op) { ctx.VFNMSUB231SS(ops...) } - -// VFNMSUB231SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231SS.RD_SAE xmm xmm k xmm -// VFNMSUB231SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SS.RD_SAE instruction to the active function. -func (c *Context) VFNMSUB231SS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SS_RD_SAE(ops...)) -} - -// VFNMSUB231SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231SS.RD_SAE xmm xmm k xmm -// VFNMSUB231SS.RD_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SS.RD_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS_RD_SAE(ops ...operand.Op) { ctx.VFNMSUB231SS_RD_SAE(ops...) } - -// VFNMSUB231SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.RD_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB231SS_RD_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB231SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB231SS_RD_SAE_Z(x, x1, k, x2) } - -// VFNMSUB231SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231SS.RN_SAE xmm xmm k xmm -// VFNMSUB231SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SS.RN_SAE instruction to the active function. -func (c *Context) VFNMSUB231SS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SS_RN_SAE(ops...)) -} - -// VFNMSUB231SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231SS.RN_SAE xmm xmm k xmm -// VFNMSUB231SS.RN_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SS.RN_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS_RN_SAE(ops ...operand.Op) { ctx.VFNMSUB231SS_RN_SAE(ops...) } - -// VFNMSUB231SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.RN_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB231SS_RN_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB231SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB231SS_RN_SAE_Z(x, x1, k, x2) } - -// VFNMSUB231SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231SS.RU_SAE xmm xmm k xmm -// VFNMSUB231SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SS.RU_SAE instruction to the active function. -func (c *Context) VFNMSUB231SS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SS_RU_SAE(ops...)) -} - -// VFNMSUB231SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231SS.RU_SAE xmm xmm k xmm -// VFNMSUB231SS.RU_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SS.RU_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS_RU_SAE(ops ...operand.Op) { ctx.VFNMSUB231SS_RU_SAE(ops...) } - -// VFNMSUB231SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.RU_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB231SS_RU_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB231SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB231SS_RU_SAE_Z(x, x1, k, x2) } - -// VFNMSUB231SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231SS.RZ_SAE xmm xmm k xmm -// VFNMSUB231SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SS.RZ_SAE instruction to the active function. -func (c *Context) VFNMSUB231SS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VFNMSUB231SS_RZ_SAE(ops...)) -} - -// VFNMSUB231SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231SS.RZ_SAE xmm xmm k xmm -// VFNMSUB231SS.RZ_SAE xmm xmm xmm -// -// Construct and append a VFNMSUB231SS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS_RZ_SAE(ops ...operand.Op) { ctx.VFNMSUB231SS_RZ_SAE(ops...) } - -// VFNMSUB231SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.RZ_SAE.Z instruction to the active function. -func (c *Context) VFNMSUB231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VFNMSUB231SS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VFNMSUB231SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VFNMSUB231SS_RZ_SAE_Z(x, x1, k, x2) } - -// VFNMSUB231SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.Z m32 xmm k xmm -// VFNMSUB231SS.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.Z instruction to the active function. -func (c *Context) VFNMSUB231SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VFNMSUB231SS_Z(mx, x, k, x1)) -} - -// VFNMSUB231SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.Z m32 xmm k xmm -// VFNMSUB231SS.Z xmm xmm k xmm -// -// Construct and append a VFNMSUB231SS.Z instruction to the active function. -// Operates on the global context. -func VFNMSUB231SS_Z(mx, x, k, x1 operand.Op) { ctx.VFNMSUB231SS_Z(mx, x, k, x1) } - -// VFPCLASSPDX: Test Class of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPDX imm8 m128 k k -// VFPCLASSPDX imm8 m128 k -// VFPCLASSPDX imm8 xmm k k -// VFPCLASSPDX imm8 xmm k -// -// Construct and append a VFPCLASSPDX instruction to the active function. -func (c *Context) VFPCLASSPDX(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPDX(ops...)) -} - -// VFPCLASSPDX: Test Class of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPDX imm8 m128 k k -// VFPCLASSPDX imm8 m128 k -// VFPCLASSPDX imm8 xmm k k -// VFPCLASSPDX imm8 xmm k -// -// Construct and append a VFPCLASSPDX instruction to the active function. -// Operates on the global context. -func VFPCLASSPDX(ops ...operand.Op) { ctx.VFPCLASSPDX(ops...) } - -// VFPCLASSPDX_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPDX.BCST imm8 m64 k k -// VFPCLASSPDX.BCST imm8 m64 k -// -// Construct and append a VFPCLASSPDX.BCST instruction to the active function. -func (c *Context) VFPCLASSPDX_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPDX_BCST(ops...)) -} - -// VFPCLASSPDX_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPDX.BCST imm8 m64 k k -// VFPCLASSPDX.BCST imm8 m64 k -// -// Construct and append a VFPCLASSPDX.BCST instruction to the active function. -// Operates on the global context. -func VFPCLASSPDX_BCST(ops ...operand.Op) { ctx.VFPCLASSPDX_BCST(ops...) } - -// VFPCLASSPDY: Test Class of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPDY imm8 m256 k k -// VFPCLASSPDY imm8 m256 k -// VFPCLASSPDY imm8 ymm k k -// VFPCLASSPDY imm8 ymm k -// -// Construct and append a VFPCLASSPDY instruction to the active function. -func (c *Context) VFPCLASSPDY(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPDY(ops...)) -} - -// VFPCLASSPDY: Test Class of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPDY imm8 m256 k k -// VFPCLASSPDY imm8 m256 k -// VFPCLASSPDY imm8 ymm k k -// VFPCLASSPDY imm8 ymm k -// -// Construct and append a VFPCLASSPDY instruction to the active function. -// Operates on the global context. -func VFPCLASSPDY(ops ...operand.Op) { ctx.VFPCLASSPDY(ops...) } - -// VFPCLASSPDY_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPDY.BCST imm8 m64 k k -// VFPCLASSPDY.BCST imm8 m64 k -// -// Construct and append a VFPCLASSPDY.BCST instruction to the active function. -func (c *Context) VFPCLASSPDY_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPDY_BCST(ops...)) -} - -// VFPCLASSPDY_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPDY.BCST imm8 m64 k k -// VFPCLASSPDY.BCST imm8 m64 k -// -// Construct and append a VFPCLASSPDY.BCST instruction to the active function. -// Operates on the global context. -func VFPCLASSPDY_BCST(ops ...operand.Op) { ctx.VFPCLASSPDY_BCST(ops...) } - -// VFPCLASSPDZ: Test Class of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPDZ imm8 m512 k k -// VFPCLASSPDZ imm8 m512 k -// VFPCLASSPDZ imm8 zmm k k -// VFPCLASSPDZ imm8 zmm k -// -// Construct and append a VFPCLASSPDZ instruction to the active function. -func (c *Context) VFPCLASSPDZ(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPDZ(ops...)) -} - -// VFPCLASSPDZ: Test Class of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPDZ imm8 m512 k k -// VFPCLASSPDZ imm8 m512 k -// VFPCLASSPDZ imm8 zmm k k -// VFPCLASSPDZ imm8 zmm k -// -// Construct and append a VFPCLASSPDZ instruction to the active function. -// Operates on the global context. -func VFPCLASSPDZ(ops ...operand.Op) { ctx.VFPCLASSPDZ(ops...) } - -// VFPCLASSPDZ_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPDZ.BCST imm8 m64 k k -// VFPCLASSPDZ.BCST imm8 m64 k -// -// Construct and append a VFPCLASSPDZ.BCST instruction to the active function. -func (c *Context) VFPCLASSPDZ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPDZ_BCST(ops...)) -} - -// VFPCLASSPDZ_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPDZ.BCST imm8 m64 k k -// VFPCLASSPDZ.BCST imm8 m64 k -// -// Construct and append a VFPCLASSPDZ.BCST instruction to the active function. -// Operates on the global context. -func VFPCLASSPDZ_BCST(ops ...operand.Op) { ctx.VFPCLASSPDZ_BCST(ops...) } - -// VFPCLASSPSX: Test Class of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPSX imm8 m128 k k -// VFPCLASSPSX imm8 m128 k -// VFPCLASSPSX imm8 xmm k k -// VFPCLASSPSX imm8 xmm k -// -// Construct and append a VFPCLASSPSX instruction to the active function. -func (c *Context) VFPCLASSPSX(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPSX(ops...)) -} - -// VFPCLASSPSX: Test Class of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPSX imm8 m128 k k -// VFPCLASSPSX imm8 m128 k -// VFPCLASSPSX imm8 xmm k k -// VFPCLASSPSX imm8 xmm k -// -// Construct and append a VFPCLASSPSX instruction to the active function. -// Operates on the global context. -func VFPCLASSPSX(ops ...operand.Op) { ctx.VFPCLASSPSX(ops...) } - -// VFPCLASSPSX_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPSX.BCST imm8 m32 k k -// VFPCLASSPSX.BCST imm8 m32 k -// -// Construct and append a VFPCLASSPSX.BCST instruction to the active function. -func (c *Context) VFPCLASSPSX_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPSX_BCST(ops...)) -} - -// VFPCLASSPSX_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPSX.BCST imm8 m32 k k -// VFPCLASSPSX.BCST imm8 m32 k -// -// Construct and append a VFPCLASSPSX.BCST instruction to the active function. -// Operates on the global context. -func VFPCLASSPSX_BCST(ops ...operand.Op) { ctx.VFPCLASSPSX_BCST(ops...) } - -// VFPCLASSPSY: Test Class of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPSY imm8 m256 k k -// VFPCLASSPSY imm8 m256 k -// VFPCLASSPSY imm8 ymm k k -// VFPCLASSPSY imm8 ymm k -// -// Construct and append a VFPCLASSPSY instruction to the active function. -func (c *Context) VFPCLASSPSY(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPSY(ops...)) -} - -// VFPCLASSPSY: Test Class of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPSY imm8 m256 k k -// VFPCLASSPSY imm8 m256 k -// VFPCLASSPSY imm8 ymm k k -// VFPCLASSPSY imm8 ymm k -// -// Construct and append a VFPCLASSPSY instruction to the active function. -// Operates on the global context. -func VFPCLASSPSY(ops ...operand.Op) { ctx.VFPCLASSPSY(ops...) } - -// VFPCLASSPSY_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPSY.BCST imm8 m32 k k -// VFPCLASSPSY.BCST imm8 m32 k -// -// Construct and append a VFPCLASSPSY.BCST instruction to the active function. -func (c *Context) VFPCLASSPSY_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPSY_BCST(ops...)) -} - -// VFPCLASSPSY_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPSY.BCST imm8 m32 k k -// VFPCLASSPSY.BCST imm8 m32 k -// -// Construct and append a VFPCLASSPSY.BCST instruction to the active function. -// Operates on the global context. -func VFPCLASSPSY_BCST(ops ...operand.Op) { ctx.VFPCLASSPSY_BCST(ops...) } - -// VFPCLASSPSZ: Test Class of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPSZ imm8 m512 k k -// VFPCLASSPSZ imm8 m512 k -// VFPCLASSPSZ imm8 zmm k k -// VFPCLASSPSZ imm8 zmm k -// -// Construct and append a VFPCLASSPSZ instruction to the active function. -func (c *Context) VFPCLASSPSZ(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPSZ(ops...)) -} - -// VFPCLASSPSZ: Test Class of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPSZ imm8 m512 k k -// VFPCLASSPSZ imm8 m512 k -// VFPCLASSPSZ imm8 zmm k k -// VFPCLASSPSZ imm8 zmm k -// -// Construct and append a VFPCLASSPSZ instruction to the active function. -// Operates on the global context. -func VFPCLASSPSZ(ops ...operand.Op) { ctx.VFPCLASSPSZ(ops...) } - -// VFPCLASSPSZ_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPSZ.BCST imm8 m32 k k -// VFPCLASSPSZ.BCST imm8 m32 k -// -// Construct and append a VFPCLASSPSZ.BCST instruction to the active function. -func (c *Context) VFPCLASSPSZ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSPSZ_BCST(ops...)) -} - -// VFPCLASSPSZ_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPSZ.BCST imm8 m32 k k -// VFPCLASSPSZ.BCST imm8 m32 k -// -// Construct and append a VFPCLASSPSZ.BCST instruction to the active function. -// Operates on the global context. -func VFPCLASSPSZ_BCST(ops ...operand.Op) { ctx.VFPCLASSPSZ_BCST(ops...) } - -// VFPCLASSSD: Test Class of Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VFPCLASSSD imm8 m64 k k -// VFPCLASSSD imm8 m64 k -// VFPCLASSSD imm8 xmm k k -// VFPCLASSSD imm8 xmm k -// -// Construct and append a VFPCLASSSD instruction to the active function. -func (c *Context) VFPCLASSSD(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSSD(ops...)) -} - -// VFPCLASSSD: Test Class of Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VFPCLASSSD imm8 m64 k k -// VFPCLASSSD imm8 m64 k -// VFPCLASSSD imm8 xmm k k -// VFPCLASSSD imm8 xmm k -// -// Construct and append a VFPCLASSSD instruction to the active function. -// Operates on the global context. -func VFPCLASSSD(ops ...operand.Op) { ctx.VFPCLASSSD(ops...) } - -// VFPCLASSSS: Test Class of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VFPCLASSSS imm8 m32 k k -// VFPCLASSSS imm8 m32 k -// VFPCLASSSS imm8 xmm k k -// VFPCLASSSS imm8 xmm k -// -// Construct and append a VFPCLASSSS instruction to the active function. -func (c *Context) VFPCLASSSS(ops ...operand.Op) { - c.addinstruction(x86.VFPCLASSSS(ops...)) -} - -// VFPCLASSSS: Test Class of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VFPCLASSSS imm8 m32 k k -// VFPCLASSSS imm8 m32 k -// VFPCLASSSS imm8 xmm k k -// VFPCLASSSS imm8 xmm k -// -// Construct and append a VFPCLASSSS instruction to the active function. -// Operates on the global context. -func VFPCLASSSS(ops ...operand.Op) { ctx.VFPCLASSSS(ops...) } - -// VGATHERDPD: Gather Packed Double-Precision Floating-Point Values Using Signed Doubleword Indices. -// -// Forms: -// -// VGATHERDPD xmm vm32x xmm -// VGATHERDPD ymm vm32x ymm -// VGATHERDPD vm32x k xmm -// VGATHERDPD vm32x k ymm -// VGATHERDPD vm32y k zmm -// -// Construct and append a VGATHERDPD instruction to the active function. -func (c *Context) VGATHERDPD(vxy, kv, xyz operand.Op) { - c.addinstruction(x86.VGATHERDPD(vxy, kv, xyz)) -} - -// VGATHERDPD: Gather Packed Double-Precision Floating-Point Values Using Signed Doubleword Indices. -// -// Forms: -// -// VGATHERDPD xmm vm32x xmm -// VGATHERDPD ymm vm32x ymm -// VGATHERDPD vm32x k xmm -// VGATHERDPD vm32x k ymm -// VGATHERDPD vm32y k zmm -// -// Construct and append a VGATHERDPD instruction to the active function. -// Operates on the global context. -func VGATHERDPD(vxy, kv, xyz operand.Op) { ctx.VGATHERDPD(vxy, kv, xyz) } - -// VGATHERDPS: Gather Packed Single-Precision Floating-Point Values Using Signed Doubleword Indices. -// -// Forms: -// -// VGATHERDPS xmm vm32x xmm -// VGATHERDPS ymm vm32y ymm -// VGATHERDPS vm32x k xmm -// VGATHERDPS vm32y k ymm -// VGATHERDPS vm32z k zmm -// -// Construct and append a VGATHERDPS instruction to the active function. -func (c *Context) VGATHERDPS(vxy, kv, xyz operand.Op) { - c.addinstruction(x86.VGATHERDPS(vxy, kv, xyz)) -} - -// VGATHERDPS: Gather Packed Single-Precision Floating-Point Values Using Signed Doubleword Indices. -// -// Forms: -// -// VGATHERDPS xmm vm32x xmm -// VGATHERDPS ymm vm32y ymm -// VGATHERDPS vm32x k xmm -// VGATHERDPS vm32y k ymm -// VGATHERDPS vm32z k zmm -// -// Construct and append a VGATHERDPS instruction to the active function. -// Operates on the global context. -func VGATHERDPS(vxy, kv, xyz operand.Op) { ctx.VGATHERDPS(vxy, kv, xyz) } - -// VGATHERQPD: Gather Packed Double-Precision Floating-Point Values Using Signed Quadword Indices. -// -// Forms: -// -// VGATHERQPD xmm vm64x xmm -// VGATHERQPD ymm vm64y ymm -// VGATHERQPD vm64x k xmm -// VGATHERQPD vm64y k ymm -// VGATHERQPD vm64z k zmm -// -// Construct and append a VGATHERQPD instruction to the active function. -func (c *Context) VGATHERQPD(vxy, kv, xyz operand.Op) { - c.addinstruction(x86.VGATHERQPD(vxy, kv, xyz)) -} - -// VGATHERQPD: Gather Packed Double-Precision Floating-Point Values Using Signed Quadword Indices. -// -// Forms: -// -// VGATHERQPD xmm vm64x xmm -// VGATHERQPD ymm vm64y ymm -// VGATHERQPD vm64x k xmm -// VGATHERQPD vm64y k ymm -// VGATHERQPD vm64z k zmm -// -// Construct and append a VGATHERQPD instruction to the active function. -// Operates on the global context. -func VGATHERQPD(vxy, kv, xyz operand.Op) { ctx.VGATHERQPD(vxy, kv, xyz) } - -// VGATHERQPS: Gather Packed Single-Precision Floating-Point Values Using Signed Quadword Indices. -// -// Forms: -// -// VGATHERQPS xmm vm64x xmm -// VGATHERQPS xmm vm64y xmm -// VGATHERQPS vm64x k xmm -// VGATHERQPS vm64y k xmm -// VGATHERQPS vm64z k ymm -// -// Construct and append a VGATHERQPS instruction to the active function. -func (c *Context) VGATHERQPS(vx, kv, xy operand.Op) { - c.addinstruction(x86.VGATHERQPS(vx, kv, xy)) -} - -// VGATHERQPS: Gather Packed Single-Precision Floating-Point Values Using Signed Quadword Indices. -// -// Forms: -// -// VGATHERQPS xmm vm64x xmm -// VGATHERQPS xmm vm64y xmm -// VGATHERQPS vm64x k xmm -// VGATHERQPS vm64y k xmm -// VGATHERQPS vm64z k ymm -// -// Construct and append a VGATHERQPS instruction to the active function. -// Operates on the global context. -func VGATHERQPS(vx, kv, xy operand.Op) { ctx.VGATHERQPS(vx, kv, xy) } - -// VGETEXPPD: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values. -// -// Forms: -// -// VGETEXPPD m128 k xmm -// VGETEXPPD m128 xmm -// VGETEXPPD m256 k ymm -// VGETEXPPD m256 ymm -// VGETEXPPD xmm k xmm -// VGETEXPPD xmm xmm -// VGETEXPPD ymm k ymm -// VGETEXPPD ymm ymm -// VGETEXPPD m512 k zmm -// VGETEXPPD m512 zmm -// VGETEXPPD zmm k zmm -// VGETEXPPD zmm zmm -// -// Construct and append a VGETEXPPD instruction to the active function. -func (c *Context) VGETEXPPD(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPPD(ops...)) -} - -// VGETEXPPD: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values. -// -// Forms: -// -// VGETEXPPD m128 k xmm -// VGETEXPPD m128 xmm -// VGETEXPPD m256 k ymm -// VGETEXPPD m256 ymm -// VGETEXPPD xmm k xmm -// VGETEXPPD xmm xmm -// VGETEXPPD ymm k ymm -// VGETEXPPD ymm ymm -// VGETEXPPD m512 k zmm -// VGETEXPPD m512 zmm -// VGETEXPPD zmm k zmm -// VGETEXPPD zmm zmm -// -// Construct and append a VGETEXPPD instruction to the active function. -// Operates on the global context. -func VGETEXPPD(ops ...operand.Op) { ctx.VGETEXPPD(ops...) } - -// VGETEXPPD_BCST: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETEXPPD.BCST m64 k xmm -// VGETEXPPD.BCST m64 k ymm -// VGETEXPPD.BCST m64 xmm -// VGETEXPPD.BCST m64 ymm -// VGETEXPPD.BCST m64 k zmm -// VGETEXPPD.BCST m64 zmm -// -// Construct and append a VGETEXPPD.BCST instruction to the active function. -func (c *Context) VGETEXPPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPPD_BCST(ops...)) -} - -// VGETEXPPD_BCST: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETEXPPD.BCST m64 k xmm -// VGETEXPPD.BCST m64 k ymm -// VGETEXPPD.BCST m64 xmm -// VGETEXPPD.BCST m64 ymm -// VGETEXPPD.BCST m64 k zmm -// VGETEXPPD.BCST m64 zmm -// -// Construct and append a VGETEXPPD.BCST instruction to the active function. -// Operates on the global context. -func VGETEXPPD_BCST(ops ...operand.Op) { ctx.VGETEXPPD_BCST(ops...) } - -// VGETEXPPD_BCST_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETEXPPD.BCST.Z m64 k xmm -// VGETEXPPD.BCST.Z m64 k ymm -// VGETEXPPD.BCST.Z m64 k zmm -// -// Construct and append a VGETEXPPD.BCST.Z instruction to the active function. -func (c *Context) VGETEXPPD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VGETEXPPD_BCST_Z(m, k, xyz)) -} - -// VGETEXPPD_BCST_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETEXPPD.BCST.Z m64 k xmm -// VGETEXPPD.BCST.Z m64 k ymm -// VGETEXPPD.BCST.Z m64 k zmm -// -// Construct and append a VGETEXPPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VGETEXPPD_BCST_Z(m, k, xyz operand.Op) { ctx.VGETEXPPD_BCST_Z(m, k, xyz) } - -// VGETEXPPD_SAE: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPPD.SAE zmm k zmm -// VGETEXPPD.SAE zmm zmm -// -// Construct and append a VGETEXPPD.SAE instruction to the active function. -func (c *Context) VGETEXPPD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPPD_SAE(ops...)) -} - -// VGETEXPPD_SAE: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPPD.SAE zmm k zmm -// VGETEXPPD.SAE zmm zmm -// -// Construct and append a VGETEXPPD.SAE instruction to the active function. -// Operates on the global context. -func VGETEXPPD_SAE(ops ...operand.Op) { ctx.VGETEXPPD_SAE(ops...) } - -// VGETEXPPD_SAE_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPPD.SAE.Z zmm k zmm -// -// Construct and append a VGETEXPPD.SAE.Z instruction to the active function. -func (c *Context) VGETEXPPD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VGETEXPPD_SAE_Z(z, k, z1)) -} - -// VGETEXPPD_SAE_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPPD.SAE.Z zmm k zmm -// -// Construct and append a VGETEXPPD.SAE.Z instruction to the active function. -// Operates on the global context. -func VGETEXPPD_SAE_Z(z, k, z1 operand.Op) { ctx.VGETEXPPD_SAE_Z(z, k, z1) } - -// VGETEXPPD_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETEXPPD.Z m128 k xmm -// VGETEXPPD.Z m256 k ymm -// VGETEXPPD.Z xmm k xmm -// VGETEXPPD.Z ymm k ymm -// VGETEXPPD.Z m512 k zmm -// VGETEXPPD.Z zmm k zmm -// -// Construct and append a VGETEXPPD.Z instruction to the active function. -func (c *Context) VGETEXPPD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VGETEXPPD_Z(mxyz, k, xyz)) -} - -// VGETEXPPD_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETEXPPD.Z m128 k xmm -// VGETEXPPD.Z m256 k ymm -// VGETEXPPD.Z xmm k xmm -// VGETEXPPD.Z ymm k ymm -// VGETEXPPD.Z m512 k zmm -// VGETEXPPD.Z zmm k zmm -// -// Construct and append a VGETEXPPD.Z instruction to the active function. -// Operates on the global context. -func VGETEXPPD_Z(mxyz, k, xyz operand.Op) { ctx.VGETEXPPD_Z(mxyz, k, xyz) } - -// VGETEXPPS: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values. -// -// Forms: -// -// VGETEXPPS m128 k xmm -// VGETEXPPS m128 xmm -// VGETEXPPS m256 k ymm -// VGETEXPPS m256 ymm -// VGETEXPPS xmm k xmm -// VGETEXPPS xmm xmm -// VGETEXPPS ymm k ymm -// VGETEXPPS ymm ymm -// VGETEXPPS m512 k zmm -// VGETEXPPS m512 zmm -// VGETEXPPS zmm k zmm -// VGETEXPPS zmm zmm -// -// Construct and append a VGETEXPPS instruction to the active function. -func (c *Context) VGETEXPPS(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPPS(ops...)) -} - -// VGETEXPPS: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values. -// -// Forms: -// -// VGETEXPPS m128 k xmm -// VGETEXPPS m128 xmm -// VGETEXPPS m256 k ymm -// VGETEXPPS m256 ymm -// VGETEXPPS xmm k xmm -// VGETEXPPS xmm xmm -// VGETEXPPS ymm k ymm -// VGETEXPPS ymm ymm -// VGETEXPPS m512 k zmm -// VGETEXPPS m512 zmm -// VGETEXPPS zmm k zmm -// VGETEXPPS zmm zmm -// -// Construct and append a VGETEXPPS instruction to the active function. -// Operates on the global context. -func VGETEXPPS(ops ...operand.Op) { ctx.VGETEXPPS(ops...) } - -// VGETEXPPS_BCST: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETEXPPS.BCST m32 k xmm -// VGETEXPPS.BCST m32 k ymm -// VGETEXPPS.BCST m32 xmm -// VGETEXPPS.BCST m32 ymm -// VGETEXPPS.BCST m32 k zmm -// VGETEXPPS.BCST m32 zmm -// -// Construct and append a VGETEXPPS.BCST instruction to the active function. -func (c *Context) VGETEXPPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPPS_BCST(ops...)) -} - -// VGETEXPPS_BCST: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETEXPPS.BCST m32 k xmm -// VGETEXPPS.BCST m32 k ymm -// VGETEXPPS.BCST m32 xmm -// VGETEXPPS.BCST m32 ymm -// VGETEXPPS.BCST m32 k zmm -// VGETEXPPS.BCST m32 zmm -// -// Construct and append a VGETEXPPS.BCST instruction to the active function. -// Operates on the global context. -func VGETEXPPS_BCST(ops ...operand.Op) { ctx.VGETEXPPS_BCST(ops...) } - -// VGETEXPPS_BCST_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETEXPPS.BCST.Z m32 k xmm -// VGETEXPPS.BCST.Z m32 k ymm -// VGETEXPPS.BCST.Z m32 k zmm -// -// Construct and append a VGETEXPPS.BCST.Z instruction to the active function. -func (c *Context) VGETEXPPS_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VGETEXPPS_BCST_Z(m, k, xyz)) -} - -// VGETEXPPS_BCST_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETEXPPS.BCST.Z m32 k xmm -// VGETEXPPS.BCST.Z m32 k ymm -// VGETEXPPS.BCST.Z m32 k zmm -// -// Construct and append a VGETEXPPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VGETEXPPS_BCST_Z(m, k, xyz operand.Op) { ctx.VGETEXPPS_BCST_Z(m, k, xyz) } - -// VGETEXPPS_SAE: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPPS.SAE zmm k zmm -// VGETEXPPS.SAE zmm zmm -// -// Construct and append a VGETEXPPS.SAE instruction to the active function. -func (c *Context) VGETEXPPS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPPS_SAE(ops...)) -} - -// VGETEXPPS_SAE: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPPS.SAE zmm k zmm -// VGETEXPPS.SAE zmm zmm -// -// Construct and append a VGETEXPPS.SAE instruction to the active function. -// Operates on the global context. -func VGETEXPPS_SAE(ops ...operand.Op) { ctx.VGETEXPPS_SAE(ops...) } - -// VGETEXPPS_SAE_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPPS.SAE.Z zmm k zmm -// -// Construct and append a VGETEXPPS.SAE.Z instruction to the active function. -func (c *Context) VGETEXPPS_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VGETEXPPS_SAE_Z(z, k, z1)) -} - -// VGETEXPPS_SAE_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPPS.SAE.Z zmm k zmm -// -// Construct and append a VGETEXPPS.SAE.Z instruction to the active function. -// Operates on the global context. -func VGETEXPPS_SAE_Z(z, k, z1 operand.Op) { ctx.VGETEXPPS_SAE_Z(z, k, z1) } - -// VGETEXPPS_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETEXPPS.Z m128 k xmm -// VGETEXPPS.Z m256 k ymm -// VGETEXPPS.Z xmm k xmm -// VGETEXPPS.Z ymm k ymm -// VGETEXPPS.Z m512 k zmm -// VGETEXPPS.Z zmm k zmm -// -// Construct and append a VGETEXPPS.Z instruction to the active function. -func (c *Context) VGETEXPPS_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VGETEXPPS_Z(mxyz, k, xyz)) -} - -// VGETEXPPS_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETEXPPS.Z m128 k xmm -// VGETEXPPS.Z m256 k ymm -// VGETEXPPS.Z xmm k xmm -// VGETEXPPS.Z ymm k ymm -// VGETEXPPS.Z m512 k zmm -// VGETEXPPS.Z zmm k zmm -// -// Construct and append a VGETEXPPS.Z instruction to the active function. -// Operates on the global context. -func VGETEXPPS_Z(mxyz, k, xyz operand.Op) { ctx.VGETEXPPS_Z(mxyz, k, xyz) } - -// VGETEXPSD: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value. -// -// Forms: -// -// VGETEXPSD m64 xmm k xmm -// VGETEXPSD m64 xmm xmm -// VGETEXPSD xmm xmm k xmm -// VGETEXPSD xmm xmm xmm -// -// Construct and append a VGETEXPSD instruction to the active function. -func (c *Context) VGETEXPSD(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPSD(ops...)) -} - -// VGETEXPSD: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value. -// -// Forms: -// -// VGETEXPSD m64 xmm k xmm -// VGETEXPSD m64 xmm xmm -// VGETEXPSD xmm xmm k xmm -// VGETEXPSD xmm xmm xmm -// -// Construct and append a VGETEXPSD instruction to the active function. -// Operates on the global context. -func VGETEXPSD(ops ...operand.Op) { ctx.VGETEXPSD(ops...) } - -// VGETEXPSD_SAE: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPSD.SAE xmm xmm k xmm -// VGETEXPSD.SAE xmm xmm xmm -// -// Construct and append a VGETEXPSD.SAE instruction to the active function. -func (c *Context) VGETEXPSD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPSD_SAE(ops...)) -} - -// VGETEXPSD_SAE: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPSD.SAE xmm xmm k xmm -// VGETEXPSD.SAE xmm xmm xmm -// -// Construct and append a VGETEXPSD.SAE instruction to the active function. -// Operates on the global context. -func VGETEXPSD_SAE(ops ...operand.Op) { ctx.VGETEXPSD_SAE(ops...) } - -// VGETEXPSD_SAE_Z: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPSD.SAE.Z xmm xmm k xmm -// -// Construct and append a VGETEXPSD.SAE.Z instruction to the active function. -func (c *Context) VGETEXPSD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VGETEXPSD_SAE_Z(x, x1, k, x2)) -} - -// VGETEXPSD_SAE_Z: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPSD.SAE.Z xmm xmm k xmm -// -// Construct and append a VGETEXPSD.SAE.Z instruction to the active function. -// Operates on the global context. -func VGETEXPSD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VGETEXPSD_SAE_Z(x, x1, k, x2) } - -// VGETEXPSD_Z: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETEXPSD.Z m64 xmm k xmm -// VGETEXPSD.Z xmm xmm k xmm -// -// Construct and append a VGETEXPSD.Z instruction to the active function. -func (c *Context) VGETEXPSD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VGETEXPSD_Z(mx, x, k, x1)) -} - -// VGETEXPSD_Z: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETEXPSD.Z m64 xmm k xmm -// VGETEXPSD.Z xmm xmm k xmm -// -// Construct and append a VGETEXPSD.Z instruction to the active function. -// Operates on the global context. -func VGETEXPSD_Z(mx, x, k, x1 operand.Op) { ctx.VGETEXPSD_Z(mx, x, k, x1) } - -// VGETEXPSS: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value. -// -// Forms: -// -// VGETEXPSS m32 xmm k xmm -// VGETEXPSS m32 xmm xmm -// VGETEXPSS xmm xmm k xmm -// VGETEXPSS xmm xmm xmm -// -// Construct and append a VGETEXPSS instruction to the active function. -func (c *Context) VGETEXPSS(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPSS(ops...)) -} - -// VGETEXPSS: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value. -// -// Forms: -// -// VGETEXPSS m32 xmm k xmm -// VGETEXPSS m32 xmm xmm -// VGETEXPSS xmm xmm k xmm -// VGETEXPSS xmm xmm xmm -// -// Construct and append a VGETEXPSS instruction to the active function. -// Operates on the global context. -func VGETEXPSS(ops ...operand.Op) { ctx.VGETEXPSS(ops...) } - -// VGETEXPSS_SAE: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPSS.SAE xmm xmm k xmm -// VGETEXPSS.SAE xmm xmm xmm -// -// Construct and append a VGETEXPSS.SAE instruction to the active function. -func (c *Context) VGETEXPSS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VGETEXPSS_SAE(ops...)) -} - -// VGETEXPSS_SAE: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPSS.SAE xmm xmm k xmm -// VGETEXPSS.SAE xmm xmm xmm -// -// Construct and append a VGETEXPSS.SAE instruction to the active function. -// Operates on the global context. -func VGETEXPSS_SAE(ops ...operand.Op) { ctx.VGETEXPSS_SAE(ops...) } - -// VGETEXPSS_SAE_Z: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPSS.SAE.Z xmm xmm k xmm -// -// Construct and append a VGETEXPSS.SAE.Z instruction to the active function. -func (c *Context) VGETEXPSS_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VGETEXPSS_SAE_Z(x, x1, k, x2)) -} - -// VGETEXPSS_SAE_Z: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPSS.SAE.Z xmm xmm k xmm -// -// Construct and append a VGETEXPSS.SAE.Z instruction to the active function. -// Operates on the global context. -func VGETEXPSS_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VGETEXPSS_SAE_Z(x, x1, k, x2) } - -// VGETEXPSS_Z: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETEXPSS.Z m32 xmm k xmm -// VGETEXPSS.Z xmm xmm k xmm -// -// Construct and append a VGETEXPSS.Z instruction to the active function. -func (c *Context) VGETEXPSS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VGETEXPSS_Z(mx, x, k, x1)) -} - -// VGETEXPSS_Z: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETEXPSS.Z m32 xmm k xmm -// VGETEXPSS.Z xmm xmm k xmm -// -// Construct and append a VGETEXPSS.Z instruction to the active function. -// Operates on the global context. -func VGETEXPSS_Z(mx, x, k, x1 operand.Op) { ctx.VGETEXPSS_Z(mx, x, k, x1) } - -// VGETMANTPD: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VGETMANTPD imm8 m128 k xmm -// VGETMANTPD imm8 m128 xmm -// VGETMANTPD imm8 m256 k ymm -// VGETMANTPD imm8 m256 ymm -// VGETMANTPD imm8 xmm k xmm -// VGETMANTPD imm8 xmm xmm -// VGETMANTPD imm8 ymm k ymm -// VGETMANTPD imm8 ymm ymm -// VGETMANTPD imm8 m512 k zmm -// VGETMANTPD imm8 m512 zmm -// VGETMANTPD imm8 zmm k zmm -// VGETMANTPD imm8 zmm zmm -// -// Construct and append a VGETMANTPD instruction to the active function. -func (c *Context) VGETMANTPD(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTPD(ops...)) -} - -// VGETMANTPD: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VGETMANTPD imm8 m128 k xmm -// VGETMANTPD imm8 m128 xmm -// VGETMANTPD imm8 m256 k ymm -// VGETMANTPD imm8 m256 ymm -// VGETMANTPD imm8 xmm k xmm -// VGETMANTPD imm8 xmm xmm -// VGETMANTPD imm8 ymm k ymm -// VGETMANTPD imm8 ymm ymm -// VGETMANTPD imm8 m512 k zmm -// VGETMANTPD imm8 m512 zmm -// VGETMANTPD imm8 zmm k zmm -// VGETMANTPD imm8 zmm zmm -// -// Construct and append a VGETMANTPD instruction to the active function. -// Operates on the global context. -func VGETMANTPD(ops ...operand.Op) { ctx.VGETMANTPD(ops...) } - -// VGETMANTPD_BCST: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETMANTPD.BCST imm8 m64 k xmm -// VGETMANTPD.BCST imm8 m64 k ymm -// VGETMANTPD.BCST imm8 m64 xmm -// VGETMANTPD.BCST imm8 m64 ymm -// VGETMANTPD.BCST imm8 m64 k zmm -// VGETMANTPD.BCST imm8 m64 zmm -// -// Construct and append a VGETMANTPD.BCST instruction to the active function. -func (c *Context) VGETMANTPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTPD_BCST(ops...)) -} - -// VGETMANTPD_BCST: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETMANTPD.BCST imm8 m64 k xmm -// VGETMANTPD.BCST imm8 m64 k ymm -// VGETMANTPD.BCST imm8 m64 xmm -// VGETMANTPD.BCST imm8 m64 ymm -// VGETMANTPD.BCST imm8 m64 k zmm -// VGETMANTPD.BCST imm8 m64 zmm -// -// Construct and append a VGETMANTPD.BCST instruction to the active function. -// Operates on the global context. -func VGETMANTPD_BCST(ops ...operand.Op) { ctx.VGETMANTPD_BCST(ops...) } - -// VGETMANTPD_BCST_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETMANTPD.BCST.Z imm8 m64 k xmm -// VGETMANTPD.BCST.Z imm8 m64 k ymm -// VGETMANTPD.BCST.Z imm8 m64 k zmm -// -// Construct and append a VGETMANTPD.BCST.Z instruction to the active function. -func (c *Context) VGETMANTPD_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VGETMANTPD_BCST_Z(i, m, k, xyz)) -} - -// VGETMANTPD_BCST_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETMANTPD.BCST.Z imm8 m64 k xmm -// VGETMANTPD.BCST.Z imm8 m64 k ymm -// VGETMANTPD.BCST.Z imm8 m64 k zmm -// -// Construct and append a VGETMANTPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VGETMANTPD_BCST_Z(i, m, k, xyz operand.Op) { ctx.VGETMANTPD_BCST_Z(i, m, k, xyz) } - -// VGETMANTPD_SAE: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTPD.SAE imm8 zmm k zmm -// VGETMANTPD.SAE imm8 zmm zmm -// -// Construct and append a VGETMANTPD.SAE instruction to the active function. -func (c *Context) VGETMANTPD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTPD_SAE(ops...)) -} - -// VGETMANTPD_SAE: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTPD.SAE imm8 zmm k zmm -// VGETMANTPD.SAE imm8 zmm zmm -// -// Construct and append a VGETMANTPD.SAE instruction to the active function. -// Operates on the global context. -func VGETMANTPD_SAE(ops ...operand.Op) { ctx.VGETMANTPD_SAE(ops...) } - -// VGETMANTPD_SAE_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTPD.SAE.Z imm8 zmm k zmm -// -// Construct and append a VGETMANTPD.SAE.Z instruction to the active function. -func (c *Context) VGETMANTPD_SAE_Z(i, z, k, z1 operand.Op) { - c.addinstruction(x86.VGETMANTPD_SAE_Z(i, z, k, z1)) -} - -// VGETMANTPD_SAE_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTPD.SAE.Z imm8 zmm k zmm -// -// Construct and append a VGETMANTPD.SAE.Z instruction to the active function. -// Operates on the global context. -func VGETMANTPD_SAE_Z(i, z, k, z1 operand.Op) { ctx.VGETMANTPD_SAE_Z(i, z, k, z1) } - -// VGETMANTPD_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETMANTPD.Z imm8 m128 k xmm -// VGETMANTPD.Z imm8 m256 k ymm -// VGETMANTPD.Z imm8 xmm k xmm -// VGETMANTPD.Z imm8 ymm k ymm -// VGETMANTPD.Z imm8 m512 k zmm -// VGETMANTPD.Z imm8 zmm k zmm -// -// Construct and append a VGETMANTPD.Z instruction to the active function. -func (c *Context) VGETMANTPD_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VGETMANTPD_Z(i, mxyz, k, xyz)) -} - -// VGETMANTPD_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETMANTPD.Z imm8 m128 k xmm -// VGETMANTPD.Z imm8 m256 k ymm -// VGETMANTPD.Z imm8 xmm k xmm -// VGETMANTPD.Z imm8 ymm k ymm -// VGETMANTPD.Z imm8 m512 k zmm -// VGETMANTPD.Z imm8 zmm k zmm -// -// Construct and append a VGETMANTPD.Z instruction to the active function. -// Operates on the global context. -func VGETMANTPD_Z(i, mxyz, k, xyz operand.Op) { ctx.VGETMANTPD_Z(i, mxyz, k, xyz) } - -// VGETMANTPS: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VGETMANTPS imm8 m128 k xmm -// VGETMANTPS imm8 m128 xmm -// VGETMANTPS imm8 m256 k ymm -// VGETMANTPS imm8 m256 ymm -// VGETMANTPS imm8 xmm k xmm -// VGETMANTPS imm8 xmm xmm -// VGETMANTPS imm8 ymm k ymm -// VGETMANTPS imm8 ymm ymm -// VGETMANTPS imm8 m512 k zmm -// VGETMANTPS imm8 m512 zmm -// VGETMANTPS imm8 zmm k zmm -// VGETMANTPS imm8 zmm zmm -// -// Construct and append a VGETMANTPS instruction to the active function. -func (c *Context) VGETMANTPS(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTPS(ops...)) -} - -// VGETMANTPS: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VGETMANTPS imm8 m128 k xmm -// VGETMANTPS imm8 m128 xmm -// VGETMANTPS imm8 m256 k ymm -// VGETMANTPS imm8 m256 ymm -// VGETMANTPS imm8 xmm k xmm -// VGETMANTPS imm8 xmm xmm -// VGETMANTPS imm8 ymm k ymm -// VGETMANTPS imm8 ymm ymm -// VGETMANTPS imm8 m512 k zmm -// VGETMANTPS imm8 m512 zmm -// VGETMANTPS imm8 zmm k zmm -// VGETMANTPS imm8 zmm zmm -// -// Construct and append a VGETMANTPS instruction to the active function. -// Operates on the global context. -func VGETMANTPS(ops ...operand.Op) { ctx.VGETMANTPS(ops...) } - -// VGETMANTPS_BCST: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETMANTPS.BCST imm8 m32 k xmm -// VGETMANTPS.BCST imm8 m32 k ymm -// VGETMANTPS.BCST imm8 m32 xmm -// VGETMANTPS.BCST imm8 m32 ymm -// VGETMANTPS.BCST imm8 m32 k zmm -// VGETMANTPS.BCST imm8 m32 zmm -// -// Construct and append a VGETMANTPS.BCST instruction to the active function. -func (c *Context) VGETMANTPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTPS_BCST(ops...)) -} - -// VGETMANTPS_BCST: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETMANTPS.BCST imm8 m32 k xmm -// VGETMANTPS.BCST imm8 m32 k ymm -// VGETMANTPS.BCST imm8 m32 xmm -// VGETMANTPS.BCST imm8 m32 ymm -// VGETMANTPS.BCST imm8 m32 k zmm -// VGETMANTPS.BCST imm8 m32 zmm -// -// Construct and append a VGETMANTPS.BCST instruction to the active function. -// Operates on the global context. -func VGETMANTPS_BCST(ops ...operand.Op) { ctx.VGETMANTPS_BCST(ops...) } - -// VGETMANTPS_BCST_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETMANTPS.BCST.Z imm8 m32 k xmm -// VGETMANTPS.BCST.Z imm8 m32 k ymm -// VGETMANTPS.BCST.Z imm8 m32 k zmm -// -// Construct and append a VGETMANTPS.BCST.Z instruction to the active function. -func (c *Context) VGETMANTPS_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VGETMANTPS_BCST_Z(i, m, k, xyz)) -} - -// VGETMANTPS_BCST_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETMANTPS.BCST.Z imm8 m32 k xmm -// VGETMANTPS.BCST.Z imm8 m32 k ymm -// VGETMANTPS.BCST.Z imm8 m32 k zmm -// -// Construct and append a VGETMANTPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VGETMANTPS_BCST_Z(i, m, k, xyz operand.Op) { ctx.VGETMANTPS_BCST_Z(i, m, k, xyz) } - -// VGETMANTPS_SAE: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTPS.SAE imm8 zmm k zmm -// VGETMANTPS.SAE imm8 zmm zmm -// -// Construct and append a VGETMANTPS.SAE instruction to the active function. -func (c *Context) VGETMANTPS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTPS_SAE(ops...)) -} - -// VGETMANTPS_SAE: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTPS.SAE imm8 zmm k zmm -// VGETMANTPS.SAE imm8 zmm zmm -// -// Construct and append a VGETMANTPS.SAE instruction to the active function. -// Operates on the global context. -func VGETMANTPS_SAE(ops ...operand.Op) { ctx.VGETMANTPS_SAE(ops...) } - -// VGETMANTPS_SAE_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTPS.SAE.Z imm8 zmm k zmm -// -// Construct and append a VGETMANTPS.SAE.Z instruction to the active function. -func (c *Context) VGETMANTPS_SAE_Z(i, z, k, z1 operand.Op) { - c.addinstruction(x86.VGETMANTPS_SAE_Z(i, z, k, z1)) -} - -// VGETMANTPS_SAE_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTPS.SAE.Z imm8 zmm k zmm -// -// Construct and append a VGETMANTPS.SAE.Z instruction to the active function. -// Operates on the global context. -func VGETMANTPS_SAE_Z(i, z, k, z1 operand.Op) { ctx.VGETMANTPS_SAE_Z(i, z, k, z1) } - -// VGETMANTPS_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETMANTPS.Z imm8 m128 k xmm -// VGETMANTPS.Z imm8 m256 k ymm -// VGETMANTPS.Z imm8 xmm k xmm -// VGETMANTPS.Z imm8 ymm k ymm -// VGETMANTPS.Z imm8 m512 k zmm -// VGETMANTPS.Z imm8 zmm k zmm -// -// Construct and append a VGETMANTPS.Z instruction to the active function. -func (c *Context) VGETMANTPS_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VGETMANTPS_Z(i, mxyz, k, xyz)) -} - -// VGETMANTPS_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETMANTPS.Z imm8 m128 k xmm -// VGETMANTPS.Z imm8 m256 k ymm -// VGETMANTPS.Z imm8 xmm k xmm -// VGETMANTPS.Z imm8 ymm k ymm -// VGETMANTPS.Z imm8 m512 k zmm -// VGETMANTPS.Z imm8 zmm k zmm -// -// Construct and append a VGETMANTPS.Z instruction to the active function. -// Operates on the global context. -func VGETMANTPS_Z(i, mxyz, k, xyz operand.Op) { ctx.VGETMANTPS_Z(i, mxyz, k, xyz) } - -// VGETMANTSD: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VGETMANTSD imm8 m64 xmm k xmm -// VGETMANTSD imm8 m64 xmm xmm -// VGETMANTSD imm8 xmm xmm k xmm -// VGETMANTSD imm8 xmm xmm xmm -// -// Construct and append a VGETMANTSD instruction to the active function. -func (c *Context) VGETMANTSD(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTSD(ops...)) -} - -// VGETMANTSD: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VGETMANTSD imm8 m64 xmm k xmm -// VGETMANTSD imm8 m64 xmm xmm -// VGETMANTSD imm8 xmm xmm k xmm -// VGETMANTSD imm8 xmm xmm xmm -// -// Construct and append a VGETMANTSD instruction to the active function. -// Operates on the global context. -func VGETMANTSD(ops ...operand.Op) { ctx.VGETMANTSD(ops...) } - -// VGETMANTSD_SAE: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTSD.SAE imm8 xmm xmm k xmm -// VGETMANTSD.SAE imm8 xmm xmm xmm -// -// Construct and append a VGETMANTSD.SAE instruction to the active function. -func (c *Context) VGETMANTSD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTSD_SAE(ops...)) -} - -// VGETMANTSD_SAE: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTSD.SAE imm8 xmm xmm k xmm -// VGETMANTSD.SAE imm8 xmm xmm xmm -// -// Construct and append a VGETMANTSD.SAE instruction to the active function. -// Operates on the global context. -func VGETMANTSD_SAE(ops ...operand.Op) { ctx.VGETMANTSD_SAE(ops...) } - -// VGETMANTSD_SAE_Z: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTSD.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VGETMANTSD.SAE.Z instruction to the active function. -func (c *Context) VGETMANTSD_SAE_Z(i, x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VGETMANTSD_SAE_Z(i, x, x1, k, x2)) -} - -// VGETMANTSD_SAE_Z: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTSD.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VGETMANTSD.SAE.Z instruction to the active function. -// Operates on the global context. -func VGETMANTSD_SAE_Z(i, x, x1, k, x2 operand.Op) { ctx.VGETMANTSD_SAE_Z(i, x, x1, k, x2) } - -// VGETMANTSD_Z: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETMANTSD.Z imm8 m64 xmm k xmm -// VGETMANTSD.Z imm8 xmm xmm k xmm -// -// Construct and append a VGETMANTSD.Z instruction to the active function. -func (c *Context) VGETMANTSD_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VGETMANTSD_Z(i, mx, x, k, x1)) -} - -// VGETMANTSD_Z: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETMANTSD.Z imm8 m64 xmm k xmm -// VGETMANTSD.Z imm8 xmm xmm k xmm -// -// Construct and append a VGETMANTSD.Z instruction to the active function. -// Operates on the global context. -func VGETMANTSD_Z(i, mx, x, k, x1 operand.Op) { ctx.VGETMANTSD_Z(i, mx, x, k, x1) } - -// VGETMANTSS: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VGETMANTSS imm8 m32 xmm k xmm -// VGETMANTSS imm8 m32 xmm xmm -// VGETMANTSS imm8 xmm xmm k xmm -// VGETMANTSS imm8 xmm xmm xmm -// -// Construct and append a VGETMANTSS instruction to the active function. -func (c *Context) VGETMANTSS(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTSS(ops...)) -} - -// VGETMANTSS: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VGETMANTSS imm8 m32 xmm k xmm -// VGETMANTSS imm8 m32 xmm xmm -// VGETMANTSS imm8 xmm xmm k xmm -// VGETMANTSS imm8 xmm xmm xmm -// -// Construct and append a VGETMANTSS instruction to the active function. -// Operates on the global context. -func VGETMANTSS(ops ...operand.Op) { ctx.VGETMANTSS(ops...) } - -// VGETMANTSS_SAE: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTSS.SAE imm8 xmm xmm k xmm -// VGETMANTSS.SAE imm8 xmm xmm xmm -// -// Construct and append a VGETMANTSS.SAE instruction to the active function. -func (c *Context) VGETMANTSS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VGETMANTSS_SAE(ops...)) -} - -// VGETMANTSS_SAE: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTSS.SAE imm8 xmm xmm k xmm -// VGETMANTSS.SAE imm8 xmm xmm xmm -// -// Construct and append a VGETMANTSS.SAE instruction to the active function. -// Operates on the global context. -func VGETMANTSS_SAE(ops ...operand.Op) { ctx.VGETMANTSS_SAE(ops...) } - -// VGETMANTSS_SAE_Z: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTSS.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VGETMANTSS.SAE.Z instruction to the active function. -func (c *Context) VGETMANTSS_SAE_Z(i, x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VGETMANTSS_SAE_Z(i, x, x1, k, x2)) -} - -// VGETMANTSS_SAE_Z: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTSS.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VGETMANTSS.SAE.Z instruction to the active function. -// Operates on the global context. -func VGETMANTSS_SAE_Z(i, x, x1, k, x2 operand.Op) { ctx.VGETMANTSS_SAE_Z(i, x, x1, k, x2) } - -// VGETMANTSS_Z: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETMANTSS.Z imm8 m32 xmm k xmm -// VGETMANTSS.Z imm8 xmm xmm k xmm -// -// Construct and append a VGETMANTSS.Z instruction to the active function. -func (c *Context) VGETMANTSS_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VGETMANTSS_Z(i, mx, x, k, x1)) -} - -// VGETMANTSS_Z: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETMANTSS.Z imm8 m32 xmm k xmm -// VGETMANTSS.Z imm8 xmm xmm k xmm -// -// Construct and append a VGETMANTSS.Z instruction to the active function. -// Operates on the global context. -func VGETMANTSS_Z(i, mx, x, k, x1 operand.Op) { ctx.VGETMANTSS_Z(i, mx, x, k, x1) } - -// VGF2P8AFFINEINVQB: Galois Field Affine Transformation Inverse. -// -// Forms: -// -// VGF2P8AFFINEINVQB imm8 m128 xmm xmm -// VGF2P8AFFINEINVQB imm8 m256 ymm ymm -// VGF2P8AFFINEINVQB imm8 xmm xmm xmm -// VGF2P8AFFINEINVQB imm8 ymm ymm ymm -// VGF2P8AFFINEINVQB imm8 m512 zmm k zmm -// VGF2P8AFFINEINVQB imm8 m512 zmm zmm -// VGF2P8AFFINEINVQB imm8 zmm zmm k zmm -// VGF2P8AFFINEINVQB imm8 zmm zmm zmm -// VGF2P8AFFINEINVQB imm8 m128 xmm k xmm -// VGF2P8AFFINEINVQB imm8 m256 ymm k ymm -// VGF2P8AFFINEINVQB imm8 xmm xmm k xmm -// VGF2P8AFFINEINVQB imm8 ymm ymm k ymm -// -// Construct and append a VGF2P8AFFINEINVQB instruction to the active function. -func (c *Context) VGF2P8AFFINEINVQB(ops ...operand.Op) { - c.addinstruction(x86.VGF2P8AFFINEINVQB(ops...)) -} - -// VGF2P8AFFINEINVQB: Galois Field Affine Transformation Inverse. -// -// Forms: -// -// VGF2P8AFFINEINVQB imm8 m128 xmm xmm -// VGF2P8AFFINEINVQB imm8 m256 ymm ymm -// VGF2P8AFFINEINVQB imm8 xmm xmm xmm -// VGF2P8AFFINEINVQB imm8 ymm ymm ymm -// VGF2P8AFFINEINVQB imm8 m512 zmm k zmm -// VGF2P8AFFINEINVQB imm8 m512 zmm zmm -// VGF2P8AFFINEINVQB imm8 zmm zmm k zmm -// VGF2P8AFFINEINVQB imm8 zmm zmm zmm -// VGF2P8AFFINEINVQB imm8 m128 xmm k xmm -// VGF2P8AFFINEINVQB imm8 m256 ymm k ymm -// VGF2P8AFFINEINVQB imm8 xmm xmm k xmm -// VGF2P8AFFINEINVQB imm8 ymm ymm k ymm -// -// Construct and append a VGF2P8AFFINEINVQB instruction to the active function. -// Operates on the global context. -func VGF2P8AFFINEINVQB(ops ...operand.Op) { ctx.VGF2P8AFFINEINVQB(ops...) } - -// VGF2P8AFFINEINVQB_BCST: Galois Field Affine Transformation Inverse (Broadcast). -// -// Forms: -// -// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm k zmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm zmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm k xmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm xmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm k ymm -// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm ymm -// -// Construct and append a VGF2P8AFFINEINVQB.BCST instruction to the active function. -func (c *Context) VGF2P8AFFINEINVQB_BCST(ops ...operand.Op) { - c.addinstruction(x86.VGF2P8AFFINEINVQB_BCST(ops...)) -} - -// VGF2P8AFFINEINVQB_BCST: Galois Field Affine Transformation Inverse (Broadcast). -// -// Forms: -// -// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm k zmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm zmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm k xmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm xmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm k ymm -// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm ymm -// -// Construct and append a VGF2P8AFFINEINVQB.BCST instruction to the active function. -// Operates on the global context. -func VGF2P8AFFINEINVQB_BCST(ops ...operand.Op) { ctx.VGF2P8AFFINEINVQB_BCST(ops...) } - -// VGF2P8AFFINEINVQB_BCST_Z: Galois Field Affine Transformation Inverse (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 zmm k zmm -// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 xmm k xmm -// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 ymm k ymm -// -// Construct and append a VGF2P8AFFINEINVQB.BCST.Z instruction to the active function. -func (c *Context) VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VGF2P8AFFINEINVQB_BCST_Z: Galois Field Affine Transformation Inverse (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 zmm k zmm -// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 xmm k xmm -// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 ymm k ymm -// -// Construct and append a VGF2P8AFFINEINVQB.BCST.Z instruction to the active function. -// Operates on the global context. -func VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - ctx.VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1) -} - -// VGF2P8AFFINEINVQB_Z: Galois Field Affine Transformation Inverse (Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEINVQB.Z imm8 m512 zmm k zmm -// VGF2P8AFFINEINVQB.Z imm8 zmm zmm k zmm -// VGF2P8AFFINEINVQB.Z imm8 m128 xmm k xmm -// VGF2P8AFFINEINVQB.Z imm8 m256 ymm k ymm -// VGF2P8AFFINEINVQB.Z imm8 xmm xmm k xmm -// VGF2P8AFFINEINVQB.Z imm8 ymm ymm k ymm -// -// Construct and append a VGF2P8AFFINEINVQB.Z instruction to the active function. -func (c *Context) VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1)) -} - -// VGF2P8AFFINEINVQB_Z: Galois Field Affine Transformation Inverse (Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEINVQB.Z imm8 m512 zmm k zmm -// VGF2P8AFFINEINVQB.Z imm8 zmm zmm k zmm -// VGF2P8AFFINEINVQB.Z imm8 m128 xmm k xmm -// VGF2P8AFFINEINVQB.Z imm8 m256 ymm k ymm -// VGF2P8AFFINEINVQB.Z imm8 xmm xmm k xmm -// VGF2P8AFFINEINVQB.Z imm8 ymm ymm k ymm -// -// Construct and append a VGF2P8AFFINEINVQB.Z instruction to the active function. -// Operates on the global context. -func VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - ctx.VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1) -} - -// VGF2P8AFFINEQB: Galois Field Affine Transformation. -// -// Forms: -// -// VGF2P8AFFINEQB imm8 m128 xmm xmm -// VGF2P8AFFINEQB imm8 m256 ymm ymm -// VGF2P8AFFINEQB imm8 xmm xmm xmm -// VGF2P8AFFINEQB imm8 ymm ymm ymm -// VGF2P8AFFINEQB imm8 m512 zmm k zmm -// VGF2P8AFFINEQB imm8 m512 zmm zmm -// VGF2P8AFFINEQB imm8 zmm zmm k zmm -// VGF2P8AFFINEQB imm8 zmm zmm zmm -// VGF2P8AFFINEQB imm8 m128 xmm k xmm -// VGF2P8AFFINEQB imm8 m256 ymm k ymm -// VGF2P8AFFINEQB imm8 xmm xmm k xmm -// VGF2P8AFFINEQB imm8 ymm ymm k ymm -// -// Construct and append a VGF2P8AFFINEQB instruction to the active function. -func (c *Context) VGF2P8AFFINEQB(ops ...operand.Op) { - c.addinstruction(x86.VGF2P8AFFINEQB(ops...)) -} - -// VGF2P8AFFINEQB: Galois Field Affine Transformation. -// -// Forms: -// -// VGF2P8AFFINEQB imm8 m128 xmm xmm -// VGF2P8AFFINEQB imm8 m256 ymm ymm -// VGF2P8AFFINEQB imm8 xmm xmm xmm -// VGF2P8AFFINEQB imm8 ymm ymm ymm -// VGF2P8AFFINEQB imm8 m512 zmm k zmm -// VGF2P8AFFINEQB imm8 m512 zmm zmm -// VGF2P8AFFINEQB imm8 zmm zmm k zmm -// VGF2P8AFFINEQB imm8 zmm zmm zmm -// VGF2P8AFFINEQB imm8 m128 xmm k xmm -// VGF2P8AFFINEQB imm8 m256 ymm k ymm -// VGF2P8AFFINEQB imm8 xmm xmm k xmm -// VGF2P8AFFINEQB imm8 ymm ymm k ymm -// -// Construct and append a VGF2P8AFFINEQB instruction to the active function. -// Operates on the global context. -func VGF2P8AFFINEQB(ops ...operand.Op) { ctx.VGF2P8AFFINEQB(ops...) } - -// VGF2P8AFFINEQB_BCST: Galois Field Affine Transformation (Broadcast). -// -// Forms: -// -// VGF2P8AFFINEQB.BCST imm8 m64 zmm k zmm -// VGF2P8AFFINEQB.BCST imm8 m64 zmm zmm -// VGF2P8AFFINEQB.BCST imm8 m64 xmm k xmm -// VGF2P8AFFINEQB.BCST imm8 m64 xmm xmm -// VGF2P8AFFINEQB.BCST imm8 m64 ymm k ymm -// VGF2P8AFFINEQB.BCST imm8 m64 ymm ymm -// -// Construct and append a VGF2P8AFFINEQB.BCST instruction to the active function. -func (c *Context) VGF2P8AFFINEQB_BCST(ops ...operand.Op) { - c.addinstruction(x86.VGF2P8AFFINEQB_BCST(ops...)) -} - -// VGF2P8AFFINEQB_BCST: Galois Field Affine Transformation (Broadcast). -// -// Forms: -// -// VGF2P8AFFINEQB.BCST imm8 m64 zmm k zmm -// VGF2P8AFFINEQB.BCST imm8 m64 zmm zmm -// VGF2P8AFFINEQB.BCST imm8 m64 xmm k xmm -// VGF2P8AFFINEQB.BCST imm8 m64 xmm xmm -// VGF2P8AFFINEQB.BCST imm8 m64 ymm k ymm -// VGF2P8AFFINEQB.BCST imm8 m64 ymm ymm -// -// Construct and append a VGF2P8AFFINEQB.BCST instruction to the active function. -// Operates on the global context. -func VGF2P8AFFINEQB_BCST(ops ...operand.Op) { ctx.VGF2P8AFFINEQB_BCST(ops...) } - -// VGF2P8AFFINEQB_BCST_Z: Galois Field Affine Transformation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEQB.BCST.Z imm8 m64 zmm k zmm -// VGF2P8AFFINEQB.BCST.Z imm8 m64 xmm k xmm -// VGF2P8AFFINEQB.BCST.Z imm8 m64 ymm k ymm -// -// Construct and append a VGF2P8AFFINEQB.BCST.Z instruction to the active function. -func (c *Context) VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VGF2P8AFFINEQB_BCST_Z: Galois Field Affine Transformation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEQB.BCST.Z imm8 m64 zmm k zmm -// VGF2P8AFFINEQB.BCST.Z imm8 m64 xmm k xmm -// VGF2P8AFFINEQB.BCST.Z imm8 m64 ymm k ymm -// -// Construct and append a VGF2P8AFFINEQB.BCST.Z instruction to the active function. -// Operates on the global context. -func VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - ctx.VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1) -} - -// VGF2P8AFFINEQB_Z: Galois Field Affine Transformation (Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEQB.Z imm8 m512 zmm k zmm -// VGF2P8AFFINEQB.Z imm8 zmm zmm k zmm -// VGF2P8AFFINEQB.Z imm8 m128 xmm k xmm -// VGF2P8AFFINEQB.Z imm8 m256 ymm k ymm -// VGF2P8AFFINEQB.Z imm8 xmm xmm k xmm -// VGF2P8AFFINEQB.Z imm8 ymm ymm k ymm -// -// Construct and append a VGF2P8AFFINEQB.Z instruction to the active function. -func (c *Context) VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1)) -} - -// VGF2P8AFFINEQB_Z: Galois Field Affine Transformation (Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEQB.Z imm8 m512 zmm k zmm -// VGF2P8AFFINEQB.Z imm8 zmm zmm k zmm -// VGF2P8AFFINEQB.Z imm8 m128 xmm k xmm -// VGF2P8AFFINEQB.Z imm8 m256 ymm k ymm -// VGF2P8AFFINEQB.Z imm8 xmm xmm k xmm -// VGF2P8AFFINEQB.Z imm8 ymm ymm k ymm -// -// Construct and append a VGF2P8AFFINEQB.Z instruction to the active function. -// Operates on the global context. -func VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1) } - -// VGF2P8MULB: Galois Field Multiply Bytes. -// -// Forms: -// -// VGF2P8MULB m128 xmm xmm -// VGF2P8MULB m256 ymm ymm -// VGF2P8MULB xmm xmm xmm -// VGF2P8MULB ymm ymm ymm -// VGF2P8MULB m512 zmm k zmm -// VGF2P8MULB m512 zmm zmm -// VGF2P8MULB zmm zmm k zmm -// VGF2P8MULB zmm zmm zmm -// VGF2P8MULB m128 xmm k xmm -// VGF2P8MULB m256 ymm k ymm -// VGF2P8MULB xmm xmm k xmm -// VGF2P8MULB ymm ymm k ymm -// -// Construct and append a VGF2P8MULB instruction to the active function. -func (c *Context) VGF2P8MULB(ops ...operand.Op) { - c.addinstruction(x86.VGF2P8MULB(ops...)) -} - -// VGF2P8MULB: Galois Field Multiply Bytes. -// -// Forms: -// -// VGF2P8MULB m128 xmm xmm -// VGF2P8MULB m256 ymm ymm -// VGF2P8MULB xmm xmm xmm -// VGF2P8MULB ymm ymm ymm -// VGF2P8MULB m512 zmm k zmm -// VGF2P8MULB m512 zmm zmm -// VGF2P8MULB zmm zmm k zmm -// VGF2P8MULB zmm zmm zmm -// VGF2P8MULB m128 xmm k xmm -// VGF2P8MULB m256 ymm k ymm -// VGF2P8MULB xmm xmm k xmm -// VGF2P8MULB ymm ymm k ymm -// -// Construct and append a VGF2P8MULB instruction to the active function. -// Operates on the global context. -func VGF2P8MULB(ops ...operand.Op) { ctx.VGF2P8MULB(ops...) } - -// VGF2P8MULB_Z: Galois Field Multiply Bytes (Zeroing Masking). -// -// Forms: -// -// VGF2P8MULB.Z m512 zmm k zmm -// VGF2P8MULB.Z zmm zmm k zmm -// VGF2P8MULB.Z m128 xmm k xmm -// VGF2P8MULB.Z m256 ymm k ymm -// VGF2P8MULB.Z xmm xmm k xmm -// VGF2P8MULB.Z ymm ymm k ymm -// -// Construct and append a VGF2P8MULB.Z instruction to the active function. -func (c *Context) VGF2P8MULB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VGF2P8MULB_Z(mxyz, xyz, k, xyz1)) -} - -// VGF2P8MULB_Z: Galois Field Multiply Bytes (Zeroing Masking). -// -// Forms: -// -// VGF2P8MULB.Z m512 zmm k zmm -// VGF2P8MULB.Z zmm zmm k zmm -// VGF2P8MULB.Z m128 xmm k xmm -// VGF2P8MULB.Z m256 ymm k ymm -// VGF2P8MULB.Z xmm xmm k xmm -// VGF2P8MULB.Z ymm ymm k ymm -// -// Construct and append a VGF2P8MULB.Z instruction to the active function. -// Operates on the global context. -func VGF2P8MULB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VGF2P8MULB_Z(mxyz, xyz, k, xyz1) } - -// VHADDPD: Packed Double-FP Horizontal Add. -// -// Forms: -// -// VHADDPD m128 xmm xmm -// VHADDPD m256 ymm ymm -// VHADDPD xmm xmm xmm -// VHADDPD ymm ymm ymm -// -// Construct and append a VHADDPD instruction to the active function. -func (c *Context) VHADDPD(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VHADDPD(mxy, xy, xy1)) -} - -// VHADDPD: Packed Double-FP Horizontal Add. -// -// Forms: -// -// VHADDPD m128 xmm xmm -// VHADDPD m256 ymm ymm -// VHADDPD xmm xmm xmm -// VHADDPD ymm ymm ymm -// -// Construct and append a VHADDPD instruction to the active function. -// Operates on the global context. -func VHADDPD(mxy, xy, xy1 operand.Op) { ctx.VHADDPD(mxy, xy, xy1) } - -// VHADDPS: Packed Single-FP Horizontal Add. -// -// Forms: -// -// VHADDPS m128 xmm xmm -// VHADDPS m256 ymm ymm -// VHADDPS xmm xmm xmm -// VHADDPS ymm ymm ymm -// -// Construct and append a VHADDPS instruction to the active function. -func (c *Context) VHADDPS(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VHADDPS(mxy, xy, xy1)) -} - -// VHADDPS: Packed Single-FP Horizontal Add. -// -// Forms: -// -// VHADDPS m128 xmm xmm -// VHADDPS m256 ymm ymm -// VHADDPS xmm xmm xmm -// VHADDPS ymm ymm ymm -// -// Construct and append a VHADDPS instruction to the active function. -// Operates on the global context. -func VHADDPS(mxy, xy, xy1 operand.Op) { ctx.VHADDPS(mxy, xy, xy1) } - -// VHSUBPD: Packed Double-FP Horizontal Subtract. -// -// Forms: -// -// VHSUBPD m128 xmm xmm -// VHSUBPD m256 ymm ymm -// VHSUBPD xmm xmm xmm -// VHSUBPD ymm ymm ymm -// -// Construct and append a VHSUBPD instruction to the active function. -func (c *Context) VHSUBPD(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VHSUBPD(mxy, xy, xy1)) -} - -// VHSUBPD: Packed Double-FP Horizontal Subtract. -// -// Forms: -// -// VHSUBPD m128 xmm xmm -// VHSUBPD m256 ymm ymm -// VHSUBPD xmm xmm xmm -// VHSUBPD ymm ymm ymm -// -// Construct and append a VHSUBPD instruction to the active function. -// Operates on the global context. -func VHSUBPD(mxy, xy, xy1 operand.Op) { ctx.VHSUBPD(mxy, xy, xy1) } - -// VHSUBPS: Packed Single-FP Horizontal Subtract. -// -// Forms: -// -// VHSUBPS m128 xmm xmm -// VHSUBPS m256 ymm ymm -// VHSUBPS xmm xmm xmm -// VHSUBPS ymm ymm ymm -// -// Construct and append a VHSUBPS instruction to the active function. -func (c *Context) VHSUBPS(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VHSUBPS(mxy, xy, xy1)) -} - -// VHSUBPS: Packed Single-FP Horizontal Subtract. -// -// Forms: -// -// VHSUBPS m128 xmm xmm -// VHSUBPS m256 ymm ymm -// VHSUBPS xmm xmm xmm -// VHSUBPS ymm ymm ymm -// -// Construct and append a VHSUBPS instruction to the active function. -// Operates on the global context. -func VHSUBPS(mxy, xy, xy1 operand.Op) { ctx.VHSUBPS(mxy, xy, xy1) } - -// VINSERTF128: Insert Packed Floating-Point Values. -// -// Forms: -// -// VINSERTF128 imm8 m128 ymm ymm -// VINSERTF128 imm8 xmm ymm ymm -// -// Construct and append a VINSERTF128 instruction to the active function. -func (c *Context) VINSERTF128(i, mx, y, y1 operand.Op) { - c.addinstruction(x86.VINSERTF128(i, mx, y, y1)) -} - -// VINSERTF128: Insert Packed Floating-Point Values. -// -// Forms: -// -// VINSERTF128 imm8 m128 ymm ymm -// VINSERTF128 imm8 xmm ymm ymm -// -// Construct and append a VINSERTF128 instruction to the active function. -// Operates on the global context. -func VINSERTF128(i, mx, y, y1 operand.Op) { ctx.VINSERTF128(i, mx, y, y1) } - -// VINSERTF32X4: Insert 128 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF32X4 imm8 m128 ymm k ymm -// VINSERTF32X4 imm8 m128 ymm ymm -// VINSERTF32X4 imm8 xmm ymm k ymm -// VINSERTF32X4 imm8 xmm ymm ymm -// VINSERTF32X4 imm8 m128 zmm k zmm -// VINSERTF32X4 imm8 m128 zmm zmm -// VINSERTF32X4 imm8 xmm zmm k zmm -// VINSERTF32X4 imm8 xmm zmm zmm -// -// Construct and append a VINSERTF32X4 instruction to the active function. -func (c *Context) VINSERTF32X4(ops ...operand.Op) { - c.addinstruction(x86.VINSERTF32X4(ops...)) -} - -// VINSERTF32X4: Insert 128 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF32X4 imm8 m128 ymm k ymm -// VINSERTF32X4 imm8 m128 ymm ymm -// VINSERTF32X4 imm8 xmm ymm k ymm -// VINSERTF32X4 imm8 xmm ymm ymm -// VINSERTF32X4 imm8 m128 zmm k zmm -// VINSERTF32X4 imm8 m128 zmm zmm -// VINSERTF32X4 imm8 xmm zmm k zmm -// VINSERTF32X4 imm8 xmm zmm zmm -// -// Construct and append a VINSERTF32X4 instruction to the active function. -// Operates on the global context. -func VINSERTF32X4(ops ...operand.Op) { ctx.VINSERTF32X4(ops...) } - -// VINSERTF32X4_Z: Insert 128 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF32X4.Z imm8 m128 ymm k ymm -// VINSERTF32X4.Z imm8 xmm ymm k ymm -// VINSERTF32X4.Z imm8 m128 zmm k zmm -// VINSERTF32X4.Z imm8 xmm zmm k zmm -// -// Construct and append a VINSERTF32X4.Z instruction to the active function. -func (c *Context) VINSERTF32X4_Z(i, mx, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VINSERTF32X4_Z(i, mx, yz, k, yz1)) -} - -// VINSERTF32X4_Z: Insert 128 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF32X4.Z imm8 m128 ymm k ymm -// VINSERTF32X4.Z imm8 xmm ymm k ymm -// VINSERTF32X4.Z imm8 m128 zmm k zmm -// VINSERTF32X4.Z imm8 xmm zmm k zmm -// -// Construct and append a VINSERTF32X4.Z instruction to the active function. -// Operates on the global context. -func VINSERTF32X4_Z(i, mx, yz, k, yz1 operand.Op) { ctx.VINSERTF32X4_Z(i, mx, yz, k, yz1) } - -// VINSERTF32X8: Insert 256 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF32X8 imm8 m256 zmm k zmm -// VINSERTF32X8 imm8 m256 zmm zmm -// VINSERTF32X8 imm8 ymm zmm k zmm -// VINSERTF32X8 imm8 ymm zmm zmm -// -// Construct and append a VINSERTF32X8 instruction to the active function. -func (c *Context) VINSERTF32X8(ops ...operand.Op) { - c.addinstruction(x86.VINSERTF32X8(ops...)) -} - -// VINSERTF32X8: Insert 256 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF32X8 imm8 m256 zmm k zmm -// VINSERTF32X8 imm8 m256 zmm zmm -// VINSERTF32X8 imm8 ymm zmm k zmm -// VINSERTF32X8 imm8 ymm zmm zmm -// -// Construct and append a VINSERTF32X8 instruction to the active function. -// Operates on the global context. -func VINSERTF32X8(ops ...operand.Op) { ctx.VINSERTF32X8(ops...) } - -// VINSERTF32X8_Z: Insert 256 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF32X8.Z imm8 m256 zmm k zmm -// VINSERTF32X8.Z imm8 ymm zmm k zmm -// -// Construct and append a VINSERTF32X8.Z instruction to the active function. -func (c *Context) VINSERTF32X8_Z(i, my, z, k, z1 operand.Op) { - c.addinstruction(x86.VINSERTF32X8_Z(i, my, z, k, z1)) -} - -// VINSERTF32X8_Z: Insert 256 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF32X8.Z imm8 m256 zmm k zmm -// VINSERTF32X8.Z imm8 ymm zmm k zmm -// -// Construct and append a VINSERTF32X8.Z instruction to the active function. -// Operates on the global context. -func VINSERTF32X8_Z(i, my, z, k, z1 operand.Op) { ctx.VINSERTF32X8_Z(i, my, z, k, z1) } - -// VINSERTF64X2: Insert 128 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF64X2 imm8 m128 ymm k ymm -// VINSERTF64X2 imm8 m128 ymm ymm -// VINSERTF64X2 imm8 xmm ymm k ymm -// VINSERTF64X2 imm8 xmm ymm ymm -// VINSERTF64X2 imm8 m128 zmm k zmm -// VINSERTF64X2 imm8 m128 zmm zmm -// VINSERTF64X2 imm8 xmm zmm k zmm -// VINSERTF64X2 imm8 xmm zmm zmm -// -// Construct and append a VINSERTF64X2 instruction to the active function. -func (c *Context) VINSERTF64X2(ops ...operand.Op) { - c.addinstruction(x86.VINSERTF64X2(ops...)) -} - -// VINSERTF64X2: Insert 128 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF64X2 imm8 m128 ymm k ymm -// VINSERTF64X2 imm8 m128 ymm ymm -// VINSERTF64X2 imm8 xmm ymm k ymm -// VINSERTF64X2 imm8 xmm ymm ymm -// VINSERTF64X2 imm8 m128 zmm k zmm -// VINSERTF64X2 imm8 m128 zmm zmm -// VINSERTF64X2 imm8 xmm zmm k zmm -// VINSERTF64X2 imm8 xmm zmm zmm -// -// Construct and append a VINSERTF64X2 instruction to the active function. -// Operates on the global context. -func VINSERTF64X2(ops ...operand.Op) { ctx.VINSERTF64X2(ops...) } - -// VINSERTF64X2_Z: Insert 128 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF64X2.Z imm8 m128 ymm k ymm -// VINSERTF64X2.Z imm8 xmm ymm k ymm -// VINSERTF64X2.Z imm8 m128 zmm k zmm -// VINSERTF64X2.Z imm8 xmm zmm k zmm -// -// Construct and append a VINSERTF64X2.Z instruction to the active function. -func (c *Context) VINSERTF64X2_Z(i, mx, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VINSERTF64X2_Z(i, mx, yz, k, yz1)) -} - -// VINSERTF64X2_Z: Insert 128 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF64X2.Z imm8 m128 ymm k ymm -// VINSERTF64X2.Z imm8 xmm ymm k ymm -// VINSERTF64X2.Z imm8 m128 zmm k zmm -// VINSERTF64X2.Z imm8 xmm zmm k zmm -// -// Construct and append a VINSERTF64X2.Z instruction to the active function. -// Operates on the global context. -func VINSERTF64X2_Z(i, mx, yz, k, yz1 operand.Op) { ctx.VINSERTF64X2_Z(i, mx, yz, k, yz1) } - -// VINSERTF64X4: Insert 256 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF64X4 imm8 m256 zmm k zmm -// VINSERTF64X4 imm8 m256 zmm zmm -// VINSERTF64X4 imm8 ymm zmm k zmm -// VINSERTF64X4 imm8 ymm zmm zmm -// -// Construct and append a VINSERTF64X4 instruction to the active function. -func (c *Context) VINSERTF64X4(ops ...operand.Op) { - c.addinstruction(x86.VINSERTF64X4(ops...)) -} - -// VINSERTF64X4: Insert 256 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF64X4 imm8 m256 zmm k zmm -// VINSERTF64X4 imm8 m256 zmm zmm -// VINSERTF64X4 imm8 ymm zmm k zmm -// VINSERTF64X4 imm8 ymm zmm zmm -// -// Construct and append a VINSERTF64X4 instruction to the active function. -// Operates on the global context. -func VINSERTF64X4(ops ...operand.Op) { ctx.VINSERTF64X4(ops...) } - -// VINSERTF64X4_Z: Insert 256 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF64X4.Z imm8 m256 zmm k zmm -// VINSERTF64X4.Z imm8 ymm zmm k zmm -// -// Construct and append a VINSERTF64X4.Z instruction to the active function. -func (c *Context) VINSERTF64X4_Z(i, my, z, k, z1 operand.Op) { - c.addinstruction(x86.VINSERTF64X4_Z(i, my, z, k, z1)) -} - -// VINSERTF64X4_Z: Insert 256 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF64X4.Z imm8 m256 zmm k zmm -// VINSERTF64X4.Z imm8 ymm zmm k zmm -// -// Construct and append a VINSERTF64X4.Z instruction to the active function. -// Operates on the global context. -func VINSERTF64X4_Z(i, my, z, k, z1 operand.Op) { ctx.VINSERTF64X4_Z(i, my, z, k, z1) } - -// VINSERTI128: Insert Packed Integer Values. -// -// Forms: -// -// VINSERTI128 imm8 m128 ymm ymm -// VINSERTI128 imm8 xmm ymm ymm -// -// Construct and append a VINSERTI128 instruction to the active function. -func (c *Context) VINSERTI128(i, mx, y, y1 operand.Op) { - c.addinstruction(x86.VINSERTI128(i, mx, y, y1)) -} - -// VINSERTI128: Insert Packed Integer Values. -// -// Forms: -// -// VINSERTI128 imm8 m128 ymm ymm -// VINSERTI128 imm8 xmm ymm ymm -// -// Construct and append a VINSERTI128 instruction to the active function. -// Operates on the global context. -func VINSERTI128(i, mx, y, y1 operand.Op) { ctx.VINSERTI128(i, mx, y, y1) } - -// VINSERTI32X4: Insert 128 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VINSERTI32X4 imm8 m128 ymm k ymm -// VINSERTI32X4 imm8 m128 ymm ymm -// VINSERTI32X4 imm8 xmm ymm k ymm -// VINSERTI32X4 imm8 xmm ymm ymm -// VINSERTI32X4 imm8 m128 zmm k zmm -// VINSERTI32X4 imm8 m128 zmm zmm -// VINSERTI32X4 imm8 xmm zmm k zmm -// VINSERTI32X4 imm8 xmm zmm zmm -// -// Construct and append a VINSERTI32X4 instruction to the active function. -func (c *Context) VINSERTI32X4(ops ...operand.Op) { - c.addinstruction(x86.VINSERTI32X4(ops...)) -} - -// VINSERTI32X4: Insert 128 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VINSERTI32X4 imm8 m128 ymm k ymm -// VINSERTI32X4 imm8 m128 ymm ymm -// VINSERTI32X4 imm8 xmm ymm k ymm -// VINSERTI32X4 imm8 xmm ymm ymm -// VINSERTI32X4 imm8 m128 zmm k zmm -// VINSERTI32X4 imm8 m128 zmm zmm -// VINSERTI32X4 imm8 xmm zmm k zmm -// VINSERTI32X4 imm8 xmm zmm zmm -// -// Construct and append a VINSERTI32X4 instruction to the active function. -// Operates on the global context. -func VINSERTI32X4(ops ...operand.Op) { ctx.VINSERTI32X4(ops...) } - -// VINSERTI32X4_Z: Insert 128 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI32X4.Z imm8 m128 ymm k ymm -// VINSERTI32X4.Z imm8 xmm ymm k ymm -// VINSERTI32X4.Z imm8 m128 zmm k zmm -// VINSERTI32X4.Z imm8 xmm zmm k zmm -// -// Construct and append a VINSERTI32X4.Z instruction to the active function. -func (c *Context) VINSERTI32X4_Z(i, mx, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VINSERTI32X4_Z(i, mx, yz, k, yz1)) -} - -// VINSERTI32X4_Z: Insert 128 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI32X4.Z imm8 m128 ymm k ymm -// VINSERTI32X4.Z imm8 xmm ymm k ymm -// VINSERTI32X4.Z imm8 m128 zmm k zmm -// VINSERTI32X4.Z imm8 xmm zmm k zmm -// -// Construct and append a VINSERTI32X4.Z instruction to the active function. -// Operates on the global context. -func VINSERTI32X4_Z(i, mx, yz, k, yz1 operand.Op) { ctx.VINSERTI32X4_Z(i, mx, yz, k, yz1) } - -// VINSERTI32X8: Insert 256 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VINSERTI32X8 imm8 m256 zmm k zmm -// VINSERTI32X8 imm8 m256 zmm zmm -// VINSERTI32X8 imm8 ymm zmm k zmm -// VINSERTI32X8 imm8 ymm zmm zmm -// -// Construct and append a VINSERTI32X8 instruction to the active function. -func (c *Context) VINSERTI32X8(ops ...operand.Op) { - c.addinstruction(x86.VINSERTI32X8(ops...)) -} - -// VINSERTI32X8: Insert 256 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VINSERTI32X8 imm8 m256 zmm k zmm -// VINSERTI32X8 imm8 m256 zmm zmm -// VINSERTI32X8 imm8 ymm zmm k zmm -// VINSERTI32X8 imm8 ymm zmm zmm -// -// Construct and append a VINSERTI32X8 instruction to the active function. -// Operates on the global context. -func VINSERTI32X8(ops ...operand.Op) { ctx.VINSERTI32X8(ops...) } - -// VINSERTI32X8_Z: Insert 256 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI32X8.Z imm8 m256 zmm k zmm -// VINSERTI32X8.Z imm8 ymm zmm k zmm -// -// Construct and append a VINSERTI32X8.Z instruction to the active function. -func (c *Context) VINSERTI32X8_Z(i, my, z, k, z1 operand.Op) { - c.addinstruction(x86.VINSERTI32X8_Z(i, my, z, k, z1)) -} - -// VINSERTI32X8_Z: Insert 256 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI32X8.Z imm8 m256 zmm k zmm -// VINSERTI32X8.Z imm8 ymm zmm k zmm -// -// Construct and append a VINSERTI32X8.Z instruction to the active function. -// Operates on the global context. -func VINSERTI32X8_Z(i, my, z, k, z1 operand.Op) { ctx.VINSERTI32X8_Z(i, my, z, k, z1) } - -// VINSERTI64X2: Insert 128 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VINSERTI64X2 imm8 m128 ymm k ymm -// VINSERTI64X2 imm8 m128 ymm ymm -// VINSERTI64X2 imm8 xmm ymm k ymm -// VINSERTI64X2 imm8 xmm ymm ymm -// VINSERTI64X2 imm8 m128 zmm k zmm -// VINSERTI64X2 imm8 m128 zmm zmm -// VINSERTI64X2 imm8 xmm zmm k zmm -// VINSERTI64X2 imm8 xmm zmm zmm -// -// Construct and append a VINSERTI64X2 instruction to the active function. -func (c *Context) VINSERTI64X2(ops ...operand.Op) { - c.addinstruction(x86.VINSERTI64X2(ops...)) -} - -// VINSERTI64X2: Insert 128 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VINSERTI64X2 imm8 m128 ymm k ymm -// VINSERTI64X2 imm8 m128 ymm ymm -// VINSERTI64X2 imm8 xmm ymm k ymm -// VINSERTI64X2 imm8 xmm ymm ymm -// VINSERTI64X2 imm8 m128 zmm k zmm -// VINSERTI64X2 imm8 m128 zmm zmm -// VINSERTI64X2 imm8 xmm zmm k zmm -// VINSERTI64X2 imm8 xmm zmm zmm -// -// Construct and append a VINSERTI64X2 instruction to the active function. -// Operates on the global context. -func VINSERTI64X2(ops ...operand.Op) { ctx.VINSERTI64X2(ops...) } - -// VINSERTI64X2_Z: Insert 128 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI64X2.Z imm8 m128 ymm k ymm -// VINSERTI64X2.Z imm8 xmm ymm k ymm -// VINSERTI64X2.Z imm8 m128 zmm k zmm -// VINSERTI64X2.Z imm8 xmm zmm k zmm -// -// Construct and append a VINSERTI64X2.Z instruction to the active function. -func (c *Context) VINSERTI64X2_Z(i, mx, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VINSERTI64X2_Z(i, mx, yz, k, yz1)) -} - -// VINSERTI64X2_Z: Insert 128 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI64X2.Z imm8 m128 ymm k ymm -// VINSERTI64X2.Z imm8 xmm ymm k ymm -// VINSERTI64X2.Z imm8 m128 zmm k zmm -// VINSERTI64X2.Z imm8 xmm zmm k zmm -// -// Construct and append a VINSERTI64X2.Z instruction to the active function. -// Operates on the global context. -func VINSERTI64X2_Z(i, mx, yz, k, yz1 operand.Op) { ctx.VINSERTI64X2_Z(i, mx, yz, k, yz1) } - -// VINSERTI64X4: Insert 256 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VINSERTI64X4 imm8 m256 zmm k zmm -// VINSERTI64X4 imm8 m256 zmm zmm -// VINSERTI64X4 imm8 ymm zmm k zmm -// VINSERTI64X4 imm8 ymm zmm zmm -// -// Construct and append a VINSERTI64X4 instruction to the active function. -func (c *Context) VINSERTI64X4(ops ...operand.Op) { - c.addinstruction(x86.VINSERTI64X4(ops...)) -} - -// VINSERTI64X4: Insert 256 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VINSERTI64X4 imm8 m256 zmm k zmm -// VINSERTI64X4 imm8 m256 zmm zmm -// VINSERTI64X4 imm8 ymm zmm k zmm -// VINSERTI64X4 imm8 ymm zmm zmm -// -// Construct and append a VINSERTI64X4 instruction to the active function. -// Operates on the global context. -func VINSERTI64X4(ops ...operand.Op) { ctx.VINSERTI64X4(ops...) } - -// VINSERTI64X4_Z: Insert 256 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI64X4.Z imm8 m256 zmm k zmm -// VINSERTI64X4.Z imm8 ymm zmm k zmm -// -// Construct and append a VINSERTI64X4.Z instruction to the active function. -func (c *Context) VINSERTI64X4_Z(i, my, z, k, z1 operand.Op) { - c.addinstruction(x86.VINSERTI64X4_Z(i, my, z, k, z1)) -} - -// VINSERTI64X4_Z: Insert 256 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI64X4.Z imm8 m256 zmm k zmm -// VINSERTI64X4.Z imm8 ymm zmm k zmm -// -// Construct and append a VINSERTI64X4.Z instruction to the active function. -// Operates on the global context. -func VINSERTI64X4_Z(i, my, z, k, z1 operand.Op) { ctx.VINSERTI64X4_Z(i, my, z, k, z1) } - -// VINSERTPS: Insert Packed Single Precision Floating-Point Value. -// -// Forms: -// -// VINSERTPS imm8 m32 xmm xmm -// VINSERTPS imm8 xmm xmm xmm -// -// Construct and append a VINSERTPS instruction to the active function. -func (c *Context) VINSERTPS(i, mx, x, x1 operand.Op) { - c.addinstruction(x86.VINSERTPS(i, mx, x, x1)) -} - -// VINSERTPS: Insert Packed Single Precision Floating-Point Value. -// -// Forms: -// -// VINSERTPS imm8 m32 xmm xmm -// VINSERTPS imm8 xmm xmm xmm -// -// Construct and append a VINSERTPS instruction to the active function. -// Operates on the global context. -func VINSERTPS(i, mx, x, x1 operand.Op) { ctx.VINSERTPS(i, mx, x, x1) } - -// VLDDQU: Load Unaligned Integer 128 Bits. -// -// Forms: -// -// VLDDQU m128 xmm -// VLDDQU m256 ymm -// -// Construct and append a VLDDQU instruction to the active function. -func (c *Context) VLDDQU(m, xy operand.Op) { - c.addinstruction(x86.VLDDQU(m, xy)) -} - -// VLDDQU: Load Unaligned Integer 128 Bits. -// -// Forms: -// -// VLDDQU m128 xmm -// VLDDQU m256 ymm -// -// Construct and append a VLDDQU instruction to the active function. -// Operates on the global context. -func VLDDQU(m, xy operand.Op) { ctx.VLDDQU(m, xy) } - -// VLDMXCSR: Load MXCSR Register. -// -// Forms: -// -// VLDMXCSR m32 -// -// Construct and append a VLDMXCSR instruction to the active function. -func (c *Context) VLDMXCSR(m operand.Op) { - c.addinstruction(x86.VLDMXCSR(m)) -} - -// VLDMXCSR: Load MXCSR Register. -// -// Forms: -// -// VLDMXCSR m32 -// -// Construct and append a VLDMXCSR instruction to the active function. -// Operates on the global context. -func VLDMXCSR(m operand.Op) { ctx.VLDMXCSR(m) } - -// VMASKMOVDQU: Store Selected Bytes of Double Quadword. -// -// Forms: -// -// VMASKMOVDQU xmm xmm -// -// Construct and append a VMASKMOVDQU instruction to the active function. -func (c *Context) VMASKMOVDQU(x, x1 operand.Op) { - c.addinstruction(x86.VMASKMOVDQU(x, x1)) -} - -// VMASKMOVDQU: Store Selected Bytes of Double Quadword. -// -// Forms: -// -// VMASKMOVDQU xmm xmm -// -// Construct and append a VMASKMOVDQU instruction to the active function. -// Operates on the global context. -func VMASKMOVDQU(x, x1 operand.Op) { ctx.VMASKMOVDQU(x, x1) } - -// VMASKMOVPD: Conditional Move Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMASKMOVPD m128 xmm xmm -// VMASKMOVPD m256 ymm ymm -// VMASKMOVPD xmm xmm m128 -// VMASKMOVPD ymm ymm m256 -// -// Construct and append a VMASKMOVPD instruction to the active function. -func (c *Context) VMASKMOVPD(mxy, xy, mxy1 operand.Op) { - c.addinstruction(x86.VMASKMOVPD(mxy, xy, mxy1)) -} - -// VMASKMOVPD: Conditional Move Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMASKMOVPD m128 xmm xmm -// VMASKMOVPD m256 ymm ymm -// VMASKMOVPD xmm xmm m128 -// VMASKMOVPD ymm ymm m256 -// -// Construct and append a VMASKMOVPD instruction to the active function. -// Operates on the global context. -func VMASKMOVPD(mxy, xy, mxy1 operand.Op) { ctx.VMASKMOVPD(mxy, xy, mxy1) } - -// VMASKMOVPS: Conditional Move Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMASKMOVPS m128 xmm xmm -// VMASKMOVPS m256 ymm ymm -// VMASKMOVPS xmm xmm m128 -// VMASKMOVPS ymm ymm m256 -// -// Construct and append a VMASKMOVPS instruction to the active function. -func (c *Context) VMASKMOVPS(mxy, xy, mxy1 operand.Op) { - c.addinstruction(x86.VMASKMOVPS(mxy, xy, mxy1)) -} - -// VMASKMOVPS: Conditional Move Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMASKMOVPS m128 xmm xmm -// VMASKMOVPS m256 ymm ymm -// VMASKMOVPS xmm xmm m128 -// VMASKMOVPS ymm ymm m256 -// -// Construct and append a VMASKMOVPS instruction to the active function. -// Operates on the global context. -func VMASKMOVPS(mxy, xy, mxy1 operand.Op) { ctx.VMASKMOVPS(mxy, xy, mxy1) } - -// VMAXPD: Return Maximum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMAXPD m128 xmm xmm -// VMAXPD m256 ymm ymm -// VMAXPD xmm xmm xmm -// VMAXPD ymm ymm ymm -// VMAXPD m128 xmm k xmm -// VMAXPD m256 ymm k ymm -// VMAXPD xmm xmm k xmm -// VMAXPD ymm ymm k ymm -// VMAXPD m512 zmm k zmm -// VMAXPD m512 zmm zmm -// VMAXPD zmm zmm k zmm -// VMAXPD zmm zmm zmm -// -// Construct and append a VMAXPD instruction to the active function. -func (c *Context) VMAXPD(ops ...operand.Op) { - c.addinstruction(x86.VMAXPD(ops...)) -} - -// VMAXPD: Return Maximum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMAXPD m128 xmm xmm -// VMAXPD m256 ymm ymm -// VMAXPD xmm xmm xmm -// VMAXPD ymm ymm ymm -// VMAXPD m128 xmm k xmm -// VMAXPD m256 ymm k ymm -// VMAXPD xmm xmm k xmm -// VMAXPD ymm ymm k ymm -// VMAXPD m512 zmm k zmm -// VMAXPD m512 zmm zmm -// VMAXPD zmm zmm k zmm -// VMAXPD zmm zmm zmm -// -// Construct and append a VMAXPD instruction to the active function. -// Operates on the global context. -func VMAXPD(ops ...operand.Op) { ctx.VMAXPD(ops...) } - -// VMAXPD_BCST: Return Maximum Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMAXPD.BCST m64 xmm k xmm -// VMAXPD.BCST m64 xmm xmm -// VMAXPD.BCST m64 ymm k ymm -// VMAXPD.BCST m64 ymm ymm -// VMAXPD.BCST m64 zmm k zmm -// VMAXPD.BCST m64 zmm zmm -// -// Construct and append a VMAXPD.BCST instruction to the active function. -func (c *Context) VMAXPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VMAXPD_BCST(ops...)) -} - -// VMAXPD_BCST: Return Maximum Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMAXPD.BCST m64 xmm k xmm -// VMAXPD.BCST m64 xmm xmm -// VMAXPD.BCST m64 ymm k ymm -// VMAXPD.BCST m64 ymm ymm -// VMAXPD.BCST m64 zmm k zmm -// VMAXPD.BCST m64 zmm zmm -// -// Construct and append a VMAXPD.BCST instruction to the active function. -// Operates on the global context. -func VMAXPD_BCST(ops ...operand.Op) { ctx.VMAXPD_BCST(ops...) } - -// VMAXPD_BCST_Z: Return Maximum Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMAXPD.BCST.Z m64 xmm k xmm -// VMAXPD.BCST.Z m64 ymm k ymm -// VMAXPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VMAXPD.BCST.Z instruction to the active function. -func (c *Context) VMAXPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMAXPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VMAXPD_BCST_Z: Return Maximum Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMAXPD.BCST.Z m64 xmm k xmm -// VMAXPD.BCST.Z m64 ymm k ymm -// VMAXPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VMAXPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VMAXPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VMAXPD_BCST_Z(m, xyz, k, xyz1) } - -// VMAXPD_SAE: Return Maximum Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMAXPD.SAE zmm zmm k zmm -// VMAXPD.SAE zmm zmm zmm -// -// Construct and append a VMAXPD.SAE instruction to the active function. -func (c *Context) VMAXPD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMAXPD_SAE(ops...)) -} - -// VMAXPD_SAE: Return Maximum Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMAXPD.SAE zmm zmm k zmm -// VMAXPD.SAE zmm zmm zmm -// -// Construct and append a VMAXPD.SAE instruction to the active function. -// Operates on the global context. -func VMAXPD_SAE(ops ...operand.Op) { ctx.VMAXPD_SAE(ops...) } - -// VMAXPD_SAE_Z: Return Maximum Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXPD.SAE.Z zmm zmm k zmm -// -// Construct and append a VMAXPD.SAE.Z instruction to the active function. -func (c *Context) VMAXPD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMAXPD_SAE_Z(z, z1, k, z2)) -} - -// VMAXPD_SAE_Z: Return Maximum Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXPD.SAE.Z zmm zmm k zmm -// -// Construct and append a VMAXPD.SAE.Z instruction to the active function. -// Operates on the global context. -func VMAXPD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMAXPD_SAE_Z(z, z1, k, z2) } - -// VMAXPD_Z: Return Maximum Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMAXPD.Z m128 xmm k xmm -// VMAXPD.Z m256 ymm k ymm -// VMAXPD.Z xmm xmm k xmm -// VMAXPD.Z ymm ymm k ymm -// VMAXPD.Z m512 zmm k zmm -// VMAXPD.Z zmm zmm k zmm -// -// Construct and append a VMAXPD.Z instruction to the active function. -func (c *Context) VMAXPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMAXPD_Z(mxyz, xyz, k, xyz1)) -} - -// VMAXPD_Z: Return Maximum Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMAXPD.Z m128 xmm k xmm -// VMAXPD.Z m256 ymm k ymm -// VMAXPD.Z xmm xmm k xmm -// VMAXPD.Z ymm ymm k ymm -// VMAXPD.Z m512 zmm k zmm -// VMAXPD.Z zmm zmm k zmm -// -// Construct and append a VMAXPD.Z instruction to the active function. -// Operates on the global context. -func VMAXPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VMAXPD_Z(mxyz, xyz, k, xyz1) } - -// VMAXPS: Return Maximum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMAXPS m128 xmm xmm -// VMAXPS m256 ymm ymm -// VMAXPS xmm xmm xmm -// VMAXPS ymm ymm ymm -// VMAXPS m128 xmm k xmm -// VMAXPS m256 ymm k ymm -// VMAXPS xmm xmm k xmm -// VMAXPS ymm ymm k ymm -// VMAXPS m512 zmm k zmm -// VMAXPS m512 zmm zmm -// VMAXPS zmm zmm k zmm -// VMAXPS zmm zmm zmm -// -// Construct and append a VMAXPS instruction to the active function. -func (c *Context) VMAXPS(ops ...operand.Op) { - c.addinstruction(x86.VMAXPS(ops...)) -} - -// VMAXPS: Return Maximum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMAXPS m128 xmm xmm -// VMAXPS m256 ymm ymm -// VMAXPS xmm xmm xmm -// VMAXPS ymm ymm ymm -// VMAXPS m128 xmm k xmm -// VMAXPS m256 ymm k ymm -// VMAXPS xmm xmm k xmm -// VMAXPS ymm ymm k ymm -// VMAXPS m512 zmm k zmm -// VMAXPS m512 zmm zmm -// VMAXPS zmm zmm k zmm -// VMAXPS zmm zmm zmm -// -// Construct and append a VMAXPS instruction to the active function. -// Operates on the global context. -func VMAXPS(ops ...operand.Op) { ctx.VMAXPS(ops...) } - -// VMAXPS_BCST: Return Maximum Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMAXPS.BCST m32 xmm k xmm -// VMAXPS.BCST m32 xmm xmm -// VMAXPS.BCST m32 ymm k ymm -// VMAXPS.BCST m32 ymm ymm -// VMAXPS.BCST m32 zmm k zmm -// VMAXPS.BCST m32 zmm zmm -// -// Construct and append a VMAXPS.BCST instruction to the active function. -func (c *Context) VMAXPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VMAXPS_BCST(ops...)) -} - -// VMAXPS_BCST: Return Maximum Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMAXPS.BCST m32 xmm k xmm -// VMAXPS.BCST m32 xmm xmm -// VMAXPS.BCST m32 ymm k ymm -// VMAXPS.BCST m32 ymm ymm -// VMAXPS.BCST m32 zmm k zmm -// VMAXPS.BCST m32 zmm zmm -// -// Construct and append a VMAXPS.BCST instruction to the active function. -// Operates on the global context. -func VMAXPS_BCST(ops ...operand.Op) { ctx.VMAXPS_BCST(ops...) } - -// VMAXPS_BCST_Z: Return Maximum Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMAXPS.BCST.Z m32 xmm k xmm -// VMAXPS.BCST.Z m32 ymm k ymm -// VMAXPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VMAXPS.BCST.Z instruction to the active function. -func (c *Context) VMAXPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMAXPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VMAXPS_BCST_Z: Return Maximum Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMAXPS.BCST.Z m32 xmm k xmm -// VMAXPS.BCST.Z m32 ymm k ymm -// VMAXPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VMAXPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VMAXPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VMAXPS_BCST_Z(m, xyz, k, xyz1) } - -// VMAXPS_SAE: Return Maximum Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMAXPS.SAE zmm zmm k zmm -// VMAXPS.SAE zmm zmm zmm -// -// Construct and append a VMAXPS.SAE instruction to the active function. -func (c *Context) VMAXPS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMAXPS_SAE(ops...)) -} - -// VMAXPS_SAE: Return Maximum Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMAXPS.SAE zmm zmm k zmm -// VMAXPS.SAE zmm zmm zmm -// -// Construct and append a VMAXPS.SAE instruction to the active function. -// Operates on the global context. -func VMAXPS_SAE(ops ...operand.Op) { ctx.VMAXPS_SAE(ops...) } - -// VMAXPS_SAE_Z: Return Maximum Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXPS.SAE.Z zmm zmm k zmm -// -// Construct and append a VMAXPS.SAE.Z instruction to the active function. -func (c *Context) VMAXPS_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMAXPS_SAE_Z(z, z1, k, z2)) -} - -// VMAXPS_SAE_Z: Return Maximum Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXPS.SAE.Z zmm zmm k zmm -// -// Construct and append a VMAXPS.SAE.Z instruction to the active function. -// Operates on the global context. -func VMAXPS_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMAXPS_SAE_Z(z, z1, k, z2) } - -// VMAXPS_Z: Return Maximum Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMAXPS.Z m128 xmm k xmm -// VMAXPS.Z m256 ymm k ymm -// VMAXPS.Z xmm xmm k xmm -// VMAXPS.Z ymm ymm k ymm -// VMAXPS.Z m512 zmm k zmm -// VMAXPS.Z zmm zmm k zmm -// -// Construct and append a VMAXPS.Z instruction to the active function. -func (c *Context) VMAXPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMAXPS_Z(mxyz, xyz, k, xyz1)) -} - -// VMAXPS_Z: Return Maximum Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMAXPS.Z m128 xmm k xmm -// VMAXPS.Z m256 ymm k ymm -// VMAXPS.Z xmm xmm k xmm -// VMAXPS.Z ymm ymm k ymm -// VMAXPS.Z m512 zmm k zmm -// VMAXPS.Z zmm zmm k zmm -// -// Construct and append a VMAXPS.Z instruction to the active function. -// Operates on the global context. -func VMAXPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VMAXPS_Z(mxyz, xyz, k, xyz1) } - -// VMAXSD: Return Maximum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VMAXSD m64 xmm xmm -// VMAXSD xmm xmm xmm -// VMAXSD m64 xmm k xmm -// VMAXSD xmm xmm k xmm -// -// Construct and append a VMAXSD instruction to the active function. -func (c *Context) VMAXSD(ops ...operand.Op) { - c.addinstruction(x86.VMAXSD(ops...)) -} - -// VMAXSD: Return Maximum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VMAXSD m64 xmm xmm -// VMAXSD xmm xmm xmm -// VMAXSD m64 xmm k xmm -// VMAXSD xmm xmm k xmm -// -// Construct and append a VMAXSD instruction to the active function. -// Operates on the global context. -func VMAXSD(ops ...operand.Op) { ctx.VMAXSD(ops...) } - -// VMAXSD_SAE: Return Maximum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMAXSD.SAE xmm xmm k xmm -// VMAXSD.SAE xmm xmm xmm -// -// Construct and append a VMAXSD.SAE instruction to the active function. -func (c *Context) VMAXSD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMAXSD_SAE(ops...)) -} - -// VMAXSD_SAE: Return Maximum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMAXSD.SAE xmm xmm k xmm -// VMAXSD.SAE xmm xmm xmm -// -// Construct and append a VMAXSD.SAE instruction to the active function. -// Operates on the global context. -func VMAXSD_SAE(ops ...operand.Op) { ctx.VMAXSD_SAE(ops...) } - -// VMAXSD_SAE_Z: Return Maximum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXSD.SAE.Z xmm xmm k xmm -// -// Construct and append a VMAXSD.SAE.Z instruction to the active function. -func (c *Context) VMAXSD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMAXSD_SAE_Z(x, x1, k, x2)) -} - -// VMAXSD_SAE_Z: Return Maximum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXSD.SAE.Z xmm xmm k xmm -// -// Construct and append a VMAXSD.SAE.Z instruction to the active function. -// Operates on the global context. -func VMAXSD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMAXSD_SAE_Z(x, x1, k, x2) } - -// VMAXSD_Z: Return Maximum Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMAXSD.Z m64 xmm k xmm -// VMAXSD.Z xmm xmm k xmm -// -// Construct and append a VMAXSD.Z instruction to the active function. -func (c *Context) VMAXSD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VMAXSD_Z(mx, x, k, x1)) -} - -// VMAXSD_Z: Return Maximum Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMAXSD.Z m64 xmm k xmm -// VMAXSD.Z xmm xmm k xmm -// -// Construct and append a VMAXSD.Z instruction to the active function. -// Operates on the global context. -func VMAXSD_Z(mx, x, k, x1 operand.Op) { ctx.VMAXSD_Z(mx, x, k, x1) } - -// VMAXSS: Return Maximum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VMAXSS m32 xmm xmm -// VMAXSS xmm xmm xmm -// VMAXSS m32 xmm k xmm -// VMAXSS xmm xmm k xmm -// -// Construct and append a VMAXSS instruction to the active function. -func (c *Context) VMAXSS(ops ...operand.Op) { - c.addinstruction(x86.VMAXSS(ops...)) -} - -// VMAXSS: Return Maximum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VMAXSS m32 xmm xmm -// VMAXSS xmm xmm xmm -// VMAXSS m32 xmm k xmm -// VMAXSS xmm xmm k xmm -// -// Construct and append a VMAXSS instruction to the active function. -// Operates on the global context. -func VMAXSS(ops ...operand.Op) { ctx.VMAXSS(ops...) } - -// VMAXSS_SAE: Return Maximum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMAXSS.SAE xmm xmm k xmm -// VMAXSS.SAE xmm xmm xmm -// -// Construct and append a VMAXSS.SAE instruction to the active function. -func (c *Context) VMAXSS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMAXSS_SAE(ops...)) -} - -// VMAXSS_SAE: Return Maximum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMAXSS.SAE xmm xmm k xmm -// VMAXSS.SAE xmm xmm xmm -// -// Construct and append a VMAXSS.SAE instruction to the active function. -// Operates on the global context. -func VMAXSS_SAE(ops ...operand.Op) { ctx.VMAXSS_SAE(ops...) } - -// VMAXSS_SAE_Z: Return Maximum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXSS.SAE.Z xmm xmm k xmm -// -// Construct and append a VMAXSS.SAE.Z instruction to the active function. -func (c *Context) VMAXSS_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMAXSS_SAE_Z(x, x1, k, x2)) -} - -// VMAXSS_SAE_Z: Return Maximum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXSS.SAE.Z xmm xmm k xmm -// -// Construct and append a VMAXSS.SAE.Z instruction to the active function. -// Operates on the global context. -func VMAXSS_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMAXSS_SAE_Z(x, x1, k, x2) } - -// VMAXSS_Z: Return Maximum Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMAXSS.Z m32 xmm k xmm -// VMAXSS.Z xmm xmm k xmm -// -// Construct and append a VMAXSS.Z instruction to the active function. -func (c *Context) VMAXSS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VMAXSS_Z(mx, x, k, x1)) -} - -// VMAXSS_Z: Return Maximum Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMAXSS.Z m32 xmm k xmm -// VMAXSS.Z xmm xmm k xmm -// -// Construct and append a VMAXSS.Z instruction to the active function. -// Operates on the global context. -func VMAXSS_Z(mx, x, k, x1 operand.Op) { ctx.VMAXSS_Z(mx, x, k, x1) } - -// VMINPD: Return Minimum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMINPD m128 xmm xmm -// VMINPD m256 ymm ymm -// VMINPD xmm xmm xmm -// VMINPD ymm ymm ymm -// VMINPD m128 xmm k xmm -// VMINPD m256 ymm k ymm -// VMINPD xmm xmm k xmm -// VMINPD ymm ymm k ymm -// VMINPD m512 zmm k zmm -// VMINPD m512 zmm zmm -// VMINPD zmm zmm k zmm -// VMINPD zmm zmm zmm -// -// Construct and append a VMINPD instruction to the active function. -func (c *Context) VMINPD(ops ...operand.Op) { - c.addinstruction(x86.VMINPD(ops...)) -} - -// VMINPD: Return Minimum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMINPD m128 xmm xmm -// VMINPD m256 ymm ymm -// VMINPD xmm xmm xmm -// VMINPD ymm ymm ymm -// VMINPD m128 xmm k xmm -// VMINPD m256 ymm k ymm -// VMINPD xmm xmm k xmm -// VMINPD ymm ymm k ymm -// VMINPD m512 zmm k zmm -// VMINPD m512 zmm zmm -// VMINPD zmm zmm k zmm -// VMINPD zmm zmm zmm -// -// Construct and append a VMINPD instruction to the active function. -// Operates on the global context. -func VMINPD(ops ...operand.Op) { ctx.VMINPD(ops...) } - -// VMINPD_BCST: Return Minimum Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMINPD.BCST m64 xmm k xmm -// VMINPD.BCST m64 xmm xmm -// VMINPD.BCST m64 ymm k ymm -// VMINPD.BCST m64 ymm ymm -// VMINPD.BCST m64 zmm k zmm -// VMINPD.BCST m64 zmm zmm -// -// Construct and append a VMINPD.BCST instruction to the active function. -func (c *Context) VMINPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VMINPD_BCST(ops...)) -} - -// VMINPD_BCST: Return Minimum Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMINPD.BCST m64 xmm k xmm -// VMINPD.BCST m64 xmm xmm -// VMINPD.BCST m64 ymm k ymm -// VMINPD.BCST m64 ymm ymm -// VMINPD.BCST m64 zmm k zmm -// VMINPD.BCST m64 zmm zmm -// -// Construct and append a VMINPD.BCST instruction to the active function. -// Operates on the global context. -func VMINPD_BCST(ops ...operand.Op) { ctx.VMINPD_BCST(ops...) } - -// VMINPD_BCST_Z: Return Minimum Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMINPD.BCST.Z m64 xmm k xmm -// VMINPD.BCST.Z m64 ymm k ymm -// VMINPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VMINPD.BCST.Z instruction to the active function. -func (c *Context) VMINPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMINPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VMINPD_BCST_Z: Return Minimum Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMINPD.BCST.Z m64 xmm k xmm -// VMINPD.BCST.Z m64 ymm k ymm -// VMINPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VMINPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VMINPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VMINPD_BCST_Z(m, xyz, k, xyz1) } - -// VMINPD_SAE: Return Minimum Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMINPD.SAE zmm zmm k zmm -// VMINPD.SAE zmm zmm zmm -// -// Construct and append a VMINPD.SAE instruction to the active function. -func (c *Context) VMINPD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMINPD_SAE(ops...)) -} - -// VMINPD_SAE: Return Minimum Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMINPD.SAE zmm zmm k zmm -// VMINPD.SAE zmm zmm zmm -// -// Construct and append a VMINPD.SAE instruction to the active function. -// Operates on the global context. -func VMINPD_SAE(ops ...operand.Op) { ctx.VMINPD_SAE(ops...) } - -// VMINPD_SAE_Z: Return Minimum Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINPD.SAE.Z zmm zmm k zmm -// -// Construct and append a VMINPD.SAE.Z instruction to the active function. -func (c *Context) VMINPD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMINPD_SAE_Z(z, z1, k, z2)) -} - -// VMINPD_SAE_Z: Return Minimum Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINPD.SAE.Z zmm zmm k zmm -// -// Construct and append a VMINPD.SAE.Z instruction to the active function. -// Operates on the global context. -func VMINPD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMINPD_SAE_Z(z, z1, k, z2) } - -// VMINPD_Z: Return Minimum Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMINPD.Z m128 xmm k xmm -// VMINPD.Z m256 ymm k ymm -// VMINPD.Z xmm xmm k xmm -// VMINPD.Z ymm ymm k ymm -// VMINPD.Z m512 zmm k zmm -// VMINPD.Z zmm zmm k zmm -// -// Construct and append a VMINPD.Z instruction to the active function. -func (c *Context) VMINPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMINPD_Z(mxyz, xyz, k, xyz1)) -} - -// VMINPD_Z: Return Minimum Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMINPD.Z m128 xmm k xmm -// VMINPD.Z m256 ymm k ymm -// VMINPD.Z xmm xmm k xmm -// VMINPD.Z ymm ymm k ymm -// VMINPD.Z m512 zmm k zmm -// VMINPD.Z zmm zmm k zmm -// -// Construct and append a VMINPD.Z instruction to the active function. -// Operates on the global context. -func VMINPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VMINPD_Z(mxyz, xyz, k, xyz1) } - -// VMINPS: Return Minimum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMINPS m128 xmm xmm -// VMINPS m256 ymm ymm -// VMINPS xmm xmm xmm -// VMINPS ymm ymm ymm -// VMINPS m128 xmm k xmm -// VMINPS m256 ymm k ymm -// VMINPS xmm xmm k xmm -// VMINPS ymm ymm k ymm -// VMINPS m512 zmm k zmm -// VMINPS m512 zmm zmm -// VMINPS zmm zmm k zmm -// VMINPS zmm zmm zmm -// -// Construct and append a VMINPS instruction to the active function. -func (c *Context) VMINPS(ops ...operand.Op) { - c.addinstruction(x86.VMINPS(ops...)) -} - -// VMINPS: Return Minimum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMINPS m128 xmm xmm -// VMINPS m256 ymm ymm -// VMINPS xmm xmm xmm -// VMINPS ymm ymm ymm -// VMINPS m128 xmm k xmm -// VMINPS m256 ymm k ymm -// VMINPS xmm xmm k xmm -// VMINPS ymm ymm k ymm -// VMINPS m512 zmm k zmm -// VMINPS m512 zmm zmm -// VMINPS zmm zmm k zmm -// VMINPS zmm zmm zmm -// -// Construct and append a VMINPS instruction to the active function. -// Operates on the global context. -func VMINPS(ops ...operand.Op) { ctx.VMINPS(ops...) } - -// VMINPS_BCST: Return Minimum Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMINPS.BCST m32 xmm k xmm -// VMINPS.BCST m32 xmm xmm -// VMINPS.BCST m32 ymm k ymm -// VMINPS.BCST m32 ymm ymm -// VMINPS.BCST m32 zmm k zmm -// VMINPS.BCST m32 zmm zmm -// -// Construct and append a VMINPS.BCST instruction to the active function. -func (c *Context) VMINPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VMINPS_BCST(ops...)) -} - -// VMINPS_BCST: Return Minimum Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMINPS.BCST m32 xmm k xmm -// VMINPS.BCST m32 xmm xmm -// VMINPS.BCST m32 ymm k ymm -// VMINPS.BCST m32 ymm ymm -// VMINPS.BCST m32 zmm k zmm -// VMINPS.BCST m32 zmm zmm -// -// Construct and append a VMINPS.BCST instruction to the active function. -// Operates on the global context. -func VMINPS_BCST(ops ...operand.Op) { ctx.VMINPS_BCST(ops...) } - -// VMINPS_BCST_Z: Return Minimum Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMINPS.BCST.Z m32 xmm k xmm -// VMINPS.BCST.Z m32 ymm k ymm -// VMINPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VMINPS.BCST.Z instruction to the active function. -func (c *Context) VMINPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMINPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VMINPS_BCST_Z: Return Minimum Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMINPS.BCST.Z m32 xmm k xmm -// VMINPS.BCST.Z m32 ymm k ymm -// VMINPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VMINPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VMINPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VMINPS_BCST_Z(m, xyz, k, xyz1) } - -// VMINPS_SAE: Return Minimum Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMINPS.SAE zmm zmm k zmm -// VMINPS.SAE zmm zmm zmm -// -// Construct and append a VMINPS.SAE instruction to the active function. -func (c *Context) VMINPS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMINPS_SAE(ops...)) -} - -// VMINPS_SAE: Return Minimum Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMINPS.SAE zmm zmm k zmm -// VMINPS.SAE zmm zmm zmm -// -// Construct and append a VMINPS.SAE instruction to the active function. -// Operates on the global context. -func VMINPS_SAE(ops ...operand.Op) { ctx.VMINPS_SAE(ops...) } - -// VMINPS_SAE_Z: Return Minimum Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINPS.SAE.Z zmm zmm k zmm -// -// Construct and append a VMINPS.SAE.Z instruction to the active function. -func (c *Context) VMINPS_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMINPS_SAE_Z(z, z1, k, z2)) -} - -// VMINPS_SAE_Z: Return Minimum Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINPS.SAE.Z zmm zmm k zmm -// -// Construct and append a VMINPS.SAE.Z instruction to the active function. -// Operates on the global context. -func VMINPS_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMINPS_SAE_Z(z, z1, k, z2) } - -// VMINPS_Z: Return Minimum Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMINPS.Z m128 xmm k xmm -// VMINPS.Z m256 ymm k ymm -// VMINPS.Z xmm xmm k xmm -// VMINPS.Z ymm ymm k ymm -// VMINPS.Z m512 zmm k zmm -// VMINPS.Z zmm zmm k zmm -// -// Construct and append a VMINPS.Z instruction to the active function. -func (c *Context) VMINPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMINPS_Z(mxyz, xyz, k, xyz1)) -} - -// VMINPS_Z: Return Minimum Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMINPS.Z m128 xmm k xmm -// VMINPS.Z m256 ymm k ymm -// VMINPS.Z xmm xmm k xmm -// VMINPS.Z ymm ymm k ymm -// VMINPS.Z m512 zmm k zmm -// VMINPS.Z zmm zmm k zmm -// -// Construct and append a VMINPS.Z instruction to the active function. -// Operates on the global context. -func VMINPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VMINPS_Z(mxyz, xyz, k, xyz1) } - -// VMINSD: Return Minimum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VMINSD m64 xmm xmm -// VMINSD xmm xmm xmm -// VMINSD m64 xmm k xmm -// VMINSD xmm xmm k xmm -// -// Construct and append a VMINSD instruction to the active function. -func (c *Context) VMINSD(ops ...operand.Op) { - c.addinstruction(x86.VMINSD(ops...)) -} - -// VMINSD: Return Minimum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VMINSD m64 xmm xmm -// VMINSD xmm xmm xmm -// VMINSD m64 xmm k xmm -// VMINSD xmm xmm k xmm -// -// Construct and append a VMINSD instruction to the active function. -// Operates on the global context. -func VMINSD(ops ...operand.Op) { ctx.VMINSD(ops...) } - -// VMINSD_SAE: Return Minimum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMINSD.SAE xmm xmm k xmm -// VMINSD.SAE xmm xmm xmm -// -// Construct and append a VMINSD.SAE instruction to the active function. -func (c *Context) VMINSD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMINSD_SAE(ops...)) -} - -// VMINSD_SAE: Return Minimum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMINSD.SAE xmm xmm k xmm -// VMINSD.SAE xmm xmm xmm -// -// Construct and append a VMINSD.SAE instruction to the active function. -// Operates on the global context. -func VMINSD_SAE(ops ...operand.Op) { ctx.VMINSD_SAE(ops...) } - -// VMINSD_SAE_Z: Return Minimum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINSD.SAE.Z xmm xmm k xmm -// -// Construct and append a VMINSD.SAE.Z instruction to the active function. -func (c *Context) VMINSD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMINSD_SAE_Z(x, x1, k, x2)) -} - -// VMINSD_SAE_Z: Return Minimum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINSD.SAE.Z xmm xmm k xmm -// -// Construct and append a VMINSD.SAE.Z instruction to the active function. -// Operates on the global context. -func VMINSD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMINSD_SAE_Z(x, x1, k, x2) } - -// VMINSD_Z: Return Minimum Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMINSD.Z m64 xmm k xmm -// VMINSD.Z xmm xmm k xmm -// -// Construct and append a VMINSD.Z instruction to the active function. -func (c *Context) VMINSD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VMINSD_Z(mx, x, k, x1)) -} - -// VMINSD_Z: Return Minimum Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMINSD.Z m64 xmm k xmm -// VMINSD.Z xmm xmm k xmm -// -// Construct and append a VMINSD.Z instruction to the active function. -// Operates on the global context. -func VMINSD_Z(mx, x, k, x1 operand.Op) { ctx.VMINSD_Z(mx, x, k, x1) } - -// VMINSS: Return Minimum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VMINSS m32 xmm xmm -// VMINSS xmm xmm xmm -// VMINSS m32 xmm k xmm -// VMINSS xmm xmm k xmm -// -// Construct and append a VMINSS instruction to the active function. -func (c *Context) VMINSS(ops ...operand.Op) { - c.addinstruction(x86.VMINSS(ops...)) -} - -// VMINSS: Return Minimum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VMINSS m32 xmm xmm -// VMINSS xmm xmm xmm -// VMINSS m32 xmm k xmm -// VMINSS xmm xmm k xmm -// -// Construct and append a VMINSS instruction to the active function. -// Operates on the global context. -func VMINSS(ops ...operand.Op) { ctx.VMINSS(ops...) } - -// VMINSS_SAE: Return Minimum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMINSS.SAE xmm xmm k xmm -// VMINSS.SAE xmm xmm xmm -// -// Construct and append a VMINSS.SAE instruction to the active function. -func (c *Context) VMINSS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMINSS_SAE(ops...)) -} - -// VMINSS_SAE: Return Minimum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMINSS.SAE xmm xmm k xmm -// VMINSS.SAE xmm xmm xmm -// -// Construct and append a VMINSS.SAE instruction to the active function. -// Operates on the global context. -func VMINSS_SAE(ops ...operand.Op) { ctx.VMINSS_SAE(ops...) } - -// VMINSS_SAE_Z: Return Minimum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINSS.SAE.Z xmm xmm k xmm -// -// Construct and append a VMINSS.SAE.Z instruction to the active function. -func (c *Context) VMINSS_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMINSS_SAE_Z(x, x1, k, x2)) -} - -// VMINSS_SAE_Z: Return Minimum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINSS.SAE.Z xmm xmm k xmm -// -// Construct and append a VMINSS.SAE.Z instruction to the active function. -// Operates on the global context. -func VMINSS_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMINSS_SAE_Z(x, x1, k, x2) } - -// VMINSS_Z: Return Minimum Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMINSS.Z m32 xmm k xmm -// VMINSS.Z xmm xmm k xmm -// -// Construct and append a VMINSS.Z instruction to the active function. -func (c *Context) VMINSS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VMINSS_Z(mx, x, k, x1)) -} - -// VMINSS_Z: Return Minimum Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMINSS.Z m32 xmm k xmm -// VMINSS.Z xmm xmm k xmm -// -// Construct and append a VMINSS.Z instruction to the active function. -// Operates on the global context. -func VMINSS_Z(mx, x, k, x1 operand.Op) { ctx.VMINSS_Z(mx, x, k, x1) } - -// VMOVAPD: Move Aligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMOVAPD m128 xmm -// VMOVAPD m256 ymm -// VMOVAPD xmm m128 -// VMOVAPD xmm xmm -// VMOVAPD ymm m256 -// VMOVAPD ymm ymm -// VMOVAPD m128 k xmm -// VMOVAPD m256 k ymm -// VMOVAPD xmm k m128 -// VMOVAPD xmm k xmm -// VMOVAPD ymm k m256 -// VMOVAPD ymm k ymm -// VMOVAPD m512 k zmm -// VMOVAPD m512 zmm -// VMOVAPD zmm k m512 -// VMOVAPD zmm k zmm -// VMOVAPD zmm m512 -// VMOVAPD zmm zmm -// -// Construct and append a VMOVAPD instruction to the active function. -func (c *Context) VMOVAPD(ops ...operand.Op) { - c.addinstruction(x86.VMOVAPD(ops...)) -} - -// VMOVAPD: Move Aligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMOVAPD m128 xmm -// VMOVAPD m256 ymm -// VMOVAPD xmm m128 -// VMOVAPD xmm xmm -// VMOVAPD ymm m256 -// VMOVAPD ymm ymm -// VMOVAPD m128 k xmm -// VMOVAPD m256 k ymm -// VMOVAPD xmm k m128 -// VMOVAPD xmm k xmm -// VMOVAPD ymm k m256 -// VMOVAPD ymm k ymm -// VMOVAPD m512 k zmm -// VMOVAPD m512 zmm -// VMOVAPD zmm k m512 -// VMOVAPD zmm k zmm -// VMOVAPD zmm m512 -// VMOVAPD zmm zmm -// -// Construct and append a VMOVAPD instruction to the active function. -// Operates on the global context. -func VMOVAPD(ops ...operand.Op) { ctx.VMOVAPD(ops...) } - -// VMOVAPD_Z: Move Aligned Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVAPD.Z m128 k xmm -// VMOVAPD.Z m256 k ymm -// VMOVAPD.Z xmm k m128 -// VMOVAPD.Z xmm k xmm -// VMOVAPD.Z ymm k m256 -// VMOVAPD.Z ymm k ymm -// VMOVAPD.Z m512 k zmm -// VMOVAPD.Z zmm k m512 -// VMOVAPD.Z zmm k zmm -// -// Construct and append a VMOVAPD.Z instruction to the active function. -func (c *Context) VMOVAPD_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVAPD_Z(mxyz, k, mxyz1)) -} - -// VMOVAPD_Z: Move Aligned Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVAPD.Z m128 k xmm -// VMOVAPD.Z m256 k ymm -// VMOVAPD.Z xmm k m128 -// VMOVAPD.Z xmm k xmm -// VMOVAPD.Z ymm k m256 -// VMOVAPD.Z ymm k ymm -// VMOVAPD.Z m512 k zmm -// VMOVAPD.Z zmm k m512 -// VMOVAPD.Z zmm k zmm -// -// Construct and append a VMOVAPD.Z instruction to the active function. -// Operates on the global context. -func VMOVAPD_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVAPD_Z(mxyz, k, mxyz1) } - -// VMOVAPS: Move Aligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVAPS m128 xmm -// VMOVAPS m256 ymm -// VMOVAPS xmm m128 -// VMOVAPS xmm xmm -// VMOVAPS ymm m256 -// VMOVAPS ymm ymm -// VMOVAPS m128 k xmm -// VMOVAPS m256 k ymm -// VMOVAPS xmm k m128 -// VMOVAPS xmm k xmm -// VMOVAPS ymm k m256 -// VMOVAPS ymm k ymm -// VMOVAPS m512 k zmm -// VMOVAPS m512 zmm -// VMOVAPS zmm k m512 -// VMOVAPS zmm k zmm -// VMOVAPS zmm m512 -// VMOVAPS zmm zmm -// -// Construct and append a VMOVAPS instruction to the active function. -func (c *Context) VMOVAPS(ops ...operand.Op) { - c.addinstruction(x86.VMOVAPS(ops...)) -} - -// VMOVAPS: Move Aligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVAPS m128 xmm -// VMOVAPS m256 ymm -// VMOVAPS xmm m128 -// VMOVAPS xmm xmm -// VMOVAPS ymm m256 -// VMOVAPS ymm ymm -// VMOVAPS m128 k xmm -// VMOVAPS m256 k ymm -// VMOVAPS xmm k m128 -// VMOVAPS xmm k xmm -// VMOVAPS ymm k m256 -// VMOVAPS ymm k ymm -// VMOVAPS m512 k zmm -// VMOVAPS m512 zmm -// VMOVAPS zmm k m512 -// VMOVAPS zmm k zmm -// VMOVAPS zmm m512 -// VMOVAPS zmm zmm -// -// Construct and append a VMOVAPS instruction to the active function. -// Operates on the global context. -func VMOVAPS(ops ...operand.Op) { ctx.VMOVAPS(ops...) } - -// VMOVAPS_Z: Move Aligned Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVAPS.Z m128 k xmm -// VMOVAPS.Z m256 k ymm -// VMOVAPS.Z xmm k m128 -// VMOVAPS.Z xmm k xmm -// VMOVAPS.Z ymm k m256 -// VMOVAPS.Z ymm k ymm -// VMOVAPS.Z m512 k zmm -// VMOVAPS.Z zmm k m512 -// VMOVAPS.Z zmm k zmm -// -// Construct and append a VMOVAPS.Z instruction to the active function. -func (c *Context) VMOVAPS_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVAPS_Z(mxyz, k, mxyz1)) -} - -// VMOVAPS_Z: Move Aligned Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVAPS.Z m128 k xmm -// VMOVAPS.Z m256 k ymm -// VMOVAPS.Z xmm k m128 -// VMOVAPS.Z xmm k xmm -// VMOVAPS.Z ymm k m256 -// VMOVAPS.Z ymm k ymm -// VMOVAPS.Z m512 k zmm -// VMOVAPS.Z zmm k m512 -// VMOVAPS.Z zmm k zmm -// -// Construct and append a VMOVAPS.Z instruction to the active function. -// Operates on the global context. -func VMOVAPS_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVAPS_Z(mxyz, k, mxyz1) } - -// VMOVD: Move Doubleword. -// -// Forms: -// -// VMOVD m32 xmm -// VMOVD r32 xmm -// VMOVD xmm m32 -// VMOVD xmm r32 -// -// Construct and append a VMOVD instruction to the active function. -func (c *Context) VMOVD(mrx, mrx1 operand.Op) { - c.addinstruction(x86.VMOVD(mrx, mrx1)) -} - -// VMOVD: Move Doubleword. -// -// Forms: -// -// VMOVD m32 xmm -// VMOVD r32 xmm -// VMOVD xmm m32 -// VMOVD xmm r32 -// -// Construct and append a VMOVD instruction to the active function. -// Operates on the global context. -func VMOVD(mrx, mrx1 operand.Op) { ctx.VMOVD(mrx, mrx1) } - -// VMOVDDUP: Move One Double-FP and Duplicate. -// -// Forms: -// -// VMOVDDUP m256 ymm -// VMOVDDUP m64 xmm -// VMOVDDUP xmm xmm -// VMOVDDUP ymm ymm -// VMOVDDUP m256 k ymm -// VMOVDDUP m64 k xmm -// VMOVDDUP xmm k xmm -// VMOVDDUP ymm k ymm -// VMOVDDUP m512 k zmm -// VMOVDDUP m512 zmm -// VMOVDDUP zmm k zmm -// VMOVDDUP zmm zmm -// -// Construct and append a VMOVDDUP instruction to the active function. -func (c *Context) VMOVDDUP(ops ...operand.Op) { - c.addinstruction(x86.VMOVDDUP(ops...)) -} - -// VMOVDDUP: Move One Double-FP and Duplicate. -// -// Forms: -// -// VMOVDDUP m256 ymm -// VMOVDDUP m64 xmm -// VMOVDDUP xmm xmm -// VMOVDDUP ymm ymm -// VMOVDDUP m256 k ymm -// VMOVDDUP m64 k xmm -// VMOVDDUP xmm k xmm -// VMOVDDUP ymm k ymm -// VMOVDDUP m512 k zmm -// VMOVDDUP m512 zmm -// VMOVDDUP zmm k zmm -// VMOVDDUP zmm zmm -// -// Construct and append a VMOVDDUP instruction to the active function. -// Operates on the global context. -func VMOVDDUP(ops ...operand.Op) { ctx.VMOVDDUP(ops...) } - -// VMOVDDUP_Z: Move One Double-FP and Duplicate (Zeroing Masking). -// -// Forms: -// -// VMOVDDUP.Z m256 k ymm -// VMOVDDUP.Z m64 k xmm -// VMOVDDUP.Z xmm k xmm -// VMOVDDUP.Z ymm k ymm -// VMOVDDUP.Z m512 k zmm -// VMOVDDUP.Z zmm k zmm -// -// Construct and append a VMOVDDUP.Z instruction to the active function. -func (c *Context) VMOVDDUP_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VMOVDDUP_Z(mxyz, k, xyz)) -} - -// VMOVDDUP_Z: Move One Double-FP and Duplicate (Zeroing Masking). -// -// Forms: -// -// VMOVDDUP.Z m256 k ymm -// VMOVDDUP.Z m64 k xmm -// VMOVDDUP.Z xmm k xmm -// VMOVDDUP.Z ymm k ymm -// VMOVDDUP.Z m512 k zmm -// VMOVDDUP.Z zmm k zmm -// -// Construct and append a VMOVDDUP.Z instruction to the active function. -// Operates on the global context. -func VMOVDDUP_Z(mxyz, k, xyz operand.Op) { ctx.VMOVDDUP_Z(mxyz, k, xyz) } - -// VMOVDQA: Move Aligned Double Quadword. -// -// Forms: -// -// VMOVDQA m128 xmm -// VMOVDQA m256 ymm -// VMOVDQA xmm m128 -// VMOVDQA xmm xmm -// VMOVDQA ymm m256 -// VMOVDQA ymm ymm -// -// Construct and append a VMOVDQA instruction to the active function. -func (c *Context) VMOVDQA(mxy, mxy1 operand.Op) { - c.addinstruction(x86.VMOVDQA(mxy, mxy1)) -} - -// VMOVDQA: Move Aligned Double Quadword. -// -// Forms: -// -// VMOVDQA m128 xmm -// VMOVDQA m256 ymm -// VMOVDQA xmm m128 -// VMOVDQA xmm xmm -// VMOVDQA ymm m256 -// VMOVDQA ymm ymm -// -// Construct and append a VMOVDQA instruction to the active function. -// Operates on the global context. -func VMOVDQA(mxy, mxy1 operand.Op) { ctx.VMOVDQA(mxy, mxy1) } - -// VMOVDQA32: Move Aligned Doubleword Values. -// -// Forms: -// -// VMOVDQA32 m128 k xmm -// VMOVDQA32 m128 xmm -// VMOVDQA32 m256 k ymm -// VMOVDQA32 m256 ymm -// VMOVDQA32 xmm k m128 -// VMOVDQA32 xmm k xmm -// VMOVDQA32 xmm m128 -// VMOVDQA32 xmm xmm -// VMOVDQA32 ymm k m256 -// VMOVDQA32 ymm k ymm -// VMOVDQA32 ymm m256 -// VMOVDQA32 ymm ymm -// VMOVDQA32 m512 k zmm -// VMOVDQA32 m512 zmm -// VMOVDQA32 zmm k m512 -// VMOVDQA32 zmm k zmm -// VMOVDQA32 zmm m512 -// VMOVDQA32 zmm zmm -// -// Construct and append a VMOVDQA32 instruction to the active function. -func (c *Context) VMOVDQA32(ops ...operand.Op) { - c.addinstruction(x86.VMOVDQA32(ops...)) -} - -// VMOVDQA32: Move Aligned Doubleword Values. -// -// Forms: -// -// VMOVDQA32 m128 k xmm -// VMOVDQA32 m128 xmm -// VMOVDQA32 m256 k ymm -// VMOVDQA32 m256 ymm -// VMOVDQA32 xmm k m128 -// VMOVDQA32 xmm k xmm -// VMOVDQA32 xmm m128 -// VMOVDQA32 xmm xmm -// VMOVDQA32 ymm k m256 -// VMOVDQA32 ymm k ymm -// VMOVDQA32 ymm m256 -// VMOVDQA32 ymm ymm -// VMOVDQA32 m512 k zmm -// VMOVDQA32 m512 zmm -// VMOVDQA32 zmm k m512 -// VMOVDQA32 zmm k zmm -// VMOVDQA32 zmm m512 -// VMOVDQA32 zmm zmm -// -// Construct and append a VMOVDQA32 instruction to the active function. -// Operates on the global context. -func VMOVDQA32(ops ...operand.Op) { ctx.VMOVDQA32(ops...) } - -// VMOVDQA32_Z: Move Aligned Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQA32.Z m128 k xmm -// VMOVDQA32.Z m256 k ymm -// VMOVDQA32.Z xmm k m128 -// VMOVDQA32.Z xmm k xmm -// VMOVDQA32.Z ymm k m256 -// VMOVDQA32.Z ymm k ymm -// VMOVDQA32.Z m512 k zmm -// VMOVDQA32.Z zmm k m512 -// VMOVDQA32.Z zmm k zmm -// -// Construct and append a VMOVDQA32.Z instruction to the active function. -func (c *Context) VMOVDQA32_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVDQA32_Z(mxyz, k, mxyz1)) -} - -// VMOVDQA32_Z: Move Aligned Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQA32.Z m128 k xmm -// VMOVDQA32.Z m256 k ymm -// VMOVDQA32.Z xmm k m128 -// VMOVDQA32.Z xmm k xmm -// VMOVDQA32.Z ymm k m256 -// VMOVDQA32.Z ymm k ymm -// VMOVDQA32.Z m512 k zmm -// VMOVDQA32.Z zmm k m512 -// VMOVDQA32.Z zmm k zmm -// -// Construct and append a VMOVDQA32.Z instruction to the active function. -// Operates on the global context. -func VMOVDQA32_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVDQA32_Z(mxyz, k, mxyz1) } - -// VMOVDQA64: Move Aligned Quadword Values. -// -// Forms: -// -// VMOVDQA64 m128 k xmm -// VMOVDQA64 m128 xmm -// VMOVDQA64 m256 k ymm -// VMOVDQA64 m256 ymm -// VMOVDQA64 xmm k m128 -// VMOVDQA64 xmm k xmm -// VMOVDQA64 xmm m128 -// VMOVDQA64 xmm xmm -// VMOVDQA64 ymm k m256 -// VMOVDQA64 ymm k ymm -// VMOVDQA64 ymm m256 -// VMOVDQA64 ymm ymm -// VMOVDQA64 m512 k zmm -// VMOVDQA64 m512 zmm -// VMOVDQA64 zmm k m512 -// VMOVDQA64 zmm k zmm -// VMOVDQA64 zmm m512 -// VMOVDQA64 zmm zmm -// -// Construct and append a VMOVDQA64 instruction to the active function. -func (c *Context) VMOVDQA64(ops ...operand.Op) { - c.addinstruction(x86.VMOVDQA64(ops...)) -} - -// VMOVDQA64: Move Aligned Quadword Values. -// -// Forms: -// -// VMOVDQA64 m128 k xmm -// VMOVDQA64 m128 xmm -// VMOVDQA64 m256 k ymm -// VMOVDQA64 m256 ymm -// VMOVDQA64 xmm k m128 -// VMOVDQA64 xmm k xmm -// VMOVDQA64 xmm m128 -// VMOVDQA64 xmm xmm -// VMOVDQA64 ymm k m256 -// VMOVDQA64 ymm k ymm -// VMOVDQA64 ymm m256 -// VMOVDQA64 ymm ymm -// VMOVDQA64 m512 k zmm -// VMOVDQA64 m512 zmm -// VMOVDQA64 zmm k m512 -// VMOVDQA64 zmm k zmm -// VMOVDQA64 zmm m512 -// VMOVDQA64 zmm zmm -// -// Construct and append a VMOVDQA64 instruction to the active function. -// Operates on the global context. -func VMOVDQA64(ops ...operand.Op) { ctx.VMOVDQA64(ops...) } - -// VMOVDQA64_Z: Move Aligned Quadword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQA64.Z m128 k xmm -// VMOVDQA64.Z m256 k ymm -// VMOVDQA64.Z xmm k m128 -// VMOVDQA64.Z xmm k xmm -// VMOVDQA64.Z ymm k m256 -// VMOVDQA64.Z ymm k ymm -// VMOVDQA64.Z m512 k zmm -// VMOVDQA64.Z zmm k m512 -// VMOVDQA64.Z zmm k zmm -// -// Construct and append a VMOVDQA64.Z instruction to the active function. -func (c *Context) VMOVDQA64_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVDQA64_Z(mxyz, k, mxyz1)) -} - -// VMOVDQA64_Z: Move Aligned Quadword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQA64.Z m128 k xmm -// VMOVDQA64.Z m256 k ymm -// VMOVDQA64.Z xmm k m128 -// VMOVDQA64.Z xmm k xmm -// VMOVDQA64.Z ymm k m256 -// VMOVDQA64.Z ymm k ymm -// VMOVDQA64.Z m512 k zmm -// VMOVDQA64.Z zmm k m512 -// VMOVDQA64.Z zmm k zmm -// -// Construct and append a VMOVDQA64.Z instruction to the active function. -// Operates on the global context. -func VMOVDQA64_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVDQA64_Z(mxyz, k, mxyz1) } - -// VMOVDQU: Move Unaligned Double Quadword. -// -// Forms: -// -// VMOVDQU m128 xmm -// VMOVDQU m256 ymm -// VMOVDQU xmm m128 -// VMOVDQU xmm xmm -// VMOVDQU ymm m256 -// VMOVDQU ymm ymm -// -// Construct and append a VMOVDQU instruction to the active function. -func (c *Context) VMOVDQU(mxy, mxy1 operand.Op) { - c.addinstruction(x86.VMOVDQU(mxy, mxy1)) -} - -// VMOVDQU: Move Unaligned Double Quadword. -// -// Forms: -// -// VMOVDQU m128 xmm -// VMOVDQU m256 ymm -// VMOVDQU xmm m128 -// VMOVDQU xmm xmm -// VMOVDQU ymm m256 -// VMOVDQU ymm ymm -// -// Construct and append a VMOVDQU instruction to the active function. -// Operates on the global context. -func VMOVDQU(mxy, mxy1 operand.Op) { ctx.VMOVDQU(mxy, mxy1) } - -// VMOVDQU16: Move Unaligned Word Values. -// -// Forms: -// -// VMOVDQU16 m128 k xmm -// VMOVDQU16 m128 xmm -// VMOVDQU16 m256 k ymm -// VMOVDQU16 m256 ymm -// VMOVDQU16 xmm k m128 -// VMOVDQU16 xmm k xmm -// VMOVDQU16 xmm m128 -// VMOVDQU16 xmm xmm -// VMOVDQU16 ymm k m256 -// VMOVDQU16 ymm k ymm -// VMOVDQU16 ymm m256 -// VMOVDQU16 ymm ymm -// VMOVDQU16 m512 k zmm -// VMOVDQU16 m512 zmm -// VMOVDQU16 zmm k m512 -// VMOVDQU16 zmm k zmm -// VMOVDQU16 zmm m512 -// VMOVDQU16 zmm zmm -// -// Construct and append a VMOVDQU16 instruction to the active function. -func (c *Context) VMOVDQU16(ops ...operand.Op) { - c.addinstruction(x86.VMOVDQU16(ops...)) -} - -// VMOVDQU16: Move Unaligned Word Values. -// -// Forms: -// -// VMOVDQU16 m128 k xmm -// VMOVDQU16 m128 xmm -// VMOVDQU16 m256 k ymm -// VMOVDQU16 m256 ymm -// VMOVDQU16 xmm k m128 -// VMOVDQU16 xmm k xmm -// VMOVDQU16 xmm m128 -// VMOVDQU16 xmm xmm -// VMOVDQU16 ymm k m256 -// VMOVDQU16 ymm k ymm -// VMOVDQU16 ymm m256 -// VMOVDQU16 ymm ymm -// VMOVDQU16 m512 k zmm -// VMOVDQU16 m512 zmm -// VMOVDQU16 zmm k m512 -// VMOVDQU16 zmm k zmm -// VMOVDQU16 zmm m512 -// VMOVDQU16 zmm zmm -// -// Construct and append a VMOVDQU16 instruction to the active function. -// Operates on the global context. -func VMOVDQU16(ops ...operand.Op) { ctx.VMOVDQU16(ops...) } - -// VMOVDQU16_Z: Move Unaligned Word Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU16.Z m128 k xmm -// VMOVDQU16.Z m256 k ymm -// VMOVDQU16.Z xmm k m128 -// VMOVDQU16.Z xmm k xmm -// VMOVDQU16.Z ymm k m256 -// VMOVDQU16.Z ymm k ymm -// VMOVDQU16.Z m512 k zmm -// VMOVDQU16.Z zmm k m512 -// VMOVDQU16.Z zmm k zmm -// -// Construct and append a VMOVDQU16.Z instruction to the active function. -func (c *Context) VMOVDQU16_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVDQU16_Z(mxyz, k, mxyz1)) -} - -// VMOVDQU16_Z: Move Unaligned Word Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU16.Z m128 k xmm -// VMOVDQU16.Z m256 k ymm -// VMOVDQU16.Z xmm k m128 -// VMOVDQU16.Z xmm k xmm -// VMOVDQU16.Z ymm k m256 -// VMOVDQU16.Z ymm k ymm -// VMOVDQU16.Z m512 k zmm -// VMOVDQU16.Z zmm k m512 -// VMOVDQU16.Z zmm k zmm -// -// Construct and append a VMOVDQU16.Z instruction to the active function. -// Operates on the global context. -func VMOVDQU16_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVDQU16_Z(mxyz, k, mxyz1) } - -// VMOVDQU32: Move Unaligned Doubleword Values. -// -// Forms: -// -// VMOVDQU32 m128 k xmm -// VMOVDQU32 m128 xmm -// VMOVDQU32 m256 k ymm -// VMOVDQU32 m256 ymm -// VMOVDQU32 xmm k m128 -// VMOVDQU32 xmm k xmm -// VMOVDQU32 xmm m128 -// VMOVDQU32 xmm xmm -// VMOVDQU32 ymm k m256 -// VMOVDQU32 ymm k ymm -// VMOVDQU32 ymm m256 -// VMOVDQU32 ymm ymm -// VMOVDQU32 m512 k zmm -// VMOVDQU32 m512 zmm -// VMOVDQU32 zmm k m512 -// VMOVDQU32 zmm k zmm -// VMOVDQU32 zmm m512 -// VMOVDQU32 zmm zmm -// -// Construct and append a VMOVDQU32 instruction to the active function. -func (c *Context) VMOVDQU32(ops ...operand.Op) { - c.addinstruction(x86.VMOVDQU32(ops...)) -} - -// VMOVDQU32: Move Unaligned Doubleword Values. -// -// Forms: -// -// VMOVDQU32 m128 k xmm -// VMOVDQU32 m128 xmm -// VMOVDQU32 m256 k ymm -// VMOVDQU32 m256 ymm -// VMOVDQU32 xmm k m128 -// VMOVDQU32 xmm k xmm -// VMOVDQU32 xmm m128 -// VMOVDQU32 xmm xmm -// VMOVDQU32 ymm k m256 -// VMOVDQU32 ymm k ymm -// VMOVDQU32 ymm m256 -// VMOVDQU32 ymm ymm -// VMOVDQU32 m512 k zmm -// VMOVDQU32 m512 zmm -// VMOVDQU32 zmm k m512 -// VMOVDQU32 zmm k zmm -// VMOVDQU32 zmm m512 -// VMOVDQU32 zmm zmm -// -// Construct and append a VMOVDQU32 instruction to the active function. -// Operates on the global context. -func VMOVDQU32(ops ...operand.Op) { ctx.VMOVDQU32(ops...) } - -// VMOVDQU32_Z: Move Unaligned Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU32.Z m128 k xmm -// VMOVDQU32.Z m256 k ymm -// VMOVDQU32.Z xmm k m128 -// VMOVDQU32.Z xmm k xmm -// VMOVDQU32.Z ymm k m256 -// VMOVDQU32.Z ymm k ymm -// VMOVDQU32.Z m512 k zmm -// VMOVDQU32.Z zmm k m512 -// VMOVDQU32.Z zmm k zmm -// -// Construct and append a VMOVDQU32.Z instruction to the active function. -func (c *Context) VMOVDQU32_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVDQU32_Z(mxyz, k, mxyz1)) -} - -// VMOVDQU32_Z: Move Unaligned Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU32.Z m128 k xmm -// VMOVDQU32.Z m256 k ymm -// VMOVDQU32.Z xmm k m128 -// VMOVDQU32.Z xmm k xmm -// VMOVDQU32.Z ymm k m256 -// VMOVDQU32.Z ymm k ymm -// VMOVDQU32.Z m512 k zmm -// VMOVDQU32.Z zmm k m512 -// VMOVDQU32.Z zmm k zmm -// -// Construct and append a VMOVDQU32.Z instruction to the active function. -// Operates on the global context. -func VMOVDQU32_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVDQU32_Z(mxyz, k, mxyz1) } - -// VMOVDQU64: Move Unaligned Quadword Values. -// -// Forms: -// -// VMOVDQU64 m128 k xmm -// VMOVDQU64 m128 xmm -// VMOVDQU64 m256 k ymm -// VMOVDQU64 m256 ymm -// VMOVDQU64 xmm k m128 -// VMOVDQU64 xmm k xmm -// VMOVDQU64 xmm m128 -// VMOVDQU64 xmm xmm -// VMOVDQU64 ymm k m256 -// VMOVDQU64 ymm k ymm -// VMOVDQU64 ymm m256 -// VMOVDQU64 ymm ymm -// VMOVDQU64 m512 k zmm -// VMOVDQU64 m512 zmm -// VMOVDQU64 zmm k m512 -// VMOVDQU64 zmm k zmm -// VMOVDQU64 zmm m512 -// VMOVDQU64 zmm zmm -// -// Construct and append a VMOVDQU64 instruction to the active function. -func (c *Context) VMOVDQU64(ops ...operand.Op) { - c.addinstruction(x86.VMOVDQU64(ops...)) -} - -// VMOVDQU64: Move Unaligned Quadword Values. -// -// Forms: -// -// VMOVDQU64 m128 k xmm -// VMOVDQU64 m128 xmm -// VMOVDQU64 m256 k ymm -// VMOVDQU64 m256 ymm -// VMOVDQU64 xmm k m128 -// VMOVDQU64 xmm k xmm -// VMOVDQU64 xmm m128 -// VMOVDQU64 xmm xmm -// VMOVDQU64 ymm k m256 -// VMOVDQU64 ymm k ymm -// VMOVDQU64 ymm m256 -// VMOVDQU64 ymm ymm -// VMOVDQU64 m512 k zmm -// VMOVDQU64 m512 zmm -// VMOVDQU64 zmm k m512 -// VMOVDQU64 zmm k zmm -// VMOVDQU64 zmm m512 -// VMOVDQU64 zmm zmm -// -// Construct and append a VMOVDQU64 instruction to the active function. -// Operates on the global context. -func VMOVDQU64(ops ...operand.Op) { ctx.VMOVDQU64(ops...) } - -// VMOVDQU64_Z: Move Unaligned Quadword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU64.Z m128 k xmm -// VMOVDQU64.Z m256 k ymm -// VMOVDQU64.Z xmm k m128 -// VMOVDQU64.Z xmm k xmm -// VMOVDQU64.Z ymm k m256 -// VMOVDQU64.Z ymm k ymm -// VMOVDQU64.Z m512 k zmm -// VMOVDQU64.Z zmm k m512 -// VMOVDQU64.Z zmm k zmm -// -// Construct and append a VMOVDQU64.Z instruction to the active function. -func (c *Context) VMOVDQU64_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVDQU64_Z(mxyz, k, mxyz1)) -} - -// VMOVDQU64_Z: Move Unaligned Quadword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU64.Z m128 k xmm -// VMOVDQU64.Z m256 k ymm -// VMOVDQU64.Z xmm k m128 -// VMOVDQU64.Z xmm k xmm -// VMOVDQU64.Z ymm k m256 -// VMOVDQU64.Z ymm k ymm -// VMOVDQU64.Z m512 k zmm -// VMOVDQU64.Z zmm k m512 -// VMOVDQU64.Z zmm k zmm -// -// Construct and append a VMOVDQU64.Z instruction to the active function. -// Operates on the global context. -func VMOVDQU64_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVDQU64_Z(mxyz, k, mxyz1) } - -// VMOVDQU8: Move Unaligned Byte Values. -// -// Forms: -// -// VMOVDQU8 m128 k xmm -// VMOVDQU8 m128 xmm -// VMOVDQU8 m256 k ymm -// VMOVDQU8 m256 ymm -// VMOVDQU8 xmm k m128 -// VMOVDQU8 xmm k xmm -// VMOVDQU8 xmm m128 -// VMOVDQU8 xmm xmm -// VMOVDQU8 ymm k m256 -// VMOVDQU8 ymm k ymm -// VMOVDQU8 ymm m256 -// VMOVDQU8 ymm ymm -// VMOVDQU8 m512 k zmm -// VMOVDQU8 m512 zmm -// VMOVDQU8 zmm k m512 -// VMOVDQU8 zmm k zmm -// VMOVDQU8 zmm m512 -// VMOVDQU8 zmm zmm -// -// Construct and append a VMOVDQU8 instruction to the active function. -func (c *Context) VMOVDQU8(ops ...operand.Op) { - c.addinstruction(x86.VMOVDQU8(ops...)) -} - -// VMOVDQU8: Move Unaligned Byte Values. -// -// Forms: -// -// VMOVDQU8 m128 k xmm -// VMOVDQU8 m128 xmm -// VMOVDQU8 m256 k ymm -// VMOVDQU8 m256 ymm -// VMOVDQU8 xmm k m128 -// VMOVDQU8 xmm k xmm -// VMOVDQU8 xmm m128 -// VMOVDQU8 xmm xmm -// VMOVDQU8 ymm k m256 -// VMOVDQU8 ymm k ymm -// VMOVDQU8 ymm m256 -// VMOVDQU8 ymm ymm -// VMOVDQU8 m512 k zmm -// VMOVDQU8 m512 zmm -// VMOVDQU8 zmm k m512 -// VMOVDQU8 zmm k zmm -// VMOVDQU8 zmm m512 -// VMOVDQU8 zmm zmm -// -// Construct and append a VMOVDQU8 instruction to the active function. -// Operates on the global context. -func VMOVDQU8(ops ...operand.Op) { ctx.VMOVDQU8(ops...) } - -// VMOVDQU8_Z: Move Unaligned Byte Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU8.Z m128 k xmm -// VMOVDQU8.Z m256 k ymm -// VMOVDQU8.Z xmm k m128 -// VMOVDQU8.Z xmm k xmm -// VMOVDQU8.Z ymm k m256 -// VMOVDQU8.Z ymm k ymm -// VMOVDQU8.Z m512 k zmm -// VMOVDQU8.Z zmm k m512 -// VMOVDQU8.Z zmm k zmm -// -// Construct and append a VMOVDQU8.Z instruction to the active function. -func (c *Context) VMOVDQU8_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVDQU8_Z(mxyz, k, mxyz1)) -} - -// VMOVDQU8_Z: Move Unaligned Byte Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU8.Z m128 k xmm -// VMOVDQU8.Z m256 k ymm -// VMOVDQU8.Z xmm k m128 -// VMOVDQU8.Z xmm k xmm -// VMOVDQU8.Z ymm k m256 -// VMOVDQU8.Z ymm k ymm -// VMOVDQU8.Z m512 k zmm -// VMOVDQU8.Z zmm k m512 -// VMOVDQU8.Z zmm k zmm -// -// Construct and append a VMOVDQU8.Z instruction to the active function. -// Operates on the global context. -func VMOVDQU8_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVDQU8_Z(mxyz, k, mxyz1) } - -// VMOVHLPS: Move Packed Single-Precision Floating-Point Values High to Low. -// -// Forms: -// -// VMOVHLPS xmm xmm xmm -// -// Construct and append a VMOVHLPS instruction to the active function. -func (c *Context) VMOVHLPS(x, x1, x2 operand.Op) { - c.addinstruction(x86.VMOVHLPS(x, x1, x2)) -} - -// VMOVHLPS: Move Packed Single-Precision Floating-Point Values High to Low. -// -// Forms: -// -// VMOVHLPS xmm xmm xmm -// -// Construct and append a VMOVHLPS instruction to the active function. -// Operates on the global context. -func VMOVHLPS(x, x1, x2 operand.Op) { ctx.VMOVHLPS(x, x1, x2) } - -// VMOVHPD: Move High Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// VMOVHPD m64 xmm xmm -// VMOVHPD xmm m64 -// -// Construct and append a VMOVHPD instruction to the active function. -func (c *Context) VMOVHPD(ops ...operand.Op) { - c.addinstruction(x86.VMOVHPD(ops...)) -} - -// VMOVHPD: Move High Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// VMOVHPD m64 xmm xmm -// VMOVHPD xmm m64 -// -// Construct and append a VMOVHPD instruction to the active function. -// Operates on the global context. -func VMOVHPD(ops ...operand.Op) { ctx.VMOVHPD(ops...) } - -// VMOVHPS: Move High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVHPS m64 xmm xmm -// VMOVHPS xmm m64 -// -// Construct and append a VMOVHPS instruction to the active function. -func (c *Context) VMOVHPS(ops ...operand.Op) { - c.addinstruction(x86.VMOVHPS(ops...)) -} - -// VMOVHPS: Move High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVHPS m64 xmm xmm -// VMOVHPS xmm m64 -// -// Construct and append a VMOVHPS instruction to the active function. -// Operates on the global context. -func VMOVHPS(ops ...operand.Op) { ctx.VMOVHPS(ops...) } - -// VMOVLHPS: Move Packed Single-Precision Floating-Point Values Low to High. -// -// Forms: -// -// VMOVLHPS xmm xmm xmm -// -// Construct and append a VMOVLHPS instruction to the active function. -func (c *Context) VMOVLHPS(x, x1, x2 operand.Op) { - c.addinstruction(x86.VMOVLHPS(x, x1, x2)) -} - -// VMOVLHPS: Move Packed Single-Precision Floating-Point Values Low to High. -// -// Forms: -// -// VMOVLHPS xmm xmm xmm -// -// Construct and append a VMOVLHPS instruction to the active function. -// Operates on the global context. -func VMOVLHPS(x, x1, x2 operand.Op) { ctx.VMOVLHPS(x, x1, x2) } - -// VMOVLPD: Move Low Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// VMOVLPD m64 xmm xmm -// VMOVLPD xmm m64 -// -// Construct and append a VMOVLPD instruction to the active function. -func (c *Context) VMOVLPD(ops ...operand.Op) { - c.addinstruction(x86.VMOVLPD(ops...)) -} - -// VMOVLPD: Move Low Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// VMOVLPD m64 xmm xmm -// VMOVLPD xmm m64 -// -// Construct and append a VMOVLPD instruction to the active function. -// Operates on the global context. -func VMOVLPD(ops ...operand.Op) { ctx.VMOVLPD(ops...) } - -// VMOVLPS: Move Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVLPS m64 xmm xmm -// VMOVLPS xmm m64 -// -// Construct and append a VMOVLPS instruction to the active function. -func (c *Context) VMOVLPS(ops ...operand.Op) { - c.addinstruction(x86.VMOVLPS(ops...)) -} - -// VMOVLPS: Move Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVLPS m64 xmm xmm -// VMOVLPS xmm m64 -// -// Construct and append a VMOVLPS instruction to the active function. -// Operates on the global context. -func VMOVLPS(ops ...operand.Op) { ctx.VMOVLPS(ops...) } - -// VMOVMSKPD: Extract Packed Double-Precision Floating-Point Sign Mask. -// -// Forms: -// -// VMOVMSKPD xmm r32 -// VMOVMSKPD ymm r32 -// -// Construct and append a VMOVMSKPD instruction to the active function. -func (c *Context) VMOVMSKPD(xy, r operand.Op) { - c.addinstruction(x86.VMOVMSKPD(xy, r)) -} - -// VMOVMSKPD: Extract Packed Double-Precision Floating-Point Sign Mask. -// -// Forms: -// -// VMOVMSKPD xmm r32 -// VMOVMSKPD ymm r32 -// -// Construct and append a VMOVMSKPD instruction to the active function. -// Operates on the global context. -func VMOVMSKPD(xy, r operand.Op) { ctx.VMOVMSKPD(xy, r) } - -// VMOVMSKPS: Extract Packed Single-Precision Floating-Point Sign Mask. -// -// Forms: -// -// VMOVMSKPS xmm r32 -// VMOVMSKPS ymm r32 -// -// Construct and append a VMOVMSKPS instruction to the active function. -func (c *Context) VMOVMSKPS(xy, r operand.Op) { - c.addinstruction(x86.VMOVMSKPS(xy, r)) -} - -// VMOVMSKPS: Extract Packed Single-Precision Floating-Point Sign Mask. -// -// Forms: -// -// VMOVMSKPS xmm r32 -// VMOVMSKPS ymm r32 -// -// Construct and append a VMOVMSKPS instruction to the active function. -// Operates on the global context. -func VMOVMSKPS(xy, r operand.Op) { ctx.VMOVMSKPS(xy, r) } - -// VMOVNTDQ: Store Double Quadword Using Non-Temporal Hint. -// -// Forms: -// -// VMOVNTDQ xmm m128 -// VMOVNTDQ ymm m256 -// VMOVNTDQ zmm m512 -// -// Construct and append a VMOVNTDQ instruction to the active function. -func (c *Context) VMOVNTDQ(xyz, m operand.Op) { - c.addinstruction(x86.VMOVNTDQ(xyz, m)) -} - -// VMOVNTDQ: Store Double Quadword Using Non-Temporal Hint. -// -// Forms: -// -// VMOVNTDQ xmm m128 -// VMOVNTDQ ymm m256 -// VMOVNTDQ zmm m512 -// -// Construct and append a VMOVNTDQ instruction to the active function. -// Operates on the global context. -func VMOVNTDQ(xyz, m operand.Op) { ctx.VMOVNTDQ(xyz, m) } - -// VMOVNTDQA: Load Double Quadword Non-Temporal Aligned Hint. -// -// Forms: -// -// VMOVNTDQA m256 ymm -// VMOVNTDQA m128 xmm -// VMOVNTDQA m512 zmm -// -// Construct and append a VMOVNTDQA instruction to the active function. -func (c *Context) VMOVNTDQA(m, xyz operand.Op) { - c.addinstruction(x86.VMOVNTDQA(m, xyz)) -} - -// VMOVNTDQA: Load Double Quadword Non-Temporal Aligned Hint. -// -// Forms: -// -// VMOVNTDQA m256 ymm -// VMOVNTDQA m128 xmm -// VMOVNTDQA m512 zmm -// -// Construct and append a VMOVNTDQA instruction to the active function. -// Operates on the global context. -func VMOVNTDQA(m, xyz operand.Op) { ctx.VMOVNTDQA(m, xyz) } - -// VMOVNTPD: Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// VMOVNTPD xmm m128 -// VMOVNTPD ymm m256 -// VMOVNTPD zmm m512 -// -// Construct and append a VMOVNTPD instruction to the active function. -func (c *Context) VMOVNTPD(xyz, m operand.Op) { - c.addinstruction(x86.VMOVNTPD(xyz, m)) -} - -// VMOVNTPD: Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// VMOVNTPD xmm m128 -// VMOVNTPD ymm m256 -// VMOVNTPD zmm m512 -// -// Construct and append a VMOVNTPD instruction to the active function. -// Operates on the global context. -func VMOVNTPD(xyz, m operand.Op) { ctx.VMOVNTPD(xyz, m) } - -// VMOVNTPS: Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// VMOVNTPS xmm m128 -// VMOVNTPS ymm m256 -// VMOVNTPS zmm m512 -// -// Construct and append a VMOVNTPS instruction to the active function. -func (c *Context) VMOVNTPS(xyz, m operand.Op) { - c.addinstruction(x86.VMOVNTPS(xyz, m)) -} - -// VMOVNTPS: Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// VMOVNTPS xmm m128 -// VMOVNTPS ymm m256 -// VMOVNTPS zmm m512 -// -// Construct and append a VMOVNTPS instruction to the active function. -// Operates on the global context. -func VMOVNTPS(xyz, m operand.Op) { ctx.VMOVNTPS(xyz, m) } - -// VMOVQ: Move Quadword. -// -// Forms: -// -// VMOVQ m64 xmm -// VMOVQ r64 xmm -// VMOVQ xmm m64 -// VMOVQ xmm r64 -// VMOVQ xmm xmm -// -// Construct and append a VMOVQ instruction to the active function. -func (c *Context) VMOVQ(mrx, mrx1 operand.Op) { - c.addinstruction(x86.VMOVQ(mrx, mrx1)) -} - -// VMOVQ: Move Quadword. -// -// Forms: -// -// VMOVQ m64 xmm -// VMOVQ r64 xmm -// VMOVQ xmm m64 -// VMOVQ xmm r64 -// VMOVQ xmm xmm -// -// Construct and append a VMOVQ instruction to the active function. -// Operates on the global context. -func VMOVQ(mrx, mrx1 operand.Op) { ctx.VMOVQ(mrx, mrx1) } - -// VMOVSD: Move Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VMOVSD m64 xmm -// VMOVSD xmm m64 -// VMOVSD xmm xmm xmm -// VMOVSD m64 k xmm -// VMOVSD xmm k m64 -// VMOVSD xmm xmm k xmm -// -// Construct and append a VMOVSD instruction to the active function. -func (c *Context) VMOVSD(ops ...operand.Op) { - c.addinstruction(x86.VMOVSD(ops...)) -} - -// VMOVSD: Move Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VMOVSD m64 xmm -// VMOVSD xmm m64 -// VMOVSD xmm xmm xmm -// VMOVSD m64 k xmm -// VMOVSD xmm k m64 -// VMOVSD xmm xmm k xmm -// -// Construct and append a VMOVSD instruction to the active function. -// Operates on the global context. -func VMOVSD(ops ...operand.Op) { ctx.VMOVSD(ops...) } - -// VMOVSD_Z: Move Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMOVSD.Z m64 k xmm -// VMOVSD.Z xmm xmm k xmm -// -// Construct and append a VMOVSD.Z instruction to the active function. -func (c *Context) VMOVSD_Z(ops ...operand.Op) { - c.addinstruction(x86.VMOVSD_Z(ops...)) -} - -// VMOVSD_Z: Move Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMOVSD.Z m64 k xmm -// VMOVSD.Z xmm xmm k xmm -// -// Construct and append a VMOVSD.Z instruction to the active function. -// Operates on the global context. -func VMOVSD_Z(ops ...operand.Op) { ctx.VMOVSD_Z(ops...) } - -// VMOVSHDUP: Move Packed Single-FP High and Duplicate. -// -// Forms: -// -// VMOVSHDUP m128 xmm -// VMOVSHDUP m256 ymm -// VMOVSHDUP xmm xmm -// VMOVSHDUP ymm ymm -// VMOVSHDUP m128 k xmm -// VMOVSHDUP m256 k ymm -// VMOVSHDUP xmm k xmm -// VMOVSHDUP ymm k ymm -// VMOVSHDUP m512 k zmm -// VMOVSHDUP m512 zmm -// VMOVSHDUP zmm k zmm -// VMOVSHDUP zmm zmm -// -// Construct and append a VMOVSHDUP instruction to the active function. -func (c *Context) VMOVSHDUP(ops ...operand.Op) { - c.addinstruction(x86.VMOVSHDUP(ops...)) -} - -// VMOVSHDUP: Move Packed Single-FP High and Duplicate. -// -// Forms: -// -// VMOVSHDUP m128 xmm -// VMOVSHDUP m256 ymm -// VMOVSHDUP xmm xmm -// VMOVSHDUP ymm ymm -// VMOVSHDUP m128 k xmm -// VMOVSHDUP m256 k ymm -// VMOVSHDUP xmm k xmm -// VMOVSHDUP ymm k ymm -// VMOVSHDUP m512 k zmm -// VMOVSHDUP m512 zmm -// VMOVSHDUP zmm k zmm -// VMOVSHDUP zmm zmm -// -// Construct and append a VMOVSHDUP instruction to the active function. -// Operates on the global context. -func VMOVSHDUP(ops ...operand.Op) { ctx.VMOVSHDUP(ops...) } - -// VMOVSHDUP_Z: Move Packed Single-FP High and Duplicate (Zeroing Masking). -// -// Forms: -// -// VMOVSHDUP.Z m128 k xmm -// VMOVSHDUP.Z m256 k ymm -// VMOVSHDUP.Z xmm k xmm -// VMOVSHDUP.Z ymm k ymm -// VMOVSHDUP.Z m512 k zmm -// VMOVSHDUP.Z zmm k zmm -// -// Construct and append a VMOVSHDUP.Z instruction to the active function. -func (c *Context) VMOVSHDUP_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VMOVSHDUP_Z(mxyz, k, xyz)) -} - -// VMOVSHDUP_Z: Move Packed Single-FP High and Duplicate (Zeroing Masking). -// -// Forms: -// -// VMOVSHDUP.Z m128 k xmm -// VMOVSHDUP.Z m256 k ymm -// VMOVSHDUP.Z xmm k xmm -// VMOVSHDUP.Z ymm k ymm -// VMOVSHDUP.Z m512 k zmm -// VMOVSHDUP.Z zmm k zmm -// -// Construct and append a VMOVSHDUP.Z instruction to the active function. -// Operates on the global context. -func VMOVSHDUP_Z(mxyz, k, xyz operand.Op) { ctx.VMOVSHDUP_Z(mxyz, k, xyz) } - -// VMOVSLDUP: Move Packed Single-FP Low and Duplicate. -// -// Forms: -// -// VMOVSLDUP m128 xmm -// VMOVSLDUP m256 ymm -// VMOVSLDUP xmm xmm -// VMOVSLDUP ymm ymm -// VMOVSLDUP m128 k xmm -// VMOVSLDUP m256 k ymm -// VMOVSLDUP xmm k xmm -// VMOVSLDUP ymm k ymm -// VMOVSLDUP m512 k zmm -// VMOVSLDUP m512 zmm -// VMOVSLDUP zmm k zmm -// VMOVSLDUP zmm zmm -// -// Construct and append a VMOVSLDUP instruction to the active function. -func (c *Context) VMOVSLDUP(ops ...operand.Op) { - c.addinstruction(x86.VMOVSLDUP(ops...)) -} - -// VMOVSLDUP: Move Packed Single-FP Low and Duplicate. -// -// Forms: -// -// VMOVSLDUP m128 xmm -// VMOVSLDUP m256 ymm -// VMOVSLDUP xmm xmm -// VMOVSLDUP ymm ymm -// VMOVSLDUP m128 k xmm -// VMOVSLDUP m256 k ymm -// VMOVSLDUP xmm k xmm -// VMOVSLDUP ymm k ymm -// VMOVSLDUP m512 k zmm -// VMOVSLDUP m512 zmm -// VMOVSLDUP zmm k zmm -// VMOVSLDUP zmm zmm -// -// Construct and append a VMOVSLDUP instruction to the active function. -// Operates on the global context. -func VMOVSLDUP(ops ...operand.Op) { ctx.VMOVSLDUP(ops...) } - -// VMOVSLDUP_Z: Move Packed Single-FP Low and Duplicate (Zeroing Masking). -// -// Forms: -// -// VMOVSLDUP.Z m128 k xmm -// VMOVSLDUP.Z m256 k ymm -// VMOVSLDUP.Z xmm k xmm -// VMOVSLDUP.Z ymm k ymm -// VMOVSLDUP.Z m512 k zmm -// VMOVSLDUP.Z zmm k zmm -// -// Construct and append a VMOVSLDUP.Z instruction to the active function. -func (c *Context) VMOVSLDUP_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VMOVSLDUP_Z(mxyz, k, xyz)) -} - -// VMOVSLDUP_Z: Move Packed Single-FP Low and Duplicate (Zeroing Masking). -// -// Forms: -// -// VMOVSLDUP.Z m128 k xmm -// VMOVSLDUP.Z m256 k ymm -// VMOVSLDUP.Z xmm k xmm -// VMOVSLDUP.Z ymm k ymm -// VMOVSLDUP.Z m512 k zmm -// VMOVSLDUP.Z zmm k zmm -// -// Construct and append a VMOVSLDUP.Z instruction to the active function. -// Operates on the global context. -func VMOVSLDUP_Z(mxyz, k, xyz operand.Op) { ctx.VMOVSLDUP_Z(mxyz, k, xyz) } - -// VMOVSS: Move Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVSS m32 xmm -// VMOVSS xmm m32 -// VMOVSS xmm xmm xmm -// VMOVSS m32 k xmm -// VMOVSS xmm k m32 -// VMOVSS xmm xmm k xmm -// -// Construct and append a VMOVSS instruction to the active function. -func (c *Context) VMOVSS(ops ...operand.Op) { - c.addinstruction(x86.VMOVSS(ops...)) -} - -// VMOVSS: Move Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVSS m32 xmm -// VMOVSS xmm m32 -// VMOVSS xmm xmm xmm -// VMOVSS m32 k xmm -// VMOVSS xmm k m32 -// VMOVSS xmm xmm k xmm -// -// Construct and append a VMOVSS instruction to the active function. -// Operates on the global context. -func VMOVSS(ops ...operand.Op) { ctx.VMOVSS(ops...) } - -// VMOVSS_Z: Move Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVSS.Z m32 k xmm -// VMOVSS.Z xmm xmm k xmm -// -// Construct and append a VMOVSS.Z instruction to the active function. -func (c *Context) VMOVSS_Z(ops ...operand.Op) { - c.addinstruction(x86.VMOVSS_Z(ops...)) -} - -// VMOVSS_Z: Move Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVSS.Z m32 k xmm -// VMOVSS.Z xmm xmm k xmm -// -// Construct and append a VMOVSS.Z instruction to the active function. -// Operates on the global context. -func VMOVSS_Z(ops ...operand.Op) { ctx.VMOVSS_Z(ops...) } - -// VMOVUPD: Move Unaligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMOVUPD m128 xmm -// VMOVUPD m256 ymm -// VMOVUPD xmm m128 -// VMOVUPD xmm xmm -// VMOVUPD ymm m256 -// VMOVUPD ymm ymm -// VMOVUPD m128 k xmm -// VMOVUPD m256 k ymm -// VMOVUPD xmm k m128 -// VMOVUPD xmm k xmm -// VMOVUPD ymm k m256 -// VMOVUPD ymm k ymm -// VMOVUPD m512 k zmm -// VMOVUPD m512 zmm -// VMOVUPD zmm k m512 -// VMOVUPD zmm k zmm -// VMOVUPD zmm m512 -// VMOVUPD zmm zmm -// -// Construct and append a VMOVUPD instruction to the active function. -func (c *Context) VMOVUPD(ops ...operand.Op) { - c.addinstruction(x86.VMOVUPD(ops...)) -} - -// VMOVUPD: Move Unaligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMOVUPD m128 xmm -// VMOVUPD m256 ymm -// VMOVUPD xmm m128 -// VMOVUPD xmm xmm -// VMOVUPD ymm m256 -// VMOVUPD ymm ymm -// VMOVUPD m128 k xmm -// VMOVUPD m256 k ymm -// VMOVUPD xmm k m128 -// VMOVUPD xmm k xmm -// VMOVUPD ymm k m256 -// VMOVUPD ymm k ymm -// VMOVUPD m512 k zmm -// VMOVUPD m512 zmm -// VMOVUPD zmm k m512 -// VMOVUPD zmm k zmm -// VMOVUPD zmm m512 -// VMOVUPD zmm zmm -// -// Construct and append a VMOVUPD instruction to the active function. -// Operates on the global context. -func VMOVUPD(ops ...operand.Op) { ctx.VMOVUPD(ops...) } - -// VMOVUPD_Z: Move Unaligned Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVUPD.Z m128 k xmm -// VMOVUPD.Z m256 k ymm -// VMOVUPD.Z xmm k m128 -// VMOVUPD.Z xmm k xmm -// VMOVUPD.Z ymm k m256 -// VMOVUPD.Z ymm k ymm -// VMOVUPD.Z m512 k zmm -// VMOVUPD.Z zmm k m512 -// VMOVUPD.Z zmm k zmm -// -// Construct and append a VMOVUPD.Z instruction to the active function. -func (c *Context) VMOVUPD_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVUPD_Z(mxyz, k, mxyz1)) -} - -// VMOVUPD_Z: Move Unaligned Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVUPD.Z m128 k xmm -// VMOVUPD.Z m256 k ymm -// VMOVUPD.Z xmm k m128 -// VMOVUPD.Z xmm k xmm -// VMOVUPD.Z ymm k m256 -// VMOVUPD.Z ymm k ymm -// VMOVUPD.Z m512 k zmm -// VMOVUPD.Z zmm k m512 -// VMOVUPD.Z zmm k zmm -// -// Construct and append a VMOVUPD.Z instruction to the active function. -// Operates on the global context. -func VMOVUPD_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVUPD_Z(mxyz, k, mxyz1) } - -// VMOVUPS: Move Unaligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVUPS m128 xmm -// VMOVUPS m256 ymm -// VMOVUPS xmm m128 -// VMOVUPS xmm xmm -// VMOVUPS ymm m256 -// VMOVUPS ymm ymm -// VMOVUPS m128 k xmm -// VMOVUPS m256 k ymm -// VMOVUPS xmm k m128 -// VMOVUPS xmm k xmm -// VMOVUPS ymm k m256 -// VMOVUPS ymm k ymm -// VMOVUPS m512 k zmm -// VMOVUPS m512 zmm -// VMOVUPS zmm k m512 -// VMOVUPS zmm k zmm -// VMOVUPS zmm m512 -// VMOVUPS zmm zmm -// -// Construct and append a VMOVUPS instruction to the active function. -func (c *Context) VMOVUPS(ops ...operand.Op) { - c.addinstruction(x86.VMOVUPS(ops...)) -} - -// VMOVUPS: Move Unaligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVUPS m128 xmm -// VMOVUPS m256 ymm -// VMOVUPS xmm m128 -// VMOVUPS xmm xmm -// VMOVUPS ymm m256 -// VMOVUPS ymm ymm -// VMOVUPS m128 k xmm -// VMOVUPS m256 k ymm -// VMOVUPS xmm k m128 -// VMOVUPS xmm k xmm -// VMOVUPS ymm k m256 -// VMOVUPS ymm k ymm -// VMOVUPS m512 k zmm -// VMOVUPS m512 zmm -// VMOVUPS zmm k m512 -// VMOVUPS zmm k zmm -// VMOVUPS zmm m512 -// VMOVUPS zmm zmm -// -// Construct and append a VMOVUPS instruction to the active function. -// Operates on the global context. -func VMOVUPS(ops ...operand.Op) { ctx.VMOVUPS(ops...) } - -// VMOVUPS_Z: Move Unaligned Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVUPS.Z m128 k xmm -// VMOVUPS.Z m256 k ymm -// VMOVUPS.Z xmm k m128 -// VMOVUPS.Z xmm k xmm -// VMOVUPS.Z ymm k m256 -// VMOVUPS.Z ymm k ymm -// VMOVUPS.Z m512 k zmm -// VMOVUPS.Z zmm k m512 -// VMOVUPS.Z zmm k zmm -// -// Construct and append a VMOVUPS.Z instruction to the active function. -func (c *Context) VMOVUPS_Z(mxyz, k, mxyz1 operand.Op) { - c.addinstruction(x86.VMOVUPS_Z(mxyz, k, mxyz1)) -} - -// VMOVUPS_Z: Move Unaligned Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVUPS.Z m128 k xmm -// VMOVUPS.Z m256 k ymm -// VMOVUPS.Z xmm k m128 -// VMOVUPS.Z xmm k xmm -// VMOVUPS.Z ymm k m256 -// VMOVUPS.Z ymm k ymm -// VMOVUPS.Z m512 k zmm -// VMOVUPS.Z zmm k m512 -// VMOVUPS.Z zmm k zmm -// -// Construct and append a VMOVUPS.Z instruction to the active function. -// Operates on the global context. -func VMOVUPS_Z(mxyz, k, mxyz1 operand.Op) { ctx.VMOVUPS_Z(mxyz, k, mxyz1) } - -// VMPSADBW: Compute Multiple Packed Sums of Absolute Difference. -// -// Forms: -// -// VMPSADBW imm8 m256 ymm ymm -// VMPSADBW imm8 ymm ymm ymm -// VMPSADBW imm8 m128 xmm xmm -// VMPSADBW imm8 xmm xmm xmm -// -// Construct and append a VMPSADBW instruction to the active function. -func (c *Context) VMPSADBW(i, mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VMPSADBW(i, mxy, xy, xy1)) -} - -// VMPSADBW: Compute Multiple Packed Sums of Absolute Difference. -// -// Forms: -// -// VMPSADBW imm8 m256 ymm ymm -// VMPSADBW imm8 ymm ymm ymm -// VMPSADBW imm8 m128 xmm xmm -// VMPSADBW imm8 xmm xmm xmm -// -// Construct and append a VMPSADBW instruction to the active function. -// Operates on the global context. -func VMPSADBW(i, mxy, xy, xy1 operand.Op) { ctx.VMPSADBW(i, mxy, xy, xy1) } - -// VMULPD: Multiply Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMULPD m128 xmm xmm -// VMULPD m256 ymm ymm -// VMULPD xmm xmm xmm -// VMULPD ymm ymm ymm -// VMULPD m128 xmm k xmm -// VMULPD m256 ymm k ymm -// VMULPD xmm xmm k xmm -// VMULPD ymm ymm k ymm -// VMULPD m512 zmm k zmm -// VMULPD m512 zmm zmm -// VMULPD zmm zmm k zmm -// VMULPD zmm zmm zmm -// -// Construct and append a VMULPD instruction to the active function. -func (c *Context) VMULPD(ops ...operand.Op) { - c.addinstruction(x86.VMULPD(ops...)) -} - -// VMULPD: Multiply Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMULPD m128 xmm xmm -// VMULPD m256 ymm ymm -// VMULPD xmm xmm xmm -// VMULPD ymm ymm ymm -// VMULPD m128 xmm k xmm -// VMULPD m256 ymm k ymm -// VMULPD xmm xmm k xmm -// VMULPD ymm ymm k ymm -// VMULPD m512 zmm k zmm -// VMULPD m512 zmm zmm -// VMULPD zmm zmm k zmm -// VMULPD zmm zmm zmm -// -// Construct and append a VMULPD instruction to the active function. -// Operates on the global context. -func VMULPD(ops ...operand.Op) { ctx.VMULPD(ops...) } - -// VMULPD_BCST: Multiply Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMULPD.BCST m64 xmm k xmm -// VMULPD.BCST m64 xmm xmm -// VMULPD.BCST m64 ymm k ymm -// VMULPD.BCST m64 ymm ymm -// VMULPD.BCST m64 zmm k zmm -// VMULPD.BCST m64 zmm zmm -// -// Construct and append a VMULPD.BCST instruction to the active function. -func (c *Context) VMULPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VMULPD_BCST(ops...)) -} - -// VMULPD_BCST: Multiply Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMULPD.BCST m64 xmm k xmm -// VMULPD.BCST m64 xmm xmm -// VMULPD.BCST m64 ymm k ymm -// VMULPD.BCST m64 ymm ymm -// VMULPD.BCST m64 zmm k zmm -// VMULPD.BCST m64 zmm zmm -// -// Construct and append a VMULPD.BCST instruction to the active function. -// Operates on the global context. -func VMULPD_BCST(ops ...operand.Op) { ctx.VMULPD_BCST(ops...) } - -// VMULPD_BCST_Z: Multiply Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMULPD.BCST.Z m64 xmm k xmm -// VMULPD.BCST.Z m64 ymm k ymm -// VMULPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VMULPD.BCST.Z instruction to the active function. -func (c *Context) VMULPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMULPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VMULPD_BCST_Z: Multiply Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMULPD.BCST.Z m64 xmm k xmm -// VMULPD.BCST.Z m64 ymm k ymm -// VMULPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VMULPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VMULPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VMULPD_BCST_Z(m, xyz, k, xyz1) } - -// VMULPD_RD_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULPD.RD_SAE zmm zmm k zmm -// VMULPD.RD_SAE zmm zmm zmm -// -// Construct and append a VMULPD.RD_SAE instruction to the active function. -func (c *Context) VMULPD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULPD_RD_SAE(ops...)) -} - -// VMULPD_RD_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULPD.RD_SAE zmm zmm k zmm -// VMULPD.RD_SAE zmm zmm zmm -// -// Construct and append a VMULPD.RD_SAE instruction to the active function. -// Operates on the global context. -func VMULPD_RD_SAE(ops ...operand.Op) { ctx.VMULPD_RD_SAE(ops...) } - -// VMULPD_RD_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPD.RD_SAE.Z instruction to the active function. -func (c *Context) VMULPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMULPD_RD_SAE_Z(z, z1, k, z2)) -} - -// VMULPD_RD_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMULPD_RD_SAE_Z(z, z1, k, z2) } - -// VMULPD_RN_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULPD.RN_SAE zmm zmm k zmm -// VMULPD.RN_SAE zmm zmm zmm -// -// Construct and append a VMULPD.RN_SAE instruction to the active function. -func (c *Context) VMULPD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULPD_RN_SAE(ops...)) -} - -// VMULPD_RN_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULPD.RN_SAE zmm zmm k zmm -// VMULPD.RN_SAE zmm zmm zmm -// -// Construct and append a VMULPD.RN_SAE instruction to the active function. -// Operates on the global context. -func VMULPD_RN_SAE(ops ...operand.Op) { ctx.VMULPD_RN_SAE(ops...) } - -// VMULPD_RN_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPD.RN_SAE.Z instruction to the active function. -func (c *Context) VMULPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMULPD_RN_SAE_Z(z, z1, k, z2)) -} - -// VMULPD_RN_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMULPD_RN_SAE_Z(z, z1, k, z2) } - -// VMULPD_RU_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULPD.RU_SAE zmm zmm k zmm -// VMULPD.RU_SAE zmm zmm zmm -// -// Construct and append a VMULPD.RU_SAE instruction to the active function. -func (c *Context) VMULPD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULPD_RU_SAE(ops...)) -} - -// VMULPD_RU_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULPD.RU_SAE zmm zmm k zmm -// VMULPD.RU_SAE zmm zmm zmm -// -// Construct and append a VMULPD.RU_SAE instruction to the active function. -// Operates on the global context. -func VMULPD_RU_SAE(ops ...operand.Op) { ctx.VMULPD_RU_SAE(ops...) } - -// VMULPD_RU_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPD.RU_SAE.Z instruction to the active function. -func (c *Context) VMULPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMULPD_RU_SAE_Z(z, z1, k, z2)) -} - -// VMULPD_RU_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMULPD_RU_SAE_Z(z, z1, k, z2) } - -// VMULPD_RZ_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULPD.RZ_SAE zmm zmm k zmm -// VMULPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VMULPD.RZ_SAE instruction to the active function. -func (c *Context) VMULPD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULPD_RZ_SAE(ops...)) -} - -// VMULPD_RZ_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULPD.RZ_SAE zmm zmm k zmm -// VMULPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VMULPD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VMULPD_RZ_SAE(ops ...operand.Op) { ctx.VMULPD_RZ_SAE(ops...) } - -// VMULPD_RZ_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPD.RZ_SAE.Z instruction to the active function. -func (c *Context) VMULPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMULPD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VMULPD_RZ_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMULPD_RZ_SAE_Z(z, z1, k, z2) } - -// VMULPD_Z: Multiply Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULPD.Z m128 xmm k xmm -// VMULPD.Z m256 ymm k ymm -// VMULPD.Z xmm xmm k xmm -// VMULPD.Z ymm ymm k ymm -// VMULPD.Z m512 zmm k zmm -// VMULPD.Z zmm zmm k zmm -// -// Construct and append a VMULPD.Z instruction to the active function. -func (c *Context) VMULPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMULPD_Z(mxyz, xyz, k, xyz1)) -} - -// VMULPD_Z: Multiply Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULPD.Z m128 xmm k xmm -// VMULPD.Z m256 ymm k ymm -// VMULPD.Z xmm xmm k xmm -// VMULPD.Z ymm ymm k ymm -// VMULPD.Z m512 zmm k zmm -// VMULPD.Z zmm zmm k zmm -// -// Construct and append a VMULPD.Z instruction to the active function. -// Operates on the global context. -func VMULPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VMULPD_Z(mxyz, xyz, k, xyz1) } - -// VMULPS: Multiply Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMULPS m128 xmm xmm -// VMULPS m256 ymm ymm -// VMULPS xmm xmm xmm -// VMULPS ymm ymm ymm -// VMULPS m128 xmm k xmm -// VMULPS m256 ymm k ymm -// VMULPS xmm xmm k xmm -// VMULPS ymm ymm k ymm -// VMULPS m512 zmm k zmm -// VMULPS m512 zmm zmm -// VMULPS zmm zmm k zmm -// VMULPS zmm zmm zmm -// -// Construct and append a VMULPS instruction to the active function. -func (c *Context) VMULPS(ops ...operand.Op) { - c.addinstruction(x86.VMULPS(ops...)) -} - -// VMULPS: Multiply Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMULPS m128 xmm xmm -// VMULPS m256 ymm ymm -// VMULPS xmm xmm xmm -// VMULPS ymm ymm ymm -// VMULPS m128 xmm k xmm -// VMULPS m256 ymm k ymm -// VMULPS xmm xmm k xmm -// VMULPS ymm ymm k ymm -// VMULPS m512 zmm k zmm -// VMULPS m512 zmm zmm -// VMULPS zmm zmm k zmm -// VMULPS zmm zmm zmm -// -// Construct and append a VMULPS instruction to the active function. -// Operates on the global context. -func VMULPS(ops ...operand.Op) { ctx.VMULPS(ops...) } - -// VMULPS_BCST: Multiply Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMULPS.BCST m32 xmm k xmm -// VMULPS.BCST m32 xmm xmm -// VMULPS.BCST m32 ymm k ymm -// VMULPS.BCST m32 ymm ymm -// VMULPS.BCST m32 zmm k zmm -// VMULPS.BCST m32 zmm zmm -// -// Construct and append a VMULPS.BCST instruction to the active function. -func (c *Context) VMULPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VMULPS_BCST(ops...)) -} - -// VMULPS_BCST: Multiply Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMULPS.BCST m32 xmm k xmm -// VMULPS.BCST m32 xmm xmm -// VMULPS.BCST m32 ymm k ymm -// VMULPS.BCST m32 ymm ymm -// VMULPS.BCST m32 zmm k zmm -// VMULPS.BCST m32 zmm zmm -// -// Construct and append a VMULPS.BCST instruction to the active function. -// Operates on the global context. -func VMULPS_BCST(ops ...operand.Op) { ctx.VMULPS_BCST(ops...) } - -// VMULPS_BCST_Z: Multiply Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMULPS.BCST.Z m32 xmm k xmm -// VMULPS.BCST.Z m32 ymm k ymm -// VMULPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VMULPS.BCST.Z instruction to the active function. -func (c *Context) VMULPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMULPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VMULPS_BCST_Z: Multiply Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMULPS.BCST.Z m32 xmm k xmm -// VMULPS.BCST.Z m32 ymm k ymm -// VMULPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VMULPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VMULPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VMULPS_BCST_Z(m, xyz, k, xyz1) } - -// VMULPS_RD_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULPS.RD_SAE zmm zmm k zmm -// VMULPS.RD_SAE zmm zmm zmm -// -// Construct and append a VMULPS.RD_SAE instruction to the active function. -func (c *Context) VMULPS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULPS_RD_SAE(ops...)) -} - -// VMULPS_RD_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULPS.RD_SAE zmm zmm k zmm -// VMULPS.RD_SAE zmm zmm zmm -// -// Construct and append a VMULPS.RD_SAE instruction to the active function. -// Operates on the global context. -func VMULPS_RD_SAE(ops ...operand.Op) { ctx.VMULPS_RD_SAE(ops...) } - -// VMULPS_RD_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPS.RD_SAE.Z instruction to the active function. -func (c *Context) VMULPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMULPS_RD_SAE_Z(z, z1, k, z2)) -} - -// VMULPS_RD_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMULPS_RD_SAE_Z(z, z1, k, z2) } - -// VMULPS_RN_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULPS.RN_SAE zmm zmm k zmm -// VMULPS.RN_SAE zmm zmm zmm -// -// Construct and append a VMULPS.RN_SAE instruction to the active function. -func (c *Context) VMULPS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULPS_RN_SAE(ops...)) -} - -// VMULPS_RN_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULPS.RN_SAE zmm zmm k zmm -// VMULPS.RN_SAE zmm zmm zmm -// -// Construct and append a VMULPS.RN_SAE instruction to the active function. -// Operates on the global context. -func VMULPS_RN_SAE(ops ...operand.Op) { ctx.VMULPS_RN_SAE(ops...) } - -// VMULPS_RN_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPS.RN_SAE.Z instruction to the active function. -func (c *Context) VMULPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMULPS_RN_SAE_Z(z, z1, k, z2)) -} - -// VMULPS_RN_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMULPS_RN_SAE_Z(z, z1, k, z2) } - -// VMULPS_RU_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULPS.RU_SAE zmm zmm k zmm -// VMULPS.RU_SAE zmm zmm zmm -// -// Construct and append a VMULPS.RU_SAE instruction to the active function. -func (c *Context) VMULPS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULPS_RU_SAE(ops...)) -} - -// VMULPS_RU_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULPS.RU_SAE zmm zmm k zmm -// VMULPS.RU_SAE zmm zmm zmm -// -// Construct and append a VMULPS.RU_SAE instruction to the active function. -// Operates on the global context. -func VMULPS_RU_SAE(ops ...operand.Op) { ctx.VMULPS_RU_SAE(ops...) } - -// VMULPS_RU_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPS.RU_SAE.Z instruction to the active function. -func (c *Context) VMULPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMULPS_RU_SAE_Z(z, z1, k, z2)) -} - -// VMULPS_RU_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMULPS_RU_SAE_Z(z, z1, k, z2) } - -// VMULPS_RZ_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULPS.RZ_SAE zmm zmm k zmm -// VMULPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VMULPS.RZ_SAE instruction to the active function. -func (c *Context) VMULPS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULPS_RZ_SAE(ops...)) -} - -// VMULPS_RZ_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULPS.RZ_SAE zmm zmm k zmm -// VMULPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VMULPS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VMULPS_RZ_SAE(ops ...operand.Op) { ctx.VMULPS_RZ_SAE(ops...) } - -// VMULPS_RZ_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPS.RZ_SAE.Z instruction to the active function. -func (c *Context) VMULPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VMULPS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VMULPS_RZ_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VMULPS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VMULPS_RZ_SAE_Z(z, z1, k, z2) } - -// VMULPS_Z: Multiply Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULPS.Z m128 xmm k xmm -// VMULPS.Z m256 ymm k ymm -// VMULPS.Z xmm xmm k xmm -// VMULPS.Z ymm ymm k ymm -// VMULPS.Z m512 zmm k zmm -// VMULPS.Z zmm zmm k zmm -// -// Construct and append a VMULPS.Z instruction to the active function. -func (c *Context) VMULPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VMULPS_Z(mxyz, xyz, k, xyz1)) -} - -// VMULPS_Z: Multiply Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULPS.Z m128 xmm k xmm -// VMULPS.Z m256 ymm k ymm -// VMULPS.Z xmm xmm k xmm -// VMULPS.Z ymm ymm k ymm -// VMULPS.Z m512 zmm k zmm -// VMULPS.Z zmm zmm k zmm -// -// Construct and append a VMULPS.Z instruction to the active function. -// Operates on the global context. -func VMULPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VMULPS_Z(mxyz, xyz, k, xyz1) } - -// VMULSD: Multiply Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VMULSD m64 xmm xmm -// VMULSD xmm xmm xmm -// VMULSD m64 xmm k xmm -// VMULSD xmm xmm k xmm -// -// Construct and append a VMULSD instruction to the active function. -func (c *Context) VMULSD(ops ...operand.Op) { - c.addinstruction(x86.VMULSD(ops...)) -} - -// VMULSD: Multiply Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VMULSD m64 xmm xmm -// VMULSD xmm xmm xmm -// VMULSD m64 xmm k xmm -// VMULSD xmm xmm k xmm -// -// Construct and append a VMULSD instruction to the active function. -// Operates on the global context. -func VMULSD(ops ...operand.Op) { ctx.VMULSD(ops...) } - -// VMULSD_RD_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULSD.RD_SAE xmm xmm k xmm -// VMULSD.RD_SAE xmm xmm xmm -// -// Construct and append a VMULSD.RD_SAE instruction to the active function. -func (c *Context) VMULSD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULSD_RD_SAE(ops...)) -} - -// VMULSD_RD_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULSD.RD_SAE xmm xmm k xmm -// VMULSD.RD_SAE xmm xmm xmm -// -// Construct and append a VMULSD.RD_SAE instruction to the active function. -// Operates on the global context. -func VMULSD_RD_SAE(ops ...operand.Op) { ctx.VMULSD_RD_SAE(ops...) } - -// VMULSD_RD_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSD.RD_SAE.Z instruction to the active function. -func (c *Context) VMULSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMULSD_RD_SAE_Z(x, x1, k, x2)) -} - -// VMULSD_RD_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMULSD_RD_SAE_Z(x, x1, k, x2) } - -// VMULSD_RN_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULSD.RN_SAE xmm xmm k xmm -// VMULSD.RN_SAE xmm xmm xmm -// -// Construct and append a VMULSD.RN_SAE instruction to the active function. -func (c *Context) VMULSD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULSD_RN_SAE(ops...)) -} - -// VMULSD_RN_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULSD.RN_SAE xmm xmm k xmm -// VMULSD.RN_SAE xmm xmm xmm -// -// Construct and append a VMULSD.RN_SAE instruction to the active function. -// Operates on the global context. -func VMULSD_RN_SAE(ops ...operand.Op) { ctx.VMULSD_RN_SAE(ops...) } - -// VMULSD_RN_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSD.RN_SAE.Z instruction to the active function. -func (c *Context) VMULSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMULSD_RN_SAE_Z(x, x1, k, x2)) -} - -// VMULSD_RN_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMULSD_RN_SAE_Z(x, x1, k, x2) } - -// VMULSD_RU_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULSD.RU_SAE xmm xmm k xmm -// VMULSD.RU_SAE xmm xmm xmm -// -// Construct and append a VMULSD.RU_SAE instruction to the active function. -func (c *Context) VMULSD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULSD_RU_SAE(ops...)) -} - -// VMULSD_RU_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULSD.RU_SAE xmm xmm k xmm -// VMULSD.RU_SAE xmm xmm xmm -// -// Construct and append a VMULSD.RU_SAE instruction to the active function. -// Operates on the global context. -func VMULSD_RU_SAE(ops ...operand.Op) { ctx.VMULSD_RU_SAE(ops...) } - -// VMULSD_RU_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSD.RU_SAE.Z instruction to the active function. -func (c *Context) VMULSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMULSD_RU_SAE_Z(x, x1, k, x2)) -} - -// VMULSD_RU_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMULSD_RU_SAE_Z(x, x1, k, x2) } - -// VMULSD_RZ_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULSD.RZ_SAE xmm xmm k xmm -// VMULSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VMULSD.RZ_SAE instruction to the active function. -func (c *Context) VMULSD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULSD_RZ_SAE(ops...)) -} - -// VMULSD_RZ_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULSD.RZ_SAE xmm xmm k xmm -// VMULSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VMULSD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VMULSD_RZ_SAE(ops ...operand.Op) { ctx.VMULSD_RZ_SAE(ops...) } - -// VMULSD_RZ_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSD.RZ_SAE.Z instruction to the active function. -func (c *Context) VMULSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMULSD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VMULSD_RZ_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMULSD_RZ_SAE_Z(x, x1, k, x2) } - -// VMULSD_Z: Multiply Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULSD.Z m64 xmm k xmm -// VMULSD.Z xmm xmm k xmm -// -// Construct and append a VMULSD.Z instruction to the active function. -func (c *Context) VMULSD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VMULSD_Z(mx, x, k, x1)) -} - -// VMULSD_Z: Multiply Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULSD.Z m64 xmm k xmm -// VMULSD.Z xmm xmm k xmm -// -// Construct and append a VMULSD.Z instruction to the active function. -// Operates on the global context. -func VMULSD_Z(mx, x, k, x1 operand.Op) { ctx.VMULSD_Z(mx, x, k, x1) } - -// VMULSS: Multiply Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VMULSS m32 xmm xmm -// VMULSS xmm xmm xmm -// VMULSS m32 xmm k xmm -// VMULSS xmm xmm k xmm -// -// Construct and append a VMULSS instruction to the active function. -func (c *Context) VMULSS(ops ...operand.Op) { - c.addinstruction(x86.VMULSS(ops...)) -} - -// VMULSS: Multiply Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VMULSS m32 xmm xmm -// VMULSS xmm xmm xmm -// VMULSS m32 xmm k xmm -// VMULSS xmm xmm k xmm -// -// Construct and append a VMULSS instruction to the active function. -// Operates on the global context. -func VMULSS(ops ...operand.Op) { ctx.VMULSS(ops...) } - -// VMULSS_RD_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULSS.RD_SAE xmm xmm k xmm -// VMULSS.RD_SAE xmm xmm xmm -// -// Construct and append a VMULSS.RD_SAE instruction to the active function. -func (c *Context) VMULSS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULSS_RD_SAE(ops...)) -} - -// VMULSS_RD_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULSS.RD_SAE xmm xmm k xmm -// VMULSS.RD_SAE xmm xmm xmm -// -// Construct and append a VMULSS.RD_SAE instruction to the active function. -// Operates on the global context. -func VMULSS_RD_SAE(ops ...operand.Op) { ctx.VMULSS_RD_SAE(ops...) } - -// VMULSS_RD_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSS.RD_SAE.Z instruction to the active function. -func (c *Context) VMULSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMULSS_RD_SAE_Z(x, x1, k, x2)) -} - -// VMULSS_RD_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMULSS_RD_SAE_Z(x, x1, k, x2) } - -// VMULSS_RN_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULSS.RN_SAE xmm xmm k xmm -// VMULSS.RN_SAE xmm xmm xmm -// -// Construct and append a VMULSS.RN_SAE instruction to the active function. -func (c *Context) VMULSS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULSS_RN_SAE(ops...)) -} - -// VMULSS_RN_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULSS.RN_SAE xmm xmm k xmm -// VMULSS.RN_SAE xmm xmm xmm -// -// Construct and append a VMULSS.RN_SAE instruction to the active function. -// Operates on the global context. -func VMULSS_RN_SAE(ops ...operand.Op) { ctx.VMULSS_RN_SAE(ops...) } - -// VMULSS_RN_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSS.RN_SAE.Z instruction to the active function. -func (c *Context) VMULSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMULSS_RN_SAE_Z(x, x1, k, x2)) -} - -// VMULSS_RN_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMULSS_RN_SAE_Z(x, x1, k, x2) } - -// VMULSS_RU_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULSS.RU_SAE xmm xmm k xmm -// VMULSS.RU_SAE xmm xmm xmm -// -// Construct and append a VMULSS.RU_SAE instruction to the active function. -func (c *Context) VMULSS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULSS_RU_SAE(ops...)) -} - -// VMULSS_RU_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULSS.RU_SAE xmm xmm k xmm -// VMULSS.RU_SAE xmm xmm xmm -// -// Construct and append a VMULSS.RU_SAE instruction to the active function. -// Operates on the global context. -func VMULSS_RU_SAE(ops ...operand.Op) { ctx.VMULSS_RU_SAE(ops...) } - -// VMULSS_RU_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSS.RU_SAE.Z instruction to the active function. -func (c *Context) VMULSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMULSS_RU_SAE_Z(x, x1, k, x2)) -} - -// VMULSS_RU_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMULSS_RU_SAE_Z(x, x1, k, x2) } - -// VMULSS_RZ_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULSS.RZ_SAE xmm xmm k xmm -// VMULSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VMULSS.RZ_SAE instruction to the active function. -func (c *Context) VMULSS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VMULSS_RZ_SAE(ops...)) -} - -// VMULSS_RZ_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULSS.RZ_SAE xmm xmm k xmm -// VMULSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VMULSS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VMULSS_RZ_SAE(ops ...operand.Op) { ctx.VMULSS_RZ_SAE(ops...) } - -// VMULSS_RZ_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSS.RZ_SAE.Z instruction to the active function. -func (c *Context) VMULSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VMULSS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VMULSS_RZ_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VMULSS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VMULSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VMULSS_RZ_SAE_Z(x, x1, k, x2) } - -// VMULSS_Z: Multiply Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULSS.Z m32 xmm k xmm -// VMULSS.Z xmm xmm k xmm -// -// Construct and append a VMULSS.Z instruction to the active function. -func (c *Context) VMULSS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VMULSS_Z(mx, x, k, x1)) -} - -// VMULSS_Z: Multiply Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULSS.Z m32 xmm k xmm -// VMULSS.Z xmm xmm k xmm -// -// Construct and append a VMULSS.Z instruction to the active function. -// Operates on the global context. -func VMULSS_Z(mx, x, k, x1 operand.Op) { ctx.VMULSS_Z(mx, x, k, x1) } - -// VORPD: Bitwise Logical OR of Double-Precision Floating-Point Values. -// -// Forms: -// -// VORPD m128 xmm xmm -// VORPD m256 ymm ymm -// VORPD xmm xmm xmm -// VORPD ymm ymm ymm -// VORPD m128 xmm k xmm -// VORPD m256 ymm k ymm -// VORPD xmm xmm k xmm -// VORPD ymm ymm k ymm -// VORPD m512 zmm k zmm -// VORPD m512 zmm zmm -// VORPD zmm zmm k zmm -// VORPD zmm zmm zmm -// -// Construct and append a VORPD instruction to the active function. -func (c *Context) VORPD(ops ...operand.Op) { - c.addinstruction(x86.VORPD(ops...)) -} - -// VORPD: Bitwise Logical OR of Double-Precision Floating-Point Values. -// -// Forms: -// -// VORPD m128 xmm xmm -// VORPD m256 ymm ymm -// VORPD xmm xmm xmm -// VORPD ymm ymm ymm -// VORPD m128 xmm k xmm -// VORPD m256 ymm k ymm -// VORPD xmm xmm k xmm -// VORPD ymm ymm k ymm -// VORPD m512 zmm k zmm -// VORPD m512 zmm zmm -// VORPD zmm zmm k zmm -// VORPD zmm zmm zmm -// -// Construct and append a VORPD instruction to the active function. -// Operates on the global context. -func VORPD(ops ...operand.Op) { ctx.VORPD(ops...) } - -// VORPD_BCST: Bitwise Logical OR of Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VORPD.BCST m64 xmm k xmm -// VORPD.BCST m64 xmm xmm -// VORPD.BCST m64 ymm k ymm -// VORPD.BCST m64 ymm ymm -// VORPD.BCST m64 zmm k zmm -// VORPD.BCST m64 zmm zmm -// -// Construct and append a VORPD.BCST instruction to the active function. -func (c *Context) VORPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VORPD_BCST(ops...)) -} - -// VORPD_BCST: Bitwise Logical OR of Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VORPD.BCST m64 xmm k xmm -// VORPD.BCST m64 xmm xmm -// VORPD.BCST m64 ymm k ymm -// VORPD.BCST m64 ymm ymm -// VORPD.BCST m64 zmm k zmm -// VORPD.BCST m64 zmm zmm -// -// Construct and append a VORPD.BCST instruction to the active function. -// Operates on the global context. -func VORPD_BCST(ops ...operand.Op) { ctx.VORPD_BCST(ops...) } - -// VORPD_BCST_Z: Bitwise Logical OR of Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VORPD.BCST.Z m64 xmm k xmm -// VORPD.BCST.Z m64 ymm k ymm -// VORPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VORPD.BCST.Z instruction to the active function. -func (c *Context) VORPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VORPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VORPD_BCST_Z: Bitwise Logical OR of Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VORPD.BCST.Z m64 xmm k xmm -// VORPD.BCST.Z m64 ymm k ymm -// VORPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VORPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VORPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VORPD_BCST_Z(m, xyz, k, xyz1) } - -// VORPD_Z: Bitwise Logical OR of Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VORPD.Z m128 xmm k xmm -// VORPD.Z m256 ymm k ymm -// VORPD.Z xmm xmm k xmm -// VORPD.Z ymm ymm k ymm -// VORPD.Z m512 zmm k zmm -// VORPD.Z zmm zmm k zmm -// -// Construct and append a VORPD.Z instruction to the active function. -func (c *Context) VORPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VORPD_Z(mxyz, xyz, k, xyz1)) -} - -// VORPD_Z: Bitwise Logical OR of Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VORPD.Z m128 xmm k xmm -// VORPD.Z m256 ymm k ymm -// VORPD.Z xmm xmm k xmm -// VORPD.Z ymm ymm k ymm -// VORPD.Z m512 zmm k zmm -// VORPD.Z zmm zmm k zmm -// -// Construct and append a VORPD.Z instruction to the active function. -// Operates on the global context. -func VORPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VORPD_Z(mxyz, xyz, k, xyz1) } - -// VORPS: Bitwise Logical OR of Single-Precision Floating-Point Values. -// -// Forms: -// -// VORPS m128 xmm xmm -// VORPS m256 ymm ymm -// VORPS xmm xmm xmm -// VORPS ymm ymm ymm -// VORPS m128 xmm k xmm -// VORPS m256 ymm k ymm -// VORPS xmm xmm k xmm -// VORPS ymm ymm k ymm -// VORPS m512 zmm k zmm -// VORPS m512 zmm zmm -// VORPS zmm zmm k zmm -// VORPS zmm zmm zmm -// -// Construct and append a VORPS instruction to the active function. -func (c *Context) VORPS(ops ...operand.Op) { - c.addinstruction(x86.VORPS(ops...)) -} - -// VORPS: Bitwise Logical OR of Single-Precision Floating-Point Values. -// -// Forms: -// -// VORPS m128 xmm xmm -// VORPS m256 ymm ymm -// VORPS xmm xmm xmm -// VORPS ymm ymm ymm -// VORPS m128 xmm k xmm -// VORPS m256 ymm k ymm -// VORPS xmm xmm k xmm -// VORPS ymm ymm k ymm -// VORPS m512 zmm k zmm -// VORPS m512 zmm zmm -// VORPS zmm zmm k zmm -// VORPS zmm zmm zmm -// -// Construct and append a VORPS instruction to the active function. -// Operates on the global context. -func VORPS(ops ...operand.Op) { ctx.VORPS(ops...) } - -// VORPS_BCST: Bitwise Logical OR of Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VORPS.BCST m32 xmm k xmm -// VORPS.BCST m32 xmm xmm -// VORPS.BCST m32 ymm k ymm -// VORPS.BCST m32 ymm ymm -// VORPS.BCST m32 zmm k zmm -// VORPS.BCST m32 zmm zmm -// -// Construct and append a VORPS.BCST instruction to the active function. -func (c *Context) VORPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VORPS_BCST(ops...)) -} - -// VORPS_BCST: Bitwise Logical OR of Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VORPS.BCST m32 xmm k xmm -// VORPS.BCST m32 xmm xmm -// VORPS.BCST m32 ymm k ymm -// VORPS.BCST m32 ymm ymm -// VORPS.BCST m32 zmm k zmm -// VORPS.BCST m32 zmm zmm -// -// Construct and append a VORPS.BCST instruction to the active function. -// Operates on the global context. -func VORPS_BCST(ops ...operand.Op) { ctx.VORPS_BCST(ops...) } - -// VORPS_BCST_Z: Bitwise Logical OR of Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VORPS.BCST.Z m32 xmm k xmm -// VORPS.BCST.Z m32 ymm k ymm -// VORPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VORPS.BCST.Z instruction to the active function. -func (c *Context) VORPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VORPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VORPS_BCST_Z: Bitwise Logical OR of Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VORPS.BCST.Z m32 xmm k xmm -// VORPS.BCST.Z m32 ymm k ymm -// VORPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VORPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VORPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VORPS_BCST_Z(m, xyz, k, xyz1) } - -// VORPS_Z: Bitwise Logical OR of Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VORPS.Z m128 xmm k xmm -// VORPS.Z m256 ymm k ymm -// VORPS.Z xmm xmm k xmm -// VORPS.Z ymm ymm k ymm -// VORPS.Z m512 zmm k zmm -// VORPS.Z zmm zmm k zmm -// -// Construct and append a VORPS.Z instruction to the active function. -func (c *Context) VORPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VORPS_Z(mxyz, xyz, k, xyz1)) -} - -// VORPS_Z: Bitwise Logical OR of Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VORPS.Z m128 xmm k xmm -// VORPS.Z m256 ymm k ymm -// VORPS.Z xmm xmm k xmm -// VORPS.Z ymm ymm k ymm -// VORPS.Z m512 zmm k zmm -// VORPS.Z zmm zmm k zmm -// -// Construct and append a VORPS.Z instruction to the active function. -// Operates on the global context. -func VORPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VORPS_Z(mxyz, xyz, k, xyz1) } - -// VPABSB: Packed Absolute Value of Byte Integers. -// -// Forms: -// -// VPABSB m256 ymm -// VPABSB ymm ymm -// VPABSB m128 xmm -// VPABSB xmm xmm -// VPABSB m128 k xmm -// VPABSB m256 k ymm -// VPABSB xmm k xmm -// VPABSB ymm k ymm -// VPABSB m512 k zmm -// VPABSB m512 zmm -// VPABSB zmm k zmm -// VPABSB zmm zmm -// -// Construct and append a VPABSB instruction to the active function. -func (c *Context) VPABSB(ops ...operand.Op) { - c.addinstruction(x86.VPABSB(ops...)) -} - -// VPABSB: Packed Absolute Value of Byte Integers. -// -// Forms: -// -// VPABSB m256 ymm -// VPABSB ymm ymm -// VPABSB m128 xmm -// VPABSB xmm xmm -// VPABSB m128 k xmm -// VPABSB m256 k ymm -// VPABSB xmm k xmm -// VPABSB ymm k ymm -// VPABSB m512 k zmm -// VPABSB m512 zmm -// VPABSB zmm k zmm -// VPABSB zmm zmm -// -// Construct and append a VPABSB instruction to the active function. -// Operates on the global context. -func VPABSB(ops ...operand.Op) { ctx.VPABSB(ops...) } - -// VPABSB_Z: Packed Absolute Value of Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPABSB.Z m128 k xmm -// VPABSB.Z m256 k ymm -// VPABSB.Z xmm k xmm -// VPABSB.Z ymm k ymm -// VPABSB.Z m512 k zmm -// VPABSB.Z zmm k zmm -// -// Construct and append a VPABSB.Z instruction to the active function. -func (c *Context) VPABSB_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPABSB_Z(mxyz, k, xyz)) -} - -// VPABSB_Z: Packed Absolute Value of Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPABSB.Z m128 k xmm -// VPABSB.Z m256 k ymm -// VPABSB.Z xmm k xmm -// VPABSB.Z ymm k ymm -// VPABSB.Z m512 k zmm -// VPABSB.Z zmm k zmm -// -// Construct and append a VPABSB.Z instruction to the active function. -// Operates on the global context. -func VPABSB_Z(mxyz, k, xyz operand.Op) { ctx.VPABSB_Z(mxyz, k, xyz) } - -// VPABSD: Packed Absolute Value of Doubleword Integers. -// -// Forms: -// -// VPABSD m256 ymm -// VPABSD ymm ymm -// VPABSD m128 xmm -// VPABSD xmm xmm -// VPABSD m128 k xmm -// VPABSD m256 k ymm -// VPABSD xmm k xmm -// VPABSD ymm k ymm -// VPABSD m512 k zmm -// VPABSD m512 zmm -// VPABSD zmm k zmm -// VPABSD zmm zmm -// -// Construct and append a VPABSD instruction to the active function. -func (c *Context) VPABSD(ops ...operand.Op) { - c.addinstruction(x86.VPABSD(ops...)) -} - -// VPABSD: Packed Absolute Value of Doubleword Integers. -// -// Forms: -// -// VPABSD m256 ymm -// VPABSD ymm ymm -// VPABSD m128 xmm -// VPABSD xmm xmm -// VPABSD m128 k xmm -// VPABSD m256 k ymm -// VPABSD xmm k xmm -// VPABSD ymm k ymm -// VPABSD m512 k zmm -// VPABSD m512 zmm -// VPABSD zmm k zmm -// VPABSD zmm zmm -// -// Construct and append a VPABSD instruction to the active function. -// Operates on the global context. -func VPABSD(ops ...operand.Op) { ctx.VPABSD(ops...) } - -// VPABSD_BCST: Packed Absolute Value of Doubleword Integers (Broadcast). -// -// Forms: -// -// VPABSD.BCST m32 k xmm -// VPABSD.BCST m32 k ymm -// VPABSD.BCST m32 xmm -// VPABSD.BCST m32 ymm -// VPABSD.BCST m32 k zmm -// VPABSD.BCST m32 zmm -// -// Construct and append a VPABSD.BCST instruction to the active function. -func (c *Context) VPABSD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPABSD_BCST(ops...)) -} - -// VPABSD_BCST: Packed Absolute Value of Doubleword Integers (Broadcast). -// -// Forms: -// -// VPABSD.BCST m32 k xmm -// VPABSD.BCST m32 k ymm -// VPABSD.BCST m32 xmm -// VPABSD.BCST m32 ymm -// VPABSD.BCST m32 k zmm -// VPABSD.BCST m32 zmm -// -// Construct and append a VPABSD.BCST instruction to the active function. -// Operates on the global context. -func VPABSD_BCST(ops ...operand.Op) { ctx.VPABSD_BCST(ops...) } - -// VPABSD_BCST_Z: Packed Absolute Value of Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPABSD.BCST.Z m32 k xmm -// VPABSD.BCST.Z m32 k ymm -// VPABSD.BCST.Z m32 k zmm -// -// Construct and append a VPABSD.BCST.Z instruction to the active function. -func (c *Context) VPABSD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VPABSD_BCST_Z(m, k, xyz)) -} - -// VPABSD_BCST_Z: Packed Absolute Value of Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPABSD.BCST.Z m32 k xmm -// VPABSD.BCST.Z m32 k ymm -// VPABSD.BCST.Z m32 k zmm -// -// Construct and append a VPABSD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPABSD_BCST_Z(m, k, xyz operand.Op) { ctx.VPABSD_BCST_Z(m, k, xyz) } - -// VPABSD_Z: Packed Absolute Value of Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPABSD.Z m128 k xmm -// VPABSD.Z m256 k ymm -// VPABSD.Z xmm k xmm -// VPABSD.Z ymm k ymm -// VPABSD.Z m512 k zmm -// VPABSD.Z zmm k zmm -// -// Construct and append a VPABSD.Z instruction to the active function. -func (c *Context) VPABSD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPABSD_Z(mxyz, k, xyz)) -} - -// VPABSD_Z: Packed Absolute Value of Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPABSD.Z m128 k xmm -// VPABSD.Z m256 k ymm -// VPABSD.Z xmm k xmm -// VPABSD.Z ymm k ymm -// VPABSD.Z m512 k zmm -// VPABSD.Z zmm k zmm -// -// Construct and append a VPABSD.Z instruction to the active function. -// Operates on the global context. -func VPABSD_Z(mxyz, k, xyz operand.Op) { ctx.VPABSD_Z(mxyz, k, xyz) } - -// VPABSQ: Packed Absolute Value of Quadword Integers. -// -// Forms: -// -// VPABSQ m128 k xmm -// VPABSQ m128 xmm -// VPABSQ m256 k ymm -// VPABSQ m256 ymm -// VPABSQ xmm k xmm -// VPABSQ xmm xmm -// VPABSQ ymm k ymm -// VPABSQ ymm ymm -// VPABSQ m512 k zmm -// VPABSQ m512 zmm -// VPABSQ zmm k zmm -// VPABSQ zmm zmm -// -// Construct and append a VPABSQ instruction to the active function. -func (c *Context) VPABSQ(ops ...operand.Op) { - c.addinstruction(x86.VPABSQ(ops...)) -} - -// VPABSQ: Packed Absolute Value of Quadword Integers. -// -// Forms: -// -// VPABSQ m128 k xmm -// VPABSQ m128 xmm -// VPABSQ m256 k ymm -// VPABSQ m256 ymm -// VPABSQ xmm k xmm -// VPABSQ xmm xmm -// VPABSQ ymm k ymm -// VPABSQ ymm ymm -// VPABSQ m512 k zmm -// VPABSQ m512 zmm -// VPABSQ zmm k zmm -// VPABSQ zmm zmm -// -// Construct and append a VPABSQ instruction to the active function. -// Operates on the global context. -func VPABSQ(ops ...operand.Op) { ctx.VPABSQ(ops...) } - -// VPABSQ_BCST: Packed Absolute Value of Quadword Integers (Broadcast). -// -// Forms: -// -// VPABSQ.BCST m64 k xmm -// VPABSQ.BCST m64 k ymm -// VPABSQ.BCST m64 xmm -// VPABSQ.BCST m64 ymm -// VPABSQ.BCST m64 k zmm -// VPABSQ.BCST m64 zmm -// -// Construct and append a VPABSQ.BCST instruction to the active function. -func (c *Context) VPABSQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPABSQ_BCST(ops...)) -} - -// VPABSQ_BCST: Packed Absolute Value of Quadword Integers (Broadcast). -// -// Forms: -// -// VPABSQ.BCST m64 k xmm -// VPABSQ.BCST m64 k ymm -// VPABSQ.BCST m64 xmm -// VPABSQ.BCST m64 ymm -// VPABSQ.BCST m64 k zmm -// VPABSQ.BCST m64 zmm -// -// Construct and append a VPABSQ.BCST instruction to the active function. -// Operates on the global context. -func VPABSQ_BCST(ops ...operand.Op) { ctx.VPABSQ_BCST(ops...) } - -// VPABSQ_BCST_Z: Packed Absolute Value of Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPABSQ.BCST.Z m64 k xmm -// VPABSQ.BCST.Z m64 k ymm -// VPABSQ.BCST.Z m64 k zmm -// -// Construct and append a VPABSQ.BCST.Z instruction to the active function. -func (c *Context) VPABSQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VPABSQ_BCST_Z(m, k, xyz)) -} - -// VPABSQ_BCST_Z: Packed Absolute Value of Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPABSQ.BCST.Z m64 k xmm -// VPABSQ.BCST.Z m64 k ymm -// VPABSQ.BCST.Z m64 k zmm -// -// Construct and append a VPABSQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPABSQ_BCST_Z(m, k, xyz operand.Op) { ctx.VPABSQ_BCST_Z(m, k, xyz) } - -// VPABSQ_Z: Packed Absolute Value of Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPABSQ.Z m128 k xmm -// VPABSQ.Z m256 k ymm -// VPABSQ.Z xmm k xmm -// VPABSQ.Z ymm k ymm -// VPABSQ.Z m512 k zmm -// VPABSQ.Z zmm k zmm -// -// Construct and append a VPABSQ.Z instruction to the active function. -func (c *Context) VPABSQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPABSQ_Z(mxyz, k, xyz)) -} - -// VPABSQ_Z: Packed Absolute Value of Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPABSQ.Z m128 k xmm -// VPABSQ.Z m256 k ymm -// VPABSQ.Z xmm k xmm -// VPABSQ.Z ymm k ymm -// VPABSQ.Z m512 k zmm -// VPABSQ.Z zmm k zmm -// -// Construct and append a VPABSQ.Z instruction to the active function. -// Operates on the global context. -func VPABSQ_Z(mxyz, k, xyz operand.Op) { ctx.VPABSQ_Z(mxyz, k, xyz) } - -// VPABSW: Packed Absolute Value of Word Integers. -// -// Forms: -// -// VPABSW m256 ymm -// VPABSW ymm ymm -// VPABSW m128 xmm -// VPABSW xmm xmm -// VPABSW m128 k xmm -// VPABSW m256 k ymm -// VPABSW xmm k xmm -// VPABSW ymm k ymm -// VPABSW m512 k zmm -// VPABSW m512 zmm -// VPABSW zmm k zmm -// VPABSW zmm zmm -// -// Construct and append a VPABSW instruction to the active function. -func (c *Context) VPABSW(ops ...operand.Op) { - c.addinstruction(x86.VPABSW(ops...)) -} - -// VPABSW: Packed Absolute Value of Word Integers. -// -// Forms: -// -// VPABSW m256 ymm -// VPABSW ymm ymm -// VPABSW m128 xmm -// VPABSW xmm xmm -// VPABSW m128 k xmm -// VPABSW m256 k ymm -// VPABSW xmm k xmm -// VPABSW ymm k ymm -// VPABSW m512 k zmm -// VPABSW m512 zmm -// VPABSW zmm k zmm -// VPABSW zmm zmm -// -// Construct and append a VPABSW instruction to the active function. -// Operates on the global context. -func VPABSW(ops ...operand.Op) { ctx.VPABSW(ops...) } - -// VPABSW_Z: Packed Absolute Value of Word Integers (Zeroing Masking). -// -// Forms: -// -// VPABSW.Z m128 k xmm -// VPABSW.Z m256 k ymm -// VPABSW.Z xmm k xmm -// VPABSW.Z ymm k ymm -// VPABSW.Z m512 k zmm -// VPABSW.Z zmm k zmm -// -// Construct and append a VPABSW.Z instruction to the active function. -func (c *Context) VPABSW_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPABSW_Z(mxyz, k, xyz)) -} - -// VPABSW_Z: Packed Absolute Value of Word Integers (Zeroing Masking). -// -// Forms: -// -// VPABSW.Z m128 k xmm -// VPABSW.Z m256 k ymm -// VPABSW.Z xmm k xmm -// VPABSW.Z ymm k ymm -// VPABSW.Z m512 k zmm -// VPABSW.Z zmm k zmm -// -// Construct and append a VPABSW.Z instruction to the active function. -// Operates on the global context. -func VPABSW_Z(mxyz, k, xyz operand.Op) { ctx.VPABSW_Z(mxyz, k, xyz) } - -// VPACKSSDW: Pack Doublewords into Words with Signed Saturation. -// -// Forms: -// -// VPACKSSDW m256 ymm ymm -// VPACKSSDW ymm ymm ymm -// VPACKSSDW m128 xmm xmm -// VPACKSSDW xmm xmm xmm -// VPACKSSDW m128 xmm k xmm -// VPACKSSDW m256 ymm k ymm -// VPACKSSDW xmm xmm k xmm -// VPACKSSDW ymm ymm k ymm -// VPACKSSDW m512 zmm k zmm -// VPACKSSDW m512 zmm zmm -// VPACKSSDW zmm zmm k zmm -// VPACKSSDW zmm zmm zmm -// -// Construct and append a VPACKSSDW instruction to the active function. -func (c *Context) VPACKSSDW(ops ...operand.Op) { - c.addinstruction(x86.VPACKSSDW(ops...)) -} - -// VPACKSSDW: Pack Doublewords into Words with Signed Saturation. -// -// Forms: -// -// VPACKSSDW m256 ymm ymm -// VPACKSSDW ymm ymm ymm -// VPACKSSDW m128 xmm xmm -// VPACKSSDW xmm xmm xmm -// VPACKSSDW m128 xmm k xmm -// VPACKSSDW m256 ymm k ymm -// VPACKSSDW xmm xmm k xmm -// VPACKSSDW ymm ymm k ymm -// VPACKSSDW m512 zmm k zmm -// VPACKSSDW m512 zmm zmm -// VPACKSSDW zmm zmm k zmm -// VPACKSSDW zmm zmm zmm -// -// Construct and append a VPACKSSDW instruction to the active function. -// Operates on the global context. -func VPACKSSDW(ops ...operand.Op) { ctx.VPACKSSDW(ops...) } - -// VPACKSSDW_BCST: Pack Doublewords into Words with Signed Saturation (Broadcast). -// -// Forms: -// -// VPACKSSDW.BCST m32 xmm k xmm -// VPACKSSDW.BCST m32 xmm xmm -// VPACKSSDW.BCST m32 ymm k ymm -// VPACKSSDW.BCST m32 ymm ymm -// VPACKSSDW.BCST m32 zmm k zmm -// VPACKSSDW.BCST m32 zmm zmm -// -// Construct and append a VPACKSSDW.BCST instruction to the active function. -func (c *Context) VPACKSSDW_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPACKSSDW_BCST(ops...)) -} - -// VPACKSSDW_BCST: Pack Doublewords into Words with Signed Saturation (Broadcast). -// -// Forms: -// -// VPACKSSDW.BCST m32 xmm k xmm -// VPACKSSDW.BCST m32 xmm xmm -// VPACKSSDW.BCST m32 ymm k ymm -// VPACKSSDW.BCST m32 ymm ymm -// VPACKSSDW.BCST m32 zmm k zmm -// VPACKSSDW.BCST m32 zmm zmm -// -// Construct and append a VPACKSSDW.BCST instruction to the active function. -// Operates on the global context. -func VPACKSSDW_BCST(ops ...operand.Op) { ctx.VPACKSSDW_BCST(ops...) } - -// VPACKSSDW_BCST_Z: Pack Doublewords into Words with Signed Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPACKSSDW.BCST.Z m32 xmm k xmm -// VPACKSSDW.BCST.Z m32 ymm k ymm -// VPACKSSDW.BCST.Z m32 zmm k zmm -// -// Construct and append a VPACKSSDW.BCST.Z instruction to the active function. -func (c *Context) VPACKSSDW_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPACKSSDW_BCST_Z(m, xyz, k, xyz1)) -} - -// VPACKSSDW_BCST_Z: Pack Doublewords into Words with Signed Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPACKSSDW.BCST.Z m32 xmm k xmm -// VPACKSSDW.BCST.Z m32 ymm k ymm -// VPACKSSDW.BCST.Z m32 zmm k zmm -// -// Construct and append a VPACKSSDW.BCST.Z instruction to the active function. -// Operates on the global context. -func VPACKSSDW_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPACKSSDW_BCST_Z(m, xyz, k, xyz1) } - -// VPACKSSDW_Z: Pack Doublewords into Words with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKSSDW.Z m128 xmm k xmm -// VPACKSSDW.Z m256 ymm k ymm -// VPACKSSDW.Z xmm xmm k xmm -// VPACKSSDW.Z ymm ymm k ymm -// VPACKSSDW.Z m512 zmm k zmm -// VPACKSSDW.Z zmm zmm k zmm -// -// Construct and append a VPACKSSDW.Z instruction to the active function. -func (c *Context) VPACKSSDW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPACKSSDW_Z(mxyz, xyz, k, xyz1)) -} - -// VPACKSSDW_Z: Pack Doublewords into Words with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKSSDW.Z m128 xmm k xmm -// VPACKSSDW.Z m256 ymm k ymm -// VPACKSSDW.Z xmm xmm k xmm -// VPACKSSDW.Z ymm ymm k ymm -// VPACKSSDW.Z m512 zmm k zmm -// VPACKSSDW.Z zmm zmm k zmm -// -// Construct and append a VPACKSSDW.Z instruction to the active function. -// Operates on the global context. -func VPACKSSDW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPACKSSDW_Z(mxyz, xyz, k, xyz1) } - -// VPACKSSWB: Pack Words into Bytes with Signed Saturation. -// -// Forms: -// -// VPACKSSWB m256 ymm ymm -// VPACKSSWB ymm ymm ymm -// VPACKSSWB m128 xmm xmm -// VPACKSSWB xmm xmm xmm -// VPACKSSWB m128 xmm k xmm -// VPACKSSWB m256 ymm k ymm -// VPACKSSWB xmm xmm k xmm -// VPACKSSWB ymm ymm k ymm -// VPACKSSWB m512 zmm k zmm -// VPACKSSWB m512 zmm zmm -// VPACKSSWB zmm zmm k zmm -// VPACKSSWB zmm zmm zmm -// -// Construct and append a VPACKSSWB instruction to the active function. -func (c *Context) VPACKSSWB(ops ...operand.Op) { - c.addinstruction(x86.VPACKSSWB(ops...)) -} - -// VPACKSSWB: Pack Words into Bytes with Signed Saturation. -// -// Forms: -// -// VPACKSSWB m256 ymm ymm -// VPACKSSWB ymm ymm ymm -// VPACKSSWB m128 xmm xmm -// VPACKSSWB xmm xmm xmm -// VPACKSSWB m128 xmm k xmm -// VPACKSSWB m256 ymm k ymm -// VPACKSSWB xmm xmm k xmm -// VPACKSSWB ymm ymm k ymm -// VPACKSSWB m512 zmm k zmm -// VPACKSSWB m512 zmm zmm -// VPACKSSWB zmm zmm k zmm -// VPACKSSWB zmm zmm zmm -// -// Construct and append a VPACKSSWB instruction to the active function. -// Operates on the global context. -func VPACKSSWB(ops ...operand.Op) { ctx.VPACKSSWB(ops...) } - -// VPACKSSWB_Z: Pack Words into Bytes with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKSSWB.Z m128 xmm k xmm -// VPACKSSWB.Z m256 ymm k ymm -// VPACKSSWB.Z xmm xmm k xmm -// VPACKSSWB.Z ymm ymm k ymm -// VPACKSSWB.Z m512 zmm k zmm -// VPACKSSWB.Z zmm zmm k zmm -// -// Construct and append a VPACKSSWB.Z instruction to the active function. -func (c *Context) VPACKSSWB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPACKSSWB_Z(mxyz, xyz, k, xyz1)) -} - -// VPACKSSWB_Z: Pack Words into Bytes with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKSSWB.Z m128 xmm k xmm -// VPACKSSWB.Z m256 ymm k ymm -// VPACKSSWB.Z xmm xmm k xmm -// VPACKSSWB.Z ymm ymm k ymm -// VPACKSSWB.Z m512 zmm k zmm -// VPACKSSWB.Z zmm zmm k zmm -// -// Construct and append a VPACKSSWB.Z instruction to the active function. -// Operates on the global context. -func VPACKSSWB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPACKSSWB_Z(mxyz, xyz, k, xyz1) } - -// VPACKUSDW: Pack Doublewords into Words with Unsigned Saturation. -// -// Forms: -// -// VPACKUSDW m256 ymm ymm -// VPACKUSDW ymm ymm ymm -// VPACKUSDW m128 xmm xmm -// VPACKUSDW xmm xmm xmm -// VPACKUSDW m128 xmm k xmm -// VPACKUSDW m256 ymm k ymm -// VPACKUSDW xmm xmm k xmm -// VPACKUSDW ymm ymm k ymm -// VPACKUSDW m512 zmm k zmm -// VPACKUSDW m512 zmm zmm -// VPACKUSDW zmm zmm k zmm -// VPACKUSDW zmm zmm zmm -// -// Construct and append a VPACKUSDW instruction to the active function. -func (c *Context) VPACKUSDW(ops ...operand.Op) { - c.addinstruction(x86.VPACKUSDW(ops...)) -} - -// VPACKUSDW: Pack Doublewords into Words with Unsigned Saturation. -// -// Forms: -// -// VPACKUSDW m256 ymm ymm -// VPACKUSDW ymm ymm ymm -// VPACKUSDW m128 xmm xmm -// VPACKUSDW xmm xmm xmm -// VPACKUSDW m128 xmm k xmm -// VPACKUSDW m256 ymm k ymm -// VPACKUSDW xmm xmm k xmm -// VPACKUSDW ymm ymm k ymm -// VPACKUSDW m512 zmm k zmm -// VPACKUSDW m512 zmm zmm -// VPACKUSDW zmm zmm k zmm -// VPACKUSDW zmm zmm zmm -// -// Construct and append a VPACKUSDW instruction to the active function. -// Operates on the global context. -func VPACKUSDW(ops ...operand.Op) { ctx.VPACKUSDW(ops...) } - -// VPACKUSDW_BCST: Pack Doublewords into Words with Unsigned Saturation (Broadcast). -// -// Forms: -// -// VPACKUSDW.BCST m32 xmm k xmm -// VPACKUSDW.BCST m32 xmm xmm -// VPACKUSDW.BCST m32 ymm k ymm -// VPACKUSDW.BCST m32 ymm ymm -// VPACKUSDW.BCST m32 zmm k zmm -// VPACKUSDW.BCST m32 zmm zmm -// -// Construct and append a VPACKUSDW.BCST instruction to the active function. -func (c *Context) VPACKUSDW_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPACKUSDW_BCST(ops...)) -} - -// VPACKUSDW_BCST: Pack Doublewords into Words with Unsigned Saturation (Broadcast). -// -// Forms: -// -// VPACKUSDW.BCST m32 xmm k xmm -// VPACKUSDW.BCST m32 xmm xmm -// VPACKUSDW.BCST m32 ymm k ymm -// VPACKUSDW.BCST m32 ymm ymm -// VPACKUSDW.BCST m32 zmm k zmm -// VPACKUSDW.BCST m32 zmm zmm -// -// Construct and append a VPACKUSDW.BCST instruction to the active function. -// Operates on the global context. -func VPACKUSDW_BCST(ops ...operand.Op) { ctx.VPACKUSDW_BCST(ops...) } - -// VPACKUSDW_BCST_Z: Pack Doublewords into Words with Unsigned Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPACKUSDW.BCST.Z m32 xmm k xmm -// VPACKUSDW.BCST.Z m32 ymm k ymm -// VPACKUSDW.BCST.Z m32 zmm k zmm -// -// Construct and append a VPACKUSDW.BCST.Z instruction to the active function. -func (c *Context) VPACKUSDW_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPACKUSDW_BCST_Z(m, xyz, k, xyz1)) -} - -// VPACKUSDW_BCST_Z: Pack Doublewords into Words with Unsigned Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPACKUSDW.BCST.Z m32 xmm k xmm -// VPACKUSDW.BCST.Z m32 ymm k ymm -// VPACKUSDW.BCST.Z m32 zmm k zmm -// -// Construct and append a VPACKUSDW.BCST.Z instruction to the active function. -// Operates on the global context. -func VPACKUSDW_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPACKUSDW_BCST_Z(m, xyz, k, xyz1) } - -// VPACKUSDW_Z: Pack Doublewords into Words with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKUSDW.Z m128 xmm k xmm -// VPACKUSDW.Z m256 ymm k ymm -// VPACKUSDW.Z xmm xmm k xmm -// VPACKUSDW.Z ymm ymm k ymm -// VPACKUSDW.Z m512 zmm k zmm -// VPACKUSDW.Z zmm zmm k zmm -// -// Construct and append a VPACKUSDW.Z instruction to the active function. -func (c *Context) VPACKUSDW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPACKUSDW_Z(mxyz, xyz, k, xyz1)) -} - -// VPACKUSDW_Z: Pack Doublewords into Words with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKUSDW.Z m128 xmm k xmm -// VPACKUSDW.Z m256 ymm k ymm -// VPACKUSDW.Z xmm xmm k xmm -// VPACKUSDW.Z ymm ymm k ymm -// VPACKUSDW.Z m512 zmm k zmm -// VPACKUSDW.Z zmm zmm k zmm -// -// Construct and append a VPACKUSDW.Z instruction to the active function. -// Operates on the global context. -func VPACKUSDW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPACKUSDW_Z(mxyz, xyz, k, xyz1) } - -// VPACKUSWB: Pack Words into Bytes with Unsigned Saturation. -// -// Forms: -// -// VPACKUSWB m256 ymm ymm -// VPACKUSWB ymm ymm ymm -// VPACKUSWB m128 xmm xmm -// VPACKUSWB xmm xmm xmm -// VPACKUSWB m128 xmm k xmm -// VPACKUSWB m256 ymm k ymm -// VPACKUSWB xmm xmm k xmm -// VPACKUSWB ymm ymm k ymm -// VPACKUSWB m512 zmm k zmm -// VPACKUSWB m512 zmm zmm -// VPACKUSWB zmm zmm k zmm -// VPACKUSWB zmm zmm zmm -// -// Construct and append a VPACKUSWB instruction to the active function. -func (c *Context) VPACKUSWB(ops ...operand.Op) { - c.addinstruction(x86.VPACKUSWB(ops...)) -} - -// VPACKUSWB: Pack Words into Bytes with Unsigned Saturation. -// -// Forms: -// -// VPACKUSWB m256 ymm ymm -// VPACKUSWB ymm ymm ymm -// VPACKUSWB m128 xmm xmm -// VPACKUSWB xmm xmm xmm -// VPACKUSWB m128 xmm k xmm -// VPACKUSWB m256 ymm k ymm -// VPACKUSWB xmm xmm k xmm -// VPACKUSWB ymm ymm k ymm -// VPACKUSWB m512 zmm k zmm -// VPACKUSWB m512 zmm zmm -// VPACKUSWB zmm zmm k zmm -// VPACKUSWB zmm zmm zmm -// -// Construct and append a VPACKUSWB instruction to the active function. -// Operates on the global context. -func VPACKUSWB(ops ...operand.Op) { ctx.VPACKUSWB(ops...) } - -// VPACKUSWB_Z: Pack Words into Bytes with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKUSWB.Z m128 xmm k xmm -// VPACKUSWB.Z m256 ymm k ymm -// VPACKUSWB.Z xmm xmm k xmm -// VPACKUSWB.Z ymm ymm k ymm -// VPACKUSWB.Z m512 zmm k zmm -// VPACKUSWB.Z zmm zmm k zmm -// -// Construct and append a VPACKUSWB.Z instruction to the active function. -func (c *Context) VPACKUSWB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPACKUSWB_Z(mxyz, xyz, k, xyz1)) -} - -// VPACKUSWB_Z: Pack Words into Bytes with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKUSWB.Z m128 xmm k xmm -// VPACKUSWB.Z m256 ymm k ymm -// VPACKUSWB.Z xmm xmm k xmm -// VPACKUSWB.Z ymm ymm k ymm -// VPACKUSWB.Z m512 zmm k zmm -// VPACKUSWB.Z zmm zmm k zmm -// -// Construct and append a VPACKUSWB.Z instruction to the active function. -// Operates on the global context. -func VPACKUSWB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPACKUSWB_Z(mxyz, xyz, k, xyz1) } - -// VPADDB: Add Packed Byte Integers. -// -// Forms: -// -// VPADDB m256 ymm ymm -// VPADDB ymm ymm ymm -// VPADDB m128 xmm xmm -// VPADDB xmm xmm xmm -// VPADDB m128 xmm k xmm -// VPADDB m256 ymm k ymm -// VPADDB xmm xmm k xmm -// VPADDB ymm ymm k ymm -// VPADDB m512 zmm k zmm -// VPADDB m512 zmm zmm -// VPADDB zmm zmm k zmm -// VPADDB zmm zmm zmm -// -// Construct and append a VPADDB instruction to the active function. -func (c *Context) VPADDB(ops ...operand.Op) { - c.addinstruction(x86.VPADDB(ops...)) -} - -// VPADDB: Add Packed Byte Integers. -// -// Forms: -// -// VPADDB m256 ymm ymm -// VPADDB ymm ymm ymm -// VPADDB m128 xmm xmm -// VPADDB xmm xmm xmm -// VPADDB m128 xmm k xmm -// VPADDB m256 ymm k ymm -// VPADDB xmm xmm k xmm -// VPADDB ymm ymm k ymm -// VPADDB m512 zmm k zmm -// VPADDB m512 zmm zmm -// VPADDB zmm zmm k zmm -// VPADDB zmm zmm zmm -// -// Construct and append a VPADDB instruction to the active function. -// Operates on the global context. -func VPADDB(ops ...operand.Op) { ctx.VPADDB(ops...) } - -// VPADDB_Z: Add Packed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPADDB.Z m128 xmm k xmm -// VPADDB.Z m256 ymm k ymm -// VPADDB.Z xmm xmm k xmm -// VPADDB.Z ymm ymm k ymm -// VPADDB.Z m512 zmm k zmm -// VPADDB.Z zmm zmm k zmm -// -// Construct and append a VPADDB.Z instruction to the active function. -func (c *Context) VPADDB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDB_Z(mxyz, xyz, k, xyz1)) -} - -// VPADDB_Z: Add Packed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPADDB.Z m128 xmm k xmm -// VPADDB.Z m256 ymm k ymm -// VPADDB.Z xmm xmm k xmm -// VPADDB.Z ymm ymm k ymm -// VPADDB.Z m512 zmm k zmm -// VPADDB.Z zmm zmm k zmm -// -// Construct and append a VPADDB.Z instruction to the active function. -// Operates on the global context. -func VPADDB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPADDB_Z(mxyz, xyz, k, xyz1) } - -// VPADDD: Add Packed Doubleword Integers. -// -// Forms: -// -// VPADDD m256 ymm ymm -// VPADDD ymm ymm ymm -// VPADDD m128 xmm xmm -// VPADDD xmm xmm xmm -// VPADDD m128 xmm k xmm -// VPADDD m256 ymm k ymm -// VPADDD xmm xmm k xmm -// VPADDD ymm ymm k ymm -// VPADDD m512 zmm k zmm -// VPADDD m512 zmm zmm -// VPADDD zmm zmm k zmm -// VPADDD zmm zmm zmm -// -// Construct and append a VPADDD instruction to the active function. -func (c *Context) VPADDD(ops ...operand.Op) { - c.addinstruction(x86.VPADDD(ops...)) -} - -// VPADDD: Add Packed Doubleword Integers. -// -// Forms: -// -// VPADDD m256 ymm ymm -// VPADDD ymm ymm ymm -// VPADDD m128 xmm xmm -// VPADDD xmm xmm xmm -// VPADDD m128 xmm k xmm -// VPADDD m256 ymm k ymm -// VPADDD xmm xmm k xmm -// VPADDD ymm ymm k ymm -// VPADDD m512 zmm k zmm -// VPADDD m512 zmm zmm -// VPADDD zmm zmm k zmm -// VPADDD zmm zmm zmm -// -// Construct and append a VPADDD instruction to the active function. -// Operates on the global context. -func VPADDD(ops ...operand.Op) { ctx.VPADDD(ops...) } - -// VPADDD_BCST: Add Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPADDD.BCST m32 xmm k xmm -// VPADDD.BCST m32 xmm xmm -// VPADDD.BCST m32 ymm k ymm -// VPADDD.BCST m32 ymm ymm -// VPADDD.BCST m32 zmm k zmm -// VPADDD.BCST m32 zmm zmm -// -// Construct and append a VPADDD.BCST instruction to the active function. -func (c *Context) VPADDD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPADDD_BCST(ops...)) -} - -// VPADDD_BCST: Add Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPADDD.BCST m32 xmm k xmm -// VPADDD.BCST m32 xmm xmm -// VPADDD.BCST m32 ymm k ymm -// VPADDD.BCST m32 ymm ymm -// VPADDD.BCST m32 zmm k zmm -// VPADDD.BCST m32 zmm zmm -// -// Construct and append a VPADDD.BCST instruction to the active function. -// Operates on the global context. -func VPADDD_BCST(ops ...operand.Op) { ctx.VPADDD_BCST(ops...) } - -// VPADDD_BCST_Z: Add Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPADDD.BCST.Z m32 xmm k xmm -// VPADDD.BCST.Z m32 ymm k ymm -// VPADDD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPADDD.BCST.Z instruction to the active function. -func (c *Context) VPADDD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPADDD_BCST_Z: Add Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPADDD.BCST.Z m32 xmm k xmm -// VPADDD.BCST.Z m32 ymm k ymm -// VPADDD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPADDD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPADDD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPADDD_BCST_Z(m, xyz, k, xyz1) } - -// VPADDD_Z: Add Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPADDD.Z m128 xmm k xmm -// VPADDD.Z m256 ymm k ymm -// VPADDD.Z xmm xmm k xmm -// VPADDD.Z ymm ymm k ymm -// VPADDD.Z m512 zmm k zmm -// VPADDD.Z zmm zmm k zmm -// -// Construct and append a VPADDD.Z instruction to the active function. -func (c *Context) VPADDD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDD_Z(mxyz, xyz, k, xyz1)) -} - -// VPADDD_Z: Add Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPADDD.Z m128 xmm k xmm -// VPADDD.Z m256 ymm k ymm -// VPADDD.Z xmm xmm k xmm -// VPADDD.Z ymm ymm k ymm -// VPADDD.Z m512 zmm k zmm -// VPADDD.Z zmm zmm k zmm -// -// Construct and append a VPADDD.Z instruction to the active function. -// Operates on the global context. -func VPADDD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPADDD_Z(mxyz, xyz, k, xyz1) } - -// VPADDQ: Add Packed Quadword Integers. -// -// Forms: -// -// VPADDQ m256 ymm ymm -// VPADDQ ymm ymm ymm -// VPADDQ m128 xmm xmm -// VPADDQ xmm xmm xmm -// VPADDQ m128 xmm k xmm -// VPADDQ m256 ymm k ymm -// VPADDQ xmm xmm k xmm -// VPADDQ ymm ymm k ymm -// VPADDQ m512 zmm k zmm -// VPADDQ m512 zmm zmm -// VPADDQ zmm zmm k zmm -// VPADDQ zmm zmm zmm -// -// Construct and append a VPADDQ instruction to the active function. -func (c *Context) VPADDQ(ops ...operand.Op) { - c.addinstruction(x86.VPADDQ(ops...)) -} - -// VPADDQ: Add Packed Quadword Integers. -// -// Forms: -// -// VPADDQ m256 ymm ymm -// VPADDQ ymm ymm ymm -// VPADDQ m128 xmm xmm -// VPADDQ xmm xmm xmm -// VPADDQ m128 xmm k xmm -// VPADDQ m256 ymm k ymm -// VPADDQ xmm xmm k xmm -// VPADDQ ymm ymm k ymm -// VPADDQ m512 zmm k zmm -// VPADDQ m512 zmm zmm -// VPADDQ zmm zmm k zmm -// VPADDQ zmm zmm zmm -// -// Construct and append a VPADDQ instruction to the active function. -// Operates on the global context. -func VPADDQ(ops ...operand.Op) { ctx.VPADDQ(ops...) } - -// VPADDQ_BCST: Add Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPADDQ.BCST m64 xmm k xmm -// VPADDQ.BCST m64 xmm xmm -// VPADDQ.BCST m64 ymm k ymm -// VPADDQ.BCST m64 ymm ymm -// VPADDQ.BCST m64 zmm k zmm -// VPADDQ.BCST m64 zmm zmm -// -// Construct and append a VPADDQ.BCST instruction to the active function. -func (c *Context) VPADDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPADDQ_BCST(ops...)) -} - -// VPADDQ_BCST: Add Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPADDQ.BCST m64 xmm k xmm -// VPADDQ.BCST m64 xmm xmm -// VPADDQ.BCST m64 ymm k ymm -// VPADDQ.BCST m64 ymm ymm -// VPADDQ.BCST m64 zmm k zmm -// VPADDQ.BCST m64 zmm zmm -// -// Construct and append a VPADDQ.BCST instruction to the active function. -// Operates on the global context. -func VPADDQ_BCST(ops ...operand.Op) { ctx.VPADDQ_BCST(ops...) } - -// VPADDQ_BCST_Z: Add Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPADDQ.BCST.Z m64 xmm k xmm -// VPADDQ.BCST.Z m64 ymm k ymm -// VPADDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPADDQ.BCST.Z instruction to the active function. -func (c *Context) VPADDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPADDQ_BCST_Z: Add Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPADDQ.BCST.Z m64 xmm k xmm -// VPADDQ.BCST.Z m64 ymm k ymm -// VPADDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPADDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPADDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPADDQ_BCST_Z(m, xyz, k, xyz1) } - -// VPADDQ_Z: Add Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPADDQ.Z m128 xmm k xmm -// VPADDQ.Z m256 ymm k ymm -// VPADDQ.Z xmm xmm k xmm -// VPADDQ.Z ymm ymm k ymm -// VPADDQ.Z m512 zmm k zmm -// VPADDQ.Z zmm zmm k zmm -// -// Construct and append a VPADDQ.Z instruction to the active function. -func (c *Context) VPADDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPADDQ_Z: Add Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPADDQ.Z m128 xmm k xmm -// VPADDQ.Z m256 ymm k ymm -// VPADDQ.Z xmm xmm k xmm -// VPADDQ.Z ymm ymm k ymm -// VPADDQ.Z m512 zmm k zmm -// VPADDQ.Z zmm zmm k zmm -// -// Construct and append a VPADDQ.Z instruction to the active function. -// Operates on the global context. -func VPADDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPADDQ_Z(mxyz, xyz, k, xyz1) } - -// VPADDSB: Add Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// VPADDSB m256 ymm ymm -// VPADDSB ymm ymm ymm -// VPADDSB m128 xmm xmm -// VPADDSB xmm xmm xmm -// VPADDSB m128 xmm k xmm -// VPADDSB m256 ymm k ymm -// VPADDSB xmm xmm k xmm -// VPADDSB ymm ymm k ymm -// VPADDSB m512 zmm k zmm -// VPADDSB m512 zmm zmm -// VPADDSB zmm zmm k zmm -// VPADDSB zmm zmm zmm -// -// Construct and append a VPADDSB instruction to the active function. -func (c *Context) VPADDSB(ops ...operand.Op) { - c.addinstruction(x86.VPADDSB(ops...)) -} - -// VPADDSB: Add Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// VPADDSB m256 ymm ymm -// VPADDSB ymm ymm ymm -// VPADDSB m128 xmm xmm -// VPADDSB xmm xmm xmm -// VPADDSB m128 xmm k xmm -// VPADDSB m256 ymm k ymm -// VPADDSB xmm xmm k xmm -// VPADDSB ymm ymm k ymm -// VPADDSB m512 zmm k zmm -// VPADDSB m512 zmm zmm -// VPADDSB zmm zmm k zmm -// VPADDSB zmm zmm zmm -// -// Construct and append a VPADDSB instruction to the active function. -// Operates on the global context. -func VPADDSB(ops ...operand.Op) { ctx.VPADDSB(ops...) } - -// VPADDSB_Z: Add Packed Signed Byte Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDSB.Z m128 xmm k xmm -// VPADDSB.Z m256 ymm k ymm -// VPADDSB.Z xmm xmm k xmm -// VPADDSB.Z ymm ymm k ymm -// VPADDSB.Z m512 zmm k zmm -// VPADDSB.Z zmm zmm k zmm -// -// Construct and append a VPADDSB.Z instruction to the active function. -func (c *Context) VPADDSB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDSB_Z(mxyz, xyz, k, xyz1)) -} - -// VPADDSB_Z: Add Packed Signed Byte Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDSB.Z m128 xmm k xmm -// VPADDSB.Z m256 ymm k ymm -// VPADDSB.Z xmm xmm k xmm -// VPADDSB.Z ymm ymm k ymm -// VPADDSB.Z m512 zmm k zmm -// VPADDSB.Z zmm zmm k zmm -// -// Construct and append a VPADDSB.Z instruction to the active function. -// Operates on the global context. -func VPADDSB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPADDSB_Z(mxyz, xyz, k, xyz1) } - -// VPADDSW: Add Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPADDSW m256 ymm ymm -// VPADDSW ymm ymm ymm -// VPADDSW m128 xmm xmm -// VPADDSW xmm xmm xmm -// VPADDSW m128 xmm k xmm -// VPADDSW m256 ymm k ymm -// VPADDSW xmm xmm k xmm -// VPADDSW ymm ymm k ymm -// VPADDSW m512 zmm k zmm -// VPADDSW m512 zmm zmm -// VPADDSW zmm zmm k zmm -// VPADDSW zmm zmm zmm -// -// Construct and append a VPADDSW instruction to the active function. -func (c *Context) VPADDSW(ops ...operand.Op) { - c.addinstruction(x86.VPADDSW(ops...)) -} - -// VPADDSW: Add Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPADDSW m256 ymm ymm -// VPADDSW ymm ymm ymm -// VPADDSW m128 xmm xmm -// VPADDSW xmm xmm xmm -// VPADDSW m128 xmm k xmm -// VPADDSW m256 ymm k ymm -// VPADDSW xmm xmm k xmm -// VPADDSW ymm ymm k ymm -// VPADDSW m512 zmm k zmm -// VPADDSW m512 zmm zmm -// VPADDSW zmm zmm k zmm -// VPADDSW zmm zmm zmm -// -// Construct and append a VPADDSW instruction to the active function. -// Operates on the global context. -func VPADDSW(ops ...operand.Op) { ctx.VPADDSW(ops...) } - -// VPADDSW_Z: Add Packed Signed Word Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDSW.Z m128 xmm k xmm -// VPADDSW.Z m256 ymm k ymm -// VPADDSW.Z xmm xmm k xmm -// VPADDSW.Z ymm ymm k ymm -// VPADDSW.Z m512 zmm k zmm -// VPADDSW.Z zmm zmm k zmm -// -// Construct and append a VPADDSW.Z instruction to the active function. -func (c *Context) VPADDSW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDSW_Z(mxyz, xyz, k, xyz1)) -} - -// VPADDSW_Z: Add Packed Signed Word Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDSW.Z m128 xmm k xmm -// VPADDSW.Z m256 ymm k ymm -// VPADDSW.Z xmm xmm k xmm -// VPADDSW.Z ymm ymm k ymm -// VPADDSW.Z m512 zmm k zmm -// VPADDSW.Z zmm zmm k zmm -// -// Construct and append a VPADDSW.Z instruction to the active function. -// Operates on the global context. -func VPADDSW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPADDSW_Z(mxyz, xyz, k, xyz1) } - -// VPADDUSB: Add Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// VPADDUSB m256 ymm ymm -// VPADDUSB ymm ymm ymm -// VPADDUSB m128 xmm xmm -// VPADDUSB xmm xmm xmm -// VPADDUSB m128 xmm k xmm -// VPADDUSB m256 ymm k ymm -// VPADDUSB xmm xmm k xmm -// VPADDUSB ymm ymm k ymm -// VPADDUSB m512 zmm k zmm -// VPADDUSB m512 zmm zmm -// VPADDUSB zmm zmm k zmm -// VPADDUSB zmm zmm zmm -// -// Construct and append a VPADDUSB instruction to the active function. -func (c *Context) VPADDUSB(ops ...operand.Op) { - c.addinstruction(x86.VPADDUSB(ops...)) -} - -// VPADDUSB: Add Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// VPADDUSB m256 ymm ymm -// VPADDUSB ymm ymm ymm -// VPADDUSB m128 xmm xmm -// VPADDUSB xmm xmm xmm -// VPADDUSB m128 xmm k xmm -// VPADDUSB m256 ymm k ymm -// VPADDUSB xmm xmm k xmm -// VPADDUSB ymm ymm k ymm -// VPADDUSB m512 zmm k zmm -// VPADDUSB m512 zmm zmm -// VPADDUSB zmm zmm k zmm -// VPADDUSB zmm zmm zmm -// -// Construct and append a VPADDUSB instruction to the active function. -// Operates on the global context. -func VPADDUSB(ops ...operand.Op) { ctx.VPADDUSB(ops...) } - -// VPADDUSB_Z: Add Packed Unsigned Byte Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDUSB.Z m128 xmm k xmm -// VPADDUSB.Z m256 ymm k ymm -// VPADDUSB.Z xmm xmm k xmm -// VPADDUSB.Z ymm ymm k ymm -// VPADDUSB.Z m512 zmm k zmm -// VPADDUSB.Z zmm zmm k zmm -// -// Construct and append a VPADDUSB.Z instruction to the active function. -func (c *Context) VPADDUSB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDUSB_Z(mxyz, xyz, k, xyz1)) -} - -// VPADDUSB_Z: Add Packed Unsigned Byte Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDUSB.Z m128 xmm k xmm -// VPADDUSB.Z m256 ymm k ymm -// VPADDUSB.Z xmm xmm k xmm -// VPADDUSB.Z ymm ymm k ymm -// VPADDUSB.Z m512 zmm k zmm -// VPADDUSB.Z zmm zmm k zmm -// -// Construct and append a VPADDUSB.Z instruction to the active function. -// Operates on the global context. -func VPADDUSB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPADDUSB_Z(mxyz, xyz, k, xyz1) } - -// VPADDUSW: Add Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// VPADDUSW m256 ymm ymm -// VPADDUSW ymm ymm ymm -// VPADDUSW m128 xmm xmm -// VPADDUSW xmm xmm xmm -// VPADDUSW m128 xmm k xmm -// VPADDUSW m256 ymm k ymm -// VPADDUSW xmm xmm k xmm -// VPADDUSW ymm ymm k ymm -// VPADDUSW m512 zmm k zmm -// VPADDUSW m512 zmm zmm -// VPADDUSW zmm zmm k zmm -// VPADDUSW zmm zmm zmm -// -// Construct and append a VPADDUSW instruction to the active function. -func (c *Context) VPADDUSW(ops ...operand.Op) { - c.addinstruction(x86.VPADDUSW(ops...)) -} - -// VPADDUSW: Add Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// VPADDUSW m256 ymm ymm -// VPADDUSW ymm ymm ymm -// VPADDUSW m128 xmm xmm -// VPADDUSW xmm xmm xmm -// VPADDUSW m128 xmm k xmm -// VPADDUSW m256 ymm k ymm -// VPADDUSW xmm xmm k xmm -// VPADDUSW ymm ymm k ymm -// VPADDUSW m512 zmm k zmm -// VPADDUSW m512 zmm zmm -// VPADDUSW zmm zmm k zmm -// VPADDUSW zmm zmm zmm -// -// Construct and append a VPADDUSW instruction to the active function. -// Operates on the global context. -func VPADDUSW(ops ...operand.Op) { ctx.VPADDUSW(ops...) } - -// VPADDUSW_Z: Add Packed Unsigned Word Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDUSW.Z m128 xmm k xmm -// VPADDUSW.Z m256 ymm k ymm -// VPADDUSW.Z xmm xmm k xmm -// VPADDUSW.Z ymm ymm k ymm -// VPADDUSW.Z m512 zmm k zmm -// VPADDUSW.Z zmm zmm k zmm -// -// Construct and append a VPADDUSW.Z instruction to the active function. -func (c *Context) VPADDUSW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDUSW_Z(mxyz, xyz, k, xyz1)) -} - -// VPADDUSW_Z: Add Packed Unsigned Word Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDUSW.Z m128 xmm k xmm -// VPADDUSW.Z m256 ymm k ymm -// VPADDUSW.Z xmm xmm k xmm -// VPADDUSW.Z ymm ymm k ymm -// VPADDUSW.Z m512 zmm k zmm -// VPADDUSW.Z zmm zmm k zmm -// -// Construct and append a VPADDUSW.Z instruction to the active function. -// Operates on the global context. -func VPADDUSW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPADDUSW_Z(mxyz, xyz, k, xyz1) } - -// VPADDW: Add Packed Word Integers. -// -// Forms: -// -// VPADDW m256 ymm ymm -// VPADDW ymm ymm ymm -// VPADDW m128 xmm xmm -// VPADDW xmm xmm xmm -// VPADDW m128 xmm k xmm -// VPADDW m256 ymm k ymm -// VPADDW xmm xmm k xmm -// VPADDW ymm ymm k ymm -// VPADDW m512 zmm k zmm -// VPADDW m512 zmm zmm -// VPADDW zmm zmm k zmm -// VPADDW zmm zmm zmm -// -// Construct and append a VPADDW instruction to the active function. -func (c *Context) VPADDW(ops ...operand.Op) { - c.addinstruction(x86.VPADDW(ops...)) -} - -// VPADDW: Add Packed Word Integers. -// -// Forms: -// -// VPADDW m256 ymm ymm -// VPADDW ymm ymm ymm -// VPADDW m128 xmm xmm -// VPADDW xmm xmm xmm -// VPADDW m128 xmm k xmm -// VPADDW m256 ymm k ymm -// VPADDW xmm xmm k xmm -// VPADDW ymm ymm k ymm -// VPADDW m512 zmm k zmm -// VPADDW m512 zmm zmm -// VPADDW zmm zmm k zmm -// VPADDW zmm zmm zmm -// -// Construct and append a VPADDW instruction to the active function. -// Operates on the global context. -func VPADDW(ops ...operand.Op) { ctx.VPADDW(ops...) } - -// VPADDW_Z: Add Packed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPADDW.Z m128 xmm k xmm -// VPADDW.Z m256 ymm k ymm -// VPADDW.Z xmm xmm k xmm -// VPADDW.Z ymm ymm k ymm -// VPADDW.Z m512 zmm k zmm -// VPADDW.Z zmm zmm k zmm -// -// Construct and append a VPADDW.Z instruction to the active function. -func (c *Context) VPADDW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPADDW_Z(mxyz, xyz, k, xyz1)) -} - -// VPADDW_Z: Add Packed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPADDW.Z m128 xmm k xmm -// VPADDW.Z m256 ymm k ymm -// VPADDW.Z xmm xmm k xmm -// VPADDW.Z ymm ymm k ymm -// VPADDW.Z m512 zmm k zmm -// VPADDW.Z zmm zmm k zmm -// -// Construct and append a VPADDW.Z instruction to the active function. -// Operates on the global context. -func VPADDW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPADDW_Z(mxyz, xyz, k, xyz1) } - -// VPALIGNR: Packed Align Right. -// -// Forms: -// -// VPALIGNR imm8 m256 ymm ymm -// VPALIGNR imm8 ymm ymm ymm -// VPALIGNR imm8 m128 xmm xmm -// VPALIGNR imm8 xmm xmm xmm -// VPALIGNR imm8 m128 xmm k xmm -// VPALIGNR imm8 m256 ymm k ymm -// VPALIGNR imm8 xmm xmm k xmm -// VPALIGNR imm8 ymm ymm k ymm -// VPALIGNR imm8 m512 zmm k zmm -// VPALIGNR imm8 m512 zmm zmm -// VPALIGNR imm8 zmm zmm k zmm -// VPALIGNR imm8 zmm zmm zmm -// -// Construct and append a VPALIGNR instruction to the active function. -func (c *Context) VPALIGNR(ops ...operand.Op) { - c.addinstruction(x86.VPALIGNR(ops...)) -} - -// VPALIGNR: Packed Align Right. -// -// Forms: -// -// VPALIGNR imm8 m256 ymm ymm -// VPALIGNR imm8 ymm ymm ymm -// VPALIGNR imm8 m128 xmm xmm -// VPALIGNR imm8 xmm xmm xmm -// VPALIGNR imm8 m128 xmm k xmm -// VPALIGNR imm8 m256 ymm k ymm -// VPALIGNR imm8 xmm xmm k xmm -// VPALIGNR imm8 ymm ymm k ymm -// VPALIGNR imm8 m512 zmm k zmm -// VPALIGNR imm8 m512 zmm zmm -// VPALIGNR imm8 zmm zmm k zmm -// VPALIGNR imm8 zmm zmm zmm -// -// Construct and append a VPALIGNR instruction to the active function. -// Operates on the global context. -func VPALIGNR(ops ...operand.Op) { ctx.VPALIGNR(ops...) } - -// VPALIGNR_Z: Packed Align Right (Zeroing Masking). -// -// Forms: -// -// VPALIGNR.Z imm8 m128 xmm k xmm -// VPALIGNR.Z imm8 m256 ymm k ymm -// VPALIGNR.Z imm8 xmm xmm k xmm -// VPALIGNR.Z imm8 ymm ymm k ymm -// VPALIGNR.Z imm8 m512 zmm k zmm -// VPALIGNR.Z imm8 zmm zmm k zmm -// -// Construct and append a VPALIGNR.Z instruction to the active function. -func (c *Context) VPALIGNR_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPALIGNR_Z(i, mxyz, xyz, k, xyz1)) -} - -// VPALIGNR_Z: Packed Align Right (Zeroing Masking). -// -// Forms: -// -// VPALIGNR.Z imm8 m128 xmm k xmm -// VPALIGNR.Z imm8 m256 ymm k ymm -// VPALIGNR.Z imm8 xmm xmm k xmm -// VPALIGNR.Z imm8 ymm ymm k ymm -// VPALIGNR.Z imm8 m512 zmm k zmm -// VPALIGNR.Z imm8 zmm zmm k zmm -// -// Construct and append a VPALIGNR.Z instruction to the active function. -// Operates on the global context. -func VPALIGNR_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPALIGNR_Z(i, mxyz, xyz, k, xyz1) } - -// VPAND: Packed Bitwise Logical AND. -// -// Forms: -// -// VPAND m256 ymm ymm -// VPAND ymm ymm ymm -// VPAND m128 xmm xmm -// VPAND xmm xmm xmm -// -// Construct and append a VPAND instruction to the active function. -func (c *Context) VPAND(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPAND(mxy, xy, xy1)) -} - -// VPAND: Packed Bitwise Logical AND. -// -// Forms: -// -// VPAND m256 ymm ymm -// VPAND ymm ymm ymm -// VPAND m128 xmm xmm -// VPAND xmm xmm xmm -// -// Construct and append a VPAND instruction to the active function. -// Operates on the global context. -func VPAND(mxy, xy, xy1 operand.Op) { ctx.VPAND(mxy, xy, xy1) } - -// VPANDD: Bitwise Logical AND of Packed Doubleword Integers. -// -// Forms: -// -// VPANDD m128 xmm k xmm -// VPANDD m128 xmm xmm -// VPANDD m256 ymm k ymm -// VPANDD m256 ymm ymm -// VPANDD xmm xmm k xmm -// VPANDD xmm xmm xmm -// VPANDD ymm ymm k ymm -// VPANDD ymm ymm ymm -// VPANDD m512 zmm k zmm -// VPANDD m512 zmm zmm -// VPANDD zmm zmm k zmm -// VPANDD zmm zmm zmm -// -// Construct and append a VPANDD instruction to the active function. -func (c *Context) VPANDD(ops ...operand.Op) { - c.addinstruction(x86.VPANDD(ops...)) -} - -// VPANDD: Bitwise Logical AND of Packed Doubleword Integers. -// -// Forms: -// -// VPANDD m128 xmm k xmm -// VPANDD m128 xmm xmm -// VPANDD m256 ymm k ymm -// VPANDD m256 ymm ymm -// VPANDD xmm xmm k xmm -// VPANDD xmm xmm xmm -// VPANDD ymm ymm k ymm -// VPANDD ymm ymm ymm -// VPANDD m512 zmm k zmm -// VPANDD m512 zmm zmm -// VPANDD zmm zmm k zmm -// VPANDD zmm zmm zmm -// -// Construct and append a VPANDD instruction to the active function. -// Operates on the global context. -func VPANDD(ops ...operand.Op) { ctx.VPANDD(ops...) } - -// VPANDD_BCST: Bitwise Logical AND of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPANDD.BCST m32 xmm k xmm -// VPANDD.BCST m32 xmm xmm -// VPANDD.BCST m32 ymm k ymm -// VPANDD.BCST m32 ymm ymm -// VPANDD.BCST m32 zmm k zmm -// VPANDD.BCST m32 zmm zmm -// -// Construct and append a VPANDD.BCST instruction to the active function. -func (c *Context) VPANDD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPANDD_BCST(ops...)) -} - -// VPANDD_BCST: Bitwise Logical AND of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPANDD.BCST m32 xmm k xmm -// VPANDD.BCST m32 xmm xmm -// VPANDD.BCST m32 ymm k ymm -// VPANDD.BCST m32 ymm ymm -// VPANDD.BCST m32 zmm k zmm -// VPANDD.BCST m32 zmm zmm -// -// Construct and append a VPANDD.BCST instruction to the active function. -// Operates on the global context. -func VPANDD_BCST(ops ...operand.Op) { ctx.VPANDD_BCST(ops...) } - -// VPANDD_BCST_Z: Bitwise Logical AND of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDD.BCST.Z m32 xmm k xmm -// VPANDD.BCST.Z m32 ymm k ymm -// VPANDD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPANDD.BCST.Z instruction to the active function. -func (c *Context) VPANDD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPANDD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPANDD_BCST_Z: Bitwise Logical AND of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDD.BCST.Z m32 xmm k xmm -// VPANDD.BCST.Z m32 ymm k ymm -// VPANDD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPANDD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPANDD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPANDD_BCST_Z(m, xyz, k, xyz1) } - -// VPANDD_Z: Bitwise Logical AND of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDD.Z m128 xmm k xmm -// VPANDD.Z m256 ymm k ymm -// VPANDD.Z xmm xmm k xmm -// VPANDD.Z ymm ymm k ymm -// VPANDD.Z m512 zmm k zmm -// VPANDD.Z zmm zmm k zmm -// -// Construct and append a VPANDD.Z instruction to the active function. -func (c *Context) VPANDD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPANDD_Z(mxyz, xyz, k, xyz1)) -} - -// VPANDD_Z: Bitwise Logical AND of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDD.Z m128 xmm k xmm -// VPANDD.Z m256 ymm k ymm -// VPANDD.Z xmm xmm k xmm -// VPANDD.Z ymm ymm k ymm -// VPANDD.Z m512 zmm k zmm -// VPANDD.Z zmm zmm k zmm -// -// Construct and append a VPANDD.Z instruction to the active function. -// Operates on the global context. -func VPANDD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPANDD_Z(mxyz, xyz, k, xyz1) } - -// VPANDN: Packed Bitwise Logical AND NOT. -// -// Forms: -// -// VPANDN m256 ymm ymm -// VPANDN ymm ymm ymm -// VPANDN m128 xmm xmm -// VPANDN xmm xmm xmm -// -// Construct and append a VPANDN instruction to the active function. -func (c *Context) VPANDN(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPANDN(mxy, xy, xy1)) -} - -// VPANDN: Packed Bitwise Logical AND NOT. -// -// Forms: -// -// VPANDN m256 ymm ymm -// VPANDN ymm ymm ymm -// VPANDN m128 xmm xmm -// VPANDN xmm xmm xmm -// -// Construct and append a VPANDN instruction to the active function. -// Operates on the global context. -func VPANDN(mxy, xy, xy1 operand.Op) { ctx.VPANDN(mxy, xy, xy1) } - -// VPANDND: Bitwise Logical AND NOT of Packed Doubleword Integers. -// -// Forms: -// -// VPANDND m128 xmm k xmm -// VPANDND m128 xmm xmm -// VPANDND m256 ymm k ymm -// VPANDND m256 ymm ymm -// VPANDND xmm xmm k xmm -// VPANDND xmm xmm xmm -// VPANDND ymm ymm k ymm -// VPANDND ymm ymm ymm -// VPANDND m512 zmm k zmm -// VPANDND m512 zmm zmm -// VPANDND zmm zmm k zmm -// VPANDND zmm zmm zmm -// -// Construct and append a VPANDND instruction to the active function. -func (c *Context) VPANDND(ops ...operand.Op) { - c.addinstruction(x86.VPANDND(ops...)) -} - -// VPANDND: Bitwise Logical AND NOT of Packed Doubleword Integers. -// -// Forms: -// -// VPANDND m128 xmm k xmm -// VPANDND m128 xmm xmm -// VPANDND m256 ymm k ymm -// VPANDND m256 ymm ymm -// VPANDND xmm xmm k xmm -// VPANDND xmm xmm xmm -// VPANDND ymm ymm k ymm -// VPANDND ymm ymm ymm -// VPANDND m512 zmm k zmm -// VPANDND m512 zmm zmm -// VPANDND zmm zmm k zmm -// VPANDND zmm zmm zmm -// -// Construct and append a VPANDND instruction to the active function. -// Operates on the global context. -func VPANDND(ops ...operand.Op) { ctx.VPANDND(ops...) } - -// VPANDND_BCST: Bitwise Logical AND NOT of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPANDND.BCST m32 xmm k xmm -// VPANDND.BCST m32 xmm xmm -// VPANDND.BCST m32 ymm k ymm -// VPANDND.BCST m32 ymm ymm -// VPANDND.BCST m32 zmm k zmm -// VPANDND.BCST m32 zmm zmm -// -// Construct and append a VPANDND.BCST instruction to the active function. -func (c *Context) VPANDND_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPANDND_BCST(ops...)) -} - -// VPANDND_BCST: Bitwise Logical AND NOT of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPANDND.BCST m32 xmm k xmm -// VPANDND.BCST m32 xmm xmm -// VPANDND.BCST m32 ymm k ymm -// VPANDND.BCST m32 ymm ymm -// VPANDND.BCST m32 zmm k zmm -// VPANDND.BCST m32 zmm zmm -// -// Construct and append a VPANDND.BCST instruction to the active function. -// Operates on the global context. -func VPANDND_BCST(ops ...operand.Op) { ctx.VPANDND_BCST(ops...) } - -// VPANDND_BCST_Z: Bitwise Logical AND NOT of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDND.BCST.Z m32 xmm k xmm -// VPANDND.BCST.Z m32 ymm k ymm -// VPANDND.BCST.Z m32 zmm k zmm -// -// Construct and append a VPANDND.BCST.Z instruction to the active function. -func (c *Context) VPANDND_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPANDND_BCST_Z(m, xyz, k, xyz1)) -} - -// VPANDND_BCST_Z: Bitwise Logical AND NOT of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDND.BCST.Z m32 xmm k xmm -// VPANDND.BCST.Z m32 ymm k ymm -// VPANDND.BCST.Z m32 zmm k zmm -// -// Construct and append a VPANDND.BCST.Z instruction to the active function. -// Operates on the global context. -func VPANDND_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPANDND_BCST_Z(m, xyz, k, xyz1) } - -// VPANDND_Z: Bitwise Logical AND NOT of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDND.Z m128 xmm k xmm -// VPANDND.Z m256 ymm k ymm -// VPANDND.Z xmm xmm k xmm -// VPANDND.Z ymm ymm k ymm -// VPANDND.Z m512 zmm k zmm -// VPANDND.Z zmm zmm k zmm -// -// Construct and append a VPANDND.Z instruction to the active function. -func (c *Context) VPANDND_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPANDND_Z(mxyz, xyz, k, xyz1)) -} - -// VPANDND_Z: Bitwise Logical AND NOT of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDND.Z m128 xmm k xmm -// VPANDND.Z m256 ymm k ymm -// VPANDND.Z xmm xmm k xmm -// VPANDND.Z ymm ymm k ymm -// VPANDND.Z m512 zmm k zmm -// VPANDND.Z zmm zmm k zmm -// -// Construct and append a VPANDND.Z instruction to the active function. -// Operates on the global context. -func VPANDND_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPANDND_Z(mxyz, xyz, k, xyz1) } - -// VPANDNQ: Bitwise Logical AND NOT of Packed Quadword Integers. -// -// Forms: -// -// VPANDNQ m128 xmm k xmm -// VPANDNQ m128 xmm xmm -// VPANDNQ m256 ymm k ymm -// VPANDNQ m256 ymm ymm -// VPANDNQ xmm xmm k xmm -// VPANDNQ xmm xmm xmm -// VPANDNQ ymm ymm k ymm -// VPANDNQ ymm ymm ymm -// VPANDNQ m512 zmm k zmm -// VPANDNQ m512 zmm zmm -// VPANDNQ zmm zmm k zmm -// VPANDNQ zmm zmm zmm -// -// Construct and append a VPANDNQ instruction to the active function. -func (c *Context) VPANDNQ(ops ...operand.Op) { - c.addinstruction(x86.VPANDNQ(ops...)) -} - -// VPANDNQ: Bitwise Logical AND NOT of Packed Quadword Integers. -// -// Forms: -// -// VPANDNQ m128 xmm k xmm -// VPANDNQ m128 xmm xmm -// VPANDNQ m256 ymm k ymm -// VPANDNQ m256 ymm ymm -// VPANDNQ xmm xmm k xmm -// VPANDNQ xmm xmm xmm -// VPANDNQ ymm ymm k ymm -// VPANDNQ ymm ymm ymm -// VPANDNQ m512 zmm k zmm -// VPANDNQ m512 zmm zmm -// VPANDNQ zmm zmm k zmm -// VPANDNQ zmm zmm zmm -// -// Construct and append a VPANDNQ instruction to the active function. -// Operates on the global context. -func VPANDNQ(ops ...operand.Op) { ctx.VPANDNQ(ops...) } - -// VPANDNQ_BCST: Bitwise Logical AND NOT of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPANDNQ.BCST m64 xmm k xmm -// VPANDNQ.BCST m64 xmm xmm -// VPANDNQ.BCST m64 ymm k ymm -// VPANDNQ.BCST m64 ymm ymm -// VPANDNQ.BCST m64 zmm k zmm -// VPANDNQ.BCST m64 zmm zmm -// -// Construct and append a VPANDNQ.BCST instruction to the active function. -func (c *Context) VPANDNQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPANDNQ_BCST(ops...)) -} - -// VPANDNQ_BCST: Bitwise Logical AND NOT of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPANDNQ.BCST m64 xmm k xmm -// VPANDNQ.BCST m64 xmm xmm -// VPANDNQ.BCST m64 ymm k ymm -// VPANDNQ.BCST m64 ymm ymm -// VPANDNQ.BCST m64 zmm k zmm -// VPANDNQ.BCST m64 zmm zmm -// -// Construct and append a VPANDNQ.BCST instruction to the active function. -// Operates on the global context. -func VPANDNQ_BCST(ops ...operand.Op) { ctx.VPANDNQ_BCST(ops...) } - -// VPANDNQ_BCST_Z: Bitwise Logical AND NOT of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDNQ.BCST.Z m64 xmm k xmm -// VPANDNQ.BCST.Z m64 ymm k ymm -// VPANDNQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPANDNQ.BCST.Z instruction to the active function. -func (c *Context) VPANDNQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPANDNQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPANDNQ_BCST_Z: Bitwise Logical AND NOT of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDNQ.BCST.Z m64 xmm k xmm -// VPANDNQ.BCST.Z m64 ymm k ymm -// VPANDNQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPANDNQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPANDNQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPANDNQ_BCST_Z(m, xyz, k, xyz1) } - -// VPANDNQ_Z: Bitwise Logical AND NOT of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDNQ.Z m128 xmm k xmm -// VPANDNQ.Z m256 ymm k ymm -// VPANDNQ.Z xmm xmm k xmm -// VPANDNQ.Z ymm ymm k ymm -// VPANDNQ.Z m512 zmm k zmm -// VPANDNQ.Z zmm zmm k zmm -// -// Construct and append a VPANDNQ.Z instruction to the active function. -func (c *Context) VPANDNQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPANDNQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPANDNQ_Z: Bitwise Logical AND NOT of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDNQ.Z m128 xmm k xmm -// VPANDNQ.Z m256 ymm k ymm -// VPANDNQ.Z xmm xmm k xmm -// VPANDNQ.Z ymm ymm k ymm -// VPANDNQ.Z m512 zmm k zmm -// VPANDNQ.Z zmm zmm k zmm -// -// Construct and append a VPANDNQ.Z instruction to the active function. -// Operates on the global context. -func VPANDNQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPANDNQ_Z(mxyz, xyz, k, xyz1) } - -// VPANDQ: Bitwise Logical AND of Packed Quadword Integers. -// -// Forms: -// -// VPANDQ m128 xmm k xmm -// VPANDQ m128 xmm xmm -// VPANDQ m256 ymm k ymm -// VPANDQ m256 ymm ymm -// VPANDQ xmm xmm k xmm -// VPANDQ xmm xmm xmm -// VPANDQ ymm ymm k ymm -// VPANDQ ymm ymm ymm -// VPANDQ m512 zmm k zmm -// VPANDQ m512 zmm zmm -// VPANDQ zmm zmm k zmm -// VPANDQ zmm zmm zmm -// -// Construct and append a VPANDQ instruction to the active function. -func (c *Context) VPANDQ(ops ...operand.Op) { - c.addinstruction(x86.VPANDQ(ops...)) -} - -// VPANDQ: Bitwise Logical AND of Packed Quadword Integers. -// -// Forms: -// -// VPANDQ m128 xmm k xmm -// VPANDQ m128 xmm xmm -// VPANDQ m256 ymm k ymm -// VPANDQ m256 ymm ymm -// VPANDQ xmm xmm k xmm -// VPANDQ xmm xmm xmm -// VPANDQ ymm ymm k ymm -// VPANDQ ymm ymm ymm -// VPANDQ m512 zmm k zmm -// VPANDQ m512 zmm zmm -// VPANDQ zmm zmm k zmm -// VPANDQ zmm zmm zmm -// -// Construct and append a VPANDQ instruction to the active function. -// Operates on the global context. -func VPANDQ(ops ...operand.Op) { ctx.VPANDQ(ops...) } - -// VPANDQ_BCST: Bitwise Logical AND of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPANDQ.BCST m64 xmm k xmm -// VPANDQ.BCST m64 xmm xmm -// VPANDQ.BCST m64 ymm k ymm -// VPANDQ.BCST m64 ymm ymm -// VPANDQ.BCST m64 zmm k zmm -// VPANDQ.BCST m64 zmm zmm -// -// Construct and append a VPANDQ.BCST instruction to the active function. -func (c *Context) VPANDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPANDQ_BCST(ops...)) -} - -// VPANDQ_BCST: Bitwise Logical AND of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPANDQ.BCST m64 xmm k xmm -// VPANDQ.BCST m64 xmm xmm -// VPANDQ.BCST m64 ymm k ymm -// VPANDQ.BCST m64 ymm ymm -// VPANDQ.BCST m64 zmm k zmm -// VPANDQ.BCST m64 zmm zmm -// -// Construct and append a VPANDQ.BCST instruction to the active function. -// Operates on the global context. -func VPANDQ_BCST(ops ...operand.Op) { ctx.VPANDQ_BCST(ops...) } - -// VPANDQ_BCST_Z: Bitwise Logical AND of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDQ.BCST.Z m64 xmm k xmm -// VPANDQ.BCST.Z m64 ymm k ymm -// VPANDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPANDQ.BCST.Z instruction to the active function. -func (c *Context) VPANDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPANDQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPANDQ_BCST_Z: Bitwise Logical AND of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDQ.BCST.Z m64 xmm k xmm -// VPANDQ.BCST.Z m64 ymm k ymm -// VPANDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPANDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPANDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPANDQ_BCST_Z(m, xyz, k, xyz1) } - -// VPANDQ_Z: Bitwise Logical AND of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDQ.Z m128 xmm k xmm -// VPANDQ.Z m256 ymm k ymm -// VPANDQ.Z xmm xmm k xmm -// VPANDQ.Z ymm ymm k ymm -// VPANDQ.Z m512 zmm k zmm -// VPANDQ.Z zmm zmm k zmm -// -// Construct and append a VPANDQ.Z instruction to the active function. -func (c *Context) VPANDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPANDQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPANDQ_Z: Bitwise Logical AND of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDQ.Z m128 xmm k xmm -// VPANDQ.Z m256 ymm k ymm -// VPANDQ.Z xmm xmm k xmm -// VPANDQ.Z ymm ymm k ymm -// VPANDQ.Z m512 zmm k zmm -// VPANDQ.Z zmm zmm k zmm -// -// Construct and append a VPANDQ.Z instruction to the active function. -// Operates on the global context. -func VPANDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPANDQ_Z(mxyz, xyz, k, xyz1) } - -// VPAVGB: Average Packed Byte Integers. -// -// Forms: -// -// VPAVGB m256 ymm ymm -// VPAVGB ymm ymm ymm -// VPAVGB m128 xmm xmm -// VPAVGB xmm xmm xmm -// VPAVGB m128 xmm k xmm -// VPAVGB m256 ymm k ymm -// VPAVGB xmm xmm k xmm -// VPAVGB ymm ymm k ymm -// VPAVGB m512 zmm k zmm -// VPAVGB m512 zmm zmm -// VPAVGB zmm zmm k zmm -// VPAVGB zmm zmm zmm -// -// Construct and append a VPAVGB instruction to the active function. -func (c *Context) VPAVGB(ops ...operand.Op) { - c.addinstruction(x86.VPAVGB(ops...)) -} - -// VPAVGB: Average Packed Byte Integers. -// -// Forms: -// -// VPAVGB m256 ymm ymm -// VPAVGB ymm ymm ymm -// VPAVGB m128 xmm xmm -// VPAVGB xmm xmm xmm -// VPAVGB m128 xmm k xmm -// VPAVGB m256 ymm k ymm -// VPAVGB xmm xmm k xmm -// VPAVGB ymm ymm k ymm -// VPAVGB m512 zmm k zmm -// VPAVGB m512 zmm zmm -// VPAVGB zmm zmm k zmm -// VPAVGB zmm zmm zmm -// -// Construct and append a VPAVGB instruction to the active function. -// Operates on the global context. -func VPAVGB(ops ...operand.Op) { ctx.VPAVGB(ops...) } - -// VPAVGB_Z: Average Packed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPAVGB.Z m128 xmm k xmm -// VPAVGB.Z m256 ymm k ymm -// VPAVGB.Z xmm xmm k xmm -// VPAVGB.Z ymm ymm k ymm -// VPAVGB.Z m512 zmm k zmm -// VPAVGB.Z zmm zmm k zmm -// -// Construct and append a VPAVGB.Z instruction to the active function. -func (c *Context) VPAVGB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPAVGB_Z(mxyz, xyz, k, xyz1)) -} - -// VPAVGB_Z: Average Packed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPAVGB.Z m128 xmm k xmm -// VPAVGB.Z m256 ymm k ymm -// VPAVGB.Z xmm xmm k xmm -// VPAVGB.Z ymm ymm k ymm -// VPAVGB.Z m512 zmm k zmm -// VPAVGB.Z zmm zmm k zmm -// -// Construct and append a VPAVGB.Z instruction to the active function. -// Operates on the global context. -func VPAVGB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPAVGB_Z(mxyz, xyz, k, xyz1) } - -// VPAVGW: Average Packed Word Integers. -// -// Forms: -// -// VPAVGW m256 ymm ymm -// VPAVGW ymm ymm ymm -// VPAVGW m128 xmm xmm -// VPAVGW xmm xmm xmm -// VPAVGW m128 xmm k xmm -// VPAVGW m256 ymm k ymm -// VPAVGW xmm xmm k xmm -// VPAVGW ymm ymm k ymm -// VPAVGW m512 zmm k zmm -// VPAVGW m512 zmm zmm -// VPAVGW zmm zmm k zmm -// VPAVGW zmm zmm zmm -// -// Construct and append a VPAVGW instruction to the active function. -func (c *Context) VPAVGW(ops ...operand.Op) { - c.addinstruction(x86.VPAVGW(ops...)) -} - -// VPAVGW: Average Packed Word Integers. -// -// Forms: -// -// VPAVGW m256 ymm ymm -// VPAVGW ymm ymm ymm -// VPAVGW m128 xmm xmm -// VPAVGW xmm xmm xmm -// VPAVGW m128 xmm k xmm -// VPAVGW m256 ymm k ymm -// VPAVGW xmm xmm k xmm -// VPAVGW ymm ymm k ymm -// VPAVGW m512 zmm k zmm -// VPAVGW m512 zmm zmm -// VPAVGW zmm zmm k zmm -// VPAVGW zmm zmm zmm -// -// Construct and append a VPAVGW instruction to the active function. -// Operates on the global context. -func VPAVGW(ops ...operand.Op) { ctx.VPAVGW(ops...) } - -// VPAVGW_Z: Average Packed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPAVGW.Z m128 xmm k xmm -// VPAVGW.Z m256 ymm k ymm -// VPAVGW.Z xmm xmm k xmm -// VPAVGW.Z ymm ymm k ymm -// VPAVGW.Z m512 zmm k zmm -// VPAVGW.Z zmm zmm k zmm -// -// Construct and append a VPAVGW.Z instruction to the active function. -func (c *Context) VPAVGW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPAVGW_Z(mxyz, xyz, k, xyz1)) -} - -// VPAVGW_Z: Average Packed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPAVGW.Z m128 xmm k xmm -// VPAVGW.Z m256 ymm k ymm -// VPAVGW.Z xmm xmm k xmm -// VPAVGW.Z ymm ymm k ymm -// VPAVGW.Z m512 zmm k zmm -// VPAVGW.Z zmm zmm k zmm -// -// Construct and append a VPAVGW.Z instruction to the active function. -// Operates on the global context. -func VPAVGW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPAVGW_Z(mxyz, xyz, k, xyz1) } - -// VPBLENDD: Blend Packed Doublewords. -// -// Forms: -// -// VPBLENDD imm8 m128 xmm xmm -// VPBLENDD imm8 m256 ymm ymm -// VPBLENDD imm8 xmm xmm xmm -// VPBLENDD imm8 ymm ymm ymm -// -// Construct and append a VPBLENDD instruction to the active function. -func (c *Context) VPBLENDD(i, mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPBLENDD(i, mxy, xy, xy1)) -} - -// VPBLENDD: Blend Packed Doublewords. -// -// Forms: -// -// VPBLENDD imm8 m128 xmm xmm -// VPBLENDD imm8 m256 ymm ymm -// VPBLENDD imm8 xmm xmm xmm -// VPBLENDD imm8 ymm ymm ymm -// -// Construct and append a VPBLENDD instruction to the active function. -// Operates on the global context. -func VPBLENDD(i, mxy, xy, xy1 operand.Op) { ctx.VPBLENDD(i, mxy, xy, xy1) } - -// VPBLENDMB: Blend Byte Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMB m128 xmm k xmm -// VPBLENDMB m128 xmm xmm -// VPBLENDMB m256 ymm k ymm -// VPBLENDMB m256 ymm ymm -// VPBLENDMB xmm xmm k xmm -// VPBLENDMB xmm xmm xmm -// VPBLENDMB ymm ymm k ymm -// VPBLENDMB ymm ymm ymm -// VPBLENDMB m512 zmm k zmm -// VPBLENDMB m512 zmm zmm -// VPBLENDMB zmm zmm k zmm -// VPBLENDMB zmm zmm zmm -// -// Construct and append a VPBLENDMB instruction to the active function. -func (c *Context) VPBLENDMB(ops ...operand.Op) { - c.addinstruction(x86.VPBLENDMB(ops...)) -} - -// VPBLENDMB: Blend Byte Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMB m128 xmm k xmm -// VPBLENDMB m128 xmm xmm -// VPBLENDMB m256 ymm k ymm -// VPBLENDMB m256 ymm ymm -// VPBLENDMB xmm xmm k xmm -// VPBLENDMB xmm xmm xmm -// VPBLENDMB ymm ymm k ymm -// VPBLENDMB ymm ymm ymm -// VPBLENDMB m512 zmm k zmm -// VPBLENDMB m512 zmm zmm -// VPBLENDMB zmm zmm k zmm -// VPBLENDMB zmm zmm zmm -// -// Construct and append a VPBLENDMB instruction to the active function. -// Operates on the global context. -func VPBLENDMB(ops ...operand.Op) { ctx.VPBLENDMB(ops...) } - -// VPBLENDMB_Z: Blend Byte Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMB.Z m128 xmm k xmm -// VPBLENDMB.Z m256 ymm k ymm -// VPBLENDMB.Z xmm xmm k xmm -// VPBLENDMB.Z ymm ymm k ymm -// VPBLENDMB.Z m512 zmm k zmm -// VPBLENDMB.Z zmm zmm k zmm -// -// Construct and append a VPBLENDMB.Z instruction to the active function. -func (c *Context) VPBLENDMB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPBLENDMB_Z(mxyz, xyz, k, xyz1)) -} - -// VPBLENDMB_Z: Blend Byte Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMB.Z m128 xmm k xmm -// VPBLENDMB.Z m256 ymm k ymm -// VPBLENDMB.Z xmm xmm k xmm -// VPBLENDMB.Z ymm ymm k ymm -// VPBLENDMB.Z m512 zmm k zmm -// VPBLENDMB.Z zmm zmm k zmm -// -// Construct and append a VPBLENDMB.Z instruction to the active function. -// Operates on the global context. -func VPBLENDMB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPBLENDMB_Z(mxyz, xyz, k, xyz1) } - -// VPBLENDMD: Blend Doubleword Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMD m128 xmm k xmm -// VPBLENDMD m128 xmm xmm -// VPBLENDMD m256 ymm k ymm -// VPBLENDMD m256 ymm ymm -// VPBLENDMD xmm xmm k xmm -// VPBLENDMD xmm xmm xmm -// VPBLENDMD ymm ymm k ymm -// VPBLENDMD ymm ymm ymm -// VPBLENDMD m512 zmm k zmm -// VPBLENDMD m512 zmm zmm -// VPBLENDMD zmm zmm k zmm -// VPBLENDMD zmm zmm zmm -// -// Construct and append a VPBLENDMD instruction to the active function. -func (c *Context) VPBLENDMD(ops ...operand.Op) { - c.addinstruction(x86.VPBLENDMD(ops...)) -} - -// VPBLENDMD: Blend Doubleword Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMD m128 xmm k xmm -// VPBLENDMD m128 xmm xmm -// VPBLENDMD m256 ymm k ymm -// VPBLENDMD m256 ymm ymm -// VPBLENDMD xmm xmm k xmm -// VPBLENDMD xmm xmm xmm -// VPBLENDMD ymm ymm k ymm -// VPBLENDMD ymm ymm ymm -// VPBLENDMD m512 zmm k zmm -// VPBLENDMD m512 zmm zmm -// VPBLENDMD zmm zmm k zmm -// VPBLENDMD zmm zmm zmm -// -// Construct and append a VPBLENDMD instruction to the active function. -// Operates on the global context. -func VPBLENDMD(ops ...operand.Op) { ctx.VPBLENDMD(ops...) } - -// VPBLENDMD_BCST: Blend Doubleword Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VPBLENDMD.BCST m32 xmm k xmm -// VPBLENDMD.BCST m32 xmm xmm -// VPBLENDMD.BCST m32 ymm k ymm -// VPBLENDMD.BCST m32 ymm ymm -// VPBLENDMD.BCST m32 zmm k zmm -// VPBLENDMD.BCST m32 zmm zmm -// -// Construct and append a VPBLENDMD.BCST instruction to the active function. -func (c *Context) VPBLENDMD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPBLENDMD_BCST(ops...)) -} - -// VPBLENDMD_BCST: Blend Doubleword Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VPBLENDMD.BCST m32 xmm k xmm -// VPBLENDMD.BCST m32 xmm xmm -// VPBLENDMD.BCST m32 ymm k ymm -// VPBLENDMD.BCST m32 ymm ymm -// VPBLENDMD.BCST m32 zmm k zmm -// VPBLENDMD.BCST m32 zmm zmm -// -// Construct and append a VPBLENDMD.BCST instruction to the active function. -// Operates on the global context. -func VPBLENDMD_BCST(ops ...operand.Op) { ctx.VPBLENDMD_BCST(ops...) } - -// VPBLENDMD_BCST_Z: Blend Doubleword Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPBLENDMD.BCST.Z m32 xmm k xmm -// VPBLENDMD.BCST.Z m32 ymm k ymm -// VPBLENDMD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPBLENDMD.BCST.Z instruction to the active function. -func (c *Context) VPBLENDMD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPBLENDMD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPBLENDMD_BCST_Z: Blend Doubleword Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPBLENDMD.BCST.Z m32 xmm k xmm -// VPBLENDMD.BCST.Z m32 ymm k ymm -// VPBLENDMD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPBLENDMD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPBLENDMD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPBLENDMD_BCST_Z(m, xyz, k, xyz1) } - -// VPBLENDMD_Z: Blend Doubleword Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMD.Z m128 xmm k xmm -// VPBLENDMD.Z m256 ymm k ymm -// VPBLENDMD.Z xmm xmm k xmm -// VPBLENDMD.Z ymm ymm k ymm -// VPBLENDMD.Z m512 zmm k zmm -// VPBLENDMD.Z zmm zmm k zmm -// -// Construct and append a VPBLENDMD.Z instruction to the active function. -func (c *Context) VPBLENDMD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPBLENDMD_Z(mxyz, xyz, k, xyz1)) -} - -// VPBLENDMD_Z: Blend Doubleword Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMD.Z m128 xmm k xmm -// VPBLENDMD.Z m256 ymm k ymm -// VPBLENDMD.Z xmm xmm k xmm -// VPBLENDMD.Z ymm ymm k ymm -// VPBLENDMD.Z m512 zmm k zmm -// VPBLENDMD.Z zmm zmm k zmm -// -// Construct and append a VPBLENDMD.Z instruction to the active function. -// Operates on the global context. -func VPBLENDMD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPBLENDMD_Z(mxyz, xyz, k, xyz1) } - -// VPBLENDMQ: Blend Quadword Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMQ m128 xmm k xmm -// VPBLENDMQ m128 xmm xmm -// VPBLENDMQ m256 ymm k ymm -// VPBLENDMQ m256 ymm ymm -// VPBLENDMQ xmm xmm k xmm -// VPBLENDMQ xmm xmm xmm -// VPBLENDMQ ymm ymm k ymm -// VPBLENDMQ ymm ymm ymm -// VPBLENDMQ m512 zmm k zmm -// VPBLENDMQ m512 zmm zmm -// VPBLENDMQ zmm zmm k zmm -// VPBLENDMQ zmm zmm zmm -// -// Construct and append a VPBLENDMQ instruction to the active function. -func (c *Context) VPBLENDMQ(ops ...operand.Op) { - c.addinstruction(x86.VPBLENDMQ(ops...)) -} - -// VPBLENDMQ: Blend Quadword Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMQ m128 xmm k xmm -// VPBLENDMQ m128 xmm xmm -// VPBLENDMQ m256 ymm k ymm -// VPBLENDMQ m256 ymm ymm -// VPBLENDMQ xmm xmm k xmm -// VPBLENDMQ xmm xmm xmm -// VPBLENDMQ ymm ymm k ymm -// VPBLENDMQ ymm ymm ymm -// VPBLENDMQ m512 zmm k zmm -// VPBLENDMQ m512 zmm zmm -// VPBLENDMQ zmm zmm k zmm -// VPBLENDMQ zmm zmm zmm -// -// Construct and append a VPBLENDMQ instruction to the active function. -// Operates on the global context. -func VPBLENDMQ(ops ...operand.Op) { ctx.VPBLENDMQ(ops...) } - -// VPBLENDMQ_BCST: Blend Quadword Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VPBLENDMQ.BCST m64 xmm k xmm -// VPBLENDMQ.BCST m64 xmm xmm -// VPBLENDMQ.BCST m64 ymm k ymm -// VPBLENDMQ.BCST m64 ymm ymm -// VPBLENDMQ.BCST m64 zmm k zmm -// VPBLENDMQ.BCST m64 zmm zmm -// -// Construct and append a VPBLENDMQ.BCST instruction to the active function. -func (c *Context) VPBLENDMQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPBLENDMQ_BCST(ops...)) -} - -// VPBLENDMQ_BCST: Blend Quadword Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VPBLENDMQ.BCST m64 xmm k xmm -// VPBLENDMQ.BCST m64 xmm xmm -// VPBLENDMQ.BCST m64 ymm k ymm -// VPBLENDMQ.BCST m64 ymm ymm -// VPBLENDMQ.BCST m64 zmm k zmm -// VPBLENDMQ.BCST m64 zmm zmm -// -// Construct and append a VPBLENDMQ.BCST instruction to the active function. -// Operates on the global context. -func VPBLENDMQ_BCST(ops ...operand.Op) { ctx.VPBLENDMQ_BCST(ops...) } - -// VPBLENDMQ_BCST_Z: Blend Quadword Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPBLENDMQ.BCST.Z m64 xmm k xmm -// VPBLENDMQ.BCST.Z m64 ymm k ymm -// VPBLENDMQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPBLENDMQ.BCST.Z instruction to the active function. -func (c *Context) VPBLENDMQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPBLENDMQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPBLENDMQ_BCST_Z: Blend Quadword Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPBLENDMQ.BCST.Z m64 xmm k xmm -// VPBLENDMQ.BCST.Z m64 ymm k ymm -// VPBLENDMQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPBLENDMQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPBLENDMQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPBLENDMQ_BCST_Z(m, xyz, k, xyz1) } - -// VPBLENDMQ_Z: Blend Quadword Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMQ.Z m128 xmm k xmm -// VPBLENDMQ.Z m256 ymm k ymm -// VPBLENDMQ.Z xmm xmm k xmm -// VPBLENDMQ.Z ymm ymm k ymm -// VPBLENDMQ.Z m512 zmm k zmm -// VPBLENDMQ.Z zmm zmm k zmm -// -// Construct and append a VPBLENDMQ.Z instruction to the active function. -func (c *Context) VPBLENDMQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPBLENDMQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPBLENDMQ_Z: Blend Quadword Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMQ.Z m128 xmm k xmm -// VPBLENDMQ.Z m256 ymm k ymm -// VPBLENDMQ.Z xmm xmm k xmm -// VPBLENDMQ.Z ymm ymm k ymm -// VPBLENDMQ.Z m512 zmm k zmm -// VPBLENDMQ.Z zmm zmm k zmm -// -// Construct and append a VPBLENDMQ.Z instruction to the active function. -// Operates on the global context. -func VPBLENDMQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPBLENDMQ_Z(mxyz, xyz, k, xyz1) } - -// VPBLENDMW: Blend Word Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMW m128 xmm k xmm -// VPBLENDMW m128 xmm xmm -// VPBLENDMW m256 ymm k ymm -// VPBLENDMW m256 ymm ymm -// VPBLENDMW xmm xmm k xmm -// VPBLENDMW xmm xmm xmm -// VPBLENDMW ymm ymm k ymm -// VPBLENDMW ymm ymm ymm -// VPBLENDMW m512 zmm k zmm -// VPBLENDMW m512 zmm zmm -// VPBLENDMW zmm zmm k zmm -// VPBLENDMW zmm zmm zmm -// -// Construct and append a VPBLENDMW instruction to the active function. -func (c *Context) VPBLENDMW(ops ...operand.Op) { - c.addinstruction(x86.VPBLENDMW(ops...)) -} - -// VPBLENDMW: Blend Word Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMW m128 xmm k xmm -// VPBLENDMW m128 xmm xmm -// VPBLENDMW m256 ymm k ymm -// VPBLENDMW m256 ymm ymm -// VPBLENDMW xmm xmm k xmm -// VPBLENDMW xmm xmm xmm -// VPBLENDMW ymm ymm k ymm -// VPBLENDMW ymm ymm ymm -// VPBLENDMW m512 zmm k zmm -// VPBLENDMW m512 zmm zmm -// VPBLENDMW zmm zmm k zmm -// VPBLENDMW zmm zmm zmm -// -// Construct and append a VPBLENDMW instruction to the active function. -// Operates on the global context. -func VPBLENDMW(ops ...operand.Op) { ctx.VPBLENDMW(ops...) } - -// VPBLENDMW_Z: Blend Word Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMW.Z m128 xmm k xmm -// VPBLENDMW.Z m256 ymm k ymm -// VPBLENDMW.Z xmm xmm k xmm -// VPBLENDMW.Z ymm ymm k ymm -// VPBLENDMW.Z m512 zmm k zmm -// VPBLENDMW.Z zmm zmm k zmm -// -// Construct and append a VPBLENDMW.Z instruction to the active function. -func (c *Context) VPBLENDMW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPBLENDMW_Z(mxyz, xyz, k, xyz1)) -} - -// VPBLENDMW_Z: Blend Word Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMW.Z m128 xmm k xmm -// VPBLENDMW.Z m256 ymm k ymm -// VPBLENDMW.Z xmm xmm k xmm -// VPBLENDMW.Z ymm ymm k ymm -// VPBLENDMW.Z m512 zmm k zmm -// VPBLENDMW.Z zmm zmm k zmm -// -// Construct and append a VPBLENDMW.Z instruction to the active function. -// Operates on the global context. -func VPBLENDMW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPBLENDMW_Z(mxyz, xyz, k, xyz1) } - -// VPBLENDVB: Variable Blend Packed Bytes. -// -// Forms: -// -// VPBLENDVB ymm m256 ymm ymm -// VPBLENDVB ymm ymm ymm ymm -// VPBLENDVB xmm m128 xmm xmm -// VPBLENDVB xmm xmm xmm xmm -// -// Construct and append a VPBLENDVB instruction to the active function. -func (c *Context) VPBLENDVB(xy, mxy, xy1, xy2 operand.Op) { - c.addinstruction(x86.VPBLENDVB(xy, mxy, xy1, xy2)) -} - -// VPBLENDVB: Variable Blend Packed Bytes. -// -// Forms: -// -// VPBLENDVB ymm m256 ymm ymm -// VPBLENDVB ymm ymm ymm ymm -// VPBLENDVB xmm m128 xmm xmm -// VPBLENDVB xmm xmm xmm xmm -// -// Construct and append a VPBLENDVB instruction to the active function. -// Operates on the global context. -func VPBLENDVB(xy, mxy, xy1, xy2 operand.Op) { ctx.VPBLENDVB(xy, mxy, xy1, xy2) } - -// VPBLENDW: Blend Packed Words. -// -// Forms: -// -// VPBLENDW imm8 m256 ymm ymm -// VPBLENDW imm8 ymm ymm ymm -// VPBLENDW imm8 m128 xmm xmm -// VPBLENDW imm8 xmm xmm xmm -// -// Construct and append a VPBLENDW instruction to the active function. -func (c *Context) VPBLENDW(i, mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPBLENDW(i, mxy, xy, xy1)) -} - -// VPBLENDW: Blend Packed Words. -// -// Forms: -// -// VPBLENDW imm8 m256 ymm ymm -// VPBLENDW imm8 ymm ymm ymm -// VPBLENDW imm8 m128 xmm xmm -// VPBLENDW imm8 xmm xmm xmm -// -// Construct and append a VPBLENDW instruction to the active function. -// Operates on the global context. -func VPBLENDW(i, mxy, xy, xy1 operand.Op) { ctx.VPBLENDW(i, mxy, xy, xy1) } - -// VPBROADCASTB: Broadcast Byte Integer. -// -// Forms: -// -// VPBROADCASTB m8 xmm -// VPBROADCASTB m8 ymm -// VPBROADCASTB xmm xmm -// VPBROADCASTB xmm ymm -// VPBROADCASTB m8 k xmm -// VPBROADCASTB m8 k ymm -// VPBROADCASTB r32 k xmm -// VPBROADCASTB r32 k ymm -// VPBROADCASTB r32 xmm -// VPBROADCASTB r32 ymm -// VPBROADCASTB xmm k xmm -// VPBROADCASTB xmm k ymm -// VPBROADCASTB m8 k zmm -// VPBROADCASTB m8 zmm -// VPBROADCASTB r32 k zmm -// VPBROADCASTB r32 zmm -// VPBROADCASTB xmm k zmm -// VPBROADCASTB xmm zmm -// -// Construct and append a VPBROADCASTB instruction to the active function. -func (c *Context) VPBROADCASTB(ops ...operand.Op) { - c.addinstruction(x86.VPBROADCASTB(ops...)) -} - -// VPBROADCASTB: Broadcast Byte Integer. -// -// Forms: -// -// VPBROADCASTB m8 xmm -// VPBROADCASTB m8 ymm -// VPBROADCASTB xmm xmm -// VPBROADCASTB xmm ymm -// VPBROADCASTB m8 k xmm -// VPBROADCASTB m8 k ymm -// VPBROADCASTB r32 k xmm -// VPBROADCASTB r32 k ymm -// VPBROADCASTB r32 xmm -// VPBROADCASTB r32 ymm -// VPBROADCASTB xmm k xmm -// VPBROADCASTB xmm k ymm -// VPBROADCASTB m8 k zmm -// VPBROADCASTB m8 zmm -// VPBROADCASTB r32 k zmm -// VPBROADCASTB r32 zmm -// VPBROADCASTB xmm k zmm -// VPBROADCASTB xmm zmm -// -// Construct and append a VPBROADCASTB instruction to the active function. -// Operates on the global context. -func VPBROADCASTB(ops ...operand.Op) { ctx.VPBROADCASTB(ops...) } - -// VPBROADCASTB_Z: Broadcast Byte Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTB.Z m8 k xmm -// VPBROADCASTB.Z m8 k ymm -// VPBROADCASTB.Z r32 k xmm -// VPBROADCASTB.Z r32 k ymm -// VPBROADCASTB.Z xmm k xmm -// VPBROADCASTB.Z xmm k ymm -// VPBROADCASTB.Z m8 k zmm -// VPBROADCASTB.Z r32 k zmm -// VPBROADCASTB.Z xmm k zmm -// -// Construct and append a VPBROADCASTB.Z instruction to the active function. -func (c *Context) VPBROADCASTB_Z(mrx, k, xyz operand.Op) { - c.addinstruction(x86.VPBROADCASTB_Z(mrx, k, xyz)) -} - -// VPBROADCASTB_Z: Broadcast Byte Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTB.Z m8 k xmm -// VPBROADCASTB.Z m8 k ymm -// VPBROADCASTB.Z r32 k xmm -// VPBROADCASTB.Z r32 k ymm -// VPBROADCASTB.Z xmm k xmm -// VPBROADCASTB.Z xmm k ymm -// VPBROADCASTB.Z m8 k zmm -// VPBROADCASTB.Z r32 k zmm -// VPBROADCASTB.Z xmm k zmm -// -// Construct and append a VPBROADCASTB.Z instruction to the active function. -// Operates on the global context. -func VPBROADCASTB_Z(mrx, k, xyz operand.Op) { ctx.VPBROADCASTB_Z(mrx, k, xyz) } - -// VPBROADCASTD: Broadcast Doubleword Integer. -// -// Forms: -// -// VPBROADCASTD m32 xmm -// VPBROADCASTD m32 ymm -// VPBROADCASTD xmm xmm -// VPBROADCASTD xmm ymm -// VPBROADCASTD m32 k xmm -// VPBROADCASTD m32 k ymm -// VPBROADCASTD r32 k xmm -// VPBROADCASTD r32 k ymm -// VPBROADCASTD r32 xmm -// VPBROADCASTD r32 ymm -// VPBROADCASTD xmm k xmm -// VPBROADCASTD xmm k ymm -// VPBROADCASTD m32 k zmm -// VPBROADCASTD m32 zmm -// VPBROADCASTD r32 k zmm -// VPBROADCASTD r32 zmm -// VPBROADCASTD xmm k zmm -// VPBROADCASTD xmm zmm -// -// Construct and append a VPBROADCASTD instruction to the active function. -func (c *Context) VPBROADCASTD(ops ...operand.Op) { - c.addinstruction(x86.VPBROADCASTD(ops...)) -} - -// VPBROADCASTD: Broadcast Doubleword Integer. -// -// Forms: -// -// VPBROADCASTD m32 xmm -// VPBROADCASTD m32 ymm -// VPBROADCASTD xmm xmm -// VPBROADCASTD xmm ymm -// VPBROADCASTD m32 k xmm -// VPBROADCASTD m32 k ymm -// VPBROADCASTD r32 k xmm -// VPBROADCASTD r32 k ymm -// VPBROADCASTD r32 xmm -// VPBROADCASTD r32 ymm -// VPBROADCASTD xmm k xmm -// VPBROADCASTD xmm k ymm -// VPBROADCASTD m32 k zmm -// VPBROADCASTD m32 zmm -// VPBROADCASTD r32 k zmm -// VPBROADCASTD r32 zmm -// VPBROADCASTD xmm k zmm -// VPBROADCASTD xmm zmm -// -// Construct and append a VPBROADCASTD instruction to the active function. -// Operates on the global context. -func VPBROADCASTD(ops ...operand.Op) { ctx.VPBROADCASTD(ops...) } - -// VPBROADCASTD_Z: Broadcast Doubleword Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTD.Z m32 k xmm -// VPBROADCASTD.Z m32 k ymm -// VPBROADCASTD.Z r32 k xmm -// VPBROADCASTD.Z r32 k ymm -// VPBROADCASTD.Z xmm k xmm -// VPBROADCASTD.Z xmm k ymm -// VPBROADCASTD.Z m32 k zmm -// VPBROADCASTD.Z r32 k zmm -// VPBROADCASTD.Z xmm k zmm -// -// Construct and append a VPBROADCASTD.Z instruction to the active function. -func (c *Context) VPBROADCASTD_Z(mrx, k, xyz operand.Op) { - c.addinstruction(x86.VPBROADCASTD_Z(mrx, k, xyz)) -} - -// VPBROADCASTD_Z: Broadcast Doubleword Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTD.Z m32 k xmm -// VPBROADCASTD.Z m32 k ymm -// VPBROADCASTD.Z r32 k xmm -// VPBROADCASTD.Z r32 k ymm -// VPBROADCASTD.Z xmm k xmm -// VPBROADCASTD.Z xmm k ymm -// VPBROADCASTD.Z m32 k zmm -// VPBROADCASTD.Z r32 k zmm -// VPBROADCASTD.Z xmm k zmm -// -// Construct and append a VPBROADCASTD.Z instruction to the active function. -// Operates on the global context. -func VPBROADCASTD_Z(mrx, k, xyz operand.Op) { ctx.VPBROADCASTD_Z(mrx, k, xyz) } - -// VPBROADCASTMB2Q: Broadcast Low Byte of Mask Register to Packed Quadword Values. -// -// Forms: -// -// VPBROADCASTMB2Q k xmm -// VPBROADCASTMB2Q k ymm -// VPBROADCASTMB2Q k zmm -// -// Construct and append a VPBROADCASTMB2Q instruction to the active function. -func (c *Context) VPBROADCASTMB2Q(k, xyz operand.Op) { - c.addinstruction(x86.VPBROADCASTMB2Q(k, xyz)) -} - -// VPBROADCASTMB2Q: Broadcast Low Byte of Mask Register to Packed Quadword Values. -// -// Forms: -// -// VPBROADCASTMB2Q k xmm -// VPBROADCASTMB2Q k ymm -// VPBROADCASTMB2Q k zmm -// -// Construct and append a VPBROADCASTMB2Q instruction to the active function. -// Operates on the global context. -func VPBROADCASTMB2Q(k, xyz operand.Op) { ctx.VPBROADCASTMB2Q(k, xyz) } - -// VPBROADCASTMW2D: Broadcast Low Word of Mask Register to Packed Doubleword Values. -// -// Forms: -// -// VPBROADCASTMW2D k xmm -// VPBROADCASTMW2D k ymm -// VPBROADCASTMW2D k zmm -// -// Construct and append a VPBROADCASTMW2D instruction to the active function. -func (c *Context) VPBROADCASTMW2D(k, xyz operand.Op) { - c.addinstruction(x86.VPBROADCASTMW2D(k, xyz)) -} - -// VPBROADCASTMW2D: Broadcast Low Word of Mask Register to Packed Doubleword Values. -// -// Forms: -// -// VPBROADCASTMW2D k xmm -// VPBROADCASTMW2D k ymm -// VPBROADCASTMW2D k zmm -// -// Construct and append a VPBROADCASTMW2D instruction to the active function. -// Operates on the global context. -func VPBROADCASTMW2D(k, xyz operand.Op) { ctx.VPBROADCASTMW2D(k, xyz) } - -// VPBROADCASTQ: Broadcast Quadword Integer. -// -// Forms: -// -// VPBROADCASTQ m64 xmm -// VPBROADCASTQ m64 ymm -// VPBROADCASTQ xmm xmm -// VPBROADCASTQ xmm ymm -// VPBROADCASTQ m64 k xmm -// VPBROADCASTQ m64 k ymm -// VPBROADCASTQ r64 k xmm -// VPBROADCASTQ r64 k ymm -// VPBROADCASTQ r64 xmm -// VPBROADCASTQ r64 ymm -// VPBROADCASTQ xmm k xmm -// VPBROADCASTQ xmm k ymm -// VPBROADCASTQ m64 k zmm -// VPBROADCASTQ m64 zmm -// VPBROADCASTQ r64 k zmm -// VPBROADCASTQ r64 zmm -// VPBROADCASTQ xmm k zmm -// VPBROADCASTQ xmm zmm -// -// Construct and append a VPBROADCASTQ instruction to the active function. -func (c *Context) VPBROADCASTQ(ops ...operand.Op) { - c.addinstruction(x86.VPBROADCASTQ(ops...)) -} - -// VPBROADCASTQ: Broadcast Quadword Integer. -// -// Forms: -// -// VPBROADCASTQ m64 xmm -// VPBROADCASTQ m64 ymm -// VPBROADCASTQ xmm xmm -// VPBROADCASTQ xmm ymm -// VPBROADCASTQ m64 k xmm -// VPBROADCASTQ m64 k ymm -// VPBROADCASTQ r64 k xmm -// VPBROADCASTQ r64 k ymm -// VPBROADCASTQ r64 xmm -// VPBROADCASTQ r64 ymm -// VPBROADCASTQ xmm k xmm -// VPBROADCASTQ xmm k ymm -// VPBROADCASTQ m64 k zmm -// VPBROADCASTQ m64 zmm -// VPBROADCASTQ r64 k zmm -// VPBROADCASTQ r64 zmm -// VPBROADCASTQ xmm k zmm -// VPBROADCASTQ xmm zmm -// -// Construct and append a VPBROADCASTQ instruction to the active function. -// Operates on the global context. -func VPBROADCASTQ(ops ...operand.Op) { ctx.VPBROADCASTQ(ops...) } - -// VPBROADCASTQ_Z: Broadcast Quadword Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTQ.Z m64 k xmm -// VPBROADCASTQ.Z m64 k ymm -// VPBROADCASTQ.Z r64 k xmm -// VPBROADCASTQ.Z r64 k ymm -// VPBROADCASTQ.Z xmm k xmm -// VPBROADCASTQ.Z xmm k ymm -// VPBROADCASTQ.Z m64 k zmm -// VPBROADCASTQ.Z r64 k zmm -// VPBROADCASTQ.Z xmm k zmm -// -// Construct and append a VPBROADCASTQ.Z instruction to the active function. -func (c *Context) VPBROADCASTQ_Z(mrx, k, xyz operand.Op) { - c.addinstruction(x86.VPBROADCASTQ_Z(mrx, k, xyz)) -} - -// VPBROADCASTQ_Z: Broadcast Quadword Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTQ.Z m64 k xmm -// VPBROADCASTQ.Z m64 k ymm -// VPBROADCASTQ.Z r64 k xmm -// VPBROADCASTQ.Z r64 k ymm -// VPBROADCASTQ.Z xmm k xmm -// VPBROADCASTQ.Z xmm k ymm -// VPBROADCASTQ.Z m64 k zmm -// VPBROADCASTQ.Z r64 k zmm -// VPBROADCASTQ.Z xmm k zmm -// -// Construct and append a VPBROADCASTQ.Z instruction to the active function. -// Operates on the global context. -func VPBROADCASTQ_Z(mrx, k, xyz operand.Op) { ctx.VPBROADCASTQ_Z(mrx, k, xyz) } - -// VPBROADCASTW: Broadcast Word Integer. -// -// Forms: -// -// VPBROADCASTW m16 xmm -// VPBROADCASTW m16 ymm -// VPBROADCASTW xmm xmm -// VPBROADCASTW xmm ymm -// VPBROADCASTW m16 k xmm -// VPBROADCASTW m16 k ymm -// VPBROADCASTW r32 k xmm -// VPBROADCASTW r32 k ymm -// VPBROADCASTW r32 xmm -// VPBROADCASTW r32 ymm -// VPBROADCASTW xmm k xmm -// VPBROADCASTW xmm k ymm -// VPBROADCASTW m16 k zmm -// VPBROADCASTW m16 zmm -// VPBROADCASTW r32 k zmm -// VPBROADCASTW r32 zmm -// VPBROADCASTW xmm k zmm -// VPBROADCASTW xmm zmm -// -// Construct and append a VPBROADCASTW instruction to the active function. -func (c *Context) VPBROADCASTW(ops ...operand.Op) { - c.addinstruction(x86.VPBROADCASTW(ops...)) -} - -// VPBROADCASTW: Broadcast Word Integer. -// -// Forms: -// -// VPBROADCASTW m16 xmm -// VPBROADCASTW m16 ymm -// VPBROADCASTW xmm xmm -// VPBROADCASTW xmm ymm -// VPBROADCASTW m16 k xmm -// VPBROADCASTW m16 k ymm -// VPBROADCASTW r32 k xmm -// VPBROADCASTW r32 k ymm -// VPBROADCASTW r32 xmm -// VPBROADCASTW r32 ymm -// VPBROADCASTW xmm k xmm -// VPBROADCASTW xmm k ymm -// VPBROADCASTW m16 k zmm -// VPBROADCASTW m16 zmm -// VPBROADCASTW r32 k zmm -// VPBROADCASTW r32 zmm -// VPBROADCASTW xmm k zmm -// VPBROADCASTW xmm zmm -// -// Construct and append a VPBROADCASTW instruction to the active function. -// Operates on the global context. -func VPBROADCASTW(ops ...operand.Op) { ctx.VPBROADCASTW(ops...) } - -// VPBROADCASTW_Z: Broadcast Word Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTW.Z m16 k xmm -// VPBROADCASTW.Z m16 k ymm -// VPBROADCASTW.Z r32 k xmm -// VPBROADCASTW.Z r32 k ymm -// VPBROADCASTW.Z xmm k xmm -// VPBROADCASTW.Z xmm k ymm -// VPBROADCASTW.Z m16 k zmm -// VPBROADCASTW.Z r32 k zmm -// VPBROADCASTW.Z xmm k zmm -// -// Construct and append a VPBROADCASTW.Z instruction to the active function. -func (c *Context) VPBROADCASTW_Z(mrx, k, xyz operand.Op) { - c.addinstruction(x86.VPBROADCASTW_Z(mrx, k, xyz)) -} - -// VPBROADCASTW_Z: Broadcast Word Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTW.Z m16 k xmm -// VPBROADCASTW.Z m16 k ymm -// VPBROADCASTW.Z r32 k xmm -// VPBROADCASTW.Z r32 k ymm -// VPBROADCASTW.Z xmm k xmm -// VPBROADCASTW.Z xmm k ymm -// VPBROADCASTW.Z m16 k zmm -// VPBROADCASTW.Z r32 k zmm -// VPBROADCASTW.Z xmm k zmm -// -// Construct and append a VPBROADCASTW.Z instruction to the active function. -// Operates on the global context. -func VPBROADCASTW_Z(mrx, k, xyz operand.Op) { ctx.VPBROADCASTW_Z(mrx, k, xyz) } - -// VPCLMULQDQ: Carry-Less Quadword Multiplication. -// -// Forms: -// -// VPCLMULQDQ imm8 m128 xmm xmm -// VPCLMULQDQ imm8 xmm xmm xmm -// VPCLMULQDQ imm8 m256 ymm ymm -// VPCLMULQDQ imm8 ymm ymm ymm -// VPCLMULQDQ imm8 m512 zmm zmm -// VPCLMULQDQ imm8 zmm zmm zmm -// -// Construct and append a VPCLMULQDQ instruction to the active function. -func (c *Context) VPCLMULQDQ(i, mxyz, xyz, xyz1 operand.Op) { - c.addinstruction(x86.VPCLMULQDQ(i, mxyz, xyz, xyz1)) -} - -// VPCLMULQDQ: Carry-Less Quadword Multiplication. -// -// Forms: -// -// VPCLMULQDQ imm8 m128 xmm xmm -// VPCLMULQDQ imm8 xmm xmm xmm -// VPCLMULQDQ imm8 m256 ymm ymm -// VPCLMULQDQ imm8 ymm ymm ymm -// VPCLMULQDQ imm8 m512 zmm zmm -// VPCLMULQDQ imm8 zmm zmm zmm -// -// Construct and append a VPCLMULQDQ instruction to the active function. -// Operates on the global context. -func VPCLMULQDQ(i, mxyz, xyz, xyz1 operand.Op) { ctx.VPCLMULQDQ(i, mxyz, xyz, xyz1) } - -// VPCMPB: Compare Packed Signed Byte Values. -// -// Forms: -// -// VPCMPB imm8 m128 xmm k k -// VPCMPB imm8 m128 xmm k -// VPCMPB imm8 m256 ymm k k -// VPCMPB imm8 m256 ymm k -// VPCMPB imm8 xmm xmm k k -// VPCMPB imm8 xmm xmm k -// VPCMPB imm8 ymm ymm k k -// VPCMPB imm8 ymm ymm k -// VPCMPB imm8 m512 zmm k k -// VPCMPB imm8 m512 zmm k -// VPCMPB imm8 zmm zmm k k -// VPCMPB imm8 zmm zmm k -// -// Construct and append a VPCMPB instruction to the active function. -func (c *Context) VPCMPB(ops ...operand.Op) { - c.addinstruction(x86.VPCMPB(ops...)) -} - -// VPCMPB: Compare Packed Signed Byte Values. -// -// Forms: -// -// VPCMPB imm8 m128 xmm k k -// VPCMPB imm8 m128 xmm k -// VPCMPB imm8 m256 ymm k k -// VPCMPB imm8 m256 ymm k -// VPCMPB imm8 xmm xmm k k -// VPCMPB imm8 xmm xmm k -// VPCMPB imm8 ymm ymm k k -// VPCMPB imm8 ymm ymm k -// VPCMPB imm8 m512 zmm k k -// VPCMPB imm8 m512 zmm k -// VPCMPB imm8 zmm zmm k k -// VPCMPB imm8 zmm zmm k -// -// Construct and append a VPCMPB instruction to the active function. -// Operates on the global context. -func VPCMPB(ops ...operand.Op) { ctx.VPCMPB(ops...) } - -// VPCMPD: Compare Packed Signed Doubleword Values. -// -// Forms: -// -// VPCMPD imm8 m128 xmm k k -// VPCMPD imm8 m128 xmm k -// VPCMPD imm8 m256 ymm k k -// VPCMPD imm8 m256 ymm k -// VPCMPD imm8 xmm xmm k k -// VPCMPD imm8 xmm xmm k -// VPCMPD imm8 ymm ymm k k -// VPCMPD imm8 ymm ymm k -// VPCMPD imm8 m512 zmm k k -// VPCMPD imm8 m512 zmm k -// VPCMPD imm8 zmm zmm k k -// VPCMPD imm8 zmm zmm k -// -// Construct and append a VPCMPD instruction to the active function. -func (c *Context) VPCMPD(ops ...operand.Op) { - c.addinstruction(x86.VPCMPD(ops...)) -} - -// VPCMPD: Compare Packed Signed Doubleword Values. -// -// Forms: -// -// VPCMPD imm8 m128 xmm k k -// VPCMPD imm8 m128 xmm k -// VPCMPD imm8 m256 ymm k k -// VPCMPD imm8 m256 ymm k -// VPCMPD imm8 xmm xmm k k -// VPCMPD imm8 xmm xmm k -// VPCMPD imm8 ymm ymm k k -// VPCMPD imm8 ymm ymm k -// VPCMPD imm8 m512 zmm k k -// VPCMPD imm8 m512 zmm k -// VPCMPD imm8 zmm zmm k k -// VPCMPD imm8 zmm zmm k -// -// Construct and append a VPCMPD instruction to the active function. -// Operates on the global context. -func VPCMPD(ops ...operand.Op) { ctx.VPCMPD(ops...) } - -// VPCMPD_BCST: Compare Packed Signed Doubleword Values (Broadcast). -// -// Forms: -// -// VPCMPD.BCST imm8 m32 xmm k k -// VPCMPD.BCST imm8 m32 xmm k -// VPCMPD.BCST imm8 m32 ymm k k -// VPCMPD.BCST imm8 m32 ymm k -// VPCMPD.BCST imm8 m32 zmm k k -// VPCMPD.BCST imm8 m32 zmm k -// -// Construct and append a VPCMPD.BCST instruction to the active function. -func (c *Context) VPCMPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCMPD_BCST(ops...)) -} - -// VPCMPD_BCST: Compare Packed Signed Doubleword Values (Broadcast). -// -// Forms: -// -// VPCMPD.BCST imm8 m32 xmm k k -// VPCMPD.BCST imm8 m32 xmm k -// VPCMPD.BCST imm8 m32 ymm k k -// VPCMPD.BCST imm8 m32 ymm k -// VPCMPD.BCST imm8 m32 zmm k k -// VPCMPD.BCST imm8 m32 zmm k -// -// Construct and append a VPCMPD.BCST instruction to the active function. -// Operates on the global context. -func VPCMPD_BCST(ops ...operand.Op) { ctx.VPCMPD_BCST(ops...) } - -// VPCMPEQB: Compare Packed Byte Data for Equality. -// -// Forms: -// -// VPCMPEQB m256 ymm ymm -// VPCMPEQB ymm ymm ymm -// VPCMPEQB m128 xmm xmm -// VPCMPEQB xmm xmm xmm -// VPCMPEQB m128 xmm k k -// VPCMPEQB m128 xmm k -// VPCMPEQB m256 ymm k k -// VPCMPEQB m256 ymm k -// VPCMPEQB xmm xmm k k -// VPCMPEQB xmm xmm k -// VPCMPEQB ymm ymm k k -// VPCMPEQB ymm ymm k -// VPCMPEQB m512 zmm k k -// VPCMPEQB m512 zmm k -// VPCMPEQB zmm zmm k k -// VPCMPEQB zmm zmm k -// -// Construct and append a VPCMPEQB instruction to the active function. -func (c *Context) VPCMPEQB(ops ...operand.Op) { - c.addinstruction(x86.VPCMPEQB(ops...)) -} - -// VPCMPEQB: Compare Packed Byte Data for Equality. -// -// Forms: -// -// VPCMPEQB m256 ymm ymm -// VPCMPEQB ymm ymm ymm -// VPCMPEQB m128 xmm xmm -// VPCMPEQB xmm xmm xmm -// VPCMPEQB m128 xmm k k -// VPCMPEQB m128 xmm k -// VPCMPEQB m256 ymm k k -// VPCMPEQB m256 ymm k -// VPCMPEQB xmm xmm k k -// VPCMPEQB xmm xmm k -// VPCMPEQB ymm ymm k k -// VPCMPEQB ymm ymm k -// VPCMPEQB m512 zmm k k -// VPCMPEQB m512 zmm k -// VPCMPEQB zmm zmm k k -// VPCMPEQB zmm zmm k -// -// Construct and append a VPCMPEQB instruction to the active function. -// Operates on the global context. -func VPCMPEQB(ops ...operand.Op) { ctx.VPCMPEQB(ops...) } - -// VPCMPEQD: Compare Packed Doubleword Data for Equality. -// -// Forms: -// -// VPCMPEQD m256 ymm ymm -// VPCMPEQD ymm ymm ymm -// VPCMPEQD m128 xmm xmm -// VPCMPEQD xmm xmm xmm -// VPCMPEQD m128 xmm k k -// VPCMPEQD m128 xmm k -// VPCMPEQD m256 ymm k k -// VPCMPEQD m256 ymm k -// VPCMPEQD xmm xmm k k -// VPCMPEQD xmm xmm k -// VPCMPEQD ymm ymm k k -// VPCMPEQD ymm ymm k -// VPCMPEQD m512 zmm k k -// VPCMPEQD m512 zmm k -// VPCMPEQD zmm zmm k k -// VPCMPEQD zmm zmm k -// -// Construct and append a VPCMPEQD instruction to the active function. -func (c *Context) VPCMPEQD(ops ...operand.Op) { - c.addinstruction(x86.VPCMPEQD(ops...)) -} - -// VPCMPEQD: Compare Packed Doubleword Data for Equality. -// -// Forms: -// -// VPCMPEQD m256 ymm ymm -// VPCMPEQD ymm ymm ymm -// VPCMPEQD m128 xmm xmm -// VPCMPEQD xmm xmm xmm -// VPCMPEQD m128 xmm k k -// VPCMPEQD m128 xmm k -// VPCMPEQD m256 ymm k k -// VPCMPEQD m256 ymm k -// VPCMPEQD xmm xmm k k -// VPCMPEQD xmm xmm k -// VPCMPEQD ymm ymm k k -// VPCMPEQD ymm ymm k -// VPCMPEQD m512 zmm k k -// VPCMPEQD m512 zmm k -// VPCMPEQD zmm zmm k k -// VPCMPEQD zmm zmm k -// -// Construct and append a VPCMPEQD instruction to the active function. -// Operates on the global context. -func VPCMPEQD(ops ...operand.Op) { ctx.VPCMPEQD(ops...) } - -// VPCMPEQD_BCST: Compare Packed Doubleword Data for Equality (Broadcast). -// -// Forms: -// -// VPCMPEQD.BCST m32 xmm k k -// VPCMPEQD.BCST m32 xmm k -// VPCMPEQD.BCST m32 ymm k k -// VPCMPEQD.BCST m32 ymm k -// VPCMPEQD.BCST m32 zmm k k -// VPCMPEQD.BCST m32 zmm k -// -// Construct and append a VPCMPEQD.BCST instruction to the active function. -func (c *Context) VPCMPEQD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCMPEQD_BCST(ops...)) -} - -// VPCMPEQD_BCST: Compare Packed Doubleword Data for Equality (Broadcast). -// -// Forms: -// -// VPCMPEQD.BCST m32 xmm k k -// VPCMPEQD.BCST m32 xmm k -// VPCMPEQD.BCST m32 ymm k k -// VPCMPEQD.BCST m32 ymm k -// VPCMPEQD.BCST m32 zmm k k -// VPCMPEQD.BCST m32 zmm k -// -// Construct and append a VPCMPEQD.BCST instruction to the active function. -// Operates on the global context. -func VPCMPEQD_BCST(ops ...operand.Op) { ctx.VPCMPEQD_BCST(ops...) } - -// VPCMPEQQ: Compare Packed Quadword Data for Equality. -// -// Forms: -// -// VPCMPEQQ m256 ymm ymm -// VPCMPEQQ ymm ymm ymm -// VPCMPEQQ m128 xmm xmm -// VPCMPEQQ xmm xmm xmm -// VPCMPEQQ m128 xmm k k -// VPCMPEQQ m128 xmm k -// VPCMPEQQ m256 ymm k k -// VPCMPEQQ m256 ymm k -// VPCMPEQQ xmm xmm k k -// VPCMPEQQ xmm xmm k -// VPCMPEQQ ymm ymm k k -// VPCMPEQQ ymm ymm k -// VPCMPEQQ m512 zmm k k -// VPCMPEQQ m512 zmm k -// VPCMPEQQ zmm zmm k k -// VPCMPEQQ zmm zmm k -// -// Construct and append a VPCMPEQQ instruction to the active function. -func (c *Context) VPCMPEQQ(ops ...operand.Op) { - c.addinstruction(x86.VPCMPEQQ(ops...)) -} - -// VPCMPEQQ: Compare Packed Quadword Data for Equality. -// -// Forms: -// -// VPCMPEQQ m256 ymm ymm -// VPCMPEQQ ymm ymm ymm -// VPCMPEQQ m128 xmm xmm -// VPCMPEQQ xmm xmm xmm -// VPCMPEQQ m128 xmm k k -// VPCMPEQQ m128 xmm k -// VPCMPEQQ m256 ymm k k -// VPCMPEQQ m256 ymm k -// VPCMPEQQ xmm xmm k k -// VPCMPEQQ xmm xmm k -// VPCMPEQQ ymm ymm k k -// VPCMPEQQ ymm ymm k -// VPCMPEQQ m512 zmm k k -// VPCMPEQQ m512 zmm k -// VPCMPEQQ zmm zmm k k -// VPCMPEQQ zmm zmm k -// -// Construct and append a VPCMPEQQ instruction to the active function. -// Operates on the global context. -func VPCMPEQQ(ops ...operand.Op) { ctx.VPCMPEQQ(ops...) } - -// VPCMPEQQ_BCST: Compare Packed Quadword Data for Equality (Broadcast). -// -// Forms: -// -// VPCMPEQQ.BCST m64 xmm k k -// VPCMPEQQ.BCST m64 xmm k -// VPCMPEQQ.BCST m64 ymm k k -// VPCMPEQQ.BCST m64 ymm k -// VPCMPEQQ.BCST m64 zmm k k -// VPCMPEQQ.BCST m64 zmm k -// -// Construct and append a VPCMPEQQ.BCST instruction to the active function. -func (c *Context) VPCMPEQQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCMPEQQ_BCST(ops...)) -} - -// VPCMPEQQ_BCST: Compare Packed Quadword Data for Equality (Broadcast). -// -// Forms: -// -// VPCMPEQQ.BCST m64 xmm k k -// VPCMPEQQ.BCST m64 xmm k -// VPCMPEQQ.BCST m64 ymm k k -// VPCMPEQQ.BCST m64 ymm k -// VPCMPEQQ.BCST m64 zmm k k -// VPCMPEQQ.BCST m64 zmm k -// -// Construct and append a VPCMPEQQ.BCST instruction to the active function. -// Operates on the global context. -func VPCMPEQQ_BCST(ops ...operand.Op) { ctx.VPCMPEQQ_BCST(ops...) } - -// VPCMPEQW: Compare Packed Word Data for Equality. -// -// Forms: -// -// VPCMPEQW m256 ymm ymm -// VPCMPEQW ymm ymm ymm -// VPCMPEQW m128 xmm xmm -// VPCMPEQW xmm xmm xmm -// VPCMPEQW m128 xmm k k -// VPCMPEQW m128 xmm k -// VPCMPEQW m256 ymm k k -// VPCMPEQW m256 ymm k -// VPCMPEQW xmm xmm k k -// VPCMPEQW xmm xmm k -// VPCMPEQW ymm ymm k k -// VPCMPEQW ymm ymm k -// VPCMPEQW m512 zmm k k -// VPCMPEQW m512 zmm k -// VPCMPEQW zmm zmm k k -// VPCMPEQW zmm zmm k -// -// Construct and append a VPCMPEQW instruction to the active function. -func (c *Context) VPCMPEQW(ops ...operand.Op) { - c.addinstruction(x86.VPCMPEQW(ops...)) -} - -// VPCMPEQW: Compare Packed Word Data for Equality. -// -// Forms: -// -// VPCMPEQW m256 ymm ymm -// VPCMPEQW ymm ymm ymm -// VPCMPEQW m128 xmm xmm -// VPCMPEQW xmm xmm xmm -// VPCMPEQW m128 xmm k k -// VPCMPEQW m128 xmm k -// VPCMPEQW m256 ymm k k -// VPCMPEQW m256 ymm k -// VPCMPEQW xmm xmm k k -// VPCMPEQW xmm xmm k -// VPCMPEQW ymm ymm k k -// VPCMPEQW ymm ymm k -// VPCMPEQW m512 zmm k k -// VPCMPEQW m512 zmm k -// VPCMPEQW zmm zmm k k -// VPCMPEQW zmm zmm k -// -// Construct and append a VPCMPEQW instruction to the active function. -// Operates on the global context. -func VPCMPEQW(ops ...operand.Op) { ctx.VPCMPEQW(ops...) } - -// VPCMPESTRI: Packed Compare Explicit Length Strings, Return Index. -// -// Forms: -// -// VPCMPESTRI imm8 m128 xmm -// VPCMPESTRI imm8 xmm xmm -// -// Construct and append a VPCMPESTRI instruction to the active function. -func (c *Context) VPCMPESTRI(i, mx, x operand.Op) { - c.addinstruction(x86.VPCMPESTRI(i, mx, x)) -} - -// VPCMPESTRI: Packed Compare Explicit Length Strings, Return Index. -// -// Forms: -// -// VPCMPESTRI imm8 m128 xmm -// VPCMPESTRI imm8 xmm xmm -// -// Construct and append a VPCMPESTRI instruction to the active function. -// Operates on the global context. -func VPCMPESTRI(i, mx, x operand.Op) { ctx.VPCMPESTRI(i, mx, x) } - -// VPCMPESTRM: Packed Compare Explicit Length Strings, Return Mask. -// -// Forms: -// -// VPCMPESTRM imm8 m128 xmm -// VPCMPESTRM imm8 xmm xmm -// -// Construct and append a VPCMPESTRM instruction to the active function. -func (c *Context) VPCMPESTRM(i, mx, x operand.Op) { - c.addinstruction(x86.VPCMPESTRM(i, mx, x)) -} - -// VPCMPESTRM: Packed Compare Explicit Length Strings, Return Mask. -// -// Forms: -// -// VPCMPESTRM imm8 m128 xmm -// VPCMPESTRM imm8 xmm xmm -// -// Construct and append a VPCMPESTRM instruction to the active function. -// Operates on the global context. -func VPCMPESTRM(i, mx, x operand.Op) { ctx.VPCMPESTRM(i, mx, x) } - -// VPCMPGTB: Compare Packed Signed Byte Integers for Greater Than. -// -// Forms: -// -// VPCMPGTB m256 ymm ymm -// VPCMPGTB ymm ymm ymm -// VPCMPGTB m128 xmm xmm -// VPCMPGTB xmm xmm xmm -// VPCMPGTB m128 xmm k k -// VPCMPGTB m128 xmm k -// VPCMPGTB m256 ymm k k -// VPCMPGTB m256 ymm k -// VPCMPGTB xmm xmm k k -// VPCMPGTB xmm xmm k -// VPCMPGTB ymm ymm k k -// VPCMPGTB ymm ymm k -// VPCMPGTB m512 zmm k k -// VPCMPGTB m512 zmm k -// VPCMPGTB zmm zmm k k -// VPCMPGTB zmm zmm k -// -// Construct and append a VPCMPGTB instruction to the active function. -func (c *Context) VPCMPGTB(ops ...operand.Op) { - c.addinstruction(x86.VPCMPGTB(ops...)) -} - -// VPCMPGTB: Compare Packed Signed Byte Integers for Greater Than. -// -// Forms: -// -// VPCMPGTB m256 ymm ymm -// VPCMPGTB ymm ymm ymm -// VPCMPGTB m128 xmm xmm -// VPCMPGTB xmm xmm xmm -// VPCMPGTB m128 xmm k k -// VPCMPGTB m128 xmm k -// VPCMPGTB m256 ymm k k -// VPCMPGTB m256 ymm k -// VPCMPGTB xmm xmm k k -// VPCMPGTB xmm xmm k -// VPCMPGTB ymm ymm k k -// VPCMPGTB ymm ymm k -// VPCMPGTB m512 zmm k k -// VPCMPGTB m512 zmm k -// VPCMPGTB zmm zmm k k -// VPCMPGTB zmm zmm k -// -// Construct and append a VPCMPGTB instruction to the active function. -// Operates on the global context. -func VPCMPGTB(ops ...operand.Op) { ctx.VPCMPGTB(ops...) } - -// VPCMPGTD: Compare Packed Signed Doubleword Integers for Greater Than. -// -// Forms: -// -// VPCMPGTD m256 ymm ymm -// VPCMPGTD ymm ymm ymm -// VPCMPGTD m128 xmm xmm -// VPCMPGTD xmm xmm xmm -// VPCMPGTD m128 xmm k k -// VPCMPGTD m128 xmm k -// VPCMPGTD m256 ymm k k -// VPCMPGTD m256 ymm k -// VPCMPGTD xmm xmm k k -// VPCMPGTD xmm xmm k -// VPCMPGTD ymm ymm k k -// VPCMPGTD ymm ymm k -// VPCMPGTD m512 zmm k k -// VPCMPGTD m512 zmm k -// VPCMPGTD zmm zmm k k -// VPCMPGTD zmm zmm k -// -// Construct and append a VPCMPGTD instruction to the active function. -func (c *Context) VPCMPGTD(ops ...operand.Op) { - c.addinstruction(x86.VPCMPGTD(ops...)) -} - -// VPCMPGTD: Compare Packed Signed Doubleword Integers for Greater Than. -// -// Forms: -// -// VPCMPGTD m256 ymm ymm -// VPCMPGTD ymm ymm ymm -// VPCMPGTD m128 xmm xmm -// VPCMPGTD xmm xmm xmm -// VPCMPGTD m128 xmm k k -// VPCMPGTD m128 xmm k -// VPCMPGTD m256 ymm k k -// VPCMPGTD m256 ymm k -// VPCMPGTD xmm xmm k k -// VPCMPGTD xmm xmm k -// VPCMPGTD ymm ymm k k -// VPCMPGTD ymm ymm k -// VPCMPGTD m512 zmm k k -// VPCMPGTD m512 zmm k -// VPCMPGTD zmm zmm k k -// VPCMPGTD zmm zmm k -// -// Construct and append a VPCMPGTD instruction to the active function. -// Operates on the global context. -func VPCMPGTD(ops ...operand.Op) { ctx.VPCMPGTD(ops...) } - -// VPCMPGTD_BCST: Compare Packed Signed Doubleword Integers for Greater Than (Broadcast). -// -// Forms: -// -// VPCMPGTD.BCST m32 xmm k k -// VPCMPGTD.BCST m32 xmm k -// VPCMPGTD.BCST m32 ymm k k -// VPCMPGTD.BCST m32 ymm k -// VPCMPGTD.BCST m32 zmm k k -// VPCMPGTD.BCST m32 zmm k -// -// Construct and append a VPCMPGTD.BCST instruction to the active function. -func (c *Context) VPCMPGTD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCMPGTD_BCST(ops...)) -} - -// VPCMPGTD_BCST: Compare Packed Signed Doubleword Integers for Greater Than (Broadcast). -// -// Forms: -// -// VPCMPGTD.BCST m32 xmm k k -// VPCMPGTD.BCST m32 xmm k -// VPCMPGTD.BCST m32 ymm k k -// VPCMPGTD.BCST m32 ymm k -// VPCMPGTD.BCST m32 zmm k k -// VPCMPGTD.BCST m32 zmm k -// -// Construct and append a VPCMPGTD.BCST instruction to the active function. -// Operates on the global context. -func VPCMPGTD_BCST(ops ...operand.Op) { ctx.VPCMPGTD_BCST(ops...) } - -// VPCMPGTQ: Compare Packed Data for Greater Than. -// -// Forms: -// -// VPCMPGTQ m256 ymm ymm -// VPCMPGTQ ymm ymm ymm -// VPCMPGTQ m128 xmm xmm -// VPCMPGTQ xmm xmm xmm -// VPCMPGTQ m128 xmm k k -// VPCMPGTQ m128 xmm k -// VPCMPGTQ m256 ymm k k -// VPCMPGTQ m256 ymm k -// VPCMPGTQ xmm xmm k k -// VPCMPGTQ xmm xmm k -// VPCMPGTQ ymm ymm k k -// VPCMPGTQ ymm ymm k -// VPCMPGTQ m512 zmm k k -// VPCMPGTQ m512 zmm k -// VPCMPGTQ zmm zmm k k -// VPCMPGTQ zmm zmm k -// -// Construct and append a VPCMPGTQ instruction to the active function. -func (c *Context) VPCMPGTQ(ops ...operand.Op) { - c.addinstruction(x86.VPCMPGTQ(ops...)) -} - -// VPCMPGTQ: Compare Packed Data for Greater Than. -// -// Forms: -// -// VPCMPGTQ m256 ymm ymm -// VPCMPGTQ ymm ymm ymm -// VPCMPGTQ m128 xmm xmm -// VPCMPGTQ xmm xmm xmm -// VPCMPGTQ m128 xmm k k -// VPCMPGTQ m128 xmm k -// VPCMPGTQ m256 ymm k k -// VPCMPGTQ m256 ymm k -// VPCMPGTQ xmm xmm k k -// VPCMPGTQ xmm xmm k -// VPCMPGTQ ymm ymm k k -// VPCMPGTQ ymm ymm k -// VPCMPGTQ m512 zmm k k -// VPCMPGTQ m512 zmm k -// VPCMPGTQ zmm zmm k k -// VPCMPGTQ zmm zmm k -// -// Construct and append a VPCMPGTQ instruction to the active function. -// Operates on the global context. -func VPCMPGTQ(ops ...operand.Op) { ctx.VPCMPGTQ(ops...) } - -// VPCMPGTQ_BCST: Compare Packed Data for Greater Than (Broadcast). -// -// Forms: -// -// VPCMPGTQ.BCST m64 xmm k k -// VPCMPGTQ.BCST m64 xmm k -// VPCMPGTQ.BCST m64 ymm k k -// VPCMPGTQ.BCST m64 ymm k -// VPCMPGTQ.BCST m64 zmm k k -// VPCMPGTQ.BCST m64 zmm k -// -// Construct and append a VPCMPGTQ.BCST instruction to the active function. -func (c *Context) VPCMPGTQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCMPGTQ_BCST(ops...)) -} - -// VPCMPGTQ_BCST: Compare Packed Data for Greater Than (Broadcast). -// -// Forms: -// -// VPCMPGTQ.BCST m64 xmm k k -// VPCMPGTQ.BCST m64 xmm k -// VPCMPGTQ.BCST m64 ymm k k -// VPCMPGTQ.BCST m64 ymm k -// VPCMPGTQ.BCST m64 zmm k k -// VPCMPGTQ.BCST m64 zmm k -// -// Construct and append a VPCMPGTQ.BCST instruction to the active function. -// Operates on the global context. -func VPCMPGTQ_BCST(ops ...operand.Op) { ctx.VPCMPGTQ_BCST(ops...) } - -// VPCMPGTW: Compare Packed Signed Word Integers for Greater Than. -// -// Forms: -// -// VPCMPGTW m256 ymm ymm -// VPCMPGTW ymm ymm ymm -// VPCMPGTW m128 xmm xmm -// VPCMPGTW xmm xmm xmm -// VPCMPGTW m128 xmm k k -// VPCMPGTW m128 xmm k -// VPCMPGTW m256 ymm k k -// VPCMPGTW m256 ymm k -// VPCMPGTW xmm xmm k k -// VPCMPGTW xmm xmm k -// VPCMPGTW ymm ymm k k -// VPCMPGTW ymm ymm k -// VPCMPGTW m512 zmm k k -// VPCMPGTW m512 zmm k -// VPCMPGTW zmm zmm k k -// VPCMPGTW zmm zmm k -// -// Construct and append a VPCMPGTW instruction to the active function. -func (c *Context) VPCMPGTW(ops ...operand.Op) { - c.addinstruction(x86.VPCMPGTW(ops...)) -} - -// VPCMPGTW: Compare Packed Signed Word Integers for Greater Than. -// -// Forms: -// -// VPCMPGTW m256 ymm ymm -// VPCMPGTW ymm ymm ymm -// VPCMPGTW m128 xmm xmm -// VPCMPGTW xmm xmm xmm -// VPCMPGTW m128 xmm k k -// VPCMPGTW m128 xmm k -// VPCMPGTW m256 ymm k k -// VPCMPGTW m256 ymm k -// VPCMPGTW xmm xmm k k -// VPCMPGTW xmm xmm k -// VPCMPGTW ymm ymm k k -// VPCMPGTW ymm ymm k -// VPCMPGTW m512 zmm k k -// VPCMPGTW m512 zmm k -// VPCMPGTW zmm zmm k k -// VPCMPGTW zmm zmm k -// -// Construct and append a VPCMPGTW instruction to the active function. -// Operates on the global context. -func VPCMPGTW(ops ...operand.Op) { ctx.VPCMPGTW(ops...) } - -// VPCMPISTRI: Packed Compare Implicit Length Strings, Return Index. -// -// Forms: -// -// VPCMPISTRI imm8 m128 xmm -// VPCMPISTRI imm8 xmm xmm -// -// Construct and append a VPCMPISTRI instruction to the active function. -func (c *Context) VPCMPISTRI(i, mx, x operand.Op) { - c.addinstruction(x86.VPCMPISTRI(i, mx, x)) -} - -// VPCMPISTRI: Packed Compare Implicit Length Strings, Return Index. -// -// Forms: -// -// VPCMPISTRI imm8 m128 xmm -// VPCMPISTRI imm8 xmm xmm -// -// Construct and append a VPCMPISTRI instruction to the active function. -// Operates on the global context. -func VPCMPISTRI(i, mx, x operand.Op) { ctx.VPCMPISTRI(i, mx, x) } - -// VPCMPISTRM: Packed Compare Implicit Length Strings, Return Mask. -// -// Forms: -// -// VPCMPISTRM imm8 m128 xmm -// VPCMPISTRM imm8 xmm xmm -// -// Construct and append a VPCMPISTRM instruction to the active function. -func (c *Context) VPCMPISTRM(i, mx, x operand.Op) { - c.addinstruction(x86.VPCMPISTRM(i, mx, x)) -} - -// VPCMPISTRM: Packed Compare Implicit Length Strings, Return Mask. -// -// Forms: -// -// VPCMPISTRM imm8 m128 xmm -// VPCMPISTRM imm8 xmm xmm -// -// Construct and append a VPCMPISTRM instruction to the active function. -// Operates on the global context. -func VPCMPISTRM(i, mx, x operand.Op) { ctx.VPCMPISTRM(i, mx, x) } - -// VPCMPQ: Compare Packed Signed Quadword Values. -// -// Forms: -// -// VPCMPQ imm8 m128 xmm k k -// VPCMPQ imm8 m128 xmm k -// VPCMPQ imm8 m256 ymm k k -// VPCMPQ imm8 m256 ymm k -// VPCMPQ imm8 xmm xmm k k -// VPCMPQ imm8 xmm xmm k -// VPCMPQ imm8 ymm ymm k k -// VPCMPQ imm8 ymm ymm k -// VPCMPQ imm8 m512 zmm k k -// VPCMPQ imm8 m512 zmm k -// VPCMPQ imm8 zmm zmm k k -// VPCMPQ imm8 zmm zmm k -// -// Construct and append a VPCMPQ instruction to the active function. -func (c *Context) VPCMPQ(ops ...operand.Op) { - c.addinstruction(x86.VPCMPQ(ops...)) -} - -// VPCMPQ: Compare Packed Signed Quadword Values. -// -// Forms: -// -// VPCMPQ imm8 m128 xmm k k -// VPCMPQ imm8 m128 xmm k -// VPCMPQ imm8 m256 ymm k k -// VPCMPQ imm8 m256 ymm k -// VPCMPQ imm8 xmm xmm k k -// VPCMPQ imm8 xmm xmm k -// VPCMPQ imm8 ymm ymm k k -// VPCMPQ imm8 ymm ymm k -// VPCMPQ imm8 m512 zmm k k -// VPCMPQ imm8 m512 zmm k -// VPCMPQ imm8 zmm zmm k k -// VPCMPQ imm8 zmm zmm k -// -// Construct and append a VPCMPQ instruction to the active function. -// Operates on the global context. -func VPCMPQ(ops ...operand.Op) { ctx.VPCMPQ(ops...) } - -// VPCMPQ_BCST: Compare Packed Signed Quadword Values (Broadcast). -// -// Forms: -// -// VPCMPQ.BCST imm8 m64 xmm k k -// VPCMPQ.BCST imm8 m64 xmm k -// VPCMPQ.BCST imm8 m64 ymm k k -// VPCMPQ.BCST imm8 m64 ymm k -// VPCMPQ.BCST imm8 m64 zmm k k -// VPCMPQ.BCST imm8 m64 zmm k -// -// Construct and append a VPCMPQ.BCST instruction to the active function. -func (c *Context) VPCMPQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCMPQ_BCST(ops...)) -} - -// VPCMPQ_BCST: Compare Packed Signed Quadword Values (Broadcast). -// -// Forms: -// -// VPCMPQ.BCST imm8 m64 xmm k k -// VPCMPQ.BCST imm8 m64 xmm k -// VPCMPQ.BCST imm8 m64 ymm k k -// VPCMPQ.BCST imm8 m64 ymm k -// VPCMPQ.BCST imm8 m64 zmm k k -// VPCMPQ.BCST imm8 m64 zmm k -// -// Construct and append a VPCMPQ.BCST instruction to the active function. -// Operates on the global context. -func VPCMPQ_BCST(ops ...operand.Op) { ctx.VPCMPQ_BCST(ops...) } - -// VPCMPUB: Compare Packed Unsigned Byte Values. -// -// Forms: -// -// VPCMPUB imm8 m128 xmm k k -// VPCMPUB imm8 m128 xmm k -// VPCMPUB imm8 m256 ymm k k -// VPCMPUB imm8 m256 ymm k -// VPCMPUB imm8 xmm xmm k k -// VPCMPUB imm8 xmm xmm k -// VPCMPUB imm8 ymm ymm k k -// VPCMPUB imm8 ymm ymm k -// VPCMPUB imm8 m512 zmm k k -// VPCMPUB imm8 m512 zmm k -// VPCMPUB imm8 zmm zmm k k -// VPCMPUB imm8 zmm zmm k -// -// Construct and append a VPCMPUB instruction to the active function. -func (c *Context) VPCMPUB(ops ...operand.Op) { - c.addinstruction(x86.VPCMPUB(ops...)) -} - -// VPCMPUB: Compare Packed Unsigned Byte Values. -// -// Forms: -// -// VPCMPUB imm8 m128 xmm k k -// VPCMPUB imm8 m128 xmm k -// VPCMPUB imm8 m256 ymm k k -// VPCMPUB imm8 m256 ymm k -// VPCMPUB imm8 xmm xmm k k -// VPCMPUB imm8 xmm xmm k -// VPCMPUB imm8 ymm ymm k k -// VPCMPUB imm8 ymm ymm k -// VPCMPUB imm8 m512 zmm k k -// VPCMPUB imm8 m512 zmm k -// VPCMPUB imm8 zmm zmm k k -// VPCMPUB imm8 zmm zmm k -// -// Construct and append a VPCMPUB instruction to the active function. -// Operates on the global context. -func VPCMPUB(ops ...operand.Op) { ctx.VPCMPUB(ops...) } - -// VPCMPUD: Compare Packed Unsigned Doubleword Values. -// -// Forms: -// -// VPCMPUD imm8 m128 xmm k k -// VPCMPUD imm8 m128 xmm k -// VPCMPUD imm8 m256 ymm k k -// VPCMPUD imm8 m256 ymm k -// VPCMPUD imm8 xmm xmm k k -// VPCMPUD imm8 xmm xmm k -// VPCMPUD imm8 ymm ymm k k -// VPCMPUD imm8 ymm ymm k -// VPCMPUD imm8 m512 zmm k k -// VPCMPUD imm8 m512 zmm k -// VPCMPUD imm8 zmm zmm k k -// VPCMPUD imm8 zmm zmm k -// -// Construct and append a VPCMPUD instruction to the active function. -func (c *Context) VPCMPUD(ops ...operand.Op) { - c.addinstruction(x86.VPCMPUD(ops...)) -} - -// VPCMPUD: Compare Packed Unsigned Doubleword Values. -// -// Forms: -// -// VPCMPUD imm8 m128 xmm k k -// VPCMPUD imm8 m128 xmm k -// VPCMPUD imm8 m256 ymm k k -// VPCMPUD imm8 m256 ymm k -// VPCMPUD imm8 xmm xmm k k -// VPCMPUD imm8 xmm xmm k -// VPCMPUD imm8 ymm ymm k k -// VPCMPUD imm8 ymm ymm k -// VPCMPUD imm8 m512 zmm k k -// VPCMPUD imm8 m512 zmm k -// VPCMPUD imm8 zmm zmm k k -// VPCMPUD imm8 zmm zmm k -// -// Construct and append a VPCMPUD instruction to the active function. -// Operates on the global context. -func VPCMPUD(ops ...operand.Op) { ctx.VPCMPUD(ops...) } - -// VPCMPUD_BCST: Compare Packed Unsigned Doubleword Values (Broadcast). -// -// Forms: -// -// VPCMPUD.BCST imm8 m32 xmm k k -// VPCMPUD.BCST imm8 m32 xmm k -// VPCMPUD.BCST imm8 m32 ymm k k -// VPCMPUD.BCST imm8 m32 ymm k -// VPCMPUD.BCST imm8 m32 zmm k k -// VPCMPUD.BCST imm8 m32 zmm k -// -// Construct and append a VPCMPUD.BCST instruction to the active function. -func (c *Context) VPCMPUD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCMPUD_BCST(ops...)) -} - -// VPCMPUD_BCST: Compare Packed Unsigned Doubleword Values (Broadcast). -// -// Forms: -// -// VPCMPUD.BCST imm8 m32 xmm k k -// VPCMPUD.BCST imm8 m32 xmm k -// VPCMPUD.BCST imm8 m32 ymm k k -// VPCMPUD.BCST imm8 m32 ymm k -// VPCMPUD.BCST imm8 m32 zmm k k -// VPCMPUD.BCST imm8 m32 zmm k -// -// Construct and append a VPCMPUD.BCST instruction to the active function. -// Operates on the global context. -func VPCMPUD_BCST(ops ...operand.Op) { ctx.VPCMPUD_BCST(ops...) } - -// VPCMPUQ: Compare Packed Unsigned Quadword Values. -// -// Forms: -// -// VPCMPUQ imm8 m128 xmm k k -// VPCMPUQ imm8 m128 xmm k -// VPCMPUQ imm8 m256 ymm k k -// VPCMPUQ imm8 m256 ymm k -// VPCMPUQ imm8 xmm xmm k k -// VPCMPUQ imm8 xmm xmm k -// VPCMPUQ imm8 ymm ymm k k -// VPCMPUQ imm8 ymm ymm k -// VPCMPUQ imm8 m512 zmm k k -// VPCMPUQ imm8 m512 zmm k -// VPCMPUQ imm8 zmm zmm k k -// VPCMPUQ imm8 zmm zmm k -// -// Construct and append a VPCMPUQ instruction to the active function. -func (c *Context) VPCMPUQ(ops ...operand.Op) { - c.addinstruction(x86.VPCMPUQ(ops...)) -} - -// VPCMPUQ: Compare Packed Unsigned Quadword Values. -// -// Forms: -// -// VPCMPUQ imm8 m128 xmm k k -// VPCMPUQ imm8 m128 xmm k -// VPCMPUQ imm8 m256 ymm k k -// VPCMPUQ imm8 m256 ymm k -// VPCMPUQ imm8 xmm xmm k k -// VPCMPUQ imm8 xmm xmm k -// VPCMPUQ imm8 ymm ymm k k -// VPCMPUQ imm8 ymm ymm k -// VPCMPUQ imm8 m512 zmm k k -// VPCMPUQ imm8 m512 zmm k -// VPCMPUQ imm8 zmm zmm k k -// VPCMPUQ imm8 zmm zmm k -// -// Construct and append a VPCMPUQ instruction to the active function. -// Operates on the global context. -func VPCMPUQ(ops ...operand.Op) { ctx.VPCMPUQ(ops...) } - -// VPCMPUQ_BCST: Compare Packed Unsigned Quadword Values (Broadcast). -// -// Forms: -// -// VPCMPUQ.BCST imm8 m64 xmm k k -// VPCMPUQ.BCST imm8 m64 xmm k -// VPCMPUQ.BCST imm8 m64 ymm k k -// VPCMPUQ.BCST imm8 m64 ymm k -// VPCMPUQ.BCST imm8 m64 zmm k k -// VPCMPUQ.BCST imm8 m64 zmm k -// -// Construct and append a VPCMPUQ.BCST instruction to the active function. -func (c *Context) VPCMPUQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCMPUQ_BCST(ops...)) -} - -// VPCMPUQ_BCST: Compare Packed Unsigned Quadword Values (Broadcast). -// -// Forms: -// -// VPCMPUQ.BCST imm8 m64 xmm k k -// VPCMPUQ.BCST imm8 m64 xmm k -// VPCMPUQ.BCST imm8 m64 ymm k k -// VPCMPUQ.BCST imm8 m64 ymm k -// VPCMPUQ.BCST imm8 m64 zmm k k -// VPCMPUQ.BCST imm8 m64 zmm k -// -// Construct and append a VPCMPUQ.BCST instruction to the active function. -// Operates on the global context. -func VPCMPUQ_BCST(ops ...operand.Op) { ctx.VPCMPUQ_BCST(ops...) } - -// VPCMPUW: Compare Packed Unsigned Word Values. -// -// Forms: -// -// VPCMPUW imm8 m128 xmm k k -// VPCMPUW imm8 m128 xmm k -// VPCMPUW imm8 m256 ymm k k -// VPCMPUW imm8 m256 ymm k -// VPCMPUW imm8 xmm xmm k k -// VPCMPUW imm8 xmm xmm k -// VPCMPUW imm8 ymm ymm k k -// VPCMPUW imm8 ymm ymm k -// VPCMPUW imm8 m512 zmm k k -// VPCMPUW imm8 m512 zmm k -// VPCMPUW imm8 zmm zmm k k -// VPCMPUW imm8 zmm zmm k -// -// Construct and append a VPCMPUW instruction to the active function. -func (c *Context) VPCMPUW(ops ...operand.Op) { - c.addinstruction(x86.VPCMPUW(ops...)) -} - -// VPCMPUW: Compare Packed Unsigned Word Values. -// -// Forms: -// -// VPCMPUW imm8 m128 xmm k k -// VPCMPUW imm8 m128 xmm k -// VPCMPUW imm8 m256 ymm k k -// VPCMPUW imm8 m256 ymm k -// VPCMPUW imm8 xmm xmm k k -// VPCMPUW imm8 xmm xmm k -// VPCMPUW imm8 ymm ymm k k -// VPCMPUW imm8 ymm ymm k -// VPCMPUW imm8 m512 zmm k k -// VPCMPUW imm8 m512 zmm k -// VPCMPUW imm8 zmm zmm k k -// VPCMPUW imm8 zmm zmm k -// -// Construct and append a VPCMPUW instruction to the active function. -// Operates on the global context. -func VPCMPUW(ops ...operand.Op) { ctx.VPCMPUW(ops...) } - -// VPCMPW: Compare Packed Signed Word Values. -// -// Forms: -// -// VPCMPW imm8 m128 xmm k k -// VPCMPW imm8 m128 xmm k -// VPCMPW imm8 m256 ymm k k -// VPCMPW imm8 m256 ymm k -// VPCMPW imm8 xmm xmm k k -// VPCMPW imm8 xmm xmm k -// VPCMPW imm8 ymm ymm k k -// VPCMPW imm8 ymm ymm k -// VPCMPW imm8 m512 zmm k k -// VPCMPW imm8 m512 zmm k -// VPCMPW imm8 zmm zmm k k -// VPCMPW imm8 zmm zmm k -// -// Construct and append a VPCMPW instruction to the active function. -func (c *Context) VPCMPW(ops ...operand.Op) { - c.addinstruction(x86.VPCMPW(ops...)) -} - -// VPCMPW: Compare Packed Signed Word Values. -// -// Forms: -// -// VPCMPW imm8 m128 xmm k k -// VPCMPW imm8 m128 xmm k -// VPCMPW imm8 m256 ymm k k -// VPCMPW imm8 m256 ymm k -// VPCMPW imm8 xmm xmm k k -// VPCMPW imm8 xmm xmm k -// VPCMPW imm8 ymm ymm k k -// VPCMPW imm8 ymm ymm k -// VPCMPW imm8 m512 zmm k k -// VPCMPW imm8 m512 zmm k -// VPCMPW imm8 zmm zmm k k -// VPCMPW imm8 zmm zmm k -// -// Construct and append a VPCMPW instruction to the active function. -// Operates on the global context. -func VPCMPW(ops ...operand.Op) { ctx.VPCMPW(ops...) } - -// VPCOMPRESSB: Store Sparse Packed Byte Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSB xmm k m128 -// VPCOMPRESSB xmm k xmm -// VPCOMPRESSB xmm m128 -// VPCOMPRESSB xmm xmm -// VPCOMPRESSB ymm k m256 -// VPCOMPRESSB ymm k ymm -// VPCOMPRESSB ymm m256 -// VPCOMPRESSB ymm ymm -// VPCOMPRESSB zmm k m512 -// VPCOMPRESSB zmm k zmm -// VPCOMPRESSB zmm m512 -// VPCOMPRESSB zmm zmm -// -// Construct and append a VPCOMPRESSB instruction to the active function. -func (c *Context) VPCOMPRESSB(ops ...operand.Op) { - c.addinstruction(x86.VPCOMPRESSB(ops...)) -} - -// VPCOMPRESSB: Store Sparse Packed Byte Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSB xmm k m128 -// VPCOMPRESSB xmm k xmm -// VPCOMPRESSB xmm m128 -// VPCOMPRESSB xmm xmm -// VPCOMPRESSB ymm k m256 -// VPCOMPRESSB ymm k ymm -// VPCOMPRESSB ymm m256 -// VPCOMPRESSB ymm ymm -// VPCOMPRESSB zmm k m512 -// VPCOMPRESSB zmm k zmm -// VPCOMPRESSB zmm m512 -// VPCOMPRESSB zmm zmm -// -// Construct and append a VPCOMPRESSB instruction to the active function. -// Operates on the global context. -func VPCOMPRESSB(ops ...operand.Op) { ctx.VPCOMPRESSB(ops...) } - -// VPCOMPRESSB_Z: Store Sparse Packed Byte Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSB.Z xmm k xmm -// VPCOMPRESSB.Z ymm k ymm -// VPCOMPRESSB.Z zmm k zmm -// -// Construct and append a VPCOMPRESSB.Z instruction to the active function. -func (c *Context) VPCOMPRESSB_Z(xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPCOMPRESSB_Z(xyz, k, xyz1)) -} - -// VPCOMPRESSB_Z: Store Sparse Packed Byte Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSB.Z xmm k xmm -// VPCOMPRESSB.Z ymm k ymm -// VPCOMPRESSB.Z zmm k zmm -// -// Construct and append a VPCOMPRESSB.Z instruction to the active function. -// Operates on the global context. -func VPCOMPRESSB_Z(xyz, k, xyz1 operand.Op) { ctx.VPCOMPRESSB_Z(xyz, k, xyz1) } - -// VPCOMPRESSD: Store Sparse Packed Doubleword Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSD xmm k m128 -// VPCOMPRESSD xmm k xmm -// VPCOMPRESSD xmm m128 -// VPCOMPRESSD xmm xmm -// VPCOMPRESSD ymm k m256 -// VPCOMPRESSD ymm k ymm -// VPCOMPRESSD ymm m256 -// VPCOMPRESSD ymm ymm -// VPCOMPRESSD zmm k m512 -// VPCOMPRESSD zmm k zmm -// VPCOMPRESSD zmm m512 -// VPCOMPRESSD zmm zmm -// -// Construct and append a VPCOMPRESSD instruction to the active function. -func (c *Context) VPCOMPRESSD(ops ...operand.Op) { - c.addinstruction(x86.VPCOMPRESSD(ops...)) -} - -// VPCOMPRESSD: Store Sparse Packed Doubleword Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSD xmm k m128 -// VPCOMPRESSD xmm k xmm -// VPCOMPRESSD xmm m128 -// VPCOMPRESSD xmm xmm -// VPCOMPRESSD ymm k m256 -// VPCOMPRESSD ymm k ymm -// VPCOMPRESSD ymm m256 -// VPCOMPRESSD ymm ymm -// VPCOMPRESSD zmm k m512 -// VPCOMPRESSD zmm k zmm -// VPCOMPRESSD zmm m512 -// VPCOMPRESSD zmm zmm -// -// Construct and append a VPCOMPRESSD instruction to the active function. -// Operates on the global context. -func VPCOMPRESSD(ops ...operand.Op) { ctx.VPCOMPRESSD(ops...) } - -// VPCOMPRESSD_Z: Store Sparse Packed Doubleword Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSD.Z xmm k m128 -// VPCOMPRESSD.Z xmm k xmm -// VPCOMPRESSD.Z ymm k m256 -// VPCOMPRESSD.Z ymm k ymm -// VPCOMPRESSD.Z zmm k m512 -// VPCOMPRESSD.Z zmm k zmm -// -// Construct and append a VPCOMPRESSD.Z instruction to the active function. -func (c *Context) VPCOMPRESSD_Z(xyz, k, mxyz operand.Op) { - c.addinstruction(x86.VPCOMPRESSD_Z(xyz, k, mxyz)) -} - -// VPCOMPRESSD_Z: Store Sparse Packed Doubleword Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSD.Z xmm k m128 -// VPCOMPRESSD.Z xmm k xmm -// VPCOMPRESSD.Z ymm k m256 -// VPCOMPRESSD.Z ymm k ymm -// VPCOMPRESSD.Z zmm k m512 -// VPCOMPRESSD.Z zmm k zmm -// -// Construct and append a VPCOMPRESSD.Z instruction to the active function. -// Operates on the global context. -func VPCOMPRESSD_Z(xyz, k, mxyz operand.Op) { ctx.VPCOMPRESSD_Z(xyz, k, mxyz) } - -// VPCOMPRESSQ: Store Sparse Packed Quadword Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSQ xmm k m128 -// VPCOMPRESSQ xmm k xmm -// VPCOMPRESSQ xmm m128 -// VPCOMPRESSQ xmm xmm -// VPCOMPRESSQ ymm k m256 -// VPCOMPRESSQ ymm k ymm -// VPCOMPRESSQ ymm m256 -// VPCOMPRESSQ ymm ymm -// VPCOMPRESSQ zmm k m512 -// VPCOMPRESSQ zmm k zmm -// VPCOMPRESSQ zmm m512 -// VPCOMPRESSQ zmm zmm -// -// Construct and append a VPCOMPRESSQ instruction to the active function. -func (c *Context) VPCOMPRESSQ(ops ...operand.Op) { - c.addinstruction(x86.VPCOMPRESSQ(ops...)) -} - -// VPCOMPRESSQ: Store Sparse Packed Quadword Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSQ xmm k m128 -// VPCOMPRESSQ xmm k xmm -// VPCOMPRESSQ xmm m128 -// VPCOMPRESSQ xmm xmm -// VPCOMPRESSQ ymm k m256 -// VPCOMPRESSQ ymm k ymm -// VPCOMPRESSQ ymm m256 -// VPCOMPRESSQ ymm ymm -// VPCOMPRESSQ zmm k m512 -// VPCOMPRESSQ zmm k zmm -// VPCOMPRESSQ zmm m512 -// VPCOMPRESSQ zmm zmm -// -// Construct and append a VPCOMPRESSQ instruction to the active function. -// Operates on the global context. -func VPCOMPRESSQ(ops ...operand.Op) { ctx.VPCOMPRESSQ(ops...) } - -// VPCOMPRESSQ_Z: Store Sparse Packed Quadword Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSQ.Z xmm k m128 -// VPCOMPRESSQ.Z xmm k xmm -// VPCOMPRESSQ.Z ymm k m256 -// VPCOMPRESSQ.Z ymm k ymm -// VPCOMPRESSQ.Z zmm k m512 -// VPCOMPRESSQ.Z zmm k zmm -// -// Construct and append a VPCOMPRESSQ.Z instruction to the active function. -func (c *Context) VPCOMPRESSQ_Z(xyz, k, mxyz operand.Op) { - c.addinstruction(x86.VPCOMPRESSQ_Z(xyz, k, mxyz)) -} - -// VPCOMPRESSQ_Z: Store Sparse Packed Quadword Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSQ.Z xmm k m128 -// VPCOMPRESSQ.Z xmm k xmm -// VPCOMPRESSQ.Z ymm k m256 -// VPCOMPRESSQ.Z ymm k ymm -// VPCOMPRESSQ.Z zmm k m512 -// VPCOMPRESSQ.Z zmm k zmm -// -// Construct and append a VPCOMPRESSQ.Z instruction to the active function. -// Operates on the global context. -func VPCOMPRESSQ_Z(xyz, k, mxyz operand.Op) { ctx.VPCOMPRESSQ_Z(xyz, k, mxyz) } - -// VPCOMPRESSW: Store Sparse Packed Word Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSW xmm k m128 -// VPCOMPRESSW xmm k xmm -// VPCOMPRESSW xmm m128 -// VPCOMPRESSW xmm xmm -// VPCOMPRESSW ymm k m256 -// VPCOMPRESSW ymm k ymm -// VPCOMPRESSW ymm m256 -// VPCOMPRESSW ymm ymm -// VPCOMPRESSW zmm k m512 -// VPCOMPRESSW zmm k zmm -// VPCOMPRESSW zmm m512 -// VPCOMPRESSW zmm zmm -// -// Construct and append a VPCOMPRESSW instruction to the active function. -func (c *Context) VPCOMPRESSW(ops ...operand.Op) { - c.addinstruction(x86.VPCOMPRESSW(ops...)) -} - -// VPCOMPRESSW: Store Sparse Packed Word Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSW xmm k m128 -// VPCOMPRESSW xmm k xmm -// VPCOMPRESSW xmm m128 -// VPCOMPRESSW xmm xmm -// VPCOMPRESSW ymm k m256 -// VPCOMPRESSW ymm k ymm -// VPCOMPRESSW ymm m256 -// VPCOMPRESSW ymm ymm -// VPCOMPRESSW zmm k m512 -// VPCOMPRESSW zmm k zmm -// VPCOMPRESSW zmm m512 -// VPCOMPRESSW zmm zmm -// -// Construct and append a VPCOMPRESSW instruction to the active function. -// Operates on the global context. -func VPCOMPRESSW(ops ...operand.Op) { ctx.VPCOMPRESSW(ops...) } - -// VPCOMPRESSW_Z: Store Sparse Packed Word Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSW.Z xmm k xmm -// VPCOMPRESSW.Z ymm k ymm -// VPCOMPRESSW.Z zmm k zmm -// -// Construct and append a VPCOMPRESSW.Z instruction to the active function. -func (c *Context) VPCOMPRESSW_Z(xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPCOMPRESSW_Z(xyz, k, xyz1)) -} - -// VPCOMPRESSW_Z: Store Sparse Packed Word Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSW.Z xmm k xmm -// VPCOMPRESSW.Z ymm k ymm -// VPCOMPRESSW.Z zmm k zmm -// -// Construct and append a VPCOMPRESSW.Z instruction to the active function. -// Operates on the global context. -func VPCOMPRESSW_Z(xyz, k, xyz1 operand.Op) { ctx.VPCOMPRESSW_Z(xyz, k, xyz1) } - -// VPCONFLICTD: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register. -// -// Forms: -// -// VPCONFLICTD m128 k xmm -// VPCONFLICTD m128 xmm -// VPCONFLICTD m256 k ymm -// VPCONFLICTD m256 ymm -// VPCONFLICTD xmm k xmm -// VPCONFLICTD xmm xmm -// VPCONFLICTD ymm k ymm -// VPCONFLICTD ymm ymm -// VPCONFLICTD m512 k zmm -// VPCONFLICTD m512 zmm -// VPCONFLICTD zmm k zmm -// VPCONFLICTD zmm zmm -// -// Construct and append a VPCONFLICTD instruction to the active function. -func (c *Context) VPCONFLICTD(ops ...operand.Op) { - c.addinstruction(x86.VPCONFLICTD(ops...)) -} - -// VPCONFLICTD: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register. -// -// Forms: -// -// VPCONFLICTD m128 k xmm -// VPCONFLICTD m128 xmm -// VPCONFLICTD m256 k ymm -// VPCONFLICTD m256 ymm -// VPCONFLICTD xmm k xmm -// VPCONFLICTD xmm xmm -// VPCONFLICTD ymm k ymm -// VPCONFLICTD ymm ymm -// VPCONFLICTD m512 k zmm -// VPCONFLICTD m512 zmm -// VPCONFLICTD zmm k zmm -// VPCONFLICTD zmm zmm -// -// Construct and append a VPCONFLICTD instruction to the active function. -// Operates on the global context. -func VPCONFLICTD(ops ...operand.Op) { ctx.VPCONFLICTD(ops...) } - -// VPCONFLICTD_BCST: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Broadcast). -// -// Forms: -// -// VPCONFLICTD.BCST m32 k xmm -// VPCONFLICTD.BCST m32 k ymm -// VPCONFLICTD.BCST m32 xmm -// VPCONFLICTD.BCST m32 ymm -// VPCONFLICTD.BCST m32 k zmm -// VPCONFLICTD.BCST m32 zmm -// -// Construct and append a VPCONFLICTD.BCST instruction to the active function. -func (c *Context) VPCONFLICTD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCONFLICTD_BCST(ops...)) -} - -// VPCONFLICTD_BCST: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Broadcast). -// -// Forms: -// -// VPCONFLICTD.BCST m32 k xmm -// VPCONFLICTD.BCST m32 k ymm -// VPCONFLICTD.BCST m32 xmm -// VPCONFLICTD.BCST m32 ymm -// VPCONFLICTD.BCST m32 k zmm -// VPCONFLICTD.BCST m32 zmm -// -// Construct and append a VPCONFLICTD.BCST instruction to the active function. -// Operates on the global context. -func VPCONFLICTD_BCST(ops ...operand.Op) { ctx.VPCONFLICTD_BCST(ops...) } - -// VPCONFLICTD_BCST_Z: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPCONFLICTD.BCST.Z m32 k xmm -// VPCONFLICTD.BCST.Z m32 k ymm -// VPCONFLICTD.BCST.Z m32 k zmm -// -// Construct and append a VPCONFLICTD.BCST.Z instruction to the active function. -func (c *Context) VPCONFLICTD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VPCONFLICTD_BCST_Z(m, k, xyz)) -} - -// VPCONFLICTD_BCST_Z: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPCONFLICTD.BCST.Z m32 k xmm -// VPCONFLICTD.BCST.Z m32 k ymm -// VPCONFLICTD.BCST.Z m32 k zmm -// -// Construct and append a VPCONFLICTD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPCONFLICTD_BCST_Z(m, k, xyz operand.Op) { ctx.VPCONFLICTD_BCST_Z(m, k, xyz) } - -// VPCONFLICTD_Z: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCONFLICTD.Z m128 k xmm -// VPCONFLICTD.Z m256 k ymm -// VPCONFLICTD.Z xmm k xmm -// VPCONFLICTD.Z ymm k ymm -// VPCONFLICTD.Z m512 k zmm -// VPCONFLICTD.Z zmm k zmm -// -// Construct and append a VPCONFLICTD.Z instruction to the active function. -func (c *Context) VPCONFLICTD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPCONFLICTD_Z(mxyz, k, xyz)) -} - -// VPCONFLICTD_Z: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCONFLICTD.Z m128 k xmm -// VPCONFLICTD.Z m256 k ymm -// VPCONFLICTD.Z xmm k xmm -// VPCONFLICTD.Z ymm k ymm -// VPCONFLICTD.Z m512 k zmm -// VPCONFLICTD.Z zmm k zmm -// -// Construct and append a VPCONFLICTD.Z instruction to the active function. -// Operates on the global context. -func VPCONFLICTD_Z(mxyz, k, xyz operand.Op) { ctx.VPCONFLICTD_Z(mxyz, k, xyz) } - -// VPCONFLICTQ: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register. -// -// Forms: -// -// VPCONFLICTQ m128 k xmm -// VPCONFLICTQ m128 xmm -// VPCONFLICTQ m256 k ymm -// VPCONFLICTQ m256 ymm -// VPCONFLICTQ xmm k xmm -// VPCONFLICTQ xmm xmm -// VPCONFLICTQ ymm k ymm -// VPCONFLICTQ ymm ymm -// VPCONFLICTQ m512 k zmm -// VPCONFLICTQ m512 zmm -// VPCONFLICTQ zmm k zmm -// VPCONFLICTQ zmm zmm -// -// Construct and append a VPCONFLICTQ instruction to the active function. -func (c *Context) VPCONFLICTQ(ops ...operand.Op) { - c.addinstruction(x86.VPCONFLICTQ(ops...)) -} - -// VPCONFLICTQ: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register. -// -// Forms: -// -// VPCONFLICTQ m128 k xmm -// VPCONFLICTQ m128 xmm -// VPCONFLICTQ m256 k ymm -// VPCONFLICTQ m256 ymm -// VPCONFLICTQ xmm k xmm -// VPCONFLICTQ xmm xmm -// VPCONFLICTQ ymm k ymm -// VPCONFLICTQ ymm ymm -// VPCONFLICTQ m512 k zmm -// VPCONFLICTQ m512 zmm -// VPCONFLICTQ zmm k zmm -// VPCONFLICTQ zmm zmm -// -// Construct and append a VPCONFLICTQ instruction to the active function. -// Operates on the global context. -func VPCONFLICTQ(ops ...operand.Op) { ctx.VPCONFLICTQ(ops...) } - -// VPCONFLICTQ_BCST: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Broadcast). -// -// Forms: -// -// VPCONFLICTQ.BCST m64 k xmm -// VPCONFLICTQ.BCST m64 k ymm -// VPCONFLICTQ.BCST m64 xmm -// VPCONFLICTQ.BCST m64 ymm -// VPCONFLICTQ.BCST m64 k zmm -// VPCONFLICTQ.BCST m64 zmm -// -// Construct and append a VPCONFLICTQ.BCST instruction to the active function. -func (c *Context) VPCONFLICTQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPCONFLICTQ_BCST(ops...)) -} - -// VPCONFLICTQ_BCST: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Broadcast). -// -// Forms: -// -// VPCONFLICTQ.BCST m64 k xmm -// VPCONFLICTQ.BCST m64 k ymm -// VPCONFLICTQ.BCST m64 xmm -// VPCONFLICTQ.BCST m64 ymm -// VPCONFLICTQ.BCST m64 k zmm -// VPCONFLICTQ.BCST m64 zmm -// -// Construct and append a VPCONFLICTQ.BCST instruction to the active function. -// Operates on the global context. -func VPCONFLICTQ_BCST(ops ...operand.Op) { ctx.VPCONFLICTQ_BCST(ops...) } - -// VPCONFLICTQ_BCST_Z: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPCONFLICTQ.BCST.Z m64 k xmm -// VPCONFLICTQ.BCST.Z m64 k ymm -// VPCONFLICTQ.BCST.Z m64 k zmm -// -// Construct and append a VPCONFLICTQ.BCST.Z instruction to the active function. -func (c *Context) VPCONFLICTQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VPCONFLICTQ_BCST_Z(m, k, xyz)) -} - -// VPCONFLICTQ_BCST_Z: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPCONFLICTQ.BCST.Z m64 k xmm -// VPCONFLICTQ.BCST.Z m64 k ymm -// VPCONFLICTQ.BCST.Z m64 k zmm -// -// Construct and append a VPCONFLICTQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPCONFLICTQ_BCST_Z(m, k, xyz operand.Op) { ctx.VPCONFLICTQ_BCST_Z(m, k, xyz) } - -// VPCONFLICTQ_Z: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCONFLICTQ.Z m128 k xmm -// VPCONFLICTQ.Z m256 k ymm -// VPCONFLICTQ.Z xmm k xmm -// VPCONFLICTQ.Z ymm k ymm -// VPCONFLICTQ.Z m512 k zmm -// VPCONFLICTQ.Z zmm k zmm -// -// Construct and append a VPCONFLICTQ.Z instruction to the active function. -func (c *Context) VPCONFLICTQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPCONFLICTQ_Z(mxyz, k, xyz)) -} - -// VPCONFLICTQ_Z: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCONFLICTQ.Z m128 k xmm -// VPCONFLICTQ.Z m256 k ymm -// VPCONFLICTQ.Z xmm k xmm -// VPCONFLICTQ.Z ymm k ymm -// VPCONFLICTQ.Z m512 k zmm -// VPCONFLICTQ.Z zmm k zmm -// -// Construct and append a VPCONFLICTQ.Z instruction to the active function. -// Operates on the global context. -func VPCONFLICTQ_Z(mxyz, k, xyz operand.Op) { ctx.VPCONFLICTQ_Z(mxyz, k, xyz) } - -// VPDPBUSD: Multiply and Add Unsigned and Signed Bytes. -// -// Forms: -// -// VPDPBUSD m128 xmm k xmm -// VPDPBUSD m128 xmm xmm -// VPDPBUSD m256 ymm k ymm -// VPDPBUSD m256 ymm ymm -// VPDPBUSD xmm xmm k xmm -// VPDPBUSD xmm xmm xmm -// VPDPBUSD ymm ymm k ymm -// VPDPBUSD ymm ymm ymm -// VPDPBUSD m512 zmm k zmm -// VPDPBUSD m512 zmm zmm -// VPDPBUSD zmm zmm k zmm -// VPDPBUSD zmm zmm zmm -// -// Construct and append a VPDPBUSD instruction to the active function. -func (c *Context) VPDPBUSD(ops ...operand.Op) { - c.addinstruction(x86.VPDPBUSD(ops...)) -} - -// VPDPBUSD: Multiply and Add Unsigned and Signed Bytes. -// -// Forms: -// -// VPDPBUSD m128 xmm k xmm -// VPDPBUSD m128 xmm xmm -// VPDPBUSD m256 ymm k ymm -// VPDPBUSD m256 ymm ymm -// VPDPBUSD xmm xmm k xmm -// VPDPBUSD xmm xmm xmm -// VPDPBUSD ymm ymm k ymm -// VPDPBUSD ymm ymm ymm -// VPDPBUSD m512 zmm k zmm -// VPDPBUSD m512 zmm zmm -// VPDPBUSD zmm zmm k zmm -// VPDPBUSD zmm zmm zmm -// -// Construct and append a VPDPBUSD instruction to the active function. -// Operates on the global context. -func VPDPBUSD(ops ...operand.Op) { ctx.VPDPBUSD(ops...) } - -// VPDPBUSDS: Multiply and Add Unsigned and Signed Bytes with Saturation. -// -// Forms: -// -// VPDPBUSDS m128 xmm k xmm -// VPDPBUSDS m128 xmm xmm -// VPDPBUSDS m256 ymm k ymm -// VPDPBUSDS m256 ymm ymm -// VPDPBUSDS xmm xmm k xmm -// VPDPBUSDS xmm xmm xmm -// VPDPBUSDS ymm ymm k ymm -// VPDPBUSDS ymm ymm ymm -// VPDPBUSDS m512 zmm k zmm -// VPDPBUSDS m512 zmm zmm -// VPDPBUSDS zmm zmm k zmm -// VPDPBUSDS zmm zmm zmm -// -// Construct and append a VPDPBUSDS instruction to the active function. -func (c *Context) VPDPBUSDS(ops ...operand.Op) { - c.addinstruction(x86.VPDPBUSDS(ops...)) -} - -// VPDPBUSDS: Multiply and Add Unsigned and Signed Bytes with Saturation. -// -// Forms: -// -// VPDPBUSDS m128 xmm k xmm -// VPDPBUSDS m128 xmm xmm -// VPDPBUSDS m256 ymm k ymm -// VPDPBUSDS m256 ymm ymm -// VPDPBUSDS xmm xmm k xmm -// VPDPBUSDS xmm xmm xmm -// VPDPBUSDS ymm ymm k ymm -// VPDPBUSDS ymm ymm ymm -// VPDPBUSDS m512 zmm k zmm -// VPDPBUSDS m512 zmm zmm -// VPDPBUSDS zmm zmm k zmm -// VPDPBUSDS zmm zmm zmm -// -// Construct and append a VPDPBUSDS instruction to the active function. -// Operates on the global context. -func VPDPBUSDS(ops ...operand.Op) { ctx.VPDPBUSDS(ops...) } - -// VPDPBUSDS_BCST: Multiply and Add Unsigned and Signed Bytes with Saturation (Broadcast). -// -// Forms: -// -// VPDPBUSDS.BCST m32 xmm k xmm -// VPDPBUSDS.BCST m32 xmm xmm -// VPDPBUSDS.BCST m32 ymm k ymm -// VPDPBUSDS.BCST m32 ymm ymm -// VPDPBUSDS.BCST m32 zmm k zmm -// VPDPBUSDS.BCST m32 zmm zmm -// -// Construct and append a VPDPBUSDS.BCST instruction to the active function. -func (c *Context) VPDPBUSDS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPDPBUSDS_BCST(ops...)) -} - -// VPDPBUSDS_BCST: Multiply and Add Unsigned and Signed Bytes with Saturation (Broadcast). -// -// Forms: -// -// VPDPBUSDS.BCST m32 xmm k xmm -// VPDPBUSDS.BCST m32 xmm xmm -// VPDPBUSDS.BCST m32 ymm k ymm -// VPDPBUSDS.BCST m32 ymm ymm -// VPDPBUSDS.BCST m32 zmm k zmm -// VPDPBUSDS.BCST m32 zmm zmm -// -// Construct and append a VPDPBUSDS.BCST instruction to the active function. -// Operates on the global context. -func VPDPBUSDS_BCST(ops ...operand.Op) { ctx.VPDPBUSDS_BCST(ops...) } - -// VPDPBUSDS_BCST_Z: Multiply and Add Unsigned and Signed Bytes with Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPBUSDS.BCST.Z m32 xmm k xmm -// VPDPBUSDS.BCST.Z m32 ymm k ymm -// VPDPBUSDS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPDPBUSDS.BCST.Z instruction to the active function. -func (c *Context) VPDPBUSDS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPDPBUSDS_BCST_Z(m, xyz, k, xyz1)) -} - -// VPDPBUSDS_BCST_Z: Multiply and Add Unsigned and Signed Bytes with Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPBUSDS.BCST.Z m32 xmm k xmm -// VPDPBUSDS.BCST.Z m32 ymm k ymm -// VPDPBUSDS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPDPBUSDS.BCST.Z instruction to the active function. -// Operates on the global context. -func VPDPBUSDS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPDPBUSDS_BCST_Z(m, xyz, k, xyz1) } - -// VPDPBUSDS_Z: Multiply and Add Unsigned and Signed Bytes with Saturation (Zeroing Masking). -// -// Forms: -// -// VPDPBUSDS.Z m128 xmm k xmm -// VPDPBUSDS.Z m256 ymm k ymm -// VPDPBUSDS.Z xmm xmm k xmm -// VPDPBUSDS.Z ymm ymm k ymm -// VPDPBUSDS.Z m512 zmm k zmm -// VPDPBUSDS.Z zmm zmm k zmm -// -// Construct and append a VPDPBUSDS.Z instruction to the active function. -func (c *Context) VPDPBUSDS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPDPBUSDS_Z(mxyz, xyz, k, xyz1)) -} - -// VPDPBUSDS_Z: Multiply and Add Unsigned and Signed Bytes with Saturation (Zeroing Masking). -// -// Forms: -// -// VPDPBUSDS.Z m128 xmm k xmm -// VPDPBUSDS.Z m256 ymm k ymm -// VPDPBUSDS.Z xmm xmm k xmm -// VPDPBUSDS.Z ymm ymm k ymm -// VPDPBUSDS.Z m512 zmm k zmm -// VPDPBUSDS.Z zmm zmm k zmm -// -// Construct and append a VPDPBUSDS.Z instruction to the active function. -// Operates on the global context. -func VPDPBUSDS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPDPBUSDS_Z(mxyz, xyz, k, xyz1) } - -// VPDPBUSD_BCST: Multiply and Add Unsigned and Signed Bytes (Broadcast). -// -// Forms: -// -// VPDPBUSD.BCST m32 xmm k xmm -// VPDPBUSD.BCST m32 xmm xmm -// VPDPBUSD.BCST m32 ymm k ymm -// VPDPBUSD.BCST m32 ymm ymm -// VPDPBUSD.BCST m32 zmm k zmm -// VPDPBUSD.BCST m32 zmm zmm -// -// Construct and append a VPDPBUSD.BCST instruction to the active function. -func (c *Context) VPDPBUSD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPDPBUSD_BCST(ops...)) -} - -// VPDPBUSD_BCST: Multiply and Add Unsigned and Signed Bytes (Broadcast). -// -// Forms: -// -// VPDPBUSD.BCST m32 xmm k xmm -// VPDPBUSD.BCST m32 xmm xmm -// VPDPBUSD.BCST m32 ymm k ymm -// VPDPBUSD.BCST m32 ymm ymm -// VPDPBUSD.BCST m32 zmm k zmm -// VPDPBUSD.BCST m32 zmm zmm -// -// Construct and append a VPDPBUSD.BCST instruction to the active function. -// Operates on the global context. -func VPDPBUSD_BCST(ops ...operand.Op) { ctx.VPDPBUSD_BCST(ops...) } - -// VPDPBUSD_BCST_Z: Multiply and Add Unsigned and Signed Bytes (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPBUSD.BCST.Z m32 xmm k xmm -// VPDPBUSD.BCST.Z m32 ymm k ymm -// VPDPBUSD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPDPBUSD.BCST.Z instruction to the active function. -func (c *Context) VPDPBUSD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPDPBUSD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPDPBUSD_BCST_Z: Multiply and Add Unsigned and Signed Bytes (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPBUSD.BCST.Z m32 xmm k xmm -// VPDPBUSD.BCST.Z m32 ymm k ymm -// VPDPBUSD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPDPBUSD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPDPBUSD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPDPBUSD_BCST_Z(m, xyz, k, xyz1) } - -// VPDPBUSD_Z: Multiply and Add Unsigned and Signed Bytes (Zeroing Masking). -// -// Forms: -// -// VPDPBUSD.Z m128 xmm k xmm -// VPDPBUSD.Z m256 ymm k ymm -// VPDPBUSD.Z xmm xmm k xmm -// VPDPBUSD.Z ymm ymm k ymm -// VPDPBUSD.Z m512 zmm k zmm -// VPDPBUSD.Z zmm zmm k zmm -// -// Construct and append a VPDPBUSD.Z instruction to the active function. -func (c *Context) VPDPBUSD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPDPBUSD_Z(mxyz, xyz, k, xyz1)) -} - -// VPDPBUSD_Z: Multiply and Add Unsigned and Signed Bytes (Zeroing Masking). -// -// Forms: -// -// VPDPBUSD.Z m128 xmm k xmm -// VPDPBUSD.Z m256 ymm k ymm -// VPDPBUSD.Z xmm xmm k xmm -// VPDPBUSD.Z ymm ymm k ymm -// VPDPBUSD.Z m512 zmm k zmm -// VPDPBUSD.Z zmm zmm k zmm -// -// Construct and append a VPDPBUSD.Z instruction to the active function. -// Operates on the global context. -func VPDPBUSD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPDPBUSD_Z(mxyz, xyz, k, xyz1) } - -// VPDPWSSD: Multiply and Add Signed Word Integers. -// -// Forms: -// -// VPDPWSSD m128 xmm k xmm -// VPDPWSSD m128 xmm xmm -// VPDPWSSD m256 ymm k ymm -// VPDPWSSD m256 ymm ymm -// VPDPWSSD xmm xmm k xmm -// VPDPWSSD xmm xmm xmm -// VPDPWSSD ymm ymm k ymm -// VPDPWSSD ymm ymm ymm -// VPDPWSSD m512 zmm k zmm -// VPDPWSSD m512 zmm zmm -// VPDPWSSD zmm zmm k zmm -// VPDPWSSD zmm zmm zmm -// -// Construct and append a VPDPWSSD instruction to the active function. -func (c *Context) VPDPWSSD(ops ...operand.Op) { - c.addinstruction(x86.VPDPWSSD(ops...)) -} - -// VPDPWSSD: Multiply and Add Signed Word Integers. -// -// Forms: -// -// VPDPWSSD m128 xmm k xmm -// VPDPWSSD m128 xmm xmm -// VPDPWSSD m256 ymm k ymm -// VPDPWSSD m256 ymm ymm -// VPDPWSSD xmm xmm k xmm -// VPDPWSSD xmm xmm xmm -// VPDPWSSD ymm ymm k ymm -// VPDPWSSD ymm ymm ymm -// VPDPWSSD m512 zmm k zmm -// VPDPWSSD m512 zmm zmm -// VPDPWSSD zmm zmm k zmm -// VPDPWSSD zmm zmm zmm -// -// Construct and append a VPDPWSSD instruction to the active function. -// Operates on the global context. -func VPDPWSSD(ops ...operand.Op) { ctx.VPDPWSSD(ops...) } - -// VPDPWSSDS: Multiply and Add Signed Word Integers with Saturation. -// -// Forms: -// -// VPDPWSSDS m128 xmm k xmm -// VPDPWSSDS m128 xmm xmm -// VPDPWSSDS m256 ymm k ymm -// VPDPWSSDS m256 ymm ymm -// VPDPWSSDS xmm xmm k xmm -// VPDPWSSDS xmm xmm xmm -// VPDPWSSDS ymm ymm k ymm -// VPDPWSSDS ymm ymm ymm -// VPDPWSSDS m512 zmm k zmm -// VPDPWSSDS m512 zmm zmm -// VPDPWSSDS zmm zmm k zmm -// VPDPWSSDS zmm zmm zmm -// -// Construct and append a VPDPWSSDS instruction to the active function. -func (c *Context) VPDPWSSDS(ops ...operand.Op) { - c.addinstruction(x86.VPDPWSSDS(ops...)) -} - -// VPDPWSSDS: Multiply and Add Signed Word Integers with Saturation. -// -// Forms: -// -// VPDPWSSDS m128 xmm k xmm -// VPDPWSSDS m128 xmm xmm -// VPDPWSSDS m256 ymm k ymm -// VPDPWSSDS m256 ymm ymm -// VPDPWSSDS xmm xmm k xmm -// VPDPWSSDS xmm xmm xmm -// VPDPWSSDS ymm ymm k ymm -// VPDPWSSDS ymm ymm ymm -// VPDPWSSDS m512 zmm k zmm -// VPDPWSSDS m512 zmm zmm -// VPDPWSSDS zmm zmm k zmm -// VPDPWSSDS zmm zmm zmm -// -// Construct and append a VPDPWSSDS instruction to the active function. -// Operates on the global context. -func VPDPWSSDS(ops ...operand.Op) { ctx.VPDPWSSDS(ops...) } - -// VPDPWSSDS_BCST: Multiply and Add Signed Word Integers with Saturation (Broadcast). -// -// Forms: -// -// VPDPWSSDS.BCST m32 xmm k xmm -// VPDPWSSDS.BCST m32 xmm xmm -// VPDPWSSDS.BCST m32 ymm k ymm -// VPDPWSSDS.BCST m32 ymm ymm -// VPDPWSSDS.BCST m32 zmm k zmm -// VPDPWSSDS.BCST m32 zmm zmm -// -// Construct and append a VPDPWSSDS.BCST instruction to the active function. -func (c *Context) VPDPWSSDS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPDPWSSDS_BCST(ops...)) -} - -// VPDPWSSDS_BCST: Multiply and Add Signed Word Integers with Saturation (Broadcast). -// -// Forms: -// -// VPDPWSSDS.BCST m32 xmm k xmm -// VPDPWSSDS.BCST m32 xmm xmm -// VPDPWSSDS.BCST m32 ymm k ymm -// VPDPWSSDS.BCST m32 ymm ymm -// VPDPWSSDS.BCST m32 zmm k zmm -// VPDPWSSDS.BCST m32 zmm zmm -// -// Construct and append a VPDPWSSDS.BCST instruction to the active function. -// Operates on the global context. -func VPDPWSSDS_BCST(ops ...operand.Op) { ctx.VPDPWSSDS_BCST(ops...) } - -// VPDPWSSDS_BCST_Z: Multiply and Add Signed Word Integers with Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPWSSDS.BCST.Z m32 xmm k xmm -// VPDPWSSDS.BCST.Z m32 ymm k ymm -// VPDPWSSDS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPDPWSSDS.BCST.Z instruction to the active function. -func (c *Context) VPDPWSSDS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPDPWSSDS_BCST_Z(m, xyz, k, xyz1)) -} - -// VPDPWSSDS_BCST_Z: Multiply and Add Signed Word Integers with Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPWSSDS.BCST.Z m32 xmm k xmm -// VPDPWSSDS.BCST.Z m32 ymm k ymm -// VPDPWSSDS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPDPWSSDS.BCST.Z instruction to the active function. -// Operates on the global context. -func VPDPWSSDS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPDPWSSDS_BCST_Z(m, xyz, k, xyz1) } - -// VPDPWSSDS_Z: Multiply and Add Signed Word Integers with Saturation (Zeroing Masking). -// -// Forms: -// -// VPDPWSSDS.Z m128 xmm k xmm -// VPDPWSSDS.Z m256 ymm k ymm -// VPDPWSSDS.Z xmm xmm k xmm -// VPDPWSSDS.Z ymm ymm k ymm -// VPDPWSSDS.Z m512 zmm k zmm -// VPDPWSSDS.Z zmm zmm k zmm -// -// Construct and append a VPDPWSSDS.Z instruction to the active function. -func (c *Context) VPDPWSSDS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPDPWSSDS_Z(mxyz, xyz, k, xyz1)) -} - -// VPDPWSSDS_Z: Multiply and Add Signed Word Integers with Saturation (Zeroing Masking). -// -// Forms: -// -// VPDPWSSDS.Z m128 xmm k xmm -// VPDPWSSDS.Z m256 ymm k ymm -// VPDPWSSDS.Z xmm xmm k xmm -// VPDPWSSDS.Z ymm ymm k ymm -// VPDPWSSDS.Z m512 zmm k zmm -// VPDPWSSDS.Z zmm zmm k zmm -// -// Construct and append a VPDPWSSDS.Z instruction to the active function. -// Operates on the global context. -func VPDPWSSDS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPDPWSSDS_Z(mxyz, xyz, k, xyz1) } - -// VPDPWSSD_BCST: Multiply and Add Signed Word Integers (Broadcast). -// -// Forms: -// -// VPDPWSSD.BCST m32 xmm k xmm -// VPDPWSSD.BCST m32 xmm xmm -// VPDPWSSD.BCST m32 ymm k ymm -// VPDPWSSD.BCST m32 ymm ymm -// VPDPWSSD.BCST m32 zmm k zmm -// VPDPWSSD.BCST m32 zmm zmm -// -// Construct and append a VPDPWSSD.BCST instruction to the active function. -func (c *Context) VPDPWSSD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPDPWSSD_BCST(ops...)) -} - -// VPDPWSSD_BCST: Multiply and Add Signed Word Integers (Broadcast). -// -// Forms: -// -// VPDPWSSD.BCST m32 xmm k xmm -// VPDPWSSD.BCST m32 xmm xmm -// VPDPWSSD.BCST m32 ymm k ymm -// VPDPWSSD.BCST m32 ymm ymm -// VPDPWSSD.BCST m32 zmm k zmm -// VPDPWSSD.BCST m32 zmm zmm -// -// Construct and append a VPDPWSSD.BCST instruction to the active function. -// Operates on the global context. -func VPDPWSSD_BCST(ops ...operand.Op) { ctx.VPDPWSSD_BCST(ops...) } - -// VPDPWSSD_BCST_Z: Multiply and Add Signed Word Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPWSSD.BCST.Z m32 xmm k xmm -// VPDPWSSD.BCST.Z m32 ymm k ymm -// VPDPWSSD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPDPWSSD.BCST.Z instruction to the active function. -func (c *Context) VPDPWSSD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPDPWSSD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPDPWSSD_BCST_Z: Multiply and Add Signed Word Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPWSSD.BCST.Z m32 xmm k xmm -// VPDPWSSD.BCST.Z m32 ymm k ymm -// VPDPWSSD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPDPWSSD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPDPWSSD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPDPWSSD_BCST_Z(m, xyz, k, xyz1) } - -// VPDPWSSD_Z: Multiply and Add Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPDPWSSD.Z m128 xmm k xmm -// VPDPWSSD.Z m256 ymm k ymm -// VPDPWSSD.Z xmm xmm k xmm -// VPDPWSSD.Z ymm ymm k ymm -// VPDPWSSD.Z m512 zmm k zmm -// VPDPWSSD.Z zmm zmm k zmm -// -// Construct and append a VPDPWSSD.Z instruction to the active function. -func (c *Context) VPDPWSSD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPDPWSSD_Z(mxyz, xyz, k, xyz1)) -} - -// VPDPWSSD_Z: Multiply and Add Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPDPWSSD.Z m128 xmm k xmm -// VPDPWSSD.Z m256 ymm k ymm -// VPDPWSSD.Z xmm xmm k xmm -// VPDPWSSD.Z ymm ymm k ymm -// VPDPWSSD.Z m512 zmm k zmm -// VPDPWSSD.Z zmm zmm k zmm -// -// Construct and append a VPDPWSSD.Z instruction to the active function. -// Operates on the global context. -func VPDPWSSD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPDPWSSD_Z(mxyz, xyz, k, xyz1) } - -// VPERM2F128: Permute Floating-Point Values. -// -// Forms: -// -// VPERM2F128 imm8 m256 ymm ymm -// VPERM2F128 imm8 ymm ymm ymm -// -// Construct and append a VPERM2F128 instruction to the active function. -func (c *Context) VPERM2F128(i, my, y, y1 operand.Op) { - c.addinstruction(x86.VPERM2F128(i, my, y, y1)) -} - -// VPERM2F128: Permute Floating-Point Values. -// -// Forms: -// -// VPERM2F128 imm8 m256 ymm ymm -// VPERM2F128 imm8 ymm ymm ymm -// -// Construct and append a VPERM2F128 instruction to the active function. -// Operates on the global context. -func VPERM2F128(i, my, y, y1 operand.Op) { ctx.VPERM2F128(i, my, y, y1) } - -// VPERM2I128: Permute 128-Bit Integer Values. -// -// Forms: -// -// VPERM2I128 imm8 m256 ymm ymm -// VPERM2I128 imm8 ymm ymm ymm -// -// Construct and append a VPERM2I128 instruction to the active function. -func (c *Context) VPERM2I128(i, my, y, y1 operand.Op) { - c.addinstruction(x86.VPERM2I128(i, my, y, y1)) -} - -// VPERM2I128: Permute 128-Bit Integer Values. -// -// Forms: -// -// VPERM2I128 imm8 m256 ymm ymm -// VPERM2I128 imm8 ymm ymm ymm -// -// Construct and append a VPERM2I128 instruction to the active function. -// Operates on the global context. -func VPERM2I128(i, my, y, y1 operand.Op) { ctx.VPERM2I128(i, my, y, y1) } - -// VPERMB: Permute Byte Integers. -// -// Forms: -// -// VPERMB m128 xmm k xmm -// VPERMB m128 xmm xmm -// VPERMB m256 ymm k ymm -// VPERMB m256 ymm ymm -// VPERMB xmm xmm k xmm -// VPERMB xmm xmm xmm -// VPERMB ymm ymm k ymm -// VPERMB ymm ymm ymm -// VPERMB m512 zmm k zmm -// VPERMB m512 zmm zmm -// VPERMB zmm zmm k zmm -// VPERMB zmm zmm zmm -// -// Construct and append a VPERMB instruction to the active function. -func (c *Context) VPERMB(ops ...operand.Op) { - c.addinstruction(x86.VPERMB(ops...)) -} - -// VPERMB: Permute Byte Integers. -// -// Forms: -// -// VPERMB m128 xmm k xmm -// VPERMB m128 xmm xmm -// VPERMB m256 ymm k ymm -// VPERMB m256 ymm ymm -// VPERMB xmm xmm k xmm -// VPERMB xmm xmm xmm -// VPERMB ymm ymm k ymm -// VPERMB ymm ymm ymm -// VPERMB m512 zmm k zmm -// VPERMB m512 zmm zmm -// VPERMB zmm zmm k zmm -// VPERMB zmm zmm zmm -// -// Construct and append a VPERMB instruction to the active function. -// Operates on the global context. -func VPERMB(ops ...operand.Op) { ctx.VPERMB(ops...) } - -// VPERMB_Z: Permute Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPERMB.Z m128 xmm k xmm -// VPERMB.Z m256 ymm k ymm -// VPERMB.Z xmm xmm k xmm -// VPERMB.Z ymm ymm k ymm -// VPERMB.Z m512 zmm k zmm -// VPERMB.Z zmm zmm k zmm -// -// Construct and append a VPERMB.Z instruction to the active function. -func (c *Context) VPERMB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMB_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMB_Z: Permute Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPERMB.Z m128 xmm k xmm -// VPERMB.Z m256 ymm k ymm -// VPERMB.Z xmm xmm k xmm -// VPERMB.Z ymm ymm k ymm -// VPERMB.Z m512 zmm k zmm -// VPERMB.Z zmm zmm k zmm -// -// Construct and append a VPERMB.Z instruction to the active function. -// Operates on the global context. -func VPERMB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMB_Z(mxyz, xyz, k, xyz1) } - -// VPERMD: Permute Doubleword Integers. -// -// Forms: -// -// VPERMD m256 ymm ymm -// VPERMD ymm ymm ymm -// VPERMD m256 ymm k ymm -// VPERMD ymm ymm k ymm -// VPERMD m512 zmm k zmm -// VPERMD m512 zmm zmm -// VPERMD zmm zmm k zmm -// VPERMD zmm zmm zmm -// -// Construct and append a VPERMD instruction to the active function. -func (c *Context) VPERMD(ops ...operand.Op) { - c.addinstruction(x86.VPERMD(ops...)) -} - -// VPERMD: Permute Doubleword Integers. -// -// Forms: -// -// VPERMD m256 ymm ymm -// VPERMD ymm ymm ymm -// VPERMD m256 ymm k ymm -// VPERMD ymm ymm k ymm -// VPERMD m512 zmm k zmm -// VPERMD m512 zmm zmm -// VPERMD zmm zmm k zmm -// VPERMD zmm zmm zmm -// -// Construct and append a VPERMD instruction to the active function. -// Operates on the global context. -func VPERMD(ops ...operand.Op) { ctx.VPERMD(ops...) } - -// VPERMD_BCST: Permute Doubleword Integers (Broadcast). -// -// Forms: -// -// VPERMD.BCST m32 ymm k ymm -// VPERMD.BCST m32 ymm ymm -// VPERMD.BCST m32 zmm k zmm -// VPERMD.BCST m32 zmm zmm -// -// Construct and append a VPERMD.BCST instruction to the active function. -func (c *Context) VPERMD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMD_BCST(ops...)) -} - -// VPERMD_BCST: Permute Doubleword Integers (Broadcast). -// -// Forms: -// -// VPERMD.BCST m32 ymm k ymm -// VPERMD.BCST m32 ymm ymm -// VPERMD.BCST m32 zmm k zmm -// VPERMD.BCST m32 zmm zmm -// -// Construct and append a VPERMD.BCST instruction to the active function. -// Operates on the global context. -func VPERMD_BCST(ops ...operand.Op) { ctx.VPERMD_BCST(ops...) } - -// VPERMD_BCST_Z: Permute Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMD.BCST.Z m32 ymm k ymm -// VPERMD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMD.BCST.Z instruction to the active function. -func (c *Context) VPERMD_BCST_Z(m, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VPERMD_BCST_Z(m, yz, k, yz1)) -} - -// VPERMD_BCST_Z: Permute Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMD.BCST.Z m32 ymm k ymm -// VPERMD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMD_BCST_Z(m, yz, k, yz1 operand.Op) { ctx.VPERMD_BCST_Z(m, yz, k, yz1) } - -// VPERMD_Z: Permute Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPERMD.Z m256 ymm k ymm -// VPERMD.Z ymm ymm k ymm -// VPERMD.Z m512 zmm k zmm -// VPERMD.Z zmm zmm k zmm -// -// Construct and append a VPERMD.Z instruction to the active function. -func (c *Context) VPERMD_Z(myz, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VPERMD_Z(myz, yz, k, yz1)) -} - -// VPERMD_Z: Permute Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPERMD.Z m256 ymm k ymm -// VPERMD.Z ymm ymm k ymm -// VPERMD.Z m512 zmm k zmm -// VPERMD.Z zmm zmm k zmm -// -// Construct and append a VPERMD.Z instruction to the active function. -// Operates on the global context. -func VPERMD_Z(myz, yz, k, yz1 operand.Op) { ctx.VPERMD_Z(myz, yz, k, yz1) } - -// VPERMI2B: Full Permute of Bytes From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2B m128 xmm k xmm -// VPERMI2B m128 xmm xmm -// VPERMI2B m256 ymm k ymm -// VPERMI2B m256 ymm ymm -// VPERMI2B xmm xmm k xmm -// VPERMI2B xmm xmm xmm -// VPERMI2B ymm ymm k ymm -// VPERMI2B ymm ymm ymm -// VPERMI2B m512 zmm k zmm -// VPERMI2B m512 zmm zmm -// VPERMI2B zmm zmm k zmm -// VPERMI2B zmm zmm zmm -// -// Construct and append a VPERMI2B instruction to the active function. -func (c *Context) VPERMI2B(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2B(ops...)) -} - -// VPERMI2B: Full Permute of Bytes From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2B m128 xmm k xmm -// VPERMI2B m128 xmm xmm -// VPERMI2B m256 ymm k ymm -// VPERMI2B m256 ymm ymm -// VPERMI2B xmm xmm k xmm -// VPERMI2B xmm xmm xmm -// VPERMI2B ymm ymm k ymm -// VPERMI2B ymm ymm ymm -// VPERMI2B m512 zmm k zmm -// VPERMI2B m512 zmm zmm -// VPERMI2B zmm zmm k zmm -// VPERMI2B zmm zmm zmm -// -// Construct and append a VPERMI2B instruction to the active function. -// Operates on the global context. -func VPERMI2B(ops ...operand.Op) { ctx.VPERMI2B(ops...) } - -// VPERMI2B_Z: Full Permute of Bytes From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2B.Z m128 xmm k xmm -// VPERMI2B.Z m256 ymm k ymm -// VPERMI2B.Z xmm xmm k xmm -// VPERMI2B.Z ymm ymm k ymm -// VPERMI2B.Z m512 zmm k zmm -// VPERMI2B.Z zmm zmm k zmm -// -// Construct and append a VPERMI2B.Z instruction to the active function. -func (c *Context) VPERMI2B_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2B_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMI2B_Z: Full Permute of Bytes From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2B.Z m128 xmm k xmm -// VPERMI2B.Z m256 ymm k ymm -// VPERMI2B.Z xmm xmm k xmm -// VPERMI2B.Z ymm ymm k ymm -// VPERMI2B.Z m512 zmm k zmm -// VPERMI2B.Z zmm zmm k zmm -// -// Construct and append a VPERMI2B.Z instruction to the active function. -// Operates on the global context. -func VPERMI2B_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMI2B_Z(mxyz, xyz, k, xyz1) } - -// VPERMI2D: Full Permute of Doublewords From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2D m128 xmm k xmm -// VPERMI2D m128 xmm xmm -// VPERMI2D m256 ymm k ymm -// VPERMI2D m256 ymm ymm -// VPERMI2D xmm xmm k xmm -// VPERMI2D xmm xmm xmm -// VPERMI2D ymm ymm k ymm -// VPERMI2D ymm ymm ymm -// VPERMI2D m512 zmm k zmm -// VPERMI2D m512 zmm zmm -// VPERMI2D zmm zmm k zmm -// VPERMI2D zmm zmm zmm -// -// Construct and append a VPERMI2D instruction to the active function. -func (c *Context) VPERMI2D(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2D(ops...)) -} - -// VPERMI2D: Full Permute of Doublewords From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2D m128 xmm k xmm -// VPERMI2D m128 xmm xmm -// VPERMI2D m256 ymm k ymm -// VPERMI2D m256 ymm ymm -// VPERMI2D xmm xmm k xmm -// VPERMI2D xmm xmm xmm -// VPERMI2D ymm ymm k ymm -// VPERMI2D ymm ymm ymm -// VPERMI2D m512 zmm k zmm -// VPERMI2D m512 zmm zmm -// VPERMI2D zmm zmm k zmm -// VPERMI2D zmm zmm zmm -// -// Construct and append a VPERMI2D instruction to the active function. -// Operates on the global context. -func VPERMI2D(ops ...operand.Op) { ctx.VPERMI2D(ops...) } - -// VPERMI2D_BCST: Full Permute of Doublewords From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2D.BCST m32 xmm k xmm -// VPERMI2D.BCST m32 xmm xmm -// VPERMI2D.BCST m32 ymm k ymm -// VPERMI2D.BCST m32 ymm ymm -// VPERMI2D.BCST m32 zmm k zmm -// VPERMI2D.BCST m32 zmm zmm -// -// Construct and append a VPERMI2D.BCST instruction to the active function. -func (c *Context) VPERMI2D_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2D_BCST(ops...)) -} - -// VPERMI2D_BCST: Full Permute of Doublewords From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2D.BCST m32 xmm k xmm -// VPERMI2D.BCST m32 xmm xmm -// VPERMI2D.BCST m32 ymm k ymm -// VPERMI2D.BCST m32 ymm ymm -// VPERMI2D.BCST m32 zmm k zmm -// VPERMI2D.BCST m32 zmm zmm -// -// Construct and append a VPERMI2D.BCST instruction to the active function. -// Operates on the global context. -func VPERMI2D_BCST(ops ...operand.Op) { ctx.VPERMI2D_BCST(ops...) } - -// VPERMI2D_BCST_Z: Full Permute of Doublewords From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2D.BCST.Z m32 xmm k xmm -// VPERMI2D.BCST.Z m32 ymm k ymm -// VPERMI2D.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMI2D.BCST.Z instruction to the active function. -func (c *Context) VPERMI2D_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2D_BCST_Z(m, xyz, k, xyz1)) -} - -// VPERMI2D_BCST_Z: Full Permute of Doublewords From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2D.BCST.Z m32 xmm k xmm -// VPERMI2D.BCST.Z m32 ymm k ymm -// VPERMI2D.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMI2D.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMI2D_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPERMI2D_BCST_Z(m, xyz, k, xyz1) } - -// VPERMI2D_Z: Full Permute of Doublewords From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2D.Z m128 xmm k xmm -// VPERMI2D.Z m256 ymm k ymm -// VPERMI2D.Z xmm xmm k xmm -// VPERMI2D.Z ymm ymm k ymm -// VPERMI2D.Z m512 zmm k zmm -// VPERMI2D.Z zmm zmm k zmm -// -// Construct and append a VPERMI2D.Z instruction to the active function. -func (c *Context) VPERMI2D_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2D_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMI2D_Z: Full Permute of Doublewords From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2D.Z m128 xmm k xmm -// VPERMI2D.Z m256 ymm k ymm -// VPERMI2D.Z xmm xmm k xmm -// VPERMI2D.Z ymm ymm k ymm -// VPERMI2D.Z m512 zmm k zmm -// VPERMI2D.Z zmm zmm k zmm -// -// Construct and append a VPERMI2D.Z instruction to the active function. -// Operates on the global context. -func VPERMI2D_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMI2D_Z(mxyz, xyz, k, xyz1) } - -// VPERMI2PD: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2PD m128 xmm k xmm -// VPERMI2PD m128 xmm xmm -// VPERMI2PD m256 ymm k ymm -// VPERMI2PD m256 ymm ymm -// VPERMI2PD xmm xmm k xmm -// VPERMI2PD xmm xmm xmm -// VPERMI2PD ymm ymm k ymm -// VPERMI2PD ymm ymm ymm -// VPERMI2PD m512 zmm k zmm -// VPERMI2PD m512 zmm zmm -// VPERMI2PD zmm zmm k zmm -// VPERMI2PD zmm zmm zmm -// -// Construct and append a VPERMI2PD instruction to the active function. -func (c *Context) VPERMI2PD(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2PD(ops...)) -} - -// VPERMI2PD: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2PD m128 xmm k xmm -// VPERMI2PD m128 xmm xmm -// VPERMI2PD m256 ymm k ymm -// VPERMI2PD m256 ymm ymm -// VPERMI2PD xmm xmm k xmm -// VPERMI2PD xmm xmm xmm -// VPERMI2PD ymm ymm k ymm -// VPERMI2PD ymm ymm ymm -// VPERMI2PD m512 zmm k zmm -// VPERMI2PD m512 zmm zmm -// VPERMI2PD zmm zmm k zmm -// VPERMI2PD zmm zmm zmm -// -// Construct and append a VPERMI2PD instruction to the active function. -// Operates on the global context. -func VPERMI2PD(ops ...operand.Op) { ctx.VPERMI2PD(ops...) } - -// VPERMI2PD_BCST: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2PD.BCST m64 xmm k xmm -// VPERMI2PD.BCST m64 xmm xmm -// VPERMI2PD.BCST m64 ymm k ymm -// VPERMI2PD.BCST m64 ymm ymm -// VPERMI2PD.BCST m64 zmm k zmm -// VPERMI2PD.BCST m64 zmm zmm -// -// Construct and append a VPERMI2PD.BCST instruction to the active function. -func (c *Context) VPERMI2PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2PD_BCST(ops...)) -} - -// VPERMI2PD_BCST: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2PD.BCST m64 xmm k xmm -// VPERMI2PD.BCST m64 xmm xmm -// VPERMI2PD.BCST m64 ymm k ymm -// VPERMI2PD.BCST m64 ymm ymm -// VPERMI2PD.BCST m64 zmm k zmm -// VPERMI2PD.BCST m64 zmm zmm -// -// Construct and append a VPERMI2PD.BCST instruction to the active function. -// Operates on the global context. -func VPERMI2PD_BCST(ops ...operand.Op) { ctx.VPERMI2PD_BCST(ops...) } - -// VPERMI2PD_BCST_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2PD.BCST.Z m64 xmm k xmm -// VPERMI2PD.BCST.Z m64 ymm k ymm -// VPERMI2PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMI2PD.BCST.Z instruction to the active function. -func (c *Context) VPERMI2PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPERMI2PD_BCST_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2PD.BCST.Z m64 xmm k xmm -// VPERMI2PD.BCST.Z m64 ymm k ymm -// VPERMI2PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMI2PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMI2PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPERMI2PD_BCST_Z(m, xyz, k, xyz1) } - -// VPERMI2PD_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2PD.Z m128 xmm k xmm -// VPERMI2PD.Z m256 ymm k ymm -// VPERMI2PD.Z xmm xmm k xmm -// VPERMI2PD.Z ymm ymm k ymm -// VPERMI2PD.Z m512 zmm k zmm -// VPERMI2PD.Z zmm zmm k zmm -// -// Construct and append a VPERMI2PD.Z instruction to the active function. -func (c *Context) VPERMI2PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2PD_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMI2PD_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2PD.Z m128 xmm k xmm -// VPERMI2PD.Z m256 ymm k ymm -// VPERMI2PD.Z xmm xmm k xmm -// VPERMI2PD.Z ymm ymm k ymm -// VPERMI2PD.Z m512 zmm k zmm -// VPERMI2PD.Z zmm zmm k zmm -// -// Construct and append a VPERMI2PD.Z instruction to the active function. -// Operates on the global context. -func VPERMI2PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMI2PD_Z(mxyz, xyz, k, xyz1) } - -// VPERMI2PS: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2PS m128 xmm k xmm -// VPERMI2PS m128 xmm xmm -// VPERMI2PS m256 ymm k ymm -// VPERMI2PS m256 ymm ymm -// VPERMI2PS xmm xmm k xmm -// VPERMI2PS xmm xmm xmm -// VPERMI2PS ymm ymm k ymm -// VPERMI2PS ymm ymm ymm -// VPERMI2PS m512 zmm k zmm -// VPERMI2PS m512 zmm zmm -// VPERMI2PS zmm zmm k zmm -// VPERMI2PS zmm zmm zmm -// -// Construct and append a VPERMI2PS instruction to the active function. -func (c *Context) VPERMI2PS(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2PS(ops...)) -} - -// VPERMI2PS: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2PS m128 xmm k xmm -// VPERMI2PS m128 xmm xmm -// VPERMI2PS m256 ymm k ymm -// VPERMI2PS m256 ymm ymm -// VPERMI2PS xmm xmm k xmm -// VPERMI2PS xmm xmm xmm -// VPERMI2PS ymm ymm k ymm -// VPERMI2PS ymm ymm ymm -// VPERMI2PS m512 zmm k zmm -// VPERMI2PS m512 zmm zmm -// VPERMI2PS zmm zmm k zmm -// VPERMI2PS zmm zmm zmm -// -// Construct and append a VPERMI2PS instruction to the active function. -// Operates on the global context. -func VPERMI2PS(ops ...operand.Op) { ctx.VPERMI2PS(ops...) } - -// VPERMI2PS_BCST: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2PS.BCST m32 xmm k xmm -// VPERMI2PS.BCST m32 xmm xmm -// VPERMI2PS.BCST m32 ymm k ymm -// VPERMI2PS.BCST m32 ymm ymm -// VPERMI2PS.BCST m32 zmm k zmm -// VPERMI2PS.BCST m32 zmm zmm -// -// Construct and append a VPERMI2PS.BCST instruction to the active function. -func (c *Context) VPERMI2PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2PS_BCST(ops...)) -} - -// VPERMI2PS_BCST: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2PS.BCST m32 xmm k xmm -// VPERMI2PS.BCST m32 xmm xmm -// VPERMI2PS.BCST m32 ymm k ymm -// VPERMI2PS.BCST m32 ymm ymm -// VPERMI2PS.BCST m32 zmm k zmm -// VPERMI2PS.BCST m32 zmm zmm -// -// Construct and append a VPERMI2PS.BCST instruction to the active function. -// Operates on the global context. -func VPERMI2PS_BCST(ops ...operand.Op) { ctx.VPERMI2PS_BCST(ops...) } - -// VPERMI2PS_BCST_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2PS.BCST.Z m32 xmm k xmm -// VPERMI2PS.BCST.Z m32 ymm k ymm -// VPERMI2PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMI2PS.BCST.Z instruction to the active function. -func (c *Context) VPERMI2PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VPERMI2PS_BCST_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2PS.BCST.Z m32 xmm k xmm -// VPERMI2PS.BCST.Z m32 ymm k ymm -// VPERMI2PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMI2PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMI2PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPERMI2PS_BCST_Z(m, xyz, k, xyz1) } - -// VPERMI2PS_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2PS.Z m128 xmm k xmm -// VPERMI2PS.Z m256 ymm k ymm -// VPERMI2PS.Z xmm xmm k xmm -// VPERMI2PS.Z ymm ymm k ymm -// VPERMI2PS.Z m512 zmm k zmm -// VPERMI2PS.Z zmm zmm k zmm -// -// Construct and append a VPERMI2PS.Z instruction to the active function. -func (c *Context) VPERMI2PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2PS_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMI2PS_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2PS.Z m128 xmm k xmm -// VPERMI2PS.Z m256 ymm k ymm -// VPERMI2PS.Z xmm xmm k xmm -// VPERMI2PS.Z ymm ymm k ymm -// VPERMI2PS.Z m512 zmm k zmm -// VPERMI2PS.Z zmm zmm k zmm -// -// Construct and append a VPERMI2PS.Z instruction to the active function. -// Operates on the global context. -func VPERMI2PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMI2PS_Z(mxyz, xyz, k, xyz1) } - -// VPERMI2Q: Full Permute of Quadwords From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2Q m128 xmm k xmm -// VPERMI2Q m128 xmm xmm -// VPERMI2Q m256 ymm k ymm -// VPERMI2Q m256 ymm ymm -// VPERMI2Q xmm xmm k xmm -// VPERMI2Q xmm xmm xmm -// VPERMI2Q ymm ymm k ymm -// VPERMI2Q ymm ymm ymm -// VPERMI2Q m512 zmm k zmm -// VPERMI2Q m512 zmm zmm -// VPERMI2Q zmm zmm k zmm -// VPERMI2Q zmm zmm zmm -// -// Construct and append a VPERMI2Q instruction to the active function. -func (c *Context) VPERMI2Q(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2Q(ops...)) -} - -// VPERMI2Q: Full Permute of Quadwords From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2Q m128 xmm k xmm -// VPERMI2Q m128 xmm xmm -// VPERMI2Q m256 ymm k ymm -// VPERMI2Q m256 ymm ymm -// VPERMI2Q xmm xmm k xmm -// VPERMI2Q xmm xmm xmm -// VPERMI2Q ymm ymm k ymm -// VPERMI2Q ymm ymm ymm -// VPERMI2Q m512 zmm k zmm -// VPERMI2Q m512 zmm zmm -// VPERMI2Q zmm zmm k zmm -// VPERMI2Q zmm zmm zmm -// -// Construct and append a VPERMI2Q instruction to the active function. -// Operates on the global context. -func VPERMI2Q(ops ...operand.Op) { ctx.VPERMI2Q(ops...) } - -// VPERMI2Q_BCST: Full Permute of Quadwords From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2Q.BCST m64 xmm k xmm -// VPERMI2Q.BCST m64 xmm xmm -// VPERMI2Q.BCST m64 ymm k ymm -// VPERMI2Q.BCST m64 ymm ymm -// VPERMI2Q.BCST m64 zmm k zmm -// VPERMI2Q.BCST m64 zmm zmm -// -// Construct and append a VPERMI2Q.BCST instruction to the active function. -func (c *Context) VPERMI2Q_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2Q_BCST(ops...)) -} - -// VPERMI2Q_BCST: Full Permute of Quadwords From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2Q.BCST m64 xmm k xmm -// VPERMI2Q.BCST m64 xmm xmm -// VPERMI2Q.BCST m64 ymm k ymm -// VPERMI2Q.BCST m64 ymm ymm -// VPERMI2Q.BCST m64 zmm k zmm -// VPERMI2Q.BCST m64 zmm zmm -// -// Construct and append a VPERMI2Q.BCST instruction to the active function. -// Operates on the global context. -func VPERMI2Q_BCST(ops ...operand.Op) { ctx.VPERMI2Q_BCST(ops...) } - -// VPERMI2Q_BCST_Z: Full Permute of Quadwords From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2Q.BCST.Z m64 xmm k xmm -// VPERMI2Q.BCST.Z m64 ymm k ymm -// VPERMI2Q.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMI2Q.BCST.Z instruction to the active function. -func (c *Context) VPERMI2Q_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2Q_BCST_Z(m, xyz, k, xyz1)) -} - -// VPERMI2Q_BCST_Z: Full Permute of Quadwords From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2Q.BCST.Z m64 xmm k xmm -// VPERMI2Q.BCST.Z m64 ymm k ymm -// VPERMI2Q.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMI2Q.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMI2Q_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPERMI2Q_BCST_Z(m, xyz, k, xyz1) } - -// VPERMI2Q_Z: Full Permute of Quadwords From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2Q.Z m128 xmm k xmm -// VPERMI2Q.Z m256 ymm k ymm -// VPERMI2Q.Z xmm xmm k xmm -// VPERMI2Q.Z ymm ymm k ymm -// VPERMI2Q.Z m512 zmm k zmm -// VPERMI2Q.Z zmm zmm k zmm -// -// Construct and append a VPERMI2Q.Z instruction to the active function. -func (c *Context) VPERMI2Q_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2Q_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMI2Q_Z: Full Permute of Quadwords From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2Q.Z m128 xmm k xmm -// VPERMI2Q.Z m256 ymm k ymm -// VPERMI2Q.Z xmm xmm k xmm -// VPERMI2Q.Z ymm ymm k ymm -// VPERMI2Q.Z m512 zmm k zmm -// VPERMI2Q.Z zmm zmm k zmm -// -// Construct and append a VPERMI2Q.Z instruction to the active function. -// Operates on the global context. -func VPERMI2Q_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMI2Q_Z(mxyz, xyz, k, xyz1) } - -// VPERMI2W: Full Permute of Words From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2W m128 xmm k xmm -// VPERMI2W m128 xmm xmm -// VPERMI2W m256 ymm k ymm -// VPERMI2W m256 ymm ymm -// VPERMI2W xmm xmm k xmm -// VPERMI2W xmm xmm xmm -// VPERMI2W ymm ymm k ymm -// VPERMI2W ymm ymm ymm -// VPERMI2W m512 zmm k zmm -// VPERMI2W m512 zmm zmm -// VPERMI2W zmm zmm k zmm -// VPERMI2W zmm zmm zmm -// -// Construct and append a VPERMI2W instruction to the active function. -func (c *Context) VPERMI2W(ops ...operand.Op) { - c.addinstruction(x86.VPERMI2W(ops...)) -} - -// VPERMI2W: Full Permute of Words From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2W m128 xmm k xmm -// VPERMI2W m128 xmm xmm -// VPERMI2W m256 ymm k ymm -// VPERMI2W m256 ymm ymm -// VPERMI2W xmm xmm k xmm -// VPERMI2W xmm xmm xmm -// VPERMI2W ymm ymm k ymm -// VPERMI2W ymm ymm ymm -// VPERMI2W m512 zmm k zmm -// VPERMI2W m512 zmm zmm -// VPERMI2W zmm zmm k zmm -// VPERMI2W zmm zmm zmm -// -// Construct and append a VPERMI2W instruction to the active function. -// Operates on the global context. -func VPERMI2W(ops ...operand.Op) { ctx.VPERMI2W(ops...) } - -// VPERMI2W_Z: Full Permute of Words From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2W.Z m128 xmm k xmm -// VPERMI2W.Z m256 ymm k ymm -// VPERMI2W.Z xmm xmm k xmm -// VPERMI2W.Z ymm ymm k ymm -// VPERMI2W.Z m512 zmm k zmm -// VPERMI2W.Z zmm zmm k zmm -// -// Construct and append a VPERMI2W.Z instruction to the active function. -func (c *Context) VPERMI2W_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMI2W_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMI2W_Z: Full Permute of Words From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2W.Z m128 xmm k xmm -// VPERMI2W.Z m256 ymm k ymm -// VPERMI2W.Z xmm xmm k xmm -// VPERMI2W.Z ymm ymm k ymm -// VPERMI2W.Z m512 zmm k zmm -// VPERMI2W.Z zmm zmm k zmm -// -// Construct and append a VPERMI2W.Z instruction to the active function. -// Operates on the global context. -func VPERMI2W_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMI2W_Z(mxyz, xyz, k, xyz1) } - -// VPERMILPD: Permute Double-Precision Floating-Point Values. -// -// Forms: -// -// VPERMILPD imm8 m128 xmm -// VPERMILPD imm8 m256 ymm -// VPERMILPD imm8 xmm xmm -// VPERMILPD imm8 ymm ymm -// VPERMILPD m128 xmm xmm -// VPERMILPD m256 ymm ymm -// VPERMILPD xmm xmm xmm -// VPERMILPD ymm ymm ymm -// VPERMILPD imm8 m128 k xmm -// VPERMILPD imm8 m256 k ymm -// VPERMILPD imm8 xmm k xmm -// VPERMILPD imm8 ymm k ymm -// VPERMILPD m128 xmm k xmm -// VPERMILPD m256 ymm k ymm -// VPERMILPD xmm xmm k xmm -// VPERMILPD ymm ymm k ymm -// VPERMILPD imm8 m512 k zmm -// VPERMILPD imm8 m512 zmm -// VPERMILPD imm8 zmm k zmm -// VPERMILPD imm8 zmm zmm -// VPERMILPD m512 zmm k zmm -// VPERMILPD m512 zmm zmm -// VPERMILPD zmm zmm k zmm -// VPERMILPD zmm zmm zmm -// -// Construct and append a VPERMILPD instruction to the active function. -func (c *Context) VPERMILPD(ops ...operand.Op) { - c.addinstruction(x86.VPERMILPD(ops...)) -} - -// VPERMILPD: Permute Double-Precision Floating-Point Values. -// -// Forms: -// -// VPERMILPD imm8 m128 xmm -// VPERMILPD imm8 m256 ymm -// VPERMILPD imm8 xmm xmm -// VPERMILPD imm8 ymm ymm -// VPERMILPD m128 xmm xmm -// VPERMILPD m256 ymm ymm -// VPERMILPD xmm xmm xmm -// VPERMILPD ymm ymm ymm -// VPERMILPD imm8 m128 k xmm -// VPERMILPD imm8 m256 k ymm -// VPERMILPD imm8 xmm k xmm -// VPERMILPD imm8 ymm k ymm -// VPERMILPD m128 xmm k xmm -// VPERMILPD m256 ymm k ymm -// VPERMILPD xmm xmm k xmm -// VPERMILPD ymm ymm k ymm -// VPERMILPD imm8 m512 k zmm -// VPERMILPD imm8 m512 zmm -// VPERMILPD imm8 zmm k zmm -// VPERMILPD imm8 zmm zmm -// VPERMILPD m512 zmm k zmm -// VPERMILPD m512 zmm zmm -// VPERMILPD zmm zmm k zmm -// VPERMILPD zmm zmm zmm -// -// Construct and append a VPERMILPD instruction to the active function. -// Operates on the global context. -func VPERMILPD(ops ...operand.Op) { ctx.VPERMILPD(ops...) } - -// VPERMILPD_BCST: Permute Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VPERMILPD.BCST imm8 m64 k xmm -// VPERMILPD.BCST imm8 m64 k ymm -// VPERMILPD.BCST imm8 m64 xmm -// VPERMILPD.BCST imm8 m64 ymm -// VPERMILPD.BCST m64 xmm k xmm -// VPERMILPD.BCST m64 xmm xmm -// VPERMILPD.BCST m64 ymm k ymm -// VPERMILPD.BCST m64 ymm ymm -// VPERMILPD.BCST imm8 m64 k zmm -// VPERMILPD.BCST imm8 m64 zmm -// VPERMILPD.BCST m64 zmm k zmm -// VPERMILPD.BCST m64 zmm zmm -// -// Construct and append a VPERMILPD.BCST instruction to the active function. -func (c *Context) VPERMILPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMILPD_BCST(ops...)) -} - -// VPERMILPD_BCST: Permute Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VPERMILPD.BCST imm8 m64 k xmm -// VPERMILPD.BCST imm8 m64 k ymm -// VPERMILPD.BCST imm8 m64 xmm -// VPERMILPD.BCST imm8 m64 ymm -// VPERMILPD.BCST m64 xmm k xmm -// VPERMILPD.BCST m64 xmm xmm -// VPERMILPD.BCST m64 ymm k ymm -// VPERMILPD.BCST m64 ymm ymm -// VPERMILPD.BCST imm8 m64 k zmm -// VPERMILPD.BCST imm8 m64 zmm -// VPERMILPD.BCST m64 zmm k zmm -// VPERMILPD.BCST m64 zmm zmm -// -// Construct and append a VPERMILPD.BCST instruction to the active function. -// Operates on the global context. -func VPERMILPD_BCST(ops ...operand.Op) { ctx.VPERMILPD_BCST(ops...) } - -// VPERMILPD_BCST_Z: Permute Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMILPD.BCST.Z imm8 m64 k xmm -// VPERMILPD.BCST.Z imm8 m64 k ymm -// VPERMILPD.BCST.Z m64 xmm k xmm -// VPERMILPD.BCST.Z m64 ymm k ymm -// VPERMILPD.BCST.Z imm8 m64 k zmm -// VPERMILPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMILPD.BCST.Z instruction to the active function. -func (c *Context) VPERMILPD_BCST_Z(im, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPERMILPD_BCST_Z(im, mxyz, k, xyz)) -} - -// VPERMILPD_BCST_Z: Permute Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMILPD.BCST.Z imm8 m64 k xmm -// VPERMILPD.BCST.Z imm8 m64 k ymm -// VPERMILPD.BCST.Z m64 xmm k xmm -// VPERMILPD.BCST.Z m64 ymm k ymm -// VPERMILPD.BCST.Z imm8 m64 k zmm -// VPERMILPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMILPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMILPD_BCST_Z(im, mxyz, k, xyz operand.Op) { ctx.VPERMILPD_BCST_Z(im, mxyz, k, xyz) } - -// VPERMILPD_Z: Permute Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VPERMILPD.Z imm8 m128 k xmm -// VPERMILPD.Z imm8 m256 k ymm -// VPERMILPD.Z imm8 xmm k xmm -// VPERMILPD.Z imm8 ymm k ymm -// VPERMILPD.Z m128 xmm k xmm -// VPERMILPD.Z m256 ymm k ymm -// VPERMILPD.Z xmm xmm k xmm -// VPERMILPD.Z ymm ymm k ymm -// VPERMILPD.Z imm8 m512 k zmm -// VPERMILPD.Z imm8 zmm k zmm -// VPERMILPD.Z m512 zmm k zmm -// VPERMILPD.Z zmm zmm k zmm -// -// Construct and append a VPERMILPD.Z instruction to the active function. -func (c *Context) VPERMILPD_Z(imxyz, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPERMILPD_Z(imxyz, mxyz, k, xyz)) -} - -// VPERMILPD_Z: Permute Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VPERMILPD.Z imm8 m128 k xmm -// VPERMILPD.Z imm8 m256 k ymm -// VPERMILPD.Z imm8 xmm k xmm -// VPERMILPD.Z imm8 ymm k ymm -// VPERMILPD.Z m128 xmm k xmm -// VPERMILPD.Z m256 ymm k ymm -// VPERMILPD.Z xmm xmm k xmm -// VPERMILPD.Z ymm ymm k ymm -// VPERMILPD.Z imm8 m512 k zmm -// VPERMILPD.Z imm8 zmm k zmm -// VPERMILPD.Z m512 zmm k zmm -// VPERMILPD.Z zmm zmm k zmm -// -// Construct and append a VPERMILPD.Z instruction to the active function. -// Operates on the global context. -func VPERMILPD_Z(imxyz, mxyz, k, xyz operand.Op) { ctx.VPERMILPD_Z(imxyz, mxyz, k, xyz) } - -// VPERMILPS: Permute Single-Precision Floating-Point Values. -// -// Forms: -// -// VPERMILPS imm8 m128 xmm -// VPERMILPS imm8 m256 ymm -// VPERMILPS imm8 xmm xmm -// VPERMILPS imm8 ymm ymm -// VPERMILPS m128 xmm xmm -// VPERMILPS m256 ymm ymm -// VPERMILPS xmm xmm xmm -// VPERMILPS ymm ymm ymm -// VPERMILPS imm8 m128 k xmm -// VPERMILPS imm8 m256 k ymm -// VPERMILPS imm8 xmm k xmm -// VPERMILPS imm8 ymm k ymm -// VPERMILPS m128 xmm k xmm -// VPERMILPS m256 ymm k ymm -// VPERMILPS xmm xmm k xmm -// VPERMILPS ymm ymm k ymm -// VPERMILPS imm8 m512 k zmm -// VPERMILPS imm8 m512 zmm -// VPERMILPS imm8 zmm k zmm -// VPERMILPS imm8 zmm zmm -// VPERMILPS m512 zmm k zmm -// VPERMILPS m512 zmm zmm -// VPERMILPS zmm zmm k zmm -// VPERMILPS zmm zmm zmm -// -// Construct and append a VPERMILPS instruction to the active function. -func (c *Context) VPERMILPS(ops ...operand.Op) { - c.addinstruction(x86.VPERMILPS(ops...)) -} - -// VPERMILPS: Permute Single-Precision Floating-Point Values. -// -// Forms: -// -// VPERMILPS imm8 m128 xmm -// VPERMILPS imm8 m256 ymm -// VPERMILPS imm8 xmm xmm -// VPERMILPS imm8 ymm ymm -// VPERMILPS m128 xmm xmm -// VPERMILPS m256 ymm ymm -// VPERMILPS xmm xmm xmm -// VPERMILPS ymm ymm ymm -// VPERMILPS imm8 m128 k xmm -// VPERMILPS imm8 m256 k ymm -// VPERMILPS imm8 xmm k xmm -// VPERMILPS imm8 ymm k ymm -// VPERMILPS m128 xmm k xmm -// VPERMILPS m256 ymm k ymm -// VPERMILPS xmm xmm k xmm -// VPERMILPS ymm ymm k ymm -// VPERMILPS imm8 m512 k zmm -// VPERMILPS imm8 m512 zmm -// VPERMILPS imm8 zmm k zmm -// VPERMILPS imm8 zmm zmm -// VPERMILPS m512 zmm k zmm -// VPERMILPS m512 zmm zmm -// VPERMILPS zmm zmm k zmm -// VPERMILPS zmm zmm zmm -// -// Construct and append a VPERMILPS instruction to the active function. -// Operates on the global context. -func VPERMILPS(ops ...operand.Op) { ctx.VPERMILPS(ops...) } - -// VPERMILPS_BCST: Permute Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VPERMILPS.BCST imm8 m32 k xmm -// VPERMILPS.BCST imm8 m32 k ymm -// VPERMILPS.BCST imm8 m32 xmm -// VPERMILPS.BCST imm8 m32 ymm -// VPERMILPS.BCST m32 xmm k xmm -// VPERMILPS.BCST m32 xmm xmm -// VPERMILPS.BCST m32 ymm k ymm -// VPERMILPS.BCST m32 ymm ymm -// VPERMILPS.BCST imm8 m32 k zmm -// VPERMILPS.BCST imm8 m32 zmm -// VPERMILPS.BCST m32 zmm k zmm -// VPERMILPS.BCST m32 zmm zmm -// -// Construct and append a VPERMILPS.BCST instruction to the active function. -func (c *Context) VPERMILPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMILPS_BCST(ops...)) -} - -// VPERMILPS_BCST: Permute Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VPERMILPS.BCST imm8 m32 k xmm -// VPERMILPS.BCST imm8 m32 k ymm -// VPERMILPS.BCST imm8 m32 xmm -// VPERMILPS.BCST imm8 m32 ymm -// VPERMILPS.BCST m32 xmm k xmm -// VPERMILPS.BCST m32 xmm xmm -// VPERMILPS.BCST m32 ymm k ymm -// VPERMILPS.BCST m32 ymm ymm -// VPERMILPS.BCST imm8 m32 k zmm -// VPERMILPS.BCST imm8 m32 zmm -// VPERMILPS.BCST m32 zmm k zmm -// VPERMILPS.BCST m32 zmm zmm -// -// Construct and append a VPERMILPS.BCST instruction to the active function. -// Operates on the global context. -func VPERMILPS_BCST(ops ...operand.Op) { ctx.VPERMILPS_BCST(ops...) } - -// VPERMILPS_BCST_Z: Permute Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMILPS.BCST.Z imm8 m32 k xmm -// VPERMILPS.BCST.Z imm8 m32 k ymm -// VPERMILPS.BCST.Z m32 xmm k xmm -// VPERMILPS.BCST.Z m32 ymm k ymm -// VPERMILPS.BCST.Z imm8 m32 k zmm -// VPERMILPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMILPS.BCST.Z instruction to the active function. -func (c *Context) VPERMILPS_BCST_Z(im, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPERMILPS_BCST_Z(im, mxyz, k, xyz)) -} - -// VPERMILPS_BCST_Z: Permute Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMILPS.BCST.Z imm8 m32 k xmm -// VPERMILPS.BCST.Z imm8 m32 k ymm -// VPERMILPS.BCST.Z m32 xmm k xmm -// VPERMILPS.BCST.Z m32 ymm k ymm -// VPERMILPS.BCST.Z imm8 m32 k zmm -// VPERMILPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMILPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMILPS_BCST_Z(im, mxyz, k, xyz operand.Op) { ctx.VPERMILPS_BCST_Z(im, mxyz, k, xyz) } - -// VPERMILPS_Z: Permute Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VPERMILPS.Z imm8 m128 k xmm -// VPERMILPS.Z imm8 m256 k ymm -// VPERMILPS.Z imm8 xmm k xmm -// VPERMILPS.Z imm8 ymm k ymm -// VPERMILPS.Z m128 xmm k xmm -// VPERMILPS.Z m256 ymm k ymm -// VPERMILPS.Z xmm xmm k xmm -// VPERMILPS.Z ymm ymm k ymm -// VPERMILPS.Z imm8 m512 k zmm -// VPERMILPS.Z imm8 zmm k zmm -// VPERMILPS.Z m512 zmm k zmm -// VPERMILPS.Z zmm zmm k zmm -// -// Construct and append a VPERMILPS.Z instruction to the active function. -func (c *Context) VPERMILPS_Z(imxyz, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPERMILPS_Z(imxyz, mxyz, k, xyz)) -} - -// VPERMILPS_Z: Permute Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VPERMILPS.Z imm8 m128 k xmm -// VPERMILPS.Z imm8 m256 k ymm -// VPERMILPS.Z imm8 xmm k xmm -// VPERMILPS.Z imm8 ymm k ymm -// VPERMILPS.Z m128 xmm k xmm -// VPERMILPS.Z m256 ymm k ymm -// VPERMILPS.Z xmm xmm k xmm -// VPERMILPS.Z ymm ymm k ymm -// VPERMILPS.Z imm8 m512 k zmm -// VPERMILPS.Z imm8 zmm k zmm -// VPERMILPS.Z m512 zmm k zmm -// VPERMILPS.Z zmm zmm k zmm -// -// Construct and append a VPERMILPS.Z instruction to the active function. -// Operates on the global context. -func VPERMILPS_Z(imxyz, mxyz, k, xyz operand.Op) { ctx.VPERMILPS_Z(imxyz, mxyz, k, xyz) } - -// VPERMPD: Permute Double-Precision Floating-Point Elements. -// -// Forms: -// -// VPERMPD imm8 m256 ymm -// VPERMPD imm8 ymm ymm -// VPERMPD imm8 m256 k ymm -// VPERMPD imm8 ymm k ymm -// VPERMPD m256 ymm k ymm -// VPERMPD m256 ymm ymm -// VPERMPD ymm ymm k ymm -// VPERMPD ymm ymm ymm -// VPERMPD imm8 m512 k zmm -// VPERMPD imm8 m512 zmm -// VPERMPD imm8 zmm k zmm -// VPERMPD imm8 zmm zmm -// VPERMPD m512 zmm k zmm -// VPERMPD m512 zmm zmm -// VPERMPD zmm zmm k zmm -// VPERMPD zmm zmm zmm -// -// Construct and append a VPERMPD instruction to the active function. -func (c *Context) VPERMPD(ops ...operand.Op) { - c.addinstruction(x86.VPERMPD(ops...)) -} - -// VPERMPD: Permute Double-Precision Floating-Point Elements. -// -// Forms: -// -// VPERMPD imm8 m256 ymm -// VPERMPD imm8 ymm ymm -// VPERMPD imm8 m256 k ymm -// VPERMPD imm8 ymm k ymm -// VPERMPD m256 ymm k ymm -// VPERMPD m256 ymm ymm -// VPERMPD ymm ymm k ymm -// VPERMPD ymm ymm ymm -// VPERMPD imm8 m512 k zmm -// VPERMPD imm8 m512 zmm -// VPERMPD imm8 zmm k zmm -// VPERMPD imm8 zmm zmm -// VPERMPD m512 zmm k zmm -// VPERMPD m512 zmm zmm -// VPERMPD zmm zmm k zmm -// VPERMPD zmm zmm zmm -// -// Construct and append a VPERMPD instruction to the active function. -// Operates on the global context. -func VPERMPD(ops ...operand.Op) { ctx.VPERMPD(ops...) } - -// VPERMPD_BCST: Permute Double-Precision Floating-Point Elements (Broadcast). -// -// Forms: -// -// VPERMPD.BCST imm8 m64 k ymm -// VPERMPD.BCST imm8 m64 ymm -// VPERMPD.BCST m64 ymm k ymm -// VPERMPD.BCST m64 ymm ymm -// VPERMPD.BCST imm8 m64 k zmm -// VPERMPD.BCST imm8 m64 zmm -// VPERMPD.BCST m64 zmm k zmm -// VPERMPD.BCST m64 zmm zmm -// -// Construct and append a VPERMPD.BCST instruction to the active function. -func (c *Context) VPERMPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMPD_BCST(ops...)) -} - -// VPERMPD_BCST: Permute Double-Precision Floating-Point Elements (Broadcast). -// -// Forms: -// -// VPERMPD.BCST imm8 m64 k ymm -// VPERMPD.BCST imm8 m64 ymm -// VPERMPD.BCST m64 ymm k ymm -// VPERMPD.BCST m64 ymm ymm -// VPERMPD.BCST imm8 m64 k zmm -// VPERMPD.BCST imm8 m64 zmm -// VPERMPD.BCST m64 zmm k zmm -// VPERMPD.BCST m64 zmm zmm -// -// Construct and append a VPERMPD.BCST instruction to the active function. -// Operates on the global context. -func VPERMPD_BCST(ops ...operand.Op) { ctx.VPERMPD_BCST(ops...) } - -// VPERMPD_BCST_Z: Permute Double-Precision Floating-Point Elements (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMPD.BCST.Z imm8 m64 k ymm -// VPERMPD.BCST.Z m64 ymm k ymm -// VPERMPD.BCST.Z imm8 m64 k zmm -// VPERMPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMPD.BCST.Z instruction to the active function. -func (c *Context) VPERMPD_BCST_Z(im, myz, k, yz operand.Op) { - c.addinstruction(x86.VPERMPD_BCST_Z(im, myz, k, yz)) -} - -// VPERMPD_BCST_Z: Permute Double-Precision Floating-Point Elements (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMPD.BCST.Z imm8 m64 k ymm -// VPERMPD.BCST.Z m64 ymm k ymm -// VPERMPD.BCST.Z imm8 m64 k zmm -// VPERMPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMPD_BCST_Z(im, myz, k, yz operand.Op) { ctx.VPERMPD_BCST_Z(im, myz, k, yz) } - -// VPERMPD_Z: Permute Double-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VPERMPD.Z imm8 m256 k ymm -// VPERMPD.Z imm8 ymm k ymm -// VPERMPD.Z m256 ymm k ymm -// VPERMPD.Z ymm ymm k ymm -// VPERMPD.Z imm8 m512 k zmm -// VPERMPD.Z imm8 zmm k zmm -// VPERMPD.Z m512 zmm k zmm -// VPERMPD.Z zmm zmm k zmm -// -// Construct and append a VPERMPD.Z instruction to the active function. -func (c *Context) VPERMPD_Z(imyz, myz, k, yz operand.Op) { - c.addinstruction(x86.VPERMPD_Z(imyz, myz, k, yz)) -} - -// VPERMPD_Z: Permute Double-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VPERMPD.Z imm8 m256 k ymm -// VPERMPD.Z imm8 ymm k ymm -// VPERMPD.Z m256 ymm k ymm -// VPERMPD.Z ymm ymm k ymm -// VPERMPD.Z imm8 m512 k zmm -// VPERMPD.Z imm8 zmm k zmm -// VPERMPD.Z m512 zmm k zmm -// VPERMPD.Z zmm zmm k zmm -// -// Construct and append a VPERMPD.Z instruction to the active function. -// Operates on the global context. -func VPERMPD_Z(imyz, myz, k, yz operand.Op) { ctx.VPERMPD_Z(imyz, myz, k, yz) } - -// VPERMPS: Permute Single-Precision Floating-Point Elements. -// -// Forms: -// -// VPERMPS m256 ymm ymm -// VPERMPS ymm ymm ymm -// VPERMPS m256 ymm k ymm -// VPERMPS ymm ymm k ymm -// VPERMPS m512 zmm k zmm -// VPERMPS m512 zmm zmm -// VPERMPS zmm zmm k zmm -// VPERMPS zmm zmm zmm -// -// Construct and append a VPERMPS instruction to the active function. -func (c *Context) VPERMPS(ops ...operand.Op) { - c.addinstruction(x86.VPERMPS(ops...)) -} - -// VPERMPS: Permute Single-Precision Floating-Point Elements. -// -// Forms: -// -// VPERMPS m256 ymm ymm -// VPERMPS ymm ymm ymm -// VPERMPS m256 ymm k ymm -// VPERMPS ymm ymm k ymm -// VPERMPS m512 zmm k zmm -// VPERMPS m512 zmm zmm -// VPERMPS zmm zmm k zmm -// VPERMPS zmm zmm zmm -// -// Construct and append a VPERMPS instruction to the active function. -// Operates on the global context. -func VPERMPS(ops ...operand.Op) { ctx.VPERMPS(ops...) } - -// VPERMPS_BCST: Permute Single-Precision Floating-Point Elements (Broadcast). -// -// Forms: -// -// VPERMPS.BCST m32 ymm k ymm -// VPERMPS.BCST m32 ymm ymm -// VPERMPS.BCST m32 zmm k zmm -// VPERMPS.BCST m32 zmm zmm -// -// Construct and append a VPERMPS.BCST instruction to the active function. -func (c *Context) VPERMPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMPS_BCST(ops...)) -} - -// VPERMPS_BCST: Permute Single-Precision Floating-Point Elements (Broadcast). -// -// Forms: -// -// VPERMPS.BCST m32 ymm k ymm -// VPERMPS.BCST m32 ymm ymm -// VPERMPS.BCST m32 zmm k zmm -// VPERMPS.BCST m32 zmm zmm -// -// Construct and append a VPERMPS.BCST instruction to the active function. -// Operates on the global context. -func VPERMPS_BCST(ops ...operand.Op) { ctx.VPERMPS_BCST(ops...) } - -// VPERMPS_BCST_Z: Permute Single-Precision Floating-Point Elements (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMPS.BCST.Z m32 ymm k ymm -// VPERMPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMPS.BCST.Z instruction to the active function. -func (c *Context) VPERMPS_BCST_Z(m, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VPERMPS_BCST_Z(m, yz, k, yz1)) -} - -// VPERMPS_BCST_Z: Permute Single-Precision Floating-Point Elements (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMPS.BCST.Z m32 ymm k ymm -// VPERMPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMPS_BCST_Z(m, yz, k, yz1 operand.Op) { ctx.VPERMPS_BCST_Z(m, yz, k, yz1) } - -// VPERMPS_Z: Permute Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VPERMPS.Z m256 ymm k ymm -// VPERMPS.Z ymm ymm k ymm -// VPERMPS.Z m512 zmm k zmm -// VPERMPS.Z zmm zmm k zmm -// -// Construct and append a VPERMPS.Z instruction to the active function. -func (c *Context) VPERMPS_Z(myz, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VPERMPS_Z(myz, yz, k, yz1)) -} - -// VPERMPS_Z: Permute Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VPERMPS.Z m256 ymm k ymm -// VPERMPS.Z ymm ymm k ymm -// VPERMPS.Z m512 zmm k zmm -// VPERMPS.Z zmm zmm k zmm -// -// Construct and append a VPERMPS.Z instruction to the active function. -// Operates on the global context. -func VPERMPS_Z(myz, yz, k, yz1 operand.Op) { ctx.VPERMPS_Z(myz, yz, k, yz1) } - -// VPERMQ: Permute Quadword Integers. -// -// Forms: -// -// VPERMQ imm8 m256 ymm -// VPERMQ imm8 ymm ymm -// VPERMQ imm8 m256 k ymm -// VPERMQ imm8 ymm k ymm -// VPERMQ m256 ymm k ymm -// VPERMQ m256 ymm ymm -// VPERMQ ymm ymm k ymm -// VPERMQ ymm ymm ymm -// VPERMQ imm8 m512 k zmm -// VPERMQ imm8 m512 zmm -// VPERMQ imm8 zmm k zmm -// VPERMQ imm8 zmm zmm -// VPERMQ m512 zmm k zmm -// VPERMQ m512 zmm zmm -// VPERMQ zmm zmm k zmm -// VPERMQ zmm zmm zmm -// -// Construct and append a VPERMQ instruction to the active function. -func (c *Context) VPERMQ(ops ...operand.Op) { - c.addinstruction(x86.VPERMQ(ops...)) -} - -// VPERMQ: Permute Quadword Integers. -// -// Forms: -// -// VPERMQ imm8 m256 ymm -// VPERMQ imm8 ymm ymm -// VPERMQ imm8 m256 k ymm -// VPERMQ imm8 ymm k ymm -// VPERMQ m256 ymm k ymm -// VPERMQ m256 ymm ymm -// VPERMQ ymm ymm k ymm -// VPERMQ ymm ymm ymm -// VPERMQ imm8 m512 k zmm -// VPERMQ imm8 m512 zmm -// VPERMQ imm8 zmm k zmm -// VPERMQ imm8 zmm zmm -// VPERMQ m512 zmm k zmm -// VPERMQ m512 zmm zmm -// VPERMQ zmm zmm k zmm -// VPERMQ zmm zmm zmm -// -// Construct and append a VPERMQ instruction to the active function. -// Operates on the global context. -func VPERMQ(ops ...operand.Op) { ctx.VPERMQ(ops...) } - -// VPERMQ_BCST: Permute Quadword Integers (Broadcast). -// -// Forms: -// -// VPERMQ.BCST imm8 m64 k ymm -// VPERMQ.BCST imm8 m64 ymm -// VPERMQ.BCST m64 ymm k ymm -// VPERMQ.BCST m64 ymm ymm -// VPERMQ.BCST imm8 m64 k zmm -// VPERMQ.BCST imm8 m64 zmm -// VPERMQ.BCST m64 zmm k zmm -// VPERMQ.BCST m64 zmm zmm -// -// Construct and append a VPERMQ.BCST instruction to the active function. -func (c *Context) VPERMQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMQ_BCST(ops...)) -} - -// VPERMQ_BCST: Permute Quadword Integers (Broadcast). -// -// Forms: -// -// VPERMQ.BCST imm8 m64 k ymm -// VPERMQ.BCST imm8 m64 ymm -// VPERMQ.BCST m64 ymm k ymm -// VPERMQ.BCST m64 ymm ymm -// VPERMQ.BCST imm8 m64 k zmm -// VPERMQ.BCST imm8 m64 zmm -// VPERMQ.BCST m64 zmm k zmm -// VPERMQ.BCST m64 zmm zmm -// -// Construct and append a VPERMQ.BCST instruction to the active function. -// Operates on the global context. -func VPERMQ_BCST(ops ...operand.Op) { ctx.VPERMQ_BCST(ops...) } - -// VPERMQ_BCST_Z: Permute Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMQ.BCST.Z imm8 m64 k ymm -// VPERMQ.BCST.Z m64 ymm k ymm -// VPERMQ.BCST.Z imm8 m64 k zmm -// VPERMQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMQ.BCST.Z instruction to the active function. -func (c *Context) VPERMQ_BCST_Z(im, myz, k, yz operand.Op) { - c.addinstruction(x86.VPERMQ_BCST_Z(im, myz, k, yz)) -} - -// VPERMQ_BCST_Z: Permute Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMQ.BCST.Z imm8 m64 k ymm -// VPERMQ.BCST.Z m64 ymm k ymm -// VPERMQ.BCST.Z imm8 m64 k zmm -// VPERMQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMQ_BCST_Z(im, myz, k, yz operand.Op) { ctx.VPERMQ_BCST_Z(im, myz, k, yz) } - -// VPERMQ_Z: Permute Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPERMQ.Z imm8 m256 k ymm -// VPERMQ.Z imm8 ymm k ymm -// VPERMQ.Z m256 ymm k ymm -// VPERMQ.Z ymm ymm k ymm -// VPERMQ.Z imm8 m512 k zmm -// VPERMQ.Z imm8 zmm k zmm -// VPERMQ.Z m512 zmm k zmm -// VPERMQ.Z zmm zmm k zmm -// -// Construct and append a VPERMQ.Z instruction to the active function. -func (c *Context) VPERMQ_Z(imyz, myz, k, yz operand.Op) { - c.addinstruction(x86.VPERMQ_Z(imyz, myz, k, yz)) -} - -// VPERMQ_Z: Permute Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPERMQ.Z imm8 m256 k ymm -// VPERMQ.Z imm8 ymm k ymm -// VPERMQ.Z m256 ymm k ymm -// VPERMQ.Z ymm ymm k ymm -// VPERMQ.Z imm8 m512 k zmm -// VPERMQ.Z imm8 zmm k zmm -// VPERMQ.Z m512 zmm k zmm -// VPERMQ.Z zmm zmm k zmm -// -// Construct and append a VPERMQ.Z instruction to the active function. -// Operates on the global context. -func VPERMQ_Z(imyz, myz, k, yz operand.Op) { ctx.VPERMQ_Z(imyz, myz, k, yz) } - -// VPERMT2B: Full Permute of Bytes From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2B m128 xmm k xmm -// VPERMT2B m128 xmm xmm -// VPERMT2B m256 ymm k ymm -// VPERMT2B m256 ymm ymm -// VPERMT2B xmm xmm k xmm -// VPERMT2B xmm xmm xmm -// VPERMT2B ymm ymm k ymm -// VPERMT2B ymm ymm ymm -// VPERMT2B m512 zmm k zmm -// VPERMT2B m512 zmm zmm -// VPERMT2B zmm zmm k zmm -// VPERMT2B zmm zmm zmm -// -// Construct and append a VPERMT2B instruction to the active function. -func (c *Context) VPERMT2B(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2B(ops...)) -} - -// VPERMT2B: Full Permute of Bytes From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2B m128 xmm k xmm -// VPERMT2B m128 xmm xmm -// VPERMT2B m256 ymm k ymm -// VPERMT2B m256 ymm ymm -// VPERMT2B xmm xmm k xmm -// VPERMT2B xmm xmm xmm -// VPERMT2B ymm ymm k ymm -// VPERMT2B ymm ymm ymm -// VPERMT2B m512 zmm k zmm -// VPERMT2B m512 zmm zmm -// VPERMT2B zmm zmm k zmm -// VPERMT2B zmm zmm zmm -// -// Construct and append a VPERMT2B instruction to the active function. -// Operates on the global context. -func VPERMT2B(ops ...operand.Op) { ctx.VPERMT2B(ops...) } - -// VPERMT2B_Z: Full Permute of Bytes From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2B.Z m128 xmm k xmm -// VPERMT2B.Z m256 ymm k ymm -// VPERMT2B.Z xmm xmm k xmm -// VPERMT2B.Z ymm ymm k ymm -// VPERMT2B.Z m512 zmm k zmm -// VPERMT2B.Z zmm zmm k zmm -// -// Construct and append a VPERMT2B.Z instruction to the active function. -func (c *Context) VPERMT2B_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2B_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMT2B_Z: Full Permute of Bytes From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2B.Z m128 xmm k xmm -// VPERMT2B.Z m256 ymm k ymm -// VPERMT2B.Z xmm xmm k xmm -// VPERMT2B.Z ymm ymm k ymm -// VPERMT2B.Z m512 zmm k zmm -// VPERMT2B.Z zmm zmm k zmm -// -// Construct and append a VPERMT2B.Z instruction to the active function. -// Operates on the global context. -func VPERMT2B_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMT2B_Z(mxyz, xyz, k, xyz1) } - -// VPERMT2D: Full Permute of Doublewords From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2D m128 xmm k xmm -// VPERMT2D m128 xmm xmm -// VPERMT2D m256 ymm k ymm -// VPERMT2D m256 ymm ymm -// VPERMT2D xmm xmm k xmm -// VPERMT2D xmm xmm xmm -// VPERMT2D ymm ymm k ymm -// VPERMT2D ymm ymm ymm -// VPERMT2D m512 zmm k zmm -// VPERMT2D m512 zmm zmm -// VPERMT2D zmm zmm k zmm -// VPERMT2D zmm zmm zmm -// -// Construct and append a VPERMT2D instruction to the active function. -func (c *Context) VPERMT2D(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2D(ops...)) -} - -// VPERMT2D: Full Permute of Doublewords From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2D m128 xmm k xmm -// VPERMT2D m128 xmm xmm -// VPERMT2D m256 ymm k ymm -// VPERMT2D m256 ymm ymm -// VPERMT2D xmm xmm k xmm -// VPERMT2D xmm xmm xmm -// VPERMT2D ymm ymm k ymm -// VPERMT2D ymm ymm ymm -// VPERMT2D m512 zmm k zmm -// VPERMT2D m512 zmm zmm -// VPERMT2D zmm zmm k zmm -// VPERMT2D zmm zmm zmm -// -// Construct and append a VPERMT2D instruction to the active function. -// Operates on the global context. -func VPERMT2D(ops ...operand.Op) { ctx.VPERMT2D(ops...) } - -// VPERMT2D_BCST: Full Permute of Doublewords From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2D.BCST m32 xmm k xmm -// VPERMT2D.BCST m32 xmm xmm -// VPERMT2D.BCST m32 ymm k ymm -// VPERMT2D.BCST m32 ymm ymm -// VPERMT2D.BCST m32 zmm k zmm -// VPERMT2D.BCST m32 zmm zmm -// -// Construct and append a VPERMT2D.BCST instruction to the active function. -func (c *Context) VPERMT2D_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2D_BCST(ops...)) -} - -// VPERMT2D_BCST: Full Permute of Doublewords From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2D.BCST m32 xmm k xmm -// VPERMT2D.BCST m32 xmm xmm -// VPERMT2D.BCST m32 ymm k ymm -// VPERMT2D.BCST m32 ymm ymm -// VPERMT2D.BCST m32 zmm k zmm -// VPERMT2D.BCST m32 zmm zmm -// -// Construct and append a VPERMT2D.BCST instruction to the active function. -// Operates on the global context. -func VPERMT2D_BCST(ops ...operand.Op) { ctx.VPERMT2D_BCST(ops...) } - -// VPERMT2D_BCST_Z: Full Permute of Doublewords From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2D.BCST.Z m32 xmm k xmm -// VPERMT2D.BCST.Z m32 ymm k ymm -// VPERMT2D.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMT2D.BCST.Z instruction to the active function. -func (c *Context) VPERMT2D_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2D_BCST_Z(m, xyz, k, xyz1)) -} - -// VPERMT2D_BCST_Z: Full Permute of Doublewords From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2D.BCST.Z m32 xmm k xmm -// VPERMT2D.BCST.Z m32 ymm k ymm -// VPERMT2D.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMT2D.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMT2D_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPERMT2D_BCST_Z(m, xyz, k, xyz1) } - -// VPERMT2D_Z: Full Permute of Doublewords From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2D.Z m128 xmm k xmm -// VPERMT2D.Z m256 ymm k ymm -// VPERMT2D.Z xmm xmm k xmm -// VPERMT2D.Z ymm ymm k ymm -// VPERMT2D.Z m512 zmm k zmm -// VPERMT2D.Z zmm zmm k zmm -// -// Construct and append a VPERMT2D.Z instruction to the active function. -func (c *Context) VPERMT2D_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2D_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMT2D_Z: Full Permute of Doublewords From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2D.Z m128 xmm k xmm -// VPERMT2D.Z m256 ymm k ymm -// VPERMT2D.Z xmm xmm k xmm -// VPERMT2D.Z ymm ymm k ymm -// VPERMT2D.Z m512 zmm k zmm -// VPERMT2D.Z zmm zmm k zmm -// -// Construct and append a VPERMT2D.Z instruction to the active function. -// Operates on the global context. -func VPERMT2D_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMT2D_Z(mxyz, xyz, k, xyz1) } - -// VPERMT2PD: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2PD m128 xmm k xmm -// VPERMT2PD m128 xmm xmm -// VPERMT2PD m256 ymm k ymm -// VPERMT2PD m256 ymm ymm -// VPERMT2PD xmm xmm k xmm -// VPERMT2PD xmm xmm xmm -// VPERMT2PD ymm ymm k ymm -// VPERMT2PD ymm ymm ymm -// VPERMT2PD m512 zmm k zmm -// VPERMT2PD m512 zmm zmm -// VPERMT2PD zmm zmm k zmm -// VPERMT2PD zmm zmm zmm -// -// Construct and append a VPERMT2PD instruction to the active function. -func (c *Context) VPERMT2PD(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2PD(ops...)) -} - -// VPERMT2PD: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2PD m128 xmm k xmm -// VPERMT2PD m128 xmm xmm -// VPERMT2PD m256 ymm k ymm -// VPERMT2PD m256 ymm ymm -// VPERMT2PD xmm xmm k xmm -// VPERMT2PD xmm xmm xmm -// VPERMT2PD ymm ymm k ymm -// VPERMT2PD ymm ymm ymm -// VPERMT2PD m512 zmm k zmm -// VPERMT2PD m512 zmm zmm -// VPERMT2PD zmm zmm k zmm -// VPERMT2PD zmm zmm zmm -// -// Construct and append a VPERMT2PD instruction to the active function. -// Operates on the global context. -func VPERMT2PD(ops ...operand.Op) { ctx.VPERMT2PD(ops...) } - -// VPERMT2PD_BCST: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2PD.BCST m64 xmm k xmm -// VPERMT2PD.BCST m64 xmm xmm -// VPERMT2PD.BCST m64 ymm k ymm -// VPERMT2PD.BCST m64 ymm ymm -// VPERMT2PD.BCST m64 zmm k zmm -// VPERMT2PD.BCST m64 zmm zmm -// -// Construct and append a VPERMT2PD.BCST instruction to the active function. -func (c *Context) VPERMT2PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2PD_BCST(ops...)) -} - -// VPERMT2PD_BCST: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2PD.BCST m64 xmm k xmm -// VPERMT2PD.BCST m64 xmm xmm -// VPERMT2PD.BCST m64 ymm k ymm -// VPERMT2PD.BCST m64 ymm ymm -// VPERMT2PD.BCST m64 zmm k zmm -// VPERMT2PD.BCST m64 zmm zmm -// -// Construct and append a VPERMT2PD.BCST instruction to the active function. -// Operates on the global context. -func VPERMT2PD_BCST(ops ...operand.Op) { ctx.VPERMT2PD_BCST(ops...) } - -// VPERMT2PD_BCST_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2PD.BCST.Z m64 xmm k xmm -// VPERMT2PD.BCST.Z m64 ymm k ymm -// VPERMT2PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMT2PD.BCST.Z instruction to the active function. -func (c *Context) VPERMT2PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2PD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPERMT2PD_BCST_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2PD.BCST.Z m64 xmm k xmm -// VPERMT2PD.BCST.Z m64 ymm k ymm -// VPERMT2PD.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMT2PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMT2PD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPERMT2PD_BCST_Z(m, xyz, k, xyz1) } - -// VPERMT2PD_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2PD.Z m128 xmm k xmm -// VPERMT2PD.Z m256 ymm k ymm -// VPERMT2PD.Z xmm xmm k xmm -// VPERMT2PD.Z ymm ymm k ymm -// VPERMT2PD.Z m512 zmm k zmm -// VPERMT2PD.Z zmm zmm k zmm -// -// Construct and append a VPERMT2PD.Z instruction to the active function. -func (c *Context) VPERMT2PD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2PD_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMT2PD_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2PD.Z m128 xmm k xmm -// VPERMT2PD.Z m256 ymm k ymm -// VPERMT2PD.Z xmm xmm k xmm -// VPERMT2PD.Z ymm ymm k ymm -// VPERMT2PD.Z m512 zmm k zmm -// VPERMT2PD.Z zmm zmm k zmm -// -// Construct and append a VPERMT2PD.Z instruction to the active function. -// Operates on the global context. -func VPERMT2PD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMT2PD_Z(mxyz, xyz, k, xyz1) } - -// VPERMT2PS: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2PS m128 xmm k xmm -// VPERMT2PS m128 xmm xmm -// VPERMT2PS m256 ymm k ymm -// VPERMT2PS m256 ymm ymm -// VPERMT2PS xmm xmm k xmm -// VPERMT2PS xmm xmm xmm -// VPERMT2PS ymm ymm k ymm -// VPERMT2PS ymm ymm ymm -// VPERMT2PS m512 zmm k zmm -// VPERMT2PS m512 zmm zmm -// VPERMT2PS zmm zmm k zmm -// VPERMT2PS zmm zmm zmm -// -// Construct and append a VPERMT2PS instruction to the active function. -func (c *Context) VPERMT2PS(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2PS(ops...)) -} - -// VPERMT2PS: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2PS m128 xmm k xmm -// VPERMT2PS m128 xmm xmm -// VPERMT2PS m256 ymm k ymm -// VPERMT2PS m256 ymm ymm -// VPERMT2PS xmm xmm k xmm -// VPERMT2PS xmm xmm xmm -// VPERMT2PS ymm ymm k ymm -// VPERMT2PS ymm ymm ymm -// VPERMT2PS m512 zmm k zmm -// VPERMT2PS m512 zmm zmm -// VPERMT2PS zmm zmm k zmm -// VPERMT2PS zmm zmm zmm -// -// Construct and append a VPERMT2PS instruction to the active function. -// Operates on the global context. -func VPERMT2PS(ops ...operand.Op) { ctx.VPERMT2PS(ops...) } - -// VPERMT2PS_BCST: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2PS.BCST m32 xmm k xmm -// VPERMT2PS.BCST m32 xmm xmm -// VPERMT2PS.BCST m32 ymm k ymm -// VPERMT2PS.BCST m32 ymm ymm -// VPERMT2PS.BCST m32 zmm k zmm -// VPERMT2PS.BCST m32 zmm zmm -// -// Construct and append a VPERMT2PS.BCST instruction to the active function. -func (c *Context) VPERMT2PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2PS_BCST(ops...)) -} - -// VPERMT2PS_BCST: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2PS.BCST m32 xmm k xmm -// VPERMT2PS.BCST m32 xmm xmm -// VPERMT2PS.BCST m32 ymm k ymm -// VPERMT2PS.BCST m32 ymm ymm -// VPERMT2PS.BCST m32 zmm k zmm -// VPERMT2PS.BCST m32 zmm zmm -// -// Construct and append a VPERMT2PS.BCST instruction to the active function. -// Operates on the global context. -func VPERMT2PS_BCST(ops ...operand.Op) { ctx.VPERMT2PS_BCST(ops...) } - -// VPERMT2PS_BCST_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2PS.BCST.Z m32 xmm k xmm -// VPERMT2PS.BCST.Z m32 ymm k ymm -// VPERMT2PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMT2PS.BCST.Z instruction to the active function. -func (c *Context) VPERMT2PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2PS_BCST_Z(m, xyz, k, xyz1)) -} - -// VPERMT2PS_BCST_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2PS.BCST.Z m32 xmm k xmm -// VPERMT2PS.BCST.Z m32 ymm k ymm -// VPERMT2PS.BCST.Z m32 zmm k zmm -// -// Construct and append a VPERMT2PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMT2PS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPERMT2PS_BCST_Z(m, xyz, k, xyz1) } - -// VPERMT2PS_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2PS.Z m128 xmm k xmm -// VPERMT2PS.Z m256 ymm k ymm -// VPERMT2PS.Z xmm xmm k xmm -// VPERMT2PS.Z ymm ymm k ymm -// VPERMT2PS.Z m512 zmm k zmm -// VPERMT2PS.Z zmm zmm k zmm -// -// Construct and append a VPERMT2PS.Z instruction to the active function. -func (c *Context) VPERMT2PS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2PS_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMT2PS_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2PS.Z m128 xmm k xmm -// VPERMT2PS.Z m256 ymm k ymm -// VPERMT2PS.Z xmm xmm k xmm -// VPERMT2PS.Z ymm ymm k ymm -// VPERMT2PS.Z m512 zmm k zmm -// VPERMT2PS.Z zmm zmm k zmm -// -// Construct and append a VPERMT2PS.Z instruction to the active function. -// Operates on the global context. -func VPERMT2PS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMT2PS_Z(mxyz, xyz, k, xyz1) } - -// VPERMT2Q: Full Permute of Quadwords From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2Q m128 xmm k xmm -// VPERMT2Q m128 xmm xmm -// VPERMT2Q m256 ymm k ymm -// VPERMT2Q m256 ymm ymm -// VPERMT2Q xmm xmm k xmm -// VPERMT2Q xmm xmm xmm -// VPERMT2Q ymm ymm k ymm -// VPERMT2Q ymm ymm ymm -// VPERMT2Q m512 zmm k zmm -// VPERMT2Q m512 zmm zmm -// VPERMT2Q zmm zmm k zmm -// VPERMT2Q zmm zmm zmm -// -// Construct and append a VPERMT2Q instruction to the active function. -func (c *Context) VPERMT2Q(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2Q(ops...)) -} - -// VPERMT2Q: Full Permute of Quadwords From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2Q m128 xmm k xmm -// VPERMT2Q m128 xmm xmm -// VPERMT2Q m256 ymm k ymm -// VPERMT2Q m256 ymm ymm -// VPERMT2Q xmm xmm k xmm -// VPERMT2Q xmm xmm xmm -// VPERMT2Q ymm ymm k ymm -// VPERMT2Q ymm ymm ymm -// VPERMT2Q m512 zmm k zmm -// VPERMT2Q m512 zmm zmm -// VPERMT2Q zmm zmm k zmm -// VPERMT2Q zmm zmm zmm -// -// Construct and append a VPERMT2Q instruction to the active function. -// Operates on the global context. -func VPERMT2Q(ops ...operand.Op) { ctx.VPERMT2Q(ops...) } - -// VPERMT2Q_BCST: Full Permute of Quadwords From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2Q.BCST m64 xmm k xmm -// VPERMT2Q.BCST m64 xmm xmm -// VPERMT2Q.BCST m64 ymm k ymm -// VPERMT2Q.BCST m64 ymm ymm -// VPERMT2Q.BCST m64 zmm k zmm -// VPERMT2Q.BCST m64 zmm zmm -// -// Construct and append a VPERMT2Q.BCST instruction to the active function. -func (c *Context) VPERMT2Q_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2Q_BCST(ops...)) -} - -// VPERMT2Q_BCST: Full Permute of Quadwords From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2Q.BCST m64 xmm k xmm -// VPERMT2Q.BCST m64 xmm xmm -// VPERMT2Q.BCST m64 ymm k ymm -// VPERMT2Q.BCST m64 ymm ymm -// VPERMT2Q.BCST m64 zmm k zmm -// VPERMT2Q.BCST m64 zmm zmm -// -// Construct and append a VPERMT2Q.BCST instruction to the active function. -// Operates on the global context. -func VPERMT2Q_BCST(ops ...operand.Op) { ctx.VPERMT2Q_BCST(ops...) } - -// VPERMT2Q_BCST_Z: Full Permute of Quadwords From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2Q.BCST.Z m64 xmm k xmm -// VPERMT2Q.BCST.Z m64 ymm k ymm -// VPERMT2Q.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMT2Q.BCST.Z instruction to the active function. -func (c *Context) VPERMT2Q_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2Q_BCST_Z(m, xyz, k, xyz1)) -} - -// VPERMT2Q_BCST_Z: Full Permute of Quadwords From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2Q.BCST.Z m64 xmm k xmm -// VPERMT2Q.BCST.Z m64 ymm k ymm -// VPERMT2Q.BCST.Z m64 zmm k zmm -// -// Construct and append a VPERMT2Q.BCST.Z instruction to the active function. -// Operates on the global context. -func VPERMT2Q_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPERMT2Q_BCST_Z(m, xyz, k, xyz1) } - -// VPERMT2Q_Z: Full Permute of Quadwords From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2Q.Z m128 xmm k xmm -// VPERMT2Q.Z m256 ymm k ymm -// VPERMT2Q.Z xmm xmm k xmm -// VPERMT2Q.Z ymm ymm k ymm -// VPERMT2Q.Z m512 zmm k zmm -// VPERMT2Q.Z zmm zmm k zmm -// -// Construct and append a VPERMT2Q.Z instruction to the active function. -func (c *Context) VPERMT2Q_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2Q_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMT2Q_Z: Full Permute of Quadwords From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2Q.Z m128 xmm k xmm -// VPERMT2Q.Z m256 ymm k ymm -// VPERMT2Q.Z xmm xmm k xmm -// VPERMT2Q.Z ymm ymm k ymm -// VPERMT2Q.Z m512 zmm k zmm -// VPERMT2Q.Z zmm zmm k zmm -// -// Construct and append a VPERMT2Q.Z instruction to the active function. -// Operates on the global context. -func VPERMT2Q_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMT2Q_Z(mxyz, xyz, k, xyz1) } - -// VPERMT2W: Full Permute of Words From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2W m128 xmm k xmm -// VPERMT2W m128 xmm xmm -// VPERMT2W m256 ymm k ymm -// VPERMT2W m256 ymm ymm -// VPERMT2W xmm xmm k xmm -// VPERMT2W xmm xmm xmm -// VPERMT2W ymm ymm k ymm -// VPERMT2W ymm ymm ymm -// VPERMT2W m512 zmm k zmm -// VPERMT2W m512 zmm zmm -// VPERMT2W zmm zmm k zmm -// VPERMT2W zmm zmm zmm -// -// Construct and append a VPERMT2W instruction to the active function. -func (c *Context) VPERMT2W(ops ...operand.Op) { - c.addinstruction(x86.VPERMT2W(ops...)) -} - -// VPERMT2W: Full Permute of Words From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2W m128 xmm k xmm -// VPERMT2W m128 xmm xmm -// VPERMT2W m256 ymm k ymm -// VPERMT2W m256 ymm ymm -// VPERMT2W xmm xmm k xmm -// VPERMT2W xmm xmm xmm -// VPERMT2W ymm ymm k ymm -// VPERMT2W ymm ymm ymm -// VPERMT2W m512 zmm k zmm -// VPERMT2W m512 zmm zmm -// VPERMT2W zmm zmm k zmm -// VPERMT2W zmm zmm zmm -// -// Construct and append a VPERMT2W instruction to the active function. -// Operates on the global context. -func VPERMT2W(ops ...operand.Op) { ctx.VPERMT2W(ops...) } - -// VPERMT2W_Z: Full Permute of Words From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2W.Z m128 xmm k xmm -// VPERMT2W.Z m256 ymm k ymm -// VPERMT2W.Z xmm xmm k xmm -// VPERMT2W.Z ymm ymm k ymm -// VPERMT2W.Z m512 zmm k zmm -// VPERMT2W.Z zmm zmm k zmm -// -// Construct and append a VPERMT2W.Z instruction to the active function. -func (c *Context) VPERMT2W_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMT2W_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMT2W_Z: Full Permute of Words From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2W.Z m128 xmm k xmm -// VPERMT2W.Z m256 ymm k ymm -// VPERMT2W.Z xmm xmm k xmm -// VPERMT2W.Z ymm ymm k ymm -// VPERMT2W.Z m512 zmm k zmm -// VPERMT2W.Z zmm zmm k zmm -// -// Construct and append a VPERMT2W.Z instruction to the active function. -// Operates on the global context. -func VPERMT2W_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMT2W_Z(mxyz, xyz, k, xyz1) } - -// VPERMW: Permute Word Integers. -// -// Forms: -// -// VPERMW m128 xmm k xmm -// VPERMW m128 xmm xmm -// VPERMW m256 ymm k ymm -// VPERMW m256 ymm ymm -// VPERMW xmm xmm k xmm -// VPERMW xmm xmm xmm -// VPERMW ymm ymm k ymm -// VPERMW ymm ymm ymm -// VPERMW m512 zmm k zmm -// VPERMW m512 zmm zmm -// VPERMW zmm zmm k zmm -// VPERMW zmm zmm zmm -// -// Construct and append a VPERMW instruction to the active function. -func (c *Context) VPERMW(ops ...operand.Op) { - c.addinstruction(x86.VPERMW(ops...)) -} - -// VPERMW: Permute Word Integers. -// -// Forms: -// -// VPERMW m128 xmm k xmm -// VPERMW m128 xmm xmm -// VPERMW m256 ymm k ymm -// VPERMW m256 ymm ymm -// VPERMW xmm xmm k xmm -// VPERMW xmm xmm xmm -// VPERMW ymm ymm k ymm -// VPERMW ymm ymm ymm -// VPERMW m512 zmm k zmm -// VPERMW m512 zmm zmm -// VPERMW zmm zmm k zmm -// VPERMW zmm zmm zmm -// -// Construct and append a VPERMW instruction to the active function. -// Operates on the global context. -func VPERMW(ops ...operand.Op) { ctx.VPERMW(ops...) } - -// VPERMW_Z: Permute Word Integers (Zeroing Masking). -// -// Forms: -// -// VPERMW.Z m128 xmm k xmm -// VPERMW.Z m256 ymm k ymm -// VPERMW.Z xmm xmm k xmm -// VPERMW.Z ymm ymm k ymm -// VPERMW.Z m512 zmm k zmm -// VPERMW.Z zmm zmm k zmm -// -// Construct and append a VPERMW.Z instruction to the active function. -func (c *Context) VPERMW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPERMW_Z(mxyz, xyz, k, xyz1)) -} - -// VPERMW_Z: Permute Word Integers (Zeroing Masking). -// -// Forms: -// -// VPERMW.Z m128 xmm k xmm -// VPERMW.Z m256 ymm k ymm -// VPERMW.Z xmm xmm k xmm -// VPERMW.Z ymm ymm k ymm -// VPERMW.Z m512 zmm k zmm -// VPERMW.Z zmm zmm k zmm -// -// Construct and append a VPERMW.Z instruction to the active function. -// Operates on the global context. -func VPERMW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPERMW_Z(mxyz, xyz, k, xyz1) } - -// VPEXPANDB: Load Sparse Packed Byte Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDB m128 k xmm -// VPEXPANDB m128 xmm -// VPEXPANDB m256 k ymm -// VPEXPANDB m256 ymm -// VPEXPANDB xmm k xmm -// VPEXPANDB xmm xmm -// VPEXPANDB ymm k ymm -// VPEXPANDB ymm ymm -// VPEXPANDB m512 k zmm -// VPEXPANDB m512 zmm -// VPEXPANDB zmm k zmm -// VPEXPANDB zmm zmm -// -// Construct and append a VPEXPANDB instruction to the active function. -func (c *Context) VPEXPANDB(ops ...operand.Op) { - c.addinstruction(x86.VPEXPANDB(ops...)) -} - -// VPEXPANDB: Load Sparse Packed Byte Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDB m128 k xmm -// VPEXPANDB m128 xmm -// VPEXPANDB m256 k ymm -// VPEXPANDB m256 ymm -// VPEXPANDB xmm k xmm -// VPEXPANDB xmm xmm -// VPEXPANDB ymm k ymm -// VPEXPANDB ymm ymm -// VPEXPANDB m512 k zmm -// VPEXPANDB m512 zmm -// VPEXPANDB zmm k zmm -// VPEXPANDB zmm zmm -// -// Construct and append a VPEXPANDB instruction to the active function. -// Operates on the global context. -func VPEXPANDB(ops ...operand.Op) { ctx.VPEXPANDB(ops...) } - -// VPEXPANDB_Z: Load Sparse Packed Byte Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDB.Z m128 k xmm -// VPEXPANDB.Z m256 k ymm -// VPEXPANDB.Z xmm k xmm -// VPEXPANDB.Z ymm k ymm -// VPEXPANDB.Z m512 k zmm -// VPEXPANDB.Z zmm k zmm -// -// Construct and append a VPEXPANDB.Z instruction to the active function. -func (c *Context) VPEXPANDB_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPEXPANDB_Z(mxyz, k, xyz)) -} - -// VPEXPANDB_Z: Load Sparse Packed Byte Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDB.Z m128 k xmm -// VPEXPANDB.Z m256 k ymm -// VPEXPANDB.Z xmm k xmm -// VPEXPANDB.Z ymm k ymm -// VPEXPANDB.Z m512 k zmm -// VPEXPANDB.Z zmm k zmm -// -// Construct and append a VPEXPANDB.Z instruction to the active function. -// Operates on the global context. -func VPEXPANDB_Z(mxyz, k, xyz operand.Op) { ctx.VPEXPANDB_Z(mxyz, k, xyz) } - -// VPEXPANDD: Load Sparse Packed Doubleword Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDD m128 k xmm -// VPEXPANDD m128 xmm -// VPEXPANDD m256 k ymm -// VPEXPANDD m256 ymm -// VPEXPANDD xmm k xmm -// VPEXPANDD xmm xmm -// VPEXPANDD ymm k ymm -// VPEXPANDD ymm ymm -// VPEXPANDD m512 k zmm -// VPEXPANDD m512 zmm -// VPEXPANDD zmm k zmm -// VPEXPANDD zmm zmm -// -// Construct and append a VPEXPANDD instruction to the active function. -func (c *Context) VPEXPANDD(ops ...operand.Op) { - c.addinstruction(x86.VPEXPANDD(ops...)) -} - -// VPEXPANDD: Load Sparse Packed Doubleword Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDD m128 k xmm -// VPEXPANDD m128 xmm -// VPEXPANDD m256 k ymm -// VPEXPANDD m256 ymm -// VPEXPANDD xmm k xmm -// VPEXPANDD xmm xmm -// VPEXPANDD ymm k ymm -// VPEXPANDD ymm ymm -// VPEXPANDD m512 k zmm -// VPEXPANDD m512 zmm -// VPEXPANDD zmm k zmm -// VPEXPANDD zmm zmm -// -// Construct and append a VPEXPANDD instruction to the active function. -// Operates on the global context. -func VPEXPANDD(ops ...operand.Op) { ctx.VPEXPANDD(ops...) } - -// VPEXPANDD_Z: Load Sparse Packed Doubleword Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDD.Z m128 k xmm -// VPEXPANDD.Z m256 k ymm -// VPEXPANDD.Z xmm k xmm -// VPEXPANDD.Z ymm k ymm -// VPEXPANDD.Z m512 k zmm -// VPEXPANDD.Z zmm k zmm -// -// Construct and append a VPEXPANDD.Z instruction to the active function. -func (c *Context) VPEXPANDD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPEXPANDD_Z(mxyz, k, xyz)) -} - -// VPEXPANDD_Z: Load Sparse Packed Doubleword Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDD.Z m128 k xmm -// VPEXPANDD.Z m256 k ymm -// VPEXPANDD.Z xmm k xmm -// VPEXPANDD.Z ymm k ymm -// VPEXPANDD.Z m512 k zmm -// VPEXPANDD.Z zmm k zmm -// -// Construct and append a VPEXPANDD.Z instruction to the active function. -// Operates on the global context. -func VPEXPANDD_Z(mxyz, k, xyz operand.Op) { ctx.VPEXPANDD_Z(mxyz, k, xyz) } - -// VPEXPANDQ: Load Sparse Packed Quadword Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDQ m128 k xmm -// VPEXPANDQ m128 xmm -// VPEXPANDQ m256 k ymm -// VPEXPANDQ m256 ymm -// VPEXPANDQ xmm k xmm -// VPEXPANDQ xmm xmm -// VPEXPANDQ ymm k ymm -// VPEXPANDQ ymm ymm -// VPEXPANDQ m512 k zmm -// VPEXPANDQ m512 zmm -// VPEXPANDQ zmm k zmm -// VPEXPANDQ zmm zmm -// -// Construct and append a VPEXPANDQ instruction to the active function. -func (c *Context) VPEXPANDQ(ops ...operand.Op) { - c.addinstruction(x86.VPEXPANDQ(ops...)) -} - -// VPEXPANDQ: Load Sparse Packed Quadword Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDQ m128 k xmm -// VPEXPANDQ m128 xmm -// VPEXPANDQ m256 k ymm -// VPEXPANDQ m256 ymm -// VPEXPANDQ xmm k xmm -// VPEXPANDQ xmm xmm -// VPEXPANDQ ymm k ymm -// VPEXPANDQ ymm ymm -// VPEXPANDQ m512 k zmm -// VPEXPANDQ m512 zmm -// VPEXPANDQ zmm k zmm -// VPEXPANDQ zmm zmm -// -// Construct and append a VPEXPANDQ instruction to the active function. -// Operates on the global context. -func VPEXPANDQ(ops ...operand.Op) { ctx.VPEXPANDQ(ops...) } - -// VPEXPANDQ_Z: Load Sparse Packed Quadword Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDQ.Z m128 k xmm -// VPEXPANDQ.Z m256 k ymm -// VPEXPANDQ.Z xmm k xmm -// VPEXPANDQ.Z ymm k ymm -// VPEXPANDQ.Z m512 k zmm -// VPEXPANDQ.Z zmm k zmm -// -// Construct and append a VPEXPANDQ.Z instruction to the active function. -func (c *Context) VPEXPANDQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPEXPANDQ_Z(mxyz, k, xyz)) -} - -// VPEXPANDQ_Z: Load Sparse Packed Quadword Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDQ.Z m128 k xmm -// VPEXPANDQ.Z m256 k ymm -// VPEXPANDQ.Z xmm k xmm -// VPEXPANDQ.Z ymm k ymm -// VPEXPANDQ.Z m512 k zmm -// VPEXPANDQ.Z zmm k zmm -// -// Construct and append a VPEXPANDQ.Z instruction to the active function. -// Operates on the global context. -func VPEXPANDQ_Z(mxyz, k, xyz operand.Op) { ctx.VPEXPANDQ_Z(mxyz, k, xyz) } - -// VPEXPANDW: Load Sparse Packed Word Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDW m128 k xmm -// VPEXPANDW m128 xmm -// VPEXPANDW m256 k ymm -// VPEXPANDW m256 ymm -// VPEXPANDW xmm k xmm -// VPEXPANDW xmm xmm -// VPEXPANDW ymm k ymm -// VPEXPANDW ymm ymm -// VPEXPANDW m512 k zmm -// VPEXPANDW m512 zmm -// VPEXPANDW zmm k zmm -// VPEXPANDW zmm zmm -// -// Construct and append a VPEXPANDW instruction to the active function. -func (c *Context) VPEXPANDW(ops ...operand.Op) { - c.addinstruction(x86.VPEXPANDW(ops...)) -} - -// VPEXPANDW: Load Sparse Packed Word Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDW m128 k xmm -// VPEXPANDW m128 xmm -// VPEXPANDW m256 k ymm -// VPEXPANDW m256 ymm -// VPEXPANDW xmm k xmm -// VPEXPANDW xmm xmm -// VPEXPANDW ymm k ymm -// VPEXPANDW ymm ymm -// VPEXPANDW m512 k zmm -// VPEXPANDW m512 zmm -// VPEXPANDW zmm k zmm -// VPEXPANDW zmm zmm -// -// Construct and append a VPEXPANDW instruction to the active function. -// Operates on the global context. -func VPEXPANDW(ops ...operand.Op) { ctx.VPEXPANDW(ops...) } - -// VPEXPANDW_Z: Load Sparse Packed Word Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDW.Z m128 k xmm -// VPEXPANDW.Z m256 k ymm -// VPEXPANDW.Z xmm k xmm -// VPEXPANDW.Z ymm k ymm -// VPEXPANDW.Z m512 k zmm -// VPEXPANDW.Z zmm k zmm -// -// Construct and append a VPEXPANDW.Z instruction to the active function. -func (c *Context) VPEXPANDW_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPEXPANDW_Z(mxyz, k, xyz)) -} - -// VPEXPANDW_Z: Load Sparse Packed Word Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDW.Z m128 k xmm -// VPEXPANDW.Z m256 k ymm -// VPEXPANDW.Z xmm k xmm -// VPEXPANDW.Z ymm k ymm -// VPEXPANDW.Z m512 k zmm -// VPEXPANDW.Z zmm k zmm -// -// Construct and append a VPEXPANDW.Z instruction to the active function. -// Operates on the global context. -func VPEXPANDW_Z(mxyz, k, xyz operand.Op) { ctx.VPEXPANDW_Z(mxyz, k, xyz) } - -// VPEXTRB: Extract Byte. -// -// Forms: -// -// VPEXTRB imm8 xmm m8 -// VPEXTRB imm8 xmm r32 -// -// Construct and append a VPEXTRB instruction to the active function. -func (c *Context) VPEXTRB(i, x, mr operand.Op) { - c.addinstruction(x86.VPEXTRB(i, x, mr)) -} - -// VPEXTRB: Extract Byte. -// -// Forms: -// -// VPEXTRB imm8 xmm m8 -// VPEXTRB imm8 xmm r32 -// -// Construct and append a VPEXTRB instruction to the active function. -// Operates on the global context. -func VPEXTRB(i, x, mr operand.Op) { ctx.VPEXTRB(i, x, mr) } - -// VPEXTRD: Extract Doubleword. -// -// Forms: -// -// VPEXTRD imm8 xmm m32 -// VPEXTRD imm8 xmm r32 -// -// Construct and append a VPEXTRD instruction to the active function. -func (c *Context) VPEXTRD(i, x, mr operand.Op) { - c.addinstruction(x86.VPEXTRD(i, x, mr)) -} - -// VPEXTRD: Extract Doubleword. -// -// Forms: -// -// VPEXTRD imm8 xmm m32 -// VPEXTRD imm8 xmm r32 -// -// Construct and append a VPEXTRD instruction to the active function. -// Operates on the global context. -func VPEXTRD(i, x, mr operand.Op) { ctx.VPEXTRD(i, x, mr) } - -// VPEXTRQ: Extract Quadword. -// -// Forms: -// -// VPEXTRQ imm8 xmm m64 -// VPEXTRQ imm8 xmm r64 -// -// Construct and append a VPEXTRQ instruction to the active function. -func (c *Context) VPEXTRQ(i, x, mr operand.Op) { - c.addinstruction(x86.VPEXTRQ(i, x, mr)) -} - -// VPEXTRQ: Extract Quadword. -// -// Forms: -// -// VPEXTRQ imm8 xmm m64 -// VPEXTRQ imm8 xmm r64 -// -// Construct and append a VPEXTRQ instruction to the active function. -// Operates on the global context. -func VPEXTRQ(i, x, mr operand.Op) { ctx.VPEXTRQ(i, x, mr) } - -// VPEXTRW: Extract Word. -// -// Forms: -// -// VPEXTRW imm8 xmm m16 -// VPEXTRW imm8 xmm r32 -// -// Construct and append a VPEXTRW instruction to the active function. -func (c *Context) VPEXTRW(i, x, mr operand.Op) { - c.addinstruction(x86.VPEXTRW(i, x, mr)) -} - -// VPEXTRW: Extract Word. -// -// Forms: -// -// VPEXTRW imm8 xmm m16 -// VPEXTRW imm8 xmm r32 -// -// Construct and append a VPEXTRW instruction to the active function. -// Operates on the global context. -func VPEXTRW(i, x, mr operand.Op) { ctx.VPEXTRW(i, x, mr) } - -// VPGATHERDD: Gather Packed Doubleword Values Using Signed Doubleword Indices. -// -// Forms: -// -// VPGATHERDD xmm vm32x xmm -// VPGATHERDD ymm vm32y ymm -// VPGATHERDD vm32x k xmm -// VPGATHERDD vm32y k ymm -// VPGATHERDD vm32z k zmm -// -// Construct and append a VPGATHERDD instruction to the active function. -func (c *Context) VPGATHERDD(vxy, kv, xyz operand.Op) { - c.addinstruction(x86.VPGATHERDD(vxy, kv, xyz)) -} - -// VPGATHERDD: Gather Packed Doubleword Values Using Signed Doubleword Indices. -// -// Forms: -// -// VPGATHERDD xmm vm32x xmm -// VPGATHERDD ymm vm32y ymm -// VPGATHERDD vm32x k xmm -// VPGATHERDD vm32y k ymm -// VPGATHERDD vm32z k zmm -// -// Construct and append a VPGATHERDD instruction to the active function. -// Operates on the global context. -func VPGATHERDD(vxy, kv, xyz operand.Op) { ctx.VPGATHERDD(vxy, kv, xyz) } - -// VPGATHERDQ: Gather Packed Quadword Values Using Signed Doubleword Indices. -// -// Forms: -// -// VPGATHERDQ xmm vm32x xmm -// VPGATHERDQ ymm vm32x ymm -// VPGATHERDQ vm32x k xmm -// VPGATHERDQ vm32x k ymm -// VPGATHERDQ vm32y k zmm -// -// Construct and append a VPGATHERDQ instruction to the active function. -func (c *Context) VPGATHERDQ(vxy, kv, xyz operand.Op) { - c.addinstruction(x86.VPGATHERDQ(vxy, kv, xyz)) -} - -// VPGATHERDQ: Gather Packed Quadword Values Using Signed Doubleword Indices. -// -// Forms: -// -// VPGATHERDQ xmm vm32x xmm -// VPGATHERDQ ymm vm32x ymm -// VPGATHERDQ vm32x k xmm -// VPGATHERDQ vm32x k ymm -// VPGATHERDQ vm32y k zmm -// -// Construct and append a VPGATHERDQ instruction to the active function. -// Operates on the global context. -func VPGATHERDQ(vxy, kv, xyz operand.Op) { ctx.VPGATHERDQ(vxy, kv, xyz) } - -// VPGATHERQD: Gather Packed Doubleword Values Using Signed Quadword Indices. -// -// Forms: -// -// VPGATHERQD xmm vm64x xmm -// VPGATHERQD xmm vm64y xmm -// VPGATHERQD vm64x k xmm -// VPGATHERQD vm64y k xmm -// VPGATHERQD vm64z k ymm -// -// Construct and append a VPGATHERQD instruction to the active function. -func (c *Context) VPGATHERQD(vx, kv, xy operand.Op) { - c.addinstruction(x86.VPGATHERQD(vx, kv, xy)) -} - -// VPGATHERQD: Gather Packed Doubleword Values Using Signed Quadword Indices. -// -// Forms: -// -// VPGATHERQD xmm vm64x xmm -// VPGATHERQD xmm vm64y xmm -// VPGATHERQD vm64x k xmm -// VPGATHERQD vm64y k xmm -// VPGATHERQD vm64z k ymm -// -// Construct and append a VPGATHERQD instruction to the active function. -// Operates on the global context. -func VPGATHERQD(vx, kv, xy operand.Op) { ctx.VPGATHERQD(vx, kv, xy) } - -// VPGATHERQQ: Gather Packed Quadword Values Using Signed Quadword Indices. -// -// Forms: -// -// VPGATHERQQ xmm vm64x xmm -// VPGATHERQQ ymm vm64y ymm -// VPGATHERQQ vm64x k xmm -// VPGATHERQQ vm64y k ymm -// VPGATHERQQ vm64z k zmm -// -// Construct and append a VPGATHERQQ instruction to the active function. -func (c *Context) VPGATHERQQ(vxy, kv, xyz operand.Op) { - c.addinstruction(x86.VPGATHERQQ(vxy, kv, xyz)) -} - -// VPGATHERQQ: Gather Packed Quadword Values Using Signed Quadword Indices. -// -// Forms: -// -// VPGATHERQQ xmm vm64x xmm -// VPGATHERQQ ymm vm64y ymm -// VPGATHERQQ vm64x k xmm -// VPGATHERQQ vm64y k ymm -// VPGATHERQQ vm64z k zmm -// -// Construct and append a VPGATHERQQ instruction to the active function. -// Operates on the global context. -func VPGATHERQQ(vxy, kv, xyz operand.Op) { ctx.VPGATHERQQ(vxy, kv, xyz) } - -// VPHADDD: Packed Horizontal Add Doubleword Integer. -// -// Forms: -// -// VPHADDD m256 ymm ymm -// VPHADDD ymm ymm ymm -// VPHADDD m128 xmm xmm -// VPHADDD xmm xmm xmm -// -// Construct and append a VPHADDD instruction to the active function. -func (c *Context) VPHADDD(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPHADDD(mxy, xy, xy1)) -} - -// VPHADDD: Packed Horizontal Add Doubleword Integer. -// -// Forms: -// -// VPHADDD m256 ymm ymm -// VPHADDD ymm ymm ymm -// VPHADDD m128 xmm xmm -// VPHADDD xmm xmm xmm -// -// Construct and append a VPHADDD instruction to the active function. -// Operates on the global context. -func VPHADDD(mxy, xy, xy1 operand.Op) { ctx.VPHADDD(mxy, xy, xy1) } - -// VPHADDSW: Packed Horizontal Add Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPHADDSW m256 ymm ymm -// VPHADDSW ymm ymm ymm -// VPHADDSW m128 xmm xmm -// VPHADDSW xmm xmm xmm -// -// Construct and append a VPHADDSW instruction to the active function. -func (c *Context) VPHADDSW(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPHADDSW(mxy, xy, xy1)) -} - -// VPHADDSW: Packed Horizontal Add Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPHADDSW m256 ymm ymm -// VPHADDSW ymm ymm ymm -// VPHADDSW m128 xmm xmm -// VPHADDSW xmm xmm xmm -// -// Construct and append a VPHADDSW instruction to the active function. -// Operates on the global context. -func VPHADDSW(mxy, xy, xy1 operand.Op) { ctx.VPHADDSW(mxy, xy, xy1) } - -// VPHADDW: Packed Horizontal Add Word Integers. -// -// Forms: -// -// VPHADDW m256 ymm ymm -// VPHADDW ymm ymm ymm -// VPHADDW m128 xmm xmm -// VPHADDW xmm xmm xmm -// -// Construct and append a VPHADDW instruction to the active function. -func (c *Context) VPHADDW(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPHADDW(mxy, xy, xy1)) -} - -// VPHADDW: Packed Horizontal Add Word Integers. -// -// Forms: -// -// VPHADDW m256 ymm ymm -// VPHADDW ymm ymm ymm -// VPHADDW m128 xmm xmm -// VPHADDW xmm xmm xmm -// -// Construct and append a VPHADDW instruction to the active function. -// Operates on the global context. -func VPHADDW(mxy, xy, xy1 operand.Op) { ctx.VPHADDW(mxy, xy, xy1) } - -// VPHMINPOSUW: Packed Horizontal Minimum of Unsigned Word Integers. -// -// Forms: -// -// VPHMINPOSUW m128 xmm -// VPHMINPOSUW xmm xmm -// -// Construct and append a VPHMINPOSUW instruction to the active function. -func (c *Context) VPHMINPOSUW(mx, x operand.Op) { - c.addinstruction(x86.VPHMINPOSUW(mx, x)) -} - -// VPHMINPOSUW: Packed Horizontal Minimum of Unsigned Word Integers. -// -// Forms: -// -// VPHMINPOSUW m128 xmm -// VPHMINPOSUW xmm xmm -// -// Construct and append a VPHMINPOSUW instruction to the active function. -// Operates on the global context. -func VPHMINPOSUW(mx, x operand.Op) { ctx.VPHMINPOSUW(mx, x) } - -// VPHSUBD: Packed Horizontal Subtract Doubleword Integers. -// -// Forms: -// -// VPHSUBD m256 ymm ymm -// VPHSUBD ymm ymm ymm -// VPHSUBD m128 xmm xmm -// VPHSUBD xmm xmm xmm -// -// Construct and append a VPHSUBD instruction to the active function. -func (c *Context) VPHSUBD(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPHSUBD(mxy, xy, xy1)) -} - -// VPHSUBD: Packed Horizontal Subtract Doubleword Integers. -// -// Forms: -// -// VPHSUBD m256 ymm ymm -// VPHSUBD ymm ymm ymm -// VPHSUBD m128 xmm xmm -// VPHSUBD xmm xmm xmm -// -// Construct and append a VPHSUBD instruction to the active function. -// Operates on the global context. -func VPHSUBD(mxy, xy, xy1 operand.Op) { ctx.VPHSUBD(mxy, xy, xy1) } - -// VPHSUBSW: Packed Horizontal Subtract Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPHSUBSW m256 ymm ymm -// VPHSUBSW ymm ymm ymm -// VPHSUBSW m128 xmm xmm -// VPHSUBSW xmm xmm xmm -// -// Construct and append a VPHSUBSW instruction to the active function. -func (c *Context) VPHSUBSW(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPHSUBSW(mxy, xy, xy1)) -} - -// VPHSUBSW: Packed Horizontal Subtract Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPHSUBSW m256 ymm ymm -// VPHSUBSW ymm ymm ymm -// VPHSUBSW m128 xmm xmm -// VPHSUBSW xmm xmm xmm -// -// Construct and append a VPHSUBSW instruction to the active function. -// Operates on the global context. -func VPHSUBSW(mxy, xy, xy1 operand.Op) { ctx.VPHSUBSW(mxy, xy, xy1) } - -// VPHSUBW: Packed Horizontal Subtract Word Integers. -// -// Forms: -// -// VPHSUBW m256 ymm ymm -// VPHSUBW ymm ymm ymm -// VPHSUBW m128 xmm xmm -// VPHSUBW xmm xmm xmm -// -// Construct and append a VPHSUBW instruction to the active function. -func (c *Context) VPHSUBW(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPHSUBW(mxy, xy, xy1)) -} - -// VPHSUBW: Packed Horizontal Subtract Word Integers. -// -// Forms: -// -// VPHSUBW m256 ymm ymm -// VPHSUBW ymm ymm ymm -// VPHSUBW m128 xmm xmm -// VPHSUBW xmm xmm xmm -// -// Construct and append a VPHSUBW instruction to the active function. -// Operates on the global context. -func VPHSUBW(mxy, xy, xy1 operand.Op) { ctx.VPHSUBW(mxy, xy, xy1) } - -// VPINSRB: Insert Byte. -// -// Forms: -// -// VPINSRB imm8 m8 xmm xmm -// VPINSRB imm8 r32 xmm xmm -// -// Construct and append a VPINSRB instruction to the active function. -func (c *Context) VPINSRB(i, mr, x, x1 operand.Op) { - c.addinstruction(x86.VPINSRB(i, mr, x, x1)) -} - -// VPINSRB: Insert Byte. -// -// Forms: -// -// VPINSRB imm8 m8 xmm xmm -// VPINSRB imm8 r32 xmm xmm -// -// Construct and append a VPINSRB instruction to the active function. -// Operates on the global context. -func VPINSRB(i, mr, x, x1 operand.Op) { ctx.VPINSRB(i, mr, x, x1) } - -// VPINSRD: Insert Doubleword. -// -// Forms: -// -// VPINSRD imm8 m32 xmm xmm -// VPINSRD imm8 r32 xmm xmm -// -// Construct and append a VPINSRD instruction to the active function. -func (c *Context) VPINSRD(i, mr, x, x1 operand.Op) { - c.addinstruction(x86.VPINSRD(i, mr, x, x1)) -} - -// VPINSRD: Insert Doubleword. -// -// Forms: -// -// VPINSRD imm8 m32 xmm xmm -// VPINSRD imm8 r32 xmm xmm -// -// Construct and append a VPINSRD instruction to the active function. -// Operates on the global context. -func VPINSRD(i, mr, x, x1 operand.Op) { ctx.VPINSRD(i, mr, x, x1) } - -// VPINSRQ: Insert Quadword. -// -// Forms: -// -// VPINSRQ imm8 m64 xmm xmm -// VPINSRQ imm8 r64 xmm xmm -// -// Construct and append a VPINSRQ instruction to the active function. -func (c *Context) VPINSRQ(i, mr, x, x1 operand.Op) { - c.addinstruction(x86.VPINSRQ(i, mr, x, x1)) -} - -// VPINSRQ: Insert Quadword. -// -// Forms: -// -// VPINSRQ imm8 m64 xmm xmm -// VPINSRQ imm8 r64 xmm xmm -// -// Construct and append a VPINSRQ instruction to the active function. -// Operates on the global context. -func VPINSRQ(i, mr, x, x1 operand.Op) { ctx.VPINSRQ(i, mr, x, x1) } - -// VPINSRW: Insert Word. -// -// Forms: -// -// VPINSRW imm8 m16 xmm xmm -// VPINSRW imm8 r32 xmm xmm -// -// Construct and append a VPINSRW instruction to the active function. -func (c *Context) VPINSRW(i, mr, x, x1 operand.Op) { - c.addinstruction(x86.VPINSRW(i, mr, x, x1)) -} - -// VPINSRW: Insert Word. -// -// Forms: -// -// VPINSRW imm8 m16 xmm xmm -// VPINSRW imm8 r32 xmm xmm -// -// Construct and append a VPINSRW instruction to the active function. -// Operates on the global context. -func VPINSRW(i, mr, x, x1 operand.Op) { ctx.VPINSRW(i, mr, x, x1) } - -// VPLZCNTD: Count the Number of Leading Zero Bits for Packed Doubleword Values. -// -// Forms: -// -// VPLZCNTD m128 k xmm -// VPLZCNTD m128 xmm -// VPLZCNTD m256 k ymm -// VPLZCNTD m256 ymm -// VPLZCNTD xmm k xmm -// VPLZCNTD xmm xmm -// VPLZCNTD ymm k ymm -// VPLZCNTD ymm ymm -// VPLZCNTD m512 k zmm -// VPLZCNTD m512 zmm -// VPLZCNTD zmm k zmm -// VPLZCNTD zmm zmm -// -// Construct and append a VPLZCNTD instruction to the active function. -func (c *Context) VPLZCNTD(ops ...operand.Op) { - c.addinstruction(x86.VPLZCNTD(ops...)) -} - -// VPLZCNTD: Count the Number of Leading Zero Bits for Packed Doubleword Values. -// -// Forms: -// -// VPLZCNTD m128 k xmm -// VPLZCNTD m128 xmm -// VPLZCNTD m256 k ymm -// VPLZCNTD m256 ymm -// VPLZCNTD xmm k xmm -// VPLZCNTD xmm xmm -// VPLZCNTD ymm k ymm -// VPLZCNTD ymm ymm -// VPLZCNTD m512 k zmm -// VPLZCNTD m512 zmm -// VPLZCNTD zmm k zmm -// VPLZCNTD zmm zmm -// -// Construct and append a VPLZCNTD instruction to the active function. -// Operates on the global context. -func VPLZCNTD(ops ...operand.Op) { ctx.VPLZCNTD(ops...) } - -// VPLZCNTD_BCST: Count the Number of Leading Zero Bits for Packed Doubleword Values (Broadcast). -// -// Forms: -// -// VPLZCNTD.BCST m32 k xmm -// VPLZCNTD.BCST m32 k ymm -// VPLZCNTD.BCST m32 xmm -// VPLZCNTD.BCST m32 ymm -// VPLZCNTD.BCST m32 k zmm -// VPLZCNTD.BCST m32 zmm -// -// Construct and append a VPLZCNTD.BCST instruction to the active function. -func (c *Context) VPLZCNTD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPLZCNTD_BCST(ops...)) -} - -// VPLZCNTD_BCST: Count the Number of Leading Zero Bits for Packed Doubleword Values (Broadcast). -// -// Forms: -// -// VPLZCNTD.BCST m32 k xmm -// VPLZCNTD.BCST m32 k ymm -// VPLZCNTD.BCST m32 xmm -// VPLZCNTD.BCST m32 ymm -// VPLZCNTD.BCST m32 k zmm -// VPLZCNTD.BCST m32 zmm -// -// Construct and append a VPLZCNTD.BCST instruction to the active function. -// Operates on the global context. -func VPLZCNTD_BCST(ops ...operand.Op) { ctx.VPLZCNTD_BCST(ops...) } - -// VPLZCNTD_BCST_Z: Count the Number of Leading Zero Bits for Packed Doubleword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPLZCNTD.BCST.Z m32 k xmm -// VPLZCNTD.BCST.Z m32 k ymm -// VPLZCNTD.BCST.Z m32 k zmm -// -// Construct and append a VPLZCNTD.BCST.Z instruction to the active function. -func (c *Context) VPLZCNTD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VPLZCNTD_BCST_Z(m, k, xyz)) -} - -// VPLZCNTD_BCST_Z: Count the Number of Leading Zero Bits for Packed Doubleword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPLZCNTD.BCST.Z m32 k xmm -// VPLZCNTD.BCST.Z m32 k ymm -// VPLZCNTD.BCST.Z m32 k zmm -// -// Construct and append a VPLZCNTD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPLZCNTD_BCST_Z(m, k, xyz operand.Op) { ctx.VPLZCNTD_BCST_Z(m, k, xyz) } - -// VPLZCNTD_Z: Count the Number of Leading Zero Bits for Packed Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VPLZCNTD.Z m128 k xmm -// VPLZCNTD.Z m256 k ymm -// VPLZCNTD.Z xmm k xmm -// VPLZCNTD.Z ymm k ymm -// VPLZCNTD.Z m512 k zmm -// VPLZCNTD.Z zmm k zmm -// -// Construct and append a VPLZCNTD.Z instruction to the active function. -func (c *Context) VPLZCNTD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPLZCNTD_Z(mxyz, k, xyz)) -} - -// VPLZCNTD_Z: Count the Number of Leading Zero Bits for Packed Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VPLZCNTD.Z m128 k xmm -// VPLZCNTD.Z m256 k ymm -// VPLZCNTD.Z xmm k xmm -// VPLZCNTD.Z ymm k ymm -// VPLZCNTD.Z m512 k zmm -// VPLZCNTD.Z zmm k zmm -// -// Construct and append a VPLZCNTD.Z instruction to the active function. -// Operates on the global context. -func VPLZCNTD_Z(mxyz, k, xyz operand.Op) { ctx.VPLZCNTD_Z(mxyz, k, xyz) } - -// VPLZCNTQ: Count the Number of Leading Zero Bits for Packed Quadword Values. -// -// Forms: -// -// VPLZCNTQ m128 k xmm -// VPLZCNTQ m128 xmm -// VPLZCNTQ m256 k ymm -// VPLZCNTQ m256 ymm -// VPLZCNTQ xmm k xmm -// VPLZCNTQ xmm xmm -// VPLZCNTQ ymm k ymm -// VPLZCNTQ ymm ymm -// VPLZCNTQ m512 k zmm -// VPLZCNTQ m512 zmm -// VPLZCNTQ zmm k zmm -// VPLZCNTQ zmm zmm -// -// Construct and append a VPLZCNTQ instruction to the active function. -func (c *Context) VPLZCNTQ(ops ...operand.Op) { - c.addinstruction(x86.VPLZCNTQ(ops...)) -} - -// VPLZCNTQ: Count the Number of Leading Zero Bits for Packed Quadword Values. -// -// Forms: -// -// VPLZCNTQ m128 k xmm -// VPLZCNTQ m128 xmm -// VPLZCNTQ m256 k ymm -// VPLZCNTQ m256 ymm -// VPLZCNTQ xmm k xmm -// VPLZCNTQ xmm xmm -// VPLZCNTQ ymm k ymm -// VPLZCNTQ ymm ymm -// VPLZCNTQ m512 k zmm -// VPLZCNTQ m512 zmm -// VPLZCNTQ zmm k zmm -// VPLZCNTQ zmm zmm -// -// Construct and append a VPLZCNTQ instruction to the active function. -// Operates on the global context. -func VPLZCNTQ(ops ...operand.Op) { ctx.VPLZCNTQ(ops...) } - -// VPLZCNTQ_BCST: Count the Number of Leading Zero Bits for Packed Quadword Values (Broadcast). -// -// Forms: -// -// VPLZCNTQ.BCST m64 k xmm -// VPLZCNTQ.BCST m64 k ymm -// VPLZCNTQ.BCST m64 xmm -// VPLZCNTQ.BCST m64 ymm -// VPLZCNTQ.BCST m64 k zmm -// VPLZCNTQ.BCST m64 zmm -// -// Construct and append a VPLZCNTQ.BCST instruction to the active function. -func (c *Context) VPLZCNTQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPLZCNTQ_BCST(ops...)) -} - -// VPLZCNTQ_BCST: Count the Number of Leading Zero Bits for Packed Quadword Values (Broadcast). -// -// Forms: -// -// VPLZCNTQ.BCST m64 k xmm -// VPLZCNTQ.BCST m64 k ymm -// VPLZCNTQ.BCST m64 xmm -// VPLZCNTQ.BCST m64 ymm -// VPLZCNTQ.BCST m64 k zmm -// VPLZCNTQ.BCST m64 zmm -// -// Construct and append a VPLZCNTQ.BCST instruction to the active function. -// Operates on the global context. -func VPLZCNTQ_BCST(ops ...operand.Op) { ctx.VPLZCNTQ_BCST(ops...) } - -// VPLZCNTQ_BCST_Z: Count the Number of Leading Zero Bits for Packed Quadword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPLZCNTQ.BCST.Z m64 k xmm -// VPLZCNTQ.BCST.Z m64 k ymm -// VPLZCNTQ.BCST.Z m64 k zmm -// -// Construct and append a VPLZCNTQ.BCST.Z instruction to the active function. -func (c *Context) VPLZCNTQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VPLZCNTQ_BCST_Z(m, k, xyz)) -} - -// VPLZCNTQ_BCST_Z: Count the Number of Leading Zero Bits for Packed Quadword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPLZCNTQ.BCST.Z m64 k xmm -// VPLZCNTQ.BCST.Z m64 k ymm -// VPLZCNTQ.BCST.Z m64 k zmm -// -// Construct and append a VPLZCNTQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPLZCNTQ_BCST_Z(m, k, xyz operand.Op) { ctx.VPLZCNTQ_BCST_Z(m, k, xyz) } - -// VPLZCNTQ_Z: Count the Number of Leading Zero Bits for Packed Quadword Values (Zeroing Masking). -// -// Forms: -// -// VPLZCNTQ.Z m128 k xmm -// VPLZCNTQ.Z m256 k ymm -// VPLZCNTQ.Z xmm k xmm -// VPLZCNTQ.Z ymm k ymm -// VPLZCNTQ.Z m512 k zmm -// VPLZCNTQ.Z zmm k zmm -// -// Construct and append a VPLZCNTQ.Z instruction to the active function. -func (c *Context) VPLZCNTQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPLZCNTQ_Z(mxyz, k, xyz)) -} - -// VPLZCNTQ_Z: Count the Number of Leading Zero Bits for Packed Quadword Values (Zeroing Masking). -// -// Forms: -// -// VPLZCNTQ.Z m128 k xmm -// VPLZCNTQ.Z m256 k ymm -// VPLZCNTQ.Z xmm k xmm -// VPLZCNTQ.Z ymm k ymm -// VPLZCNTQ.Z m512 k zmm -// VPLZCNTQ.Z zmm k zmm -// -// Construct and append a VPLZCNTQ.Z instruction to the active function. -// Operates on the global context. -func VPLZCNTQ_Z(mxyz, k, xyz operand.Op) { ctx.VPLZCNTQ_Z(mxyz, k, xyz) } - -// VPMADD52HUQ: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators. -// -// Forms: -// -// VPMADD52HUQ m128 xmm k xmm -// VPMADD52HUQ m128 xmm xmm -// VPMADD52HUQ m256 ymm k ymm -// VPMADD52HUQ m256 ymm ymm -// VPMADD52HUQ xmm xmm k xmm -// VPMADD52HUQ xmm xmm xmm -// VPMADD52HUQ ymm ymm k ymm -// VPMADD52HUQ ymm ymm ymm -// VPMADD52HUQ m512 zmm k zmm -// VPMADD52HUQ m512 zmm zmm -// VPMADD52HUQ zmm zmm k zmm -// VPMADD52HUQ zmm zmm zmm -// -// Construct and append a VPMADD52HUQ instruction to the active function. -func (c *Context) VPMADD52HUQ(ops ...operand.Op) { - c.addinstruction(x86.VPMADD52HUQ(ops...)) -} - -// VPMADD52HUQ: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators. -// -// Forms: -// -// VPMADD52HUQ m128 xmm k xmm -// VPMADD52HUQ m128 xmm xmm -// VPMADD52HUQ m256 ymm k ymm -// VPMADD52HUQ m256 ymm ymm -// VPMADD52HUQ xmm xmm k xmm -// VPMADD52HUQ xmm xmm xmm -// VPMADD52HUQ ymm ymm k ymm -// VPMADD52HUQ ymm ymm ymm -// VPMADD52HUQ m512 zmm k zmm -// VPMADD52HUQ m512 zmm zmm -// VPMADD52HUQ zmm zmm k zmm -// VPMADD52HUQ zmm zmm zmm -// -// Construct and append a VPMADD52HUQ instruction to the active function. -// Operates on the global context. -func VPMADD52HUQ(ops ...operand.Op) { ctx.VPMADD52HUQ(ops...) } - -// VPMADD52HUQ_BCST: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Broadcast). -// -// Forms: -// -// VPMADD52HUQ.BCST m64 xmm k xmm -// VPMADD52HUQ.BCST m64 xmm xmm -// VPMADD52HUQ.BCST m64 ymm k ymm -// VPMADD52HUQ.BCST m64 ymm ymm -// VPMADD52HUQ.BCST m64 zmm k zmm -// VPMADD52HUQ.BCST m64 zmm zmm -// -// Construct and append a VPMADD52HUQ.BCST instruction to the active function. -func (c *Context) VPMADD52HUQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMADD52HUQ_BCST(ops...)) -} - -// VPMADD52HUQ_BCST: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Broadcast). -// -// Forms: -// -// VPMADD52HUQ.BCST m64 xmm k xmm -// VPMADD52HUQ.BCST m64 xmm xmm -// VPMADD52HUQ.BCST m64 ymm k ymm -// VPMADD52HUQ.BCST m64 ymm ymm -// VPMADD52HUQ.BCST m64 zmm k zmm -// VPMADD52HUQ.BCST m64 zmm zmm -// -// Construct and append a VPMADD52HUQ.BCST instruction to the active function. -// Operates on the global context. -func VPMADD52HUQ_BCST(ops ...operand.Op) { ctx.VPMADD52HUQ_BCST(ops...) } - -// VPMADD52HUQ_BCST_Z: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMADD52HUQ.BCST.Z m64 xmm k xmm -// VPMADD52HUQ.BCST.Z m64 ymm k ymm -// VPMADD52HUQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMADD52HUQ.BCST.Z instruction to the active function. -func (c *Context) VPMADD52HUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMADD52HUQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMADD52HUQ_BCST_Z: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMADD52HUQ.BCST.Z m64 xmm k xmm -// VPMADD52HUQ.BCST.Z m64 ymm k ymm -// VPMADD52HUQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMADD52HUQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMADD52HUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMADD52HUQ_BCST_Z(m, xyz, k, xyz1) } - -// VPMADD52HUQ_Z: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Zeroing Masking). -// -// Forms: -// -// VPMADD52HUQ.Z m128 xmm k xmm -// VPMADD52HUQ.Z m256 ymm k ymm -// VPMADD52HUQ.Z xmm xmm k xmm -// VPMADD52HUQ.Z ymm ymm k ymm -// VPMADD52HUQ.Z m512 zmm k zmm -// VPMADD52HUQ.Z zmm zmm k zmm -// -// Construct and append a VPMADD52HUQ.Z instruction to the active function. -func (c *Context) VPMADD52HUQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMADD52HUQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPMADD52HUQ_Z: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Zeroing Masking). -// -// Forms: -// -// VPMADD52HUQ.Z m128 xmm k xmm -// VPMADD52HUQ.Z m256 ymm k ymm -// VPMADD52HUQ.Z xmm xmm k xmm -// VPMADD52HUQ.Z ymm ymm k ymm -// VPMADD52HUQ.Z m512 zmm k zmm -// VPMADD52HUQ.Z zmm zmm k zmm -// -// Construct and append a VPMADD52HUQ.Z instruction to the active function. -// Operates on the global context. -func VPMADD52HUQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMADD52HUQ_Z(mxyz, xyz, k, xyz1) } - -// VPMADD52LUQ: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators. -// -// Forms: -// -// VPMADD52LUQ m128 xmm k xmm -// VPMADD52LUQ m128 xmm xmm -// VPMADD52LUQ m256 ymm k ymm -// VPMADD52LUQ m256 ymm ymm -// VPMADD52LUQ xmm xmm k xmm -// VPMADD52LUQ xmm xmm xmm -// VPMADD52LUQ ymm ymm k ymm -// VPMADD52LUQ ymm ymm ymm -// VPMADD52LUQ m512 zmm k zmm -// VPMADD52LUQ m512 zmm zmm -// VPMADD52LUQ zmm zmm k zmm -// VPMADD52LUQ zmm zmm zmm -// -// Construct and append a VPMADD52LUQ instruction to the active function. -func (c *Context) VPMADD52LUQ(ops ...operand.Op) { - c.addinstruction(x86.VPMADD52LUQ(ops...)) -} - -// VPMADD52LUQ: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators. -// -// Forms: -// -// VPMADD52LUQ m128 xmm k xmm -// VPMADD52LUQ m128 xmm xmm -// VPMADD52LUQ m256 ymm k ymm -// VPMADD52LUQ m256 ymm ymm -// VPMADD52LUQ xmm xmm k xmm -// VPMADD52LUQ xmm xmm xmm -// VPMADD52LUQ ymm ymm k ymm -// VPMADD52LUQ ymm ymm ymm -// VPMADD52LUQ m512 zmm k zmm -// VPMADD52LUQ m512 zmm zmm -// VPMADD52LUQ zmm zmm k zmm -// VPMADD52LUQ zmm zmm zmm -// -// Construct and append a VPMADD52LUQ instruction to the active function. -// Operates on the global context. -func VPMADD52LUQ(ops ...operand.Op) { ctx.VPMADD52LUQ(ops...) } - -// VPMADD52LUQ_BCST: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Broadcast). -// -// Forms: -// -// VPMADD52LUQ.BCST m64 xmm k xmm -// VPMADD52LUQ.BCST m64 xmm xmm -// VPMADD52LUQ.BCST m64 ymm k ymm -// VPMADD52LUQ.BCST m64 ymm ymm -// VPMADD52LUQ.BCST m64 zmm k zmm -// VPMADD52LUQ.BCST m64 zmm zmm -// -// Construct and append a VPMADD52LUQ.BCST instruction to the active function. -func (c *Context) VPMADD52LUQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMADD52LUQ_BCST(ops...)) -} - -// VPMADD52LUQ_BCST: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Broadcast). -// -// Forms: -// -// VPMADD52LUQ.BCST m64 xmm k xmm -// VPMADD52LUQ.BCST m64 xmm xmm -// VPMADD52LUQ.BCST m64 ymm k ymm -// VPMADD52LUQ.BCST m64 ymm ymm -// VPMADD52LUQ.BCST m64 zmm k zmm -// VPMADD52LUQ.BCST m64 zmm zmm -// -// Construct and append a VPMADD52LUQ.BCST instruction to the active function. -// Operates on the global context. -func VPMADD52LUQ_BCST(ops ...operand.Op) { ctx.VPMADD52LUQ_BCST(ops...) } - -// VPMADD52LUQ_BCST_Z: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMADD52LUQ.BCST.Z m64 xmm k xmm -// VPMADD52LUQ.BCST.Z m64 ymm k ymm -// VPMADD52LUQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMADD52LUQ.BCST.Z instruction to the active function. -func (c *Context) VPMADD52LUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMADD52LUQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMADD52LUQ_BCST_Z: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMADD52LUQ.BCST.Z m64 xmm k xmm -// VPMADD52LUQ.BCST.Z m64 ymm k ymm -// VPMADD52LUQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMADD52LUQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMADD52LUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMADD52LUQ_BCST_Z(m, xyz, k, xyz1) } - -// VPMADD52LUQ_Z: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Zeroing Masking). -// -// Forms: -// -// VPMADD52LUQ.Z m128 xmm k xmm -// VPMADD52LUQ.Z m256 ymm k ymm -// VPMADD52LUQ.Z xmm xmm k xmm -// VPMADD52LUQ.Z ymm ymm k ymm -// VPMADD52LUQ.Z m512 zmm k zmm -// VPMADD52LUQ.Z zmm zmm k zmm -// -// Construct and append a VPMADD52LUQ.Z instruction to the active function. -func (c *Context) VPMADD52LUQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMADD52LUQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPMADD52LUQ_Z: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Zeroing Masking). -// -// Forms: -// -// VPMADD52LUQ.Z m128 xmm k xmm -// VPMADD52LUQ.Z m256 ymm k ymm -// VPMADD52LUQ.Z xmm xmm k xmm -// VPMADD52LUQ.Z ymm ymm k ymm -// VPMADD52LUQ.Z m512 zmm k zmm -// VPMADD52LUQ.Z zmm zmm k zmm -// -// Construct and append a VPMADD52LUQ.Z instruction to the active function. -// Operates on the global context. -func VPMADD52LUQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMADD52LUQ_Z(mxyz, xyz, k, xyz1) } - -// VPMADDUBSW: Multiply and Add Packed Signed and Unsigned Byte Integers. -// -// Forms: -// -// VPMADDUBSW m256 ymm ymm -// VPMADDUBSW ymm ymm ymm -// VPMADDUBSW m128 xmm xmm -// VPMADDUBSW xmm xmm xmm -// VPMADDUBSW m128 xmm k xmm -// VPMADDUBSW m256 ymm k ymm -// VPMADDUBSW xmm xmm k xmm -// VPMADDUBSW ymm ymm k ymm -// VPMADDUBSW m512 zmm k zmm -// VPMADDUBSW m512 zmm zmm -// VPMADDUBSW zmm zmm k zmm -// VPMADDUBSW zmm zmm zmm -// -// Construct and append a VPMADDUBSW instruction to the active function. -func (c *Context) VPMADDUBSW(ops ...operand.Op) { - c.addinstruction(x86.VPMADDUBSW(ops...)) -} - -// VPMADDUBSW: Multiply and Add Packed Signed and Unsigned Byte Integers. -// -// Forms: -// -// VPMADDUBSW m256 ymm ymm -// VPMADDUBSW ymm ymm ymm -// VPMADDUBSW m128 xmm xmm -// VPMADDUBSW xmm xmm xmm -// VPMADDUBSW m128 xmm k xmm -// VPMADDUBSW m256 ymm k ymm -// VPMADDUBSW xmm xmm k xmm -// VPMADDUBSW ymm ymm k ymm -// VPMADDUBSW m512 zmm k zmm -// VPMADDUBSW m512 zmm zmm -// VPMADDUBSW zmm zmm k zmm -// VPMADDUBSW zmm zmm zmm -// -// Construct and append a VPMADDUBSW instruction to the active function. -// Operates on the global context. -func VPMADDUBSW(ops ...operand.Op) { ctx.VPMADDUBSW(ops...) } - -// VPMADDUBSW_Z: Multiply and Add Packed Signed and Unsigned Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMADDUBSW.Z m128 xmm k xmm -// VPMADDUBSW.Z m256 ymm k ymm -// VPMADDUBSW.Z xmm xmm k xmm -// VPMADDUBSW.Z ymm ymm k ymm -// VPMADDUBSW.Z m512 zmm k zmm -// VPMADDUBSW.Z zmm zmm k zmm -// -// Construct and append a VPMADDUBSW.Z instruction to the active function. -func (c *Context) VPMADDUBSW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMADDUBSW_Z(mxyz, xyz, k, xyz1)) -} - -// VPMADDUBSW_Z: Multiply and Add Packed Signed and Unsigned Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMADDUBSW.Z m128 xmm k xmm -// VPMADDUBSW.Z m256 ymm k ymm -// VPMADDUBSW.Z xmm xmm k xmm -// VPMADDUBSW.Z ymm ymm k ymm -// VPMADDUBSW.Z m512 zmm k zmm -// VPMADDUBSW.Z zmm zmm k zmm -// -// Construct and append a VPMADDUBSW.Z instruction to the active function. -// Operates on the global context. -func VPMADDUBSW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMADDUBSW_Z(mxyz, xyz, k, xyz1) } - -// VPMADDWD: Multiply and Add Packed Signed Word Integers. -// -// Forms: -// -// VPMADDWD m256 ymm ymm -// VPMADDWD ymm ymm ymm -// VPMADDWD m128 xmm xmm -// VPMADDWD xmm xmm xmm -// VPMADDWD m128 xmm k xmm -// VPMADDWD m256 ymm k ymm -// VPMADDWD xmm xmm k xmm -// VPMADDWD ymm ymm k ymm -// VPMADDWD m512 zmm k zmm -// VPMADDWD m512 zmm zmm -// VPMADDWD zmm zmm k zmm -// VPMADDWD zmm zmm zmm -// -// Construct and append a VPMADDWD instruction to the active function. -func (c *Context) VPMADDWD(ops ...operand.Op) { - c.addinstruction(x86.VPMADDWD(ops...)) -} - -// VPMADDWD: Multiply and Add Packed Signed Word Integers. -// -// Forms: -// -// VPMADDWD m256 ymm ymm -// VPMADDWD ymm ymm ymm -// VPMADDWD m128 xmm xmm -// VPMADDWD xmm xmm xmm -// VPMADDWD m128 xmm k xmm -// VPMADDWD m256 ymm k ymm -// VPMADDWD xmm xmm k xmm -// VPMADDWD ymm ymm k ymm -// VPMADDWD m512 zmm k zmm -// VPMADDWD m512 zmm zmm -// VPMADDWD zmm zmm k zmm -// VPMADDWD zmm zmm zmm -// -// Construct and append a VPMADDWD instruction to the active function. -// Operates on the global context. -func VPMADDWD(ops ...operand.Op) { ctx.VPMADDWD(ops...) } - -// VPMADDWD_Z: Multiply and Add Packed Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMADDWD.Z m128 xmm k xmm -// VPMADDWD.Z m256 ymm k ymm -// VPMADDWD.Z xmm xmm k xmm -// VPMADDWD.Z ymm ymm k ymm -// VPMADDWD.Z m512 zmm k zmm -// VPMADDWD.Z zmm zmm k zmm -// -// Construct and append a VPMADDWD.Z instruction to the active function. -func (c *Context) VPMADDWD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMADDWD_Z(mxyz, xyz, k, xyz1)) -} - -// VPMADDWD_Z: Multiply and Add Packed Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMADDWD.Z m128 xmm k xmm -// VPMADDWD.Z m256 ymm k ymm -// VPMADDWD.Z xmm xmm k xmm -// VPMADDWD.Z ymm ymm k ymm -// VPMADDWD.Z m512 zmm k zmm -// VPMADDWD.Z zmm zmm k zmm -// -// Construct and append a VPMADDWD.Z instruction to the active function. -// Operates on the global context. -func VPMADDWD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMADDWD_Z(mxyz, xyz, k, xyz1) } - -// VPMASKMOVD: Conditional Move Packed Doubleword Integers. -// -// Forms: -// -// VPMASKMOVD m128 xmm xmm -// VPMASKMOVD m256 ymm ymm -// VPMASKMOVD xmm xmm m128 -// VPMASKMOVD ymm ymm m256 -// -// Construct and append a VPMASKMOVD instruction to the active function. -func (c *Context) VPMASKMOVD(mxy, xy, mxy1 operand.Op) { - c.addinstruction(x86.VPMASKMOVD(mxy, xy, mxy1)) -} - -// VPMASKMOVD: Conditional Move Packed Doubleword Integers. -// -// Forms: -// -// VPMASKMOVD m128 xmm xmm -// VPMASKMOVD m256 ymm ymm -// VPMASKMOVD xmm xmm m128 -// VPMASKMOVD ymm ymm m256 -// -// Construct and append a VPMASKMOVD instruction to the active function. -// Operates on the global context. -func VPMASKMOVD(mxy, xy, mxy1 operand.Op) { ctx.VPMASKMOVD(mxy, xy, mxy1) } - -// VPMASKMOVQ: Conditional Move Packed Quadword Integers. -// -// Forms: -// -// VPMASKMOVQ m128 xmm xmm -// VPMASKMOVQ m256 ymm ymm -// VPMASKMOVQ xmm xmm m128 -// VPMASKMOVQ ymm ymm m256 -// -// Construct and append a VPMASKMOVQ instruction to the active function. -func (c *Context) VPMASKMOVQ(mxy, xy, mxy1 operand.Op) { - c.addinstruction(x86.VPMASKMOVQ(mxy, xy, mxy1)) -} - -// VPMASKMOVQ: Conditional Move Packed Quadword Integers. -// -// Forms: -// -// VPMASKMOVQ m128 xmm xmm -// VPMASKMOVQ m256 ymm ymm -// VPMASKMOVQ xmm xmm m128 -// VPMASKMOVQ ymm ymm m256 -// -// Construct and append a VPMASKMOVQ instruction to the active function. -// Operates on the global context. -func VPMASKMOVQ(mxy, xy, mxy1 operand.Op) { ctx.VPMASKMOVQ(mxy, xy, mxy1) } - -// VPMAXSB: Maximum of Packed Signed Byte Integers. -// -// Forms: -// -// VPMAXSB m256 ymm ymm -// VPMAXSB ymm ymm ymm -// VPMAXSB m128 xmm xmm -// VPMAXSB xmm xmm xmm -// VPMAXSB m128 xmm k xmm -// VPMAXSB m256 ymm k ymm -// VPMAXSB xmm xmm k xmm -// VPMAXSB ymm ymm k ymm -// VPMAXSB m512 zmm k zmm -// VPMAXSB m512 zmm zmm -// VPMAXSB zmm zmm k zmm -// VPMAXSB zmm zmm zmm -// -// Construct and append a VPMAXSB instruction to the active function. -func (c *Context) VPMAXSB(ops ...operand.Op) { - c.addinstruction(x86.VPMAXSB(ops...)) -} - -// VPMAXSB: Maximum of Packed Signed Byte Integers. -// -// Forms: -// -// VPMAXSB m256 ymm ymm -// VPMAXSB ymm ymm ymm -// VPMAXSB m128 xmm xmm -// VPMAXSB xmm xmm xmm -// VPMAXSB m128 xmm k xmm -// VPMAXSB m256 ymm k ymm -// VPMAXSB xmm xmm k xmm -// VPMAXSB ymm ymm k ymm -// VPMAXSB m512 zmm k zmm -// VPMAXSB m512 zmm zmm -// VPMAXSB zmm zmm k zmm -// VPMAXSB zmm zmm zmm -// -// Construct and append a VPMAXSB instruction to the active function. -// Operates on the global context. -func VPMAXSB(ops ...operand.Op) { ctx.VPMAXSB(ops...) } - -// VPMAXSB_Z: Maximum of Packed Signed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSB.Z m128 xmm k xmm -// VPMAXSB.Z m256 ymm k ymm -// VPMAXSB.Z xmm xmm k xmm -// VPMAXSB.Z ymm ymm k ymm -// VPMAXSB.Z m512 zmm k zmm -// VPMAXSB.Z zmm zmm k zmm -// -// Construct and append a VPMAXSB.Z instruction to the active function. -func (c *Context) VPMAXSB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXSB_Z(mxyz, xyz, k, xyz1)) -} - -// VPMAXSB_Z: Maximum of Packed Signed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSB.Z m128 xmm k xmm -// VPMAXSB.Z m256 ymm k ymm -// VPMAXSB.Z xmm xmm k xmm -// VPMAXSB.Z ymm ymm k ymm -// VPMAXSB.Z m512 zmm k zmm -// VPMAXSB.Z zmm zmm k zmm -// -// Construct and append a VPMAXSB.Z instruction to the active function. -// Operates on the global context. -func VPMAXSB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMAXSB_Z(mxyz, xyz, k, xyz1) } - -// VPMAXSD: Maximum of Packed Signed Doubleword Integers. -// -// Forms: -// -// VPMAXSD m256 ymm ymm -// VPMAXSD ymm ymm ymm -// VPMAXSD m128 xmm xmm -// VPMAXSD xmm xmm xmm -// VPMAXSD m128 xmm k xmm -// VPMAXSD m256 ymm k ymm -// VPMAXSD xmm xmm k xmm -// VPMAXSD ymm ymm k ymm -// VPMAXSD m512 zmm k zmm -// VPMAXSD m512 zmm zmm -// VPMAXSD zmm zmm k zmm -// VPMAXSD zmm zmm zmm -// -// Construct and append a VPMAXSD instruction to the active function. -func (c *Context) VPMAXSD(ops ...operand.Op) { - c.addinstruction(x86.VPMAXSD(ops...)) -} - -// VPMAXSD: Maximum of Packed Signed Doubleword Integers. -// -// Forms: -// -// VPMAXSD m256 ymm ymm -// VPMAXSD ymm ymm ymm -// VPMAXSD m128 xmm xmm -// VPMAXSD xmm xmm xmm -// VPMAXSD m128 xmm k xmm -// VPMAXSD m256 ymm k ymm -// VPMAXSD xmm xmm k xmm -// VPMAXSD ymm ymm k ymm -// VPMAXSD m512 zmm k zmm -// VPMAXSD m512 zmm zmm -// VPMAXSD zmm zmm k zmm -// VPMAXSD zmm zmm zmm -// -// Construct and append a VPMAXSD instruction to the active function. -// Operates on the global context. -func VPMAXSD(ops ...operand.Op) { ctx.VPMAXSD(ops...) } - -// VPMAXSD_BCST: Maximum of Packed Signed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMAXSD.BCST m32 xmm k xmm -// VPMAXSD.BCST m32 xmm xmm -// VPMAXSD.BCST m32 ymm k ymm -// VPMAXSD.BCST m32 ymm ymm -// VPMAXSD.BCST m32 zmm k zmm -// VPMAXSD.BCST m32 zmm zmm -// -// Construct and append a VPMAXSD.BCST instruction to the active function. -func (c *Context) VPMAXSD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMAXSD_BCST(ops...)) -} - -// VPMAXSD_BCST: Maximum of Packed Signed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMAXSD.BCST m32 xmm k xmm -// VPMAXSD.BCST m32 xmm xmm -// VPMAXSD.BCST m32 ymm k ymm -// VPMAXSD.BCST m32 ymm ymm -// VPMAXSD.BCST m32 zmm k zmm -// VPMAXSD.BCST m32 zmm zmm -// -// Construct and append a VPMAXSD.BCST instruction to the active function. -// Operates on the global context. -func VPMAXSD_BCST(ops ...operand.Op) { ctx.VPMAXSD_BCST(ops...) } - -// VPMAXSD_BCST_Z: Maximum of Packed Signed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXSD.BCST.Z m32 xmm k xmm -// VPMAXSD.BCST.Z m32 ymm k ymm -// VPMAXSD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMAXSD.BCST.Z instruction to the active function. -func (c *Context) VPMAXSD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXSD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMAXSD_BCST_Z: Maximum of Packed Signed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXSD.BCST.Z m32 xmm k xmm -// VPMAXSD.BCST.Z m32 ymm k ymm -// VPMAXSD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMAXSD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMAXSD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMAXSD_BCST_Z(m, xyz, k, xyz1) } - -// VPMAXSD_Z: Maximum of Packed Signed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSD.Z m128 xmm k xmm -// VPMAXSD.Z m256 ymm k ymm -// VPMAXSD.Z xmm xmm k xmm -// VPMAXSD.Z ymm ymm k ymm -// VPMAXSD.Z m512 zmm k zmm -// VPMAXSD.Z zmm zmm k zmm -// -// Construct and append a VPMAXSD.Z instruction to the active function. -func (c *Context) VPMAXSD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXSD_Z(mxyz, xyz, k, xyz1)) -} - -// VPMAXSD_Z: Maximum of Packed Signed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSD.Z m128 xmm k xmm -// VPMAXSD.Z m256 ymm k ymm -// VPMAXSD.Z xmm xmm k xmm -// VPMAXSD.Z ymm ymm k ymm -// VPMAXSD.Z m512 zmm k zmm -// VPMAXSD.Z zmm zmm k zmm -// -// Construct and append a VPMAXSD.Z instruction to the active function. -// Operates on the global context. -func VPMAXSD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMAXSD_Z(mxyz, xyz, k, xyz1) } - -// VPMAXSQ: Maximum of Packed Signed Quadword Integers. -// -// Forms: -// -// VPMAXSQ m128 xmm k xmm -// VPMAXSQ m128 xmm xmm -// VPMAXSQ m256 ymm k ymm -// VPMAXSQ m256 ymm ymm -// VPMAXSQ xmm xmm k xmm -// VPMAXSQ xmm xmm xmm -// VPMAXSQ ymm ymm k ymm -// VPMAXSQ ymm ymm ymm -// VPMAXSQ m512 zmm k zmm -// VPMAXSQ m512 zmm zmm -// VPMAXSQ zmm zmm k zmm -// VPMAXSQ zmm zmm zmm -// -// Construct and append a VPMAXSQ instruction to the active function. -func (c *Context) VPMAXSQ(ops ...operand.Op) { - c.addinstruction(x86.VPMAXSQ(ops...)) -} - -// VPMAXSQ: Maximum of Packed Signed Quadword Integers. -// -// Forms: -// -// VPMAXSQ m128 xmm k xmm -// VPMAXSQ m128 xmm xmm -// VPMAXSQ m256 ymm k ymm -// VPMAXSQ m256 ymm ymm -// VPMAXSQ xmm xmm k xmm -// VPMAXSQ xmm xmm xmm -// VPMAXSQ ymm ymm k ymm -// VPMAXSQ ymm ymm ymm -// VPMAXSQ m512 zmm k zmm -// VPMAXSQ m512 zmm zmm -// VPMAXSQ zmm zmm k zmm -// VPMAXSQ zmm zmm zmm -// -// Construct and append a VPMAXSQ instruction to the active function. -// Operates on the global context. -func VPMAXSQ(ops ...operand.Op) { ctx.VPMAXSQ(ops...) } - -// VPMAXSQ_BCST: Maximum of Packed Signed Quadword Integers (Broadcast). -// -// Forms: -// -// VPMAXSQ.BCST m64 xmm k xmm -// VPMAXSQ.BCST m64 xmm xmm -// VPMAXSQ.BCST m64 ymm k ymm -// VPMAXSQ.BCST m64 ymm ymm -// VPMAXSQ.BCST m64 zmm k zmm -// VPMAXSQ.BCST m64 zmm zmm -// -// Construct and append a VPMAXSQ.BCST instruction to the active function. -func (c *Context) VPMAXSQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMAXSQ_BCST(ops...)) -} - -// VPMAXSQ_BCST: Maximum of Packed Signed Quadword Integers (Broadcast). -// -// Forms: -// -// VPMAXSQ.BCST m64 xmm k xmm -// VPMAXSQ.BCST m64 xmm xmm -// VPMAXSQ.BCST m64 ymm k ymm -// VPMAXSQ.BCST m64 ymm ymm -// VPMAXSQ.BCST m64 zmm k zmm -// VPMAXSQ.BCST m64 zmm zmm -// -// Construct and append a VPMAXSQ.BCST instruction to the active function. -// Operates on the global context. -func VPMAXSQ_BCST(ops ...operand.Op) { ctx.VPMAXSQ_BCST(ops...) } - -// VPMAXSQ_BCST_Z: Maximum of Packed Signed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXSQ.BCST.Z m64 xmm k xmm -// VPMAXSQ.BCST.Z m64 ymm k ymm -// VPMAXSQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMAXSQ.BCST.Z instruction to the active function. -func (c *Context) VPMAXSQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXSQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMAXSQ_BCST_Z: Maximum of Packed Signed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXSQ.BCST.Z m64 xmm k xmm -// VPMAXSQ.BCST.Z m64 ymm k ymm -// VPMAXSQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMAXSQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMAXSQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMAXSQ_BCST_Z(m, xyz, k, xyz1) } - -// VPMAXSQ_Z: Maximum of Packed Signed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSQ.Z m128 xmm k xmm -// VPMAXSQ.Z m256 ymm k ymm -// VPMAXSQ.Z xmm xmm k xmm -// VPMAXSQ.Z ymm ymm k ymm -// VPMAXSQ.Z m512 zmm k zmm -// VPMAXSQ.Z zmm zmm k zmm -// -// Construct and append a VPMAXSQ.Z instruction to the active function. -func (c *Context) VPMAXSQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXSQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPMAXSQ_Z: Maximum of Packed Signed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSQ.Z m128 xmm k xmm -// VPMAXSQ.Z m256 ymm k ymm -// VPMAXSQ.Z xmm xmm k xmm -// VPMAXSQ.Z ymm ymm k ymm -// VPMAXSQ.Z m512 zmm k zmm -// VPMAXSQ.Z zmm zmm k zmm -// -// Construct and append a VPMAXSQ.Z instruction to the active function. -// Operates on the global context. -func VPMAXSQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMAXSQ_Z(mxyz, xyz, k, xyz1) } - -// VPMAXSW: Maximum of Packed Signed Word Integers. -// -// Forms: -// -// VPMAXSW m256 ymm ymm -// VPMAXSW ymm ymm ymm -// VPMAXSW m128 xmm xmm -// VPMAXSW xmm xmm xmm -// VPMAXSW m128 xmm k xmm -// VPMAXSW m256 ymm k ymm -// VPMAXSW xmm xmm k xmm -// VPMAXSW ymm ymm k ymm -// VPMAXSW m512 zmm k zmm -// VPMAXSW m512 zmm zmm -// VPMAXSW zmm zmm k zmm -// VPMAXSW zmm zmm zmm -// -// Construct and append a VPMAXSW instruction to the active function. -func (c *Context) VPMAXSW(ops ...operand.Op) { - c.addinstruction(x86.VPMAXSW(ops...)) -} - -// VPMAXSW: Maximum of Packed Signed Word Integers. -// -// Forms: -// -// VPMAXSW m256 ymm ymm -// VPMAXSW ymm ymm ymm -// VPMAXSW m128 xmm xmm -// VPMAXSW xmm xmm xmm -// VPMAXSW m128 xmm k xmm -// VPMAXSW m256 ymm k ymm -// VPMAXSW xmm xmm k xmm -// VPMAXSW ymm ymm k ymm -// VPMAXSW m512 zmm k zmm -// VPMAXSW m512 zmm zmm -// VPMAXSW zmm zmm k zmm -// VPMAXSW zmm zmm zmm -// -// Construct and append a VPMAXSW instruction to the active function. -// Operates on the global context. -func VPMAXSW(ops ...operand.Op) { ctx.VPMAXSW(ops...) } - -// VPMAXSW_Z: Maximum of Packed Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSW.Z m128 xmm k xmm -// VPMAXSW.Z m256 ymm k ymm -// VPMAXSW.Z xmm xmm k xmm -// VPMAXSW.Z ymm ymm k ymm -// VPMAXSW.Z m512 zmm k zmm -// VPMAXSW.Z zmm zmm k zmm -// -// Construct and append a VPMAXSW.Z instruction to the active function. -func (c *Context) VPMAXSW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXSW_Z(mxyz, xyz, k, xyz1)) -} - -// VPMAXSW_Z: Maximum of Packed Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSW.Z m128 xmm k xmm -// VPMAXSW.Z m256 ymm k ymm -// VPMAXSW.Z xmm xmm k xmm -// VPMAXSW.Z ymm ymm k ymm -// VPMAXSW.Z m512 zmm k zmm -// VPMAXSW.Z zmm zmm k zmm -// -// Construct and append a VPMAXSW.Z instruction to the active function. -// Operates on the global context. -func VPMAXSW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMAXSW_Z(mxyz, xyz, k, xyz1) } - -// VPMAXUB: Maximum of Packed Unsigned Byte Integers. -// -// Forms: -// -// VPMAXUB m256 ymm ymm -// VPMAXUB ymm ymm ymm -// VPMAXUB m128 xmm xmm -// VPMAXUB xmm xmm xmm -// VPMAXUB m128 xmm k xmm -// VPMAXUB m256 ymm k ymm -// VPMAXUB xmm xmm k xmm -// VPMAXUB ymm ymm k ymm -// VPMAXUB m512 zmm k zmm -// VPMAXUB m512 zmm zmm -// VPMAXUB zmm zmm k zmm -// VPMAXUB zmm zmm zmm -// -// Construct and append a VPMAXUB instruction to the active function. -func (c *Context) VPMAXUB(ops ...operand.Op) { - c.addinstruction(x86.VPMAXUB(ops...)) -} - -// VPMAXUB: Maximum of Packed Unsigned Byte Integers. -// -// Forms: -// -// VPMAXUB m256 ymm ymm -// VPMAXUB ymm ymm ymm -// VPMAXUB m128 xmm xmm -// VPMAXUB xmm xmm xmm -// VPMAXUB m128 xmm k xmm -// VPMAXUB m256 ymm k ymm -// VPMAXUB xmm xmm k xmm -// VPMAXUB ymm ymm k ymm -// VPMAXUB m512 zmm k zmm -// VPMAXUB m512 zmm zmm -// VPMAXUB zmm zmm k zmm -// VPMAXUB zmm zmm zmm -// -// Construct and append a VPMAXUB instruction to the active function. -// Operates on the global context. -func VPMAXUB(ops ...operand.Op) { ctx.VPMAXUB(ops...) } - -// VPMAXUB_Z: Maximum of Packed Unsigned Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUB.Z m128 xmm k xmm -// VPMAXUB.Z m256 ymm k ymm -// VPMAXUB.Z xmm xmm k xmm -// VPMAXUB.Z ymm ymm k ymm -// VPMAXUB.Z m512 zmm k zmm -// VPMAXUB.Z zmm zmm k zmm -// -// Construct and append a VPMAXUB.Z instruction to the active function. -func (c *Context) VPMAXUB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXUB_Z(mxyz, xyz, k, xyz1)) -} - -// VPMAXUB_Z: Maximum of Packed Unsigned Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUB.Z m128 xmm k xmm -// VPMAXUB.Z m256 ymm k ymm -// VPMAXUB.Z xmm xmm k xmm -// VPMAXUB.Z ymm ymm k ymm -// VPMAXUB.Z m512 zmm k zmm -// VPMAXUB.Z zmm zmm k zmm -// -// Construct and append a VPMAXUB.Z instruction to the active function. -// Operates on the global context. -func VPMAXUB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMAXUB_Z(mxyz, xyz, k, xyz1) } - -// VPMAXUD: Maximum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VPMAXUD m256 ymm ymm -// VPMAXUD ymm ymm ymm -// VPMAXUD m128 xmm xmm -// VPMAXUD xmm xmm xmm -// VPMAXUD m128 xmm k xmm -// VPMAXUD m256 ymm k ymm -// VPMAXUD xmm xmm k xmm -// VPMAXUD ymm ymm k ymm -// VPMAXUD m512 zmm k zmm -// VPMAXUD m512 zmm zmm -// VPMAXUD zmm zmm k zmm -// VPMAXUD zmm zmm zmm -// -// Construct and append a VPMAXUD instruction to the active function. -func (c *Context) VPMAXUD(ops ...operand.Op) { - c.addinstruction(x86.VPMAXUD(ops...)) -} - -// VPMAXUD: Maximum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VPMAXUD m256 ymm ymm -// VPMAXUD ymm ymm ymm -// VPMAXUD m128 xmm xmm -// VPMAXUD xmm xmm xmm -// VPMAXUD m128 xmm k xmm -// VPMAXUD m256 ymm k ymm -// VPMAXUD xmm xmm k xmm -// VPMAXUD ymm ymm k ymm -// VPMAXUD m512 zmm k zmm -// VPMAXUD m512 zmm zmm -// VPMAXUD zmm zmm k zmm -// VPMAXUD zmm zmm zmm -// -// Construct and append a VPMAXUD instruction to the active function. -// Operates on the global context. -func VPMAXUD(ops ...operand.Op) { ctx.VPMAXUD(ops...) } - -// VPMAXUD_BCST: Maximum of Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMAXUD.BCST m32 xmm k xmm -// VPMAXUD.BCST m32 xmm xmm -// VPMAXUD.BCST m32 ymm k ymm -// VPMAXUD.BCST m32 ymm ymm -// VPMAXUD.BCST m32 zmm k zmm -// VPMAXUD.BCST m32 zmm zmm -// -// Construct and append a VPMAXUD.BCST instruction to the active function. -func (c *Context) VPMAXUD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMAXUD_BCST(ops...)) -} - -// VPMAXUD_BCST: Maximum of Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMAXUD.BCST m32 xmm k xmm -// VPMAXUD.BCST m32 xmm xmm -// VPMAXUD.BCST m32 ymm k ymm -// VPMAXUD.BCST m32 ymm ymm -// VPMAXUD.BCST m32 zmm k zmm -// VPMAXUD.BCST m32 zmm zmm -// -// Construct and append a VPMAXUD.BCST instruction to the active function. -// Operates on the global context. -func VPMAXUD_BCST(ops ...operand.Op) { ctx.VPMAXUD_BCST(ops...) } - -// VPMAXUD_BCST_Z: Maximum of Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXUD.BCST.Z m32 xmm k xmm -// VPMAXUD.BCST.Z m32 ymm k ymm -// VPMAXUD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMAXUD.BCST.Z instruction to the active function. -func (c *Context) VPMAXUD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXUD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMAXUD_BCST_Z: Maximum of Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXUD.BCST.Z m32 xmm k xmm -// VPMAXUD.BCST.Z m32 ymm k ymm -// VPMAXUD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMAXUD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMAXUD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMAXUD_BCST_Z(m, xyz, k, xyz1) } - -// VPMAXUD_Z: Maximum of Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUD.Z m128 xmm k xmm -// VPMAXUD.Z m256 ymm k ymm -// VPMAXUD.Z xmm xmm k xmm -// VPMAXUD.Z ymm ymm k ymm -// VPMAXUD.Z m512 zmm k zmm -// VPMAXUD.Z zmm zmm k zmm -// -// Construct and append a VPMAXUD.Z instruction to the active function. -func (c *Context) VPMAXUD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXUD_Z(mxyz, xyz, k, xyz1)) -} - -// VPMAXUD_Z: Maximum of Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUD.Z m128 xmm k xmm -// VPMAXUD.Z m256 ymm k ymm -// VPMAXUD.Z xmm xmm k xmm -// VPMAXUD.Z ymm ymm k ymm -// VPMAXUD.Z m512 zmm k zmm -// VPMAXUD.Z zmm zmm k zmm -// -// Construct and append a VPMAXUD.Z instruction to the active function. -// Operates on the global context. -func VPMAXUD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMAXUD_Z(mxyz, xyz, k, xyz1) } - -// VPMAXUQ: Maximum of Packed Unsigned Quadword Integers. -// -// Forms: -// -// VPMAXUQ m128 xmm k xmm -// VPMAXUQ m128 xmm xmm -// VPMAXUQ m256 ymm k ymm -// VPMAXUQ m256 ymm ymm -// VPMAXUQ xmm xmm k xmm -// VPMAXUQ xmm xmm xmm -// VPMAXUQ ymm ymm k ymm -// VPMAXUQ ymm ymm ymm -// VPMAXUQ m512 zmm k zmm -// VPMAXUQ m512 zmm zmm -// VPMAXUQ zmm zmm k zmm -// VPMAXUQ zmm zmm zmm -// -// Construct and append a VPMAXUQ instruction to the active function. -func (c *Context) VPMAXUQ(ops ...operand.Op) { - c.addinstruction(x86.VPMAXUQ(ops...)) -} - -// VPMAXUQ: Maximum of Packed Unsigned Quadword Integers. -// -// Forms: -// -// VPMAXUQ m128 xmm k xmm -// VPMAXUQ m128 xmm xmm -// VPMAXUQ m256 ymm k ymm -// VPMAXUQ m256 ymm ymm -// VPMAXUQ xmm xmm k xmm -// VPMAXUQ xmm xmm xmm -// VPMAXUQ ymm ymm k ymm -// VPMAXUQ ymm ymm ymm -// VPMAXUQ m512 zmm k zmm -// VPMAXUQ m512 zmm zmm -// VPMAXUQ zmm zmm k zmm -// VPMAXUQ zmm zmm zmm -// -// Construct and append a VPMAXUQ instruction to the active function. -// Operates on the global context. -func VPMAXUQ(ops ...operand.Op) { ctx.VPMAXUQ(ops...) } - -// VPMAXUQ_BCST: Maximum of Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VPMAXUQ.BCST m64 xmm k xmm -// VPMAXUQ.BCST m64 xmm xmm -// VPMAXUQ.BCST m64 ymm k ymm -// VPMAXUQ.BCST m64 ymm ymm -// VPMAXUQ.BCST m64 zmm k zmm -// VPMAXUQ.BCST m64 zmm zmm -// -// Construct and append a VPMAXUQ.BCST instruction to the active function. -func (c *Context) VPMAXUQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMAXUQ_BCST(ops...)) -} - -// VPMAXUQ_BCST: Maximum of Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VPMAXUQ.BCST m64 xmm k xmm -// VPMAXUQ.BCST m64 xmm xmm -// VPMAXUQ.BCST m64 ymm k ymm -// VPMAXUQ.BCST m64 ymm ymm -// VPMAXUQ.BCST m64 zmm k zmm -// VPMAXUQ.BCST m64 zmm zmm -// -// Construct and append a VPMAXUQ.BCST instruction to the active function. -// Operates on the global context. -func VPMAXUQ_BCST(ops ...operand.Op) { ctx.VPMAXUQ_BCST(ops...) } - -// VPMAXUQ_BCST_Z: Maximum of Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXUQ.BCST.Z m64 xmm k xmm -// VPMAXUQ.BCST.Z m64 ymm k ymm -// VPMAXUQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMAXUQ.BCST.Z instruction to the active function. -func (c *Context) VPMAXUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXUQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMAXUQ_BCST_Z: Maximum of Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXUQ.BCST.Z m64 xmm k xmm -// VPMAXUQ.BCST.Z m64 ymm k ymm -// VPMAXUQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMAXUQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMAXUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMAXUQ_BCST_Z(m, xyz, k, xyz1) } - -// VPMAXUQ_Z: Maximum of Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUQ.Z m128 xmm k xmm -// VPMAXUQ.Z m256 ymm k ymm -// VPMAXUQ.Z xmm xmm k xmm -// VPMAXUQ.Z ymm ymm k ymm -// VPMAXUQ.Z m512 zmm k zmm -// VPMAXUQ.Z zmm zmm k zmm -// -// Construct and append a VPMAXUQ.Z instruction to the active function. -func (c *Context) VPMAXUQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXUQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPMAXUQ_Z: Maximum of Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUQ.Z m128 xmm k xmm -// VPMAXUQ.Z m256 ymm k ymm -// VPMAXUQ.Z xmm xmm k xmm -// VPMAXUQ.Z ymm ymm k ymm -// VPMAXUQ.Z m512 zmm k zmm -// VPMAXUQ.Z zmm zmm k zmm -// -// Construct and append a VPMAXUQ.Z instruction to the active function. -// Operates on the global context. -func VPMAXUQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMAXUQ_Z(mxyz, xyz, k, xyz1) } - -// VPMAXUW: Maximum of Packed Unsigned Word Integers. -// -// Forms: -// -// VPMAXUW m256 ymm ymm -// VPMAXUW ymm ymm ymm -// VPMAXUW m128 xmm xmm -// VPMAXUW xmm xmm xmm -// VPMAXUW m128 xmm k xmm -// VPMAXUW m256 ymm k ymm -// VPMAXUW xmm xmm k xmm -// VPMAXUW ymm ymm k ymm -// VPMAXUW m512 zmm k zmm -// VPMAXUW m512 zmm zmm -// VPMAXUW zmm zmm k zmm -// VPMAXUW zmm zmm zmm -// -// Construct and append a VPMAXUW instruction to the active function. -func (c *Context) VPMAXUW(ops ...operand.Op) { - c.addinstruction(x86.VPMAXUW(ops...)) -} - -// VPMAXUW: Maximum of Packed Unsigned Word Integers. -// -// Forms: -// -// VPMAXUW m256 ymm ymm -// VPMAXUW ymm ymm ymm -// VPMAXUW m128 xmm xmm -// VPMAXUW xmm xmm xmm -// VPMAXUW m128 xmm k xmm -// VPMAXUW m256 ymm k ymm -// VPMAXUW xmm xmm k xmm -// VPMAXUW ymm ymm k ymm -// VPMAXUW m512 zmm k zmm -// VPMAXUW m512 zmm zmm -// VPMAXUW zmm zmm k zmm -// VPMAXUW zmm zmm zmm -// -// Construct and append a VPMAXUW instruction to the active function. -// Operates on the global context. -func VPMAXUW(ops ...operand.Op) { ctx.VPMAXUW(ops...) } - -// VPMAXUW_Z: Maximum of Packed Unsigned Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUW.Z m128 xmm k xmm -// VPMAXUW.Z m256 ymm k ymm -// VPMAXUW.Z xmm xmm k xmm -// VPMAXUW.Z ymm ymm k ymm -// VPMAXUW.Z m512 zmm k zmm -// VPMAXUW.Z zmm zmm k zmm -// -// Construct and append a VPMAXUW.Z instruction to the active function. -func (c *Context) VPMAXUW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMAXUW_Z(mxyz, xyz, k, xyz1)) -} - -// VPMAXUW_Z: Maximum of Packed Unsigned Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUW.Z m128 xmm k xmm -// VPMAXUW.Z m256 ymm k ymm -// VPMAXUW.Z xmm xmm k xmm -// VPMAXUW.Z ymm ymm k ymm -// VPMAXUW.Z m512 zmm k zmm -// VPMAXUW.Z zmm zmm k zmm -// -// Construct and append a VPMAXUW.Z instruction to the active function. -// Operates on the global context. -func VPMAXUW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMAXUW_Z(mxyz, xyz, k, xyz1) } - -// VPMINSB: Minimum of Packed Signed Byte Integers. -// -// Forms: -// -// VPMINSB m256 ymm ymm -// VPMINSB ymm ymm ymm -// VPMINSB m128 xmm xmm -// VPMINSB xmm xmm xmm -// VPMINSB m128 xmm k xmm -// VPMINSB m256 ymm k ymm -// VPMINSB xmm xmm k xmm -// VPMINSB ymm ymm k ymm -// VPMINSB m512 zmm k zmm -// VPMINSB m512 zmm zmm -// VPMINSB zmm zmm k zmm -// VPMINSB zmm zmm zmm -// -// Construct and append a VPMINSB instruction to the active function. -func (c *Context) VPMINSB(ops ...operand.Op) { - c.addinstruction(x86.VPMINSB(ops...)) -} - -// VPMINSB: Minimum of Packed Signed Byte Integers. -// -// Forms: -// -// VPMINSB m256 ymm ymm -// VPMINSB ymm ymm ymm -// VPMINSB m128 xmm xmm -// VPMINSB xmm xmm xmm -// VPMINSB m128 xmm k xmm -// VPMINSB m256 ymm k ymm -// VPMINSB xmm xmm k xmm -// VPMINSB ymm ymm k ymm -// VPMINSB m512 zmm k zmm -// VPMINSB m512 zmm zmm -// VPMINSB zmm zmm k zmm -// VPMINSB zmm zmm zmm -// -// Construct and append a VPMINSB instruction to the active function. -// Operates on the global context. -func VPMINSB(ops ...operand.Op) { ctx.VPMINSB(ops...) } - -// VPMINSB_Z: Minimum of Packed Signed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSB.Z m128 xmm k xmm -// VPMINSB.Z m256 ymm k ymm -// VPMINSB.Z xmm xmm k xmm -// VPMINSB.Z ymm ymm k ymm -// VPMINSB.Z m512 zmm k zmm -// VPMINSB.Z zmm zmm k zmm -// -// Construct and append a VPMINSB.Z instruction to the active function. -func (c *Context) VPMINSB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINSB_Z(mxyz, xyz, k, xyz1)) -} - -// VPMINSB_Z: Minimum of Packed Signed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSB.Z m128 xmm k xmm -// VPMINSB.Z m256 ymm k ymm -// VPMINSB.Z xmm xmm k xmm -// VPMINSB.Z ymm ymm k ymm -// VPMINSB.Z m512 zmm k zmm -// VPMINSB.Z zmm zmm k zmm -// -// Construct and append a VPMINSB.Z instruction to the active function. -// Operates on the global context. -func VPMINSB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMINSB_Z(mxyz, xyz, k, xyz1) } - -// VPMINSD: Minimum of Packed Signed Doubleword Integers. -// -// Forms: -// -// VPMINSD m256 ymm ymm -// VPMINSD ymm ymm ymm -// VPMINSD m128 xmm xmm -// VPMINSD xmm xmm xmm -// VPMINSD m128 xmm k xmm -// VPMINSD m256 ymm k ymm -// VPMINSD xmm xmm k xmm -// VPMINSD ymm ymm k ymm -// VPMINSD m512 zmm k zmm -// VPMINSD m512 zmm zmm -// VPMINSD zmm zmm k zmm -// VPMINSD zmm zmm zmm -// -// Construct and append a VPMINSD instruction to the active function. -func (c *Context) VPMINSD(ops ...operand.Op) { - c.addinstruction(x86.VPMINSD(ops...)) -} - -// VPMINSD: Minimum of Packed Signed Doubleword Integers. -// -// Forms: -// -// VPMINSD m256 ymm ymm -// VPMINSD ymm ymm ymm -// VPMINSD m128 xmm xmm -// VPMINSD xmm xmm xmm -// VPMINSD m128 xmm k xmm -// VPMINSD m256 ymm k ymm -// VPMINSD xmm xmm k xmm -// VPMINSD ymm ymm k ymm -// VPMINSD m512 zmm k zmm -// VPMINSD m512 zmm zmm -// VPMINSD zmm zmm k zmm -// VPMINSD zmm zmm zmm -// -// Construct and append a VPMINSD instruction to the active function. -// Operates on the global context. -func VPMINSD(ops ...operand.Op) { ctx.VPMINSD(ops...) } - -// VPMINSD_BCST: Minimum of Packed Signed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMINSD.BCST m32 xmm k xmm -// VPMINSD.BCST m32 xmm xmm -// VPMINSD.BCST m32 ymm k ymm -// VPMINSD.BCST m32 ymm ymm -// VPMINSD.BCST m32 zmm k zmm -// VPMINSD.BCST m32 zmm zmm -// -// Construct and append a VPMINSD.BCST instruction to the active function. -func (c *Context) VPMINSD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMINSD_BCST(ops...)) -} - -// VPMINSD_BCST: Minimum of Packed Signed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMINSD.BCST m32 xmm k xmm -// VPMINSD.BCST m32 xmm xmm -// VPMINSD.BCST m32 ymm k ymm -// VPMINSD.BCST m32 ymm ymm -// VPMINSD.BCST m32 zmm k zmm -// VPMINSD.BCST m32 zmm zmm -// -// Construct and append a VPMINSD.BCST instruction to the active function. -// Operates on the global context. -func VPMINSD_BCST(ops ...operand.Op) { ctx.VPMINSD_BCST(ops...) } - -// VPMINSD_BCST_Z: Minimum of Packed Signed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINSD.BCST.Z m32 xmm k xmm -// VPMINSD.BCST.Z m32 ymm k ymm -// VPMINSD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMINSD.BCST.Z instruction to the active function. -func (c *Context) VPMINSD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINSD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMINSD_BCST_Z: Minimum of Packed Signed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINSD.BCST.Z m32 xmm k xmm -// VPMINSD.BCST.Z m32 ymm k ymm -// VPMINSD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMINSD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMINSD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMINSD_BCST_Z(m, xyz, k, xyz1) } - -// VPMINSD_Z: Minimum of Packed Signed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSD.Z m128 xmm k xmm -// VPMINSD.Z m256 ymm k ymm -// VPMINSD.Z xmm xmm k xmm -// VPMINSD.Z ymm ymm k ymm -// VPMINSD.Z m512 zmm k zmm -// VPMINSD.Z zmm zmm k zmm -// -// Construct and append a VPMINSD.Z instruction to the active function. -func (c *Context) VPMINSD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINSD_Z(mxyz, xyz, k, xyz1)) -} - -// VPMINSD_Z: Minimum of Packed Signed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSD.Z m128 xmm k xmm -// VPMINSD.Z m256 ymm k ymm -// VPMINSD.Z xmm xmm k xmm -// VPMINSD.Z ymm ymm k ymm -// VPMINSD.Z m512 zmm k zmm -// VPMINSD.Z zmm zmm k zmm -// -// Construct and append a VPMINSD.Z instruction to the active function. -// Operates on the global context. -func VPMINSD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMINSD_Z(mxyz, xyz, k, xyz1) } - -// VPMINSQ: Minimum of Packed Signed Quadword Integers. -// -// Forms: -// -// VPMINSQ m128 xmm k xmm -// VPMINSQ m128 xmm xmm -// VPMINSQ m256 ymm k ymm -// VPMINSQ m256 ymm ymm -// VPMINSQ xmm xmm k xmm -// VPMINSQ xmm xmm xmm -// VPMINSQ ymm ymm k ymm -// VPMINSQ ymm ymm ymm -// VPMINSQ m512 zmm k zmm -// VPMINSQ m512 zmm zmm -// VPMINSQ zmm zmm k zmm -// VPMINSQ zmm zmm zmm -// -// Construct and append a VPMINSQ instruction to the active function. -func (c *Context) VPMINSQ(ops ...operand.Op) { - c.addinstruction(x86.VPMINSQ(ops...)) -} - -// VPMINSQ: Minimum of Packed Signed Quadword Integers. -// -// Forms: -// -// VPMINSQ m128 xmm k xmm -// VPMINSQ m128 xmm xmm -// VPMINSQ m256 ymm k ymm -// VPMINSQ m256 ymm ymm -// VPMINSQ xmm xmm k xmm -// VPMINSQ xmm xmm xmm -// VPMINSQ ymm ymm k ymm -// VPMINSQ ymm ymm ymm -// VPMINSQ m512 zmm k zmm -// VPMINSQ m512 zmm zmm -// VPMINSQ zmm zmm k zmm -// VPMINSQ zmm zmm zmm -// -// Construct and append a VPMINSQ instruction to the active function. -// Operates on the global context. -func VPMINSQ(ops ...operand.Op) { ctx.VPMINSQ(ops...) } - -// VPMINSQ_BCST: Minimum of Packed Signed Quadword Integers (Broadcast). -// -// Forms: -// -// VPMINSQ.BCST m64 xmm k xmm -// VPMINSQ.BCST m64 xmm xmm -// VPMINSQ.BCST m64 ymm k ymm -// VPMINSQ.BCST m64 ymm ymm -// VPMINSQ.BCST m64 zmm k zmm -// VPMINSQ.BCST m64 zmm zmm -// -// Construct and append a VPMINSQ.BCST instruction to the active function. -func (c *Context) VPMINSQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMINSQ_BCST(ops...)) -} - -// VPMINSQ_BCST: Minimum of Packed Signed Quadword Integers (Broadcast). -// -// Forms: -// -// VPMINSQ.BCST m64 xmm k xmm -// VPMINSQ.BCST m64 xmm xmm -// VPMINSQ.BCST m64 ymm k ymm -// VPMINSQ.BCST m64 ymm ymm -// VPMINSQ.BCST m64 zmm k zmm -// VPMINSQ.BCST m64 zmm zmm -// -// Construct and append a VPMINSQ.BCST instruction to the active function. -// Operates on the global context. -func VPMINSQ_BCST(ops ...operand.Op) { ctx.VPMINSQ_BCST(ops...) } - -// VPMINSQ_BCST_Z: Minimum of Packed Signed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINSQ.BCST.Z m64 xmm k xmm -// VPMINSQ.BCST.Z m64 ymm k ymm -// VPMINSQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMINSQ.BCST.Z instruction to the active function. -func (c *Context) VPMINSQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINSQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMINSQ_BCST_Z: Minimum of Packed Signed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINSQ.BCST.Z m64 xmm k xmm -// VPMINSQ.BCST.Z m64 ymm k ymm -// VPMINSQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMINSQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMINSQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMINSQ_BCST_Z(m, xyz, k, xyz1) } - -// VPMINSQ_Z: Minimum of Packed Signed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSQ.Z m128 xmm k xmm -// VPMINSQ.Z m256 ymm k ymm -// VPMINSQ.Z xmm xmm k xmm -// VPMINSQ.Z ymm ymm k ymm -// VPMINSQ.Z m512 zmm k zmm -// VPMINSQ.Z zmm zmm k zmm -// -// Construct and append a VPMINSQ.Z instruction to the active function. -func (c *Context) VPMINSQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINSQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPMINSQ_Z: Minimum of Packed Signed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSQ.Z m128 xmm k xmm -// VPMINSQ.Z m256 ymm k ymm -// VPMINSQ.Z xmm xmm k xmm -// VPMINSQ.Z ymm ymm k ymm -// VPMINSQ.Z m512 zmm k zmm -// VPMINSQ.Z zmm zmm k zmm -// -// Construct and append a VPMINSQ.Z instruction to the active function. -// Operates on the global context. -func VPMINSQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMINSQ_Z(mxyz, xyz, k, xyz1) } - -// VPMINSW: Minimum of Packed Signed Word Integers. -// -// Forms: -// -// VPMINSW m256 ymm ymm -// VPMINSW ymm ymm ymm -// VPMINSW m128 xmm xmm -// VPMINSW xmm xmm xmm -// VPMINSW m128 xmm k xmm -// VPMINSW m256 ymm k ymm -// VPMINSW xmm xmm k xmm -// VPMINSW ymm ymm k ymm -// VPMINSW m512 zmm k zmm -// VPMINSW m512 zmm zmm -// VPMINSW zmm zmm k zmm -// VPMINSW zmm zmm zmm -// -// Construct and append a VPMINSW instruction to the active function. -func (c *Context) VPMINSW(ops ...operand.Op) { - c.addinstruction(x86.VPMINSW(ops...)) -} - -// VPMINSW: Minimum of Packed Signed Word Integers. -// -// Forms: -// -// VPMINSW m256 ymm ymm -// VPMINSW ymm ymm ymm -// VPMINSW m128 xmm xmm -// VPMINSW xmm xmm xmm -// VPMINSW m128 xmm k xmm -// VPMINSW m256 ymm k ymm -// VPMINSW xmm xmm k xmm -// VPMINSW ymm ymm k ymm -// VPMINSW m512 zmm k zmm -// VPMINSW m512 zmm zmm -// VPMINSW zmm zmm k zmm -// VPMINSW zmm zmm zmm -// -// Construct and append a VPMINSW instruction to the active function. -// Operates on the global context. -func VPMINSW(ops ...operand.Op) { ctx.VPMINSW(ops...) } - -// VPMINSW_Z: Minimum of Packed Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSW.Z m128 xmm k xmm -// VPMINSW.Z m256 ymm k ymm -// VPMINSW.Z xmm xmm k xmm -// VPMINSW.Z ymm ymm k ymm -// VPMINSW.Z m512 zmm k zmm -// VPMINSW.Z zmm zmm k zmm -// -// Construct and append a VPMINSW.Z instruction to the active function. -func (c *Context) VPMINSW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINSW_Z(mxyz, xyz, k, xyz1)) -} - -// VPMINSW_Z: Minimum of Packed Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSW.Z m128 xmm k xmm -// VPMINSW.Z m256 ymm k ymm -// VPMINSW.Z xmm xmm k xmm -// VPMINSW.Z ymm ymm k ymm -// VPMINSW.Z m512 zmm k zmm -// VPMINSW.Z zmm zmm k zmm -// -// Construct and append a VPMINSW.Z instruction to the active function. -// Operates on the global context. -func VPMINSW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMINSW_Z(mxyz, xyz, k, xyz1) } - -// VPMINUB: Minimum of Packed Unsigned Byte Integers. -// -// Forms: -// -// VPMINUB m256 ymm ymm -// VPMINUB ymm ymm ymm -// VPMINUB m128 xmm xmm -// VPMINUB xmm xmm xmm -// VPMINUB m128 xmm k xmm -// VPMINUB m256 ymm k ymm -// VPMINUB xmm xmm k xmm -// VPMINUB ymm ymm k ymm -// VPMINUB m512 zmm k zmm -// VPMINUB m512 zmm zmm -// VPMINUB zmm zmm k zmm -// VPMINUB zmm zmm zmm -// -// Construct and append a VPMINUB instruction to the active function. -func (c *Context) VPMINUB(ops ...operand.Op) { - c.addinstruction(x86.VPMINUB(ops...)) -} - -// VPMINUB: Minimum of Packed Unsigned Byte Integers. -// -// Forms: -// -// VPMINUB m256 ymm ymm -// VPMINUB ymm ymm ymm -// VPMINUB m128 xmm xmm -// VPMINUB xmm xmm xmm -// VPMINUB m128 xmm k xmm -// VPMINUB m256 ymm k ymm -// VPMINUB xmm xmm k xmm -// VPMINUB ymm ymm k ymm -// VPMINUB m512 zmm k zmm -// VPMINUB m512 zmm zmm -// VPMINUB zmm zmm k zmm -// VPMINUB zmm zmm zmm -// -// Construct and append a VPMINUB instruction to the active function. -// Operates on the global context. -func VPMINUB(ops ...operand.Op) { ctx.VPMINUB(ops...) } - -// VPMINUB_Z: Minimum of Packed Unsigned Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUB.Z m128 xmm k xmm -// VPMINUB.Z m256 ymm k ymm -// VPMINUB.Z xmm xmm k xmm -// VPMINUB.Z ymm ymm k ymm -// VPMINUB.Z m512 zmm k zmm -// VPMINUB.Z zmm zmm k zmm -// -// Construct and append a VPMINUB.Z instruction to the active function. -func (c *Context) VPMINUB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINUB_Z(mxyz, xyz, k, xyz1)) -} - -// VPMINUB_Z: Minimum of Packed Unsigned Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUB.Z m128 xmm k xmm -// VPMINUB.Z m256 ymm k ymm -// VPMINUB.Z xmm xmm k xmm -// VPMINUB.Z ymm ymm k ymm -// VPMINUB.Z m512 zmm k zmm -// VPMINUB.Z zmm zmm k zmm -// -// Construct and append a VPMINUB.Z instruction to the active function. -// Operates on the global context. -func VPMINUB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMINUB_Z(mxyz, xyz, k, xyz1) } - -// VPMINUD: Minimum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VPMINUD m256 ymm ymm -// VPMINUD ymm ymm ymm -// VPMINUD m128 xmm xmm -// VPMINUD xmm xmm xmm -// VPMINUD m128 xmm k xmm -// VPMINUD m256 ymm k ymm -// VPMINUD xmm xmm k xmm -// VPMINUD ymm ymm k ymm -// VPMINUD m512 zmm k zmm -// VPMINUD m512 zmm zmm -// VPMINUD zmm zmm k zmm -// VPMINUD zmm zmm zmm -// -// Construct and append a VPMINUD instruction to the active function. -func (c *Context) VPMINUD(ops ...operand.Op) { - c.addinstruction(x86.VPMINUD(ops...)) -} - -// VPMINUD: Minimum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VPMINUD m256 ymm ymm -// VPMINUD ymm ymm ymm -// VPMINUD m128 xmm xmm -// VPMINUD xmm xmm xmm -// VPMINUD m128 xmm k xmm -// VPMINUD m256 ymm k ymm -// VPMINUD xmm xmm k xmm -// VPMINUD ymm ymm k ymm -// VPMINUD m512 zmm k zmm -// VPMINUD m512 zmm zmm -// VPMINUD zmm zmm k zmm -// VPMINUD zmm zmm zmm -// -// Construct and append a VPMINUD instruction to the active function. -// Operates on the global context. -func VPMINUD(ops ...operand.Op) { ctx.VPMINUD(ops...) } - -// VPMINUD_BCST: Minimum of Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMINUD.BCST m32 xmm k xmm -// VPMINUD.BCST m32 xmm xmm -// VPMINUD.BCST m32 ymm k ymm -// VPMINUD.BCST m32 ymm ymm -// VPMINUD.BCST m32 zmm k zmm -// VPMINUD.BCST m32 zmm zmm -// -// Construct and append a VPMINUD.BCST instruction to the active function. -func (c *Context) VPMINUD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMINUD_BCST(ops...)) -} - -// VPMINUD_BCST: Minimum of Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMINUD.BCST m32 xmm k xmm -// VPMINUD.BCST m32 xmm xmm -// VPMINUD.BCST m32 ymm k ymm -// VPMINUD.BCST m32 ymm ymm -// VPMINUD.BCST m32 zmm k zmm -// VPMINUD.BCST m32 zmm zmm -// -// Construct and append a VPMINUD.BCST instruction to the active function. -// Operates on the global context. -func VPMINUD_BCST(ops ...operand.Op) { ctx.VPMINUD_BCST(ops...) } - -// VPMINUD_BCST_Z: Minimum of Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINUD.BCST.Z m32 xmm k xmm -// VPMINUD.BCST.Z m32 ymm k ymm -// VPMINUD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMINUD.BCST.Z instruction to the active function. -func (c *Context) VPMINUD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINUD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMINUD_BCST_Z: Minimum of Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINUD.BCST.Z m32 xmm k xmm -// VPMINUD.BCST.Z m32 ymm k ymm -// VPMINUD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMINUD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMINUD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMINUD_BCST_Z(m, xyz, k, xyz1) } - -// VPMINUD_Z: Minimum of Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUD.Z m128 xmm k xmm -// VPMINUD.Z m256 ymm k ymm -// VPMINUD.Z xmm xmm k xmm -// VPMINUD.Z ymm ymm k ymm -// VPMINUD.Z m512 zmm k zmm -// VPMINUD.Z zmm zmm k zmm -// -// Construct and append a VPMINUD.Z instruction to the active function. -func (c *Context) VPMINUD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINUD_Z(mxyz, xyz, k, xyz1)) -} - -// VPMINUD_Z: Minimum of Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUD.Z m128 xmm k xmm -// VPMINUD.Z m256 ymm k ymm -// VPMINUD.Z xmm xmm k xmm -// VPMINUD.Z ymm ymm k ymm -// VPMINUD.Z m512 zmm k zmm -// VPMINUD.Z zmm zmm k zmm -// -// Construct and append a VPMINUD.Z instruction to the active function. -// Operates on the global context. -func VPMINUD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMINUD_Z(mxyz, xyz, k, xyz1) } - -// VPMINUQ: Minimum of Packed Unsigned Quadword Integers. -// -// Forms: -// -// VPMINUQ m128 xmm k xmm -// VPMINUQ m128 xmm xmm -// VPMINUQ m256 ymm k ymm -// VPMINUQ m256 ymm ymm -// VPMINUQ xmm xmm k xmm -// VPMINUQ xmm xmm xmm -// VPMINUQ ymm ymm k ymm -// VPMINUQ ymm ymm ymm -// VPMINUQ m512 zmm k zmm -// VPMINUQ m512 zmm zmm -// VPMINUQ zmm zmm k zmm -// VPMINUQ zmm zmm zmm -// -// Construct and append a VPMINUQ instruction to the active function. -func (c *Context) VPMINUQ(ops ...operand.Op) { - c.addinstruction(x86.VPMINUQ(ops...)) -} - -// VPMINUQ: Minimum of Packed Unsigned Quadword Integers. -// -// Forms: -// -// VPMINUQ m128 xmm k xmm -// VPMINUQ m128 xmm xmm -// VPMINUQ m256 ymm k ymm -// VPMINUQ m256 ymm ymm -// VPMINUQ xmm xmm k xmm -// VPMINUQ xmm xmm xmm -// VPMINUQ ymm ymm k ymm -// VPMINUQ ymm ymm ymm -// VPMINUQ m512 zmm k zmm -// VPMINUQ m512 zmm zmm -// VPMINUQ zmm zmm k zmm -// VPMINUQ zmm zmm zmm -// -// Construct and append a VPMINUQ instruction to the active function. -// Operates on the global context. -func VPMINUQ(ops ...operand.Op) { ctx.VPMINUQ(ops...) } - -// VPMINUQ_BCST: Minimum of Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VPMINUQ.BCST m64 xmm k xmm -// VPMINUQ.BCST m64 xmm xmm -// VPMINUQ.BCST m64 ymm k ymm -// VPMINUQ.BCST m64 ymm ymm -// VPMINUQ.BCST m64 zmm k zmm -// VPMINUQ.BCST m64 zmm zmm -// -// Construct and append a VPMINUQ.BCST instruction to the active function. -func (c *Context) VPMINUQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMINUQ_BCST(ops...)) -} - -// VPMINUQ_BCST: Minimum of Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VPMINUQ.BCST m64 xmm k xmm -// VPMINUQ.BCST m64 xmm xmm -// VPMINUQ.BCST m64 ymm k ymm -// VPMINUQ.BCST m64 ymm ymm -// VPMINUQ.BCST m64 zmm k zmm -// VPMINUQ.BCST m64 zmm zmm -// -// Construct and append a VPMINUQ.BCST instruction to the active function. -// Operates on the global context. -func VPMINUQ_BCST(ops ...operand.Op) { ctx.VPMINUQ_BCST(ops...) } - -// VPMINUQ_BCST_Z: Minimum of Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINUQ.BCST.Z m64 xmm k xmm -// VPMINUQ.BCST.Z m64 ymm k ymm -// VPMINUQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMINUQ.BCST.Z instruction to the active function. -func (c *Context) VPMINUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINUQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMINUQ_BCST_Z: Minimum of Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINUQ.BCST.Z m64 xmm k xmm -// VPMINUQ.BCST.Z m64 ymm k ymm -// VPMINUQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMINUQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMINUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMINUQ_BCST_Z(m, xyz, k, xyz1) } - -// VPMINUQ_Z: Minimum of Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUQ.Z m128 xmm k xmm -// VPMINUQ.Z m256 ymm k ymm -// VPMINUQ.Z xmm xmm k xmm -// VPMINUQ.Z ymm ymm k ymm -// VPMINUQ.Z m512 zmm k zmm -// VPMINUQ.Z zmm zmm k zmm -// -// Construct and append a VPMINUQ.Z instruction to the active function. -func (c *Context) VPMINUQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINUQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPMINUQ_Z: Minimum of Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUQ.Z m128 xmm k xmm -// VPMINUQ.Z m256 ymm k ymm -// VPMINUQ.Z xmm xmm k xmm -// VPMINUQ.Z ymm ymm k ymm -// VPMINUQ.Z m512 zmm k zmm -// VPMINUQ.Z zmm zmm k zmm -// -// Construct and append a VPMINUQ.Z instruction to the active function. -// Operates on the global context. -func VPMINUQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMINUQ_Z(mxyz, xyz, k, xyz1) } - -// VPMINUW: Minimum of Packed Unsigned Word Integers. -// -// Forms: -// -// VPMINUW m256 ymm ymm -// VPMINUW ymm ymm ymm -// VPMINUW m128 xmm xmm -// VPMINUW xmm xmm xmm -// VPMINUW m128 xmm k xmm -// VPMINUW m256 ymm k ymm -// VPMINUW xmm xmm k xmm -// VPMINUW ymm ymm k ymm -// VPMINUW m512 zmm k zmm -// VPMINUW m512 zmm zmm -// VPMINUW zmm zmm k zmm -// VPMINUW zmm zmm zmm -// -// Construct and append a VPMINUW instruction to the active function. -func (c *Context) VPMINUW(ops ...operand.Op) { - c.addinstruction(x86.VPMINUW(ops...)) -} - -// VPMINUW: Minimum of Packed Unsigned Word Integers. -// -// Forms: -// -// VPMINUW m256 ymm ymm -// VPMINUW ymm ymm ymm -// VPMINUW m128 xmm xmm -// VPMINUW xmm xmm xmm -// VPMINUW m128 xmm k xmm -// VPMINUW m256 ymm k ymm -// VPMINUW xmm xmm k xmm -// VPMINUW ymm ymm k ymm -// VPMINUW m512 zmm k zmm -// VPMINUW m512 zmm zmm -// VPMINUW zmm zmm k zmm -// VPMINUW zmm zmm zmm -// -// Construct and append a VPMINUW instruction to the active function. -// Operates on the global context. -func VPMINUW(ops ...operand.Op) { ctx.VPMINUW(ops...) } - -// VPMINUW_Z: Minimum of Packed Unsigned Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUW.Z m128 xmm k xmm -// VPMINUW.Z m256 ymm k ymm -// VPMINUW.Z xmm xmm k xmm -// VPMINUW.Z ymm ymm k ymm -// VPMINUW.Z m512 zmm k zmm -// VPMINUW.Z zmm zmm k zmm -// -// Construct and append a VPMINUW.Z instruction to the active function. -func (c *Context) VPMINUW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMINUW_Z(mxyz, xyz, k, xyz1)) -} - -// VPMINUW_Z: Minimum of Packed Unsigned Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUW.Z m128 xmm k xmm -// VPMINUW.Z m256 ymm k ymm -// VPMINUW.Z xmm xmm k xmm -// VPMINUW.Z ymm ymm k ymm -// VPMINUW.Z m512 zmm k zmm -// VPMINUW.Z zmm zmm k zmm -// -// Construct and append a VPMINUW.Z instruction to the active function. -// Operates on the global context. -func VPMINUW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMINUW_Z(mxyz, xyz, k, xyz1) } - -// VPMOVB2M: Move Signs of Packed Byte Integers to Mask Register. -// -// Forms: -// -// VPMOVB2M xmm k -// VPMOVB2M ymm k -// VPMOVB2M zmm k -// -// Construct and append a VPMOVB2M instruction to the active function. -func (c *Context) VPMOVB2M(xyz, k operand.Op) { - c.addinstruction(x86.VPMOVB2M(xyz, k)) -} - -// VPMOVB2M: Move Signs of Packed Byte Integers to Mask Register. -// -// Forms: -// -// VPMOVB2M xmm k -// VPMOVB2M ymm k -// VPMOVB2M zmm k -// -// Construct and append a VPMOVB2M instruction to the active function. -// Operates on the global context. -func VPMOVB2M(xyz, k operand.Op) { ctx.VPMOVB2M(xyz, k) } - -// VPMOVD2M: Move Signs of Packed Doubleword Integers to Mask Register. -// -// Forms: -// -// VPMOVD2M xmm k -// VPMOVD2M ymm k -// VPMOVD2M zmm k -// -// Construct and append a VPMOVD2M instruction to the active function. -func (c *Context) VPMOVD2M(xyz, k operand.Op) { - c.addinstruction(x86.VPMOVD2M(xyz, k)) -} - -// VPMOVD2M: Move Signs of Packed Doubleword Integers to Mask Register. -// -// Forms: -// -// VPMOVD2M xmm k -// VPMOVD2M ymm k -// VPMOVD2M zmm k -// -// Construct and append a VPMOVD2M instruction to the active function. -// Operates on the global context. -func VPMOVD2M(xyz, k operand.Op) { ctx.VPMOVD2M(xyz, k) } - -// VPMOVDB: Down Convert Packed Doubleword Values to Byte Values with Truncation. -// -// Forms: -// -// VPMOVDB xmm k m32 -// VPMOVDB xmm k xmm -// VPMOVDB xmm m32 -// VPMOVDB xmm xmm -// VPMOVDB ymm k m64 -// VPMOVDB ymm k xmm -// VPMOVDB ymm m64 -// VPMOVDB ymm xmm -// VPMOVDB zmm k m128 -// VPMOVDB zmm k xmm -// VPMOVDB zmm m128 -// VPMOVDB zmm xmm -// -// Construct and append a VPMOVDB instruction to the active function. -func (c *Context) VPMOVDB(ops ...operand.Op) { - c.addinstruction(x86.VPMOVDB(ops...)) -} - -// VPMOVDB: Down Convert Packed Doubleword Values to Byte Values with Truncation. -// -// Forms: -// -// VPMOVDB xmm k m32 -// VPMOVDB xmm k xmm -// VPMOVDB xmm m32 -// VPMOVDB xmm xmm -// VPMOVDB ymm k m64 -// VPMOVDB ymm k xmm -// VPMOVDB ymm m64 -// VPMOVDB ymm xmm -// VPMOVDB zmm k m128 -// VPMOVDB zmm k xmm -// VPMOVDB zmm m128 -// VPMOVDB zmm xmm -// -// Construct and append a VPMOVDB instruction to the active function. -// Operates on the global context. -func VPMOVDB(ops ...operand.Op) { ctx.VPMOVDB(ops...) } - -// VPMOVDB_Z: Down Convert Packed Doubleword Values to Byte Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVDB.Z xmm k m32 -// VPMOVDB.Z xmm k xmm -// VPMOVDB.Z ymm k m64 -// VPMOVDB.Z ymm k xmm -// VPMOVDB.Z zmm k m128 -// VPMOVDB.Z zmm k xmm -// -// Construct and append a VPMOVDB.Z instruction to the active function. -func (c *Context) VPMOVDB_Z(xyz, k, mx operand.Op) { - c.addinstruction(x86.VPMOVDB_Z(xyz, k, mx)) -} - -// VPMOVDB_Z: Down Convert Packed Doubleword Values to Byte Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVDB.Z xmm k m32 -// VPMOVDB.Z xmm k xmm -// VPMOVDB.Z ymm k m64 -// VPMOVDB.Z ymm k xmm -// VPMOVDB.Z zmm k m128 -// VPMOVDB.Z zmm k xmm -// -// Construct and append a VPMOVDB.Z instruction to the active function. -// Operates on the global context. -func VPMOVDB_Z(xyz, k, mx operand.Op) { ctx.VPMOVDB_Z(xyz, k, mx) } - -// VPMOVDW: Down Convert Packed Doubleword Values to Word Values with Truncation. -// -// Forms: -// -// VPMOVDW xmm k m64 -// VPMOVDW xmm k xmm -// VPMOVDW xmm m64 -// VPMOVDW xmm xmm -// VPMOVDW ymm k m128 -// VPMOVDW ymm k xmm -// VPMOVDW ymm m128 -// VPMOVDW ymm xmm -// VPMOVDW zmm k m256 -// VPMOVDW zmm k ymm -// VPMOVDW zmm m256 -// VPMOVDW zmm ymm -// -// Construct and append a VPMOVDW instruction to the active function. -func (c *Context) VPMOVDW(ops ...operand.Op) { - c.addinstruction(x86.VPMOVDW(ops...)) -} - -// VPMOVDW: Down Convert Packed Doubleword Values to Word Values with Truncation. -// -// Forms: -// -// VPMOVDW xmm k m64 -// VPMOVDW xmm k xmm -// VPMOVDW xmm m64 -// VPMOVDW xmm xmm -// VPMOVDW ymm k m128 -// VPMOVDW ymm k xmm -// VPMOVDW ymm m128 -// VPMOVDW ymm xmm -// VPMOVDW zmm k m256 -// VPMOVDW zmm k ymm -// VPMOVDW zmm m256 -// VPMOVDW zmm ymm -// -// Construct and append a VPMOVDW instruction to the active function. -// Operates on the global context. -func VPMOVDW(ops ...operand.Op) { ctx.VPMOVDW(ops...) } - -// VPMOVDW_Z: Down Convert Packed Doubleword Values to Word Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVDW.Z xmm k m64 -// VPMOVDW.Z xmm k xmm -// VPMOVDW.Z ymm k m128 -// VPMOVDW.Z ymm k xmm -// VPMOVDW.Z zmm k m256 -// VPMOVDW.Z zmm k ymm -// -// Construct and append a VPMOVDW.Z instruction to the active function. -func (c *Context) VPMOVDW_Z(xyz, k, mxy operand.Op) { - c.addinstruction(x86.VPMOVDW_Z(xyz, k, mxy)) -} - -// VPMOVDW_Z: Down Convert Packed Doubleword Values to Word Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVDW.Z xmm k m64 -// VPMOVDW.Z xmm k xmm -// VPMOVDW.Z ymm k m128 -// VPMOVDW.Z ymm k xmm -// VPMOVDW.Z zmm k m256 -// VPMOVDW.Z zmm k ymm -// -// Construct and append a VPMOVDW.Z instruction to the active function. -// Operates on the global context. -func VPMOVDW_Z(xyz, k, mxy operand.Op) { ctx.VPMOVDW_Z(xyz, k, mxy) } - -// VPMOVM2B: Expand Bits of Mask Register to Packed Byte Integers. -// -// Forms: -// -// VPMOVM2B k xmm -// VPMOVM2B k ymm -// VPMOVM2B k zmm -// -// Construct and append a VPMOVM2B instruction to the active function. -func (c *Context) VPMOVM2B(k, xyz operand.Op) { - c.addinstruction(x86.VPMOVM2B(k, xyz)) -} - -// VPMOVM2B: Expand Bits of Mask Register to Packed Byte Integers. -// -// Forms: -// -// VPMOVM2B k xmm -// VPMOVM2B k ymm -// VPMOVM2B k zmm -// -// Construct and append a VPMOVM2B instruction to the active function. -// Operates on the global context. -func VPMOVM2B(k, xyz operand.Op) { ctx.VPMOVM2B(k, xyz) } - -// VPMOVM2D: Expand Bits of Mask Register to Packed Doubleword Integers. -// -// Forms: -// -// VPMOVM2D k xmm -// VPMOVM2D k ymm -// VPMOVM2D k zmm -// -// Construct and append a VPMOVM2D instruction to the active function. -func (c *Context) VPMOVM2D(k, xyz operand.Op) { - c.addinstruction(x86.VPMOVM2D(k, xyz)) -} - -// VPMOVM2D: Expand Bits of Mask Register to Packed Doubleword Integers. -// -// Forms: -// -// VPMOVM2D k xmm -// VPMOVM2D k ymm -// VPMOVM2D k zmm -// -// Construct and append a VPMOVM2D instruction to the active function. -// Operates on the global context. -func VPMOVM2D(k, xyz operand.Op) { ctx.VPMOVM2D(k, xyz) } - -// VPMOVM2Q: Expand Bits of Mask Register to Packed Quadword Integers. -// -// Forms: -// -// VPMOVM2Q k xmm -// VPMOVM2Q k ymm -// VPMOVM2Q k zmm -// -// Construct and append a VPMOVM2Q instruction to the active function. -func (c *Context) VPMOVM2Q(k, xyz operand.Op) { - c.addinstruction(x86.VPMOVM2Q(k, xyz)) -} - -// VPMOVM2Q: Expand Bits of Mask Register to Packed Quadword Integers. -// -// Forms: -// -// VPMOVM2Q k xmm -// VPMOVM2Q k ymm -// VPMOVM2Q k zmm -// -// Construct and append a VPMOVM2Q instruction to the active function. -// Operates on the global context. -func VPMOVM2Q(k, xyz operand.Op) { ctx.VPMOVM2Q(k, xyz) } - -// VPMOVM2W: Expand Bits of Mask Register to Packed Word Integers. -// -// Forms: -// -// VPMOVM2W k xmm -// VPMOVM2W k ymm -// VPMOVM2W k zmm -// -// Construct and append a VPMOVM2W instruction to the active function. -func (c *Context) VPMOVM2W(k, xyz operand.Op) { - c.addinstruction(x86.VPMOVM2W(k, xyz)) -} - -// VPMOVM2W: Expand Bits of Mask Register to Packed Word Integers. -// -// Forms: -// -// VPMOVM2W k xmm -// VPMOVM2W k ymm -// VPMOVM2W k zmm -// -// Construct and append a VPMOVM2W instruction to the active function. -// Operates on the global context. -func VPMOVM2W(k, xyz operand.Op) { ctx.VPMOVM2W(k, xyz) } - -// VPMOVMSKB: Move Byte Mask. -// -// Forms: -// -// VPMOVMSKB ymm r32 -// VPMOVMSKB xmm r32 -// -// Construct and append a VPMOVMSKB instruction to the active function. -func (c *Context) VPMOVMSKB(xy, r operand.Op) { - c.addinstruction(x86.VPMOVMSKB(xy, r)) -} - -// VPMOVMSKB: Move Byte Mask. -// -// Forms: -// -// VPMOVMSKB ymm r32 -// VPMOVMSKB xmm r32 -// -// Construct and append a VPMOVMSKB instruction to the active function. -// Operates on the global context. -func VPMOVMSKB(xy, r operand.Op) { ctx.VPMOVMSKB(xy, r) } - -// VPMOVQ2M: Move Signs of Packed Quadword Integers to Mask Register. -// -// Forms: -// -// VPMOVQ2M xmm k -// VPMOVQ2M ymm k -// VPMOVQ2M zmm k -// -// Construct and append a VPMOVQ2M instruction to the active function. -func (c *Context) VPMOVQ2M(xyz, k operand.Op) { - c.addinstruction(x86.VPMOVQ2M(xyz, k)) -} - -// VPMOVQ2M: Move Signs of Packed Quadword Integers to Mask Register. -// -// Forms: -// -// VPMOVQ2M xmm k -// VPMOVQ2M ymm k -// VPMOVQ2M zmm k -// -// Construct and append a VPMOVQ2M instruction to the active function. -// Operates on the global context. -func VPMOVQ2M(xyz, k operand.Op) { ctx.VPMOVQ2M(xyz, k) } - -// VPMOVQB: Down Convert Packed Quadword Values to Byte Values with Truncation. -// -// Forms: -// -// VPMOVQB xmm k m16 -// VPMOVQB xmm k xmm -// VPMOVQB xmm m16 -// VPMOVQB xmm xmm -// VPMOVQB ymm k m32 -// VPMOVQB ymm k xmm -// VPMOVQB ymm m32 -// VPMOVQB ymm xmm -// VPMOVQB zmm k m64 -// VPMOVQB zmm k xmm -// VPMOVQB zmm m64 -// VPMOVQB zmm xmm -// -// Construct and append a VPMOVQB instruction to the active function. -func (c *Context) VPMOVQB(ops ...operand.Op) { - c.addinstruction(x86.VPMOVQB(ops...)) -} - -// VPMOVQB: Down Convert Packed Quadword Values to Byte Values with Truncation. -// -// Forms: -// -// VPMOVQB xmm k m16 -// VPMOVQB xmm k xmm -// VPMOVQB xmm m16 -// VPMOVQB xmm xmm -// VPMOVQB ymm k m32 -// VPMOVQB ymm k xmm -// VPMOVQB ymm m32 -// VPMOVQB ymm xmm -// VPMOVQB zmm k m64 -// VPMOVQB zmm k xmm -// VPMOVQB zmm m64 -// VPMOVQB zmm xmm -// -// Construct and append a VPMOVQB instruction to the active function. -// Operates on the global context. -func VPMOVQB(ops ...operand.Op) { ctx.VPMOVQB(ops...) } - -// VPMOVQB_Z: Down Convert Packed Quadword Values to Byte Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVQB.Z xmm k m16 -// VPMOVQB.Z xmm k xmm -// VPMOVQB.Z ymm k m32 -// VPMOVQB.Z ymm k xmm -// VPMOVQB.Z zmm k m64 -// VPMOVQB.Z zmm k xmm -// -// Construct and append a VPMOVQB.Z instruction to the active function. -func (c *Context) VPMOVQB_Z(xyz, k, mx operand.Op) { - c.addinstruction(x86.VPMOVQB_Z(xyz, k, mx)) -} - -// VPMOVQB_Z: Down Convert Packed Quadword Values to Byte Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVQB.Z xmm k m16 -// VPMOVQB.Z xmm k xmm -// VPMOVQB.Z ymm k m32 -// VPMOVQB.Z ymm k xmm -// VPMOVQB.Z zmm k m64 -// VPMOVQB.Z zmm k xmm -// -// Construct and append a VPMOVQB.Z instruction to the active function. -// Operates on the global context. -func VPMOVQB_Z(xyz, k, mx operand.Op) { ctx.VPMOVQB_Z(xyz, k, mx) } - -// VPMOVQD: Down Convert Packed Quadword Values to Doubleword Values with Truncation. -// -// Forms: -// -// VPMOVQD xmm k m64 -// VPMOVQD xmm k xmm -// VPMOVQD xmm m64 -// VPMOVQD xmm xmm -// VPMOVQD ymm k m128 -// VPMOVQD ymm k xmm -// VPMOVQD ymm m128 -// VPMOVQD ymm xmm -// VPMOVQD zmm k m256 -// VPMOVQD zmm k ymm -// VPMOVQD zmm m256 -// VPMOVQD zmm ymm -// -// Construct and append a VPMOVQD instruction to the active function. -func (c *Context) VPMOVQD(ops ...operand.Op) { - c.addinstruction(x86.VPMOVQD(ops...)) -} - -// VPMOVQD: Down Convert Packed Quadword Values to Doubleword Values with Truncation. -// -// Forms: -// -// VPMOVQD xmm k m64 -// VPMOVQD xmm k xmm -// VPMOVQD xmm m64 -// VPMOVQD xmm xmm -// VPMOVQD ymm k m128 -// VPMOVQD ymm k xmm -// VPMOVQD ymm m128 -// VPMOVQD ymm xmm -// VPMOVQD zmm k m256 -// VPMOVQD zmm k ymm -// VPMOVQD zmm m256 -// VPMOVQD zmm ymm -// -// Construct and append a VPMOVQD instruction to the active function. -// Operates on the global context. -func VPMOVQD(ops ...operand.Op) { ctx.VPMOVQD(ops...) } - -// VPMOVQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVQD.Z xmm k m64 -// VPMOVQD.Z xmm k xmm -// VPMOVQD.Z ymm k m128 -// VPMOVQD.Z ymm k xmm -// VPMOVQD.Z zmm k m256 -// VPMOVQD.Z zmm k ymm -// -// Construct and append a VPMOVQD.Z instruction to the active function. -func (c *Context) VPMOVQD_Z(xyz, k, mxy operand.Op) { - c.addinstruction(x86.VPMOVQD_Z(xyz, k, mxy)) -} - -// VPMOVQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVQD.Z xmm k m64 -// VPMOVQD.Z xmm k xmm -// VPMOVQD.Z ymm k m128 -// VPMOVQD.Z ymm k xmm -// VPMOVQD.Z zmm k m256 -// VPMOVQD.Z zmm k ymm -// -// Construct and append a VPMOVQD.Z instruction to the active function. -// Operates on the global context. -func VPMOVQD_Z(xyz, k, mxy operand.Op) { ctx.VPMOVQD_Z(xyz, k, mxy) } - -// VPMOVQW: Down Convert Packed Quadword Values to Word Values with Truncation. -// -// Forms: -// -// VPMOVQW xmm k m32 -// VPMOVQW xmm k xmm -// VPMOVQW xmm m32 -// VPMOVQW xmm xmm -// VPMOVQW ymm k m64 -// VPMOVQW ymm k xmm -// VPMOVQW ymm m64 -// VPMOVQW ymm xmm -// VPMOVQW zmm k m128 -// VPMOVQW zmm k xmm -// VPMOVQW zmm m128 -// VPMOVQW zmm xmm -// -// Construct and append a VPMOVQW instruction to the active function. -func (c *Context) VPMOVQW(ops ...operand.Op) { - c.addinstruction(x86.VPMOVQW(ops...)) -} - -// VPMOVQW: Down Convert Packed Quadword Values to Word Values with Truncation. -// -// Forms: -// -// VPMOVQW xmm k m32 -// VPMOVQW xmm k xmm -// VPMOVQW xmm m32 -// VPMOVQW xmm xmm -// VPMOVQW ymm k m64 -// VPMOVQW ymm k xmm -// VPMOVQW ymm m64 -// VPMOVQW ymm xmm -// VPMOVQW zmm k m128 -// VPMOVQW zmm k xmm -// VPMOVQW zmm m128 -// VPMOVQW zmm xmm -// -// Construct and append a VPMOVQW instruction to the active function. -// Operates on the global context. -func VPMOVQW(ops ...operand.Op) { ctx.VPMOVQW(ops...) } - -// VPMOVQW_Z: Down Convert Packed Quadword Values to Word Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVQW.Z xmm k m32 -// VPMOVQW.Z xmm k xmm -// VPMOVQW.Z ymm k m64 -// VPMOVQW.Z ymm k xmm -// VPMOVQW.Z zmm k m128 -// VPMOVQW.Z zmm k xmm -// -// Construct and append a VPMOVQW.Z instruction to the active function. -func (c *Context) VPMOVQW_Z(xyz, k, mx operand.Op) { - c.addinstruction(x86.VPMOVQW_Z(xyz, k, mx)) -} - -// VPMOVQW_Z: Down Convert Packed Quadword Values to Word Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVQW.Z xmm k m32 -// VPMOVQW.Z xmm k xmm -// VPMOVQW.Z ymm k m64 -// VPMOVQW.Z ymm k xmm -// VPMOVQW.Z zmm k m128 -// VPMOVQW.Z zmm k xmm -// -// Construct and append a VPMOVQW.Z instruction to the active function. -// Operates on the global context. -func VPMOVQW_Z(xyz, k, mx operand.Op) { ctx.VPMOVQW_Z(xyz, k, mx) } - -// VPMOVSDB: Down Convert Packed Doubleword Values to Byte Values with Signed Saturation. -// -// Forms: -// -// VPMOVSDB xmm k m32 -// VPMOVSDB xmm k xmm -// VPMOVSDB xmm m32 -// VPMOVSDB xmm xmm -// VPMOVSDB ymm k m64 -// VPMOVSDB ymm k xmm -// VPMOVSDB ymm m64 -// VPMOVSDB ymm xmm -// VPMOVSDB zmm k m128 -// VPMOVSDB zmm k xmm -// VPMOVSDB zmm m128 -// VPMOVSDB zmm xmm -// -// Construct and append a VPMOVSDB instruction to the active function. -func (c *Context) VPMOVSDB(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSDB(ops...)) -} - -// VPMOVSDB: Down Convert Packed Doubleword Values to Byte Values with Signed Saturation. -// -// Forms: -// -// VPMOVSDB xmm k m32 -// VPMOVSDB xmm k xmm -// VPMOVSDB xmm m32 -// VPMOVSDB xmm xmm -// VPMOVSDB ymm k m64 -// VPMOVSDB ymm k xmm -// VPMOVSDB ymm m64 -// VPMOVSDB ymm xmm -// VPMOVSDB zmm k m128 -// VPMOVSDB zmm k xmm -// VPMOVSDB zmm m128 -// VPMOVSDB zmm xmm -// -// Construct and append a VPMOVSDB instruction to the active function. -// Operates on the global context. -func VPMOVSDB(ops ...operand.Op) { ctx.VPMOVSDB(ops...) } - -// VPMOVSDB_Z: Down Convert Packed Doubleword Values to Byte Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSDB.Z xmm k m32 -// VPMOVSDB.Z xmm k xmm -// VPMOVSDB.Z ymm k m64 -// VPMOVSDB.Z ymm k xmm -// VPMOVSDB.Z zmm k m128 -// VPMOVSDB.Z zmm k xmm -// -// Construct and append a VPMOVSDB.Z instruction to the active function. -func (c *Context) VPMOVSDB_Z(xyz, k, mx operand.Op) { - c.addinstruction(x86.VPMOVSDB_Z(xyz, k, mx)) -} - -// VPMOVSDB_Z: Down Convert Packed Doubleword Values to Byte Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSDB.Z xmm k m32 -// VPMOVSDB.Z xmm k xmm -// VPMOVSDB.Z ymm k m64 -// VPMOVSDB.Z ymm k xmm -// VPMOVSDB.Z zmm k m128 -// VPMOVSDB.Z zmm k xmm -// -// Construct and append a VPMOVSDB.Z instruction to the active function. -// Operates on the global context. -func VPMOVSDB_Z(xyz, k, mx operand.Op) { ctx.VPMOVSDB_Z(xyz, k, mx) } - -// VPMOVSDW: Down Convert Packed Doubleword Values to Word Values with Signed Saturation. -// -// Forms: -// -// VPMOVSDW xmm k m64 -// VPMOVSDW xmm k xmm -// VPMOVSDW xmm m64 -// VPMOVSDW xmm xmm -// VPMOVSDW ymm k m128 -// VPMOVSDW ymm k xmm -// VPMOVSDW ymm m128 -// VPMOVSDW ymm xmm -// VPMOVSDW zmm k m256 -// VPMOVSDW zmm k ymm -// VPMOVSDW zmm m256 -// VPMOVSDW zmm ymm -// -// Construct and append a VPMOVSDW instruction to the active function. -func (c *Context) VPMOVSDW(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSDW(ops...)) -} - -// VPMOVSDW: Down Convert Packed Doubleword Values to Word Values with Signed Saturation. -// -// Forms: -// -// VPMOVSDW xmm k m64 -// VPMOVSDW xmm k xmm -// VPMOVSDW xmm m64 -// VPMOVSDW xmm xmm -// VPMOVSDW ymm k m128 -// VPMOVSDW ymm k xmm -// VPMOVSDW ymm m128 -// VPMOVSDW ymm xmm -// VPMOVSDW zmm k m256 -// VPMOVSDW zmm k ymm -// VPMOVSDW zmm m256 -// VPMOVSDW zmm ymm -// -// Construct and append a VPMOVSDW instruction to the active function. -// Operates on the global context. -func VPMOVSDW(ops ...operand.Op) { ctx.VPMOVSDW(ops...) } - -// VPMOVSDW_Z: Down Convert Packed Doubleword Values to Word Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSDW.Z xmm k m64 -// VPMOVSDW.Z xmm k xmm -// VPMOVSDW.Z ymm k m128 -// VPMOVSDW.Z ymm k xmm -// VPMOVSDW.Z zmm k m256 -// VPMOVSDW.Z zmm k ymm -// -// Construct and append a VPMOVSDW.Z instruction to the active function. -func (c *Context) VPMOVSDW_Z(xyz, k, mxy operand.Op) { - c.addinstruction(x86.VPMOVSDW_Z(xyz, k, mxy)) -} - -// VPMOVSDW_Z: Down Convert Packed Doubleword Values to Word Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSDW.Z xmm k m64 -// VPMOVSDW.Z xmm k xmm -// VPMOVSDW.Z ymm k m128 -// VPMOVSDW.Z ymm k xmm -// VPMOVSDW.Z zmm k m256 -// VPMOVSDW.Z zmm k ymm -// -// Construct and append a VPMOVSDW.Z instruction to the active function. -// Operates on the global context. -func VPMOVSDW_Z(xyz, k, mxy operand.Op) { ctx.VPMOVSDW_Z(xyz, k, mxy) } - -// VPMOVSQB: Down Convert Packed Quadword Values to Byte Values with Signed Saturation. -// -// Forms: -// -// VPMOVSQB xmm k m16 -// VPMOVSQB xmm k xmm -// VPMOVSQB xmm m16 -// VPMOVSQB xmm xmm -// VPMOVSQB ymm k m32 -// VPMOVSQB ymm k xmm -// VPMOVSQB ymm m32 -// VPMOVSQB ymm xmm -// VPMOVSQB zmm k m64 -// VPMOVSQB zmm k xmm -// VPMOVSQB zmm m64 -// VPMOVSQB zmm xmm -// -// Construct and append a VPMOVSQB instruction to the active function. -func (c *Context) VPMOVSQB(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSQB(ops...)) -} - -// VPMOVSQB: Down Convert Packed Quadword Values to Byte Values with Signed Saturation. -// -// Forms: -// -// VPMOVSQB xmm k m16 -// VPMOVSQB xmm k xmm -// VPMOVSQB xmm m16 -// VPMOVSQB xmm xmm -// VPMOVSQB ymm k m32 -// VPMOVSQB ymm k xmm -// VPMOVSQB ymm m32 -// VPMOVSQB ymm xmm -// VPMOVSQB zmm k m64 -// VPMOVSQB zmm k xmm -// VPMOVSQB zmm m64 -// VPMOVSQB zmm xmm -// -// Construct and append a VPMOVSQB instruction to the active function. -// Operates on the global context. -func VPMOVSQB(ops ...operand.Op) { ctx.VPMOVSQB(ops...) } - -// VPMOVSQB_Z: Down Convert Packed Quadword Values to Byte Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSQB.Z xmm k m16 -// VPMOVSQB.Z xmm k xmm -// VPMOVSQB.Z ymm k m32 -// VPMOVSQB.Z ymm k xmm -// VPMOVSQB.Z zmm k m64 -// VPMOVSQB.Z zmm k xmm -// -// Construct and append a VPMOVSQB.Z instruction to the active function. -func (c *Context) VPMOVSQB_Z(xyz, k, mx operand.Op) { - c.addinstruction(x86.VPMOVSQB_Z(xyz, k, mx)) -} - -// VPMOVSQB_Z: Down Convert Packed Quadword Values to Byte Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSQB.Z xmm k m16 -// VPMOVSQB.Z xmm k xmm -// VPMOVSQB.Z ymm k m32 -// VPMOVSQB.Z ymm k xmm -// VPMOVSQB.Z zmm k m64 -// VPMOVSQB.Z zmm k xmm -// -// Construct and append a VPMOVSQB.Z instruction to the active function. -// Operates on the global context. -func VPMOVSQB_Z(xyz, k, mx operand.Op) { ctx.VPMOVSQB_Z(xyz, k, mx) } - -// VPMOVSQD: Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation. -// -// Forms: -// -// VPMOVSQD xmm k m64 -// VPMOVSQD xmm k xmm -// VPMOVSQD xmm m64 -// VPMOVSQD xmm xmm -// VPMOVSQD ymm k m128 -// VPMOVSQD ymm k xmm -// VPMOVSQD ymm m128 -// VPMOVSQD ymm xmm -// VPMOVSQD zmm k m256 -// VPMOVSQD zmm k ymm -// VPMOVSQD zmm m256 -// VPMOVSQD zmm ymm -// -// Construct and append a VPMOVSQD instruction to the active function. -func (c *Context) VPMOVSQD(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSQD(ops...)) -} - -// VPMOVSQD: Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation. -// -// Forms: -// -// VPMOVSQD xmm k m64 -// VPMOVSQD xmm k xmm -// VPMOVSQD xmm m64 -// VPMOVSQD xmm xmm -// VPMOVSQD ymm k m128 -// VPMOVSQD ymm k xmm -// VPMOVSQD ymm m128 -// VPMOVSQD ymm xmm -// VPMOVSQD zmm k m256 -// VPMOVSQD zmm k ymm -// VPMOVSQD zmm m256 -// VPMOVSQD zmm ymm -// -// Construct and append a VPMOVSQD instruction to the active function. -// Operates on the global context. -func VPMOVSQD(ops ...operand.Op) { ctx.VPMOVSQD(ops...) } - -// VPMOVSQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSQD.Z xmm k m64 -// VPMOVSQD.Z xmm k xmm -// VPMOVSQD.Z ymm k m128 -// VPMOVSQD.Z ymm k xmm -// VPMOVSQD.Z zmm k m256 -// VPMOVSQD.Z zmm k ymm -// -// Construct and append a VPMOVSQD.Z instruction to the active function. -func (c *Context) VPMOVSQD_Z(xyz, k, mxy operand.Op) { - c.addinstruction(x86.VPMOVSQD_Z(xyz, k, mxy)) -} - -// VPMOVSQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSQD.Z xmm k m64 -// VPMOVSQD.Z xmm k xmm -// VPMOVSQD.Z ymm k m128 -// VPMOVSQD.Z ymm k xmm -// VPMOVSQD.Z zmm k m256 -// VPMOVSQD.Z zmm k ymm -// -// Construct and append a VPMOVSQD.Z instruction to the active function. -// Operates on the global context. -func VPMOVSQD_Z(xyz, k, mxy operand.Op) { ctx.VPMOVSQD_Z(xyz, k, mxy) } - -// VPMOVSQW: Down Convert Packed Quadword Values to Word Values with Signed Saturation. -// -// Forms: -// -// VPMOVSQW xmm k m32 -// VPMOVSQW xmm k xmm -// VPMOVSQW xmm m32 -// VPMOVSQW xmm xmm -// VPMOVSQW ymm k m64 -// VPMOVSQW ymm k xmm -// VPMOVSQW ymm m64 -// VPMOVSQW ymm xmm -// VPMOVSQW zmm k m128 -// VPMOVSQW zmm k xmm -// VPMOVSQW zmm m128 -// VPMOVSQW zmm xmm -// -// Construct and append a VPMOVSQW instruction to the active function. -func (c *Context) VPMOVSQW(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSQW(ops...)) -} - -// VPMOVSQW: Down Convert Packed Quadword Values to Word Values with Signed Saturation. -// -// Forms: -// -// VPMOVSQW xmm k m32 -// VPMOVSQW xmm k xmm -// VPMOVSQW xmm m32 -// VPMOVSQW xmm xmm -// VPMOVSQW ymm k m64 -// VPMOVSQW ymm k xmm -// VPMOVSQW ymm m64 -// VPMOVSQW ymm xmm -// VPMOVSQW zmm k m128 -// VPMOVSQW zmm k xmm -// VPMOVSQW zmm m128 -// VPMOVSQW zmm xmm -// -// Construct and append a VPMOVSQW instruction to the active function. -// Operates on the global context. -func VPMOVSQW(ops ...operand.Op) { ctx.VPMOVSQW(ops...) } - -// VPMOVSQW_Z: Down Convert Packed Quadword Values to Word Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSQW.Z xmm k m32 -// VPMOVSQW.Z xmm k xmm -// VPMOVSQW.Z ymm k m64 -// VPMOVSQW.Z ymm k xmm -// VPMOVSQW.Z zmm k m128 -// VPMOVSQW.Z zmm k xmm -// -// Construct and append a VPMOVSQW.Z instruction to the active function. -func (c *Context) VPMOVSQW_Z(xyz, k, mx operand.Op) { - c.addinstruction(x86.VPMOVSQW_Z(xyz, k, mx)) -} - -// VPMOVSQW_Z: Down Convert Packed Quadword Values to Word Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSQW.Z xmm k m32 -// VPMOVSQW.Z xmm k xmm -// VPMOVSQW.Z ymm k m64 -// VPMOVSQW.Z ymm k xmm -// VPMOVSQW.Z zmm k m128 -// VPMOVSQW.Z zmm k xmm -// -// Construct and append a VPMOVSQW.Z instruction to the active function. -// Operates on the global context. -func VPMOVSQW_Z(xyz, k, mx operand.Op) { ctx.VPMOVSQW_Z(xyz, k, mx) } - -// VPMOVSWB: Down Convert Packed Word Values to Byte Values with Signed Saturation. -// -// Forms: -// -// VPMOVSWB xmm k m64 -// VPMOVSWB xmm k xmm -// VPMOVSWB xmm m64 -// VPMOVSWB xmm xmm -// VPMOVSWB ymm k m128 -// VPMOVSWB ymm k xmm -// VPMOVSWB ymm m128 -// VPMOVSWB ymm xmm -// VPMOVSWB zmm k m256 -// VPMOVSWB zmm k ymm -// VPMOVSWB zmm m256 -// VPMOVSWB zmm ymm -// -// Construct and append a VPMOVSWB instruction to the active function. -func (c *Context) VPMOVSWB(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSWB(ops...)) -} - -// VPMOVSWB: Down Convert Packed Word Values to Byte Values with Signed Saturation. -// -// Forms: -// -// VPMOVSWB xmm k m64 -// VPMOVSWB xmm k xmm -// VPMOVSWB xmm m64 -// VPMOVSWB xmm xmm -// VPMOVSWB ymm k m128 -// VPMOVSWB ymm k xmm -// VPMOVSWB ymm m128 -// VPMOVSWB ymm xmm -// VPMOVSWB zmm k m256 -// VPMOVSWB zmm k ymm -// VPMOVSWB zmm m256 -// VPMOVSWB zmm ymm -// -// Construct and append a VPMOVSWB instruction to the active function. -// Operates on the global context. -func VPMOVSWB(ops ...operand.Op) { ctx.VPMOVSWB(ops...) } - -// VPMOVSWB_Z: Down Convert Packed Word Values to Byte Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSWB.Z xmm k m64 -// VPMOVSWB.Z xmm k xmm -// VPMOVSWB.Z ymm k m128 -// VPMOVSWB.Z ymm k xmm -// VPMOVSWB.Z zmm k m256 -// VPMOVSWB.Z zmm k ymm -// -// Construct and append a VPMOVSWB.Z instruction to the active function. -func (c *Context) VPMOVSWB_Z(xyz, k, mxy operand.Op) { - c.addinstruction(x86.VPMOVSWB_Z(xyz, k, mxy)) -} - -// VPMOVSWB_Z: Down Convert Packed Word Values to Byte Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSWB.Z xmm k m64 -// VPMOVSWB.Z xmm k xmm -// VPMOVSWB.Z ymm k m128 -// VPMOVSWB.Z ymm k xmm -// VPMOVSWB.Z zmm k m256 -// VPMOVSWB.Z zmm k ymm -// -// Construct and append a VPMOVSWB.Z instruction to the active function. -// Operates on the global context. -func VPMOVSWB_Z(xyz, k, mxy operand.Op) { ctx.VPMOVSWB_Z(xyz, k, mxy) } - -// VPMOVSXBD: Move Packed Byte Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXBD m64 ymm -// VPMOVSXBD xmm ymm -// VPMOVSXBD m32 xmm -// VPMOVSXBD xmm xmm -// VPMOVSXBD m32 k xmm -// VPMOVSXBD m64 k ymm -// VPMOVSXBD xmm k xmm -// VPMOVSXBD xmm k ymm -// VPMOVSXBD m128 k zmm -// VPMOVSXBD m128 zmm -// VPMOVSXBD xmm k zmm -// VPMOVSXBD xmm zmm -// -// Construct and append a VPMOVSXBD instruction to the active function. -func (c *Context) VPMOVSXBD(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSXBD(ops...)) -} - -// VPMOVSXBD: Move Packed Byte Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXBD m64 ymm -// VPMOVSXBD xmm ymm -// VPMOVSXBD m32 xmm -// VPMOVSXBD xmm xmm -// VPMOVSXBD m32 k xmm -// VPMOVSXBD m64 k ymm -// VPMOVSXBD xmm k xmm -// VPMOVSXBD xmm k ymm -// VPMOVSXBD m128 k zmm -// VPMOVSXBD m128 zmm -// VPMOVSXBD xmm k zmm -// VPMOVSXBD xmm zmm -// -// Construct and append a VPMOVSXBD instruction to the active function. -// Operates on the global context. -func VPMOVSXBD(ops ...operand.Op) { ctx.VPMOVSXBD(ops...) } - -// VPMOVSXBD_Z: Move Packed Byte Integers to Doubleword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXBD.Z m32 k xmm -// VPMOVSXBD.Z m64 k ymm -// VPMOVSXBD.Z xmm k xmm -// VPMOVSXBD.Z xmm k ymm -// VPMOVSXBD.Z m128 k zmm -// VPMOVSXBD.Z xmm k zmm -// -// Construct and append a VPMOVSXBD.Z instruction to the active function. -func (c *Context) VPMOVSXBD_Z(mx, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVSXBD_Z(mx, k, xyz)) -} - -// VPMOVSXBD_Z: Move Packed Byte Integers to Doubleword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXBD.Z m32 k xmm -// VPMOVSXBD.Z m64 k ymm -// VPMOVSXBD.Z xmm k xmm -// VPMOVSXBD.Z xmm k ymm -// VPMOVSXBD.Z m128 k zmm -// VPMOVSXBD.Z xmm k zmm -// -// Construct and append a VPMOVSXBD.Z instruction to the active function. -// Operates on the global context. -func VPMOVSXBD_Z(mx, k, xyz operand.Op) { ctx.VPMOVSXBD_Z(mx, k, xyz) } - -// VPMOVSXBQ: Move Packed Byte Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXBQ m32 ymm -// VPMOVSXBQ xmm ymm -// VPMOVSXBQ m16 xmm -// VPMOVSXBQ xmm xmm -// VPMOVSXBQ m16 k xmm -// VPMOVSXBQ m32 k ymm -// VPMOVSXBQ xmm k xmm -// VPMOVSXBQ xmm k ymm -// VPMOVSXBQ m64 k zmm -// VPMOVSXBQ m64 zmm -// VPMOVSXBQ xmm k zmm -// VPMOVSXBQ xmm zmm -// -// Construct and append a VPMOVSXBQ instruction to the active function. -func (c *Context) VPMOVSXBQ(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSXBQ(ops...)) -} - -// VPMOVSXBQ: Move Packed Byte Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXBQ m32 ymm -// VPMOVSXBQ xmm ymm -// VPMOVSXBQ m16 xmm -// VPMOVSXBQ xmm xmm -// VPMOVSXBQ m16 k xmm -// VPMOVSXBQ m32 k ymm -// VPMOVSXBQ xmm k xmm -// VPMOVSXBQ xmm k ymm -// VPMOVSXBQ m64 k zmm -// VPMOVSXBQ m64 zmm -// VPMOVSXBQ xmm k zmm -// VPMOVSXBQ xmm zmm -// -// Construct and append a VPMOVSXBQ instruction to the active function. -// Operates on the global context. -func VPMOVSXBQ(ops ...operand.Op) { ctx.VPMOVSXBQ(ops...) } - -// VPMOVSXBQ_Z: Move Packed Byte Integers to Quadword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXBQ.Z m16 k xmm -// VPMOVSXBQ.Z m32 k ymm -// VPMOVSXBQ.Z xmm k xmm -// VPMOVSXBQ.Z xmm k ymm -// VPMOVSXBQ.Z m64 k zmm -// VPMOVSXBQ.Z xmm k zmm -// -// Construct and append a VPMOVSXBQ.Z instruction to the active function. -func (c *Context) VPMOVSXBQ_Z(mx, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVSXBQ_Z(mx, k, xyz)) -} - -// VPMOVSXBQ_Z: Move Packed Byte Integers to Quadword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXBQ.Z m16 k xmm -// VPMOVSXBQ.Z m32 k ymm -// VPMOVSXBQ.Z xmm k xmm -// VPMOVSXBQ.Z xmm k ymm -// VPMOVSXBQ.Z m64 k zmm -// VPMOVSXBQ.Z xmm k zmm -// -// Construct and append a VPMOVSXBQ.Z instruction to the active function. -// Operates on the global context. -func VPMOVSXBQ_Z(mx, k, xyz operand.Op) { ctx.VPMOVSXBQ_Z(mx, k, xyz) } - -// VPMOVSXBW: Move Packed Byte Integers to Word Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXBW m128 ymm -// VPMOVSXBW xmm ymm -// VPMOVSXBW m64 xmm -// VPMOVSXBW xmm xmm -// VPMOVSXBW m128 k ymm -// VPMOVSXBW m64 k xmm -// VPMOVSXBW xmm k xmm -// VPMOVSXBW xmm k ymm -// VPMOVSXBW m256 k zmm -// VPMOVSXBW m256 zmm -// VPMOVSXBW ymm k zmm -// VPMOVSXBW ymm zmm -// -// Construct and append a VPMOVSXBW instruction to the active function. -func (c *Context) VPMOVSXBW(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSXBW(ops...)) -} - -// VPMOVSXBW: Move Packed Byte Integers to Word Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXBW m128 ymm -// VPMOVSXBW xmm ymm -// VPMOVSXBW m64 xmm -// VPMOVSXBW xmm xmm -// VPMOVSXBW m128 k ymm -// VPMOVSXBW m64 k xmm -// VPMOVSXBW xmm k xmm -// VPMOVSXBW xmm k ymm -// VPMOVSXBW m256 k zmm -// VPMOVSXBW m256 zmm -// VPMOVSXBW ymm k zmm -// VPMOVSXBW ymm zmm -// -// Construct and append a VPMOVSXBW instruction to the active function. -// Operates on the global context. -func VPMOVSXBW(ops ...operand.Op) { ctx.VPMOVSXBW(ops...) } - -// VPMOVSXBW_Z: Move Packed Byte Integers to Word Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXBW.Z m128 k ymm -// VPMOVSXBW.Z m64 k xmm -// VPMOVSXBW.Z xmm k xmm -// VPMOVSXBW.Z xmm k ymm -// VPMOVSXBW.Z m256 k zmm -// VPMOVSXBW.Z ymm k zmm -// -// Construct and append a VPMOVSXBW.Z instruction to the active function. -func (c *Context) VPMOVSXBW_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVSXBW_Z(mxy, k, xyz)) -} - -// VPMOVSXBW_Z: Move Packed Byte Integers to Word Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXBW.Z m128 k ymm -// VPMOVSXBW.Z m64 k xmm -// VPMOVSXBW.Z xmm k xmm -// VPMOVSXBW.Z xmm k ymm -// VPMOVSXBW.Z m256 k zmm -// VPMOVSXBW.Z ymm k zmm -// -// Construct and append a VPMOVSXBW.Z instruction to the active function. -// Operates on the global context. -func VPMOVSXBW_Z(mxy, k, xyz operand.Op) { ctx.VPMOVSXBW_Z(mxy, k, xyz) } - -// VPMOVSXDQ: Move Packed Doubleword Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXDQ m128 ymm -// VPMOVSXDQ xmm ymm -// VPMOVSXDQ m64 xmm -// VPMOVSXDQ xmm xmm -// VPMOVSXDQ m128 k ymm -// VPMOVSXDQ m64 k xmm -// VPMOVSXDQ xmm k xmm -// VPMOVSXDQ xmm k ymm -// VPMOVSXDQ m256 k zmm -// VPMOVSXDQ m256 zmm -// VPMOVSXDQ ymm k zmm -// VPMOVSXDQ ymm zmm -// -// Construct and append a VPMOVSXDQ instruction to the active function. -func (c *Context) VPMOVSXDQ(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSXDQ(ops...)) -} - -// VPMOVSXDQ: Move Packed Doubleword Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXDQ m128 ymm -// VPMOVSXDQ xmm ymm -// VPMOVSXDQ m64 xmm -// VPMOVSXDQ xmm xmm -// VPMOVSXDQ m128 k ymm -// VPMOVSXDQ m64 k xmm -// VPMOVSXDQ xmm k xmm -// VPMOVSXDQ xmm k ymm -// VPMOVSXDQ m256 k zmm -// VPMOVSXDQ m256 zmm -// VPMOVSXDQ ymm k zmm -// VPMOVSXDQ ymm zmm -// -// Construct and append a VPMOVSXDQ instruction to the active function. -// Operates on the global context. -func VPMOVSXDQ(ops ...operand.Op) { ctx.VPMOVSXDQ(ops...) } - -// VPMOVSXDQ_Z: Move Packed Doubleword Integers to Quadword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXDQ.Z m128 k ymm -// VPMOVSXDQ.Z m64 k xmm -// VPMOVSXDQ.Z xmm k xmm -// VPMOVSXDQ.Z xmm k ymm -// VPMOVSXDQ.Z m256 k zmm -// VPMOVSXDQ.Z ymm k zmm -// -// Construct and append a VPMOVSXDQ.Z instruction to the active function. -func (c *Context) VPMOVSXDQ_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVSXDQ_Z(mxy, k, xyz)) -} - -// VPMOVSXDQ_Z: Move Packed Doubleword Integers to Quadword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXDQ.Z m128 k ymm -// VPMOVSXDQ.Z m64 k xmm -// VPMOVSXDQ.Z xmm k xmm -// VPMOVSXDQ.Z xmm k ymm -// VPMOVSXDQ.Z m256 k zmm -// VPMOVSXDQ.Z ymm k zmm -// -// Construct and append a VPMOVSXDQ.Z instruction to the active function. -// Operates on the global context. -func VPMOVSXDQ_Z(mxy, k, xyz operand.Op) { ctx.VPMOVSXDQ_Z(mxy, k, xyz) } - -// VPMOVSXWD: Move Packed Word Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXWD m128 ymm -// VPMOVSXWD xmm ymm -// VPMOVSXWD m64 xmm -// VPMOVSXWD xmm xmm -// VPMOVSXWD m128 k ymm -// VPMOVSXWD m64 k xmm -// VPMOVSXWD xmm k xmm -// VPMOVSXWD xmm k ymm -// VPMOVSXWD m256 k zmm -// VPMOVSXWD m256 zmm -// VPMOVSXWD ymm k zmm -// VPMOVSXWD ymm zmm -// -// Construct and append a VPMOVSXWD instruction to the active function. -func (c *Context) VPMOVSXWD(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSXWD(ops...)) -} - -// VPMOVSXWD: Move Packed Word Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXWD m128 ymm -// VPMOVSXWD xmm ymm -// VPMOVSXWD m64 xmm -// VPMOVSXWD xmm xmm -// VPMOVSXWD m128 k ymm -// VPMOVSXWD m64 k xmm -// VPMOVSXWD xmm k xmm -// VPMOVSXWD xmm k ymm -// VPMOVSXWD m256 k zmm -// VPMOVSXWD m256 zmm -// VPMOVSXWD ymm k zmm -// VPMOVSXWD ymm zmm -// -// Construct and append a VPMOVSXWD instruction to the active function. -// Operates on the global context. -func VPMOVSXWD(ops ...operand.Op) { ctx.VPMOVSXWD(ops...) } - -// VPMOVSXWD_Z: Move Packed Word Integers to Doubleword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXWD.Z m128 k ymm -// VPMOVSXWD.Z m64 k xmm -// VPMOVSXWD.Z xmm k xmm -// VPMOVSXWD.Z xmm k ymm -// VPMOVSXWD.Z m256 k zmm -// VPMOVSXWD.Z ymm k zmm -// -// Construct and append a VPMOVSXWD.Z instruction to the active function. -func (c *Context) VPMOVSXWD_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVSXWD_Z(mxy, k, xyz)) -} - -// VPMOVSXWD_Z: Move Packed Word Integers to Doubleword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXWD.Z m128 k ymm -// VPMOVSXWD.Z m64 k xmm -// VPMOVSXWD.Z xmm k xmm -// VPMOVSXWD.Z xmm k ymm -// VPMOVSXWD.Z m256 k zmm -// VPMOVSXWD.Z ymm k zmm -// -// Construct and append a VPMOVSXWD.Z instruction to the active function. -// Operates on the global context. -func VPMOVSXWD_Z(mxy, k, xyz operand.Op) { ctx.VPMOVSXWD_Z(mxy, k, xyz) } - -// VPMOVSXWQ: Move Packed Word Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXWQ m64 ymm -// VPMOVSXWQ xmm ymm -// VPMOVSXWQ m32 xmm -// VPMOVSXWQ xmm xmm -// VPMOVSXWQ m32 k xmm -// VPMOVSXWQ m64 k ymm -// VPMOVSXWQ xmm k xmm -// VPMOVSXWQ xmm k ymm -// VPMOVSXWQ m128 k zmm -// VPMOVSXWQ m128 zmm -// VPMOVSXWQ xmm k zmm -// VPMOVSXWQ xmm zmm -// -// Construct and append a VPMOVSXWQ instruction to the active function. -func (c *Context) VPMOVSXWQ(ops ...operand.Op) { - c.addinstruction(x86.VPMOVSXWQ(ops...)) -} - -// VPMOVSXWQ: Move Packed Word Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXWQ m64 ymm -// VPMOVSXWQ xmm ymm -// VPMOVSXWQ m32 xmm -// VPMOVSXWQ xmm xmm -// VPMOVSXWQ m32 k xmm -// VPMOVSXWQ m64 k ymm -// VPMOVSXWQ xmm k xmm -// VPMOVSXWQ xmm k ymm -// VPMOVSXWQ m128 k zmm -// VPMOVSXWQ m128 zmm -// VPMOVSXWQ xmm k zmm -// VPMOVSXWQ xmm zmm -// -// Construct and append a VPMOVSXWQ instruction to the active function. -// Operates on the global context. -func VPMOVSXWQ(ops ...operand.Op) { ctx.VPMOVSXWQ(ops...) } - -// VPMOVSXWQ_Z: Move Packed Word Integers to Quadword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXWQ.Z m32 k xmm -// VPMOVSXWQ.Z m64 k ymm -// VPMOVSXWQ.Z xmm k xmm -// VPMOVSXWQ.Z xmm k ymm -// VPMOVSXWQ.Z m128 k zmm -// VPMOVSXWQ.Z xmm k zmm -// -// Construct and append a VPMOVSXWQ.Z instruction to the active function. -func (c *Context) VPMOVSXWQ_Z(mx, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVSXWQ_Z(mx, k, xyz)) -} - -// VPMOVSXWQ_Z: Move Packed Word Integers to Quadword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXWQ.Z m32 k xmm -// VPMOVSXWQ.Z m64 k ymm -// VPMOVSXWQ.Z xmm k xmm -// VPMOVSXWQ.Z xmm k ymm -// VPMOVSXWQ.Z m128 k zmm -// VPMOVSXWQ.Z xmm k zmm -// -// Construct and append a VPMOVSXWQ.Z instruction to the active function. -// Operates on the global context. -func VPMOVSXWQ_Z(mx, k, xyz operand.Op) { ctx.VPMOVSXWQ_Z(mx, k, xyz) } - -// VPMOVUSDB: Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSDB xmm k m32 -// VPMOVUSDB xmm k xmm -// VPMOVUSDB xmm m32 -// VPMOVUSDB xmm xmm -// VPMOVUSDB ymm k m64 -// VPMOVUSDB ymm k xmm -// VPMOVUSDB ymm m64 -// VPMOVUSDB ymm xmm -// VPMOVUSDB zmm k m128 -// VPMOVUSDB zmm k xmm -// VPMOVUSDB zmm m128 -// VPMOVUSDB zmm xmm -// -// Construct and append a VPMOVUSDB instruction to the active function. -func (c *Context) VPMOVUSDB(ops ...operand.Op) { - c.addinstruction(x86.VPMOVUSDB(ops...)) -} - -// VPMOVUSDB: Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSDB xmm k m32 -// VPMOVUSDB xmm k xmm -// VPMOVUSDB xmm m32 -// VPMOVUSDB xmm xmm -// VPMOVUSDB ymm k m64 -// VPMOVUSDB ymm k xmm -// VPMOVUSDB ymm m64 -// VPMOVUSDB ymm xmm -// VPMOVUSDB zmm k m128 -// VPMOVUSDB zmm k xmm -// VPMOVUSDB zmm m128 -// VPMOVUSDB zmm xmm -// -// Construct and append a VPMOVUSDB instruction to the active function. -// Operates on the global context. -func VPMOVUSDB(ops ...operand.Op) { ctx.VPMOVUSDB(ops...) } - -// VPMOVUSDB_Z: Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSDB.Z xmm k m32 -// VPMOVUSDB.Z xmm k xmm -// VPMOVUSDB.Z ymm k m64 -// VPMOVUSDB.Z ymm k xmm -// VPMOVUSDB.Z zmm k m128 -// VPMOVUSDB.Z zmm k xmm -// -// Construct and append a VPMOVUSDB.Z instruction to the active function. -func (c *Context) VPMOVUSDB_Z(xyz, k, mx operand.Op) { - c.addinstruction(x86.VPMOVUSDB_Z(xyz, k, mx)) -} - -// VPMOVUSDB_Z: Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSDB.Z xmm k m32 -// VPMOVUSDB.Z xmm k xmm -// VPMOVUSDB.Z ymm k m64 -// VPMOVUSDB.Z ymm k xmm -// VPMOVUSDB.Z zmm k m128 -// VPMOVUSDB.Z zmm k xmm -// -// Construct and append a VPMOVUSDB.Z instruction to the active function. -// Operates on the global context. -func VPMOVUSDB_Z(xyz, k, mx operand.Op) { ctx.VPMOVUSDB_Z(xyz, k, mx) } - -// VPMOVUSDW: Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSDW xmm k m64 -// VPMOVUSDW xmm k xmm -// VPMOVUSDW xmm m64 -// VPMOVUSDW xmm xmm -// VPMOVUSDW ymm k m128 -// VPMOVUSDW ymm k xmm -// VPMOVUSDW ymm m128 -// VPMOVUSDW ymm xmm -// VPMOVUSDW zmm k m256 -// VPMOVUSDW zmm k ymm -// VPMOVUSDW zmm m256 -// VPMOVUSDW zmm ymm -// -// Construct and append a VPMOVUSDW instruction to the active function. -func (c *Context) VPMOVUSDW(ops ...operand.Op) { - c.addinstruction(x86.VPMOVUSDW(ops...)) -} - -// VPMOVUSDW: Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSDW xmm k m64 -// VPMOVUSDW xmm k xmm -// VPMOVUSDW xmm m64 -// VPMOVUSDW xmm xmm -// VPMOVUSDW ymm k m128 -// VPMOVUSDW ymm k xmm -// VPMOVUSDW ymm m128 -// VPMOVUSDW ymm xmm -// VPMOVUSDW zmm k m256 -// VPMOVUSDW zmm k ymm -// VPMOVUSDW zmm m256 -// VPMOVUSDW zmm ymm -// -// Construct and append a VPMOVUSDW instruction to the active function. -// Operates on the global context. -func VPMOVUSDW(ops ...operand.Op) { ctx.VPMOVUSDW(ops...) } - -// VPMOVUSDW_Z: Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSDW.Z xmm k m64 -// VPMOVUSDW.Z xmm k xmm -// VPMOVUSDW.Z ymm k m128 -// VPMOVUSDW.Z ymm k xmm -// VPMOVUSDW.Z zmm k m256 -// VPMOVUSDW.Z zmm k ymm -// -// Construct and append a VPMOVUSDW.Z instruction to the active function. -func (c *Context) VPMOVUSDW_Z(xyz, k, mxy operand.Op) { - c.addinstruction(x86.VPMOVUSDW_Z(xyz, k, mxy)) -} - -// VPMOVUSDW_Z: Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSDW.Z xmm k m64 -// VPMOVUSDW.Z xmm k xmm -// VPMOVUSDW.Z ymm k m128 -// VPMOVUSDW.Z ymm k xmm -// VPMOVUSDW.Z zmm k m256 -// VPMOVUSDW.Z zmm k ymm -// -// Construct and append a VPMOVUSDW.Z instruction to the active function. -// Operates on the global context. -func VPMOVUSDW_Z(xyz, k, mxy operand.Op) { ctx.VPMOVUSDW_Z(xyz, k, mxy) } - -// VPMOVUSQB: Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSQB xmm k m16 -// VPMOVUSQB xmm k xmm -// VPMOVUSQB xmm m16 -// VPMOVUSQB xmm xmm -// VPMOVUSQB ymm k m32 -// VPMOVUSQB ymm k xmm -// VPMOVUSQB ymm m32 -// VPMOVUSQB ymm xmm -// VPMOVUSQB zmm k m64 -// VPMOVUSQB zmm k xmm -// VPMOVUSQB zmm m64 -// VPMOVUSQB zmm xmm -// -// Construct and append a VPMOVUSQB instruction to the active function. -func (c *Context) VPMOVUSQB(ops ...operand.Op) { - c.addinstruction(x86.VPMOVUSQB(ops...)) -} - -// VPMOVUSQB: Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSQB xmm k m16 -// VPMOVUSQB xmm k xmm -// VPMOVUSQB xmm m16 -// VPMOVUSQB xmm xmm -// VPMOVUSQB ymm k m32 -// VPMOVUSQB ymm k xmm -// VPMOVUSQB ymm m32 -// VPMOVUSQB ymm xmm -// VPMOVUSQB zmm k m64 -// VPMOVUSQB zmm k xmm -// VPMOVUSQB zmm m64 -// VPMOVUSQB zmm xmm -// -// Construct and append a VPMOVUSQB instruction to the active function. -// Operates on the global context. -func VPMOVUSQB(ops ...operand.Op) { ctx.VPMOVUSQB(ops...) } - -// VPMOVUSQB_Z: Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSQB.Z xmm k m16 -// VPMOVUSQB.Z xmm k xmm -// VPMOVUSQB.Z ymm k m32 -// VPMOVUSQB.Z ymm k xmm -// VPMOVUSQB.Z zmm k m64 -// VPMOVUSQB.Z zmm k xmm -// -// Construct and append a VPMOVUSQB.Z instruction to the active function. -func (c *Context) VPMOVUSQB_Z(xyz, k, mx operand.Op) { - c.addinstruction(x86.VPMOVUSQB_Z(xyz, k, mx)) -} - -// VPMOVUSQB_Z: Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSQB.Z xmm k m16 -// VPMOVUSQB.Z xmm k xmm -// VPMOVUSQB.Z ymm k m32 -// VPMOVUSQB.Z ymm k xmm -// VPMOVUSQB.Z zmm k m64 -// VPMOVUSQB.Z zmm k xmm -// -// Construct and append a VPMOVUSQB.Z instruction to the active function. -// Operates on the global context. -func VPMOVUSQB_Z(xyz, k, mx operand.Op) { ctx.VPMOVUSQB_Z(xyz, k, mx) } - -// VPMOVUSQD: Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSQD xmm k m64 -// VPMOVUSQD xmm k xmm -// VPMOVUSQD xmm m64 -// VPMOVUSQD xmm xmm -// VPMOVUSQD ymm k m128 -// VPMOVUSQD ymm k xmm -// VPMOVUSQD ymm m128 -// VPMOVUSQD ymm xmm -// VPMOVUSQD zmm k m256 -// VPMOVUSQD zmm k ymm -// VPMOVUSQD zmm m256 -// VPMOVUSQD zmm ymm -// -// Construct and append a VPMOVUSQD instruction to the active function. -func (c *Context) VPMOVUSQD(ops ...operand.Op) { - c.addinstruction(x86.VPMOVUSQD(ops...)) -} - -// VPMOVUSQD: Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSQD xmm k m64 -// VPMOVUSQD xmm k xmm -// VPMOVUSQD xmm m64 -// VPMOVUSQD xmm xmm -// VPMOVUSQD ymm k m128 -// VPMOVUSQD ymm k xmm -// VPMOVUSQD ymm m128 -// VPMOVUSQD ymm xmm -// VPMOVUSQD zmm k m256 -// VPMOVUSQD zmm k ymm -// VPMOVUSQD zmm m256 -// VPMOVUSQD zmm ymm -// -// Construct and append a VPMOVUSQD instruction to the active function. -// Operates on the global context. -func VPMOVUSQD(ops ...operand.Op) { ctx.VPMOVUSQD(ops...) } - -// VPMOVUSQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSQD.Z xmm k m64 -// VPMOVUSQD.Z xmm k xmm -// VPMOVUSQD.Z ymm k m128 -// VPMOVUSQD.Z ymm k xmm -// VPMOVUSQD.Z zmm k m256 -// VPMOVUSQD.Z zmm k ymm -// -// Construct and append a VPMOVUSQD.Z instruction to the active function. -func (c *Context) VPMOVUSQD_Z(xyz, k, mxy operand.Op) { - c.addinstruction(x86.VPMOVUSQD_Z(xyz, k, mxy)) -} - -// VPMOVUSQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSQD.Z xmm k m64 -// VPMOVUSQD.Z xmm k xmm -// VPMOVUSQD.Z ymm k m128 -// VPMOVUSQD.Z ymm k xmm -// VPMOVUSQD.Z zmm k m256 -// VPMOVUSQD.Z zmm k ymm -// -// Construct and append a VPMOVUSQD.Z instruction to the active function. -// Operates on the global context. -func VPMOVUSQD_Z(xyz, k, mxy operand.Op) { ctx.VPMOVUSQD_Z(xyz, k, mxy) } - -// VPMOVUSQW: Down Convert Packed Quadword Values to Word Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSQW xmm k m32 -// VPMOVUSQW xmm k xmm -// VPMOVUSQW xmm m32 -// VPMOVUSQW xmm xmm -// VPMOVUSQW ymm k m64 -// VPMOVUSQW ymm k xmm -// VPMOVUSQW ymm m64 -// VPMOVUSQW ymm xmm -// VPMOVUSQW zmm k m128 -// VPMOVUSQW zmm k xmm -// VPMOVUSQW zmm m128 -// VPMOVUSQW zmm xmm -// -// Construct and append a VPMOVUSQW instruction to the active function. -func (c *Context) VPMOVUSQW(ops ...operand.Op) { - c.addinstruction(x86.VPMOVUSQW(ops...)) -} - -// VPMOVUSQW: Down Convert Packed Quadword Values to Word Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSQW xmm k m32 -// VPMOVUSQW xmm k xmm -// VPMOVUSQW xmm m32 -// VPMOVUSQW xmm xmm -// VPMOVUSQW ymm k m64 -// VPMOVUSQW ymm k xmm -// VPMOVUSQW ymm m64 -// VPMOVUSQW ymm xmm -// VPMOVUSQW zmm k m128 -// VPMOVUSQW zmm k xmm -// VPMOVUSQW zmm m128 -// VPMOVUSQW zmm xmm -// -// Construct and append a VPMOVUSQW instruction to the active function. -// Operates on the global context. -func VPMOVUSQW(ops ...operand.Op) { ctx.VPMOVUSQW(ops...) } - -// VPMOVUSQW_Z: Down Convert Packed Quadword Values to Word Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSQW.Z xmm k m32 -// VPMOVUSQW.Z xmm k xmm -// VPMOVUSQW.Z ymm k m64 -// VPMOVUSQW.Z ymm k xmm -// VPMOVUSQW.Z zmm k m128 -// VPMOVUSQW.Z zmm k xmm -// -// Construct and append a VPMOVUSQW.Z instruction to the active function. -func (c *Context) VPMOVUSQW_Z(xyz, k, mx operand.Op) { - c.addinstruction(x86.VPMOVUSQW_Z(xyz, k, mx)) -} - -// VPMOVUSQW_Z: Down Convert Packed Quadword Values to Word Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSQW.Z xmm k m32 -// VPMOVUSQW.Z xmm k xmm -// VPMOVUSQW.Z ymm k m64 -// VPMOVUSQW.Z ymm k xmm -// VPMOVUSQW.Z zmm k m128 -// VPMOVUSQW.Z zmm k xmm -// -// Construct and append a VPMOVUSQW.Z instruction to the active function. -// Operates on the global context. -func VPMOVUSQW_Z(xyz, k, mx operand.Op) { ctx.VPMOVUSQW_Z(xyz, k, mx) } - -// VPMOVUSWB: Down Convert Packed Word Values to Byte Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSWB xmm k m64 -// VPMOVUSWB xmm k xmm -// VPMOVUSWB xmm m64 -// VPMOVUSWB xmm xmm -// VPMOVUSWB ymm k m128 -// VPMOVUSWB ymm k xmm -// VPMOVUSWB ymm m128 -// VPMOVUSWB ymm xmm -// VPMOVUSWB zmm k m256 -// VPMOVUSWB zmm k ymm -// VPMOVUSWB zmm m256 -// VPMOVUSWB zmm ymm -// -// Construct and append a VPMOVUSWB instruction to the active function. -func (c *Context) VPMOVUSWB(ops ...operand.Op) { - c.addinstruction(x86.VPMOVUSWB(ops...)) -} - -// VPMOVUSWB: Down Convert Packed Word Values to Byte Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSWB xmm k m64 -// VPMOVUSWB xmm k xmm -// VPMOVUSWB xmm m64 -// VPMOVUSWB xmm xmm -// VPMOVUSWB ymm k m128 -// VPMOVUSWB ymm k xmm -// VPMOVUSWB ymm m128 -// VPMOVUSWB ymm xmm -// VPMOVUSWB zmm k m256 -// VPMOVUSWB zmm k ymm -// VPMOVUSWB zmm m256 -// VPMOVUSWB zmm ymm -// -// Construct and append a VPMOVUSWB instruction to the active function. -// Operates on the global context. -func VPMOVUSWB(ops ...operand.Op) { ctx.VPMOVUSWB(ops...) } - -// VPMOVUSWB_Z: Down Convert Packed Word Values to Byte Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSWB.Z xmm k m64 -// VPMOVUSWB.Z xmm k xmm -// VPMOVUSWB.Z ymm k m128 -// VPMOVUSWB.Z ymm k xmm -// VPMOVUSWB.Z zmm k m256 -// VPMOVUSWB.Z zmm k ymm -// -// Construct and append a VPMOVUSWB.Z instruction to the active function. -func (c *Context) VPMOVUSWB_Z(xyz, k, mxy operand.Op) { - c.addinstruction(x86.VPMOVUSWB_Z(xyz, k, mxy)) -} - -// VPMOVUSWB_Z: Down Convert Packed Word Values to Byte Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSWB.Z xmm k m64 -// VPMOVUSWB.Z xmm k xmm -// VPMOVUSWB.Z ymm k m128 -// VPMOVUSWB.Z ymm k xmm -// VPMOVUSWB.Z zmm k m256 -// VPMOVUSWB.Z zmm k ymm -// -// Construct and append a VPMOVUSWB.Z instruction to the active function. -// Operates on the global context. -func VPMOVUSWB_Z(xyz, k, mxy operand.Op) { ctx.VPMOVUSWB_Z(xyz, k, mxy) } - -// VPMOVW2M: Move Signs of Packed Word Integers to Mask Register. -// -// Forms: -// -// VPMOVW2M xmm k -// VPMOVW2M ymm k -// VPMOVW2M zmm k -// -// Construct and append a VPMOVW2M instruction to the active function. -func (c *Context) VPMOVW2M(xyz, k operand.Op) { - c.addinstruction(x86.VPMOVW2M(xyz, k)) -} - -// VPMOVW2M: Move Signs of Packed Word Integers to Mask Register. -// -// Forms: -// -// VPMOVW2M xmm k -// VPMOVW2M ymm k -// VPMOVW2M zmm k -// -// Construct and append a VPMOVW2M instruction to the active function. -// Operates on the global context. -func VPMOVW2M(xyz, k operand.Op) { ctx.VPMOVW2M(xyz, k) } - -// VPMOVWB: Down Convert Packed Word Values to Byte Values with Truncation. -// -// Forms: -// -// VPMOVWB xmm k m64 -// VPMOVWB xmm k xmm -// VPMOVWB xmm m64 -// VPMOVWB xmm xmm -// VPMOVWB ymm k m128 -// VPMOVWB ymm k xmm -// VPMOVWB ymm m128 -// VPMOVWB ymm xmm -// VPMOVWB zmm k m256 -// VPMOVWB zmm k ymm -// VPMOVWB zmm m256 -// VPMOVWB zmm ymm -// -// Construct and append a VPMOVWB instruction to the active function. -func (c *Context) VPMOVWB(ops ...operand.Op) { - c.addinstruction(x86.VPMOVWB(ops...)) -} - -// VPMOVWB: Down Convert Packed Word Values to Byte Values with Truncation. -// -// Forms: -// -// VPMOVWB xmm k m64 -// VPMOVWB xmm k xmm -// VPMOVWB xmm m64 -// VPMOVWB xmm xmm -// VPMOVWB ymm k m128 -// VPMOVWB ymm k xmm -// VPMOVWB ymm m128 -// VPMOVWB ymm xmm -// VPMOVWB zmm k m256 -// VPMOVWB zmm k ymm -// VPMOVWB zmm m256 -// VPMOVWB zmm ymm -// -// Construct and append a VPMOVWB instruction to the active function. -// Operates on the global context. -func VPMOVWB(ops ...operand.Op) { ctx.VPMOVWB(ops...) } - -// VPMOVWB_Z: Down Convert Packed Word Values to Byte Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVWB.Z xmm k m64 -// VPMOVWB.Z xmm k xmm -// VPMOVWB.Z ymm k m128 -// VPMOVWB.Z ymm k xmm -// VPMOVWB.Z zmm k m256 -// VPMOVWB.Z zmm k ymm -// -// Construct and append a VPMOVWB.Z instruction to the active function. -func (c *Context) VPMOVWB_Z(xyz, k, mxy operand.Op) { - c.addinstruction(x86.VPMOVWB_Z(xyz, k, mxy)) -} - -// VPMOVWB_Z: Down Convert Packed Word Values to Byte Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVWB.Z xmm k m64 -// VPMOVWB.Z xmm k xmm -// VPMOVWB.Z ymm k m128 -// VPMOVWB.Z ymm k xmm -// VPMOVWB.Z zmm k m256 -// VPMOVWB.Z zmm k ymm -// -// Construct and append a VPMOVWB.Z instruction to the active function. -// Operates on the global context. -func VPMOVWB_Z(xyz, k, mxy operand.Op) { ctx.VPMOVWB_Z(xyz, k, mxy) } - -// VPMOVZXBD: Move Packed Byte Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXBD m64 ymm -// VPMOVZXBD xmm ymm -// VPMOVZXBD m32 xmm -// VPMOVZXBD xmm xmm -// VPMOVZXBD m32 k xmm -// VPMOVZXBD m64 k ymm -// VPMOVZXBD xmm k xmm -// VPMOVZXBD xmm k ymm -// VPMOVZXBD m128 k zmm -// VPMOVZXBD m128 zmm -// VPMOVZXBD xmm k zmm -// VPMOVZXBD xmm zmm -// -// Construct and append a VPMOVZXBD instruction to the active function. -func (c *Context) VPMOVZXBD(ops ...operand.Op) { - c.addinstruction(x86.VPMOVZXBD(ops...)) -} - -// VPMOVZXBD: Move Packed Byte Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXBD m64 ymm -// VPMOVZXBD xmm ymm -// VPMOVZXBD m32 xmm -// VPMOVZXBD xmm xmm -// VPMOVZXBD m32 k xmm -// VPMOVZXBD m64 k ymm -// VPMOVZXBD xmm k xmm -// VPMOVZXBD xmm k ymm -// VPMOVZXBD m128 k zmm -// VPMOVZXBD m128 zmm -// VPMOVZXBD xmm k zmm -// VPMOVZXBD xmm zmm -// -// Construct and append a VPMOVZXBD instruction to the active function. -// Operates on the global context. -func VPMOVZXBD(ops ...operand.Op) { ctx.VPMOVZXBD(ops...) } - -// VPMOVZXBD_Z: Move Packed Byte Integers to Doubleword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXBD.Z m32 k xmm -// VPMOVZXBD.Z m64 k ymm -// VPMOVZXBD.Z xmm k xmm -// VPMOVZXBD.Z xmm k ymm -// VPMOVZXBD.Z m128 k zmm -// VPMOVZXBD.Z xmm k zmm -// -// Construct and append a VPMOVZXBD.Z instruction to the active function. -func (c *Context) VPMOVZXBD_Z(mx, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVZXBD_Z(mx, k, xyz)) -} - -// VPMOVZXBD_Z: Move Packed Byte Integers to Doubleword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXBD.Z m32 k xmm -// VPMOVZXBD.Z m64 k ymm -// VPMOVZXBD.Z xmm k xmm -// VPMOVZXBD.Z xmm k ymm -// VPMOVZXBD.Z m128 k zmm -// VPMOVZXBD.Z xmm k zmm -// -// Construct and append a VPMOVZXBD.Z instruction to the active function. -// Operates on the global context. -func VPMOVZXBD_Z(mx, k, xyz operand.Op) { ctx.VPMOVZXBD_Z(mx, k, xyz) } - -// VPMOVZXBQ: Move Packed Byte Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXBQ m32 ymm -// VPMOVZXBQ xmm ymm -// VPMOVZXBQ m16 xmm -// VPMOVZXBQ xmm xmm -// VPMOVZXBQ m16 k xmm -// VPMOVZXBQ m32 k ymm -// VPMOVZXBQ xmm k xmm -// VPMOVZXBQ xmm k ymm -// VPMOVZXBQ m64 k zmm -// VPMOVZXBQ m64 zmm -// VPMOVZXBQ xmm k zmm -// VPMOVZXBQ xmm zmm -// -// Construct and append a VPMOVZXBQ instruction to the active function. -func (c *Context) VPMOVZXBQ(ops ...operand.Op) { - c.addinstruction(x86.VPMOVZXBQ(ops...)) -} - -// VPMOVZXBQ: Move Packed Byte Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXBQ m32 ymm -// VPMOVZXBQ xmm ymm -// VPMOVZXBQ m16 xmm -// VPMOVZXBQ xmm xmm -// VPMOVZXBQ m16 k xmm -// VPMOVZXBQ m32 k ymm -// VPMOVZXBQ xmm k xmm -// VPMOVZXBQ xmm k ymm -// VPMOVZXBQ m64 k zmm -// VPMOVZXBQ m64 zmm -// VPMOVZXBQ xmm k zmm -// VPMOVZXBQ xmm zmm -// -// Construct and append a VPMOVZXBQ instruction to the active function. -// Operates on the global context. -func VPMOVZXBQ(ops ...operand.Op) { ctx.VPMOVZXBQ(ops...) } - -// VPMOVZXBQ_Z: Move Packed Byte Integers to Quadword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXBQ.Z m16 k xmm -// VPMOVZXBQ.Z m32 k ymm -// VPMOVZXBQ.Z xmm k xmm -// VPMOVZXBQ.Z xmm k ymm -// VPMOVZXBQ.Z m64 k zmm -// VPMOVZXBQ.Z xmm k zmm -// -// Construct and append a VPMOVZXBQ.Z instruction to the active function. -func (c *Context) VPMOVZXBQ_Z(mx, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVZXBQ_Z(mx, k, xyz)) -} - -// VPMOVZXBQ_Z: Move Packed Byte Integers to Quadword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXBQ.Z m16 k xmm -// VPMOVZXBQ.Z m32 k ymm -// VPMOVZXBQ.Z xmm k xmm -// VPMOVZXBQ.Z xmm k ymm -// VPMOVZXBQ.Z m64 k zmm -// VPMOVZXBQ.Z xmm k zmm -// -// Construct and append a VPMOVZXBQ.Z instruction to the active function. -// Operates on the global context. -func VPMOVZXBQ_Z(mx, k, xyz operand.Op) { ctx.VPMOVZXBQ_Z(mx, k, xyz) } - -// VPMOVZXBW: Move Packed Byte Integers to Word Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXBW m128 ymm -// VPMOVZXBW xmm ymm -// VPMOVZXBW m64 xmm -// VPMOVZXBW xmm xmm -// VPMOVZXBW m128 k ymm -// VPMOVZXBW m64 k xmm -// VPMOVZXBW xmm k xmm -// VPMOVZXBW xmm k ymm -// VPMOVZXBW m256 k zmm -// VPMOVZXBW m256 zmm -// VPMOVZXBW ymm k zmm -// VPMOVZXBW ymm zmm -// -// Construct and append a VPMOVZXBW instruction to the active function. -func (c *Context) VPMOVZXBW(ops ...operand.Op) { - c.addinstruction(x86.VPMOVZXBW(ops...)) -} - -// VPMOVZXBW: Move Packed Byte Integers to Word Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXBW m128 ymm -// VPMOVZXBW xmm ymm -// VPMOVZXBW m64 xmm -// VPMOVZXBW xmm xmm -// VPMOVZXBW m128 k ymm -// VPMOVZXBW m64 k xmm -// VPMOVZXBW xmm k xmm -// VPMOVZXBW xmm k ymm -// VPMOVZXBW m256 k zmm -// VPMOVZXBW m256 zmm -// VPMOVZXBW ymm k zmm -// VPMOVZXBW ymm zmm -// -// Construct and append a VPMOVZXBW instruction to the active function. -// Operates on the global context. -func VPMOVZXBW(ops ...operand.Op) { ctx.VPMOVZXBW(ops...) } - -// VPMOVZXBW_Z: Move Packed Byte Integers to Word Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXBW.Z m128 k ymm -// VPMOVZXBW.Z m64 k xmm -// VPMOVZXBW.Z xmm k xmm -// VPMOVZXBW.Z xmm k ymm -// VPMOVZXBW.Z m256 k zmm -// VPMOVZXBW.Z ymm k zmm -// -// Construct and append a VPMOVZXBW.Z instruction to the active function. -func (c *Context) VPMOVZXBW_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVZXBW_Z(mxy, k, xyz)) -} - -// VPMOVZXBW_Z: Move Packed Byte Integers to Word Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXBW.Z m128 k ymm -// VPMOVZXBW.Z m64 k xmm -// VPMOVZXBW.Z xmm k xmm -// VPMOVZXBW.Z xmm k ymm -// VPMOVZXBW.Z m256 k zmm -// VPMOVZXBW.Z ymm k zmm -// -// Construct and append a VPMOVZXBW.Z instruction to the active function. -// Operates on the global context. -func VPMOVZXBW_Z(mxy, k, xyz operand.Op) { ctx.VPMOVZXBW_Z(mxy, k, xyz) } - -// VPMOVZXDQ: Move Packed Doubleword Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXDQ m128 ymm -// VPMOVZXDQ xmm ymm -// VPMOVZXDQ m64 xmm -// VPMOVZXDQ xmm xmm -// VPMOVZXDQ m128 k ymm -// VPMOVZXDQ m64 k xmm -// VPMOVZXDQ xmm k xmm -// VPMOVZXDQ xmm k ymm -// VPMOVZXDQ m256 k zmm -// VPMOVZXDQ m256 zmm -// VPMOVZXDQ ymm k zmm -// VPMOVZXDQ ymm zmm -// -// Construct and append a VPMOVZXDQ instruction to the active function. -func (c *Context) VPMOVZXDQ(ops ...operand.Op) { - c.addinstruction(x86.VPMOVZXDQ(ops...)) -} - -// VPMOVZXDQ: Move Packed Doubleword Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXDQ m128 ymm -// VPMOVZXDQ xmm ymm -// VPMOVZXDQ m64 xmm -// VPMOVZXDQ xmm xmm -// VPMOVZXDQ m128 k ymm -// VPMOVZXDQ m64 k xmm -// VPMOVZXDQ xmm k xmm -// VPMOVZXDQ xmm k ymm -// VPMOVZXDQ m256 k zmm -// VPMOVZXDQ m256 zmm -// VPMOVZXDQ ymm k zmm -// VPMOVZXDQ ymm zmm -// -// Construct and append a VPMOVZXDQ instruction to the active function. -// Operates on the global context. -func VPMOVZXDQ(ops ...operand.Op) { ctx.VPMOVZXDQ(ops...) } - -// VPMOVZXDQ_Z: Move Packed Doubleword Integers to Quadword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXDQ.Z m128 k ymm -// VPMOVZXDQ.Z m64 k xmm -// VPMOVZXDQ.Z xmm k xmm -// VPMOVZXDQ.Z xmm k ymm -// VPMOVZXDQ.Z m256 k zmm -// VPMOVZXDQ.Z ymm k zmm -// -// Construct and append a VPMOVZXDQ.Z instruction to the active function. -func (c *Context) VPMOVZXDQ_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVZXDQ_Z(mxy, k, xyz)) -} - -// VPMOVZXDQ_Z: Move Packed Doubleword Integers to Quadword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXDQ.Z m128 k ymm -// VPMOVZXDQ.Z m64 k xmm -// VPMOVZXDQ.Z xmm k xmm -// VPMOVZXDQ.Z xmm k ymm -// VPMOVZXDQ.Z m256 k zmm -// VPMOVZXDQ.Z ymm k zmm -// -// Construct and append a VPMOVZXDQ.Z instruction to the active function. -// Operates on the global context. -func VPMOVZXDQ_Z(mxy, k, xyz operand.Op) { ctx.VPMOVZXDQ_Z(mxy, k, xyz) } - -// VPMOVZXWD: Move Packed Word Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXWD m128 ymm -// VPMOVZXWD xmm ymm -// VPMOVZXWD m64 xmm -// VPMOVZXWD xmm xmm -// VPMOVZXWD m128 k ymm -// VPMOVZXWD m64 k xmm -// VPMOVZXWD xmm k xmm -// VPMOVZXWD xmm k ymm -// VPMOVZXWD m256 k zmm -// VPMOVZXWD m256 zmm -// VPMOVZXWD ymm k zmm -// VPMOVZXWD ymm zmm -// -// Construct and append a VPMOVZXWD instruction to the active function. -func (c *Context) VPMOVZXWD(ops ...operand.Op) { - c.addinstruction(x86.VPMOVZXWD(ops...)) -} - -// VPMOVZXWD: Move Packed Word Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXWD m128 ymm -// VPMOVZXWD xmm ymm -// VPMOVZXWD m64 xmm -// VPMOVZXWD xmm xmm -// VPMOVZXWD m128 k ymm -// VPMOVZXWD m64 k xmm -// VPMOVZXWD xmm k xmm -// VPMOVZXWD xmm k ymm -// VPMOVZXWD m256 k zmm -// VPMOVZXWD m256 zmm -// VPMOVZXWD ymm k zmm -// VPMOVZXWD ymm zmm -// -// Construct and append a VPMOVZXWD instruction to the active function. -// Operates on the global context. -func VPMOVZXWD(ops ...operand.Op) { ctx.VPMOVZXWD(ops...) } - -// VPMOVZXWD_Z: Move Packed Word Integers to Doubleword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXWD.Z m128 k ymm -// VPMOVZXWD.Z m64 k xmm -// VPMOVZXWD.Z xmm k xmm -// VPMOVZXWD.Z xmm k ymm -// VPMOVZXWD.Z m256 k zmm -// VPMOVZXWD.Z ymm k zmm -// -// Construct and append a VPMOVZXWD.Z instruction to the active function. -func (c *Context) VPMOVZXWD_Z(mxy, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVZXWD_Z(mxy, k, xyz)) -} - -// VPMOVZXWD_Z: Move Packed Word Integers to Doubleword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXWD.Z m128 k ymm -// VPMOVZXWD.Z m64 k xmm -// VPMOVZXWD.Z xmm k xmm -// VPMOVZXWD.Z xmm k ymm -// VPMOVZXWD.Z m256 k zmm -// VPMOVZXWD.Z ymm k zmm -// -// Construct and append a VPMOVZXWD.Z instruction to the active function. -// Operates on the global context. -func VPMOVZXWD_Z(mxy, k, xyz operand.Op) { ctx.VPMOVZXWD_Z(mxy, k, xyz) } - -// VPMOVZXWQ: Move Packed Word Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXWQ m64 ymm -// VPMOVZXWQ xmm ymm -// VPMOVZXWQ m32 xmm -// VPMOVZXWQ xmm xmm -// VPMOVZXWQ m32 k xmm -// VPMOVZXWQ m64 k ymm -// VPMOVZXWQ xmm k xmm -// VPMOVZXWQ xmm k ymm -// VPMOVZXWQ m128 k zmm -// VPMOVZXWQ m128 zmm -// VPMOVZXWQ xmm k zmm -// VPMOVZXWQ xmm zmm -// -// Construct and append a VPMOVZXWQ instruction to the active function. -func (c *Context) VPMOVZXWQ(ops ...operand.Op) { - c.addinstruction(x86.VPMOVZXWQ(ops...)) -} - -// VPMOVZXWQ: Move Packed Word Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXWQ m64 ymm -// VPMOVZXWQ xmm ymm -// VPMOVZXWQ m32 xmm -// VPMOVZXWQ xmm xmm -// VPMOVZXWQ m32 k xmm -// VPMOVZXWQ m64 k ymm -// VPMOVZXWQ xmm k xmm -// VPMOVZXWQ xmm k ymm -// VPMOVZXWQ m128 k zmm -// VPMOVZXWQ m128 zmm -// VPMOVZXWQ xmm k zmm -// VPMOVZXWQ xmm zmm -// -// Construct and append a VPMOVZXWQ instruction to the active function. -// Operates on the global context. -func VPMOVZXWQ(ops ...operand.Op) { ctx.VPMOVZXWQ(ops...) } - -// VPMOVZXWQ_Z: Move Packed Word Integers to Quadword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXWQ.Z m32 k xmm -// VPMOVZXWQ.Z m64 k ymm -// VPMOVZXWQ.Z xmm k xmm -// VPMOVZXWQ.Z xmm k ymm -// VPMOVZXWQ.Z m128 k zmm -// VPMOVZXWQ.Z xmm k zmm -// -// Construct and append a VPMOVZXWQ.Z instruction to the active function. -func (c *Context) VPMOVZXWQ_Z(mx, k, xyz operand.Op) { - c.addinstruction(x86.VPMOVZXWQ_Z(mx, k, xyz)) -} - -// VPMOVZXWQ_Z: Move Packed Word Integers to Quadword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXWQ.Z m32 k xmm -// VPMOVZXWQ.Z m64 k ymm -// VPMOVZXWQ.Z xmm k xmm -// VPMOVZXWQ.Z xmm k ymm -// VPMOVZXWQ.Z m128 k zmm -// VPMOVZXWQ.Z xmm k zmm -// -// Construct and append a VPMOVZXWQ.Z instruction to the active function. -// Operates on the global context. -func VPMOVZXWQ_Z(mx, k, xyz operand.Op) { ctx.VPMOVZXWQ_Z(mx, k, xyz) } - -// VPMULDQ: Multiply Packed Signed Doubleword Integers and Store Quadword Result. -// -// Forms: -// -// VPMULDQ m256 ymm ymm -// VPMULDQ ymm ymm ymm -// VPMULDQ m128 xmm xmm -// VPMULDQ xmm xmm xmm -// VPMULDQ m128 xmm k xmm -// VPMULDQ m256 ymm k ymm -// VPMULDQ xmm xmm k xmm -// VPMULDQ ymm ymm k ymm -// VPMULDQ m512 zmm k zmm -// VPMULDQ m512 zmm zmm -// VPMULDQ zmm zmm k zmm -// VPMULDQ zmm zmm zmm -// -// Construct and append a VPMULDQ instruction to the active function. -func (c *Context) VPMULDQ(ops ...operand.Op) { - c.addinstruction(x86.VPMULDQ(ops...)) -} - -// VPMULDQ: Multiply Packed Signed Doubleword Integers and Store Quadword Result. -// -// Forms: -// -// VPMULDQ m256 ymm ymm -// VPMULDQ ymm ymm ymm -// VPMULDQ m128 xmm xmm -// VPMULDQ xmm xmm xmm -// VPMULDQ m128 xmm k xmm -// VPMULDQ m256 ymm k ymm -// VPMULDQ xmm xmm k xmm -// VPMULDQ ymm ymm k ymm -// VPMULDQ m512 zmm k zmm -// VPMULDQ m512 zmm zmm -// VPMULDQ zmm zmm k zmm -// VPMULDQ zmm zmm zmm -// -// Construct and append a VPMULDQ instruction to the active function. -// Operates on the global context. -func VPMULDQ(ops ...operand.Op) { ctx.VPMULDQ(ops...) } - -// VPMULDQ_BCST: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Broadcast). -// -// Forms: -// -// VPMULDQ.BCST m64 xmm k xmm -// VPMULDQ.BCST m64 xmm xmm -// VPMULDQ.BCST m64 ymm k ymm -// VPMULDQ.BCST m64 ymm ymm -// VPMULDQ.BCST m64 zmm k zmm -// VPMULDQ.BCST m64 zmm zmm -// -// Construct and append a VPMULDQ.BCST instruction to the active function. -func (c *Context) VPMULDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMULDQ_BCST(ops...)) -} - -// VPMULDQ_BCST: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Broadcast). -// -// Forms: -// -// VPMULDQ.BCST m64 xmm k xmm -// VPMULDQ.BCST m64 xmm xmm -// VPMULDQ.BCST m64 ymm k ymm -// VPMULDQ.BCST m64 ymm ymm -// VPMULDQ.BCST m64 zmm k zmm -// VPMULDQ.BCST m64 zmm zmm -// -// Construct and append a VPMULDQ.BCST instruction to the active function. -// Operates on the global context. -func VPMULDQ_BCST(ops ...operand.Op) { ctx.VPMULDQ_BCST(ops...) } - -// VPMULDQ_BCST_Z: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULDQ.BCST.Z m64 xmm k xmm -// VPMULDQ.BCST.Z m64 ymm k ymm -// VPMULDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMULDQ.BCST.Z instruction to the active function. -func (c *Context) VPMULDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULDQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMULDQ_BCST_Z: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULDQ.BCST.Z m64 xmm k xmm -// VPMULDQ.BCST.Z m64 ymm k ymm -// VPMULDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMULDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMULDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMULDQ_BCST_Z(m, xyz, k, xyz1) } - -// VPMULDQ_Z: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Zeroing Masking). -// -// Forms: -// -// VPMULDQ.Z m128 xmm k xmm -// VPMULDQ.Z m256 ymm k ymm -// VPMULDQ.Z xmm xmm k xmm -// VPMULDQ.Z ymm ymm k ymm -// VPMULDQ.Z m512 zmm k zmm -// VPMULDQ.Z zmm zmm k zmm -// -// Construct and append a VPMULDQ.Z instruction to the active function. -func (c *Context) VPMULDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULDQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPMULDQ_Z: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Zeroing Masking). -// -// Forms: -// -// VPMULDQ.Z m128 xmm k xmm -// VPMULDQ.Z m256 ymm k ymm -// VPMULDQ.Z xmm xmm k xmm -// VPMULDQ.Z ymm ymm k ymm -// VPMULDQ.Z m512 zmm k zmm -// VPMULDQ.Z zmm zmm k zmm -// -// Construct and append a VPMULDQ.Z instruction to the active function. -// Operates on the global context. -func VPMULDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMULDQ_Z(mxyz, xyz, k, xyz1) } - -// VPMULHRSW: Packed Multiply Signed Word Integers and Store High Result with Round and Scale. -// -// Forms: -// -// VPMULHRSW m256 ymm ymm -// VPMULHRSW ymm ymm ymm -// VPMULHRSW m128 xmm xmm -// VPMULHRSW xmm xmm xmm -// VPMULHRSW m128 xmm k xmm -// VPMULHRSW m256 ymm k ymm -// VPMULHRSW xmm xmm k xmm -// VPMULHRSW ymm ymm k ymm -// VPMULHRSW m512 zmm k zmm -// VPMULHRSW m512 zmm zmm -// VPMULHRSW zmm zmm k zmm -// VPMULHRSW zmm zmm zmm -// -// Construct and append a VPMULHRSW instruction to the active function. -func (c *Context) VPMULHRSW(ops ...operand.Op) { - c.addinstruction(x86.VPMULHRSW(ops...)) -} - -// VPMULHRSW: Packed Multiply Signed Word Integers and Store High Result with Round and Scale. -// -// Forms: -// -// VPMULHRSW m256 ymm ymm -// VPMULHRSW ymm ymm ymm -// VPMULHRSW m128 xmm xmm -// VPMULHRSW xmm xmm xmm -// VPMULHRSW m128 xmm k xmm -// VPMULHRSW m256 ymm k ymm -// VPMULHRSW xmm xmm k xmm -// VPMULHRSW ymm ymm k ymm -// VPMULHRSW m512 zmm k zmm -// VPMULHRSW m512 zmm zmm -// VPMULHRSW zmm zmm k zmm -// VPMULHRSW zmm zmm zmm -// -// Construct and append a VPMULHRSW instruction to the active function. -// Operates on the global context. -func VPMULHRSW(ops ...operand.Op) { ctx.VPMULHRSW(ops...) } - -// VPMULHRSW_Z: Packed Multiply Signed Word Integers and Store High Result with Round and Scale (Zeroing Masking). -// -// Forms: -// -// VPMULHRSW.Z m128 xmm k xmm -// VPMULHRSW.Z m256 ymm k ymm -// VPMULHRSW.Z xmm xmm k xmm -// VPMULHRSW.Z ymm ymm k ymm -// VPMULHRSW.Z m512 zmm k zmm -// VPMULHRSW.Z zmm zmm k zmm -// -// Construct and append a VPMULHRSW.Z instruction to the active function. -func (c *Context) VPMULHRSW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULHRSW_Z(mxyz, xyz, k, xyz1)) -} - -// VPMULHRSW_Z: Packed Multiply Signed Word Integers and Store High Result with Round and Scale (Zeroing Masking). -// -// Forms: -// -// VPMULHRSW.Z m128 xmm k xmm -// VPMULHRSW.Z m256 ymm k ymm -// VPMULHRSW.Z xmm xmm k xmm -// VPMULHRSW.Z ymm ymm k ymm -// VPMULHRSW.Z m512 zmm k zmm -// VPMULHRSW.Z zmm zmm k zmm -// -// Construct and append a VPMULHRSW.Z instruction to the active function. -// Operates on the global context. -func VPMULHRSW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMULHRSW_Z(mxyz, xyz, k, xyz1) } - -// VPMULHUW: Multiply Packed Unsigned Word Integers and Store High Result. -// -// Forms: -// -// VPMULHUW m256 ymm ymm -// VPMULHUW ymm ymm ymm -// VPMULHUW m128 xmm xmm -// VPMULHUW xmm xmm xmm -// VPMULHUW m128 xmm k xmm -// VPMULHUW m256 ymm k ymm -// VPMULHUW xmm xmm k xmm -// VPMULHUW ymm ymm k ymm -// VPMULHUW m512 zmm k zmm -// VPMULHUW m512 zmm zmm -// VPMULHUW zmm zmm k zmm -// VPMULHUW zmm zmm zmm -// -// Construct and append a VPMULHUW instruction to the active function. -func (c *Context) VPMULHUW(ops ...operand.Op) { - c.addinstruction(x86.VPMULHUW(ops...)) -} - -// VPMULHUW: Multiply Packed Unsigned Word Integers and Store High Result. -// -// Forms: -// -// VPMULHUW m256 ymm ymm -// VPMULHUW ymm ymm ymm -// VPMULHUW m128 xmm xmm -// VPMULHUW xmm xmm xmm -// VPMULHUW m128 xmm k xmm -// VPMULHUW m256 ymm k ymm -// VPMULHUW xmm xmm k xmm -// VPMULHUW ymm ymm k ymm -// VPMULHUW m512 zmm k zmm -// VPMULHUW m512 zmm zmm -// VPMULHUW zmm zmm k zmm -// VPMULHUW zmm zmm zmm -// -// Construct and append a VPMULHUW instruction to the active function. -// Operates on the global context. -func VPMULHUW(ops ...operand.Op) { ctx.VPMULHUW(ops...) } - -// VPMULHUW_Z: Multiply Packed Unsigned Word Integers and Store High Result (Zeroing Masking). -// -// Forms: -// -// VPMULHUW.Z m128 xmm k xmm -// VPMULHUW.Z m256 ymm k ymm -// VPMULHUW.Z xmm xmm k xmm -// VPMULHUW.Z ymm ymm k ymm -// VPMULHUW.Z m512 zmm k zmm -// VPMULHUW.Z zmm zmm k zmm -// -// Construct and append a VPMULHUW.Z instruction to the active function. -func (c *Context) VPMULHUW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULHUW_Z(mxyz, xyz, k, xyz1)) -} - -// VPMULHUW_Z: Multiply Packed Unsigned Word Integers and Store High Result (Zeroing Masking). -// -// Forms: -// -// VPMULHUW.Z m128 xmm k xmm -// VPMULHUW.Z m256 ymm k ymm -// VPMULHUW.Z xmm xmm k xmm -// VPMULHUW.Z ymm ymm k ymm -// VPMULHUW.Z m512 zmm k zmm -// VPMULHUW.Z zmm zmm k zmm -// -// Construct and append a VPMULHUW.Z instruction to the active function. -// Operates on the global context. -func VPMULHUW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMULHUW_Z(mxyz, xyz, k, xyz1) } - -// VPMULHW: Multiply Packed Signed Word Integers and Store High Result. -// -// Forms: -// -// VPMULHW m256 ymm ymm -// VPMULHW ymm ymm ymm -// VPMULHW m128 xmm xmm -// VPMULHW xmm xmm xmm -// VPMULHW m128 xmm k xmm -// VPMULHW m256 ymm k ymm -// VPMULHW xmm xmm k xmm -// VPMULHW ymm ymm k ymm -// VPMULHW m512 zmm k zmm -// VPMULHW m512 zmm zmm -// VPMULHW zmm zmm k zmm -// VPMULHW zmm zmm zmm -// -// Construct and append a VPMULHW instruction to the active function. -func (c *Context) VPMULHW(ops ...operand.Op) { - c.addinstruction(x86.VPMULHW(ops...)) -} - -// VPMULHW: Multiply Packed Signed Word Integers and Store High Result. -// -// Forms: -// -// VPMULHW m256 ymm ymm -// VPMULHW ymm ymm ymm -// VPMULHW m128 xmm xmm -// VPMULHW xmm xmm xmm -// VPMULHW m128 xmm k xmm -// VPMULHW m256 ymm k ymm -// VPMULHW xmm xmm k xmm -// VPMULHW ymm ymm k ymm -// VPMULHW m512 zmm k zmm -// VPMULHW m512 zmm zmm -// VPMULHW zmm zmm k zmm -// VPMULHW zmm zmm zmm -// -// Construct and append a VPMULHW instruction to the active function. -// Operates on the global context. -func VPMULHW(ops ...operand.Op) { ctx.VPMULHW(ops...) } - -// VPMULHW_Z: Multiply Packed Signed Word Integers and Store High Result (Zeroing Masking). -// -// Forms: -// -// VPMULHW.Z m128 xmm k xmm -// VPMULHW.Z m256 ymm k ymm -// VPMULHW.Z xmm xmm k xmm -// VPMULHW.Z ymm ymm k ymm -// VPMULHW.Z m512 zmm k zmm -// VPMULHW.Z zmm zmm k zmm -// -// Construct and append a VPMULHW.Z instruction to the active function. -func (c *Context) VPMULHW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULHW_Z(mxyz, xyz, k, xyz1)) -} - -// VPMULHW_Z: Multiply Packed Signed Word Integers and Store High Result (Zeroing Masking). -// -// Forms: -// -// VPMULHW.Z m128 xmm k xmm -// VPMULHW.Z m256 ymm k ymm -// VPMULHW.Z xmm xmm k xmm -// VPMULHW.Z ymm ymm k ymm -// VPMULHW.Z m512 zmm k zmm -// VPMULHW.Z zmm zmm k zmm -// -// Construct and append a VPMULHW.Z instruction to the active function. -// Operates on the global context. -func VPMULHW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMULHW_Z(mxyz, xyz, k, xyz1) } - -// VPMULLD: Multiply Packed Signed Doubleword Integers and Store Low Result. -// -// Forms: -// -// VPMULLD m256 ymm ymm -// VPMULLD ymm ymm ymm -// VPMULLD m128 xmm xmm -// VPMULLD xmm xmm xmm -// VPMULLD m128 xmm k xmm -// VPMULLD m256 ymm k ymm -// VPMULLD xmm xmm k xmm -// VPMULLD ymm ymm k ymm -// VPMULLD m512 zmm k zmm -// VPMULLD m512 zmm zmm -// VPMULLD zmm zmm k zmm -// VPMULLD zmm zmm zmm -// -// Construct and append a VPMULLD instruction to the active function. -func (c *Context) VPMULLD(ops ...operand.Op) { - c.addinstruction(x86.VPMULLD(ops...)) -} - -// VPMULLD: Multiply Packed Signed Doubleword Integers and Store Low Result. -// -// Forms: -// -// VPMULLD m256 ymm ymm -// VPMULLD ymm ymm ymm -// VPMULLD m128 xmm xmm -// VPMULLD xmm xmm xmm -// VPMULLD m128 xmm k xmm -// VPMULLD m256 ymm k ymm -// VPMULLD xmm xmm k xmm -// VPMULLD ymm ymm k ymm -// VPMULLD m512 zmm k zmm -// VPMULLD m512 zmm zmm -// VPMULLD zmm zmm k zmm -// VPMULLD zmm zmm zmm -// -// Construct and append a VPMULLD instruction to the active function. -// Operates on the global context. -func VPMULLD(ops ...operand.Op) { ctx.VPMULLD(ops...) } - -// VPMULLD_BCST: Multiply Packed Signed Doubleword Integers and Store Low Result (Broadcast). -// -// Forms: -// -// VPMULLD.BCST m32 xmm k xmm -// VPMULLD.BCST m32 xmm xmm -// VPMULLD.BCST m32 ymm k ymm -// VPMULLD.BCST m32 ymm ymm -// VPMULLD.BCST m32 zmm k zmm -// VPMULLD.BCST m32 zmm zmm -// -// Construct and append a VPMULLD.BCST instruction to the active function. -func (c *Context) VPMULLD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMULLD_BCST(ops...)) -} - -// VPMULLD_BCST: Multiply Packed Signed Doubleword Integers and Store Low Result (Broadcast). -// -// Forms: -// -// VPMULLD.BCST m32 xmm k xmm -// VPMULLD.BCST m32 xmm xmm -// VPMULLD.BCST m32 ymm k ymm -// VPMULLD.BCST m32 ymm ymm -// VPMULLD.BCST m32 zmm k zmm -// VPMULLD.BCST m32 zmm zmm -// -// Construct and append a VPMULLD.BCST instruction to the active function. -// Operates on the global context. -func VPMULLD_BCST(ops ...operand.Op) { ctx.VPMULLD_BCST(ops...) } - -// VPMULLD_BCST_Z: Multiply Packed Signed Doubleword Integers and Store Low Result (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULLD.BCST.Z m32 xmm k xmm -// VPMULLD.BCST.Z m32 ymm k ymm -// VPMULLD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMULLD.BCST.Z instruction to the active function. -func (c *Context) VPMULLD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULLD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMULLD_BCST_Z: Multiply Packed Signed Doubleword Integers and Store Low Result (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULLD.BCST.Z m32 xmm k xmm -// VPMULLD.BCST.Z m32 ymm k ymm -// VPMULLD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPMULLD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMULLD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMULLD_BCST_Z(m, xyz, k, xyz1) } - -// VPMULLD_Z: Multiply Packed Signed Doubleword Integers and Store Low Result (Zeroing Masking). -// -// Forms: -// -// VPMULLD.Z m128 xmm k xmm -// VPMULLD.Z m256 ymm k ymm -// VPMULLD.Z xmm xmm k xmm -// VPMULLD.Z ymm ymm k ymm -// VPMULLD.Z m512 zmm k zmm -// VPMULLD.Z zmm zmm k zmm -// -// Construct and append a VPMULLD.Z instruction to the active function. -func (c *Context) VPMULLD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULLD_Z(mxyz, xyz, k, xyz1)) -} - -// VPMULLD_Z: Multiply Packed Signed Doubleword Integers and Store Low Result (Zeroing Masking). -// -// Forms: -// -// VPMULLD.Z m128 xmm k xmm -// VPMULLD.Z m256 ymm k ymm -// VPMULLD.Z xmm xmm k xmm -// VPMULLD.Z ymm ymm k ymm -// VPMULLD.Z m512 zmm k zmm -// VPMULLD.Z zmm zmm k zmm -// -// Construct and append a VPMULLD.Z instruction to the active function. -// Operates on the global context. -func VPMULLD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMULLD_Z(mxyz, xyz, k, xyz1) } - -// VPMULLQ: Multiply Packed Signed Quadword Integers and Store Low Result. -// -// Forms: -// -// VPMULLQ m128 xmm k xmm -// VPMULLQ m128 xmm xmm -// VPMULLQ m256 ymm k ymm -// VPMULLQ m256 ymm ymm -// VPMULLQ xmm xmm k xmm -// VPMULLQ xmm xmm xmm -// VPMULLQ ymm ymm k ymm -// VPMULLQ ymm ymm ymm -// VPMULLQ m512 zmm k zmm -// VPMULLQ m512 zmm zmm -// VPMULLQ zmm zmm k zmm -// VPMULLQ zmm zmm zmm -// -// Construct and append a VPMULLQ instruction to the active function. -func (c *Context) VPMULLQ(ops ...operand.Op) { - c.addinstruction(x86.VPMULLQ(ops...)) -} - -// VPMULLQ: Multiply Packed Signed Quadword Integers and Store Low Result. -// -// Forms: -// -// VPMULLQ m128 xmm k xmm -// VPMULLQ m128 xmm xmm -// VPMULLQ m256 ymm k ymm -// VPMULLQ m256 ymm ymm -// VPMULLQ xmm xmm k xmm -// VPMULLQ xmm xmm xmm -// VPMULLQ ymm ymm k ymm -// VPMULLQ ymm ymm ymm -// VPMULLQ m512 zmm k zmm -// VPMULLQ m512 zmm zmm -// VPMULLQ zmm zmm k zmm -// VPMULLQ zmm zmm zmm -// -// Construct and append a VPMULLQ instruction to the active function. -// Operates on the global context. -func VPMULLQ(ops ...operand.Op) { ctx.VPMULLQ(ops...) } - -// VPMULLQ_BCST: Multiply Packed Signed Quadword Integers and Store Low Result (Broadcast). -// -// Forms: -// -// VPMULLQ.BCST m64 xmm k xmm -// VPMULLQ.BCST m64 xmm xmm -// VPMULLQ.BCST m64 ymm k ymm -// VPMULLQ.BCST m64 ymm ymm -// VPMULLQ.BCST m64 zmm k zmm -// VPMULLQ.BCST m64 zmm zmm -// -// Construct and append a VPMULLQ.BCST instruction to the active function. -func (c *Context) VPMULLQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMULLQ_BCST(ops...)) -} - -// VPMULLQ_BCST: Multiply Packed Signed Quadword Integers and Store Low Result (Broadcast). -// -// Forms: -// -// VPMULLQ.BCST m64 xmm k xmm -// VPMULLQ.BCST m64 xmm xmm -// VPMULLQ.BCST m64 ymm k ymm -// VPMULLQ.BCST m64 ymm ymm -// VPMULLQ.BCST m64 zmm k zmm -// VPMULLQ.BCST m64 zmm zmm -// -// Construct and append a VPMULLQ.BCST instruction to the active function. -// Operates on the global context. -func VPMULLQ_BCST(ops ...operand.Op) { ctx.VPMULLQ_BCST(ops...) } - -// VPMULLQ_BCST_Z: Multiply Packed Signed Quadword Integers and Store Low Result (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULLQ.BCST.Z m64 xmm k xmm -// VPMULLQ.BCST.Z m64 ymm k ymm -// VPMULLQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMULLQ.BCST.Z instruction to the active function. -func (c *Context) VPMULLQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULLQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMULLQ_BCST_Z: Multiply Packed Signed Quadword Integers and Store Low Result (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULLQ.BCST.Z m64 xmm k xmm -// VPMULLQ.BCST.Z m64 ymm k ymm -// VPMULLQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMULLQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMULLQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMULLQ_BCST_Z(m, xyz, k, xyz1) } - -// VPMULLQ_Z: Multiply Packed Signed Quadword Integers and Store Low Result (Zeroing Masking). -// -// Forms: -// -// VPMULLQ.Z m128 xmm k xmm -// VPMULLQ.Z m256 ymm k ymm -// VPMULLQ.Z xmm xmm k xmm -// VPMULLQ.Z ymm ymm k ymm -// VPMULLQ.Z m512 zmm k zmm -// VPMULLQ.Z zmm zmm k zmm -// -// Construct and append a VPMULLQ.Z instruction to the active function. -func (c *Context) VPMULLQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULLQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPMULLQ_Z: Multiply Packed Signed Quadword Integers and Store Low Result (Zeroing Masking). -// -// Forms: -// -// VPMULLQ.Z m128 xmm k xmm -// VPMULLQ.Z m256 ymm k ymm -// VPMULLQ.Z xmm xmm k xmm -// VPMULLQ.Z ymm ymm k ymm -// VPMULLQ.Z m512 zmm k zmm -// VPMULLQ.Z zmm zmm k zmm -// -// Construct and append a VPMULLQ.Z instruction to the active function. -// Operates on the global context. -func VPMULLQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMULLQ_Z(mxyz, xyz, k, xyz1) } - -// VPMULLW: Multiply Packed Signed Word Integers and Store Low Result. -// -// Forms: -// -// VPMULLW m256 ymm ymm -// VPMULLW ymm ymm ymm -// VPMULLW m128 xmm xmm -// VPMULLW xmm xmm xmm -// VPMULLW m128 xmm k xmm -// VPMULLW m256 ymm k ymm -// VPMULLW xmm xmm k xmm -// VPMULLW ymm ymm k ymm -// VPMULLW m512 zmm k zmm -// VPMULLW m512 zmm zmm -// VPMULLW zmm zmm k zmm -// VPMULLW zmm zmm zmm -// -// Construct and append a VPMULLW instruction to the active function. -func (c *Context) VPMULLW(ops ...operand.Op) { - c.addinstruction(x86.VPMULLW(ops...)) -} - -// VPMULLW: Multiply Packed Signed Word Integers and Store Low Result. -// -// Forms: -// -// VPMULLW m256 ymm ymm -// VPMULLW ymm ymm ymm -// VPMULLW m128 xmm xmm -// VPMULLW xmm xmm xmm -// VPMULLW m128 xmm k xmm -// VPMULLW m256 ymm k ymm -// VPMULLW xmm xmm k xmm -// VPMULLW ymm ymm k ymm -// VPMULLW m512 zmm k zmm -// VPMULLW m512 zmm zmm -// VPMULLW zmm zmm k zmm -// VPMULLW zmm zmm zmm -// -// Construct and append a VPMULLW instruction to the active function. -// Operates on the global context. -func VPMULLW(ops ...operand.Op) { ctx.VPMULLW(ops...) } - -// VPMULLW_Z: Multiply Packed Signed Word Integers and Store Low Result (Zeroing Masking). -// -// Forms: -// -// VPMULLW.Z m128 xmm k xmm -// VPMULLW.Z m256 ymm k ymm -// VPMULLW.Z xmm xmm k xmm -// VPMULLW.Z ymm ymm k ymm -// VPMULLW.Z m512 zmm k zmm -// VPMULLW.Z zmm zmm k zmm -// -// Construct and append a VPMULLW.Z instruction to the active function. -func (c *Context) VPMULLW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULLW_Z(mxyz, xyz, k, xyz1)) -} - -// VPMULLW_Z: Multiply Packed Signed Word Integers and Store Low Result (Zeroing Masking). -// -// Forms: -// -// VPMULLW.Z m128 xmm k xmm -// VPMULLW.Z m256 ymm k ymm -// VPMULLW.Z xmm xmm k xmm -// VPMULLW.Z ymm ymm k ymm -// VPMULLW.Z m512 zmm k zmm -// VPMULLW.Z zmm zmm k zmm -// -// Construct and append a VPMULLW.Z instruction to the active function. -// Operates on the global context. -func VPMULLW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMULLW_Z(mxyz, xyz, k, xyz1) } - -// VPMULTISHIFTQB: Select Packed Unaligned Bytes from Quadword Sources. -// -// Forms: -// -// VPMULTISHIFTQB m128 xmm k xmm -// VPMULTISHIFTQB m128 xmm xmm -// VPMULTISHIFTQB m256 ymm k ymm -// VPMULTISHIFTQB m256 ymm ymm -// VPMULTISHIFTQB xmm xmm k xmm -// VPMULTISHIFTQB xmm xmm xmm -// VPMULTISHIFTQB ymm ymm k ymm -// VPMULTISHIFTQB ymm ymm ymm -// VPMULTISHIFTQB m512 zmm k zmm -// VPMULTISHIFTQB m512 zmm zmm -// VPMULTISHIFTQB zmm zmm k zmm -// VPMULTISHIFTQB zmm zmm zmm -// -// Construct and append a VPMULTISHIFTQB instruction to the active function. -func (c *Context) VPMULTISHIFTQB(ops ...operand.Op) { - c.addinstruction(x86.VPMULTISHIFTQB(ops...)) -} - -// VPMULTISHIFTQB: Select Packed Unaligned Bytes from Quadword Sources. -// -// Forms: -// -// VPMULTISHIFTQB m128 xmm k xmm -// VPMULTISHIFTQB m128 xmm xmm -// VPMULTISHIFTQB m256 ymm k ymm -// VPMULTISHIFTQB m256 ymm ymm -// VPMULTISHIFTQB xmm xmm k xmm -// VPMULTISHIFTQB xmm xmm xmm -// VPMULTISHIFTQB ymm ymm k ymm -// VPMULTISHIFTQB ymm ymm ymm -// VPMULTISHIFTQB m512 zmm k zmm -// VPMULTISHIFTQB m512 zmm zmm -// VPMULTISHIFTQB zmm zmm k zmm -// VPMULTISHIFTQB zmm zmm zmm -// -// Construct and append a VPMULTISHIFTQB instruction to the active function. -// Operates on the global context. -func VPMULTISHIFTQB(ops ...operand.Op) { ctx.VPMULTISHIFTQB(ops...) } - -// VPMULTISHIFTQB_BCST: Select Packed Unaligned Bytes from Quadword Sources (Broadcast). -// -// Forms: -// -// VPMULTISHIFTQB.BCST m64 xmm k xmm -// VPMULTISHIFTQB.BCST m64 xmm xmm -// VPMULTISHIFTQB.BCST m64 ymm k ymm -// VPMULTISHIFTQB.BCST m64 ymm ymm -// VPMULTISHIFTQB.BCST m64 zmm k zmm -// VPMULTISHIFTQB.BCST m64 zmm zmm -// -// Construct and append a VPMULTISHIFTQB.BCST instruction to the active function. -func (c *Context) VPMULTISHIFTQB_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMULTISHIFTQB_BCST(ops...)) -} - -// VPMULTISHIFTQB_BCST: Select Packed Unaligned Bytes from Quadword Sources (Broadcast). -// -// Forms: -// -// VPMULTISHIFTQB.BCST m64 xmm k xmm -// VPMULTISHIFTQB.BCST m64 xmm xmm -// VPMULTISHIFTQB.BCST m64 ymm k ymm -// VPMULTISHIFTQB.BCST m64 ymm ymm -// VPMULTISHIFTQB.BCST m64 zmm k zmm -// VPMULTISHIFTQB.BCST m64 zmm zmm -// -// Construct and append a VPMULTISHIFTQB.BCST instruction to the active function. -// Operates on the global context. -func VPMULTISHIFTQB_BCST(ops ...operand.Op) { ctx.VPMULTISHIFTQB_BCST(ops...) } - -// VPMULTISHIFTQB_BCST_Z: Select Packed Unaligned Bytes from Quadword Sources (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULTISHIFTQB.BCST.Z m64 xmm k xmm -// VPMULTISHIFTQB.BCST.Z m64 ymm k ymm -// VPMULTISHIFTQB.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMULTISHIFTQB.BCST.Z instruction to the active function. -func (c *Context) VPMULTISHIFTQB_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULTISHIFTQB_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMULTISHIFTQB_BCST_Z: Select Packed Unaligned Bytes from Quadword Sources (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULTISHIFTQB.BCST.Z m64 xmm k xmm -// VPMULTISHIFTQB.BCST.Z m64 ymm k ymm -// VPMULTISHIFTQB.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMULTISHIFTQB.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMULTISHIFTQB_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMULTISHIFTQB_BCST_Z(m, xyz, k, xyz1) } - -// VPMULTISHIFTQB_Z: Select Packed Unaligned Bytes from Quadword Sources (Zeroing Masking). -// -// Forms: -// -// VPMULTISHIFTQB.Z m128 xmm k xmm -// VPMULTISHIFTQB.Z m256 ymm k ymm -// VPMULTISHIFTQB.Z xmm xmm k xmm -// VPMULTISHIFTQB.Z ymm ymm k ymm -// VPMULTISHIFTQB.Z m512 zmm k zmm -// VPMULTISHIFTQB.Z zmm zmm k zmm -// -// Construct and append a VPMULTISHIFTQB.Z instruction to the active function. -func (c *Context) VPMULTISHIFTQB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULTISHIFTQB_Z(mxyz, xyz, k, xyz1)) -} - -// VPMULTISHIFTQB_Z: Select Packed Unaligned Bytes from Quadword Sources (Zeroing Masking). -// -// Forms: -// -// VPMULTISHIFTQB.Z m128 xmm k xmm -// VPMULTISHIFTQB.Z m256 ymm k ymm -// VPMULTISHIFTQB.Z xmm xmm k xmm -// VPMULTISHIFTQB.Z ymm ymm k ymm -// VPMULTISHIFTQB.Z m512 zmm k zmm -// VPMULTISHIFTQB.Z zmm zmm k zmm -// -// Construct and append a VPMULTISHIFTQB.Z instruction to the active function. -// Operates on the global context. -func VPMULTISHIFTQB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMULTISHIFTQB_Z(mxyz, xyz, k, xyz1) } - -// VPMULUDQ: Multiply Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VPMULUDQ m256 ymm ymm -// VPMULUDQ ymm ymm ymm -// VPMULUDQ m128 xmm xmm -// VPMULUDQ xmm xmm xmm -// VPMULUDQ m128 xmm k xmm -// VPMULUDQ m256 ymm k ymm -// VPMULUDQ xmm xmm k xmm -// VPMULUDQ ymm ymm k ymm -// VPMULUDQ m512 zmm k zmm -// VPMULUDQ m512 zmm zmm -// VPMULUDQ zmm zmm k zmm -// VPMULUDQ zmm zmm zmm -// -// Construct and append a VPMULUDQ instruction to the active function. -func (c *Context) VPMULUDQ(ops ...operand.Op) { - c.addinstruction(x86.VPMULUDQ(ops...)) -} - -// VPMULUDQ: Multiply Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VPMULUDQ m256 ymm ymm -// VPMULUDQ ymm ymm ymm -// VPMULUDQ m128 xmm xmm -// VPMULUDQ xmm xmm xmm -// VPMULUDQ m128 xmm k xmm -// VPMULUDQ m256 ymm k ymm -// VPMULUDQ xmm xmm k xmm -// VPMULUDQ ymm ymm k ymm -// VPMULUDQ m512 zmm k zmm -// VPMULUDQ m512 zmm zmm -// VPMULUDQ zmm zmm k zmm -// VPMULUDQ zmm zmm zmm -// -// Construct and append a VPMULUDQ instruction to the active function. -// Operates on the global context. -func VPMULUDQ(ops ...operand.Op) { ctx.VPMULUDQ(ops...) } - -// VPMULUDQ_BCST: Multiply Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMULUDQ.BCST m64 xmm k xmm -// VPMULUDQ.BCST m64 xmm xmm -// VPMULUDQ.BCST m64 ymm k ymm -// VPMULUDQ.BCST m64 ymm ymm -// VPMULUDQ.BCST m64 zmm k zmm -// VPMULUDQ.BCST m64 zmm zmm -// -// Construct and append a VPMULUDQ.BCST instruction to the active function. -func (c *Context) VPMULUDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPMULUDQ_BCST(ops...)) -} - -// VPMULUDQ_BCST: Multiply Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMULUDQ.BCST m64 xmm k xmm -// VPMULUDQ.BCST m64 xmm xmm -// VPMULUDQ.BCST m64 ymm k ymm -// VPMULUDQ.BCST m64 ymm ymm -// VPMULUDQ.BCST m64 zmm k zmm -// VPMULUDQ.BCST m64 zmm zmm -// -// Construct and append a VPMULUDQ.BCST instruction to the active function. -// Operates on the global context. -func VPMULUDQ_BCST(ops ...operand.Op) { ctx.VPMULUDQ_BCST(ops...) } - -// VPMULUDQ_BCST_Z: Multiply Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULUDQ.BCST.Z m64 xmm k xmm -// VPMULUDQ.BCST.Z m64 ymm k ymm -// VPMULUDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMULUDQ.BCST.Z instruction to the active function. -func (c *Context) VPMULUDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULUDQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPMULUDQ_BCST_Z: Multiply Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULUDQ.BCST.Z m64 xmm k xmm -// VPMULUDQ.BCST.Z m64 ymm k ymm -// VPMULUDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPMULUDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPMULUDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPMULUDQ_BCST_Z(m, xyz, k, xyz1) } - -// VPMULUDQ_Z: Multiply Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMULUDQ.Z m128 xmm k xmm -// VPMULUDQ.Z m256 ymm k ymm -// VPMULUDQ.Z xmm xmm k xmm -// VPMULUDQ.Z ymm ymm k ymm -// VPMULUDQ.Z m512 zmm k zmm -// VPMULUDQ.Z zmm zmm k zmm -// -// Construct and append a VPMULUDQ.Z instruction to the active function. -func (c *Context) VPMULUDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPMULUDQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPMULUDQ_Z: Multiply Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMULUDQ.Z m128 xmm k xmm -// VPMULUDQ.Z m256 ymm k ymm -// VPMULUDQ.Z xmm xmm k xmm -// VPMULUDQ.Z ymm ymm k ymm -// VPMULUDQ.Z m512 zmm k zmm -// VPMULUDQ.Z zmm zmm k zmm -// -// Construct and append a VPMULUDQ.Z instruction to the active function. -// Operates on the global context. -func VPMULUDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPMULUDQ_Z(mxyz, xyz, k, xyz1) } - -// VPOPCNTB: Packed Population Count for Byte Integers. -// -// Forms: -// -// VPOPCNTB m128 k xmm -// VPOPCNTB m128 xmm -// VPOPCNTB m256 k ymm -// VPOPCNTB m256 ymm -// VPOPCNTB xmm k xmm -// VPOPCNTB xmm xmm -// VPOPCNTB ymm k ymm -// VPOPCNTB ymm ymm -// VPOPCNTB m512 k zmm -// VPOPCNTB m512 zmm -// VPOPCNTB zmm k zmm -// VPOPCNTB zmm zmm -// -// Construct and append a VPOPCNTB instruction to the active function. -func (c *Context) VPOPCNTB(ops ...operand.Op) { - c.addinstruction(x86.VPOPCNTB(ops...)) -} - -// VPOPCNTB: Packed Population Count for Byte Integers. -// -// Forms: -// -// VPOPCNTB m128 k xmm -// VPOPCNTB m128 xmm -// VPOPCNTB m256 k ymm -// VPOPCNTB m256 ymm -// VPOPCNTB xmm k xmm -// VPOPCNTB xmm xmm -// VPOPCNTB ymm k ymm -// VPOPCNTB ymm ymm -// VPOPCNTB m512 k zmm -// VPOPCNTB m512 zmm -// VPOPCNTB zmm k zmm -// VPOPCNTB zmm zmm -// -// Construct and append a VPOPCNTB instruction to the active function. -// Operates on the global context. -func VPOPCNTB(ops ...operand.Op) { ctx.VPOPCNTB(ops...) } - -// VPOPCNTB_Z: Packed Population Count for Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTB.Z m128 k xmm -// VPOPCNTB.Z m256 k ymm -// VPOPCNTB.Z xmm k xmm -// VPOPCNTB.Z ymm k ymm -// VPOPCNTB.Z m512 k zmm -// VPOPCNTB.Z zmm k zmm -// -// Construct and append a VPOPCNTB.Z instruction to the active function. -func (c *Context) VPOPCNTB_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPOPCNTB_Z(mxyz, k, xyz)) -} - -// VPOPCNTB_Z: Packed Population Count for Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTB.Z m128 k xmm -// VPOPCNTB.Z m256 k ymm -// VPOPCNTB.Z xmm k xmm -// VPOPCNTB.Z ymm k ymm -// VPOPCNTB.Z m512 k zmm -// VPOPCNTB.Z zmm k zmm -// -// Construct and append a VPOPCNTB.Z instruction to the active function. -// Operates on the global context. -func VPOPCNTB_Z(mxyz, k, xyz operand.Op) { ctx.VPOPCNTB_Z(mxyz, k, xyz) } - -// VPOPCNTD: Packed Population Count for Doubleword Integers. -// -// Forms: -// -// VPOPCNTD m128 k xmm -// VPOPCNTD m128 xmm -// VPOPCNTD m256 k ymm -// VPOPCNTD m256 ymm -// VPOPCNTD xmm k xmm -// VPOPCNTD xmm xmm -// VPOPCNTD ymm k ymm -// VPOPCNTD ymm ymm -// VPOPCNTD m512 k zmm -// VPOPCNTD m512 zmm -// VPOPCNTD zmm k zmm -// VPOPCNTD zmm zmm -// -// Construct and append a VPOPCNTD instruction to the active function. -func (c *Context) VPOPCNTD(ops ...operand.Op) { - c.addinstruction(x86.VPOPCNTD(ops...)) -} - -// VPOPCNTD: Packed Population Count for Doubleword Integers. -// -// Forms: -// -// VPOPCNTD m128 k xmm -// VPOPCNTD m128 xmm -// VPOPCNTD m256 k ymm -// VPOPCNTD m256 ymm -// VPOPCNTD xmm k xmm -// VPOPCNTD xmm xmm -// VPOPCNTD ymm k ymm -// VPOPCNTD ymm ymm -// VPOPCNTD m512 k zmm -// VPOPCNTD m512 zmm -// VPOPCNTD zmm k zmm -// VPOPCNTD zmm zmm -// -// Construct and append a VPOPCNTD instruction to the active function. -// Operates on the global context. -func VPOPCNTD(ops ...operand.Op) { ctx.VPOPCNTD(ops...) } - -// VPOPCNTD_BCST: Packed Population Count for Doubleword Integers (Broadcast). -// -// Forms: -// -// VPOPCNTD.BCST m32 k xmm -// VPOPCNTD.BCST m32 k ymm -// VPOPCNTD.BCST m32 xmm -// VPOPCNTD.BCST m32 ymm -// VPOPCNTD.BCST m32 k zmm -// VPOPCNTD.BCST m32 zmm -// -// Construct and append a VPOPCNTD.BCST instruction to the active function. -func (c *Context) VPOPCNTD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPOPCNTD_BCST(ops...)) -} - -// VPOPCNTD_BCST: Packed Population Count for Doubleword Integers (Broadcast). -// -// Forms: -// -// VPOPCNTD.BCST m32 k xmm -// VPOPCNTD.BCST m32 k ymm -// VPOPCNTD.BCST m32 xmm -// VPOPCNTD.BCST m32 ymm -// VPOPCNTD.BCST m32 k zmm -// VPOPCNTD.BCST m32 zmm -// -// Construct and append a VPOPCNTD.BCST instruction to the active function. -// Operates on the global context. -func VPOPCNTD_BCST(ops ...operand.Op) { ctx.VPOPCNTD_BCST(ops...) } - -// VPOPCNTD_BCST_Z: Packed Population Count for Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPOPCNTD.BCST.Z m32 k xmm -// VPOPCNTD.BCST.Z m32 k ymm -// VPOPCNTD.BCST.Z m32 k zmm -// -// Construct and append a VPOPCNTD.BCST.Z instruction to the active function. -func (c *Context) VPOPCNTD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VPOPCNTD_BCST_Z(m, k, xyz)) -} - -// VPOPCNTD_BCST_Z: Packed Population Count for Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPOPCNTD.BCST.Z m32 k xmm -// VPOPCNTD.BCST.Z m32 k ymm -// VPOPCNTD.BCST.Z m32 k zmm -// -// Construct and append a VPOPCNTD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPOPCNTD_BCST_Z(m, k, xyz operand.Op) { ctx.VPOPCNTD_BCST_Z(m, k, xyz) } - -// VPOPCNTD_Z: Packed Population Count for Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTD.Z m128 k xmm -// VPOPCNTD.Z m256 k ymm -// VPOPCNTD.Z xmm k xmm -// VPOPCNTD.Z ymm k ymm -// VPOPCNTD.Z m512 k zmm -// VPOPCNTD.Z zmm k zmm -// -// Construct and append a VPOPCNTD.Z instruction to the active function. -func (c *Context) VPOPCNTD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPOPCNTD_Z(mxyz, k, xyz)) -} - -// VPOPCNTD_Z: Packed Population Count for Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTD.Z m128 k xmm -// VPOPCNTD.Z m256 k ymm -// VPOPCNTD.Z xmm k xmm -// VPOPCNTD.Z ymm k ymm -// VPOPCNTD.Z m512 k zmm -// VPOPCNTD.Z zmm k zmm -// -// Construct and append a VPOPCNTD.Z instruction to the active function. -// Operates on the global context. -func VPOPCNTD_Z(mxyz, k, xyz operand.Op) { ctx.VPOPCNTD_Z(mxyz, k, xyz) } - -// VPOPCNTQ: Packed Population Count for Quadword Integers. -// -// Forms: -// -// VPOPCNTQ m128 k xmm -// VPOPCNTQ m128 xmm -// VPOPCNTQ m256 k ymm -// VPOPCNTQ m256 ymm -// VPOPCNTQ xmm k xmm -// VPOPCNTQ xmm xmm -// VPOPCNTQ ymm k ymm -// VPOPCNTQ ymm ymm -// VPOPCNTQ m512 k zmm -// VPOPCNTQ m512 zmm -// VPOPCNTQ zmm k zmm -// VPOPCNTQ zmm zmm -// -// Construct and append a VPOPCNTQ instruction to the active function. -func (c *Context) VPOPCNTQ(ops ...operand.Op) { - c.addinstruction(x86.VPOPCNTQ(ops...)) -} - -// VPOPCNTQ: Packed Population Count for Quadword Integers. -// -// Forms: -// -// VPOPCNTQ m128 k xmm -// VPOPCNTQ m128 xmm -// VPOPCNTQ m256 k ymm -// VPOPCNTQ m256 ymm -// VPOPCNTQ xmm k xmm -// VPOPCNTQ xmm xmm -// VPOPCNTQ ymm k ymm -// VPOPCNTQ ymm ymm -// VPOPCNTQ m512 k zmm -// VPOPCNTQ m512 zmm -// VPOPCNTQ zmm k zmm -// VPOPCNTQ zmm zmm -// -// Construct and append a VPOPCNTQ instruction to the active function. -// Operates on the global context. -func VPOPCNTQ(ops ...operand.Op) { ctx.VPOPCNTQ(ops...) } - -// VPOPCNTQ_BCST: Packed Population Count for Quadword Integers (Broadcast). -// -// Forms: -// -// VPOPCNTQ.BCST m64 k xmm -// VPOPCNTQ.BCST m64 k ymm -// VPOPCNTQ.BCST m64 xmm -// VPOPCNTQ.BCST m64 ymm -// VPOPCNTQ.BCST m64 k zmm -// VPOPCNTQ.BCST m64 zmm -// -// Construct and append a VPOPCNTQ.BCST instruction to the active function. -func (c *Context) VPOPCNTQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPOPCNTQ_BCST(ops...)) -} - -// VPOPCNTQ_BCST: Packed Population Count for Quadword Integers (Broadcast). -// -// Forms: -// -// VPOPCNTQ.BCST m64 k xmm -// VPOPCNTQ.BCST m64 k ymm -// VPOPCNTQ.BCST m64 xmm -// VPOPCNTQ.BCST m64 ymm -// VPOPCNTQ.BCST m64 k zmm -// VPOPCNTQ.BCST m64 zmm -// -// Construct and append a VPOPCNTQ.BCST instruction to the active function. -// Operates on the global context. -func VPOPCNTQ_BCST(ops ...operand.Op) { ctx.VPOPCNTQ_BCST(ops...) } - -// VPOPCNTQ_BCST_Z: Packed Population Count for Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPOPCNTQ.BCST.Z m64 k xmm -// VPOPCNTQ.BCST.Z m64 k ymm -// VPOPCNTQ.BCST.Z m64 k zmm -// -// Construct and append a VPOPCNTQ.BCST.Z instruction to the active function. -func (c *Context) VPOPCNTQ_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VPOPCNTQ_BCST_Z(m, k, xyz)) -} - -// VPOPCNTQ_BCST_Z: Packed Population Count for Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPOPCNTQ.BCST.Z m64 k xmm -// VPOPCNTQ.BCST.Z m64 k ymm -// VPOPCNTQ.BCST.Z m64 k zmm -// -// Construct and append a VPOPCNTQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPOPCNTQ_BCST_Z(m, k, xyz operand.Op) { ctx.VPOPCNTQ_BCST_Z(m, k, xyz) } - -// VPOPCNTQ_Z: Packed Population Count for Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTQ.Z m128 k xmm -// VPOPCNTQ.Z m256 k ymm -// VPOPCNTQ.Z xmm k xmm -// VPOPCNTQ.Z ymm k ymm -// VPOPCNTQ.Z m512 k zmm -// VPOPCNTQ.Z zmm k zmm -// -// Construct and append a VPOPCNTQ.Z instruction to the active function. -func (c *Context) VPOPCNTQ_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPOPCNTQ_Z(mxyz, k, xyz)) -} - -// VPOPCNTQ_Z: Packed Population Count for Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTQ.Z m128 k xmm -// VPOPCNTQ.Z m256 k ymm -// VPOPCNTQ.Z xmm k xmm -// VPOPCNTQ.Z ymm k ymm -// VPOPCNTQ.Z m512 k zmm -// VPOPCNTQ.Z zmm k zmm -// -// Construct and append a VPOPCNTQ.Z instruction to the active function. -// Operates on the global context. -func VPOPCNTQ_Z(mxyz, k, xyz operand.Op) { ctx.VPOPCNTQ_Z(mxyz, k, xyz) } - -// VPOPCNTW: Packed Population Count for Word Integers. -// -// Forms: -// -// VPOPCNTW m128 k xmm -// VPOPCNTW m128 xmm -// VPOPCNTW m256 k ymm -// VPOPCNTW m256 ymm -// VPOPCNTW xmm k xmm -// VPOPCNTW xmm xmm -// VPOPCNTW ymm k ymm -// VPOPCNTW ymm ymm -// VPOPCNTW m512 k zmm -// VPOPCNTW m512 zmm -// VPOPCNTW zmm k zmm -// VPOPCNTW zmm zmm -// -// Construct and append a VPOPCNTW instruction to the active function. -func (c *Context) VPOPCNTW(ops ...operand.Op) { - c.addinstruction(x86.VPOPCNTW(ops...)) -} - -// VPOPCNTW: Packed Population Count for Word Integers. -// -// Forms: -// -// VPOPCNTW m128 k xmm -// VPOPCNTW m128 xmm -// VPOPCNTW m256 k ymm -// VPOPCNTW m256 ymm -// VPOPCNTW xmm k xmm -// VPOPCNTW xmm xmm -// VPOPCNTW ymm k ymm -// VPOPCNTW ymm ymm -// VPOPCNTW m512 k zmm -// VPOPCNTW m512 zmm -// VPOPCNTW zmm k zmm -// VPOPCNTW zmm zmm -// -// Construct and append a VPOPCNTW instruction to the active function. -// Operates on the global context. -func VPOPCNTW(ops ...operand.Op) { ctx.VPOPCNTW(ops...) } - -// VPOPCNTW_Z: Packed Population Count for Word Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTW.Z m128 k xmm -// VPOPCNTW.Z m256 k ymm -// VPOPCNTW.Z xmm k xmm -// VPOPCNTW.Z ymm k ymm -// VPOPCNTW.Z m512 k zmm -// VPOPCNTW.Z zmm k zmm -// -// Construct and append a VPOPCNTW.Z instruction to the active function. -func (c *Context) VPOPCNTW_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPOPCNTW_Z(mxyz, k, xyz)) -} - -// VPOPCNTW_Z: Packed Population Count for Word Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTW.Z m128 k xmm -// VPOPCNTW.Z m256 k ymm -// VPOPCNTW.Z xmm k xmm -// VPOPCNTW.Z ymm k ymm -// VPOPCNTW.Z m512 k zmm -// VPOPCNTW.Z zmm k zmm -// -// Construct and append a VPOPCNTW.Z instruction to the active function. -// Operates on the global context. -func VPOPCNTW_Z(mxyz, k, xyz operand.Op) { ctx.VPOPCNTW_Z(mxyz, k, xyz) } - -// VPOR: Packed Bitwise Logical OR. -// -// Forms: -// -// VPOR m256 ymm ymm -// VPOR ymm ymm ymm -// VPOR m128 xmm xmm -// VPOR xmm xmm xmm -// -// Construct and append a VPOR instruction to the active function. -func (c *Context) VPOR(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPOR(mxy, xy, xy1)) -} - -// VPOR: Packed Bitwise Logical OR. -// -// Forms: -// -// VPOR m256 ymm ymm -// VPOR ymm ymm ymm -// VPOR m128 xmm xmm -// VPOR xmm xmm xmm -// -// Construct and append a VPOR instruction to the active function. -// Operates on the global context. -func VPOR(mxy, xy, xy1 operand.Op) { ctx.VPOR(mxy, xy, xy1) } - -// VPORD: Bitwise Logical OR of Packed Doubleword Integers. -// -// Forms: -// -// VPORD m128 xmm k xmm -// VPORD m128 xmm xmm -// VPORD m256 ymm k ymm -// VPORD m256 ymm ymm -// VPORD xmm xmm k xmm -// VPORD xmm xmm xmm -// VPORD ymm ymm k ymm -// VPORD ymm ymm ymm -// VPORD m512 zmm k zmm -// VPORD m512 zmm zmm -// VPORD zmm zmm k zmm -// VPORD zmm zmm zmm -// -// Construct and append a VPORD instruction to the active function. -func (c *Context) VPORD(ops ...operand.Op) { - c.addinstruction(x86.VPORD(ops...)) -} - -// VPORD: Bitwise Logical OR of Packed Doubleword Integers. -// -// Forms: -// -// VPORD m128 xmm k xmm -// VPORD m128 xmm xmm -// VPORD m256 ymm k ymm -// VPORD m256 ymm ymm -// VPORD xmm xmm k xmm -// VPORD xmm xmm xmm -// VPORD ymm ymm k ymm -// VPORD ymm ymm ymm -// VPORD m512 zmm k zmm -// VPORD m512 zmm zmm -// VPORD zmm zmm k zmm -// VPORD zmm zmm zmm -// -// Construct and append a VPORD instruction to the active function. -// Operates on the global context. -func VPORD(ops ...operand.Op) { ctx.VPORD(ops...) } - -// VPORD_BCST: Bitwise Logical OR of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPORD.BCST m32 xmm k xmm -// VPORD.BCST m32 xmm xmm -// VPORD.BCST m32 ymm k ymm -// VPORD.BCST m32 ymm ymm -// VPORD.BCST m32 zmm k zmm -// VPORD.BCST m32 zmm zmm -// -// Construct and append a VPORD.BCST instruction to the active function. -func (c *Context) VPORD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPORD_BCST(ops...)) -} - -// VPORD_BCST: Bitwise Logical OR of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPORD.BCST m32 xmm k xmm -// VPORD.BCST m32 xmm xmm -// VPORD.BCST m32 ymm k ymm -// VPORD.BCST m32 ymm ymm -// VPORD.BCST m32 zmm k zmm -// VPORD.BCST m32 zmm zmm -// -// Construct and append a VPORD.BCST instruction to the active function. -// Operates on the global context. -func VPORD_BCST(ops ...operand.Op) { ctx.VPORD_BCST(ops...) } - -// VPORD_BCST_Z: Bitwise Logical OR of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPORD.BCST.Z m32 xmm k xmm -// VPORD.BCST.Z m32 ymm k ymm -// VPORD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPORD.BCST.Z instruction to the active function. -func (c *Context) VPORD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPORD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPORD_BCST_Z: Bitwise Logical OR of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPORD.BCST.Z m32 xmm k xmm -// VPORD.BCST.Z m32 ymm k ymm -// VPORD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPORD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPORD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPORD_BCST_Z(m, xyz, k, xyz1) } - -// VPORD_Z: Bitwise Logical OR of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPORD.Z m128 xmm k xmm -// VPORD.Z m256 ymm k ymm -// VPORD.Z xmm xmm k xmm -// VPORD.Z ymm ymm k ymm -// VPORD.Z m512 zmm k zmm -// VPORD.Z zmm zmm k zmm -// -// Construct and append a VPORD.Z instruction to the active function. -func (c *Context) VPORD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPORD_Z(mxyz, xyz, k, xyz1)) -} - -// VPORD_Z: Bitwise Logical OR of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPORD.Z m128 xmm k xmm -// VPORD.Z m256 ymm k ymm -// VPORD.Z xmm xmm k xmm -// VPORD.Z ymm ymm k ymm -// VPORD.Z m512 zmm k zmm -// VPORD.Z zmm zmm k zmm -// -// Construct and append a VPORD.Z instruction to the active function. -// Operates on the global context. -func VPORD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPORD_Z(mxyz, xyz, k, xyz1) } - -// VPORQ: Bitwise Logical OR of Packed Quadword Integers. -// -// Forms: -// -// VPORQ m128 xmm k xmm -// VPORQ m128 xmm xmm -// VPORQ m256 ymm k ymm -// VPORQ m256 ymm ymm -// VPORQ xmm xmm k xmm -// VPORQ xmm xmm xmm -// VPORQ ymm ymm k ymm -// VPORQ ymm ymm ymm -// VPORQ m512 zmm k zmm -// VPORQ m512 zmm zmm -// VPORQ zmm zmm k zmm -// VPORQ zmm zmm zmm -// -// Construct and append a VPORQ instruction to the active function. -func (c *Context) VPORQ(ops ...operand.Op) { - c.addinstruction(x86.VPORQ(ops...)) -} - -// VPORQ: Bitwise Logical OR of Packed Quadword Integers. -// -// Forms: -// -// VPORQ m128 xmm k xmm -// VPORQ m128 xmm xmm -// VPORQ m256 ymm k ymm -// VPORQ m256 ymm ymm -// VPORQ xmm xmm k xmm -// VPORQ xmm xmm xmm -// VPORQ ymm ymm k ymm -// VPORQ ymm ymm ymm -// VPORQ m512 zmm k zmm -// VPORQ m512 zmm zmm -// VPORQ zmm zmm k zmm -// VPORQ zmm zmm zmm -// -// Construct and append a VPORQ instruction to the active function. -// Operates on the global context. -func VPORQ(ops ...operand.Op) { ctx.VPORQ(ops...) } - -// VPORQ_BCST: Bitwise Logical OR of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPORQ.BCST m64 xmm k xmm -// VPORQ.BCST m64 xmm xmm -// VPORQ.BCST m64 ymm k ymm -// VPORQ.BCST m64 ymm ymm -// VPORQ.BCST m64 zmm k zmm -// VPORQ.BCST m64 zmm zmm -// -// Construct and append a VPORQ.BCST instruction to the active function. -func (c *Context) VPORQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPORQ_BCST(ops...)) -} - -// VPORQ_BCST: Bitwise Logical OR of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPORQ.BCST m64 xmm k xmm -// VPORQ.BCST m64 xmm xmm -// VPORQ.BCST m64 ymm k ymm -// VPORQ.BCST m64 ymm ymm -// VPORQ.BCST m64 zmm k zmm -// VPORQ.BCST m64 zmm zmm -// -// Construct and append a VPORQ.BCST instruction to the active function. -// Operates on the global context. -func VPORQ_BCST(ops ...operand.Op) { ctx.VPORQ_BCST(ops...) } - -// VPORQ_BCST_Z: Bitwise Logical OR of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPORQ.BCST.Z m64 xmm k xmm -// VPORQ.BCST.Z m64 ymm k ymm -// VPORQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPORQ.BCST.Z instruction to the active function. -func (c *Context) VPORQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPORQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPORQ_BCST_Z: Bitwise Logical OR of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPORQ.BCST.Z m64 xmm k xmm -// VPORQ.BCST.Z m64 ymm k ymm -// VPORQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPORQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPORQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPORQ_BCST_Z(m, xyz, k, xyz1) } - -// VPORQ_Z: Bitwise Logical OR of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPORQ.Z m128 xmm k xmm -// VPORQ.Z m256 ymm k ymm -// VPORQ.Z xmm xmm k xmm -// VPORQ.Z ymm ymm k ymm -// VPORQ.Z m512 zmm k zmm -// VPORQ.Z zmm zmm k zmm -// -// Construct and append a VPORQ.Z instruction to the active function. -func (c *Context) VPORQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPORQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPORQ_Z: Bitwise Logical OR of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPORQ.Z m128 xmm k xmm -// VPORQ.Z m256 ymm k ymm -// VPORQ.Z xmm xmm k xmm -// VPORQ.Z ymm ymm k ymm -// VPORQ.Z m512 zmm k zmm -// VPORQ.Z zmm zmm k zmm -// -// Construct and append a VPORQ.Z instruction to the active function. -// Operates on the global context. -func VPORQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPORQ_Z(mxyz, xyz, k, xyz1) } - -// VPROLD: Rotate Packed Doubleword Left. -// -// Forms: -// -// VPROLD imm8 m128 k xmm -// VPROLD imm8 m128 xmm -// VPROLD imm8 m256 k ymm -// VPROLD imm8 m256 ymm -// VPROLD imm8 xmm k xmm -// VPROLD imm8 xmm xmm -// VPROLD imm8 ymm k ymm -// VPROLD imm8 ymm ymm -// VPROLD imm8 m512 k zmm -// VPROLD imm8 m512 zmm -// VPROLD imm8 zmm k zmm -// VPROLD imm8 zmm zmm -// -// Construct and append a VPROLD instruction to the active function. -func (c *Context) VPROLD(ops ...operand.Op) { - c.addinstruction(x86.VPROLD(ops...)) -} - -// VPROLD: Rotate Packed Doubleword Left. -// -// Forms: -// -// VPROLD imm8 m128 k xmm -// VPROLD imm8 m128 xmm -// VPROLD imm8 m256 k ymm -// VPROLD imm8 m256 ymm -// VPROLD imm8 xmm k xmm -// VPROLD imm8 xmm xmm -// VPROLD imm8 ymm k ymm -// VPROLD imm8 ymm ymm -// VPROLD imm8 m512 k zmm -// VPROLD imm8 m512 zmm -// VPROLD imm8 zmm k zmm -// VPROLD imm8 zmm zmm -// -// Construct and append a VPROLD instruction to the active function. -// Operates on the global context. -func VPROLD(ops ...operand.Op) { ctx.VPROLD(ops...) } - -// VPROLD_BCST: Rotate Packed Doubleword Left (Broadcast). -// -// Forms: -// -// VPROLD.BCST imm8 m32 k xmm -// VPROLD.BCST imm8 m32 k ymm -// VPROLD.BCST imm8 m32 xmm -// VPROLD.BCST imm8 m32 ymm -// VPROLD.BCST imm8 m32 k zmm -// VPROLD.BCST imm8 m32 zmm -// -// Construct and append a VPROLD.BCST instruction to the active function. -func (c *Context) VPROLD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPROLD_BCST(ops...)) -} - -// VPROLD_BCST: Rotate Packed Doubleword Left (Broadcast). -// -// Forms: -// -// VPROLD.BCST imm8 m32 k xmm -// VPROLD.BCST imm8 m32 k ymm -// VPROLD.BCST imm8 m32 xmm -// VPROLD.BCST imm8 m32 ymm -// VPROLD.BCST imm8 m32 k zmm -// VPROLD.BCST imm8 m32 zmm -// -// Construct and append a VPROLD.BCST instruction to the active function. -// Operates on the global context. -func VPROLD_BCST(ops ...operand.Op) { ctx.VPROLD_BCST(ops...) } - -// VPROLD_BCST_Z: Rotate Packed Doubleword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLD.BCST.Z imm8 m32 k xmm -// VPROLD.BCST.Z imm8 m32 k ymm -// VPROLD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPROLD.BCST.Z instruction to the active function. -func (c *Context) VPROLD_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPROLD_BCST_Z(i, m, k, xyz)) -} - -// VPROLD_BCST_Z: Rotate Packed Doubleword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLD.BCST.Z imm8 m32 k xmm -// VPROLD.BCST.Z imm8 m32 k ymm -// VPROLD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPROLD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPROLD_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPROLD_BCST_Z(i, m, k, xyz) } - -// VPROLD_Z: Rotate Packed Doubleword Left (Zeroing Masking). -// -// Forms: -// -// VPROLD.Z imm8 m128 k xmm -// VPROLD.Z imm8 m256 k ymm -// VPROLD.Z imm8 xmm k xmm -// VPROLD.Z imm8 ymm k ymm -// VPROLD.Z imm8 m512 k zmm -// VPROLD.Z imm8 zmm k zmm -// -// Construct and append a VPROLD.Z instruction to the active function. -func (c *Context) VPROLD_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPROLD_Z(i, mxyz, k, xyz)) -} - -// VPROLD_Z: Rotate Packed Doubleword Left (Zeroing Masking). -// -// Forms: -// -// VPROLD.Z imm8 m128 k xmm -// VPROLD.Z imm8 m256 k ymm -// VPROLD.Z imm8 xmm k xmm -// VPROLD.Z imm8 ymm k ymm -// VPROLD.Z imm8 m512 k zmm -// VPROLD.Z imm8 zmm k zmm -// -// Construct and append a VPROLD.Z instruction to the active function. -// Operates on the global context. -func VPROLD_Z(i, mxyz, k, xyz operand.Op) { ctx.VPROLD_Z(i, mxyz, k, xyz) } - -// VPROLQ: Rotate Packed Quadword Left. -// -// Forms: -// -// VPROLQ imm8 m128 k xmm -// VPROLQ imm8 m128 xmm -// VPROLQ imm8 m256 k ymm -// VPROLQ imm8 m256 ymm -// VPROLQ imm8 xmm k xmm -// VPROLQ imm8 xmm xmm -// VPROLQ imm8 ymm k ymm -// VPROLQ imm8 ymm ymm -// VPROLQ imm8 m512 k zmm -// VPROLQ imm8 m512 zmm -// VPROLQ imm8 zmm k zmm -// VPROLQ imm8 zmm zmm -// -// Construct and append a VPROLQ instruction to the active function. -func (c *Context) VPROLQ(ops ...operand.Op) { - c.addinstruction(x86.VPROLQ(ops...)) -} - -// VPROLQ: Rotate Packed Quadword Left. -// -// Forms: -// -// VPROLQ imm8 m128 k xmm -// VPROLQ imm8 m128 xmm -// VPROLQ imm8 m256 k ymm -// VPROLQ imm8 m256 ymm -// VPROLQ imm8 xmm k xmm -// VPROLQ imm8 xmm xmm -// VPROLQ imm8 ymm k ymm -// VPROLQ imm8 ymm ymm -// VPROLQ imm8 m512 k zmm -// VPROLQ imm8 m512 zmm -// VPROLQ imm8 zmm k zmm -// VPROLQ imm8 zmm zmm -// -// Construct and append a VPROLQ instruction to the active function. -// Operates on the global context. -func VPROLQ(ops ...operand.Op) { ctx.VPROLQ(ops...) } - -// VPROLQ_BCST: Rotate Packed Quadword Left (Broadcast). -// -// Forms: -// -// VPROLQ.BCST imm8 m64 k xmm -// VPROLQ.BCST imm8 m64 k ymm -// VPROLQ.BCST imm8 m64 xmm -// VPROLQ.BCST imm8 m64 ymm -// VPROLQ.BCST imm8 m64 k zmm -// VPROLQ.BCST imm8 m64 zmm -// -// Construct and append a VPROLQ.BCST instruction to the active function. -func (c *Context) VPROLQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPROLQ_BCST(ops...)) -} - -// VPROLQ_BCST: Rotate Packed Quadword Left (Broadcast). -// -// Forms: -// -// VPROLQ.BCST imm8 m64 k xmm -// VPROLQ.BCST imm8 m64 k ymm -// VPROLQ.BCST imm8 m64 xmm -// VPROLQ.BCST imm8 m64 ymm -// VPROLQ.BCST imm8 m64 k zmm -// VPROLQ.BCST imm8 m64 zmm -// -// Construct and append a VPROLQ.BCST instruction to the active function. -// Operates on the global context. -func VPROLQ_BCST(ops ...operand.Op) { ctx.VPROLQ_BCST(ops...) } - -// VPROLQ_BCST_Z: Rotate Packed Quadword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLQ.BCST.Z imm8 m64 k xmm -// VPROLQ.BCST.Z imm8 m64 k ymm -// VPROLQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPROLQ.BCST.Z instruction to the active function. -func (c *Context) VPROLQ_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPROLQ_BCST_Z(i, m, k, xyz)) -} - -// VPROLQ_BCST_Z: Rotate Packed Quadword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLQ.BCST.Z imm8 m64 k xmm -// VPROLQ.BCST.Z imm8 m64 k ymm -// VPROLQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPROLQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPROLQ_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPROLQ_BCST_Z(i, m, k, xyz) } - -// VPROLQ_Z: Rotate Packed Quadword Left (Zeroing Masking). -// -// Forms: -// -// VPROLQ.Z imm8 m128 k xmm -// VPROLQ.Z imm8 m256 k ymm -// VPROLQ.Z imm8 xmm k xmm -// VPROLQ.Z imm8 ymm k ymm -// VPROLQ.Z imm8 m512 k zmm -// VPROLQ.Z imm8 zmm k zmm -// -// Construct and append a VPROLQ.Z instruction to the active function. -func (c *Context) VPROLQ_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPROLQ_Z(i, mxyz, k, xyz)) -} - -// VPROLQ_Z: Rotate Packed Quadword Left (Zeroing Masking). -// -// Forms: -// -// VPROLQ.Z imm8 m128 k xmm -// VPROLQ.Z imm8 m256 k ymm -// VPROLQ.Z imm8 xmm k xmm -// VPROLQ.Z imm8 ymm k ymm -// VPROLQ.Z imm8 m512 k zmm -// VPROLQ.Z imm8 zmm k zmm -// -// Construct and append a VPROLQ.Z instruction to the active function. -// Operates on the global context. -func VPROLQ_Z(i, mxyz, k, xyz operand.Op) { ctx.VPROLQ_Z(i, mxyz, k, xyz) } - -// VPROLVD: Variable Rotate Packed Doubleword Left. -// -// Forms: -// -// VPROLVD m128 xmm k xmm -// VPROLVD m128 xmm xmm -// VPROLVD m256 ymm k ymm -// VPROLVD m256 ymm ymm -// VPROLVD xmm xmm k xmm -// VPROLVD xmm xmm xmm -// VPROLVD ymm ymm k ymm -// VPROLVD ymm ymm ymm -// VPROLVD m512 zmm k zmm -// VPROLVD m512 zmm zmm -// VPROLVD zmm zmm k zmm -// VPROLVD zmm zmm zmm -// -// Construct and append a VPROLVD instruction to the active function. -func (c *Context) VPROLVD(ops ...operand.Op) { - c.addinstruction(x86.VPROLVD(ops...)) -} - -// VPROLVD: Variable Rotate Packed Doubleword Left. -// -// Forms: -// -// VPROLVD m128 xmm k xmm -// VPROLVD m128 xmm xmm -// VPROLVD m256 ymm k ymm -// VPROLVD m256 ymm ymm -// VPROLVD xmm xmm k xmm -// VPROLVD xmm xmm xmm -// VPROLVD ymm ymm k ymm -// VPROLVD ymm ymm ymm -// VPROLVD m512 zmm k zmm -// VPROLVD m512 zmm zmm -// VPROLVD zmm zmm k zmm -// VPROLVD zmm zmm zmm -// -// Construct and append a VPROLVD instruction to the active function. -// Operates on the global context. -func VPROLVD(ops ...operand.Op) { ctx.VPROLVD(ops...) } - -// VPROLVD_BCST: Variable Rotate Packed Doubleword Left (Broadcast). -// -// Forms: -// -// VPROLVD.BCST m32 xmm k xmm -// VPROLVD.BCST m32 xmm xmm -// VPROLVD.BCST m32 ymm k ymm -// VPROLVD.BCST m32 ymm ymm -// VPROLVD.BCST m32 zmm k zmm -// VPROLVD.BCST m32 zmm zmm -// -// Construct and append a VPROLVD.BCST instruction to the active function. -func (c *Context) VPROLVD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPROLVD_BCST(ops...)) -} - -// VPROLVD_BCST: Variable Rotate Packed Doubleword Left (Broadcast). -// -// Forms: -// -// VPROLVD.BCST m32 xmm k xmm -// VPROLVD.BCST m32 xmm xmm -// VPROLVD.BCST m32 ymm k ymm -// VPROLVD.BCST m32 ymm ymm -// VPROLVD.BCST m32 zmm k zmm -// VPROLVD.BCST m32 zmm zmm -// -// Construct and append a VPROLVD.BCST instruction to the active function. -// Operates on the global context. -func VPROLVD_BCST(ops ...operand.Op) { ctx.VPROLVD_BCST(ops...) } - -// VPROLVD_BCST_Z: Variable Rotate Packed Doubleword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLVD.BCST.Z m32 xmm k xmm -// VPROLVD.BCST.Z m32 ymm k ymm -// VPROLVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPROLVD.BCST.Z instruction to the active function. -func (c *Context) VPROLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPROLVD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPROLVD_BCST_Z: Variable Rotate Packed Doubleword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLVD.BCST.Z m32 xmm k xmm -// VPROLVD.BCST.Z m32 ymm k ymm -// VPROLVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPROLVD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPROLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPROLVD_BCST_Z(m, xyz, k, xyz1) } - -// VPROLVD_Z: Variable Rotate Packed Doubleword Left (Zeroing Masking). -// -// Forms: -// -// VPROLVD.Z m128 xmm k xmm -// VPROLVD.Z m256 ymm k ymm -// VPROLVD.Z xmm xmm k xmm -// VPROLVD.Z ymm ymm k ymm -// VPROLVD.Z m512 zmm k zmm -// VPROLVD.Z zmm zmm k zmm -// -// Construct and append a VPROLVD.Z instruction to the active function. -func (c *Context) VPROLVD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPROLVD_Z(mxyz, xyz, k, xyz1)) -} - -// VPROLVD_Z: Variable Rotate Packed Doubleword Left (Zeroing Masking). -// -// Forms: -// -// VPROLVD.Z m128 xmm k xmm -// VPROLVD.Z m256 ymm k ymm -// VPROLVD.Z xmm xmm k xmm -// VPROLVD.Z ymm ymm k ymm -// VPROLVD.Z m512 zmm k zmm -// VPROLVD.Z zmm zmm k zmm -// -// Construct and append a VPROLVD.Z instruction to the active function. -// Operates on the global context. -func VPROLVD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPROLVD_Z(mxyz, xyz, k, xyz1) } - -// VPROLVQ: Variable Rotate Packed Quadword Left. -// -// Forms: -// -// VPROLVQ m128 xmm k xmm -// VPROLVQ m128 xmm xmm -// VPROLVQ m256 ymm k ymm -// VPROLVQ m256 ymm ymm -// VPROLVQ xmm xmm k xmm -// VPROLVQ xmm xmm xmm -// VPROLVQ ymm ymm k ymm -// VPROLVQ ymm ymm ymm -// VPROLVQ m512 zmm k zmm -// VPROLVQ m512 zmm zmm -// VPROLVQ zmm zmm k zmm -// VPROLVQ zmm zmm zmm -// -// Construct and append a VPROLVQ instruction to the active function. -func (c *Context) VPROLVQ(ops ...operand.Op) { - c.addinstruction(x86.VPROLVQ(ops...)) -} - -// VPROLVQ: Variable Rotate Packed Quadword Left. -// -// Forms: -// -// VPROLVQ m128 xmm k xmm -// VPROLVQ m128 xmm xmm -// VPROLVQ m256 ymm k ymm -// VPROLVQ m256 ymm ymm -// VPROLVQ xmm xmm k xmm -// VPROLVQ xmm xmm xmm -// VPROLVQ ymm ymm k ymm -// VPROLVQ ymm ymm ymm -// VPROLVQ m512 zmm k zmm -// VPROLVQ m512 zmm zmm -// VPROLVQ zmm zmm k zmm -// VPROLVQ zmm zmm zmm -// -// Construct and append a VPROLVQ instruction to the active function. -// Operates on the global context. -func VPROLVQ(ops ...operand.Op) { ctx.VPROLVQ(ops...) } - -// VPROLVQ_BCST: Variable Rotate Packed Quadword Left (Broadcast). -// -// Forms: -// -// VPROLVQ.BCST m64 xmm k xmm -// VPROLVQ.BCST m64 xmm xmm -// VPROLVQ.BCST m64 ymm k ymm -// VPROLVQ.BCST m64 ymm ymm -// VPROLVQ.BCST m64 zmm k zmm -// VPROLVQ.BCST m64 zmm zmm -// -// Construct and append a VPROLVQ.BCST instruction to the active function. -func (c *Context) VPROLVQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPROLVQ_BCST(ops...)) -} - -// VPROLVQ_BCST: Variable Rotate Packed Quadword Left (Broadcast). -// -// Forms: -// -// VPROLVQ.BCST m64 xmm k xmm -// VPROLVQ.BCST m64 xmm xmm -// VPROLVQ.BCST m64 ymm k ymm -// VPROLVQ.BCST m64 ymm ymm -// VPROLVQ.BCST m64 zmm k zmm -// VPROLVQ.BCST m64 zmm zmm -// -// Construct and append a VPROLVQ.BCST instruction to the active function. -// Operates on the global context. -func VPROLVQ_BCST(ops ...operand.Op) { ctx.VPROLVQ_BCST(ops...) } - -// VPROLVQ_BCST_Z: Variable Rotate Packed Quadword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLVQ.BCST.Z m64 xmm k xmm -// VPROLVQ.BCST.Z m64 ymm k ymm -// VPROLVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPROLVQ.BCST.Z instruction to the active function. -func (c *Context) VPROLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPROLVQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPROLVQ_BCST_Z: Variable Rotate Packed Quadword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLVQ.BCST.Z m64 xmm k xmm -// VPROLVQ.BCST.Z m64 ymm k ymm -// VPROLVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPROLVQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPROLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPROLVQ_BCST_Z(m, xyz, k, xyz1) } - -// VPROLVQ_Z: Variable Rotate Packed Quadword Left (Zeroing Masking). -// -// Forms: -// -// VPROLVQ.Z m128 xmm k xmm -// VPROLVQ.Z m256 ymm k ymm -// VPROLVQ.Z xmm xmm k xmm -// VPROLVQ.Z ymm ymm k ymm -// VPROLVQ.Z m512 zmm k zmm -// VPROLVQ.Z zmm zmm k zmm -// -// Construct and append a VPROLVQ.Z instruction to the active function. -func (c *Context) VPROLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPROLVQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPROLVQ_Z: Variable Rotate Packed Quadword Left (Zeroing Masking). -// -// Forms: -// -// VPROLVQ.Z m128 xmm k xmm -// VPROLVQ.Z m256 ymm k ymm -// VPROLVQ.Z xmm xmm k xmm -// VPROLVQ.Z ymm ymm k ymm -// VPROLVQ.Z m512 zmm k zmm -// VPROLVQ.Z zmm zmm k zmm -// -// Construct and append a VPROLVQ.Z instruction to the active function. -// Operates on the global context. -func VPROLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPROLVQ_Z(mxyz, xyz, k, xyz1) } - -// VPRORD: Rotate Packed Doubleword Right. -// -// Forms: -// -// VPRORD imm8 m128 k xmm -// VPRORD imm8 m128 xmm -// VPRORD imm8 m256 k ymm -// VPRORD imm8 m256 ymm -// VPRORD imm8 xmm k xmm -// VPRORD imm8 xmm xmm -// VPRORD imm8 ymm k ymm -// VPRORD imm8 ymm ymm -// VPRORD imm8 m512 k zmm -// VPRORD imm8 m512 zmm -// VPRORD imm8 zmm k zmm -// VPRORD imm8 zmm zmm -// -// Construct and append a VPRORD instruction to the active function. -func (c *Context) VPRORD(ops ...operand.Op) { - c.addinstruction(x86.VPRORD(ops...)) -} - -// VPRORD: Rotate Packed Doubleword Right. -// -// Forms: -// -// VPRORD imm8 m128 k xmm -// VPRORD imm8 m128 xmm -// VPRORD imm8 m256 k ymm -// VPRORD imm8 m256 ymm -// VPRORD imm8 xmm k xmm -// VPRORD imm8 xmm xmm -// VPRORD imm8 ymm k ymm -// VPRORD imm8 ymm ymm -// VPRORD imm8 m512 k zmm -// VPRORD imm8 m512 zmm -// VPRORD imm8 zmm k zmm -// VPRORD imm8 zmm zmm -// -// Construct and append a VPRORD instruction to the active function. -// Operates on the global context. -func VPRORD(ops ...operand.Op) { ctx.VPRORD(ops...) } - -// VPRORD_BCST: Rotate Packed Doubleword Right (Broadcast). -// -// Forms: -// -// VPRORD.BCST imm8 m32 k xmm -// VPRORD.BCST imm8 m32 k ymm -// VPRORD.BCST imm8 m32 xmm -// VPRORD.BCST imm8 m32 ymm -// VPRORD.BCST imm8 m32 k zmm -// VPRORD.BCST imm8 m32 zmm -// -// Construct and append a VPRORD.BCST instruction to the active function. -func (c *Context) VPRORD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPRORD_BCST(ops...)) -} - -// VPRORD_BCST: Rotate Packed Doubleword Right (Broadcast). -// -// Forms: -// -// VPRORD.BCST imm8 m32 k xmm -// VPRORD.BCST imm8 m32 k ymm -// VPRORD.BCST imm8 m32 xmm -// VPRORD.BCST imm8 m32 ymm -// VPRORD.BCST imm8 m32 k zmm -// VPRORD.BCST imm8 m32 zmm -// -// Construct and append a VPRORD.BCST instruction to the active function. -// Operates on the global context. -func VPRORD_BCST(ops ...operand.Op) { ctx.VPRORD_BCST(ops...) } - -// VPRORD_BCST_Z: Rotate Packed Doubleword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORD.BCST.Z imm8 m32 k xmm -// VPRORD.BCST.Z imm8 m32 k ymm -// VPRORD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPRORD.BCST.Z instruction to the active function. -func (c *Context) VPRORD_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPRORD_BCST_Z(i, m, k, xyz)) -} - -// VPRORD_BCST_Z: Rotate Packed Doubleword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORD.BCST.Z imm8 m32 k xmm -// VPRORD.BCST.Z imm8 m32 k ymm -// VPRORD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPRORD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPRORD_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPRORD_BCST_Z(i, m, k, xyz) } - -// VPRORD_Z: Rotate Packed Doubleword Right (Zeroing Masking). -// -// Forms: -// -// VPRORD.Z imm8 m128 k xmm -// VPRORD.Z imm8 m256 k ymm -// VPRORD.Z imm8 xmm k xmm -// VPRORD.Z imm8 ymm k ymm -// VPRORD.Z imm8 m512 k zmm -// VPRORD.Z imm8 zmm k zmm -// -// Construct and append a VPRORD.Z instruction to the active function. -func (c *Context) VPRORD_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPRORD_Z(i, mxyz, k, xyz)) -} - -// VPRORD_Z: Rotate Packed Doubleword Right (Zeroing Masking). -// -// Forms: -// -// VPRORD.Z imm8 m128 k xmm -// VPRORD.Z imm8 m256 k ymm -// VPRORD.Z imm8 xmm k xmm -// VPRORD.Z imm8 ymm k ymm -// VPRORD.Z imm8 m512 k zmm -// VPRORD.Z imm8 zmm k zmm -// -// Construct and append a VPRORD.Z instruction to the active function. -// Operates on the global context. -func VPRORD_Z(i, mxyz, k, xyz operand.Op) { ctx.VPRORD_Z(i, mxyz, k, xyz) } - -// VPRORQ: Rotate Packed Quadword Right. -// -// Forms: -// -// VPRORQ imm8 m128 k xmm -// VPRORQ imm8 m128 xmm -// VPRORQ imm8 m256 k ymm -// VPRORQ imm8 m256 ymm -// VPRORQ imm8 xmm k xmm -// VPRORQ imm8 xmm xmm -// VPRORQ imm8 ymm k ymm -// VPRORQ imm8 ymm ymm -// VPRORQ imm8 m512 k zmm -// VPRORQ imm8 m512 zmm -// VPRORQ imm8 zmm k zmm -// VPRORQ imm8 zmm zmm -// -// Construct and append a VPRORQ instruction to the active function. -func (c *Context) VPRORQ(ops ...operand.Op) { - c.addinstruction(x86.VPRORQ(ops...)) -} - -// VPRORQ: Rotate Packed Quadword Right. -// -// Forms: -// -// VPRORQ imm8 m128 k xmm -// VPRORQ imm8 m128 xmm -// VPRORQ imm8 m256 k ymm -// VPRORQ imm8 m256 ymm -// VPRORQ imm8 xmm k xmm -// VPRORQ imm8 xmm xmm -// VPRORQ imm8 ymm k ymm -// VPRORQ imm8 ymm ymm -// VPRORQ imm8 m512 k zmm -// VPRORQ imm8 m512 zmm -// VPRORQ imm8 zmm k zmm -// VPRORQ imm8 zmm zmm -// -// Construct and append a VPRORQ instruction to the active function. -// Operates on the global context. -func VPRORQ(ops ...operand.Op) { ctx.VPRORQ(ops...) } - -// VPRORQ_BCST: Rotate Packed Quadword Right (Broadcast). -// -// Forms: -// -// VPRORQ.BCST imm8 m64 k xmm -// VPRORQ.BCST imm8 m64 k ymm -// VPRORQ.BCST imm8 m64 xmm -// VPRORQ.BCST imm8 m64 ymm -// VPRORQ.BCST imm8 m64 k zmm -// VPRORQ.BCST imm8 m64 zmm -// -// Construct and append a VPRORQ.BCST instruction to the active function. -func (c *Context) VPRORQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPRORQ_BCST(ops...)) -} - -// VPRORQ_BCST: Rotate Packed Quadword Right (Broadcast). -// -// Forms: -// -// VPRORQ.BCST imm8 m64 k xmm -// VPRORQ.BCST imm8 m64 k ymm -// VPRORQ.BCST imm8 m64 xmm -// VPRORQ.BCST imm8 m64 ymm -// VPRORQ.BCST imm8 m64 k zmm -// VPRORQ.BCST imm8 m64 zmm -// -// Construct and append a VPRORQ.BCST instruction to the active function. -// Operates on the global context. -func VPRORQ_BCST(ops ...operand.Op) { ctx.VPRORQ_BCST(ops...) } - -// VPRORQ_BCST_Z: Rotate Packed Quadword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORQ.BCST.Z imm8 m64 k xmm -// VPRORQ.BCST.Z imm8 m64 k ymm -// VPRORQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPRORQ.BCST.Z instruction to the active function. -func (c *Context) VPRORQ_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPRORQ_BCST_Z(i, m, k, xyz)) -} - -// VPRORQ_BCST_Z: Rotate Packed Quadword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORQ.BCST.Z imm8 m64 k xmm -// VPRORQ.BCST.Z imm8 m64 k ymm -// VPRORQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPRORQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPRORQ_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPRORQ_BCST_Z(i, m, k, xyz) } - -// VPRORQ_Z: Rotate Packed Quadword Right (Zeroing Masking). -// -// Forms: -// -// VPRORQ.Z imm8 m128 k xmm -// VPRORQ.Z imm8 m256 k ymm -// VPRORQ.Z imm8 xmm k xmm -// VPRORQ.Z imm8 ymm k ymm -// VPRORQ.Z imm8 m512 k zmm -// VPRORQ.Z imm8 zmm k zmm -// -// Construct and append a VPRORQ.Z instruction to the active function. -func (c *Context) VPRORQ_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPRORQ_Z(i, mxyz, k, xyz)) -} - -// VPRORQ_Z: Rotate Packed Quadword Right (Zeroing Masking). -// -// Forms: -// -// VPRORQ.Z imm8 m128 k xmm -// VPRORQ.Z imm8 m256 k ymm -// VPRORQ.Z imm8 xmm k xmm -// VPRORQ.Z imm8 ymm k ymm -// VPRORQ.Z imm8 m512 k zmm -// VPRORQ.Z imm8 zmm k zmm -// -// Construct and append a VPRORQ.Z instruction to the active function. -// Operates on the global context. -func VPRORQ_Z(i, mxyz, k, xyz operand.Op) { ctx.VPRORQ_Z(i, mxyz, k, xyz) } - -// VPRORVD: Variable Rotate Packed Doubleword Right. -// -// Forms: -// -// VPRORVD m128 xmm k xmm -// VPRORVD m128 xmm xmm -// VPRORVD m256 ymm k ymm -// VPRORVD m256 ymm ymm -// VPRORVD xmm xmm k xmm -// VPRORVD xmm xmm xmm -// VPRORVD ymm ymm k ymm -// VPRORVD ymm ymm ymm -// VPRORVD m512 zmm k zmm -// VPRORVD m512 zmm zmm -// VPRORVD zmm zmm k zmm -// VPRORVD zmm zmm zmm -// -// Construct and append a VPRORVD instruction to the active function. -func (c *Context) VPRORVD(ops ...operand.Op) { - c.addinstruction(x86.VPRORVD(ops...)) -} - -// VPRORVD: Variable Rotate Packed Doubleword Right. -// -// Forms: -// -// VPRORVD m128 xmm k xmm -// VPRORVD m128 xmm xmm -// VPRORVD m256 ymm k ymm -// VPRORVD m256 ymm ymm -// VPRORVD xmm xmm k xmm -// VPRORVD xmm xmm xmm -// VPRORVD ymm ymm k ymm -// VPRORVD ymm ymm ymm -// VPRORVD m512 zmm k zmm -// VPRORVD m512 zmm zmm -// VPRORVD zmm zmm k zmm -// VPRORVD zmm zmm zmm -// -// Construct and append a VPRORVD instruction to the active function. -// Operates on the global context. -func VPRORVD(ops ...operand.Op) { ctx.VPRORVD(ops...) } - -// VPRORVD_BCST: Variable Rotate Packed Doubleword Right (Broadcast). -// -// Forms: -// -// VPRORVD.BCST m32 xmm k xmm -// VPRORVD.BCST m32 xmm xmm -// VPRORVD.BCST m32 ymm k ymm -// VPRORVD.BCST m32 ymm ymm -// VPRORVD.BCST m32 zmm k zmm -// VPRORVD.BCST m32 zmm zmm -// -// Construct and append a VPRORVD.BCST instruction to the active function. -func (c *Context) VPRORVD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPRORVD_BCST(ops...)) -} - -// VPRORVD_BCST: Variable Rotate Packed Doubleword Right (Broadcast). -// -// Forms: -// -// VPRORVD.BCST m32 xmm k xmm -// VPRORVD.BCST m32 xmm xmm -// VPRORVD.BCST m32 ymm k ymm -// VPRORVD.BCST m32 ymm ymm -// VPRORVD.BCST m32 zmm k zmm -// VPRORVD.BCST m32 zmm zmm -// -// Construct and append a VPRORVD.BCST instruction to the active function. -// Operates on the global context. -func VPRORVD_BCST(ops ...operand.Op) { ctx.VPRORVD_BCST(ops...) } - -// VPRORVD_BCST_Z: Variable Rotate Packed Doubleword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORVD.BCST.Z m32 xmm k xmm -// VPRORVD.BCST.Z m32 ymm k ymm -// VPRORVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPRORVD.BCST.Z instruction to the active function. -func (c *Context) VPRORVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPRORVD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPRORVD_BCST_Z: Variable Rotate Packed Doubleword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORVD.BCST.Z m32 xmm k xmm -// VPRORVD.BCST.Z m32 ymm k ymm -// VPRORVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPRORVD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPRORVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPRORVD_BCST_Z(m, xyz, k, xyz1) } - -// VPRORVD_Z: Variable Rotate Packed Doubleword Right (Zeroing Masking). -// -// Forms: -// -// VPRORVD.Z m128 xmm k xmm -// VPRORVD.Z m256 ymm k ymm -// VPRORVD.Z xmm xmm k xmm -// VPRORVD.Z ymm ymm k ymm -// VPRORVD.Z m512 zmm k zmm -// VPRORVD.Z zmm zmm k zmm -// -// Construct and append a VPRORVD.Z instruction to the active function. -func (c *Context) VPRORVD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPRORVD_Z(mxyz, xyz, k, xyz1)) -} - -// VPRORVD_Z: Variable Rotate Packed Doubleword Right (Zeroing Masking). -// -// Forms: -// -// VPRORVD.Z m128 xmm k xmm -// VPRORVD.Z m256 ymm k ymm -// VPRORVD.Z xmm xmm k xmm -// VPRORVD.Z ymm ymm k ymm -// VPRORVD.Z m512 zmm k zmm -// VPRORVD.Z zmm zmm k zmm -// -// Construct and append a VPRORVD.Z instruction to the active function. -// Operates on the global context. -func VPRORVD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPRORVD_Z(mxyz, xyz, k, xyz1) } - -// VPRORVQ: Variable Rotate Packed Quadword Right. -// -// Forms: -// -// VPRORVQ m128 xmm k xmm -// VPRORVQ m128 xmm xmm -// VPRORVQ m256 ymm k ymm -// VPRORVQ m256 ymm ymm -// VPRORVQ xmm xmm k xmm -// VPRORVQ xmm xmm xmm -// VPRORVQ ymm ymm k ymm -// VPRORVQ ymm ymm ymm -// VPRORVQ m512 zmm k zmm -// VPRORVQ m512 zmm zmm -// VPRORVQ zmm zmm k zmm -// VPRORVQ zmm zmm zmm -// -// Construct and append a VPRORVQ instruction to the active function. -func (c *Context) VPRORVQ(ops ...operand.Op) { - c.addinstruction(x86.VPRORVQ(ops...)) -} - -// VPRORVQ: Variable Rotate Packed Quadword Right. -// -// Forms: -// -// VPRORVQ m128 xmm k xmm -// VPRORVQ m128 xmm xmm -// VPRORVQ m256 ymm k ymm -// VPRORVQ m256 ymm ymm -// VPRORVQ xmm xmm k xmm -// VPRORVQ xmm xmm xmm -// VPRORVQ ymm ymm k ymm -// VPRORVQ ymm ymm ymm -// VPRORVQ m512 zmm k zmm -// VPRORVQ m512 zmm zmm -// VPRORVQ zmm zmm k zmm -// VPRORVQ zmm zmm zmm -// -// Construct and append a VPRORVQ instruction to the active function. -// Operates on the global context. -func VPRORVQ(ops ...operand.Op) { ctx.VPRORVQ(ops...) } - -// VPRORVQ_BCST: Variable Rotate Packed Quadword Right (Broadcast). -// -// Forms: -// -// VPRORVQ.BCST m64 xmm k xmm -// VPRORVQ.BCST m64 xmm xmm -// VPRORVQ.BCST m64 ymm k ymm -// VPRORVQ.BCST m64 ymm ymm -// VPRORVQ.BCST m64 zmm k zmm -// VPRORVQ.BCST m64 zmm zmm -// -// Construct and append a VPRORVQ.BCST instruction to the active function. -func (c *Context) VPRORVQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPRORVQ_BCST(ops...)) -} - -// VPRORVQ_BCST: Variable Rotate Packed Quadword Right (Broadcast). -// -// Forms: -// -// VPRORVQ.BCST m64 xmm k xmm -// VPRORVQ.BCST m64 xmm xmm -// VPRORVQ.BCST m64 ymm k ymm -// VPRORVQ.BCST m64 ymm ymm -// VPRORVQ.BCST m64 zmm k zmm -// VPRORVQ.BCST m64 zmm zmm -// -// Construct and append a VPRORVQ.BCST instruction to the active function. -// Operates on the global context. -func VPRORVQ_BCST(ops ...operand.Op) { ctx.VPRORVQ_BCST(ops...) } - -// VPRORVQ_BCST_Z: Variable Rotate Packed Quadword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORVQ.BCST.Z m64 xmm k xmm -// VPRORVQ.BCST.Z m64 ymm k ymm -// VPRORVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPRORVQ.BCST.Z instruction to the active function. -func (c *Context) VPRORVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPRORVQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPRORVQ_BCST_Z: Variable Rotate Packed Quadword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORVQ.BCST.Z m64 xmm k xmm -// VPRORVQ.BCST.Z m64 ymm k ymm -// VPRORVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPRORVQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPRORVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPRORVQ_BCST_Z(m, xyz, k, xyz1) } - -// VPRORVQ_Z: Variable Rotate Packed Quadword Right (Zeroing Masking). -// -// Forms: -// -// VPRORVQ.Z m128 xmm k xmm -// VPRORVQ.Z m256 ymm k ymm -// VPRORVQ.Z xmm xmm k xmm -// VPRORVQ.Z ymm ymm k ymm -// VPRORVQ.Z m512 zmm k zmm -// VPRORVQ.Z zmm zmm k zmm -// -// Construct and append a VPRORVQ.Z instruction to the active function. -func (c *Context) VPRORVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPRORVQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPRORVQ_Z: Variable Rotate Packed Quadword Right (Zeroing Masking). -// -// Forms: -// -// VPRORVQ.Z m128 xmm k xmm -// VPRORVQ.Z m256 ymm k ymm -// VPRORVQ.Z xmm xmm k xmm -// VPRORVQ.Z ymm ymm k ymm -// VPRORVQ.Z m512 zmm k zmm -// VPRORVQ.Z zmm zmm k zmm -// -// Construct and append a VPRORVQ.Z instruction to the active function. -// Operates on the global context. -func VPRORVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPRORVQ_Z(mxyz, xyz, k, xyz1) } - -// VPSADBW: Compute Sum of Absolute Differences. -// -// Forms: -// -// VPSADBW m256 ymm ymm -// VPSADBW ymm ymm ymm -// VPSADBW m128 xmm xmm -// VPSADBW xmm xmm xmm -// VPSADBW m512 zmm zmm -// VPSADBW zmm zmm zmm -// -// Construct and append a VPSADBW instruction to the active function. -func (c *Context) VPSADBW(mxyz, xyz, xyz1 operand.Op) { - c.addinstruction(x86.VPSADBW(mxyz, xyz, xyz1)) -} - -// VPSADBW: Compute Sum of Absolute Differences. -// -// Forms: -// -// VPSADBW m256 ymm ymm -// VPSADBW ymm ymm ymm -// VPSADBW m128 xmm xmm -// VPSADBW xmm xmm xmm -// VPSADBW m512 zmm zmm -// VPSADBW zmm zmm zmm -// -// Construct and append a VPSADBW instruction to the active function. -// Operates on the global context. -func VPSADBW(mxyz, xyz, xyz1 operand.Op) { ctx.VPSADBW(mxyz, xyz, xyz1) } - -// VPSCATTERDD: Scatter Packed Doubleword Values with Signed Doubleword Indices. -// -// Forms: -// -// VPSCATTERDD xmm k vm32x -// VPSCATTERDD ymm k vm32y -// VPSCATTERDD zmm k vm32z -// -// Construct and append a VPSCATTERDD instruction to the active function. -func (c *Context) VPSCATTERDD(xyz, k, v operand.Op) { - c.addinstruction(x86.VPSCATTERDD(xyz, k, v)) -} - -// VPSCATTERDD: Scatter Packed Doubleword Values with Signed Doubleword Indices. -// -// Forms: -// -// VPSCATTERDD xmm k vm32x -// VPSCATTERDD ymm k vm32y -// VPSCATTERDD zmm k vm32z -// -// Construct and append a VPSCATTERDD instruction to the active function. -// Operates on the global context. -func VPSCATTERDD(xyz, k, v operand.Op) { ctx.VPSCATTERDD(xyz, k, v) } - -// VPSCATTERDQ: Scatter Packed Quadword Values with Signed Doubleword Indices. -// -// Forms: -// -// VPSCATTERDQ xmm k vm32x -// VPSCATTERDQ ymm k vm32x -// VPSCATTERDQ zmm k vm32y -// -// Construct and append a VPSCATTERDQ instruction to the active function. -func (c *Context) VPSCATTERDQ(xyz, k, v operand.Op) { - c.addinstruction(x86.VPSCATTERDQ(xyz, k, v)) -} - -// VPSCATTERDQ: Scatter Packed Quadword Values with Signed Doubleword Indices. -// -// Forms: -// -// VPSCATTERDQ xmm k vm32x -// VPSCATTERDQ ymm k vm32x -// VPSCATTERDQ zmm k vm32y -// -// Construct and append a VPSCATTERDQ instruction to the active function. -// Operates on the global context. -func VPSCATTERDQ(xyz, k, v operand.Op) { ctx.VPSCATTERDQ(xyz, k, v) } - -// VPSCATTERQD: Scatter Packed Doubleword Values with Signed Quadword Indices. -// -// Forms: -// -// VPSCATTERQD xmm k vm64x -// VPSCATTERQD xmm k vm64y -// VPSCATTERQD ymm k vm64z -// -// Construct and append a VPSCATTERQD instruction to the active function. -func (c *Context) VPSCATTERQD(xy, k, v operand.Op) { - c.addinstruction(x86.VPSCATTERQD(xy, k, v)) -} - -// VPSCATTERQD: Scatter Packed Doubleword Values with Signed Quadword Indices. -// -// Forms: -// -// VPSCATTERQD xmm k vm64x -// VPSCATTERQD xmm k vm64y -// VPSCATTERQD ymm k vm64z -// -// Construct and append a VPSCATTERQD instruction to the active function. -// Operates on the global context. -func VPSCATTERQD(xy, k, v operand.Op) { ctx.VPSCATTERQD(xy, k, v) } - -// VPSCATTERQQ: Scatter Packed Quadword Values with Signed Quadword Indices. -// -// Forms: -// -// VPSCATTERQQ xmm k vm64x -// VPSCATTERQQ ymm k vm64y -// VPSCATTERQQ zmm k vm64z -// -// Construct and append a VPSCATTERQQ instruction to the active function. -func (c *Context) VPSCATTERQQ(xyz, k, v operand.Op) { - c.addinstruction(x86.VPSCATTERQQ(xyz, k, v)) -} - -// VPSCATTERQQ: Scatter Packed Quadword Values with Signed Quadword Indices. -// -// Forms: -// -// VPSCATTERQQ xmm k vm64x -// VPSCATTERQQ ymm k vm64y -// VPSCATTERQQ zmm k vm64z -// -// Construct and append a VPSCATTERQQ instruction to the active function. -// Operates on the global context. -func VPSCATTERQQ(xyz, k, v operand.Op) { ctx.VPSCATTERQQ(xyz, k, v) } - -// VPSHLDD: Concatenate Dwords and Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDD imm8 m128 xmm k xmm -// VPSHLDD imm8 m128 xmm xmm -// VPSHLDD imm8 m256 ymm k ymm -// VPSHLDD imm8 m256 ymm ymm -// VPSHLDD imm8 xmm xmm k xmm -// VPSHLDD imm8 xmm xmm xmm -// VPSHLDD imm8 ymm ymm k ymm -// VPSHLDD imm8 ymm ymm ymm -// VPSHLDD imm8 m512 zmm k zmm -// VPSHLDD imm8 m512 zmm zmm -// VPSHLDD imm8 zmm zmm k zmm -// VPSHLDD imm8 zmm zmm zmm -// -// Construct and append a VPSHLDD instruction to the active function. -func (c *Context) VPSHLDD(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDD(ops...)) -} - -// VPSHLDD: Concatenate Dwords and Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDD imm8 m128 xmm k xmm -// VPSHLDD imm8 m128 xmm xmm -// VPSHLDD imm8 m256 ymm k ymm -// VPSHLDD imm8 m256 ymm ymm -// VPSHLDD imm8 xmm xmm k xmm -// VPSHLDD imm8 xmm xmm xmm -// VPSHLDD imm8 ymm ymm k ymm -// VPSHLDD imm8 ymm ymm ymm -// VPSHLDD imm8 m512 zmm k zmm -// VPSHLDD imm8 m512 zmm zmm -// VPSHLDD imm8 zmm zmm k zmm -// VPSHLDD imm8 zmm zmm zmm -// -// Construct and append a VPSHLDD instruction to the active function. -// Operates on the global context. -func VPSHLDD(ops ...operand.Op) { ctx.VPSHLDD(ops...) } - -// VPSHLDD_BCST: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDD.BCST imm8 m32 xmm k xmm -// VPSHLDD.BCST imm8 m32 xmm xmm -// VPSHLDD.BCST imm8 m32 ymm k ymm -// VPSHLDD.BCST imm8 m32 ymm ymm -// VPSHLDD.BCST imm8 m32 zmm k zmm -// VPSHLDD.BCST imm8 m32 zmm zmm -// -// Construct and append a VPSHLDD.BCST instruction to the active function. -func (c *Context) VPSHLDD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDD_BCST(ops...)) -} - -// VPSHLDD_BCST: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDD.BCST imm8 m32 xmm k xmm -// VPSHLDD.BCST imm8 m32 xmm xmm -// VPSHLDD.BCST imm8 m32 ymm k ymm -// VPSHLDD.BCST imm8 m32 ymm ymm -// VPSHLDD.BCST imm8 m32 zmm k zmm -// VPSHLDD.BCST imm8 m32 zmm zmm -// -// Construct and append a VPSHLDD.BCST instruction to the active function. -// Operates on the global context. -func VPSHLDD_BCST(ops ...operand.Op) { ctx.VPSHLDD_BCST(ops...) } - -// VPSHLDD_BCST_Z: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDD.BCST.Z imm8 m32 xmm k xmm -// VPSHLDD.BCST.Z imm8 m32 ymm k ymm -// VPSHLDD.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VPSHLDD.BCST.Z instruction to the active function. -func (c *Context) VPSHLDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDD_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VPSHLDD_BCST_Z: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDD.BCST.Z imm8 m32 xmm k xmm -// VPSHLDD.BCST.Z imm8 m32 ymm k ymm -// VPSHLDD.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VPSHLDD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSHLDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPSHLDD_BCST_Z(i, m, xyz, k, xyz1) } - -// VPSHLDD_Z: Concatenate Dwords and Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDD.Z imm8 m128 xmm k xmm -// VPSHLDD.Z imm8 m256 ymm k ymm -// VPSHLDD.Z imm8 xmm xmm k xmm -// VPSHLDD.Z imm8 ymm ymm k ymm -// VPSHLDD.Z imm8 m512 zmm k zmm -// VPSHLDD.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHLDD.Z instruction to the active function. -func (c *Context) VPSHLDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDD_Z(i, mxyz, xyz, k, xyz1)) -} - -// VPSHLDD_Z: Concatenate Dwords and Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDD.Z imm8 m128 xmm k xmm -// VPSHLDD.Z imm8 m256 ymm k ymm -// VPSHLDD.Z imm8 xmm xmm k xmm -// VPSHLDD.Z imm8 ymm ymm k ymm -// VPSHLDD.Z imm8 m512 zmm k zmm -// VPSHLDD.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHLDD.Z instruction to the active function. -// Operates on the global context. -func VPSHLDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDD_Z(i, mxyz, xyz, k, xyz1) } - -// VPSHLDQ: Concatenate Quadwords and Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDQ imm8 m128 xmm k xmm -// VPSHLDQ imm8 m128 xmm xmm -// VPSHLDQ imm8 m256 ymm k ymm -// VPSHLDQ imm8 m256 ymm ymm -// VPSHLDQ imm8 xmm xmm k xmm -// VPSHLDQ imm8 xmm xmm xmm -// VPSHLDQ imm8 ymm ymm k ymm -// VPSHLDQ imm8 ymm ymm ymm -// VPSHLDQ imm8 m512 zmm k zmm -// VPSHLDQ imm8 m512 zmm zmm -// VPSHLDQ imm8 zmm zmm k zmm -// VPSHLDQ imm8 zmm zmm zmm -// -// Construct and append a VPSHLDQ instruction to the active function. -func (c *Context) VPSHLDQ(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDQ(ops...)) -} - -// VPSHLDQ: Concatenate Quadwords and Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDQ imm8 m128 xmm k xmm -// VPSHLDQ imm8 m128 xmm xmm -// VPSHLDQ imm8 m256 ymm k ymm -// VPSHLDQ imm8 m256 ymm ymm -// VPSHLDQ imm8 xmm xmm k xmm -// VPSHLDQ imm8 xmm xmm xmm -// VPSHLDQ imm8 ymm ymm k ymm -// VPSHLDQ imm8 ymm ymm ymm -// VPSHLDQ imm8 m512 zmm k zmm -// VPSHLDQ imm8 m512 zmm zmm -// VPSHLDQ imm8 zmm zmm k zmm -// VPSHLDQ imm8 zmm zmm zmm -// -// Construct and append a VPSHLDQ instruction to the active function. -// Operates on the global context. -func VPSHLDQ(ops ...operand.Op) { ctx.VPSHLDQ(ops...) } - -// VPSHLDQ_BCST: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDQ.BCST imm8 m64 xmm k xmm -// VPSHLDQ.BCST imm8 m64 xmm xmm -// VPSHLDQ.BCST imm8 m64 ymm k ymm -// VPSHLDQ.BCST imm8 m64 ymm ymm -// VPSHLDQ.BCST imm8 m64 zmm k zmm -// VPSHLDQ.BCST imm8 m64 zmm zmm -// -// Construct and append a VPSHLDQ.BCST instruction to the active function. -func (c *Context) VPSHLDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDQ_BCST(ops...)) -} - -// VPSHLDQ_BCST: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDQ.BCST imm8 m64 xmm k xmm -// VPSHLDQ.BCST imm8 m64 xmm xmm -// VPSHLDQ.BCST imm8 m64 ymm k ymm -// VPSHLDQ.BCST imm8 m64 ymm ymm -// VPSHLDQ.BCST imm8 m64 zmm k zmm -// VPSHLDQ.BCST imm8 m64 zmm zmm -// -// Construct and append a VPSHLDQ.BCST instruction to the active function. -// Operates on the global context. -func VPSHLDQ_BCST(ops ...operand.Op) { ctx.VPSHLDQ_BCST(ops...) } - -// VPSHLDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDQ.BCST.Z imm8 m64 xmm k xmm -// VPSHLDQ.BCST.Z imm8 m64 ymm k ymm -// VPSHLDQ.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VPSHLDQ.BCST.Z instruction to the active function. -func (c *Context) VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VPSHLDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDQ.BCST.Z imm8 m64 xmm k xmm -// VPSHLDQ.BCST.Z imm8 m64 ymm k ymm -// VPSHLDQ.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VPSHLDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1) } - -// VPSHLDQ_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDQ.Z imm8 m128 xmm k xmm -// VPSHLDQ.Z imm8 m256 ymm k ymm -// VPSHLDQ.Z imm8 xmm xmm k xmm -// VPSHLDQ.Z imm8 ymm ymm k ymm -// VPSHLDQ.Z imm8 m512 zmm k zmm -// VPSHLDQ.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHLDQ.Z instruction to the active function. -func (c *Context) VPSHLDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDQ_Z(i, mxyz, xyz, k, xyz1)) -} - -// VPSHLDQ_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDQ.Z imm8 m128 xmm k xmm -// VPSHLDQ.Z imm8 m256 ymm k ymm -// VPSHLDQ.Z imm8 xmm xmm k xmm -// VPSHLDQ.Z imm8 ymm ymm k ymm -// VPSHLDQ.Z imm8 m512 zmm k zmm -// VPSHLDQ.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHLDQ.Z instruction to the active function. -// Operates on the global context. -func VPSHLDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDQ_Z(i, mxyz, xyz, k, xyz1) } - -// VPSHLDVD: Concatenate Dwords and Variable Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDVD m128 xmm k xmm -// VPSHLDVD m128 xmm xmm -// VPSHLDVD m256 ymm k ymm -// VPSHLDVD m256 ymm ymm -// VPSHLDVD xmm xmm k xmm -// VPSHLDVD xmm xmm xmm -// VPSHLDVD ymm ymm k ymm -// VPSHLDVD ymm ymm ymm -// VPSHLDVD m512 zmm k zmm -// VPSHLDVD m512 zmm zmm -// VPSHLDVD zmm zmm k zmm -// VPSHLDVD zmm zmm zmm -// -// Construct and append a VPSHLDVD instruction to the active function. -func (c *Context) VPSHLDVD(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDVD(ops...)) -} - -// VPSHLDVD: Concatenate Dwords and Variable Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDVD m128 xmm k xmm -// VPSHLDVD m128 xmm xmm -// VPSHLDVD m256 ymm k ymm -// VPSHLDVD m256 ymm ymm -// VPSHLDVD xmm xmm k xmm -// VPSHLDVD xmm xmm xmm -// VPSHLDVD ymm ymm k ymm -// VPSHLDVD ymm ymm ymm -// VPSHLDVD m512 zmm k zmm -// VPSHLDVD m512 zmm zmm -// VPSHLDVD zmm zmm k zmm -// VPSHLDVD zmm zmm zmm -// -// Construct and append a VPSHLDVD instruction to the active function. -// Operates on the global context. -func VPSHLDVD(ops ...operand.Op) { ctx.VPSHLDVD(ops...) } - -// VPSHLDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDVD.BCST m32 xmm k xmm -// VPSHLDVD.BCST m32 xmm xmm -// VPSHLDVD.BCST m32 ymm k ymm -// VPSHLDVD.BCST m32 ymm ymm -// VPSHLDVD.BCST m32 zmm k zmm -// VPSHLDVD.BCST m32 zmm zmm -// -// Construct and append a VPSHLDVD.BCST instruction to the active function. -func (c *Context) VPSHLDVD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDVD_BCST(ops...)) -} - -// VPSHLDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDVD.BCST m32 xmm k xmm -// VPSHLDVD.BCST m32 xmm xmm -// VPSHLDVD.BCST m32 ymm k ymm -// VPSHLDVD.BCST m32 ymm ymm -// VPSHLDVD.BCST m32 zmm k zmm -// VPSHLDVD.BCST m32 zmm zmm -// -// Construct and append a VPSHLDVD.BCST instruction to the active function. -// Operates on the global context. -func VPSHLDVD_BCST(ops ...operand.Op) { ctx.VPSHLDVD_BCST(ops...) } - -// VPSHLDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDVD.BCST.Z m32 xmm k xmm -// VPSHLDVD.BCST.Z m32 ymm k ymm -// VPSHLDVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSHLDVD.BCST.Z instruction to the active function. -func (c *Context) VPSHLDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDVD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSHLDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDVD.BCST.Z m32 xmm k xmm -// VPSHLDVD.BCST.Z m32 ymm k ymm -// VPSHLDVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSHLDVD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSHLDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVD_BCST_Z(m, xyz, k, xyz1) } - -// VPSHLDVD_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDVD.Z m128 xmm k xmm -// VPSHLDVD.Z m256 ymm k ymm -// VPSHLDVD.Z xmm xmm k xmm -// VPSHLDVD.Z ymm ymm k ymm -// VPSHLDVD.Z m512 zmm k zmm -// VPSHLDVD.Z zmm zmm k zmm -// -// Construct and append a VPSHLDVD.Z instruction to the active function. -func (c *Context) VPSHLDVD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDVD_Z(mxyz, xyz, k, xyz1)) -} - -// VPSHLDVD_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDVD.Z m128 xmm k xmm -// VPSHLDVD.Z m256 ymm k ymm -// VPSHLDVD.Z xmm xmm k xmm -// VPSHLDVD.Z ymm ymm k ymm -// VPSHLDVD.Z m512 zmm k zmm -// VPSHLDVD.Z zmm zmm k zmm -// -// Construct and append a VPSHLDVD.Z instruction to the active function. -// Operates on the global context. -func VPSHLDVD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVD_Z(mxyz, xyz, k, xyz1) } - -// VPSHLDVQ: Concatenate Quadwords and Variable Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDVQ m128 xmm k xmm -// VPSHLDVQ m128 xmm xmm -// VPSHLDVQ m256 ymm k ymm -// VPSHLDVQ m256 ymm ymm -// VPSHLDVQ xmm xmm k xmm -// VPSHLDVQ xmm xmm xmm -// VPSHLDVQ ymm ymm k ymm -// VPSHLDVQ ymm ymm ymm -// VPSHLDVQ m512 zmm k zmm -// VPSHLDVQ m512 zmm zmm -// VPSHLDVQ zmm zmm k zmm -// VPSHLDVQ zmm zmm zmm -// -// Construct and append a VPSHLDVQ instruction to the active function. -func (c *Context) VPSHLDVQ(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDVQ(ops...)) -} - -// VPSHLDVQ: Concatenate Quadwords and Variable Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDVQ m128 xmm k xmm -// VPSHLDVQ m128 xmm xmm -// VPSHLDVQ m256 ymm k ymm -// VPSHLDVQ m256 ymm ymm -// VPSHLDVQ xmm xmm k xmm -// VPSHLDVQ xmm xmm xmm -// VPSHLDVQ ymm ymm k ymm -// VPSHLDVQ ymm ymm ymm -// VPSHLDVQ m512 zmm k zmm -// VPSHLDVQ m512 zmm zmm -// VPSHLDVQ zmm zmm k zmm -// VPSHLDVQ zmm zmm zmm -// -// Construct and append a VPSHLDVQ instruction to the active function. -// Operates on the global context. -func VPSHLDVQ(ops ...operand.Op) { ctx.VPSHLDVQ(ops...) } - -// VPSHLDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDVQ.BCST m64 xmm k xmm -// VPSHLDVQ.BCST m64 xmm xmm -// VPSHLDVQ.BCST m64 ymm k ymm -// VPSHLDVQ.BCST m64 ymm ymm -// VPSHLDVQ.BCST m64 zmm k zmm -// VPSHLDVQ.BCST m64 zmm zmm -// -// Construct and append a VPSHLDVQ.BCST instruction to the active function. -func (c *Context) VPSHLDVQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDVQ_BCST(ops...)) -} - -// VPSHLDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDVQ.BCST m64 xmm k xmm -// VPSHLDVQ.BCST m64 xmm xmm -// VPSHLDVQ.BCST m64 ymm k ymm -// VPSHLDVQ.BCST m64 ymm ymm -// VPSHLDVQ.BCST m64 zmm k zmm -// VPSHLDVQ.BCST m64 zmm zmm -// -// Construct and append a VPSHLDVQ.BCST instruction to the active function. -// Operates on the global context. -func VPSHLDVQ_BCST(ops ...operand.Op) { ctx.VPSHLDVQ_BCST(ops...) } - -// VPSHLDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDVQ.BCST.Z m64 xmm k xmm -// VPSHLDVQ.BCST.Z m64 ymm k ymm -// VPSHLDVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSHLDVQ.BCST.Z instruction to the active function. -func (c *Context) VPSHLDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDVQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSHLDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDVQ.BCST.Z m64 xmm k xmm -// VPSHLDVQ.BCST.Z m64 ymm k ymm -// VPSHLDVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSHLDVQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSHLDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVQ_BCST_Z(m, xyz, k, xyz1) } - -// VPSHLDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDVQ.Z m128 xmm k xmm -// VPSHLDVQ.Z m256 ymm k ymm -// VPSHLDVQ.Z xmm xmm k xmm -// VPSHLDVQ.Z ymm ymm k ymm -// VPSHLDVQ.Z m512 zmm k zmm -// VPSHLDVQ.Z zmm zmm k zmm -// -// Construct and append a VPSHLDVQ.Z instruction to the active function. -func (c *Context) VPSHLDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDVQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPSHLDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDVQ.Z m128 xmm k xmm -// VPSHLDVQ.Z m256 ymm k ymm -// VPSHLDVQ.Z xmm xmm k xmm -// VPSHLDVQ.Z ymm ymm k ymm -// VPSHLDVQ.Z m512 zmm k zmm -// VPSHLDVQ.Z zmm zmm k zmm -// -// Construct and append a VPSHLDVQ.Z instruction to the active function. -// Operates on the global context. -func VPSHLDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVQ_Z(mxyz, xyz, k, xyz1) } - -// VPSHLDVW: Concatenate Words and Variable Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDVW m128 xmm k xmm -// VPSHLDVW m128 xmm xmm -// VPSHLDVW m256 ymm k ymm -// VPSHLDVW m256 ymm ymm -// VPSHLDVW xmm xmm k xmm -// VPSHLDVW xmm xmm xmm -// VPSHLDVW ymm ymm k ymm -// VPSHLDVW ymm ymm ymm -// VPSHLDVW m512 zmm k zmm -// VPSHLDVW m512 zmm zmm -// VPSHLDVW zmm zmm k zmm -// VPSHLDVW zmm zmm zmm -// -// Construct and append a VPSHLDVW instruction to the active function. -func (c *Context) VPSHLDVW(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDVW(ops...)) -} - -// VPSHLDVW: Concatenate Words and Variable Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDVW m128 xmm k xmm -// VPSHLDVW m128 xmm xmm -// VPSHLDVW m256 ymm k ymm -// VPSHLDVW m256 ymm ymm -// VPSHLDVW xmm xmm k xmm -// VPSHLDVW xmm xmm xmm -// VPSHLDVW ymm ymm k ymm -// VPSHLDVW ymm ymm ymm -// VPSHLDVW m512 zmm k zmm -// VPSHLDVW m512 zmm zmm -// VPSHLDVW zmm zmm k zmm -// VPSHLDVW zmm zmm zmm -// -// Construct and append a VPSHLDVW instruction to the active function. -// Operates on the global context. -func VPSHLDVW(ops ...operand.Op) { ctx.VPSHLDVW(ops...) } - -// VPSHLDVW_Z: Concatenate Words and Variable Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDVW.Z m128 xmm k xmm -// VPSHLDVW.Z m256 ymm k ymm -// VPSHLDVW.Z xmm xmm k xmm -// VPSHLDVW.Z ymm ymm k ymm -// VPSHLDVW.Z m512 zmm k zmm -// VPSHLDVW.Z zmm zmm k zmm -// -// Construct and append a VPSHLDVW.Z instruction to the active function. -func (c *Context) VPSHLDVW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDVW_Z(mxyz, xyz, k, xyz1)) -} - -// VPSHLDVW_Z: Concatenate Words and Variable Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDVW.Z m128 xmm k xmm -// VPSHLDVW.Z m256 ymm k ymm -// VPSHLDVW.Z xmm xmm k xmm -// VPSHLDVW.Z ymm ymm k ymm -// VPSHLDVW.Z m512 zmm k zmm -// VPSHLDVW.Z zmm zmm k zmm -// -// Construct and append a VPSHLDVW.Z instruction to the active function. -// Operates on the global context. -func VPSHLDVW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDVW_Z(mxyz, xyz, k, xyz1) } - -// VPSHLDW: Concatenate Words and Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDW imm8 m128 xmm k xmm -// VPSHLDW imm8 m128 xmm xmm -// VPSHLDW imm8 m256 ymm k ymm -// VPSHLDW imm8 m256 ymm ymm -// VPSHLDW imm8 xmm xmm k xmm -// VPSHLDW imm8 xmm xmm xmm -// VPSHLDW imm8 ymm ymm k ymm -// VPSHLDW imm8 ymm ymm ymm -// VPSHLDW imm8 m512 zmm k zmm -// VPSHLDW imm8 m512 zmm zmm -// VPSHLDW imm8 zmm zmm k zmm -// VPSHLDW imm8 zmm zmm zmm -// -// Construct and append a VPSHLDW instruction to the active function. -func (c *Context) VPSHLDW(ops ...operand.Op) { - c.addinstruction(x86.VPSHLDW(ops...)) -} - -// VPSHLDW: Concatenate Words and Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDW imm8 m128 xmm k xmm -// VPSHLDW imm8 m128 xmm xmm -// VPSHLDW imm8 m256 ymm k ymm -// VPSHLDW imm8 m256 ymm ymm -// VPSHLDW imm8 xmm xmm k xmm -// VPSHLDW imm8 xmm xmm xmm -// VPSHLDW imm8 ymm ymm k ymm -// VPSHLDW imm8 ymm ymm ymm -// VPSHLDW imm8 m512 zmm k zmm -// VPSHLDW imm8 m512 zmm zmm -// VPSHLDW imm8 zmm zmm k zmm -// VPSHLDW imm8 zmm zmm zmm -// -// Construct and append a VPSHLDW instruction to the active function. -// Operates on the global context. -func VPSHLDW(ops ...operand.Op) { ctx.VPSHLDW(ops...) } - -// VPSHLDW_Z: Concatenate Words and Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDW.Z imm8 m128 xmm k xmm -// VPSHLDW.Z imm8 m256 ymm k ymm -// VPSHLDW.Z imm8 xmm xmm k xmm -// VPSHLDW.Z imm8 ymm ymm k ymm -// VPSHLDW.Z imm8 m512 zmm k zmm -// VPSHLDW.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHLDW.Z instruction to the active function. -func (c *Context) VPSHLDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHLDW_Z(i, mxyz, xyz, k, xyz1)) -} - -// VPSHLDW_Z: Concatenate Words and Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDW.Z imm8 m128 xmm k xmm -// VPSHLDW.Z imm8 m256 ymm k ymm -// VPSHLDW.Z imm8 xmm xmm k xmm -// VPSHLDW.Z imm8 ymm ymm k ymm -// VPSHLDW.Z imm8 m512 zmm k zmm -// VPSHLDW.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHLDW.Z instruction to the active function. -// Operates on the global context. -func VPSHLDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHLDW_Z(i, mxyz, xyz, k, xyz1) } - -// VPSHRDD: Concatenate Dwords and Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDD imm8 m128 xmm k xmm -// VPSHRDD imm8 m128 xmm xmm -// VPSHRDD imm8 m256 ymm k ymm -// VPSHRDD imm8 m256 ymm ymm -// VPSHRDD imm8 xmm xmm k xmm -// VPSHRDD imm8 xmm xmm xmm -// VPSHRDD imm8 ymm ymm k ymm -// VPSHRDD imm8 ymm ymm ymm -// VPSHRDD imm8 m512 zmm k zmm -// VPSHRDD imm8 m512 zmm zmm -// VPSHRDD imm8 zmm zmm k zmm -// VPSHRDD imm8 zmm zmm zmm -// -// Construct and append a VPSHRDD instruction to the active function. -func (c *Context) VPSHRDD(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDD(ops...)) -} - -// VPSHRDD: Concatenate Dwords and Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDD imm8 m128 xmm k xmm -// VPSHRDD imm8 m128 xmm xmm -// VPSHRDD imm8 m256 ymm k ymm -// VPSHRDD imm8 m256 ymm ymm -// VPSHRDD imm8 xmm xmm k xmm -// VPSHRDD imm8 xmm xmm xmm -// VPSHRDD imm8 ymm ymm k ymm -// VPSHRDD imm8 ymm ymm ymm -// VPSHRDD imm8 m512 zmm k zmm -// VPSHRDD imm8 m512 zmm zmm -// VPSHRDD imm8 zmm zmm k zmm -// VPSHRDD imm8 zmm zmm zmm -// -// Construct and append a VPSHRDD instruction to the active function. -// Operates on the global context. -func VPSHRDD(ops ...operand.Op) { ctx.VPSHRDD(ops...) } - -// VPSHRDD_BCST: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDD.BCST imm8 m32 xmm k xmm -// VPSHRDD.BCST imm8 m32 xmm xmm -// VPSHRDD.BCST imm8 m32 ymm k ymm -// VPSHRDD.BCST imm8 m32 ymm ymm -// VPSHRDD.BCST imm8 m32 zmm k zmm -// VPSHRDD.BCST imm8 m32 zmm zmm -// -// Construct and append a VPSHRDD.BCST instruction to the active function. -func (c *Context) VPSHRDD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDD_BCST(ops...)) -} - -// VPSHRDD_BCST: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDD.BCST imm8 m32 xmm k xmm -// VPSHRDD.BCST imm8 m32 xmm xmm -// VPSHRDD.BCST imm8 m32 ymm k ymm -// VPSHRDD.BCST imm8 m32 ymm ymm -// VPSHRDD.BCST imm8 m32 zmm k zmm -// VPSHRDD.BCST imm8 m32 zmm zmm -// -// Construct and append a VPSHRDD.BCST instruction to the active function. -// Operates on the global context. -func VPSHRDD_BCST(ops ...operand.Op) { ctx.VPSHRDD_BCST(ops...) } - -// VPSHRDD_BCST_Z: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDD.BCST.Z imm8 m32 xmm k xmm -// VPSHRDD.BCST.Z imm8 m32 ymm k ymm -// VPSHRDD.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VPSHRDD.BCST.Z instruction to the active function. -func (c *Context) VPSHRDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDD_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VPSHRDD_BCST_Z: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDD.BCST.Z imm8 m32 xmm k xmm -// VPSHRDD.BCST.Z imm8 m32 ymm k ymm -// VPSHRDD.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VPSHRDD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSHRDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPSHRDD_BCST_Z(i, m, xyz, k, xyz1) } - -// VPSHRDD_Z: Concatenate Dwords and Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDD.Z imm8 m128 xmm k xmm -// VPSHRDD.Z imm8 m256 ymm k ymm -// VPSHRDD.Z imm8 xmm xmm k xmm -// VPSHRDD.Z imm8 ymm ymm k ymm -// VPSHRDD.Z imm8 m512 zmm k zmm -// VPSHRDD.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHRDD.Z instruction to the active function. -func (c *Context) VPSHRDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDD_Z(i, mxyz, xyz, k, xyz1)) -} - -// VPSHRDD_Z: Concatenate Dwords and Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDD.Z imm8 m128 xmm k xmm -// VPSHRDD.Z imm8 m256 ymm k ymm -// VPSHRDD.Z imm8 xmm xmm k xmm -// VPSHRDD.Z imm8 ymm ymm k ymm -// VPSHRDD.Z imm8 m512 zmm k zmm -// VPSHRDD.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHRDD.Z instruction to the active function. -// Operates on the global context. -func VPSHRDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDD_Z(i, mxyz, xyz, k, xyz1) } - -// VPSHRDQ: Concatenate Quadwords and Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDQ imm8 m128 xmm k xmm -// VPSHRDQ imm8 m128 xmm xmm -// VPSHRDQ imm8 m256 ymm k ymm -// VPSHRDQ imm8 m256 ymm ymm -// VPSHRDQ imm8 xmm xmm k xmm -// VPSHRDQ imm8 xmm xmm xmm -// VPSHRDQ imm8 ymm ymm k ymm -// VPSHRDQ imm8 ymm ymm ymm -// VPSHRDQ imm8 m512 zmm k zmm -// VPSHRDQ imm8 m512 zmm zmm -// VPSHRDQ imm8 zmm zmm k zmm -// VPSHRDQ imm8 zmm zmm zmm -// -// Construct and append a VPSHRDQ instruction to the active function. -func (c *Context) VPSHRDQ(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDQ(ops...)) -} - -// VPSHRDQ: Concatenate Quadwords and Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDQ imm8 m128 xmm k xmm -// VPSHRDQ imm8 m128 xmm xmm -// VPSHRDQ imm8 m256 ymm k ymm -// VPSHRDQ imm8 m256 ymm ymm -// VPSHRDQ imm8 xmm xmm k xmm -// VPSHRDQ imm8 xmm xmm xmm -// VPSHRDQ imm8 ymm ymm k ymm -// VPSHRDQ imm8 ymm ymm ymm -// VPSHRDQ imm8 m512 zmm k zmm -// VPSHRDQ imm8 m512 zmm zmm -// VPSHRDQ imm8 zmm zmm k zmm -// VPSHRDQ imm8 zmm zmm zmm -// -// Construct and append a VPSHRDQ instruction to the active function. -// Operates on the global context. -func VPSHRDQ(ops ...operand.Op) { ctx.VPSHRDQ(ops...) } - -// VPSHRDQ_BCST: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDQ.BCST imm8 m64 xmm k xmm -// VPSHRDQ.BCST imm8 m64 xmm xmm -// VPSHRDQ.BCST imm8 m64 ymm k ymm -// VPSHRDQ.BCST imm8 m64 ymm ymm -// VPSHRDQ.BCST imm8 m64 zmm k zmm -// VPSHRDQ.BCST imm8 m64 zmm zmm -// -// Construct and append a VPSHRDQ.BCST instruction to the active function. -func (c *Context) VPSHRDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDQ_BCST(ops...)) -} - -// VPSHRDQ_BCST: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDQ.BCST imm8 m64 xmm k xmm -// VPSHRDQ.BCST imm8 m64 xmm xmm -// VPSHRDQ.BCST imm8 m64 ymm k ymm -// VPSHRDQ.BCST imm8 m64 ymm ymm -// VPSHRDQ.BCST imm8 m64 zmm k zmm -// VPSHRDQ.BCST imm8 m64 zmm zmm -// -// Construct and append a VPSHRDQ.BCST instruction to the active function. -// Operates on the global context. -func VPSHRDQ_BCST(ops ...operand.Op) { ctx.VPSHRDQ_BCST(ops...) } - -// VPSHRDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDQ.BCST.Z imm8 m64 xmm k xmm -// VPSHRDQ.BCST.Z imm8 m64 ymm k ymm -// VPSHRDQ.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VPSHRDQ.BCST.Z instruction to the active function. -func (c *Context) VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VPSHRDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDQ.BCST.Z imm8 m64 xmm k xmm -// VPSHRDQ.BCST.Z imm8 m64 ymm k ymm -// VPSHRDQ.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VPSHRDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1) } - -// VPSHRDQ_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDQ.Z imm8 m128 xmm k xmm -// VPSHRDQ.Z imm8 m256 ymm k ymm -// VPSHRDQ.Z imm8 xmm xmm k xmm -// VPSHRDQ.Z imm8 ymm ymm k ymm -// VPSHRDQ.Z imm8 m512 zmm k zmm -// VPSHRDQ.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHRDQ.Z instruction to the active function. -func (c *Context) VPSHRDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDQ_Z(i, mxyz, xyz, k, xyz1)) -} - -// VPSHRDQ_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDQ.Z imm8 m128 xmm k xmm -// VPSHRDQ.Z imm8 m256 ymm k ymm -// VPSHRDQ.Z imm8 xmm xmm k xmm -// VPSHRDQ.Z imm8 ymm ymm k ymm -// VPSHRDQ.Z imm8 m512 zmm k zmm -// VPSHRDQ.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHRDQ.Z instruction to the active function. -// Operates on the global context. -func VPSHRDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDQ_Z(i, mxyz, xyz, k, xyz1) } - -// VPSHRDVD: Concatenate Dwords and Variable Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDVD m128 xmm k xmm -// VPSHRDVD m128 xmm xmm -// VPSHRDVD m256 ymm k ymm -// VPSHRDVD m256 ymm ymm -// VPSHRDVD xmm xmm k xmm -// VPSHRDVD xmm xmm xmm -// VPSHRDVD ymm ymm k ymm -// VPSHRDVD ymm ymm ymm -// VPSHRDVD m512 zmm k zmm -// VPSHRDVD m512 zmm zmm -// VPSHRDVD zmm zmm k zmm -// VPSHRDVD zmm zmm zmm -// -// Construct and append a VPSHRDVD instruction to the active function. -func (c *Context) VPSHRDVD(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDVD(ops...)) -} - -// VPSHRDVD: Concatenate Dwords and Variable Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDVD m128 xmm k xmm -// VPSHRDVD m128 xmm xmm -// VPSHRDVD m256 ymm k ymm -// VPSHRDVD m256 ymm ymm -// VPSHRDVD xmm xmm k xmm -// VPSHRDVD xmm xmm xmm -// VPSHRDVD ymm ymm k ymm -// VPSHRDVD ymm ymm ymm -// VPSHRDVD m512 zmm k zmm -// VPSHRDVD m512 zmm zmm -// VPSHRDVD zmm zmm k zmm -// VPSHRDVD zmm zmm zmm -// -// Construct and append a VPSHRDVD instruction to the active function. -// Operates on the global context. -func VPSHRDVD(ops ...operand.Op) { ctx.VPSHRDVD(ops...) } - -// VPSHRDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDVD.BCST m32 xmm k xmm -// VPSHRDVD.BCST m32 xmm xmm -// VPSHRDVD.BCST m32 ymm k ymm -// VPSHRDVD.BCST m32 ymm ymm -// VPSHRDVD.BCST m32 zmm k zmm -// VPSHRDVD.BCST m32 zmm zmm -// -// Construct and append a VPSHRDVD.BCST instruction to the active function. -func (c *Context) VPSHRDVD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDVD_BCST(ops...)) -} - -// VPSHRDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDVD.BCST m32 xmm k xmm -// VPSHRDVD.BCST m32 xmm xmm -// VPSHRDVD.BCST m32 ymm k ymm -// VPSHRDVD.BCST m32 ymm ymm -// VPSHRDVD.BCST m32 zmm k zmm -// VPSHRDVD.BCST m32 zmm zmm -// -// Construct and append a VPSHRDVD.BCST instruction to the active function. -// Operates on the global context. -func VPSHRDVD_BCST(ops ...operand.Op) { ctx.VPSHRDVD_BCST(ops...) } - -// VPSHRDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDVD.BCST.Z m32 xmm k xmm -// VPSHRDVD.BCST.Z m32 ymm k ymm -// VPSHRDVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSHRDVD.BCST.Z instruction to the active function. -func (c *Context) VPSHRDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDVD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSHRDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDVD.BCST.Z m32 xmm k xmm -// VPSHRDVD.BCST.Z m32 ymm k ymm -// VPSHRDVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSHRDVD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSHRDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVD_BCST_Z(m, xyz, k, xyz1) } - -// VPSHRDVD_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDVD.Z m128 xmm k xmm -// VPSHRDVD.Z m256 ymm k ymm -// VPSHRDVD.Z xmm xmm k xmm -// VPSHRDVD.Z ymm ymm k ymm -// VPSHRDVD.Z m512 zmm k zmm -// VPSHRDVD.Z zmm zmm k zmm -// -// Construct and append a VPSHRDVD.Z instruction to the active function. -func (c *Context) VPSHRDVD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDVD_Z(mxyz, xyz, k, xyz1)) -} - -// VPSHRDVD_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDVD.Z m128 xmm k xmm -// VPSHRDVD.Z m256 ymm k ymm -// VPSHRDVD.Z xmm xmm k xmm -// VPSHRDVD.Z ymm ymm k ymm -// VPSHRDVD.Z m512 zmm k zmm -// VPSHRDVD.Z zmm zmm k zmm -// -// Construct and append a VPSHRDVD.Z instruction to the active function. -// Operates on the global context. -func VPSHRDVD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVD_Z(mxyz, xyz, k, xyz1) } - -// VPSHRDVQ: Concatenate Quadwords and Variable Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDVQ m128 xmm k xmm -// VPSHRDVQ m128 xmm xmm -// VPSHRDVQ m256 ymm k ymm -// VPSHRDVQ m256 ymm ymm -// VPSHRDVQ xmm xmm k xmm -// VPSHRDVQ xmm xmm xmm -// VPSHRDVQ ymm ymm k ymm -// VPSHRDVQ ymm ymm ymm -// VPSHRDVQ m512 zmm k zmm -// VPSHRDVQ m512 zmm zmm -// VPSHRDVQ zmm zmm k zmm -// VPSHRDVQ zmm zmm zmm -// -// Construct and append a VPSHRDVQ instruction to the active function. -func (c *Context) VPSHRDVQ(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDVQ(ops...)) -} - -// VPSHRDVQ: Concatenate Quadwords and Variable Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDVQ m128 xmm k xmm -// VPSHRDVQ m128 xmm xmm -// VPSHRDVQ m256 ymm k ymm -// VPSHRDVQ m256 ymm ymm -// VPSHRDVQ xmm xmm k xmm -// VPSHRDVQ xmm xmm xmm -// VPSHRDVQ ymm ymm k ymm -// VPSHRDVQ ymm ymm ymm -// VPSHRDVQ m512 zmm k zmm -// VPSHRDVQ m512 zmm zmm -// VPSHRDVQ zmm zmm k zmm -// VPSHRDVQ zmm zmm zmm -// -// Construct and append a VPSHRDVQ instruction to the active function. -// Operates on the global context. -func VPSHRDVQ(ops ...operand.Op) { ctx.VPSHRDVQ(ops...) } - -// VPSHRDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDVQ.BCST m64 xmm k xmm -// VPSHRDVQ.BCST m64 xmm xmm -// VPSHRDVQ.BCST m64 ymm k ymm -// VPSHRDVQ.BCST m64 ymm ymm -// VPSHRDVQ.BCST m64 zmm k zmm -// VPSHRDVQ.BCST m64 zmm zmm -// -// Construct and append a VPSHRDVQ.BCST instruction to the active function. -func (c *Context) VPSHRDVQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDVQ_BCST(ops...)) -} - -// VPSHRDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDVQ.BCST m64 xmm k xmm -// VPSHRDVQ.BCST m64 xmm xmm -// VPSHRDVQ.BCST m64 ymm k ymm -// VPSHRDVQ.BCST m64 ymm ymm -// VPSHRDVQ.BCST m64 zmm k zmm -// VPSHRDVQ.BCST m64 zmm zmm -// -// Construct and append a VPSHRDVQ.BCST instruction to the active function. -// Operates on the global context. -func VPSHRDVQ_BCST(ops ...operand.Op) { ctx.VPSHRDVQ_BCST(ops...) } - -// VPSHRDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDVQ.BCST.Z m64 xmm k xmm -// VPSHRDVQ.BCST.Z m64 ymm k ymm -// VPSHRDVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSHRDVQ.BCST.Z instruction to the active function. -func (c *Context) VPSHRDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDVQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSHRDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDVQ.BCST.Z m64 xmm k xmm -// VPSHRDVQ.BCST.Z m64 ymm k ymm -// VPSHRDVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSHRDVQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSHRDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVQ_BCST_Z(m, xyz, k, xyz1) } - -// VPSHRDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDVQ.Z m128 xmm k xmm -// VPSHRDVQ.Z m256 ymm k ymm -// VPSHRDVQ.Z xmm xmm k xmm -// VPSHRDVQ.Z ymm ymm k ymm -// VPSHRDVQ.Z m512 zmm k zmm -// VPSHRDVQ.Z zmm zmm k zmm -// -// Construct and append a VPSHRDVQ.Z instruction to the active function. -func (c *Context) VPSHRDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDVQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPSHRDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDVQ.Z m128 xmm k xmm -// VPSHRDVQ.Z m256 ymm k ymm -// VPSHRDVQ.Z xmm xmm k xmm -// VPSHRDVQ.Z ymm ymm k ymm -// VPSHRDVQ.Z m512 zmm k zmm -// VPSHRDVQ.Z zmm zmm k zmm -// -// Construct and append a VPSHRDVQ.Z instruction to the active function. -// Operates on the global context. -func VPSHRDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVQ_Z(mxyz, xyz, k, xyz1) } - -// VPSHRDVW: Concatenate Words and Variable Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDVW m128 xmm k xmm -// VPSHRDVW m128 xmm xmm -// VPSHRDVW m256 ymm k ymm -// VPSHRDVW m256 ymm ymm -// VPSHRDVW xmm xmm k xmm -// VPSHRDVW xmm xmm xmm -// VPSHRDVW ymm ymm k ymm -// VPSHRDVW ymm ymm ymm -// VPSHRDVW m512 zmm k zmm -// VPSHRDVW m512 zmm zmm -// VPSHRDVW zmm zmm k zmm -// VPSHRDVW zmm zmm zmm -// -// Construct and append a VPSHRDVW instruction to the active function. -func (c *Context) VPSHRDVW(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDVW(ops...)) -} - -// VPSHRDVW: Concatenate Words and Variable Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDVW m128 xmm k xmm -// VPSHRDVW m128 xmm xmm -// VPSHRDVW m256 ymm k ymm -// VPSHRDVW m256 ymm ymm -// VPSHRDVW xmm xmm k xmm -// VPSHRDVW xmm xmm xmm -// VPSHRDVW ymm ymm k ymm -// VPSHRDVW ymm ymm ymm -// VPSHRDVW m512 zmm k zmm -// VPSHRDVW m512 zmm zmm -// VPSHRDVW zmm zmm k zmm -// VPSHRDVW zmm zmm zmm -// -// Construct and append a VPSHRDVW instruction to the active function. -// Operates on the global context. -func VPSHRDVW(ops ...operand.Op) { ctx.VPSHRDVW(ops...) } - -// VPSHRDVW_Z: Concatenate Words and Variable Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDVW.Z m128 xmm k xmm -// VPSHRDVW.Z m256 ymm k ymm -// VPSHRDVW.Z xmm xmm k xmm -// VPSHRDVW.Z ymm ymm k ymm -// VPSHRDVW.Z m512 zmm k zmm -// VPSHRDVW.Z zmm zmm k zmm -// -// Construct and append a VPSHRDVW.Z instruction to the active function. -func (c *Context) VPSHRDVW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDVW_Z(mxyz, xyz, k, xyz1)) -} - -// VPSHRDVW_Z: Concatenate Words and Variable Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDVW.Z m128 xmm k xmm -// VPSHRDVW.Z m256 ymm k ymm -// VPSHRDVW.Z xmm xmm k xmm -// VPSHRDVW.Z ymm ymm k ymm -// VPSHRDVW.Z m512 zmm k zmm -// VPSHRDVW.Z zmm zmm k zmm -// -// Construct and append a VPSHRDVW.Z instruction to the active function. -// Operates on the global context. -func VPSHRDVW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDVW_Z(mxyz, xyz, k, xyz1) } - -// VPSHRDW: Concatenate Words and Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDW imm8 m128 xmm k xmm -// VPSHRDW imm8 m128 xmm xmm -// VPSHRDW imm8 m256 ymm k ymm -// VPSHRDW imm8 m256 ymm ymm -// VPSHRDW imm8 xmm xmm k xmm -// VPSHRDW imm8 xmm xmm xmm -// VPSHRDW imm8 ymm ymm k ymm -// VPSHRDW imm8 ymm ymm ymm -// VPSHRDW imm8 m512 zmm k zmm -// VPSHRDW imm8 m512 zmm zmm -// VPSHRDW imm8 zmm zmm k zmm -// VPSHRDW imm8 zmm zmm zmm -// -// Construct and append a VPSHRDW instruction to the active function. -func (c *Context) VPSHRDW(ops ...operand.Op) { - c.addinstruction(x86.VPSHRDW(ops...)) -} - -// VPSHRDW: Concatenate Words and Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDW imm8 m128 xmm k xmm -// VPSHRDW imm8 m128 xmm xmm -// VPSHRDW imm8 m256 ymm k ymm -// VPSHRDW imm8 m256 ymm ymm -// VPSHRDW imm8 xmm xmm k xmm -// VPSHRDW imm8 xmm xmm xmm -// VPSHRDW imm8 ymm ymm k ymm -// VPSHRDW imm8 ymm ymm ymm -// VPSHRDW imm8 m512 zmm k zmm -// VPSHRDW imm8 m512 zmm zmm -// VPSHRDW imm8 zmm zmm k zmm -// VPSHRDW imm8 zmm zmm zmm -// -// Construct and append a VPSHRDW instruction to the active function. -// Operates on the global context. -func VPSHRDW(ops ...operand.Op) { ctx.VPSHRDW(ops...) } - -// VPSHRDW_Z: Concatenate Words and Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDW.Z imm8 m128 xmm k xmm -// VPSHRDW.Z imm8 m256 ymm k ymm -// VPSHRDW.Z imm8 xmm xmm k xmm -// VPSHRDW.Z imm8 ymm ymm k ymm -// VPSHRDW.Z imm8 m512 zmm k zmm -// VPSHRDW.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHRDW.Z instruction to the active function. -func (c *Context) VPSHRDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHRDW_Z(i, mxyz, xyz, k, xyz1)) -} - -// VPSHRDW_Z: Concatenate Words and Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDW.Z imm8 m128 xmm k xmm -// VPSHRDW.Z imm8 m256 ymm k ymm -// VPSHRDW.Z imm8 xmm xmm k xmm -// VPSHRDW.Z imm8 ymm ymm k ymm -// VPSHRDW.Z imm8 m512 zmm k zmm -// VPSHRDW.Z imm8 zmm zmm k zmm -// -// Construct and append a VPSHRDW.Z instruction to the active function. -// Operates on the global context. -func VPSHRDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHRDW_Z(i, mxyz, xyz, k, xyz1) } - -// VPSHUFB: Packed Shuffle Bytes. -// -// Forms: -// -// VPSHUFB m256 ymm ymm -// VPSHUFB ymm ymm ymm -// VPSHUFB m128 xmm xmm -// VPSHUFB xmm xmm xmm -// VPSHUFB m128 xmm k xmm -// VPSHUFB m256 ymm k ymm -// VPSHUFB xmm xmm k xmm -// VPSHUFB ymm ymm k ymm -// VPSHUFB m512 zmm k zmm -// VPSHUFB m512 zmm zmm -// VPSHUFB zmm zmm k zmm -// VPSHUFB zmm zmm zmm -// -// Construct and append a VPSHUFB instruction to the active function. -func (c *Context) VPSHUFB(ops ...operand.Op) { - c.addinstruction(x86.VPSHUFB(ops...)) -} - -// VPSHUFB: Packed Shuffle Bytes. -// -// Forms: -// -// VPSHUFB m256 ymm ymm -// VPSHUFB ymm ymm ymm -// VPSHUFB m128 xmm xmm -// VPSHUFB xmm xmm xmm -// VPSHUFB m128 xmm k xmm -// VPSHUFB m256 ymm k ymm -// VPSHUFB xmm xmm k xmm -// VPSHUFB ymm ymm k ymm -// VPSHUFB m512 zmm k zmm -// VPSHUFB m512 zmm zmm -// VPSHUFB zmm zmm k zmm -// VPSHUFB zmm zmm zmm -// -// Construct and append a VPSHUFB instruction to the active function. -// Operates on the global context. -func VPSHUFB(ops ...operand.Op) { ctx.VPSHUFB(ops...) } - -// VPSHUFBITQMB: Shuffle Bits from Quadword Elements Using Byte Indexes into Mask. -// -// Forms: -// -// VPSHUFBITQMB m128 xmm k k -// VPSHUFBITQMB m128 xmm k -// VPSHUFBITQMB m256 ymm k k -// VPSHUFBITQMB m256 ymm k -// VPSHUFBITQMB xmm xmm k k -// VPSHUFBITQMB xmm xmm k -// VPSHUFBITQMB ymm ymm k k -// VPSHUFBITQMB ymm ymm k -// VPSHUFBITQMB zmm zmm k k -// VPSHUFBITQMB zmm zmm k -// VPSHUFBITQMB m512 zmm k k -// VPSHUFBITQMB m512 zmm k -// -// Construct and append a VPSHUFBITQMB instruction to the active function. -func (c *Context) VPSHUFBITQMB(ops ...operand.Op) { - c.addinstruction(x86.VPSHUFBITQMB(ops...)) -} - -// VPSHUFBITQMB: Shuffle Bits from Quadword Elements Using Byte Indexes into Mask. -// -// Forms: -// -// VPSHUFBITQMB m128 xmm k k -// VPSHUFBITQMB m128 xmm k -// VPSHUFBITQMB m256 ymm k k -// VPSHUFBITQMB m256 ymm k -// VPSHUFBITQMB xmm xmm k k -// VPSHUFBITQMB xmm xmm k -// VPSHUFBITQMB ymm ymm k k -// VPSHUFBITQMB ymm ymm k -// VPSHUFBITQMB zmm zmm k k -// VPSHUFBITQMB zmm zmm k -// VPSHUFBITQMB m512 zmm k k -// VPSHUFBITQMB m512 zmm k -// -// Construct and append a VPSHUFBITQMB instruction to the active function. -// Operates on the global context. -func VPSHUFBITQMB(ops ...operand.Op) { ctx.VPSHUFBITQMB(ops...) } - -// VPSHUFB_Z: Packed Shuffle Bytes (Zeroing Masking). -// -// Forms: -// -// VPSHUFB.Z m128 xmm k xmm -// VPSHUFB.Z m256 ymm k ymm -// VPSHUFB.Z xmm xmm k xmm -// VPSHUFB.Z ymm ymm k ymm -// VPSHUFB.Z m512 zmm k zmm -// VPSHUFB.Z zmm zmm k zmm -// -// Construct and append a VPSHUFB.Z instruction to the active function. -func (c *Context) VPSHUFB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSHUFB_Z(mxyz, xyz, k, xyz1)) -} - -// VPSHUFB_Z: Packed Shuffle Bytes (Zeroing Masking). -// -// Forms: -// -// VPSHUFB.Z m128 xmm k xmm -// VPSHUFB.Z m256 ymm k ymm -// VPSHUFB.Z xmm xmm k xmm -// VPSHUFB.Z ymm ymm k ymm -// VPSHUFB.Z m512 zmm k zmm -// VPSHUFB.Z zmm zmm k zmm -// -// Construct and append a VPSHUFB.Z instruction to the active function. -// Operates on the global context. -func VPSHUFB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSHUFB_Z(mxyz, xyz, k, xyz1) } - -// VPSHUFD: Shuffle Packed Doublewords. -// -// Forms: -// -// VPSHUFD imm8 m256 ymm -// VPSHUFD imm8 ymm ymm -// VPSHUFD imm8 m128 xmm -// VPSHUFD imm8 xmm xmm -// VPSHUFD imm8 m128 k xmm -// VPSHUFD imm8 m256 k ymm -// VPSHUFD imm8 xmm k xmm -// VPSHUFD imm8 ymm k ymm -// VPSHUFD imm8 m512 k zmm -// VPSHUFD imm8 m512 zmm -// VPSHUFD imm8 zmm k zmm -// VPSHUFD imm8 zmm zmm -// -// Construct and append a VPSHUFD instruction to the active function. -func (c *Context) VPSHUFD(ops ...operand.Op) { - c.addinstruction(x86.VPSHUFD(ops...)) -} - -// VPSHUFD: Shuffle Packed Doublewords. -// -// Forms: -// -// VPSHUFD imm8 m256 ymm -// VPSHUFD imm8 ymm ymm -// VPSHUFD imm8 m128 xmm -// VPSHUFD imm8 xmm xmm -// VPSHUFD imm8 m128 k xmm -// VPSHUFD imm8 m256 k ymm -// VPSHUFD imm8 xmm k xmm -// VPSHUFD imm8 ymm k ymm -// VPSHUFD imm8 m512 k zmm -// VPSHUFD imm8 m512 zmm -// VPSHUFD imm8 zmm k zmm -// VPSHUFD imm8 zmm zmm -// -// Construct and append a VPSHUFD instruction to the active function. -// Operates on the global context. -func VPSHUFD(ops ...operand.Op) { ctx.VPSHUFD(ops...) } - -// VPSHUFD_BCST: Shuffle Packed Doublewords (Broadcast). -// -// Forms: -// -// VPSHUFD.BCST imm8 m32 k xmm -// VPSHUFD.BCST imm8 m32 k ymm -// VPSHUFD.BCST imm8 m32 xmm -// VPSHUFD.BCST imm8 m32 ymm -// VPSHUFD.BCST imm8 m32 k zmm -// VPSHUFD.BCST imm8 m32 zmm -// -// Construct and append a VPSHUFD.BCST instruction to the active function. -func (c *Context) VPSHUFD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSHUFD_BCST(ops...)) -} - -// VPSHUFD_BCST: Shuffle Packed Doublewords (Broadcast). -// -// Forms: -// -// VPSHUFD.BCST imm8 m32 k xmm -// VPSHUFD.BCST imm8 m32 k ymm -// VPSHUFD.BCST imm8 m32 xmm -// VPSHUFD.BCST imm8 m32 ymm -// VPSHUFD.BCST imm8 m32 k zmm -// VPSHUFD.BCST imm8 m32 zmm -// -// Construct and append a VPSHUFD.BCST instruction to the active function. -// Operates on the global context. -func VPSHUFD_BCST(ops ...operand.Op) { ctx.VPSHUFD_BCST(ops...) } - -// VPSHUFD_BCST_Z: Shuffle Packed Doublewords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHUFD.BCST.Z imm8 m32 k xmm -// VPSHUFD.BCST.Z imm8 m32 k ymm -// VPSHUFD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPSHUFD.BCST.Z instruction to the active function. -func (c *Context) VPSHUFD_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPSHUFD_BCST_Z(i, m, k, xyz)) -} - -// VPSHUFD_BCST_Z: Shuffle Packed Doublewords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHUFD.BCST.Z imm8 m32 k xmm -// VPSHUFD.BCST.Z imm8 m32 k ymm -// VPSHUFD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPSHUFD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSHUFD_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPSHUFD_BCST_Z(i, m, k, xyz) } - -// VPSHUFD_Z: Shuffle Packed Doublewords (Zeroing Masking). -// -// Forms: -// -// VPSHUFD.Z imm8 m128 k xmm -// VPSHUFD.Z imm8 m256 k ymm -// VPSHUFD.Z imm8 xmm k xmm -// VPSHUFD.Z imm8 ymm k ymm -// VPSHUFD.Z imm8 m512 k zmm -// VPSHUFD.Z imm8 zmm k zmm -// -// Construct and append a VPSHUFD.Z instruction to the active function. -func (c *Context) VPSHUFD_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSHUFD_Z(i, mxyz, k, xyz)) -} - -// VPSHUFD_Z: Shuffle Packed Doublewords (Zeroing Masking). -// -// Forms: -// -// VPSHUFD.Z imm8 m128 k xmm -// VPSHUFD.Z imm8 m256 k ymm -// VPSHUFD.Z imm8 xmm k xmm -// VPSHUFD.Z imm8 ymm k ymm -// VPSHUFD.Z imm8 m512 k zmm -// VPSHUFD.Z imm8 zmm k zmm -// -// Construct and append a VPSHUFD.Z instruction to the active function. -// Operates on the global context. -func VPSHUFD_Z(i, mxyz, k, xyz operand.Op) { ctx.VPSHUFD_Z(i, mxyz, k, xyz) } - -// VPSHUFHW: Shuffle Packed High Words. -// -// Forms: -// -// VPSHUFHW imm8 m256 ymm -// VPSHUFHW imm8 ymm ymm -// VPSHUFHW imm8 m128 xmm -// VPSHUFHW imm8 xmm xmm -// VPSHUFHW imm8 m128 k xmm -// VPSHUFHW imm8 m256 k ymm -// VPSHUFHW imm8 xmm k xmm -// VPSHUFHW imm8 ymm k ymm -// VPSHUFHW imm8 m512 k zmm -// VPSHUFHW imm8 m512 zmm -// VPSHUFHW imm8 zmm k zmm -// VPSHUFHW imm8 zmm zmm -// -// Construct and append a VPSHUFHW instruction to the active function. -func (c *Context) VPSHUFHW(ops ...operand.Op) { - c.addinstruction(x86.VPSHUFHW(ops...)) -} - -// VPSHUFHW: Shuffle Packed High Words. -// -// Forms: -// -// VPSHUFHW imm8 m256 ymm -// VPSHUFHW imm8 ymm ymm -// VPSHUFHW imm8 m128 xmm -// VPSHUFHW imm8 xmm xmm -// VPSHUFHW imm8 m128 k xmm -// VPSHUFHW imm8 m256 k ymm -// VPSHUFHW imm8 xmm k xmm -// VPSHUFHW imm8 ymm k ymm -// VPSHUFHW imm8 m512 k zmm -// VPSHUFHW imm8 m512 zmm -// VPSHUFHW imm8 zmm k zmm -// VPSHUFHW imm8 zmm zmm -// -// Construct and append a VPSHUFHW instruction to the active function. -// Operates on the global context. -func VPSHUFHW(ops ...operand.Op) { ctx.VPSHUFHW(ops...) } - -// VPSHUFHW_Z: Shuffle Packed High Words (Zeroing Masking). -// -// Forms: -// -// VPSHUFHW.Z imm8 m128 k xmm -// VPSHUFHW.Z imm8 m256 k ymm -// VPSHUFHW.Z imm8 xmm k xmm -// VPSHUFHW.Z imm8 ymm k ymm -// VPSHUFHW.Z imm8 m512 k zmm -// VPSHUFHW.Z imm8 zmm k zmm -// -// Construct and append a VPSHUFHW.Z instruction to the active function. -func (c *Context) VPSHUFHW_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSHUFHW_Z(i, mxyz, k, xyz)) -} - -// VPSHUFHW_Z: Shuffle Packed High Words (Zeroing Masking). -// -// Forms: -// -// VPSHUFHW.Z imm8 m128 k xmm -// VPSHUFHW.Z imm8 m256 k ymm -// VPSHUFHW.Z imm8 xmm k xmm -// VPSHUFHW.Z imm8 ymm k ymm -// VPSHUFHW.Z imm8 m512 k zmm -// VPSHUFHW.Z imm8 zmm k zmm -// -// Construct and append a VPSHUFHW.Z instruction to the active function. -// Operates on the global context. -func VPSHUFHW_Z(i, mxyz, k, xyz operand.Op) { ctx.VPSHUFHW_Z(i, mxyz, k, xyz) } - -// VPSHUFLW: Shuffle Packed Low Words. -// -// Forms: -// -// VPSHUFLW imm8 m256 ymm -// VPSHUFLW imm8 ymm ymm -// VPSHUFLW imm8 m128 xmm -// VPSHUFLW imm8 xmm xmm -// VPSHUFLW imm8 m128 k xmm -// VPSHUFLW imm8 m256 k ymm -// VPSHUFLW imm8 xmm k xmm -// VPSHUFLW imm8 ymm k ymm -// VPSHUFLW imm8 m512 k zmm -// VPSHUFLW imm8 m512 zmm -// VPSHUFLW imm8 zmm k zmm -// VPSHUFLW imm8 zmm zmm -// -// Construct and append a VPSHUFLW instruction to the active function. -func (c *Context) VPSHUFLW(ops ...operand.Op) { - c.addinstruction(x86.VPSHUFLW(ops...)) -} - -// VPSHUFLW: Shuffle Packed Low Words. -// -// Forms: -// -// VPSHUFLW imm8 m256 ymm -// VPSHUFLW imm8 ymm ymm -// VPSHUFLW imm8 m128 xmm -// VPSHUFLW imm8 xmm xmm -// VPSHUFLW imm8 m128 k xmm -// VPSHUFLW imm8 m256 k ymm -// VPSHUFLW imm8 xmm k xmm -// VPSHUFLW imm8 ymm k ymm -// VPSHUFLW imm8 m512 k zmm -// VPSHUFLW imm8 m512 zmm -// VPSHUFLW imm8 zmm k zmm -// VPSHUFLW imm8 zmm zmm -// -// Construct and append a VPSHUFLW instruction to the active function. -// Operates on the global context. -func VPSHUFLW(ops ...operand.Op) { ctx.VPSHUFLW(ops...) } - -// VPSHUFLW_Z: Shuffle Packed Low Words (Zeroing Masking). -// -// Forms: -// -// VPSHUFLW.Z imm8 m128 k xmm -// VPSHUFLW.Z imm8 m256 k ymm -// VPSHUFLW.Z imm8 xmm k xmm -// VPSHUFLW.Z imm8 ymm k ymm -// VPSHUFLW.Z imm8 m512 k zmm -// VPSHUFLW.Z imm8 zmm k zmm -// -// Construct and append a VPSHUFLW.Z instruction to the active function. -func (c *Context) VPSHUFLW_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSHUFLW_Z(i, mxyz, k, xyz)) -} - -// VPSHUFLW_Z: Shuffle Packed Low Words (Zeroing Masking). -// -// Forms: -// -// VPSHUFLW.Z imm8 m128 k xmm -// VPSHUFLW.Z imm8 m256 k ymm -// VPSHUFLW.Z imm8 xmm k xmm -// VPSHUFLW.Z imm8 ymm k ymm -// VPSHUFLW.Z imm8 m512 k zmm -// VPSHUFLW.Z imm8 zmm k zmm -// -// Construct and append a VPSHUFLW.Z instruction to the active function. -// Operates on the global context. -func VPSHUFLW_Z(i, mxyz, k, xyz operand.Op) { ctx.VPSHUFLW_Z(i, mxyz, k, xyz) } - -// VPSIGNB: Packed Sign of Byte Integers. -// -// Forms: -// -// VPSIGNB m256 ymm ymm -// VPSIGNB ymm ymm ymm -// VPSIGNB m128 xmm xmm -// VPSIGNB xmm xmm xmm -// -// Construct and append a VPSIGNB instruction to the active function. -func (c *Context) VPSIGNB(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPSIGNB(mxy, xy, xy1)) -} - -// VPSIGNB: Packed Sign of Byte Integers. -// -// Forms: -// -// VPSIGNB m256 ymm ymm -// VPSIGNB ymm ymm ymm -// VPSIGNB m128 xmm xmm -// VPSIGNB xmm xmm xmm -// -// Construct and append a VPSIGNB instruction to the active function. -// Operates on the global context. -func VPSIGNB(mxy, xy, xy1 operand.Op) { ctx.VPSIGNB(mxy, xy, xy1) } - -// VPSIGND: Packed Sign of Doubleword Integers. -// -// Forms: -// -// VPSIGND m256 ymm ymm -// VPSIGND ymm ymm ymm -// VPSIGND m128 xmm xmm -// VPSIGND xmm xmm xmm -// -// Construct and append a VPSIGND instruction to the active function. -func (c *Context) VPSIGND(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPSIGND(mxy, xy, xy1)) -} - -// VPSIGND: Packed Sign of Doubleword Integers. -// -// Forms: -// -// VPSIGND m256 ymm ymm -// VPSIGND ymm ymm ymm -// VPSIGND m128 xmm xmm -// VPSIGND xmm xmm xmm -// -// Construct and append a VPSIGND instruction to the active function. -// Operates on the global context. -func VPSIGND(mxy, xy, xy1 operand.Op) { ctx.VPSIGND(mxy, xy, xy1) } - -// VPSIGNW: Packed Sign of Word Integers. -// -// Forms: -// -// VPSIGNW m256 ymm ymm -// VPSIGNW ymm ymm ymm -// VPSIGNW m128 xmm xmm -// VPSIGNW xmm xmm xmm -// -// Construct and append a VPSIGNW instruction to the active function. -func (c *Context) VPSIGNW(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPSIGNW(mxy, xy, xy1)) -} - -// VPSIGNW: Packed Sign of Word Integers. -// -// Forms: -// -// VPSIGNW m256 ymm ymm -// VPSIGNW ymm ymm ymm -// VPSIGNW m128 xmm xmm -// VPSIGNW xmm xmm xmm -// -// Construct and append a VPSIGNW instruction to the active function. -// Operates on the global context. -func VPSIGNW(mxy, xy, xy1 operand.Op) { ctx.VPSIGNW(mxy, xy, xy1) } - -// VPSLLD: Shift Packed Doubleword Data Left Logical. -// -// Forms: -// -// VPSLLD imm8 ymm ymm -// VPSLLD m128 ymm ymm -// VPSLLD xmm ymm ymm -// VPSLLD imm8 xmm xmm -// VPSLLD m128 xmm xmm -// VPSLLD xmm xmm xmm -// VPSLLD imm8 m128 k xmm -// VPSLLD imm8 m128 xmm -// VPSLLD imm8 m256 k ymm -// VPSLLD imm8 m256 ymm -// VPSLLD imm8 xmm k xmm -// VPSLLD imm8 ymm k ymm -// VPSLLD m128 xmm k xmm -// VPSLLD m128 ymm k ymm -// VPSLLD xmm xmm k xmm -// VPSLLD xmm ymm k ymm -// VPSLLD imm8 m512 k zmm -// VPSLLD imm8 m512 zmm -// VPSLLD imm8 zmm k zmm -// VPSLLD imm8 zmm zmm -// VPSLLD m128 zmm k zmm -// VPSLLD m128 zmm zmm -// VPSLLD xmm zmm k zmm -// VPSLLD xmm zmm zmm -// -// Construct and append a VPSLLD instruction to the active function. -func (c *Context) VPSLLD(ops ...operand.Op) { - c.addinstruction(x86.VPSLLD(ops...)) -} - -// VPSLLD: Shift Packed Doubleword Data Left Logical. -// -// Forms: -// -// VPSLLD imm8 ymm ymm -// VPSLLD m128 ymm ymm -// VPSLLD xmm ymm ymm -// VPSLLD imm8 xmm xmm -// VPSLLD m128 xmm xmm -// VPSLLD xmm xmm xmm -// VPSLLD imm8 m128 k xmm -// VPSLLD imm8 m128 xmm -// VPSLLD imm8 m256 k ymm -// VPSLLD imm8 m256 ymm -// VPSLLD imm8 xmm k xmm -// VPSLLD imm8 ymm k ymm -// VPSLLD m128 xmm k xmm -// VPSLLD m128 ymm k ymm -// VPSLLD xmm xmm k xmm -// VPSLLD xmm ymm k ymm -// VPSLLD imm8 m512 k zmm -// VPSLLD imm8 m512 zmm -// VPSLLD imm8 zmm k zmm -// VPSLLD imm8 zmm zmm -// VPSLLD m128 zmm k zmm -// VPSLLD m128 zmm zmm -// VPSLLD xmm zmm k zmm -// VPSLLD xmm zmm zmm -// -// Construct and append a VPSLLD instruction to the active function. -// Operates on the global context. -func VPSLLD(ops ...operand.Op) { ctx.VPSLLD(ops...) } - -// VPSLLDQ: Shift Packed Double Quadword Left Logical. -// -// Forms: -// -// VPSLLDQ imm8 ymm ymm -// VPSLLDQ imm8 xmm xmm -// VPSLLDQ imm8 m128 xmm -// VPSLLDQ imm8 m256 ymm -// VPSLLDQ imm8 m512 zmm -// VPSLLDQ imm8 zmm zmm -// -// Construct and append a VPSLLDQ instruction to the active function. -func (c *Context) VPSLLDQ(i, mxyz, xyz operand.Op) { - c.addinstruction(x86.VPSLLDQ(i, mxyz, xyz)) -} - -// VPSLLDQ: Shift Packed Double Quadword Left Logical. -// -// Forms: -// -// VPSLLDQ imm8 ymm ymm -// VPSLLDQ imm8 xmm xmm -// VPSLLDQ imm8 m128 xmm -// VPSLLDQ imm8 m256 ymm -// VPSLLDQ imm8 m512 zmm -// VPSLLDQ imm8 zmm zmm -// -// Construct and append a VPSLLDQ instruction to the active function. -// Operates on the global context. -func VPSLLDQ(i, mxyz, xyz operand.Op) { ctx.VPSLLDQ(i, mxyz, xyz) } - -// VPSLLD_BCST: Shift Packed Doubleword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLD.BCST imm8 m32 k xmm -// VPSLLD.BCST imm8 m32 k ymm -// VPSLLD.BCST imm8 m32 xmm -// VPSLLD.BCST imm8 m32 ymm -// VPSLLD.BCST imm8 m32 k zmm -// VPSLLD.BCST imm8 m32 zmm -// -// Construct and append a VPSLLD.BCST instruction to the active function. -func (c *Context) VPSLLD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSLLD_BCST(ops...)) -} - -// VPSLLD_BCST: Shift Packed Doubleword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLD.BCST imm8 m32 k xmm -// VPSLLD.BCST imm8 m32 k ymm -// VPSLLD.BCST imm8 m32 xmm -// VPSLLD.BCST imm8 m32 ymm -// VPSLLD.BCST imm8 m32 k zmm -// VPSLLD.BCST imm8 m32 zmm -// -// Construct and append a VPSLLD.BCST instruction to the active function. -// Operates on the global context. -func VPSLLD_BCST(ops ...operand.Op) { ctx.VPSLLD_BCST(ops...) } - -// VPSLLD_BCST_Z: Shift Packed Doubleword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLD.BCST.Z imm8 m32 k xmm -// VPSLLD.BCST.Z imm8 m32 k ymm -// VPSLLD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPSLLD.BCST.Z instruction to the active function. -func (c *Context) VPSLLD_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPSLLD_BCST_Z(i, m, k, xyz)) -} - -// VPSLLD_BCST_Z: Shift Packed Doubleword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLD.BCST.Z imm8 m32 k xmm -// VPSLLD.BCST.Z imm8 m32 k ymm -// VPSLLD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPSLLD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSLLD_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPSLLD_BCST_Z(i, m, k, xyz) } - -// VPSLLD_Z: Shift Packed Doubleword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLD.Z imm8 m128 k xmm -// VPSLLD.Z imm8 m256 k ymm -// VPSLLD.Z imm8 xmm k xmm -// VPSLLD.Z imm8 ymm k ymm -// VPSLLD.Z m128 xmm k xmm -// VPSLLD.Z m128 ymm k ymm -// VPSLLD.Z xmm xmm k xmm -// VPSLLD.Z xmm ymm k ymm -// VPSLLD.Z imm8 m512 k zmm -// VPSLLD.Z imm8 zmm k zmm -// VPSLLD.Z m128 zmm k zmm -// VPSLLD.Z xmm zmm k zmm -// -// Construct and append a VPSLLD.Z instruction to the active function. -func (c *Context) VPSLLD_Z(imx, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSLLD_Z(imx, mxyz, k, xyz)) -} - -// VPSLLD_Z: Shift Packed Doubleword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLD.Z imm8 m128 k xmm -// VPSLLD.Z imm8 m256 k ymm -// VPSLLD.Z imm8 xmm k xmm -// VPSLLD.Z imm8 ymm k ymm -// VPSLLD.Z m128 xmm k xmm -// VPSLLD.Z m128 ymm k ymm -// VPSLLD.Z xmm xmm k xmm -// VPSLLD.Z xmm ymm k ymm -// VPSLLD.Z imm8 m512 k zmm -// VPSLLD.Z imm8 zmm k zmm -// VPSLLD.Z m128 zmm k zmm -// VPSLLD.Z xmm zmm k zmm -// -// Construct and append a VPSLLD.Z instruction to the active function. -// Operates on the global context. -func VPSLLD_Z(imx, mxyz, k, xyz operand.Op) { ctx.VPSLLD_Z(imx, mxyz, k, xyz) } - -// VPSLLQ: Shift Packed Quadword Data Left Logical. -// -// Forms: -// -// VPSLLQ imm8 ymm ymm -// VPSLLQ m128 ymm ymm -// VPSLLQ xmm ymm ymm -// VPSLLQ imm8 xmm xmm -// VPSLLQ m128 xmm xmm -// VPSLLQ xmm xmm xmm -// VPSLLQ imm8 m128 k xmm -// VPSLLQ imm8 m128 xmm -// VPSLLQ imm8 m256 k ymm -// VPSLLQ imm8 m256 ymm -// VPSLLQ imm8 xmm k xmm -// VPSLLQ imm8 ymm k ymm -// VPSLLQ m128 xmm k xmm -// VPSLLQ m128 ymm k ymm -// VPSLLQ xmm xmm k xmm -// VPSLLQ xmm ymm k ymm -// VPSLLQ imm8 m512 k zmm -// VPSLLQ imm8 m512 zmm -// VPSLLQ imm8 zmm k zmm -// VPSLLQ imm8 zmm zmm -// VPSLLQ m128 zmm k zmm -// VPSLLQ m128 zmm zmm -// VPSLLQ xmm zmm k zmm -// VPSLLQ xmm zmm zmm -// -// Construct and append a VPSLLQ instruction to the active function. -func (c *Context) VPSLLQ(ops ...operand.Op) { - c.addinstruction(x86.VPSLLQ(ops...)) -} - -// VPSLLQ: Shift Packed Quadword Data Left Logical. -// -// Forms: -// -// VPSLLQ imm8 ymm ymm -// VPSLLQ m128 ymm ymm -// VPSLLQ xmm ymm ymm -// VPSLLQ imm8 xmm xmm -// VPSLLQ m128 xmm xmm -// VPSLLQ xmm xmm xmm -// VPSLLQ imm8 m128 k xmm -// VPSLLQ imm8 m128 xmm -// VPSLLQ imm8 m256 k ymm -// VPSLLQ imm8 m256 ymm -// VPSLLQ imm8 xmm k xmm -// VPSLLQ imm8 ymm k ymm -// VPSLLQ m128 xmm k xmm -// VPSLLQ m128 ymm k ymm -// VPSLLQ xmm xmm k xmm -// VPSLLQ xmm ymm k ymm -// VPSLLQ imm8 m512 k zmm -// VPSLLQ imm8 m512 zmm -// VPSLLQ imm8 zmm k zmm -// VPSLLQ imm8 zmm zmm -// VPSLLQ m128 zmm k zmm -// VPSLLQ m128 zmm zmm -// VPSLLQ xmm zmm k zmm -// VPSLLQ xmm zmm zmm -// -// Construct and append a VPSLLQ instruction to the active function. -// Operates on the global context. -func VPSLLQ(ops ...operand.Op) { ctx.VPSLLQ(ops...) } - -// VPSLLQ_BCST: Shift Packed Quadword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLQ.BCST imm8 m64 k xmm -// VPSLLQ.BCST imm8 m64 k ymm -// VPSLLQ.BCST imm8 m64 xmm -// VPSLLQ.BCST imm8 m64 ymm -// VPSLLQ.BCST imm8 m64 k zmm -// VPSLLQ.BCST imm8 m64 zmm -// -// Construct and append a VPSLLQ.BCST instruction to the active function. -func (c *Context) VPSLLQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSLLQ_BCST(ops...)) -} - -// VPSLLQ_BCST: Shift Packed Quadword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLQ.BCST imm8 m64 k xmm -// VPSLLQ.BCST imm8 m64 k ymm -// VPSLLQ.BCST imm8 m64 xmm -// VPSLLQ.BCST imm8 m64 ymm -// VPSLLQ.BCST imm8 m64 k zmm -// VPSLLQ.BCST imm8 m64 zmm -// -// Construct and append a VPSLLQ.BCST instruction to the active function. -// Operates on the global context. -func VPSLLQ_BCST(ops ...operand.Op) { ctx.VPSLLQ_BCST(ops...) } - -// VPSLLQ_BCST_Z: Shift Packed Quadword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLQ.BCST.Z imm8 m64 k xmm -// VPSLLQ.BCST.Z imm8 m64 k ymm -// VPSLLQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPSLLQ.BCST.Z instruction to the active function. -func (c *Context) VPSLLQ_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPSLLQ_BCST_Z(i, m, k, xyz)) -} - -// VPSLLQ_BCST_Z: Shift Packed Quadword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLQ.BCST.Z imm8 m64 k xmm -// VPSLLQ.BCST.Z imm8 m64 k ymm -// VPSLLQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPSLLQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSLLQ_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPSLLQ_BCST_Z(i, m, k, xyz) } - -// VPSLLQ_Z: Shift Packed Quadword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLQ.Z imm8 m128 k xmm -// VPSLLQ.Z imm8 m256 k ymm -// VPSLLQ.Z imm8 xmm k xmm -// VPSLLQ.Z imm8 ymm k ymm -// VPSLLQ.Z m128 xmm k xmm -// VPSLLQ.Z m128 ymm k ymm -// VPSLLQ.Z xmm xmm k xmm -// VPSLLQ.Z xmm ymm k ymm -// VPSLLQ.Z imm8 m512 k zmm -// VPSLLQ.Z imm8 zmm k zmm -// VPSLLQ.Z m128 zmm k zmm -// VPSLLQ.Z xmm zmm k zmm -// -// Construct and append a VPSLLQ.Z instruction to the active function. -func (c *Context) VPSLLQ_Z(imx, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSLLQ_Z(imx, mxyz, k, xyz)) -} - -// VPSLLQ_Z: Shift Packed Quadword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLQ.Z imm8 m128 k xmm -// VPSLLQ.Z imm8 m256 k ymm -// VPSLLQ.Z imm8 xmm k xmm -// VPSLLQ.Z imm8 ymm k ymm -// VPSLLQ.Z m128 xmm k xmm -// VPSLLQ.Z m128 ymm k ymm -// VPSLLQ.Z xmm xmm k xmm -// VPSLLQ.Z xmm ymm k ymm -// VPSLLQ.Z imm8 m512 k zmm -// VPSLLQ.Z imm8 zmm k zmm -// VPSLLQ.Z m128 zmm k zmm -// VPSLLQ.Z xmm zmm k zmm -// -// Construct and append a VPSLLQ.Z instruction to the active function. -// Operates on the global context. -func VPSLLQ_Z(imx, mxyz, k, xyz operand.Op) { ctx.VPSLLQ_Z(imx, mxyz, k, xyz) } - -// VPSLLVD: Variable Shift Packed Doubleword Data Left Logical. -// -// Forms: -// -// VPSLLVD m128 xmm xmm -// VPSLLVD m256 ymm ymm -// VPSLLVD xmm xmm xmm -// VPSLLVD ymm ymm ymm -// VPSLLVD m128 xmm k xmm -// VPSLLVD m256 ymm k ymm -// VPSLLVD xmm xmm k xmm -// VPSLLVD ymm ymm k ymm -// VPSLLVD m512 zmm k zmm -// VPSLLVD m512 zmm zmm -// VPSLLVD zmm zmm k zmm -// VPSLLVD zmm zmm zmm -// -// Construct and append a VPSLLVD instruction to the active function. -func (c *Context) VPSLLVD(ops ...operand.Op) { - c.addinstruction(x86.VPSLLVD(ops...)) -} - -// VPSLLVD: Variable Shift Packed Doubleword Data Left Logical. -// -// Forms: -// -// VPSLLVD m128 xmm xmm -// VPSLLVD m256 ymm ymm -// VPSLLVD xmm xmm xmm -// VPSLLVD ymm ymm ymm -// VPSLLVD m128 xmm k xmm -// VPSLLVD m256 ymm k ymm -// VPSLLVD xmm xmm k xmm -// VPSLLVD ymm ymm k ymm -// VPSLLVD m512 zmm k zmm -// VPSLLVD m512 zmm zmm -// VPSLLVD zmm zmm k zmm -// VPSLLVD zmm zmm zmm -// -// Construct and append a VPSLLVD instruction to the active function. -// Operates on the global context. -func VPSLLVD(ops ...operand.Op) { ctx.VPSLLVD(ops...) } - -// VPSLLVD_BCST: Variable Shift Packed Doubleword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLVD.BCST m32 xmm k xmm -// VPSLLVD.BCST m32 xmm xmm -// VPSLLVD.BCST m32 ymm k ymm -// VPSLLVD.BCST m32 ymm ymm -// VPSLLVD.BCST m32 zmm k zmm -// VPSLLVD.BCST m32 zmm zmm -// -// Construct and append a VPSLLVD.BCST instruction to the active function. -func (c *Context) VPSLLVD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSLLVD_BCST(ops...)) -} - -// VPSLLVD_BCST: Variable Shift Packed Doubleword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLVD.BCST m32 xmm k xmm -// VPSLLVD.BCST m32 xmm xmm -// VPSLLVD.BCST m32 ymm k ymm -// VPSLLVD.BCST m32 ymm ymm -// VPSLLVD.BCST m32 zmm k zmm -// VPSLLVD.BCST m32 zmm zmm -// -// Construct and append a VPSLLVD.BCST instruction to the active function. -// Operates on the global context. -func VPSLLVD_BCST(ops ...operand.Op) { ctx.VPSLLVD_BCST(ops...) } - -// VPSLLVD_BCST_Z: Variable Shift Packed Doubleword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLVD.BCST.Z m32 xmm k xmm -// VPSLLVD.BCST.Z m32 ymm k ymm -// VPSLLVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSLLVD.BCST.Z instruction to the active function. -func (c *Context) VPSLLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSLLVD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSLLVD_BCST_Z: Variable Shift Packed Doubleword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLVD.BCST.Z m32 xmm k xmm -// VPSLLVD.BCST.Z m32 ymm k ymm -// VPSLLVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSLLVD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSLLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSLLVD_BCST_Z(m, xyz, k, xyz1) } - -// VPSLLVD_Z: Variable Shift Packed Doubleword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLVD.Z m128 xmm k xmm -// VPSLLVD.Z m256 ymm k ymm -// VPSLLVD.Z xmm xmm k xmm -// VPSLLVD.Z ymm ymm k ymm -// VPSLLVD.Z m512 zmm k zmm -// VPSLLVD.Z zmm zmm k zmm -// -// Construct and append a VPSLLVD.Z instruction to the active function. -func (c *Context) VPSLLVD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSLLVD_Z(mxyz, xyz, k, xyz1)) -} - -// VPSLLVD_Z: Variable Shift Packed Doubleword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLVD.Z m128 xmm k xmm -// VPSLLVD.Z m256 ymm k ymm -// VPSLLVD.Z xmm xmm k xmm -// VPSLLVD.Z ymm ymm k ymm -// VPSLLVD.Z m512 zmm k zmm -// VPSLLVD.Z zmm zmm k zmm -// -// Construct and append a VPSLLVD.Z instruction to the active function. -// Operates on the global context. -func VPSLLVD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSLLVD_Z(mxyz, xyz, k, xyz1) } - -// VPSLLVQ: Variable Shift Packed Quadword Data Left Logical. -// -// Forms: -// -// VPSLLVQ m128 xmm xmm -// VPSLLVQ m256 ymm ymm -// VPSLLVQ xmm xmm xmm -// VPSLLVQ ymm ymm ymm -// VPSLLVQ m128 xmm k xmm -// VPSLLVQ m256 ymm k ymm -// VPSLLVQ xmm xmm k xmm -// VPSLLVQ ymm ymm k ymm -// VPSLLVQ m512 zmm k zmm -// VPSLLVQ m512 zmm zmm -// VPSLLVQ zmm zmm k zmm -// VPSLLVQ zmm zmm zmm -// -// Construct and append a VPSLLVQ instruction to the active function. -func (c *Context) VPSLLVQ(ops ...operand.Op) { - c.addinstruction(x86.VPSLLVQ(ops...)) -} - -// VPSLLVQ: Variable Shift Packed Quadword Data Left Logical. -// -// Forms: -// -// VPSLLVQ m128 xmm xmm -// VPSLLVQ m256 ymm ymm -// VPSLLVQ xmm xmm xmm -// VPSLLVQ ymm ymm ymm -// VPSLLVQ m128 xmm k xmm -// VPSLLVQ m256 ymm k ymm -// VPSLLVQ xmm xmm k xmm -// VPSLLVQ ymm ymm k ymm -// VPSLLVQ m512 zmm k zmm -// VPSLLVQ m512 zmm zmm -// VPSLLVQ zmm zmm k zmm -// VPSLLVQ zmm zmm zmm -// -// Construct and append a VPSLLVQ instruction to the active function. -// Operates on the global context. -func VPSLLVQ(ops ...operand.Op) { ctx.VPSLLVQ(ops...) } - -// VPSLLVQ_BCST: Variable Shift Packed Quadword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLVQ.BCST m64 xmm k xmm -// VPSLLVQ.BCST m64 xmm xmm -// VPSLLVQ.BCST m64 ymm k ymm -// VPSLLVQ.BCST m64 ymm ymm -// VPSLLVQ.BCST m64 zmm k zmm -// VPSLLVQ.BCST m64 zmm zmm -// -// Construct and append a VPSLLVQ.BCST instruction to the active function. -func (c *Context) VPSLLVQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSLLVQ_BCST(ops...)) -} - -// VPSLLVQ_BCST: Variable Shift Packed Quadword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLVQ.BCST m64 xmm k xmm -// VPSLLVQ.BCST m64 xmm xmm -// VPSLLVQ.BCST m64 ymm k ymm -// VPSLLVQ.BCST m64 ymm ymm -// VPSLLVQ.BCST m64 zmm k zmm -// VPSLLVQ.BCST m64 zmm zmm -// -// Construct and append a VPSLLVQ.BCST instruction to the active function. -// Operates on the global context. -func VPSLLVQ_BCST(ops ...operand.Op) { ctx.VPSLLVQ_BCST(ops...) } - -// VPSLLVQ_BCST_Z: Variable Shift Packed Quadword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLVQ.BCST.Z m64 xmm k xmm -// VPSLLVQ.BCST.Z m64 ymm k ymm -// VPSLLVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSLLVQ.BCST.Z instruction to the active function. -func (c *Context) VPSLLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSLLVQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSLLVQ_BCST_Z: Variable Shift Packed Quadword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLVQ.BCST.Z m64 xmm k xmm -// VPSLLVQ.BCST.Z m64 ymm k ymm -// VPSLLVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSLLVQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSLLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSLLVQ_BCST_Z(m, xyz, k, xyz1) } - -// VPSLLVQ_Z: Variable Shift Packed Quadword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLVQ.Z m128 xmm k xmm -// VPSLLVQ.Z m256 ymm k ymm -// VPSLLVQ.Z xmm xmm k xmm -// VPSLLVQ.Z ymm ymm k ymm -// VPSLLVQ.Z m512 zmm k zmm -// VPSLLVQ.Z zmm zmm k zmm -// -// Construct and append a VPSLLVQ.Z instruction to the active function. -func (c *Context) VPSLLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSLLVQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPSLLVQ_Z: Variable Shift Packed Quadword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLVQ.Z m128 xmm k xmm -// VPSLLVQ.Z m256 ymm k ymm -// VPSLLVQ.Z xmm xmm k xmm -// VPSLLVQ.Z ymm ymm k ymm -// VPSLLVQ.Z m512 zmm k zmm -// VPSLLVQ.Z zmm zmm k zmm -// -// Construct and append a VPSLLVQ.Z instruction to the active function. -// Operates on the global context. -func VPSLLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSLLVQ_Z(mxyz, xyz, k, xyz1) } - -// VPSLLVW: Variable Shift Packed Word Data Left Logical. -// -// Forms: -// -// VPSLLVW m128 xmm k xmm -// VPSLLVW m128 xmm xmm -// VPSLLVW m256 ymm k ymm -// VPSLLVW m256 ymm ymm -// VPSLLVW xmm xmm k xmm -// VPSLLVW xmm xmm xmm -// VPSLLVW ymm ymm k ymm -// VPSLLVW ymm ymm ymm -// VPSLLVW m512 zmm k zmm -// VPSLLVW m512 zmm zmm -// VPSLLVW zmm zmm k zmm -// VPSLLVW zmm zmm zmm -// -// Construct and append a VPSLLVW instruction to the active function. -func (c *Context) VPSLLVW(ops ...operand.Op) { - c.addinstruction(x86.VPSLLVW(ops...)) -} - -// VPSLLVW: Variable Shift Packed Word Data Left Logical. -// -// Forms: -// -// VPSLLVW m128 xmm k xmm -// VPSLLVW m128 xmm xmm -// VPSLLVW m256 ymm k ymm -// VPSLLVW m256 ymm ymm -// VPSLLVW xmm xmm k xmm -// VPSLLVW xmm xmm xmm -// VPSLLVW ymm ymm k ymm -// VPSLLVW ymm ymm ymm -// VPSLLVW m512 zmm k zmm -// VPSLLVW m512 zmm zmm -// VPSLLVW zmm zmm k zmm -// VPSLLVW zmm zmm zmm -// -// Construct and append a VPSLLVW instruction to the active function. -// Operates on the global context. -func VPSLLVW(ops ...operand.Op) { ctx.VPSLLVW(ops...) } - -// VPSLLVW_Z: Variable Shift Packed Word Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLVW.Z m128 xmm k xmm -// VPSLLVW.Z m256 ymm k ymm -// VPSLLVW.Z xmm xmm k xmm -// VPSLLVW.Z ymm ymm k ymm -// VPSLLVW.Z m512 zmm k zmm -// VPSLLVW.Z zmm zmm k zmm -// -// Construct and append a VPSLLVW.Z instruction to the active function. -func (c *Context) VPSLLVW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSLLVW_Z(mxyz, xyz, k, xyz1)) -} - -// VPSLLVW_Z: Variable Shift Packed Word Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLVW.Z m128 xmm k xmm -// VPSLLVW.Z m256 ymm k ymm -// VPSLLVW.Z xmm xmm k xmm -// VPSLLVW.Z ymm ymm k ymm -// VPSLLVW.Z m512 zmm k zmm -// VPSLLVW.Z zmm zmm k zmm -// -// Construct and append a VPSLLVW.Z instruction to the active function. -// Operates on the global context. -func VPSLLVW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSLLVW_Z(mxyz, xyz, k, xyz1) } - -// VPSLLW: Shift Packed Word Data Left Logical. -// -// Forms: -// -// VPSLLW imm8 ymm ymm -// VPSLLW m128 ymm ymm -// VPSLLW xmm ymm ymm -// VPSLLW imm8 xmm xmm -// VPSLLW m128 xmm xmm -// VPSLLW xmm xmm xmm -// VPSLLW imm8 m128 k xmm -// VPSLLW imm8 m128 xmm -// VPSLLW imm8 m256 k ymm -// VPSLLW imm8 m256 ymm -// VPSLLW imm8 xmm k xmm -// VPSLLW imm8 ymm k ymm -// VPSLLW m128 xmm k xmm -// VPSLLW m128 ymm k ymm -// VPSLLW xmm xmm k xmm -// VPSLLW xmm ymm k ymm -// VPSLLW imm8 m512 k zmm -// VPSLLW imm8 m512 zmm -// VPSLLW imm8 zmm k zmm -// VPSLLW imm8 zmm zmm -// VPSLLW m128 zmm k zmm -// VPSLLW m128 zmm zmm -// VPSLLW xmm zmm k zmm -// VPSLLW xmm zmm zmm -// -// Construct and append a VPSLLW instruction to the active function. -func (c *Context) VPSLLW(ops ...operand.Op) { - c.addinstruction(x86.VPSLLW(ops...)) -} - -// VPSLLW: Shift Packed Word Data Left Logical. -// -// Forms: -// -// VPSLLW imm8 ymm ymm -// VPSLLW m128 ymm ymm -// VPSLLW xmm ymm ymm -// VPSLLW imm8 xmm xmm -// VPSLLW m128 xmm xmm -// VPSLLW xmm xmm xmm -// VPSLLW imm8 m128 k xmm -// VPSLLW imm8 m128 xmm -// VPSLLW imm8 m256 k ymm -// VPSLLW imm8 m256 ymm -// VPSLLW imm8 xmm k xmm -// VPSLLW imm8 ymm k ymm -// VPSLLW m128 xmm k xmm -// VPSLLW m128 ymm k ymm -// VPSLLW xmm xmm k xmm -// VPSLLW xmm ymm k ymm -// VPSLLW imm8 m512 k zmm -// VPSLLW imm8 m512 zmm -// VPSLLW imm8 zmm k zmm -// VPSLLW imm8 zmm zmm -// VPSLLW m128 zmm k zmm -// VPSLLW m128 zmm zmm -// VPSLLW xmm zmm k zmm -// VPSLLW xmm zmm zmm -// -// Construct and append a VPSLLW instruction to the active function. -// Operates on the global context. -func VPSLLW(ops ...operand.Op) { ctx.VPSLLW(ops...) } - -// VPSLLW_Z: Shift Packed Word Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLW.Z imm8 m128 k xmm -// VPSLLW.Z imm8 m256 k ymm -// VPSLLW.Z imm8 xmm k xmm -// VPSLLW.Z imm8 ymm k ymm -// VPSLLW.Z m128 xmm k xmm -// VPSLLW.Z m128 ymm k ymm -// VPSLLW.Z xmm xmm k xmm -// VPSLLW.Z xmm ymm k ymm -// VPSLLW.Z imm8 m512 k zmm -// VPSLLW.Z imm8 zmm k zmm -// VPSLLW.Z m128 zmm k zmm -// VPSLLW.Z xmm zmm k zmm -// -// Construct and append a VPSLLW.Z instruction to the active function. -func (c *Context) VPSLLW_Z(imx, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSLLW_Z(imx, mxyz, k, xyz)) -} - -// VPSLLW_Z: Shift Packed Word Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLW.Z imm8 m128 k xmm -// VPSLLW.Z imm8 m256 k ymm -// VPSLLW.Z imm8 xmm k xmm -// VPSLLW.Z imm8 ymm k ymm -// VPSLLW.Z m128 xmm k xmm -// VPSLLW.Z m128 ymm k ymm -// VPSLLW.Z xmm xmm k xmm -// VPSLLW.Z xmm ymm k ymm -// VPSLLW.Z imm8 m512 k zmm -// VPSLLW.Z imm8 zmm k zmm -// VPSLLW.Z m128 zmm k zmm -// VPSLLW.Z xmm zmm k zmm -// -// Construct and append a VPSLLW.Z instruction to the active function. -// Operates on the global context. -func VPSLLW_Z(imx, mxyz, k, xyz operand.Op) { ctx.VPSLLW_Z(imx, mxyz, k, xyz) } - -// VPSRAD: Shift Packed Doubleword Data Right Arithmetic. -// -// Forms: -// -// VPSRAD imm8 ymm ymm -// VPSRAD m128 ymm ymm -// VPSRAD xmm ymm ymm -// VPSRAD imm8 xmm xmm -// VPSRAD m128 xmm xmm -// VPSRAD xmm xmm xmm -// VPSRAD imm8 m128 k xmm -// VPSRAD imm8 m128 xmm -// VPSRAD imm8 m256 k ymm -// VPSRAD imm8 m256 ymm -// VPSRAD imm8 xmm k xmm -// VPSRAD imm8 ymm k ymm -// VPSRAD m128 xmm k xmm -// VPSRAD m128 ymm k ymm -// VPSRAD xmm xmm k xmm -// VPSRAD xmm ymm k ymm -// VPSRAD imm8 m512 k zmm -// VPSRAD imm8 m512 zmm -// VPSRAD imm8 zmm k zmm -// VPSRAD imm8 zmm zmm -// VPSRAD m128 zmm k zmm -// VPSRAD m128 zmm zmm -// VPSRAD xmm zmm k zmm -// VPSRAD xmm zmm zmm -// -// Construct and append a VPSRAD instruction to the active function. -func (c *Context) VPSRAD(ops ...operand.Op) { - c.addinstruction(x86.VPSRAD(ops...)) -} - -// VPSRAD: Shift Packed Doubleword Data Right Arithmetic. -// -// Forms: -// -// VPSRAD imm8 ymm ymm -// VPSRAD m128 ymm ymm -// VPSRAD xmm ymm ymm -// VPSRAD imm8 xmm xmm -// VPSRAD m128 xmm xmm -// VPSRAD xmm xmm xmm -// VPSRAD imm8 m128 k xmm -// VPSRAD imm8 m128 xmm -// VPSRAD imm8 m256 k ymm -// VPSRAD imm8 m256 ymm -// VPSRAD imm8 xmm k xmm -// VPSRAD imm8 ymm k ymm -// VPSRAD m128 xmm k xmm -// VPSRAD m128 ymm k ymm -// VPSRAD xmm xmm k xmm -// VPSRAD xmm ymm k ymm -// VPSRAD imm8 m512 k zmm -// VPSRAD imm8 m512 zmm -// VPSRAD imm8 zmm k zmm -// VPSRAD imm8 zmm zmm -// VPSRAD m128 zmm k zmm -// VPSRAD m128 zmm zmm -// VPSRAD xmm zmm k zmm -// VPSRAD xmm zmm zmm -// -// Construct and append a VPSRAD instruction to the active function. -// Operates on the global context. -func VPSRAD(ops ...operand.Op) { ctx.VPSRAD(ops...) } - -// VPSRAD_BCST: Shift Packed Doubleword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAD.BCST imm8 m32 k xmm -// VPSRAD.BCST imm8 m32 k ymm -// VPSRAD.BCST imm8 m32 xmm -// VPSRAD.BCST imm8 m32 ymm -// VPSRAD.BCST imm8 m32 k zmm -// VPSRAD.BCST imm8 m32 zmm -// -// Construct and append a VPSRAD.BCST instruction to the active function. -func (c *Context) VPSRAD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSRAD_BCST(ops...)) -} - -// VPSRAD_BCST: Shift Packed Doubleword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAD.BCST imm8 m32 k xmm -// VPSRAD.BCST imm8 m32 k ymm -// VPSRAD.BCST imm8 m32 xmm -// VPSRAD.BCST imm8 m32 ymm -// VPSRAD.BCST imm8 m32 k zmm -// VPSRAD.BCST imm8 m32 zmm -// -// Construct and append a VPSRAD.BCST instruction to the active function. -// Operates on the global context. -func VPSRAD_BCST(ops ...operand.Op) { ctx.VPSRAD_BCST(ops...) } - -// VPSRAD_BCST_Z: Shift Packed Doubleword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAD.BCST.Z imm8 m32 k xmm -// VPSRAD.BCST.Z imm8 m32 k ymm -// VPSRAD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPSRAD.BCST.Z instruction to the active function. -func (c *Context) VPSRAD_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPSRAD_BCST_Z(i, m, k, xyz)) -} - -// VPSRAD_BCST_Z: Shift Packed Doubleword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAD.BCST.Z imm8 m32 k xmm -// VPSRAD.BCST.Z imm8 m32 k ymm -// VPSRAD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPSRAD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSRAD_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPSRAD_BCST_Z(i, m, k, xyz) } - -// VPSRAD_Z: Shift Packed Doubleword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAD.Z imm8 m128 k xmm -// VPSRAD.Z imm8 m256 k ymm -// VPSRAD.Z imm8 xmm k xmm -// VPSRAD.Z imm8 ymm k ymm -// VPSRAD.Z m128 xmm k xmm -// VPSRAD.Z m128 ymm k ymm -// VPSRAD.Z xmm xmm k xmm -// VPSRAD.Z xmm ymm k ymm -// VPSRAD.Z imm8 m512 k zmm -// VPSRAD.Z imm8 zmm k zmm -// VPSRAD.Z m128 zmm k zmm -// VPSRAD.Z xmm zmm k zmm -// -// Construct and append a VPSRAD.Z instruction to the active function. -func (c *Context) VPSRAD_Z(imx, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSRAD_Z(imx, mxyz, k, xyz)) -} - -// VPSRAD_Z: Shift Packed Doubleword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAD.Z imm8 m128 k xmm -// VPSRAD.Z imm8 m256 k ymm -// VPSRAD.Z imm8 xmm k xmm -// VPSRAD.Z imm8 ymm k ymm -// VPSRAD.Z m128 xmm k xmm -// VPSRAD.Z m128 ymm k ymm -// VPSRAD.Z xmm xmm k xmm -// VPSRAD.Z xmm ymm k ymm -// VPSRAD.Z imm8 m512 k zmm -// VPSRAD.Z imm8 zmm k zmm -// VPSRAD.Z m128 zmm k zmm -// VPSRAD.Z xmm zmm k zmm -// -// Construct and append a VPSRAD.Z instruction to the active function. -// Operates on the global context. -func VPSRAD_Z(imx, mxyz, k, xyz operand.Op) { ctx.VPSRAD_Z(imx, mxyz, k, xyz) } - -// VPSRAQ: Shift Packed Quadword Data Right Arithmetic. -// -// Forms: -// -// VPSRAQ imm8 m128 k xmm -// VPSRAQ imm8 m128 xmm -// VPSRAQ imm8 m256 k ymm -// VPSRAQ imm8 m256 ymm -// VPSRAQ imm8 xmm k xmm -// VPSRAQ imm8 xmm xmm -// VPSRAQ imm8 ymm k ymm -// VPSRAQ imm8 ymm ymm -// VPSRAQ m128 xmm k xmm -// VPSRAQ m128 xmm xmm -// VPSRAQ m128 ymm k ymm -// VPSRAQ m128 ymm ymm -// VPSRAQ xmm xmm k xmm -// VPSRAQ xmm xmm xmm -// VPSRAQ xmm ymm k ymm -// VPSRAQ xmm ymm ymm -// VPSRAQ imm8 m512 k zmm -// VPSRAQ imm8 m512 zmm -// VPSRAQ imm8 zmm k zmm -// VPSRAQ imm8 zmm zmm -// VPSRAQ m128 zmm k zmm -// VPSRAQ m128 zmm zmm -// VPSRAQ xmm zmm k zmm -// VPSRAQ xmm zmm zmm -// -// Construct and append a VPSRAQ instruction to the active function. -func (c *Context) VPSRAQ(ops ...operand.Op) { - c.addinstruction(x86.VPSRAQ(ops...)) -} - -// VPSRAQ: Shift Packed Quadword Data Right Arithmetic. -// -// Forms: -// -// VPSRAQ imm8 m128 k xmm -// VPSRAQ imm8 m128 xmm -// VPSRAQ imm8 m256 k ymm -// VPSRAQ imm8 m256 ymm -// VPSRAQ imm8 xmm k xmm -// VPSRAQ imm8 xmm xmm -// VPSRAQ imm8 ymm k ymm -// VPSRAQ imm8 ymm ymm -// VPSRAQ m128 xmm k xmm -// VPSRAQ m128 xmm xmm -// VPSRAQ m128 ymm k ymm -// VPSRAQ m128 ymm ymm -// VPSRAQ xmm xmm k xmm -// VPSRAQ xmm xmm xmm -// VPSRAQ xmm ymm k ymm -// VPSRAQ xmm ymm ymm -// VPSRAQ imm8 m512 k zmm -// VPSRAQ imm8 m512 zmm -// VPSRAQ imm8 zmm k zmm -// VPSRAQ imm8 zmm zmm -// VPSRAQ m128 zmm k zmm -// VPSRAQ m128 zmm zmm -// VPSRAQ xmm zmm k zmm -// VPSRAQ xmm zmm zmm -// -// Construct and append a VPSRAQ instruction to the active function. -// Operates on the global context. -func VPSRAQ(ops ...operand.Op) { ctx.VPSRAQ(ops...) } - -// VPSRAQ_BCST: Shift Packed Quadword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAQ.BCST imm8 m64 k xmm -// VPSRAQ.BCST imm8 m64 k ymm -// VPSRAQ.BCST imm8 m64 xmm -// VPSRAQ.BCST imm8 m64 ymm -// VPSRAQ.BCST imm8 m64 k zmm -// VPSRAQ.BCST imm8 m64 zmm -// -// Construct and append a VPSRAQ.BCST instruction to the active function. -func (c *Context) VPSRAQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSRAQ_BCST(ops...)) -} - -// VPSRAQ_BCST: Shift Packed Quadword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAQ.BCST imm8 m64 k xmm -// VPSRAQ.BCST imm8 m64 k ymm -// VPSRAQ.BCST imm8 m64 xmm -// VPSRAQ.BCST imm8 m64 ymm -// VPSRAQ.BCST imm8 m64 k zmm -// VPSRAQ.BCST imm8 m64 zmm -// -// Construct and append a VPSRAQ.BCST instruction to the active function. -// Operates on the global context. -func VPSRAQ_BCST(ops ...operand.Op) { ctx.VPSRAQ_BCST(ops...) } - -// VPSRAQ_BCST_Z: Shift Packed Quadword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAQ.BCST.Z imm8 m64 k xmm -// VPSRAQ.BCST.Z imm8 m64 k ymm -// VPSRAQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPSRAQ.BCST.Z instruction to the active function. -func (c *Context) VPSRAQ_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPSRAQ_BCST_Z(i, m, k, xyz)) -} - -// VPSRAQ_BCST_Z: Shift Packed Quadword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAQ.BCST.Z imm8 m64 k xmm -// VPSRAQ.BCST.Z imm8 m64 k ymm -// VPSRAQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPSRAQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSRAQ_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPSRAQ_BCST_Z(i, m, k, xyz) } - -// VPSRAQ_Z: Shift Packed Quadword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAQ.Z imm8 m128 k xmm -// VPSRAQ.Z imm8 m256 k ymm -// VPSRAQ.Z imm8 xmm k xmm -// VPSRAQ.Z imm8 ymm k ymm -// VPSRAQ.Z m128 xmm k xmm -// VPSRAQ.Z m128 ymm k ymm -// VPSRAQ.Z xmm xmm k xmm -// VPSRAQ.Z xmm ymm k ymm -// VPSRAQ.Z imm8 m512 k zmm -// VPSRAQ.Z imm8 zmm k zmm -// VPSRAQ.Z m128 zmm k zmm -// VPSRAQ.Z xmm zmm k zmm -// -// Construct and append a VPSRAQ.Z instruction to the active function. -func (c *Context) VPSRAQ_Z(imx, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSRAQ_Z(imx, mxyz, k, xyz)) -} - -// VPSRAQ_Z: Shift Packed Quadword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAQ.Z imm8 m128 k xmm -// VPSRAQ.Z imm8 m256 k ymm -// VPSRAQ.Z imm8 xmm k xmm -// VPSRAQ.Z imm8 ymm k ymm -// VPSRAQ.Z m128 xmm k xmm -// VPSRAQ.Z m128 ymm k ymm -// VPSRAQ.Z xmm xmm k xmm -// VPSRAQ.Z xmm ymm k ymm -// VPSRAQ.Z imm8 m512 k zmm -// VPSRAQ.Z imm8 zmm k zmm -// VPSRAQ.Z m128 zmm k zmm -// VPSRAQ.Z xmm zmm k zmm -// -// Construct and append a VPSRAQ.Z instruction to the active function. -// Operates on the global context. -func VPSRAQ_Z(imx, mxyz, k, xyz operand.Op) { ctx.VPSRAQ_Z(imx, mxyz, k, xyz) } - -// VPSRAVD: Variable Shift Packed Doubleword Data Right Arithmetic. -// -// Forms: -// -// VPSRAVD m128 xmm xmm -// VPSRAVD m256 ymm ymm -// VPSRAVD xmm xmm xmm -// VPSRAVD ymm ymm ymm -// VPSRAVD m128 xmm k xmm -// VPSRAVD m256 ymm k ymm -// VPSRAVD xmm xmm k xmm -// VPSRAVD ymm ymm k ymm -// VPSRAVD m512 zmm k zmm -// VPSRAVD m512 zmm zmm -// VPSRAVD zmm zmm k zmm -// VPSRAVD zmm zmm zmm -// -// Construct and append a VPSRAVD instruction to the active function. -func (c *Context) VPSRAVD(ops ...operand.Op) { - c.addinstruction(x86.VPSRAVD(ops...)) -} - -// VPSRAVD: Variable Shift Packed Doubleword Data Right Arithmetic. -// -// Forms: -// -// VPSRAVD m128 xmm xmm -// VPSRAVD m256 ymm ymm -// VPSRAVD xmm xmm xmm -// VPSRAVD ymm ymm ymm -// VPSRAVD m128 xmm k xmm -// VPSRAVD m256 ymm k ymm -// VPSRAVD xmm xmm k xmm -// VPSRAVD ymm ymm k ymm -// VPSRAVD m512 zmm k zmm -// VPSRAVD m512 zmm zmm -// VPSRAVD zmm zmm k zmm -// VPSRAVD zmm zmm zmm -// -// Construct and append a VPSRAVD instruction to the active function. -// Operates on the global context. -func VPSRAVD(ops ...operand.Op) { ctx.VPSRAVD(ops...) } - -// VPSRAVD_BCST: Variable Shift Packed Doubleword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAVD.BCST m32 xmm k xmm -// VPSRAVD.BCST m32 xmm xmm -// VPSRAVD.BCST m32 ymm k ymm -// VPSRAVD.BCST m32 ymm ymm -// VPSRAVD.BCST m32 zmm k zmm -// VPSRAVD.BCST m32 zmm zmm -// -// Construct and append a VPSRAVD.BCST instruction to the active function. -func (c *Context) VPSRAVD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSRAVD_BCST(ops...)) -} - -// VPSRAVD_BCST: Variable Shift Packed Doubleword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAVD.BCST m32 xmm k xmm -// VPSRAVD.BCST m32 xmm xmm -// VPSRAVD.BCST m32 ymm k ymm -// VPSRAVD.BCST m32 ymm ymm -// VPSRAVD.BCST m32 zmm k zmm -// VPSRAVD.BCST m32 zmm zmm -// -// Construct and append a VPSRAVD.BCST instruction to the active function. -// Operates on the global context. -func VPSRAVD_BCST(ops ...operand.Op) { ctx.VPSRAVD_BCST(ops...) } - -// VPSRAVD_BCST_Z: Variable Shift Packed Doubleword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAVD.BCST.Z m32 xmm k xmm -// VPSRAVD.BCST.Z m32 ymm k ymm -// VPSRAVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSRAVD.BCST.Z instruction to the active function. -func (c *Context) VPSRAVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRAVD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSRAVD_BCST_Z: Variable Shift Packed Doubleword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAVD.BCST.Z m32 xmm k xmm -// VPSRAVD.BCST.Z m32 ymm k ymm -// VPSRAVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSRAVD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSRAVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSRAVD_BCST_Z(m, xyz, k, xyz1) } - -// VPSRAVD_Z: Variable Shift Packed Doubleword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAVD.Z m128 xmm k xmm -// VPSRAVD.Z m256 ymm k ymm -// VPSRAVD.Z xmm xmm k xmm -// VPSRAVD.Z ymm ymm k ymm -// VPSRAVD.Z m512 zmm k zmm -// VPSRAVD.Z zmm zmm k zmm -// -// Construct and append a VPSRAVD.Z instruction to the active function. -func (c *Context) VPSRAVD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRAVD_Z(mxyz, xyz, k, xyz1)) -} - -// VPSRAVD_Z: Variable Shift Packed Doubleword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAVD.Z m128 xmm k xmm -// VPSRAVD.Z m256 ymm k ymm -// VPSRAVD.Z xmm xmm k xmm -// VPSRAVD.Z ymm ymm k ymm -// VPSRAVD.Z m512 zmm k zmm -// VPSRAVD.Z zmm zmm k zmm -// -// Construct and append a VPSRAVD.Z instruction to the active function. -// Operates on the global context. -func VPSRAVD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSRAVD_Z(mxyz, xyz, k, xyz1) } - -// VPSRAVQ: Variable Shift Packed Quadword Data Right Arithmetic. -// -// Forms: -// -// VPSRAVQ m128 xmm k xmm -// VPSRAVQ m128 xmm xmm -// VPSRAVQ m256 ymm k ymm -// VPSRAVQ m256 ymm ymm -// VPSRAVQ xmm xmm k xmm -// VPSRAVQ xmm xmm xmm -// VPSRAVQ ymm ymm k ymm -// VPSRAVQ ymm ymm ymm -// VPSRAVQ m512 zmm k zmm -// VPSRAVQ m512 zmm zmm -// VPSRAVQ zmm zmm k zmm -// VPSRAVQ zmm zmm zmm -// -// Construct and append a VPSRAVQ instruction to the active function. -func (c *Context) VPSRAVQ(ops ...operand.Op) { - c.addinstruction(x86.VPSRAVQ(ops...)) -} - -// VPSRAVQ: Variable Shift Packed Quadword Data Right Arithmetic. -// -// Forms: -// -// VPSRAVQ m128 xmm k xmm -// VPSRAVQ m128 xmm xmm -// VPSRAVQ m256 ymm k ymm -// VPSRAVQ m256 ymm ymm -// VPSRAVQ xmm xmm k xmm -// VPSRAVQ xmm xmm xmm -// VPSRAVQ ymm ymm k ymm -// VPSRAVQ ymm ymm ymm -// VPSRAVQ m512 zmm k zmm -// VPSRAVQ m512 zmm zmm -// VPSRAVQ zmm zmm k zmm -// VPSRAVQ zmm zmm zmm -// -// Construct and append a VPSRAVQ instruction to the active function. -// Operates on the global context. -func VPSRAVQ(ops ...operand.Op) { ctx.VPSRAVQ(ops...) } - -// VPSRAVQ_BCST: Variable Shift Packed Quadword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAVQ.BCST m64 xmm k xmm -// VPSRAVQ.BCST m64 xmm xmm -// VPSRAVQ.BCST m64 ymm k ymm -// VPSRAVQ.BCST m64 ymm ymm -// VPSRAVQ.BCST m64 zmm k zmm -// VPSRAVQ.BCST m64 zmm zmm -// -// Construct and append a VPSRAVQ.BCST instruction to the active function. -func (c *Context) VPSRAVQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSRAVQ_BCST(ops...)) -} - -// VPSRAVQ_BCST: Variable Shift Packed Quadword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAVQ.BCST m64 xmm k xmm -// VPSRAVQ.BCST m64 xmm xmm -// VPSRAVQ.BCST m64 ymm k ymm -// VPSRAVQ.BCST m64 ymm ymm -// VPSRAVQ.BCST m64 zmm k zmm -// VPSRAVQ.BCST m64 zmm zmm -// -// Construct and append a VPSRAVQ.BCST instruction to the active function. -// Operates on the global context. -func VPSRAVQ_BCST(ops ...operand.Op) { ctx.VPSRAVQ_BCST(ops...) } - -// VPSRAVQ_BCST_Z: Variable Shift Packed Quadword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAVQ.BCST.Z m64 xmm k xmm -// VPSRAVQ.BCST.Z m64 ymm k ymm -// VPSRAVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSRAVQ.BCST.Z instruction to the active function. -func (c *Context) VPSRAVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRAVQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSRAVQ_BCST_Z: Variable Shift Packed Quadword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAVQ.BCST.Z m64 xmm k xmm -// VPSRAVQ.BCST.Z m64 ymm k ymm -// VPSRAVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSRAVQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSRAVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSRAVQ_BCST_Z(m, xyz, k, xyz1) } - -// VPSRAVQ_Z: Variable Shift Packed Quadword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAVQ.Z m128 xmm k xmm -// VPSRAVQ.Z m256 ymm k ymm -// VPSRAVQ.Z xmm xmm k xmm -// VPSRAVQ.Z ymm ymm k ymm -// VPSRAVQ.Z m512 zmm k zmm -// VPSRAVQ.Z zmm zmm k zmm -// -// Construct and append a VPSRAVQ.Z instruction to the active function. -func (c *Context) VPSRAVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRAVQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPSRAVQ_Z: Variable Shift Packed Quadword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAVQ.Z m128 xmm k xmm -// VPSRAVQ.Z m256 ymm k ymm -// VPSRAVQ.Z xmm xmm k xmm -// VPSRAVQ.Z ymm ymm k ymm -// VPSRAVQ.Z m512 zmm k zmm -// VPSRAVQ.Z zmm zmm k zmm -// -// Construct and append a VPSRAVQ.Z instruction to the active function. -// Operates on the global context. -func VPSRAVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSRAVQ_Z(mxyz, xyz, k, xyz1) } - -// VPSRAVW: Variable Shift Packed Word Data Right Arithmetic. -// -// Forms: -// -// VPSRAVW m128 xmm k xmm -// VPSRAVW m128 xmm xmm -// VPSRAVW m256 ymm k ymm -// VPSRAVW m256 ymm ymm -// VPSRAVW xmm xmm k xmm -// VPSRAVW xmm xmm xmm -// VPSRAVW ymm ymm k ymm -// VPSRAVW ymm ymm ymm -// VPSRAVW m512 zmm k zmm -// VPSRAVW m512 zmm zmm -// VPSRAVW zmm zmm k zmm -// VPSRAVW zmm zmm zmm -// -// Construct and append a VPSRAVW instruction to the active function. -func (c *Context) VPSRAVW(ops ...operand.Op) { - c.addinstruction(x86.VPSRAVW(ops...)) -} - -// VPSRAVW: Variable Shift Packed Word Data Right Arithmetic. -// -// Forms: -// -// VPSRAVW m128 xmm k xmm -// VPSRAVW m128 xmm xmm -// VPSRAVW m256 ymm k ymm -// VPSRAVW m256 ymm ymm -// VPSRAVW xmm xmm k xmm -// VPSRAVW xmm xmm xmm -// VPSRAVW ymm ymm k ymm -// VPSRAVW ymm ymm ymm -// VPSRAVW m512 zmm k zmm -// VPSRAVW m512 zmm zmm -// VPSRAVW zmm zmm k zmm -// VPSRAVW zmm zmm zmm -// -// Construct and append a VPSRAVW instruction to the active function. -// Operates on the global context. -func VPSRAVW(ops ...operand.Op) { ctx.VPSRAVW(ops...) } - -// VPSRAVW_Z: Variable Shift Packed Word Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAVW.Z m128 xmm k xmm -// VPSRAVW.Z m256 ymm k ymm -// VPSRAVW.Z xmm xmm k xmm -// VPSRAVW.Z ymm ymm k ymm -// VPSRAVW.Z m512 zmm k zmm -// VPSRAVW.Z zmm zmm k zmm -// -// Construct and append a VPSRAVW.Z instruction to the active function. -func (c *Context) VPSRAVW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRAVW_Z(mxyz, xyz, k, xyz1)) -} - -// VPSRAVW_Z: Variable Shift Packed Word Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAVW.Z m128 xmm k xmm -// VPSRAVW.Z m256 ymm k ymm -// VPSRAVW.Z xmm xmm k xmm -// VPSRAVW.Z ymm ymm k ymm -// VPSRAVW.Z m512 zmm k zmm -// VPSRAVW.Z zmm zmm k zmm -// -// Construct and append a VPSRAVW.Z instruction to the active function. -// Operates on the global context. -func VPSRAVW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSRAVW_Z(mxyz, xyz, k, xyz1) } - -// VPSRAW: Shift Packed Word Data Right Arithmetic. -// -// Forms: -// -// VPSRAW imm8 ymm ymm -// VPSRAW m128 ymm ymm -// VPSRAW xmm ymm ymm -// VPSRAW imm8 xmm xmm -// VPSRAW m128 xmm xmm -// VPSRAW xmm xmm xmm -// VPSRAW imm8 m128 k xmm -// VPSRAW imm8 m128 xmm -// VPSRAW imm8 m256 k ymm -// VPSRAW imm8 m256 ymm -// VPSRAW imm8 xmm k xmm -// VPSRAW imm8 ymm k ymm -// VPSRAW m128 xmm k xmm -// VPSRAW m128 ymm k ymm -// VPSRAW xmm xmm k xmm -// VPSRAW xmm ymm k ymm -// VPSRAW imm8 m512 k zmm -// VPSRAW imm8 m512 zmm -// VPSRAW imm8 zmm k zmm -// VPSRAW imm8 zmm zmm -// VPSRAW m128 zmm k zmm -// VPSRAW m128 zmm zmm -// VPSRAW xmm zmm k zmm -// VPSRAW xmm zmm zmm -// -// Construct and append a VPSRAW instruction to the active function. -func (c *Context) VPSRAW(ops ...operand.Op) { - c.addinstruction(x86.VPSRAW(ops...)) -} - -// VPSRAW: Shift Packed Word Data Right Arithmetic. -// -// Forms: -// -// VPSRAW imm8 ymm ymm -// VPSRAW m128 ymm ymm -// VPSRAW xmm ymm ymm -// VPSRAW imm8 xmm xmm -// VPSRAW m128 xmm xmm -// VPSRAW xmm xmm xmm -// VPSRAW imm8 m128 k xmm -// VPSRAW imm8 m128 xmm -// VPSRAW imm8 m256 k ymm -// VPSRAW imm8 m256 ymm -// VPSRAW imm8 xmm k xmm -// VPSRAW imm8 ymm k ymm -// VPSRAW m128 xmm k xmm -// VPSRAW m128 ymm k ymm -// VPSRAW xmm xmm k xmm -// VPSRAW xmm ymm k ymm -// VPSRAW imm8 m512 k zmm -// VPSRAW imm8 m512 zmm -// VPSRAW imm8 zmm k zmm -// VPSRAW imm8 zmm zmm -// VPSRAW m128 zmm k zmm -// VPSRAW m128 zmm zmm -// VPSRAW xmm zmm k zmm -// VPSRAW xmm zmm zmm -// -// Construct and append a VPSRAW instruction to the active function. -// Operates on the global context. -func VPSRAW(ops ...operand.Op) { ctx.VPSRAW(ops...) } - -// VPSRAW_Z: Shift Packed Word Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAW.Z imm8 m128 k xmm -// VPSRAW.Z imm8 m256 k ymm -// VPSRAW.Z imm8 xmm k xmm -// VPSRAW.Z imm8 ymm k ymm -// VPSRAW.Z m128 xmm k xmm -// VPSRAW.Z m128 ymm k ymm -// VPSRAW.Z xmm xmm k xmm -// VPSRAW.Z xmm ymm k ymm -// VPSRAW.Z imm8 m512 k zmm -// VPSRAW.Z imm8 zmm k zmm -// VPSRAW.Z m128 zmm k zmm -// VPSRAW.Z xmm zmm k zmm -// -// Construct and append a VPSRAW.Z instruction to the active function. -func (c *Context) VPSRAW_Z(imx, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSRAW_Z(imx, mxyz, k, xyz)) -} - -// VPSRAW_Z: Shift Packed Word Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAW.Z imm8 m128 k xmm -// VPSRAW.Z imm8 m256 k ymm -// VPSRAW.Z imm8 xmm k xmm -// VPSRAW.Z imm8 ymm k ymm -// VPSRAW.Z m128 xmm k xmm -// VPSRAW.Z m128 ymm k ymm -// VPSRAW.Z xmm xmm k xmm -// VPSRAW.Z xmm ymm k ymm -// VPSRAW.Z imm8 m512 k zmm -// VPSRAW.Z imm8 zmm k zmm -// VPSRAW.Z m128 zmm k zmm -// VPSRAW.Z xmm zmm k zmm -// -// Construct and append a VPSRAW.Z instruction to the active function. -// Operates on the global context. -func VPSRAW_Z(imx, mxyz, k, xyz operand.Op) { ctx.VPSRAW_Z(imx, mxyz, k, xyz) } - -// VPSRLD: Shift Packed Doubleword Data Right Logical. -// -// Forms: -// -// VPSRLD imm8 ymm ymm -// VPSRLD m128 ymm ymm -// VPSRLD xmm ymm ymm -// VPSRLD imm8 xmm xmm -// VPSRLD m128 xmm xmm -// VPSRLD xmm xmm xmm -// VPSRLD imm8 m128 k xmm -// VPSRLD imm8 m128 xmm -// VPSRLD imm8 m256 k ymm -// VPSRLD imm8 m256 ymm -// VPSRLD imm8 xmm k xmm -// VPSRLD imm8 ymm k ymm -// VPSRLD m128 xmm k xmm -// VPSRLD m128 ymm k ymm -// VPSRLD xmm xmm k xmm -// VPSRLD xmm ymm k ymm -// VPSRLD imm8 m512 k zmm -// VPSRLD imm8 m512 zmm -// VPSRLD imm8 zmm k zmm -// VPSRLD imm8 zmm zmm -// VPSRLD m128 zmm k zmm -// VPSRLD m128 zmm zmm -// VPSRLD xmm zmm k zmm -// VPSRLD xmm zmm zmm -// -// Construct and append a VPSRLD instruction to the active function. -func (c *Context) VPSRLD(ops ...operand.Op) { - c.addinstruction(x86.VPSRLD(ops...)) -} - -// VPSRLD: Shift Packed Doubleword Data Right Logical. -// -// Forms: -// -// VPSRLD imm8 ymm ymm -// VPSRLD m128 ymm ymm -// VPSRLD xmm ymm ymm -// VPSRLD imm8 xmm xmm -// VPSRLD m128 xmm xmm -// VPSRLD xmm xmm xmm -// VPSRLD imm8 m128 k xmm -// VPSRLD imm8 m128 xmm -// VPSRLD imm8 m256 k ymm -// VPSRLD imm8 m256 ymm -// VPSRLD imm8 xmm k xmm -// VPSRLD imm8 ymm k ymm -// VPSRLD m128 xmm k xmm -// VPSRLD m128 ymm k ymm -// VPSRLD xmm xmm k xmm -// VPSRLD xmm ymm k ymm -// VPSRLD imm8 m512 k zmm -// VPSRLD imm8 m512 zmm -// VPSRLD imm8 zmm k zmm -// VPSRLD imm8 zmm zmm -// VPSRLD m128 zmm k zmm -// VPSRLD m128 zmm zmm -// VPSRLD xmm zmm k zmm -// VPSRLD xmm zmm zmm -// -// Construct and append a VPSRLD instruction to the active function. -// Operates on the global context. -func VPSRLD(ops ...operand.Op) { ctx.VPSRLD(ops...) } - -// VPSRLDQ: Shift Packed Double Quadword Right Logical. -// -// Forms: -// -// VPSRLDQ imm8 ymm ymm -// VPSRLDQ imm8 xmm xmm -// VPSRLDQ imm8 m128 xmm -// VPSRLDQ imm8 m256 ymm -// VPSRLDQ imm8 m512 zmm -// VPSRLDQ imm8 zmm zmm -// -// Construct and append a VPSRLDQ instruction to the active function. -func (c *Context) VPSRLDQ(i, mxyz, xyz operand.Op) { - c.addinstruction(x86.VPSRLDQ(i, mxyz, xyz)) -} - -// VPSRLDQ: Shift Packed Double Quadword Right Logical. -// -// Forms: -// -// VPSRLDQ imm8 ymm ymm -// VPSRLDQ imm8 xmm xmm -// VPSRLDQ imm8 m128 xmm -// VPSRLDQ imm8 m256 ymm -// VPSRLDQ imm8 m512 zmm -// VPSRLDQ imm8 zmm zmm -// -// Construct and append a VPSRLDQ instruction to the active function. -// Operates on the global context. -func VPSRLDQ(i, mxyz, xyz operand.Op) { ctx.VPSRLDQ(i, mxyz, xyz) } - -// VPSRLD_BCST: Shift Packed Doubleword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLD.BCST imm8 m32 k xmm -// VPSRLD.BCST imm8 m32 k ymm -// VPSRLD.BCST imm8 m32 xmm -// VPSRLD.BCST imm8 m32 ymm -// VPSRLD.BCST imm8 m32 k zmm -// VPSRLD.BCST imm8 m32 zmm -// -// Construct and append a VPSRLD.BCST instruction to the active function. -func (c *Context) VPSRLD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSRLD_BCST(ops...)) -} - -// VPSRLD_BCST: Shift Packed Doubleword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLD.BCST imm8 m32 k xmm -// VPSRLD.BCST imm8 m32 k ymm -// VPSRLD.BCST imm8 m32 xmm -// VPSRLD.BCST imm8 m32 ymm -// VPSRLD.BCST imm8 m32 k zmm -// VPSRLD.BCST imm8 m32 zmm -// -// Construct and append a VPSRLD.BCST instruction to the active function. -// Operates on the global context. -func VPSRLD_BCST(ops ...operand.Op) { ctx.VPSRLD_BCST(ops...) } - -// VPSRLD_BCST_Z: Shift Packed Doubleword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLD.BCST.Z imm8 m32 k xmm -// VPSRLD.BCST.Z imm8 m32 k ymm -// VPSRLD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPSRLD.BCST.Z instruction to the active function. -func (c *Context) VPSRLD_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPSRLD_BCST_Z(i, m, k, xyz)) -} - -// VPSRLD_BCST_Z: Shift Packed Doubleword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLD.BCST.Z imm8 m32 k xmm -// VPSRLD.BCST.Z imm8 m32 k ymm -// VPSRLD.BCST.Z imm8 m32 k zmm -// -// Construct and append a VPSRLD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSRLD_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPSRLD_BCST_Z(i, m, k, xyz) } - -// VPSRLD_Z: Shift Packed Doubleword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLD.Z imm8 m128 k xmm -// VPSRLD.Z imm8 m256 k ymm -// VPSRLD.Z imm8 xmm k xmm -// VPSRLD.Z imm8 ymm k ymm -// VPSRLD.Z m128 xmm k xmm -// VPSRLD.Z m128 ymm k ymm -// VPSRLD.Z xmm xmm k xmm -// VPSRLD.Z xmm ymm k ymm -// VPSRLD.Z imm8 m512 k zmm -// VPSRLD.Z imm8 zmm k zmm -// VPSRLD.Z m128 zmm k zmm -// VPSRLD.Z xmm zmm k zmm -// -// Construct and append a VPSRLD.Z instruction to the active function. -func (c *Context) VPSRLD_Z(imx, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSRLD_Z(imx, mxyz, k, xyz)) -} - -// VPSRLD_Z: Shift Packed Doubleword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLD.Z imm8 m128 k xmm -// VPSRLD.Z imm8 m256 k ymm -// VPSRLD.Z imm8 xmm k xmm -// VPSRLD.Z imm8 ymm k ymm -// VPSRLD.Z m128 xmm k xmm -// VPSRLD.Z m128 ymm k ymm -// VPSRLD.Z xmm xmm k xmm -// VPSRLD.Z xmm ymm k ymm -// VPSRLD.Z imm8 m512 k zmm -// VPSRLD.Z imm8 zmm k zmm -// VPSRLD.Z m128 zmm k zmm -// VPSRLD.Z xmm zmm k zmm -// -// Construct and append a VPSRLD.Z instruction to the active function. -// Operates on the global context. -func VPSRLD_Z(imx, mxyz, k, xyz operand.Op) { ctx.VPSRLD_Z(imx, mxyz, k, xyz) } - -// VPSRLQ: Shift Packed Quadword Data Right Logical. -// -// Forms: -// -// VPSRLQ imm8 ymm ymm -// VPSRLQ m128 ymm ymm -// VPSRLQ xmm ymm ymm -// VPSRLQ imm8 xmm xmm -// VPSRLQ m128 xmm xmm -// VPSRLQ xmm xmm xmm -// VPSRLQ imm8 m128 k xmm -// VPSRLQ imm8 m128 xmm -// VPSRLQ imm8 m256 k ymm -// VPSRLQ imm8 m256 ymm -// VPSRLQ imm8 xmm k xmm -// VPSRLQ imm8 ymm k ymm -// VPSRLQ m128 xmm k xmm -// VPSRLQ m128 ymm k ymm -// VPSRLQ xmm xmm k xmm -// VPSRLQ xmm ymm k ymm -// VPSRLQ imm8 m512 k zmm -// VPSRLQ imm8 m512 zmm -// VPSRLQ imm8 zmm k zmm -// VPSRLQ imm8 zmm zmm -// VPSRLQ m128 zmm k zmm -// VPSRLQ m128 zmm zmm -// VPSRLQ xmm zmm k zmm -// VPSRLQ xmm zmm zmm -// -// Construct and append a VPSRLQ instruction to the active function. -func (c *Context) VPSRLQ(ops ...operand.Op) { - c.addinstruction(x86.VPSRLQ(ops...)) -} - -// VPSRLQ: Shift Packed Quadword Data Right Logical. -// -// Forms: -// -// VPSRLQ imm8 ymm ymm -// VPSRLQ m128 ymm ymm -// VPSRLQ xmm ymm ymm -// VPSRLQ imm8 xmm xmm -// VPSRLQ m128 xmm xmm -// VPSRLQ xmm xmm xmm -// VPSRLQ imm8 m128 k xmm -// VPSRLQ imm8 m128 xmm -// VPSRLQ imm8 m256 k ymm -// VPSRLQ imm8 m256 ymm -// VPSRLQ imm8 xmm k xmm -// VPSRLQ imm8 ymm k ymm -// VPSRLQ m128 xmm k xmm -// VPSRLQ m128 ymm k ymm -// VPSRLQ xmm xmm k xmm -// VPSRLQ xmm ymm k ymm -// VPSRLQ imm8 m512 k zmm -// VPSRLQ imm8 m512 zmm -// VPSRLQ imm8 zmm k zmm -// VPSRLQ imm8 zmm zmm -// VPSRLQ m128 zmm k zmm -// VPSRLQ m128 zmm zmm -// VPSRLQ xmm zmm k zmm -// VPSRLQ xmm zmm zmm -// -// Construct and append a VPSRLQ instruction to the active function. -// Operates on the global context. -func VPSRLQ(ops ...operand.Op) { ctx.VPSRLQ(ops...) } - -// VPSRLQ_BCST: Shift Packed Quadword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLQ.BCST imm8 m64 k xmm -// VPSRLQ.BCST imm8 m64 k ymm -// VPSRLQ.BCST imm8 m64 xmm -// VPSRLQ.BCST imm8 m64 ymm -// VPSRLQ.BCST imm8 m64 k zmm -// VPSRLQ.BCST imm8 m64 zmm -// -// Construct and append a VPSRLQ.BCST instruction to the active function. -func (c *Context) VPSRLQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSRLQ_BCST(ops...)) -} - -// VPSRLQ_BCST: Shift Packed Quadword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLQ.BCST imm8 m64 k xmm -// VPSRLQ.BCST imm8 m64 k ymm -// VPSRLQ.BCST imm8 m64 xmm -// VPSRLQ.BCST imm8 m64 ymm -// VPSRLQ.BCST imm8 m64 k zmm -// VPSRLQ.BCST imm8 m64 zmm -// -// Construct and append a VPSRLQ.BCST instruction to the active function. -// Operates on the global context. -func VPSRLQ_BCST(ops ...operand.Op) { ctx.VPSRLQ_BCST(ops...) } - -// VPSRLQ_BCST_Z: Shift Packed Quadword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLQ.BCST.Z imm8 m64 k xmm -// VPSRLQ.BCST.Z imm8 m64 k ymm -// VPSRLQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPSRLQ.BCST.Z instruction to the active function. -func (c *Context) VPSRLQ_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VPSRLQ_BCST_Z(i, m, k, xyz)) -} - -// VPSRLQ_BCST_Z: Shift Packed Quadword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLQ.BCST.Z imm8 m64 k xmm -// VPSRLQ.BCST.Z imm8 m64 k ymm -// VPSRLQ.BCST.Z imm8 m64 k zmm -// -// Construct and append a VPSRLQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSRLQ_BCST_Z(i, m, k, xyz operand.Op) { ctx.VPSRLQ_BCST_Z(i, m, k, xyz) } - -// VPSRLQ_Z: Shift Packed Quadword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLQ.Z imm8 m128 k xmm -// VPSRLQ.Z imm8 m256 k ymm -// VPSRLQ.Z imm8 xmm k xmm -// VPSRLQ.Z imm8 ymm k ymm -// VPSRLQ.Z m128 xmm k xmm -// VPSRLQ.Z m128 ymm k ymm -// VPSRLQ.Z xmm xmm k xmm -// VPSRLQ.Z xmm ymm k ymm -// VPSRLQ.Z imm8 m512 k zmm -// VPSRLQ.Z imm8 zmm k zmm -// VPSRLQ.Z m128 zmm k zmm -// VPSRLQ.Z xmm zmm k zmm -// -// Construct and append a VPSRLQ.Z instruction to the active function. -func (c *Context) VPSRLQ_Z(imx, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSRLQ_Z(imx, mxyz, k, xyz)) -} - -// VPSRLQ_Z: Shift Packed Quadword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLQ.Z imm8 m128 k xmm -// VPSRLQ.Z imm8 m256 k ymm -// VPSRLQ.Z imm8 xmm k xmm -// VPSRLQ.Z imm8 ymm k ymm -// VPSRLQ.Z m128 xmm k xmm -// VPSRLQ.Z m128 ymm k ymm -// VPSRLQ.Z xmm xmm k xmm -// VPSRLQ.Z xmm ymm k ymm -// VPSRLQ.Z imm8 m512 k zmm -// VPSRLQ.Z imm8 zmm k zmm -// VPSRLQ.Z m128 zmm k zmm -// VPSRLQ.Z xmm zmm k zmm -// -// Construct and append a VPSRLQ.Z instruction to the active function. -// Operates on the global context. -func VPSRLQ_Z(imx, mxyz, k, xyz operand.Op) { ctx.VPSRLQ_Z(imx, mxyz, k, xyz) } - -// VPSRLVD: Variable Shift Packed Doubleword Data Right Logical. -// -// Forms: -// -// VPSRLVD m128 xmm xmm -// VPSRLVD m256 ymm ymm -// VPSRLVD xmm xmm xmm -// VPSRLVD ymm ymm ymm -// VPSRLVD m128 xmm k xmm -// VPSRLVD m256 ymm k ymm -// VPSRLVD xmm xmm k xmm -// VPSRLVD ymm ymm k ymm -// VPSRLVD m512 zmm k zmm -// VPSRLVD m512 zmm zmm -// VPSRLVD zmm zmm k zmm -// VPSRLVD zmm zmm zmm -// -// Construct and append a VPSRLVD instruction to the active function. -func (c *Context) VPSRLVD(ops ...operand.Op) { - c.addinstruction(x86.VPSRLVD(ops...)) -} - -// VPSRLVD: Variable Shift Packed Doubleword Data Right Logical. -// -// Forms: -// -// VPSRLVD m128 xmm xmm -// VPSRLVD m256 ymm ymm -// VPSRLVD xmm xmm xmm -// VPSRLVD ymm ymm ymm -// VPSRLVD m128 xmm k xmm -// VPSRLVD m256 ymm k ymm -// VPSRLVD xmm xmm k xmm -// VPSRLVD ymm ymm k ymm -// VPSRLVD m512 zmm k zmm -// VPSRLVD m512 zmm zmm -// VPSRLVD zmm zmm k zmm -// VPSRLVD zmm zmm zmm -// -// Construct and append a VPSRLVD instruction to the active function. -// Operates on the global context. -func VPSRLVD(ops ...operand.Op) { ctx.VPSRLVD(ops...) } - -// VPSRLVD_BCST: Variable Shift Packed Doubleword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLVD.BCST m32 xmm k xmm -// VPSRLVD.BCST m32 xmm xmm -// VPSRLVD.BCST m32 ymm k ymm -// VPSRLVD.BCST m32 ymm ymm -// VPSRLVD.BCST m32 zmm k zmm -// VPSRLVD.BCST m32 zmm zmm -// -// Construct and append a VPSRLVD.BCST instruction to the active function. -func (c *Context) VPSRLVD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSRLVD_BCST(ops...)) -} - -// VPSRLVD_BCST: Variable Shift Packed Doubleword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLVD.BCST m32 xmm k xmm -// VPSRLVD.BCST m32 xmm xmm -// VPSRLVD.BCST m32 ymm k ymm -// VPSRLVD.BCST m32 ymm ymm -// VPSRLVD.BCST m32 zmm k zmm -// VPSRLVD.BCST m32 zmm zmm -// -// Construct and append a VPSRLVD.BCST instruction to the active function. -// Operates on the global context. -func VPSRLVD_BCST(ops ...operand.Op) { ctx.VPSRLVD_BCST(ops...) } - -// VPSRLVD_BCST_Z: Variable Shift Packed Doubleword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLVD.BCST.Z m32 xmm k xmm -// VPSRLVD.BCST.Z m32 ymm k ymm -// VPSRLVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSRLVD.BCST.Z instruction to the active function. -func (c *Context) VPSRLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRLVD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSRLVD_BCST_Z: Variable Shift Packed Doubleword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLVD.BCST.Z m32 xmm k xmm -// VPSRLVD.BCST.Z m32 ymm k ymm -// VPSRLVD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSRLVD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSRLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSRLVD_BCST_Z(m, xyz, k, xyz1) } - -// VPSRLVD_Z: Variable Shift Packed Doubleword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLVD.Z m128 xmm k xmm -// VPSRLVD.Z m256 ymm k ymm -// VPSRLVD.Z xmm xmm k xmm -// VPSRLVD.Z ymm ymm k ymm -// VPSRLVD.Z m512 zmm k zmm -// VPSRLVD.Z zmm zmm k zmm -// -// Construct and append a VPSRLVD.Z instruction to the active function. -func (c *Context) VPSRLVD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRLVD_Z(mxyz, xyz, k, xyz1)) -} - -// VPSRLVD_Z: Variable Shift Packed Doubleword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLVD.Z m128 xmm k xmm -// VPSRLVD.Z m256 ymm k ymm -// VPSRLVD.Z xmm xmm k xmm -// VPSRLVD.Z ymm ymm k ymm -// VPSRLVD.Z m512 zmm k zmm -// VPSRLVD.Z zmm zmm k zmm -// -// Construct and append a VPSRLVD.Z instruction to the active function. -// Operates on the global context. -func VPSRLVD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSRLVD_Z(mxyz, xyz, k, xyz1) } - -// VPSRLVQ: Variable Shift Packed Quadword Data Right Logical. -// -// Forms: -// -// VPSRLVQ m128 xmm xmm -// VPSRLVQ m256 ymm ymm -// VPSRLVQ xmm xmm xmm -// VPSRLVQ ymm ymm ymm -// VPSRLVQ m128 xmm k xmm -// VPSRLVQ m256 ymm k ymm -// VPSRLVQ xmm xmm k xmm -// VPSRLVQ ymm ymm k ymm -// VPSRLVQ m512 zmm k zmm -// VPSRLVQ m512 zmm zmm -// VPSRLVQ zmm zmm k zmm -// VPSRLVQ zmm zmm zmm -// -// Construct and append a VPSRLVQ instruction to the active function. -func (c *Context) VPSRLVQ(ops ...operand.Op) { - c.addinstruction(x86.VPSRLVQ(ops...)) -} - -// VPSRLVQ: Variable Shift Packed Quadword Data Right Logical. -// -// Forms: -// -// VPSRLVQ m128 xmm xmm -// VPSRLVQ m256 ymm ymm -// VPSRLVQ xmm xmm xmm -// VPSRLVQ ymm ymm ymm -// VPSRLVQ m128 xmm k xmm -// VPSRLVQ m256 ymm k ymm -// VPSRLVQ xmm xmm k xmm -// VPSRLVQ ymm ymm k ymm -// VPSRLVQ m512 zmm k zmm -// VPSRLVQ m512 zmm zmm -// VPSRLVQ zmm zmm k zmm -// VPSRLVQ zmm zmm zmm -// -// Construct and append a VPSRLVQ instruction to the active function. -// Operates on the global context. -func VPSRLVQ(ops ...operand.Op) { ctx.VPSRLVQ(ops...) } - -// VPSRLVQ_BCST: Variable Shift Packed Quadword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLVQ.BCST m64 xmm k xmm -// VPSRLVQ.BCST m64 xmm xmm -// VPSRLVQ.BCST m64 ymm k ymm -// VPSRLVQ.BCST m64 ymm ymm -// VPSRLVQ.BCST m64 zmm k zmm -// VPSRLVQ.BCST m64 zmm zmm -// -// Construct and append a VPSRLVQ.BCST instruction to the active function. -func (c *Context) VPSRLVQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSRLVQ_BCST(ops...)) -} - -// VPSRLVQ_BCST: Variable Shift Packed Quadword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLVQ.BCST m64 xmm k xmm -// VPSRLVQ.BCST m64 xmm xmm -// VPSRLVQ.BCST m64 ymm k ymm -// VPSRLVQ.BCST m64 ymm ymm -// VPSRLVQ.BCST m64 zmm k zmm -// VPSRLVQ.BCST m64 zmm zmm -// -// Construct and append a VPSRLVQ.BCST instruction to the active function. -// Operates on the global context. -func VPSRLVQ_BCST(ops ...operand.Op) { ctx.VPSRLVQ_BCST(ops...) } - -// VPSRLVQ_BCST_Z: Variable Shift Packed Quadword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLVQ.BCST.Z m64 xmm k xmm -// VPSRLVQ.BCST.Z m64 ymm k ymm -// VPSRLVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSRLVQ.BCST.Z instruction to the active function. -func (c *Context) VPSRLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRLVQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSRLVQ_BCST_Z: Variable Shift Packed Quadword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLVQ.BCST.Z m64 xmm k xmm -// VPSRLVQ.BCST.Z m64 ymm k ymm -// VPSRLVQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSRLVQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSRLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSRLVQ_BCST_Z(m, xyz, k, xyz1) } - -// VPSRLVQ_Z: Variable Shift Packed Quadword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLVQ.Z m128 xmm k xmm -// VPSRLVQ.Z m256 ymm k ymm -// VPSRLVQ.Z xmm xmm k xmm -// VPSRLVQ.Z ymm ymm k ymm -// VPSRLVQ.Z m512 zmm k zmm -// VPSRLVQ.Z zmm zmm k zmm -// -// Construct and append a VPSRLVQ.Z instruction to the active function. -func (c *Context) VPSRLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRLVQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPSRLVQ_Z: Variable Shift Packed Quadword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLVQ.Z m128 xmm k xmm -// VPSRLVQ.Z m256 ymm k ymm -// VPSRLVQ.Z xmm xmm k xmm -// VPSRLVQ.Z ymm ymm k ymm -// VPSRLVQ.Z m512 zmm k zmm -// VPSRLVQ.Z zmm zmm k zmm -// -// Construct and append a VPSRLVQ.Z instruction to the active function. -// Operates on the global context. -func VPSRLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSRLVQ_Z(mxyz, xyz, k, xyz1) } - -// VPSRLVW: Variable Shift Packed Word Data Right Logical. -// -// Forms: -// -// VPSRLVW m128 xmm k xmm -// VPSRLVW m128 xmm xmm -// VPSRLVW m256 ymm k ymm -// VPSRLVW m256 ymm ymm -// VPSRLVW xmm xmm k xmm -// VPSRLVW xmm xmm xmm -// VPSRLVW ymm ymm k ymm -// VPSRLVW ymm ymm ymm -// VPSRLVW m512 zmm k zmm -// VPSRLVW m512 zmm zmm -// VPSRLVW zmm zmm k zmm -// VPSRLVW zmm zmm zmm -// -// Construct and append a VPSRLVW instruction to the active function. -func (c *Context) VPSRLVW(ops ...operand.Op) { - c.addinstruction(x86.VPSRLVW(ops...)) -} - -// VPSRLVW: Variable Shift Packed Word Data Right Logical. -// -// Forms: -// -// VPSRLVW m128 xmm k xmm -// VPSRLVW m128 xmm xmm -// VPSRLVW m256 ymm k ymm -// VPSRLVW m256 ymm ymm -// VPSRLVW xmm xmm k xmm -// VPSRLVW xmm xmm xmm -// VPSRLVW ymm ymm k ymm -// VPSRLVW ymm ymm ymm -// VPSRLVW m512 zmm k zmm -// VPSRLVW m512 zmm zmm -// VPSRLVW zmm zmm k zmm -// VPSRLVW zmm zmm zmm -// -// Construct and append a VPSRLVW instruction to the active function. -// Operates on the global context. -func VPSRLVW(ops ...operand.Op) { ctx.VPSRLVW(ops...) } - -// VPSRLVW_Z: Variable Shift Packed Word Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLVW.Z m128 xmm k xmm -// VPSRLVW.Z m256 ymm k ymm -// VPSRLVW.Z xmm xmm k xmm -// VPSRLVW.Z ymm ymm k ymm -// VPSRLVW.Z m512 zmm k zmm -// VPSRLVW.Z zmm zmm k zmm -// -// Construct and append a VPSRLVW.Z instruction to the active function. -func (c *Context) VPSRLVW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSRLVW_Z(mxyz, xyz, k, xyz1)) -} - -// VPSRLVW_Z: Variable Shift Packed Word Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLVW.Z m128 xmm k xmm -// VPSRLVW.Z m256 ymm k ymm -// VPSRLVW.Z xmm xmm k xmm -// VPSRLVW.Z ymm ymm k ymm -// VPSRLVW.Z m512 zmm k zmm -// VPSRLVW.Z zmm zmm k zmm -// -// Construct and append a VPSRLVW.Z instruction to the active function. -// Operates on the global context. -func VPSRLVW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSRLVW_Z(mxyz, xyz, k, xyz1) } - -// VPSRLW: Shift Packed Word Data Right Logical. -// -// Forms: -// -// VPSRLW imm8 ymm ymm -// VPSRLW m128 ymm ymm -// VPSRLW xmm ymm ymm -// VPSRLW imm8 xmm xmm -// VPSRLW m128 xmm xmm -// VPSRLW xmm xmm xmm -// VPSRLW imm8 m128 k xmm -// VPSRLW imm8 m128 xmm -// VPSRLW imm8 m256 k ymm -// VPSRLW imm8 m256 ymm -// VPSRLW imm8 xmm k xmm -// VPSRLW imm8 ymm k ymm -// VPSRLW m128 xmm k xmm -// VPSRLW m128 ymm k ymm -// VPSRLW xmm xmm k xmm -// VPSRLW xmm ymm k ymm -// VPSRLW imm8 m512 k zmm -// VPSRLW imm8 m512 zmm -// VPSRLW imm8 zmm k zmm -// VPSRLW imm8 zmm zmm -// VPSRLW m128 zmm k zmm -// VPSRLW m128 zmm zmm -// VPSRLW xmm zmm k zmm -// VPSRLW xmm zmm zmm -// -// Construct and append a VPSRLW instruction to the active function. -func (c *Context) VPSRLW(ops ...operand.Op) { - c.addinstruction(x86.VPSRLW(ops...)) -} - -// VPSRLW: Shift Packed Word Data Right Logical. -// -// Forms: -// -// VPSRLW imm8 ymm ymm -// VPSRLW m128 ymm ymm -// VPSRLW xmm ymm ymm -// VPSRLW imm8 xmm xmm -// VPSRLW m128 xmm xmm -// VPSRLW xmm xmm xmm -// VPSRLW imm8 m128 k xmm -// VPSRLW imm8 m128 xmm -// VPSRLW imm8 m256 k ymm -// VPSRLW imm8 m256 ymm -// VPSRLW imm8 xmm k xmm -// VPSRLW imm8 ymm k ymm -// VPSRLW m128 xmm k xmm -// VPSRLW m128 ymm k ymm -// VPSRLW xmm xmm k xmm -// VPSRLW xmm ymm k ymm -// VPSRLW imm8 m512 k zmm -// VPSRLW imm8 m512 zmm -// VPSRLW imm8 zmm k zmm -// VPSRLW imm8 zmm zmm -// VPSRLW m128 zmm k zmm -// VPSRLW m128 zmm zmm -// VPSRLW xmm zmm k zmm -// VPSRLW xmm zmm zmm -// -// Construct and append a VPSRLW instruction to the active function. -// Operates on the global context. -func VPSRLW(ops ...operand.Op) { ctx.VPSRLW(ops...) } - -// VPSRLW_Z: Shift Packed Word Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLW.Z imm8 m128 k xmm -// VPSRLW.Z imm8 m256 k ymm -// VPSRLW.Z imm8 xmm k xmm -// VPSRLW.Z imm8 ymm k ymm -// VPSRLW.Z m128 xmm k xmm -// VPSRLW.Z m128 ymm k ymm -// VPSRLW.Z xmm xmm k xmm -// VPSRLW.Z xmm ymm k ymm -// VPSRLW.Z imm8 m512 k zmm -// VPSRLW.Z imm8 zmm k zmm -// VPSRLW.Z m128 zmm k zmm -// VPSRLW.Z xmm zmm k zmm -// -// Construct and append a VPSRLW.Z instruction to the active function. -func (c *Context) VPSRLW_Z(imx, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VPSRLW_Z(imx, mxyz, k, xyz)) -} - -// VPSRLW_Z: Shift Packed Word Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLW.Z imm8 m128 k xmm -// VPSRLW.Z imm8 m256 k ymm -// VPSRLW.Z imm8 xmm k xmm -// VPSRLW.Z imm8 ymm k ymm -// VPSRLW.Z m128 xmm k xmm -// VPSRLW.Z m128 ymm k ymm -// VPSRLW.Z xmm xmm k xmm -// VPSRLW.Z xmm ymm k ymm -// VPSRLW.Z imm8 m512 k zmm -// VPSRLW.Z imm8 zmm k zmm -// VPSRLW.Z m128 zmm k zmm -// VPSRLW.Z xmm zmm k zmm -// -// Construct and append a VPSRLW.Z instruction to the active function. -// Operates on the global context. -func VPSRLW_Z(imx, mxyz, k, xyz operand.Op) { ctx.VPSRLW_Z(imx, mxyz, k, xyz) } - -// VPSUBB: Subtract Packed Byte Integers. -// -// Forms: -// -// VPSUBB m256 ymm ymm -// VPSUBB ymm ymm ymm -// VPSUBB m128 xmm xmm -// VPSUBB xmm xmm xmm -// VPSUBB m128 xmm k xmm -// VPSUBB m256 ymm k ymm -// VPSUBB xmm xmm k xmm -// VPSUBB ymm ymm k ymm -// VPSUBB m512 zmm k zmm -// VPSUBB m512 zmm zmm -// VPSUBB zmm zmm k zmm -// VPSUBB zmm zmm zmm -// -// Construct and append a VPSUBB instruction to the active function. -func (c *Context) VPSUBB(ops ...operand.Op) { - c.addinstruction(x86.VPSUBB(ops...)) -} - -// VPSUBB: Subtract Packed Byte Integers. -// -// Forms: -// -// VPSUBB m256 ymm ymm -// VPSUBB ymm ymm ymm -// VPSUBB m128 xmm xmm -// VPSUBB xmm xmm xmm -// VPSUBB m128 xmm k xmm -// VPSUBB m256 ymm k ymm -// VPSUBB xmm xmm k xmm -// VPSUBB ymm ymm k ymm -// VPSUBB m512 zmm k zmm -// VPSUBB m512 zmm zmm -// VPSUBB zmm zmm k zmm -// VPSUBB zmm zmm zmm -// -// Construct and append a VPSUBB instruction to the active function. -// Operates on the global context. -func VPSUBB(ops ...operand.Op) { ctx.VPSUBB(ops...) } - -// VPSUBB_Z: Subtract Packed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBB.Z m128 xmm k xmm -// VPSUBB.Z m256 ymm k ymm -// VPSUBB.Z xmm xmm k xmm -// VPSUBB.Z ymm ymm k ymm -// VPSUBB.Z m512 zmm k zmm -// VPSUBB.Z zmm zmm k zmm -// -// Construct and append a VPSUBB.Z instruction to the active function. -func (c *Context) VPSUBB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBB_Z(mxyz, xyz, k, xyz1)) -} - -// VPSUBB_Z: Subtract Packed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBB.Z m128 xmm k xmm -// VPSUBB.Z m256 ymm k ymm -// VPSUBB.Z xmm xmm k xmm -// VPSUBB.Z ymm ymm k ymm -// VPSUBB.Z m512 zmm k zmm -// VPSUBB.Z zmm zmm k zmm -// -// Construct and append a VPSUBB.Z instruction to the active function. -// Operates on the global context. -func VPSUBB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSUBB_Z(mxyz, xyz, k, xyz1) } - -// VPSUBD: Subtract Packed Doubleword Integers. -// -// Forms: -// -// VPSUBD m256 ymm ymm -// VPSUBD ymm ymm ymm -// VPSUBD m128 xmm xmm -// VPSUBD xmm xmm xmm -// VPSUBD m128 xmm k xmm -// VPSUBD m256 ymm k ymm -// VPSUBD xmm xmm k xmm -// VPSUBD ymm ymm k ymm -// VPSUBD m512 zmm k zmm -// VPSUBD m512 zmm zmm -// VPSUBD zmm zmm k zmm -// VPSUBD zmm zmm zmm -// -// Construct and append a VPSUBD instruction to the active function. -func (c *Context) VPSUBD(ops ...operand.Op) { - c.addinstruction(x86.VPSUBD(ops...)) -} - -// VPSUBD: Subtract Packed Doubleword Integers. -// -// Forms: -// -// VPSUBD m256 ymm ymm -// VPSUBD ymm ymm ymm -// VPSUBD m128 xmm xmm -// VPSUBD xmm xmm xmm -// VPSUBD m128 xmm k xmm -// VPSUBD m256 ymm k ymm -// VPSUBD xmm xmm k xmm -// VPSUBD ymm ymm k ymm -// VPSUBD m512 zmm k zmm -// VPSUBD m512 zmm zmm -// VPSUBD zmm zmm k zmm -// VPSUBD zmm zmm zmm -// -// Construct and append a VPSUBD instruction to the active function. -// Operates on the global context. -func VPSUBD(ops ...operand.Op) { ctx.VPSUBD(ops...) } - -// VPSUBD_BCST: Subtract Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPSUBD.BCST m32 xmm k xmm -// VPSUBD.BCST m32 xmm xmm -// VPSUBD.BCST m32 ymm k ymm -// VPSUBD.BCST m32 ymm ymm -// VPSUBD.BCST m32 zmm k zmm -// VPSUBD.BCST m32 zmm zmm -// -// Construct and append a VPSUBD.BCST instruction to the active function. -func (c *Context) VPSUBD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSUBD_BCST(ops...)) -} - -// VPSUBD_BCST: Subtract Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPSUBD.BCST m32 xmm k xmm -// VPSUBD.BCST m32 xmm xmm -// VPSUBD.BCST m32 ymm k ymm -// VPSUBD.BCST m32 ymm ymm -// VPSUBD.BCST m32 zmm k zmm -// VPSUBD.BCST m32 zmm zmm -// -// Construct and append a VPSUBD.BCST instruction to the active function. -// Operates on the global context. -func VPSUBD_BCST(ops ...operand.Op) { ctx.VPSUBD_BCST(ops...) } - -// VPSUBD_BCST_Z: Subtract Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSUBD.BCST.Z m32 xmm k xmm -// VPSUBD.BCST.Z m32 ymm k ymm -// VPSUBD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSUBD.BCST.Z instruction to the active function. -func (c *Context) VPSUBD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSUBD_BCST_Z: Subtract Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSUBD.BCST.Z m32 xmm k xmm -// VPSUBD.BCST.Z m32 ymm k ymm -// VPSUBD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPSUBD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSUBD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSUBD_BCST_Z(m, xyz, k, xyz1) } - -// VPSUBD_Z: Subtract Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBD.Z m128 xmm k xmm -// VPSUBD.Z m256 ymm k ymm -// VPSUBD.Z xmm xmm k xmm -// VPSUBD.Z ymm ymm k ymm -// VPSUBD.Z m512 zmm k zmm -// VPSUBD.Z zmm zmm k zmm -// -// Construct and append a VPSUBD.Z instruction to the active function. -func (c *Context) VPSUBD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBD_Z(mxyz, xyz, k, xyz1)) -} - -// VPSUBD_Z: Subtract Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBD.Z m128 xmm k xmm -// VPSUBD.Z m256 ymm k ymm -// VPSUBD.Z xmm xmm k xmm -// VPSUBD.Z ymm ymm k ymm -// VPSUBD.Z m512 zmm k zmm -// VPSUBD.Z zmm zmm k zmm -// -// Construct and append a VPSUBD.Z instruction to the active function. -// Operates on the global context. -func VPSUBD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSUBD_Z(mxyz, xyz, k, xyz1) } - -// VPSUBQ: Subtract Packed Quadword Integers. -// -// Forms: -// -// VPSUBQ m256 ymm ymm -// VPSUBQ ymm ymm ymm -// VPSUBQ m128 xmm xmm -// VPSUBQ xmm xmm xmm -// VPSUBQ m128 xmm k xmm -// VPSUBQ m256 ymm k ymm -// VPSUBQ xmm xmm k xmm -// VPSUBQ ymm ymm k ymm -// VPSUBQ m512 zmm k zmm -// VPSUBQ m512 zmm zmm -// VPSUBQ zmm zmm k zmm -// VPSUBQ zmm zmm zmm -// -// Construct and append a VPSUBQ instruction to the active function. -func (c *Context) VPSUBQ(ops ...operand.Op) { - c.addinstruction(x86.VPSUBQ(ops...)) -} - -// VPSUBQ: Subtract Packed Quadword Integers. -// -// Forms: -// -// VPSUBQ m256 ymm ymm -// VPSUBQ ymm ymm ymm -// VPSUBQ m128 xmm xmm -// VPSUBQ xmm xmm xmm -// VPSUBQ m128 xmm k xmm -// VPSUBQ m256 ymm k ymm -// VPSUBQ xmm xmm k xmm -// VPSUBQ ymm ymm k ymm -// VPSUBQ m512 zmm k zmm -// VPSUBQ m512 zmm zmm -// VPSUBQ zmm zmm k zmm -// VPSUBQ zmm zmm zmm -// -// Construct and append a VPSUBQ instruction to the active function. -// Operates on the global context. -func VPSUBQ(ops ...operand.Op) { ctx.VPSUBQ(ops...) } - -// VPSUBQ_BCST: Subtract Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPSUBQ.BCST m64 xmm k xmm -// VPSUBQ.BCST m64 xmm xmm -// VPSUBQ.BCST m64 ymm k ymm -// VPSUBQ.BCST m64 ymm ymm -// VPSUBQ.BCST m64 zmm k zmm -// VPSUBQ.BCST m64 zmm zmm -// -// Construct and append a VPSUBQ.BCST instruction to the active function. -func (c *Context) VPSUBQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPSUBQ_BCST(ops...)) -} - -// VPSUBQ_BCST: Subtract Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPSUBQ.BCST m64 xmm k xmm -// VPSUBQ.BCST m64 xmm xmm -// VPSUBQ.BCST m64 ymm k ymm -// VPSUBQ.BCST m64 ymm ymm -// VPSUBQ.BCST m64 zmm k zmm -// VPSUBQ.BCST m64 zmm zmm -// -// Construct and append a VPSUBQ.BCST instruction to the active function. -// Operates on the global context. -func VPSUBQ_BCST(ops ...operand.Op) { ctx.VPSUBQ_BCST(ops...) } - -// VPSUBQ_BCST_Z: Subtract Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSUBQ.BCST.Z m64 xmm k xmm -// VPSUBQ.BCST.Z m64 ymm k ymm -// VPSUBQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSUBQ.BCST.Z instruction to the active function. -func (c *Context) VPSUBQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPSUBQ_BCST_Z: Subtract Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSUBQ.BCST.Z m64 xmm k xmm -// VPSUBQ.BCST.Z m64 ymm k ymm -// VPSUBQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPSUBQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPSUBQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPSUBQ_BCST_Z(m, xyz, k, xyz1) } - -// VPSUBQ_Z: Subtract Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBQ.Z m128 xmm k xmm -// VPSUBQ.Z m256 ymm k ymm -// VPSUBQ.Z xmm xmm k xmm -// VPSUBQ.Z ymm ymm k ymm -// VPSUBQ.Z m512 zmm k zmm -// VPSUBQ.Z zmm zmm k zmm -// -// Construct and append a VPSUBQ.Z instruction to the active function. -func (c *Context) VPSUBQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPSUBQ_Z: Subtract Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBQ.Z m128 xmm k xmm -// VPSUBQ.Z m256 ymm k ymm -// VPSUBQ.Z xmm xmm k xmm -// VPSUBQ.Z ymm ymm k ymm -// VPSUBQ.Z m512 zmm k zmm -// VPSUBQ.Z zmm zmm k zmm -// -// Construct and append a VPSUBQ.Z instruction to the active function. -// Operates on the global context. -func VPSUBQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSUBQ_Z(mxyz, xyz, k, xyz1) } - -// VPSUBSB: Subtract Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// VPSUBSB m256 ymm ymm -// VPSUBSB ymm ymm ymm -// VPSUBSB m128 xmm xmm -// VPSUBSB xmm xmm xmm -// VPSUBSB m128 xmm k xmm -// VPSUBSB m256 ymm k ymm -// VPSUBSB xmm xmm k xmm -// VPSUBSB ymm ymm k ymm -// VPSUBSB m512 zmm k zmm -// VPSUBSB m512 zmm zmm -// VPSUBSB zmm zmm k zmm -// VPSUBSB zmm zmm zmm -// -// Construct and append a VPSUBSB instruction to the active function. -func (c *Context) VPSUBSB(ops ...operand.Op) { - c.addinstruction(x86.VPSUBSB(ops...)) -} - -// VPSUBSB: Subtract Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// VPSUBSB m256 ymm ymm -// VPSUBSB ymm ymm ymm -// VPSUBSB m128 xmm xmm -// VPSUBSB xmm xmm xmm -// VPSUBSB m128 xmm k xmm -// VPSUBSB m256 ymm k ymm -// VPSUBSB xmm xmm k xmm -// VPSUBSB ymm ymm k ymm -// VPSUBSB m512 zmm k zmm -// VPSUBSB m512 zmm zmm -// VPSUBSB zmm zmm k zmm -// VPSUBSB zmm zmm zmm -// -// Construct and append a VPSUBSB instruction to the active function. -// Operates on the global context. -func VPSUBSB(ops ...operand.Op) { ctx.VPSUBSB(ops...) } - -// VPSUBSB_Z: Subtract Packed Signed Byte Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBSB.Z m128 xmm k xmm -// VPSUBSB.Z m256 ymm k ymm -// VPSUBSB.Z xmm xmm k xmm -// VPSUBSB.Z ymm ymm k ymm -// VPSUBSB.Z m512 zmm k zmm -// VPSUBSB.Z zmm zmm k zmm -// -// Construct and append a VPSUBSB.Z instruction to the active function. -func (c *Context) VPSUBSB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBSB_Z(mxyz, xyz, k, xyz1)) -} - -// VPSUBSB_Z: Subtract Packed Signed Byte Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBSB.Z m128 xmm k xmm -// VPSUBSB.Z m256 ymm k ymm -// VPSUBSB.Z xmm xmm k xmm -// VPSUBSB.Z ymm ymm k ymm -// VPSUBSB.Z m512 zmm k zmm -// VPSUBSB.Z zmm zmm k zmm -// -// Construct and append a VPSUBSB.Z instruction to the active function. -// Operates on the global context. -func VPSUBSB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSUBSB_Z(mxyz, xyz, k, xyz1) } - -// VPSUBSW: Subtract Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPSUBSW m256 ymm ymm -// VPSUBSW ymm ymm ymm -// VPSUBSW m128 xmm xmm -// VPSUBSW xmm xmm xmm -// VPSUBSW m128 xmm k xmm -// VPSUBSW m256 ymm k ymm -// VPSUBSW xmm xmm k xmm -// VPSUBSW ymm ymm k ymm -// VPSUBSW m512 zmm k zmm -// VPSUBSW m512 zmm zmm -// VPSUBSW zmm zmm k zmm -// VPSUBSW zmm zmm zmm -// -// Construct and append a VPSUBSW instruction to the active function. -func (c *Context) VPSUBSW(ops ...operand.Op) { - c.addinstruction(x86.VPSUBSW(ops...)) -} - -// VPSUBSW: Subtract Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPSUBSW m256 ymm ymm -// VPSUBSW ymm ymm ymm -// VPSUBSW m128 xmm xmm -// VPSUBSW xmm xmm xmm -// VPSUBSW m128 xmm k xmm -// VPSUBSW m256 ymm k ymm -// VPSUBSW xmm xmm k xmm -// VPSUBSW ymm ymm k ymm -// VPSUBSW m512 zmm k zmm -// VPSUBSW m512 zmm zmm -// VPSUBSW zmm zmm k zmm -// VPSUBSW zmm zmm zmm -// -// Construct and append a VPSUBSW instruction to the active function. -// Operates on the global context. -func VPSUBSW(ops ...operand.Op) { ctx.VPSUBSW(ops...) } - -// VPSUBSW_Z: Subtract Packed Signed Word Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBSW.Z m128 xmm k xmm -// VPSUBSW.Z m256 ymm k ymm -// VPSUBSW.Z xmm xmm k xmm -// VPSUBSW.Z ymm ymm k ymm -// VPSUBSW.Z m512 zmm k zmm -// VPSUBSW.Z zmm zmm k zmm -// -// Construct and append a VPSUBSW.Z instruction to the active function. -func (c *Context) VPSUBSW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBSW_Z(mxyz, xyz, k, xyz1)) -} - -// VPSUBSW_Z: Subtract Packed Signed Word Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBSW.Z m128 xmm k xmm -// VPSUBSW.Z m256 ymm k ymm -// VPSUBSW.Z xmm xmm k xmm -// VPSUBSW.Z ymm ymm k ymm -// VPSUBSW.Z m512 zmm k zmm -// VPSUBSW.Z zmm zmm k zmm -// -// Construct and append a VPSUBSW.Z instruction to the active function. -// Operates on the global context. -func VPSUBSW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSUBSW_Z(mxyz, xyz, k, xyz1) } - -// VPSUBUSB: Subtract Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// VPSUBUSB m256 ymm ymm -// VPSUBUSB ymm ymm ymm -// VPSUBUSB m128 xmm xmm -// VPSUBUSB xmm xmm xmm -// VPSUBUSB m128 xmm k xmm -// VPSUBUSB m256 ymm k ymm -// VPSUBUSB xmm xmm k xmm -// VPSUBUSB ymm ymm k ymm -// VPSUBUSB m512 zmm k zmm -// VPSUBUSB m512 zmm zmm -// VPSUBUSB zmm zmm k zmm -// VPSUBUSB zmm zmm zmm -// -// Construct and append a VPSUBUSB instruction to the active function. -func (c *Context) VPSUBUSB(ops ...operand.Op) { - c.addinstruction(x86.VPSUBUSB(ops...)) -} - -// VPSUBUSB: Subtract Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// VPSUBUSB m256 ymm ymm -// VPSUBUSB ymm ymm ymm -// VPSUBUSB m128 xmm xmm -// VPSUBUSB xmm xmm xmm -// VPSUBUSB m128 xmm k xmm -// VPSUBUSB m256 ymm k ymm -// VPSUBUSB xmm xmm k xmm -// VPSUBUSB ymm ymm k ymm -// VPSUBUSB m512 zmm k zmm -// VPSUBUSB m512 zmm zmm -// VPSUBUSB zmm zmm k zmm -// VPSUBUSB zmm zmm zmm -// -// Construct and append a VPSUBUSB instruction to the active function. -// Operates on the global context. -func VPSUBUSB(ops ...operand.Op) { ctx.VPSUBUSB(ops...) } - -// VPSUBUSB_Z: Subtract Packed Unsigned Byte Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBUSB.Z m128 xmm k xmm -// VPSUBUSB.Z m256 ymm k ymm -// VPSUBUSB.Z xmm xmm k xmm -// VPSUBUSB.Z ymm ymm k ymm -// VPSUBUSB.Z m512 zmm k zmm -// VPSUBUSB.Z zmm zmm k zmm -// -// Construct and append a VPSUBUSB.Z instruction to the active function. -func (c *Context) VPSUBUSB_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBUSB_Z(mxyz, xyz, k, xyz1)) -} - -// VPSUBUSB_Z: Subtract Packed Unsigned Byte Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBUSB.Z m128 xmm k xmm -// VPSUBUSB.Z m256 ymm k ymm -// VPSUBUSB.Z xmm xmm k xmm -// VPSUBUSB.Z ymm ymm k ymm -// VPSUBUSB.Z m512 zmm k zmm -// VPSUBUSB.Z zmm zmm k zmm -// -// Construct and append a VPSUBUSB.Z instruction to the active function. -// Operates on the global context. -func VPSUBUSB_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSUBUSB_Z(mxyz, xyz, k, xyz1) } - -// VPSUBUSW: Subtract Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// VPSUBUSW m256 ymm ymm -// VPSUBUSW ymm ymm ymm -// VPSUBUSW m128 xmm xmm -// VPSUBUSW xmm xmm xmm -// VPSUBUSW m128 xmm k xmm -// VPSUBUSW m256 ymm k ymm -// VPSUBUSW xmm xmm k xmm -// VPSUBUSW ymm ymm k ymm -// VPSUBUSW m512 zmm k zmm -// VPSUBUSW m512 zmm zmm -// VPSUBUSW zmm zmm k zmm -// VPSUBUSW zmm zmm zmm -// -// Construct and append a VPSUBUSW instruction to the active function. -func (c *Context) VPSUBUSW(ops ...operand.Op) { - c.addinstruction(x86.VPSUBUSW(ops...)) -} - -// VPSUBUSW: Subtract Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// VPSUBUSW m256 ymm ymm -// VPSUBUSW ymm ymm ymm -// VPSUBUSW m128 xmm xmm -// VPSUBUSW xmm xmm xmm -// VPSUBUSW m128 xmm k xmm -// VPSUBUSW m256 ymm k ymm -// VPSUBUSW xmm xmm k xmm -// VPSUBUSW ymm ymm k ymm -// VPSUBUSW m512 zmm k zmm -// VPSUBUSW m512 zmm zmm -// VPSUBUSW zmm zmm k zmm -// VPSUBUSW zmm zmm zmm -// -// Construct and append a VPSUBUSW instruction to the active function. -// Operates on the global context. -func VPSUBUSW(ops ...operand.Op) { ctx.VPSUBUSW(ops...) } - -// VPSUBUSW_Z: Subtract Packed Unsigned Word Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBUSW.Z m128 xmm k xmm -// VPSUBUSW.Z m256 ymm k ymm -// VPSUBUSW.Z xmm xmm k xmm -// VPSUBUSW.Z ymm ymm k ymm -// VPSUBUSW.Z m512 zmm k zmm -// VPSUBUSW.Z zmm zmm k zmm -// -// Construct and append a VPSUBUSW.Z instruction to the active function. -func (c *Context) VPSUBUSW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBUSW_Z(mxyz, xyz, k, xyz1)) -} - -// VPSUBUSW_Z: Subtract Packed Unsigned Word Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBUSW.Z m128 xmm k xmm -// VPSUBUSW.Z m256 ymm k ymm -// VPSUBUSW.Z xmm xmm k xmm -// VPSUBUSW.Z ymm ymm k ymm -// VPSUBUSW.Z m512 zmm k zmm -// VPSUBUSW.Z zmm zmm k zmm -// -// Construct and append a VPSUBUSW.Z instruction to the active function. -// Operates on the global context. -func VPSUBUSW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSUBUSW_Z(mxyz, xyz, k, xyz1) } - -// VPSUBW: Subtract Packed Word Integers. -// -// Forms: -// -// VPSUBW m256 ymm ymm -// VPSUBW ymm ymm ymm -// VPSUBW m128 xmm xmm -// VPSUBW xmm xmm xmm -// VPSUBW m128 xmm k xmm -// VPSUBW m256 ymm k ymm -// VPSUBW xmm xmm k xmm -// VPSUBW ymm ymm k ymm -// VPSUBW m512 zmm k zmm -// VPSUBW m512 zmm zmm -// VPSUBW zmm zmm k zmm -// VPSUBW zmm zmm zmm -// -// Construct and append a VPSUBW instruction to the active function. -func (c *Context) VPSUBW(ops ...operand.Op) { - c.addinstruction(x86.VPSUBW(ops...)) -} - -// VPSUBW: Subtract Packed Word Integers. -// -// Forms: -// -// VPSUBW m256 ymm ymm -// VPSUBW ymm ymm ymm -// VPSUBW m128 xmm xmm -// VPSUBW xmm xmm xmm -// VPSUBW m128 xmm k xmm -// VPSUBW m256 ymm k ymm -// VPSUBW xmm xmm k xmm -// VPSUBW ymm ymm k ymm -// VPSUBW m512 zmm k zmm -// VPSUBW m512 zmm zmm -// VPSUBW zmm zmm k zmm -// VPSUBW zmm zmm zmm -// -// Construct and append a VPSUBW instruction to the active function. -// Operates on the global context. -func VPSUBW(ops ...operand.Op) { ctx.VPSUBW(ops...) } - -// VPSUBW_Z: Subtract Packed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBW.Z m128 xmm k xmm -// VPSUBW.Z m256 ymm k ymm -// VPSUBW.Z xmm xmm k xmm -// VPSUBW.Z ymm ymm k ymm -// VPSUBW.Z m512 zmm k zmm -// VPSUBW.Z zmm zmm k zmm -// -// Construct and append a VPSUBW.Z instruction to the active function. -func (c *Context) VPSUBW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPSUBW_Z(mxyz, xyz, k, xyz1)) -} - -// VPSUBW_Z: Subtract Packed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBW.Z m128 xmm k xmm -// VPSUBW.Z m256 ymm k ymm -// VPSUBW.Z xmm xmm k xmm -// VPSUBW.Z ymm ymm k ymm -// VPSUBW.Z m512 zmm k zmm -// VPSUBW.Z zmm zmm k zmm -// -// Construct and append a VPSUBW.Z instruction to the active function. -// Operates on the global context. -func VPSUBW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPSUBW_Z(mxyz, xyz, k, xyz1) } - -// VPTERNLOGD: Bitwise Ternary Logical Operation on Doubleword Values. -// -// Forms: -// -// VPTERNLOGD imm8 m128 xmm k xmm -// VPTERNLOGD imm8 m128 xmm xmm -// VPTERNLOGD imm8 m256 ymm k ymm -// VPTERNLOGD imm8 m256 ymm ymm -// VPTERNLOGD imm8 xmm xmm k xmm -// VPTERNLOGD imm8 xmm xmm xmm -// VPTERNLOGD imm8 ymm ymm k ymm -// VPTERNLOGD imm8 ymm ymm ymm -// VPTERNLOGD imm8 m512 zmm k zmm -// VPTERNLOGD imm8 m512 zmm zmm -// VPTERNLOGD imm8 zmm zmm k zmm -// VPTERNLOGD imm8 zmm zmm zmm -// -// Construct and append a VPTERNLOGD instruction to the active function. -func (c *Context) VPTERNLOGD(ops ...operand.Op) { - c.addinstruction(x86.VPTERNLOGD(ops...)) -} - -// VPTERNLOGD: Bitwise Ternary Logical Operation on Doubleword Values. -// -// Forms: -// -// VPTERNLOGD imm8 m128 xmm k xmm -// VPTERNLOGD imm8 m128 xmm xmm -// VPTERNLOGD imm8 m256 ymm k ymm -// VPTERNLOGD imm8 m256 ymm ymm -// VPTERNLOGD imm8 xmm xmm k xmm -// VPTERNLOGD imm8 xmm xmm xmm -// VPTERNLOGD imm8 ymm ymm k ymm -// VPTERNLOGD imm8 ymm ymm ymm -// VPTERNLOGD imm8 m512 zmm k zmm -// VPTERNLOGD imm8 m512 zmm zmm -// VPTERNLOGD imm8 zmm zmm k zmm -// VPTERNLOGD imm8 zmm zmm zmm -// -// Construct and append a VPTERNLOGD instruction to the active function. -// Operates on the global context. -func VPTERNLOGD(ops ...operand.Op) { ctx.VPTERNLOGD(ops...) } - -// VPTERNLOGD_BCST: Bitwise Ternary Logical Operation on Doubleword Values (Broadcast). -// -// Forms: -// -// VPTERNLOGD.BCST imm8 m32 xmm k xmm -// VPTERNLOGD.BCST imm8 m32 xmm xmm -// VPTERNLOGD.BCST imm8 m32 ymm k ymm -// VPTERNLOGD.BCST imm8 m32 ymm ymm -// VPTERNLOGD.BCST imm8 m32 zmm k zmm -// VPTERNLOGD.BCST imm8 m32 zmm zmm -// -// Construct and append a VPTERNLOGD.BCST instruction to the active function. -func (c *Context) VPTERNLOGD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPTERNLOGD_BCST(ops...)) -} - -// VPTERNLOGD_BCST: Bitwise Ternary Logical Operation on Doubleword Values (Broadcast). -// -// Forms: -// -// VPTERNLOGD.BCST imm8 m32 xmm k xmm -// VPTERNLOGD.BCST imm8 m32 xmm xmm -// VPTERNLOGD.BCST imm8 m32 ymm k ymm -// VPTERNLOGD.BCST imm8 m32 ymm ymm -// VPTERNLOGD.BCST imm8 m32 zmm k zmm -// VPTERNLOGD.BCST imm8 m32 zmm zmm -// -// Construct and append a VPTERNLOGD.BCST instruction to the active function. -// Operates on the global context. -func VPTERNLOGD_BCST(ops ...operand.Op) { ctx.VPTERNLOGD_BCST(ops...) } - -// VPTERNLOGD_BCST_Z: Bitwise Ternary Logical Operation on Doubleword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPTERNLOGD.BCST.Z imm8 m32 xmm k xmm -// VPTERNLOGD.BCST.Z imm8 m32 ymm k ymm -// VPTERNLOGD.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VPTERNLOGD.BCST.Z instruction to the active function. -func (c *Context) VPTERNLOGD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPTERNLOGD_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VPTERNLOGD_BCST_Z: Bitwise Ternary Logical Operation on Doubleword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPTERNLOGD.BCST.Z imm8 m32 xmm k xmm -// VPTERNLOGD.BCST.Z imm8 m32 ymm k ymm -// VPTERNLOGD.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VPTERNLOGD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPTERNLOGD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPTERNLOGD_BCST_Z(i, m, xyz, k, xyz1) } - -// VPTERNLOGD_Z: Bitwise Ternary Logical Operation on Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VPTERNLOGD.Z imm8 m128 xmm k xmm -// VPTERNLOGD.Z imm8 m256 ymm k ymm -// VPTERNLOGD.Z imm8 xmm xmm k xmm -// VPTERNLOGD.Z imm8 ymm ymm k ymm -// VPTERNLOGD.Z imm8 m512 zmm k zmm -// VPTERNLOGD.Z imm8 zmm zmm k zmm -// -// Construct and append a VPTERNLOGD.Z instruction to the active function. -func (c *Context) VPTERNLOGD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPTERNLOGD_Z(i, mxyz, xyz, k, xyz1)) -} - -// VPTERNLOGD_Z: Bitwise Ternary Logical Operation on Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VPTERNLOGD.Z imm8 m128 xmm k xmm -// VPTERNLOGD.Z imm8 m256 ymm k ymm -// VPTERNLOGD.Z imm8 xmm xmm k xmm -// VPTERNLOGD.Z imm8 ymm ymm k ymm -// VPTERNLOGD.Z imm8 m512 zmm k zmm -// VPTERNLOGD.Z imm8 zmm zmm k zmm -// -// Construct and append a VPTERNLOGD.Z instruction to the active function. -// Operates on the global context. -func VPTERNLOGD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPTERNLOGD_Z(i, mxyz, xyz, k, xyz1) } - -// VPTERNLOGQ: Bitwise Ternary Logical Operation on Quadword Values. -// -// Forms: -// -// VPTERNLOGQ imm8 m128 xmm k xmm -// VPTERNLOGQ imm8 m128 xmm xmm -// VPTERNLOGQ imm8 m256 ymm k ymm -// VPTERNLOGQ imm8 m256 ymm ymm -// VPTERNLOGQ imm8 xmm xmm k xmm -// VPTERNLOGQ imm8 xmm xmm xmm -// VPTERNLOGQ imm8 ymm ymm k ymm -// VPTERNLOGQ imm8 ymm ymm ymm -// VPTERNLOGQ imm8 m512 zmm k zmm -// VPTERNLOGQ imm8 m512 zmm zmm -// VPTERNLOGQ imm8 zmm zmm k zmm -// VPTERNLOGQ imm8 zmm zmm zmm -// -// Construct and append a VPTERNLOGQ instruction to the active function. -func (c *Context) VPTERNLOGQ(ops ...operand.Op) { - c.addinstruction(x86.VPTERNLOGQ(ops...)) -} - -// VPTERNLOGQ: Bitwise Ternary Logical Operation on Quadword Values. -// -// Forms: -// -// VPTERNLOGQ imm8 m128 xmm k xmm -// VPTERNLOGQ imm8 m128 xmm xmm -// VPTERNLOGQ imm8 m256 ymm k ymm -// VPTERNLOGQ imm8 m256 ymm ymm -// VPTERNLOGQ imm8 xmm xmm k xmm -// VPTERNLOGQ imm8 xmm xmm xmm -// VPTERNLOGQ imm8 ymm ymm k ymm -// VPTERNLOGQ imm8 ymm ymm ymm -// VPTERNLOGQ imm8 m512 zmm k zmm -// VPTERNLOGQ imm8 m512 zmm zmm -// VPTERNLOGQ imm8 zmm zmm k zmm -// VPTERNLOGQ imm8 zmm zmm zmm -// -// Construct and append a VPTERNLOGQ instruction to the active function. -// Operates on the global context. -func VPTERNLOGQ(ops ...operand.Op) { ctx.VPTERNLOGQ(ops...) } - -// VPTERNLOGQ_BCST: Bitwise Ternary Logical Operation on Quadword Values (Broadcast). -// -// Forms: -// -// VPTERNLOGQ.BCST imm8 m64 xmm k xmm -// VPTERNLOGQ.BCST imm8 m64 xmm xmm -// VPTERNLOGQ.BCST imm8 m64 ymm k ymm -// VPTERNLOGQ.BCST imm8 m64 ymm ymm -// VPTERNLOGQ.BCST imm8 m64 zmm k zmm -// VPTERNLOGQ.BCST imm8 m64 zmm zmm -// -// Construct and append a VPTERNLOGQ.BCST instruction to the active function. -func (c *Context) VPTERNLOGQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPTERNLOGQ_BCST(ops...)) -} - -// VPTERNLOGQ_BCST: Bitwise Ternary Logical Operation on Quadword Values (Broadcast). -// -// Forms: -// -// VPTERNLOGQ.BCST imm8 m64 xmm k xmm -// VPTERNLOGQ.BCST imm8 m64 xmm xmm -// VPTERNLOGQ.BCST imm8 m64 ymm k ymm -// VPTERNLOGQ.BCST imm8 m64 ymm ymm -// VPTERNLOGQ.BCST imm8 m64 zmm k zmm -// VPTERNLOGQ.BCST imm8 m64 zmm zmm -// -// Construct and append a VPTERNLOGQ.BCST instruction to the active function. -// Operates on the global context. -func VPTERNLOGQ_BCST(ops ...operand.Op) { ctx.VPTERNLOGQ_BCST(ops...) } - -// VPTERNLOGQ_BCST_Z: Bitwise Ternary Logical Operation on Quadword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPTERNLOGQ.BCST.Z imm8 m64 xmm k xmm -// VPTERNLOGQ.BCST.Z imm8 m64 ymm k ymm -// VPTERNLOGQ.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VPTERNLOGQ.BCST.Z instruction to the active function. -func (c *Context) VPTERNLOGQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPTERNLOGQ_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VPTERNLOGQ_BCST_Z: Bitwise Ternary Logical Operation on Quadword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPTERNLOGQ.BCST.Z imm8 m64 xmm k xmm -// VPTERNLOGQ.BCST.Z imm8 m64 ymm k ymm -// VPTERNLOGQ.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VPTERNLOGQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPTERNLOGQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VPTERNLOGQ_BCST_Z(i, m, xyz, k, xyz1) } - -// VPTERNLOGQ_Z: Bitwise Ternary Logical Operation on Quadword Values (Zeroing Masking). -// -// Forms: -// -// VPTERNLOGQ.Z imm8 m128 xmm k xmm -// VPTERNLOGQ.Z imm8 m256 ymm k ymm -// VPTERNLOGQ.Z imm8 xmm xmm k xmm -// VPTERNLOGQ.Z imm8 ymm ymm k ymm -// VPTERNLOGQ.Z imm8 m512 zmm k zmm -// VPTERNLOGQ.Z imm8 zmm zmm k zmm -// -// Construct and append a VPTERNLOGQ.Z instruction to the active function. -func (c *Context) VPTERNLOGQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPTERNLOGQ_Z(i, mxyz, xyz, k, xyz1)) -} - -// VPTERNLOGQ_Z: Bitwise Ternary Logical Operation on Quadword Values (Zeroing Masking). -// -// Forms: -// -// VPTERNLOGQ.Z imm8 m128 xmm k xmm -// VPTERNLOGQ.Z imm8 m256 ymm k ymm -// VPTERNLOGQ.Z imm8 xmm xmm k xmm -// VPTERNLOGQ.Z imm8 ymm ymm k ymm -// VPTERNLOGQ.Z imm8 m512 zmm k zmm -// VPTERNLOGQ.Z imm8 zmm zmm k zmm -// -// Construct and append a VPTERNLOGQ.Z instruction to the active function. -// Operates on the global context. -func VPTERNLOGQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VPTERNLOGQ_Z(i, mxyz, xyz, k, xyz1) } - -// VPTEST: Packed Logical Compare. -// -// Forms: -// -// VPTEST m128 xmm -// VPTEST m256 ymm -// VPTEST xmm xmm -// VPTEST ymm ymm -// -// Construct and append a VPTEST instruction to the active function. -func (c *Context) VPTEST(mxy, xy operand.Op) { - c.addinstruction(x86.VPTEST(mxy, xy)) -} - -// VPTEST: Packed Logical Compare. -// -// Forms: -// -// VPTEST m128 xmm -// VPTEST m256 ymm -// VPTEST xmm xmm -// VPTEST ymm ymm -// -// Construct and append a VPTEST instruction to the active function. -// Operates on the global context. -func VPTEST(mxy, xy operand.Op) { ctx.VPTEST(mxy, xy) } - -// VPTESTMB: Logical AND of Packed Byte Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMB m128 xmm k k -// VPTESTMB m128 xmm k -// VPTESTMB m256 ymm k k -// VPTESTMB m256 ymm k -// VPTESTMB xmm xmm k k -// VPTESTMB xmm xmm k -// VPTESTMB ymm ymm k k -// VPTESTMB ymm ymm k -// VPTESTMB m512 zmm k k -// VPTESTMB m512 zmm k -// VPTESTMB zmm zmm k k -// VPTESTMB zmm zmm k -// -// Construct and append a VPTESTMB instruction to the active function. -func (c *Context) VPTESTMB(ops ...operand.Op) { - c.addinstruction(x86.VPTESTMB(ops...)) -} - -// VPTESTMB: Logical AND of Packed Byte Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMB m128 xmm k k -// VPTESTMB m128 xmm k -// VPTESTMB m256 ymm k k -// VPTESTMB m256 ymm k -// VPTESTMB xmm xmm k k -// VPTESTMB xmm xmm k -// VPTESTMB ymm ymm k k -// VPTESTMB ymm ymm k -// VPTESTMB m512 zmm k k -// VPTESTMB m512 zmm k -// VPTESTMB zmm zmm k k -// VPTESTMB zmm zmm k -// -// Construct and append a VPTESTMB instruction to the active function. -// Operates on the global context. -func VPTESTMB(ops ...operand.Op) { ctx.VPTESTMB(ops...) } - -// VPTESTMD: Logical AND of Packed Doubleword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMD m128 xmm k k -// VPTESTMD m128 xmm k -// VPTESTMD m256 ymm k k -// VPTESTMD m256 ymm k -// VPTESTMD xmm xmm k k -// VPTESTMD xmm xmm k -// VPTESTMD ymm ymm k k -// VPTESTMD ymm ymm k -// VPTESTMD m512 zmm k k -// VPTESTMD m512 zmm k -// VPTESTMD zmm zmm k k -// VPTESTMD zmm zmm k -// -// Construct and append a VPTESTMD instruction to the active function. -func (c *Context) VPTESTMD(ops ...operand.Op) { - c.addinstruction(x86.VPTESTMD(ops...)) -} - -// VPTESTMD: Logical AND of Packed Doubleword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMD m128 xmm k k -// VPTESTMD m128 xmm k -// VPTESTMD m256 ymm k k -// VPTESTMD m256 ymm k -// VPTESTMD xmm xmm k k -// VPTESTMD xmm xmm k -// VPTESTMD ymm ymm k k -// VPTESTMD ymm ymm k -// VPTESTMD m512 zmm k k -// VPTESTMD m512 zmm k -// VPTESTMD zmm zmm k k -// VPTESTMD zmm zmm k -// -// Construct and append a VPTESTMD instruction to the active function. -// Operates on the global context. -func VPTESTMD(ops ...operand.Op) { ctx.VPTESTMD(ops...) } - -// VPTESTMD_BCST: Logical AND of Packed Doubleword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTMD.BCST m32 xmm k k -// VPTESTMD.BCST m32 xmm k -// VPTESTMD.BCST m32 ymm k k -// VPTESTMD.BCST m32 ymm k -// VPTESTMD.BCST m32 zmm k k -// VPTESTMD.BCST m32 zmm k -// -// Construct and append a VPTESTMD.BCST instruction to the active function. -func (c *Context) VPTESTMD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPTESTMD_BCST(ops...)) -} - -// VPTESTMD_BCST: Logical AND of Packed Doubleword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTMD.BCST m32 xmm k k -// VPTESTMD.BCST m32 xmm k -// VPTESTMD.BCST m32 ymm k k -// VPTESTMD.BCST m32 ymm k -// VPTESTMD.BCST m32 zmm k k -// VPTESTMD.BCST m32 zmm k -// -// Construct and append a VPTESTMD.BCST instruction to the active function. -// Operates on the global context. -func VPTESTMD_BCST(ops ...operand.Op) { ctx.VPTESTMD_BCST(ops...) } - -// VPTESTMQ: Logical AND of Packed Quadword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMQ m128 xmm k k -// VPTESTMQ m128 xmm k -// VPTESTMQ m256 ymm k k -// VPTESTMQ m256 ymm k -// VPTESTMQ xmm xmm k k -// VPTESTMQ xmm xmm k -// VPTESTMQ ymm ymm k k -// VPTESTMQ ymm ymm k -// VPTESTMQ m512 zmm k k -// VPTESTMQ m512 zmm k -// VPTESTMQ zmm zmm k k -// VPTESTMQ zmm zmm k -// -// Construct and append a VPTESTMQ instruction to the active function. -func (c *Context) VPTESTMQ(ops ...operand.Op) { - c.addinstruction(x86.VPTESTMQ(ops...)) -} - -// VPTESTMQ: Logical AND of Packed Quadword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMQ m128 xmm k k -// VPTESTMQ m128 xmm k -// VPTESTMQ m256 ymm k k -// VPTESTMQ m256 ymm k -// VPTESTMQ xmm xmm k k -// VPTESTMQ xmm xmm k -// VPTESTMQ ymm ymm k k -// VPTESTMQ ymm ymm k -// VPTESTMQ m512 zmm k k -// VPTESTMQ m512 zmm k -// VPTESTMQ zmm zmm k k -// VPTESTMQ zmm zmm k -// -// Construct and append a VPTESTMQ instruction to the active function. -// Operates on the global context. -func VPTESTMQ(ops ...operand.Op) { ctx.VPTESTMQ(ops...) } - -// VPTESTMQ_BCST: Logical AND of Packed Quadword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTMQ.BCST m64 xmm k k -// VPTESTMQ.BCST m64 xmm k -// VPTESTMQ.BCST m64 ymm k k -// VPTESTMQ.BCST m64 ymm k -// VPTESTMQ.BCST m64 zmm k k -// VPTESTMQ.BCST m64 zmm k -// -// Construct and append a VPTESTMQ.BCST instruction to the active function. -func (c *Context) VPTESTMQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPTESTMQ_BCST(ops...)) -} - -// VPTESTMQ_BCST: Logical AND of Packed Quadword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTMQ.BCST m64 xmm k k -// VPTESTMQ.BCST m64 xmm k -// VPTESTMQ.BCST m64 ymm k k -// VPTESTMQ.BCST m64 ymm k -// VPTESTMQ.BCST m64 zmm k k -// VPTESTMQ.BCST m64 zmm k -// -// Construct and append a VPTESTMQ.BCST instruction to the active function. -// Operates on the global context. -func VPTESTMQ_BCST(ops ...operand.Op) { ctx.VPTESTMQ_BCST(ops...) } - -// VPTESTMW: Logical AND of Packed Word Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMW m128 xmm k k -// VPTESTMW m128 xmm k -// VPTESTMW m256 ymm k k -// VPTESTMW m256 ymm k -// VPTESTMW xmm xmm k k -// VPTESTMW xmm xmm k -// VPTESTMW ymm ymm k k -// VPTESTMW ymm ymm k -// VPTESTMW m512 zmm k k -// VPTESTMW m512 zmm k -// VPTESTMW zmm zmm k k -// VPTESTMW zmm zmm k -// -// Construct and append a VPTESTMW instruction to the active function. -func (c *Context) VPTESTMW(ops ...operand.Op) { - c.addinstruction(x86.VPTESTMW(ops...)) -} - -// VPTESTMW: Logical AND of Packed Word Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMW m128 xmm k k -// VPTESTMW m128 xmm k -// VPTESTMW m256 ymm k k -// VPTESTMW m256 ymm k -// VPTESTMW xmm xmm k k -// VPTESTMW xmm xmm k -// VPTESTMW ymm ymm k k -// VPTESTMW ymm ymm k -// VPTESTMW m512 zmm k k -// VPTESTMW m512 zmm k -// VPTESTMW zmm zmm k k -// VPTESTMW zmm zmm k -// -// Construct and append a VPTESTMW instruction to the active function. -// Operates on the global context. -func VPTESTMW(ops ...operand.Op) { ctx.VPTESTMW(ops...) } - -// VPTESTNMB: Logical NAND of Packed Byte Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMB m512 zmm k k -// VPTESTNMB m512 zmm k -// VPTESTNMB zmm zmm k k -// VPTESTNMB zmm zmm k -// VPTESTNMB m128 xmm k k -// VPTESTNMB m128 xmm k -// VPTESTNMB m256 ymm k k -// VPTESTNMB m256 ymm k -// VPTESTNMB xmm xmm k k -// VPTESTNMB xmm xmm k -// VPTESTNMB ymm ymm k k -// VPTESTNMB ymm ymm k -// -// Construct and append a VPTESTNMB instruction to the active function. -func (c *Context) VPTESTNMB(ops ...operand.Op) { - c.addinstruction(x86.VPTESTNMB(ops...)) -} - -// VPTESTNMB: Logical NAND of Packed Byte Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMB m512 zmm k k -// VPTESTNMB m512 zmm k -// VPTESTNMB zmm zmm k k -// VPTESTNMB zmm zmm k -// VPTESTNMB m128 xmm k k -// VPTESTNMB m128 xmm k -// VPTESTNMB m256 ymm k k -// VPTESTNMB m256 ymm k -// VPTESTNMB xmm xmm k k -// VPTESTNMB xmm xmm k -// VPTESTNMB ymm ymm k k -// VPTESTNMB ymm ymm k -// -// Construct and append a VPTESTNMB instruction to the active function. -// Operates on the global context. -func VPTESTNMB(ops ...operand.Op) { ctx.VPTESTNMB(ops...) } - -// VPTESTNMD: Logical NAND of Packed Doubleword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMD m128 xmm k k -// VPTESTNMD m128 xmm k -// VPTESTNMD m256 ymm k k -// VPTESTNMD m256 ymm k -// VPTESTNMD xmm xmm k k -// VPTESTNMD xmm xmm k -// VPTESTNMD ymm ymm k k -// VPTESTNMD ymm ymm k -// VPTESTNMD m512 zmm k k -// VPTESTNMD m512 zmm k -// VPTESTNMD zmm zmm k k -// VPTESTNMD zmm zmm k -// -// Construct and append a VPTESTNMD instruction to the active function. -func (c *Context) VPTESTNMD(ops ...operand.Op) { - c.addinstruction(x86.VPTESTNMD(ops...)) -} - -// VPTESTNMD: Logical NAND of Packed Doubleword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMD m128 xmm k k -// VPTESTNMD m128 xmm k -// VPTESTNMD m256 ymm k k -// VPTESTNMD m256 ymm k -// VPTESTNMD xmm xmm k k -// VPTESTNMD xmm xmm k -// VPTESTNMD ymm ymm k k -// VPTESTNMD ymm ymm k -// VPTESTNMD m512 zmm k k -// VPTESTNMD m512 zmm k -// VPTESTNMD zmm zmm k k -// VPTESTNMD zmm zmm k -// -// Construct and append a VPTESTNMD instruction to the active function. -// Operates on the global context. -func VPTESTNMD(ops ...operand.Op) { ctx.VPTESTNMD(ops...) } - -// VPTESTNMD_BCST: Logical NAND of Packed Doubleword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTNMD.BCST m32 xmm k k -// VPTESTNMD.BCST m32 xmm k -// VPTESTNMD.BCST m32 ymm k k -// VPTESTNMD.BCST m32 ymm k -// VPTESTNMD.BCST m32 zmm k k -// VPTESTNMD.BCST m32 zmm k -// -// Construct and append a VPTESTNMD.BCST instruction to the active function. -func (c *Context) VPTESTNMD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPTESTNMD_BCST(ops...)) -} - -// VPTESTNMD_BCST: Logical NAND of Packed Doubleword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTNMD.BCST m32 xmm k k -// VPTESTNMD.BCST m32 xmm k -// VPTESTNMD.BCST m32 ymm k k -// VPTESTNMD.BCST m32 ymm k -// VPTESTNMD.BCST m32 zmm k k -// VPTESTNMD.BCST m32 zmm k -// -// Construct and append a VPTESTNMD.BCST instruction to the active function. -// Operates on the global context. -func VPTESTNMD_BCST(ops ...operand.Op) { ctx.VPTESTNMD_BCST(ops...) } - -// VPTESTNMQ: Logical NAND of Packed Quadword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMQ m128 xmm k k -// VPTESTNMQ m128 xmm k -// VPTESTNMQ m256 ymm k k -// VPTESTNMQ m256 ymm k -// VPTESTNMQ xmm xmm k k -// VPTESTNMQ xmm xmm k -// VPTESTNMQ ymm ymm k k -// VPTESTNMQ ymm ymm k -// VPTESTNMQ m512 zmm k k -// VPTESTNMQ m512 zmm k -// VPTESTNMQ zmm zmm k k -// VPTESTNMQ zmm zmm k -// -// Construct and append a VPTESTNMQ instruction to the active function. -func (c *Context) VPTESTNMQ(ops ...operand.Op) { - c.addinstruction(x86.VPTESTNMQ(ops...)) -} - -// VPTESTNMQ: Logical NAND of Packed Quadword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMQ m128 xmm k k -// VPTESTNMQ m128 xmm k -// VPTESTNMQ m256 ymm k k -// VPTESTNMQ m256 ymm k -// VPTESTNMQ xmm xmm k k -// VPTESTNMQ xmm xmm k -// VPTESTNMQ ymm ymm k k -// VPTESTNMQ ymm ymm k -// VPTESTNMQ m512 zmm k k -// VPTESTNMQ m512 zmm k -// VPTESTNMQ zmm zmm k k -// VPTESTNMQ zmm zmm k -// -// Construct and append a VPTESTNMQ instruction to the active function. -// Operates on the global context. -func VPTESTNMQ(ops ...operand.Op) { ctx.VPTESTNMQ(ops...) } - -// VPTESTNMQ_BCST: Logical NAND of Packed Quadword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTNMQ.BCST m64 xmm k k -// VPTESTNMQ.BCST m64 xmm k -// VPTESTNMQ.BCST m64 ymm k k -// VPTESTNMQ.BCST m64 ymm k -// VPTESTNMQ.BCST m64 zmm k k -// VPTESTNMQ.BCST m64 zmm k -// -// Construct and append a VPTESTNMQ.BCST instruction to the active function. -func (c *Context) VPTESTNMQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPTESTNMQ_BCST(ops...)) -} - -// VPTESTNMQ_BCST: Logical NAND of Packed Quadword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTNMQ.BCST m64 xmm k k -// VPTESTNMQ.BCST m64 xmm k -// VPTESTNMQ.BCST m64 ymm k k -// VPTESTNMQ.BCST m64 ymm k -// VPTESTNMQ.BCST m64 zmm k k -// VPTESTNMQ.BCST m64 zmm k -// -// Construct and append a VPTESTNMQ.BCST instruction to the active function. -// Operates on the global context. -func VPTESTNMQ_BCST(ops ...operand.Op) { ctx.VPTESTNMQ_BCST(ops...) } - -// VPTESTNMW: Logical NAND of Packed Word Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMW m512 zmm k k -// VPTESTNMW m512 zmm k -// VPTESTNMW zmm zmm k k -// VPTESTNMW zmm zmm k -// VPTESTNMW m128 xmm k k -// VPTESTNMW m128 xmm k -// VPTESTNMW m256 ymm k k -// VPTESTNMW m256 ymm k -// VPTESTNMW xmm xmm k k -// VPTESTNMW xmm xmm k -// VPTESTNMW ymm ymm k k -// VPTESTNMW ymm ymm k -// -// Construct and append a VPTESTNMW instruction to the active function. -func (c *Context) VPTESTNMW(ops ...operand.Op) { - c.addinstruction(x86.VPTESTNMW(ops...)) -} - -// VPTESTNMW: Logical NAND of Packed Word Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMW m512 zmm k k -// VPTESTNMW m512 zmm k -// VPTESTNMW zmm zmm k k -// VPTESTNMW zmm zmm k -// VPTESTNMW m128 xmm k k -// VPTESTNMW m128 xmm k -// VPTESTNMW m256 ymm k k -// VPTESTNMW m256 ymm k -// VPTESTNMW xmm xmm k k -// VPTESTNMW xmm xmm k -// VPTESTNMW ymm ymm k k -// VPTESTNMW ymm ymm k -// -// Construct and append a VPTESTNMW instruction to the active function. -// Operates on the global context. -func VPTESTNMW(ops ...operand.Op) { ctx.VPTESTNMW(ops...) } - -// VPUNPCKHBW: Unpack and Interleave High-Order Bytes into Words. -// -// Forms: -// -// VPUNPCKHBW m256 ymm ymm -// VPUNPCKHBW ymm ymm ymm -// VPUNPCKHBW m128 xmm xmm -// VPUNPCKHBW xmm xmm xmm -// VPUNPCKHBW m128 xmm k xmm -// VPUNPCKHBW m256 ymm k ymm -// VPUNPCKHBW xmm xmm k xmm -// VPUNPCKHBW ymm ymm k ymm -// VPUNPCKHBW m512 zmm k zmm -// VPUNPCKHBW m512 zmm zmm -// VPUNPCKHBW zmm zmm k zmm -// VPUNPCKHBW zmm zmm zmm -// -// Construct and append a VPUNPCKHBW instruction to the active function. -func (c *Context) VPUNPCKHBW(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKHBW(ops...)) -} - -// VPUNPCKHBW: Unpack and Interleave High-Order Bytes into Words. -// -// Forms: -// -// VPUNPCKHBW m256 ymm ymm -// VPUNPCKHBW ymm ymm ymm -// VPUNPCKHBW m128 xmm xmm -// VPUNPCKHBW xmm xmm xmm -// VPUNPCKHBW m128 xmm k xmm -// VPUNPCKHBW m256 ymm k ymm -// VPUNPCKHBW xmm xmm k xmm -// VPUNPCKHBW ymm ymm k ymm -// VPUNPCKHBW m512 zmm k zmm -// VPUNPCKHBW m512 zmm zmm -// VPUNPCKHBW zmm zmm k zmm -// VPUNPCKHBW zmm zmm zmm -// -// Construct and append a VPUNPCKHBW instruction to the active function. -// Operates on the global context. -func VPUNPCKHBW(ops ...operand.Op) { ctx.VPUNPCKHBW(ops...) } - -// VPUNPCKHBW_Z: Unpack and Interleave High-Order Bytes into Words (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHBW.Z m128 xmm k xmm -// VPUNPCKHBW.Z m256 ymm k ymm -// VPUNPCKHBW.Z xmm xmm k xmm -// VPUNPCKHBW.Z ymm ymm k ymm -// VPUNPCKHBW.Z m512 zmm k zmm -// VPUNPCKHBW.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKHBW.Z instruction to the active function. -func (c *Context) VPUNPCKHBW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKHBW_Z(mxyz, xyz, k, xyz1)) -} - -// VPUNPCKHBW_Z: Unpack and Interleave High-Order Bytes into Words (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHBW.Z m128 xmm k xmm -// VPUNPCKHBW.Z m256 ymm k ymm -// VPUNPCKHBW.Z xmm xmm k xmm -// VPUNPCKHBW.Z ymm ymm k ymm -// VPUNPCKHBW.Z m512 zmm k zmm -// VPUNPCKHBW.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKHBW.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKHBW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKHBW_Z(mxyz, xyz, k, xyz1) } - -// VPUNPCKHDQ: Unpack and Interleave High-Order Doublewords into Quadwords. -// -// Forms: -// -// VPUNPCKHDQ m256 ymm ymm -// VPUNPCKHDQ ymm ymm ymm -// VPUNPCKHDQ m128 xmm xmm -// VPUNPCKHDQ xmm xmm xmm -// VPUNPCKHDQ m128 xmm k xmm -// VPUNPCKHDQ m256 ymm k ymm -// VPUNPCKHDQ xmm xmm k xmm -// VPUNPCKHDQ ymm ymm k ymm -// VPUNPCKHDQ m512 zmm k zmm -// VPUNPCKHDQ m512 zmm zmm -// VPUNPCKHDQ zmm zmm k zmm -// VPUNPCKHDQ zmm zmm zmm -// -// Construct and append a VPUNPCKHDQ instruction to the active function. -func (c *Context) VPUNPCKHDQ(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKHDQ(ops...)) -} - -// VPUNPCKHDQ: Unpack and Interleave High-Order Doublewords into Quadwords. -// -// Forms: -// -// VPUNPCKHDQ m256 ymm ymm -// VPUNPCKHDQ ymm ymm ymm -// VPUNPCKHDQ m128 xmm xmm -// VPUNPCKHDQ xmm xmm xmm -// VPUNPCKHDQ m128 xmm k xmm -// VPUNPCKHDQ m256 ymm k ymm -// VPUNPCKHDQ xmm xmm k xmm -// VPUNPCKHDQ ymm ymm k ymm -// VPUNPCKHDQ m512 zmm k zmm -// VPUNPCKHDQ m512 zmm zmm -// VPUNPCKHDQ zmm zmm k zmm -// VPUNPCKHDQ zmm zmm zmm -// -// Construct and append a VPUNPCKHDQ instruction to the active function. -// Operates on the global context. -func VPUNPCKHDQ(ops ...operand.Op) { ctx.VPUNPCKHDQ(ops...) } - -// VPUNPCKHDQ_BCST: Unpack and Interleave High-Order Doublewords into Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKHDQ.BCST m32 xmm k xmm -// VPUNPCKHDQ.BCST m32 xmm xmm -// VPUNPCKHDQ.BCST m32 ymm k ymm -// VPUNPCKHDQ.BCST m32 ymm ymm -// VPUNPCKHDQ.BCST m32 zmm k zmm -// VPUNPCKHDQ.BCST m32 zmm zmm -// -// Construct and append a VPUNPCKHDQ.BCST instruction to the active function. -func (c *Context) VPUNPCKHDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKHDQ_BCST(ops...)) -} - -// VPUNPCKHDQ_BCST: Unpack and Interleave High-Order Doublewords into Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKHDQ.BCST m32 xmm k xmm -// VPUNPCKHDQ.BCST m32 xmm xmm -// VPUNPCKHDQ.BCST m32 ymm k ymm -// VPUNPCKHDQ.BCST m32 ymm ymm -// VPUNPCKHDQ.BCST m32 zmm k zmm -// VPUNPCKHDQ.BCST m32 zmm zmm -// -// Construct and append a VPUNPCKHDQ.BCST instruction to the active function. -// Operates on the global context. -func VPUNPCKHDQ_BCST(ops ...operand.Op) { ctx.VPUNPCKHDQ_BCST(ops...) } - -// VPUNPCKHDQ_BCST_Z: Unpack and Interleave High-Order Doublewords into Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKHDQ.BCST.Z m32 xmm k xmm -// VPUNPCKHDQ.BCST.Z m32 ymm k ymm -// VPUNPCKHDQ.BCST.Z m32 zmm k zmm -// -// Construct and append a VPUNPCKHDQ.BCST.Z instruction to the active function. -func (c *Context) VPUNPCKHDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKHDQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPUNPCKHDQ_BCST_Z: Unpack and Interleave High-Order Doublewords into Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKHDQ.BCST.Z m32 xmm k xmm -// VPUNPCKHDQ.BCST.Z m32 ymm k ymm -// VPUNPCKHDQ.BCST.Z m32 zmm k zmm -// -// Construct and append a VPUNPCKHDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKHDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKHDQ_BCST_Z(m, xyz, k, xyz1) } - -// VPUNPCKHDQ_Z: Unpack and Interleave High-Order Doublewords into Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHDQ.Z m128 xmm k xmm -// VPUNPCKHDQ.Z m256 ymm k ymm -// VPUNPCKHDQ.Z xmm xmm k xmm -// VPUNPCKHDQ.Z ymm ymm k ymm -// VPUNPCKHDQ.Z m512 zmm k zmm -// VPUNPCKHDQ.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKHDQ.Z instruction to the active function. -func (c *Context) VPUNPCKHDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKHDQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPUNPCKHDQ_Z: Unpack and Interleave High-Order Doublewords into Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHDQ.Z m128 xmm k xmm -// VPUNPCKHDQ.Z m256 ymm k ymm -// VPUNPCKHDQ.Z xmm xmm k xmm -// VPUNPCKHDQ.Z ymm ymm k ymm -// VPUNPCKHDQ.Z m512 zmm k zmm -// VPUNPCKHDQ.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKHDQ.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKHDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKHDQ_Z(mxyz, xyz, k, xyz1) } - -// VPUNPCKHQDQ: Unpack and Interleave High-Order Quadwords into Double Quadwords. -// -// Forms: -// -// VPUNPCKHQDQ m256 ymm ymm -// VPUNPCKHQDQ ymm ymm ymm -// VPUNPCKHQDQ m128 xmm xmm -// VPUNPCKHQDQ xmm xmm xmm -// VPUNPCKHQDQ m128 xmm k xmm -// VPUNPCKHQDQ m256 ymm k ymm -// VPUNPCKHQDQ xmm xmm k xmm -// VPUNPCKHQDQ ymm ymm k ymm -// VPUNPCKHQDQ m512 zmm k zmm -// VPUNPCKHQDQ m512 zmm zmm -// VPUNPCKHQDQ zmm zmm k zmm -// VPUNPCKHQDQ zmm zmm zmm -// -// Construct and append a VPUNPCKHQDQ instruction to the active function. -func (c *Context) VPUNPCKHQDQ(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKHQDQ(ops...)) -} - -// VPUNPCKHQDQ: Unpack and Interleave High-Order Quadwords into Double Quadwords. -// -// Forms: -// -// VPUNPCKHQDQ m256 ymm ymm -// VPUNPCKHQDQ ymm ymm ymm -// VPUNPCKHQDQ m128 xmm xmm -// VPUNPCKHQDQ xmm xmm xmm -// VPUNPCKHQDQ m128 xmm k xmm -// VPUNPCKHQDQ m256 ymm k ymm -// VPUNPCKHQDQ xmm xmm k xmm -// VPUNPCKHQDQ ymm ymm k ymm -// VPUNPCKHQDQ m512 zmm k zmm -// VPUNPCKHQDQ m512 zmm zmm -// VPUNPCKHQDQ zmm zmm k zmm -// VPUNPCKHQDQ zmm zmm zmm -// -// Construct and append a VPUNPCKHQDQ instruction to the active function. -// Operates on the global context. -func VPUNPCKHQDQ(ops ...operand.Op) { ctx.VPUNPCKHQDQ(ops...) } - -// VPUNPCKHQDQ_BCST: Unpack and Interleave High-Order Quadwords into Double Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKHQDQ.BCST m64 xmm k xmm -// VPUNPCKHQDQ.BCST m64 xmm xmm -// VPUNPCKHQDQ.BCST m64 ymm k ymm -// VPUNPCKHQDQ.BCST m64 ymm ymm -// VPUNPCKHQDQ.BCST m64 zmm k zmm -// VPUNPCKHQDQ.BCST m64 zmm zmm -// -// Construct and append a VPUNPCKHQDQ.BCST instruction to the active function. -func (c *Context) VPUNPCKHQDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKHQDQ_BCST(ops...)) -} - -// VPUNPCKHQDQ_BCST: Unpack and Interleave High-Order Quadwords into Double Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKHQDQ.BCST m64 xmm k xmm -// VPUNPCKHQDQ.BCST m64 xmm xmm -// VPUNPCKHQDQ.BCST m64 ymm k ymm -// VPUNPCKHQDQ.BCST m64 ymm ymm -// VPUNPCKHQDQ.BCST m64 zmm k zmm -// VPUNPCKHQDQ.BCST m64 zmm zmm -// -// Construct and append a VPUNPCKHQDQ.BCST instruction to the active function. -// Operates on the global context. -func VPUNPCKHQDQ_BCST(ops ...operand.Op) { ctx.VPUNPCKHQDQ_BCST(ops...) } - -// VPUNPCKHQDQ_BCST_Z: Unpack and Interleave High-Order Quadwords into Double Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKHQDQ.BCST.Z m64 xmm k xmm -// VPUNPCKHQDQ.BCST.Z m64 ymm k ymm -// VPUNPCKHQDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPUNPCKHQDQ.BCST.Z instruction to the active function. -func (c *Context) VPUNPCKHQDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKHQDQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPUNPCKHQDQ_BCST_Z: Unpack and Interleave High-Order Quadwords into Double Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKHQDQ.BCST.Z m64 xmm k xmm -// VPUNPCKHQDQ.BCST.Z m64 ymm k ymm -// VPUNPCKHQDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPUNPCKHQDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKHQDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKHQDQ_BCST_Z(m, xyz, k, xyz1) } - -// VPUNPCKHQDQ_Z: Unpack and Interleave High-Order Quadwords into Double Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHQDQ.Z m128 xmm k xmm -// VPUNPCKHQDQ.Z m256 ymm k ymm -// VPUNPCKHQDQ.Z xmm xmm k xmm -// VPUNPCKHQDQ.Z ymm ymm k ymm -// VPUNPCKHQDQ.Z m512 zmm k zmm -// VPUNPCKHQDQ.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKHQDQ.Z instruction to the active function. -func (c *Context) VPUNPCKHQDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKHQDQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPUNPCKHQDQ_Z: Unpack and Interleave High-Order Quadwords into Double Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHQDQ.Z m128 xmm k xmm -// VPUNPCKHQDQ.Z m256 ymm k ymm -// VPUNPCKHQDQ.Z xmm xmm k xmm -// VPUNPCKHQDQ.Z ymm ymm k ymm -// VPUNPCKHQDQ.Z m512 zmm k zmm -// VPUNPCKHQDQ.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKHQDQ.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKHQDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKHQDQ_Z(mxyz, xyz, k, xyz1) } - -// VPUNPCKHWD: Unpack and Interleave High-Order Words into Doublewords. -// -// Forms: -// -// VPUNPCKHWD m256 ymm ymm -// VPUNPCKHWD ymm ymm ymm -// VPUNPCKHWD m128 xmm xmm -// VPUNPCKHWD xmm xmm xmm -// VPUNPCKHWD m128 xmm k xmm -// VPUNPCKHWD m256 ymm k ymm -// VPUNPCKHWD xmm xmm k xmm -// VPUNPCKHWD ymm ymm k ymm -// VPUNPCKHWD m512 zmm k zmm -// VPUNPCKHWD m512 zmm zmm -// VPUNPCKHWD zmm zmm k zmm -// VPUNPCKHWD zmm zmm zmm -// -// Construct and append a VPUNPCKHWD instruction to the active function. -func (c *Context) VPUNPCKHWD(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKHWD(ops...)) -} - -// VPUNPCKHWD: Unpack and Interleave High-Order Words into Doublewords. -// -// Forms: -// -// VPUNPCKHWD m256 ymm ymm -// VPUNPCKHWD ymm ymm ymm -// VPUNPCKHWD m128 xmm xmm -// VPUNPCKHWD xmm xmm xmm -// VPUNPCKHWD m128 xmm k xmm -// VPUNPCKHWD m256 ymm k ymm -// VPUNPCKHWD xmm xmm k xmm -// VPUNPCKHWD ymm ymm k ymm -// VPUNPCKHWD m512 zmm k zmm -// VPUNPCKHWD m512 zmm zmm -// VPUNPCKHWD zmm zmm k zmm -// VPUNPCKHWD zmm zmm zmm -// -// Construct and append a VPUNPCKHWD instruction to the active function. -// Operates on the global context. -func VPUNPCKHWD(ops ...operand.Op) { ctx.VPUNPCKHWD(ops...) } - -// VPUNPCKHWD_Z: Unpack and Interleave High-Order Words into Doublewords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHWD.Z m128 xmm k xmm -// VPUNPCKHWD.Z m256 ymm k ymm -// VPUNPCKHWD.Z xmm xmm k xmm -// VPUNPCKHWD.Z ymm ymm k ymm -// VPUNPCKHWD.Z m512 zmm k zmm -// VPUNPCKHWD.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKHWD.Z instruction to the active function. -func (c *Context) VPUNPCKHWD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKHWD_Z(mxyz, xyz, k, xyz1)) -} - -// VPUNPCKHWD_Z: Unpack and Interleave High-Order Words into Doublewords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHWD.Z m128 xmm k xmm -// VPUNPCKHWD.Z m256 ymm k ymm -// VPUNPCKHWD.Z xmm xmm k xmm -// VPUNPCKHWD.Z ymm ymm k ymm -// VPUNPCKHWD.Z m512 zmm k zmm -// VPUNPCKHWD.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKHWD.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKHWD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKHWD_Z(mxyz, xyz, k, xyz1) } - -// VPUNPCKLBW: Unpack and Interleave Low-Order Bytes into Words. -// -// Forms: -// -// VPUNPCKLBW m256 ymm ymm -// VPUNPCKLBW ymm ymm ymm -// VPUNPCKLBW m128 xmm xmm -// VPUNPCKLBW xmm xmm xmm -// VPUNPCKLBW m128 xmm k xmm -// VPUNPCKLBW m256 ymm k ymm -// VPUNPCKLBW xmm xmm k xmm -// VPUNPCKLBW ymm ymm k ymm -// VPUNPCKLBW m512 zmm k zmm -// VPUNPCKLBW m512 zmm zmm -// VPUNPCKLBW zmm zmm k zmm -// VPUNPCKLBW zmm zmm zmm -// -// Construct and append a VPUNPCKLBW instruction to the active function. -func (c *Context) VPUNPCKLBW(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKLBW(ops...)) -} - -// VPUNPCKLBW: Unpack and Interleave Low-Order Bytes into Words. -// -// Forms: -// -// VPUNPCKLBW m256 ymm ymm -// VPUNPCKLBW ymm ymm ymm -// VPUNPCKLBW m128 xmm xmm -// VPUNPCKLBW xmm xmm xmm -// VPUNPCKLBW m128 xmm k xmm -// VPUNPCKLBW m256 ymm k ymm -// VPUNPCKLBW xmm xmm k xmm -// VPUNPCKLBW ymm ymm k ymm -// VPUNPCKLBW m512 zmm k zmm -// VPUNPCKLBW m512 zmm zmm -// VPUNPCKLBW zmm zmm k zmm -// VPUNPCKLBW zmm zmm zmm -// -// Construct and append a VPUNPCKLBW instruction to the active function. -// Operates on the global context. -func VPUNPCKLBW(ops ...operand.Op) { ctx.VPUNPCKLBW(ops...) } - -// VPUNPCKLBW_Z: Unpack and Interleave Low-Order Bytes into Words (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLBW.Z m128 xmm k xmm -// VPUNPCKLBW.Z m256 ymm k ymm -// VPUNPCKLBW.Z xmm xmm k xmm -// VPUNPCKLBW.Z ymm ymm k ymm -// VPUNPCKLBW.Z m512 zmm k zmm -// VPUNPCKLBW.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKLBW.Z instruction to the active function. -func (c *Context) VPUNPCKLBW_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKLBW_Z(mxyz, xyz, k, xyz1)) -} - -// VPUNPCKLBW_Z: Unpack and Interleave Low-Order Bytes into Words (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLBW.Z m128 xmm k xmm -// VPUNPCKLBW.Z m256 ymm k ymm -// VPUNPCKLBW.Z xmm xmm k xmm -// VPUNPCKLBW.Z ymm ymm k ymm -// VPUNPCKLBW.Z m512 zmm k zmm -// VPUNPCKLBW.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKLBW.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKLBW_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKLBW_Z(mxyz, xyz, k, xyz1) } - -// VPUNPCKLDQ: Unpack and Interleave Low-Order Doublewords into Quadwords. -// -// Forms: -// -// VPUNPCKLDQ m256 ymm ymm -// VPUNPCKLDQ ymm ymm ymm -// VPUNPCKLDQ m128 xmm xmm -// VPUNPCKLDQ xmm xmm xmm -// VPUNPCKLDQ m128 xmm k xmm -// VPUNPCKLDQ m256 ymm k ymm -// VPUNPCKLDQ xmm xmm k xmm -// VPUNPCKLDQ ymm ymm k ymm -// VPUNPCKLDQ m512 zmm k zmm -// VPUNPCKLDQ m512 zmm zmm -// VPUNPCKLDQ zmm zmm k zmm -// VPUNPCKLDQ zmm zmm zmm -// -// Construct and append a VPUNPCKLDQ instruction to the active function. -func (c *Context) VPUNPCKLDQ(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKLDQ(ops...)) -} - -// VPUNPCKLDQ: Unpack and Interleave Low-Order Doublewords into Quadwords. -// -// Forms: -// -// VPUNPCKLDQ m256 ymm ymm -// VPUNPCKLDQ ymm ymm ymm -// VPUNPCKLDQ m128 xmm xmm -// VPUNPCKLDQ xmm xmm xmm -// VPUNPCKLDQ m128 xmm k xmm -// VPUNPCKLDQ m256 ymm k ymm -// VPUNPCKLDQ xmm xmm k xmm -// VPUNPCKLDQ ymm ymm k ymm -// VPUNPCKLDQ m512 zmm k zmm -// VPUNPCKLDQ m512 zmm zmm -// VPUNPCKLDQ zmm zmm k zmm -// VPUNPCKLDQ zmm zmm zmm -// -// Construct and append a VPUNPCKLDQ instruction to the active function. -// Operates on the global context. -func VPUNPCKLDQ(ops ...operand.Op) { ctx.VPUNPCKLDQ(ops...) } - -// VPUNPCKLDQ_BCST: Unpack and Interleave Low-Order Doublewords into Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKLDQ.BCST m32 xmm k xmm -// VPUNPCKLDQ.BCST m32 xmm xmm -// VPUNPCKLDQ.BCST m32 ymm k ymm -// VPUNPCKLDQ.BCST m32 ymm ymm -// VPUNPCKLDQ.BCST m32 zmm k zmm -// VPUNPCKLDQ.BCST m32 zmm zmm -// -// Construct and append a VPUNPCKLDQ.BCST instruction to the active function. -func (c *Context) VPUNPCKLDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKLDQ_BCST(ops...)) -} - -// VPUNPCKLDQ_BCST: Unpack and Interleave Low-Order Doublewords into Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKLDQ.BCST m32 xmm k xmm -// VPUNPCKLDQ.BCST m32 xmm xmm -// VPUNPCKLDQ.BCST m32 ymm k ymm -// VPUNPCKLDQ.BCST m32 ymm ymm -// VPUNPCKLDQ.BCST m32 zmm k zmm -// VPUNPCKLDQ.BCST m32 zmm zmm -// -// Construct and append a VPUNPCKLDQ.BCST instruction to the active function. -// Operates on the global context. -func VPUNPCKLDQ_BCST(ops ...operand.Op) { ctx.VPUNPCKLDQ_BCST(ops...) } - -// VPUNPCKLDQ_BCST_Z: Unpack and Interleave Low-Order Doublewords into Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKLDQ.BCST.Z m32 xmm k xmm -// VPUNPCKLDQ.BCST.Z m32 ymm k ymm -// VPUNPCKLDQ.BCST.Z m32 zmm k zmm -// -// Construct and append a VPUNPCKLDQ.BCST.Z instruction to the active function. -func (c *Context) VPUNPCKLDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKLDQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPUNPCKLDQ_BCST_Z: Unpack and Interleave Low-Order Doublewords into Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKLDQ.BCST.Z m32 xmm k xmm -// VPUNPCKLDQ.BCST.Z m32 ymm k ymm -// VPUNPCKLDQ.BCST.Z m32 zmm k zmm -// -// Construct and append a VPUNPCKLDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKLDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKLDQ_BCST_Z(m, xyz, k, xyz1) } - -// VPUNPCKLDQ_Z: Unpack and Interleave Low-Order Doublewords into Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLDQ.Z m128 xmm k xmm -// VPUNPCKLDQ.Z m256 ymm k ymm -// VPUNPCKLDQ.Z xmm xmm k xmm -// VPUNPCKLDQ.Z ymm ymm k ymm -// VPUNPCKLDQ.Z m512 zmm k zmm -// VPUNPCKLDQ.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKLDQ.Z instruction to the active function. -func (c *Context) VPUNPCKLDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKLDQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPUNPCKLDQ_Z: Unpack and Interleave Low-Order Doublewords into Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLDQ.Z m128 xmm k xmm -// VPUNPCKLDQ.Z m256 ymm k ymm -// VPUNPCKLDQ.Z xmm xmm k xmm -// VPUNPCKLDQ.Z ymm ymm k ymm -// VPUNPCKLDQ.Z m512 zmm k zmm -// VPUNPCKLDQ.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKLDQ.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKLDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKLDQ_Z(mxyz, xyz, k, xyz1) } - -// VPUNPCKLQDQ: Unpack and Interleave Low-Order Quadwords into Double Quadwords. -// -// Forms: -// -// VPUNPCKLQDQ m256 ymm ymm -// VPUNPCKLQDQ ymm ymm ymm -// VPUNPCKLQDQ m128 xmm xmm -// VPUNPCKLQDQ xmm xmm xmm -// VPUNPCKLQDQ m128 xmm k xmm -// VPUNPCKLQDQ m256 ymm k ymm -// VPUNPCKLQDQ xmm xmm k xmm -// VPUNPCKLQDQ ymm ymm k ymm -// VPUNPCKLQDQ m512 zmm k zmm -// VPUNPCKLQDQ m512 zmm zmm -// VPUNPCKLQDQ zmm zmm k zmm -// VPUNPCKLQDQ zmm zmm zmm -// -// Construct and append a VPUNPCKLQDQ instruction to the active function. -func (c *Context) VPUNPCKLQDQ(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKLQDQ(ops...)) -} - -// VPUNPCKLQDQ: Unpack and Interleave Low-Order Quadwords into Double Quadwords. -// -// Forms: -// -// VPUNPCKLQDQ m256 ymm ymm -// VPUNPCKLQDQ ymm ymm ymm -// VPUNPCKLQDQ m128 xmm xmm -// VPUNPCKLQDQ xmm xmm xmm -// VPUNPCKLQDQ m128 xmm k xmm -// VPUNPCKLQDQ m256 ymm k ymm -// VPUNPCKLQDQ xmm xmm k xmm -// VPUNPCKLQDQ ymm ymm k ymm -// VPUNPCKLQDQ m512 zmm k zmm -// VPUNPCKLQDQ m512 zmm zmm -// VPUNPCKLQDQ zmm zmm k zmm -// VPUNPCKLQDQ zmm zmm zmm -// -// Construct and append a VPUNPCKLQDQ instruction to the active function. -// Operates on the global context. -func VPUNPCKLQDQ(ops ...operand.Op) { ctx.VPUNPCKLQDQ(ops...) } - -// VPUNPCKLQDQ_BCST: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKLQDQ.BCST m64 xmm k xmm -// VPUNPCKLQDQ.BCST m64 xmm xmm -// VPUNPCKLQDQ.BCST m64 ymm k ymm -// VPUNPCKLQDQ.BCST m64 ymm ymm -// VPUNPCKLQDQ.BCST m64 zmm k zmm -// VPUNPCKLQDQ.BCST m64 zmm zmm -// -// Construct and append a VPUNPCKLQDQ.BCST instruction to the active function. -func (c *Context) VPUNPCKLQDQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKLQDQ_BCST(ops...)) -} - -// VPUNPCKLQDQ_BCST: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKLQDQ.BCST m64 xmm k xmm -// VPUNPCKLQDQ.BCST m64 xmm xmm -// VPUNPCKLQDQ.BCST m64 ymm k ymm -// VPUNPCKLQDQ.BCST m64 ymm ymm -// VPUNPCKLQDQ.BCST m64 zmm k zmm -// VPUNPCKLQDQ.BCST m64 zmm zmm -// -// Construct and append a VPUNPCKLQDQ.BCST instruction to the active function. -// Operates on the global context. -func VPUNPCKLQDQ_BCST(ops ...operand.Op) { ctx.VPUNPCKLQDQ_BCST(ops...) } - -// VPUNPCKLQDQ_BCST_Z: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKLQDQ.BCST.Z m64 xmm k xmm -// VPUNPCKLQDQ.BCST.Z m64 ymm k ymm -// VPUNPCKLQDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPUNPCKLQDQ.BCST.Z instruction to the active function. -func (c *Context) VPUNPCKLQDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKLQDQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPUNPCKLQDQ_BCST_Z: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKLQDQ.BCST.Z m64 xmm k xmm -// VPUNPCKLQDQ.BCST.Z m64 ymm k ymm -// VPUNPCKLQDQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPUNPCKLQDQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKLQDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKLQDQ_BCST_Z(m, xyz, k, xyz1) } - -// VPUNPCKLQDQ_Z: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLQDQ.Z m128 xmm k xmm -// VPUNPCKLQDQ.Z m256 ymm k ymm -// VPUNPCKLQDQ.Z xmm xmm k xmm -// VPUNPCKLQDQ.Z ymm ymm k ymm -// VPUNPCKLQDQ.Z m512 zmm k zmm -// VPUNPCKLQDQ.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKLQDQ.Z instruction to the active function. -func (c *Context) VPUNPCKLQDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKLQDQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPUNPCKLQDQ_Z: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLQDQ.Z m128 xmm k xmm -// VPUNPCKLQDQ.Z m256 ymm k ymm -// VPUNPCKLQDQ.Z xmm xmm k xmm -// VPUNPCKLQDQ.Z ymm ymm k ymm -// VPUNPCKLQDQ.Z m512 zmm k zmm -// VPUNPCKLQDQ.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKLQDQ.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKLQDQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKLQDQ_Z(mxyz, xyz, k, xyz1) } - -// VPUNPCKLWD: Unpack and Interleave Low-Order Words into Doublewords. -// -// Forms: -// -// VPUNPCKLWD m256 ymm ymm -// VPUNPCKLWD ymm ymm ymm -// VPUNPCKLWD m128 xmm xmm -// VPUNPCKLWD xmm xmm xmm -// VPUNPCKLWD m128 xmm k xmm -// VPUNPCKLWD m256 ymm k ymm -// VPUNPCKLWD xmm xmm k xmm -// VPUNPCKLWD ymm ymm k ymm -// VPUNPCKLWD m512 zmm k zmm -// VPUNPCKLWD m512 zmm zmm -// VPUNPCKLWD zmm zmm k zmm -// VPUNPCKLWD zmm zmm zmm -// -// Construct and append a VPUNPCKLWD instruction to the active function. -func (c *Context) VPUNPCKLWD(ops ...operand.Op) { - c.addinstruction(x86.VPUNPCKLWD(ops...)) -} - -// VPUNPCKLWD: Unpack and Interleave Low-Order Words into Doublewords. -// -// Forms: -// -// VPUNPCKLWD m256 ymm ymm -// VPUNPCKLWD ymm ymm ymm -// VPUNPCKLWD m128 xmm xmm -// VPUNPCKLWD xmm xmm xmm -// VPUNPCKLWD m128 xmm k xmm -// VPUNPCKLWD m256 ymm k ymm -// VPUNPCKLWD xmm xmm k xmm -// VPUNPCKLWD ymm ymm k ymm -// VPUNPCKLWD m512 zmm k zmm -// VPUNPCKLWD m512 zmm zmm -// VPUNPCKLWD zmm zmm k zmm -// VPUNPCKLWD zmm zmm zmm -// -// Construct and append a VPUNPCKLWD instruction to the active function. -// Operates on the global context. -func VPUNPCKLWD(ops ...operand.Op) { ctx.VPUNPCKLWD(ops...) } - -// VPUNPCKLWD_Z: Unpack and Interleave Low-Order Words into Doublewords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLWD.Z m128 xmm k xmm -// VPUNPCKLWD.Z m256 ymm k ymm -// VPUNPCKLWD.Z xmm xmm k xmm -// VPUNPCKLWD.Z ymm ymm k ymm -// VPUNPCKLWD.Z m512 zmm k zmm -// VPUNPCKLWD.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKLWD.Z instruction to the active function. -func (c *Context) VPUNPCKLWD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPUNPCKLWD_Z(mxyz, xyz, k, xyz1)) -} - -// VPUNPCKLWD_Z: Unpack and Interleave Low-Order Words into Doublewords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLWD.Z m128 xmm k xmm -// VPUNPCKLWD.Z m256 ymm k ymm -// VPUNPCKLWD.Z xmm xmm k xmm -// VPUNPCKLWD.Z ymm ymm k ymm -// VPUNPCKLWD.Z m512 zmm k zmm -// VPUNPCKLWD.Z zmm zmm k zmm -// -// Construct and append a VPUNPCKLWD.Z instruction to the active function. -// Operates on the global context. -func VPUNPCKLWD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPUNPCKLWD_Z(mxyz, xyz, k, xyz1) } - -// VPXOR: Packed Bitwise Logical Exclusive OR. -// -// Forms: -// -// VPXOR m256 ymm ymm -// VPXOR ymm ymm ymm -// VPXOR m128 xmm xmm -// VPXOR xmm xmm xmm -// -// Construct and append a VPXOR instruction to the active function. -func (c *Context) VPXOR(mxy, xy, xy1 operand.Op) { - c.addinstruction(x86.VPXOR(mxy, xy, xy1)) -} - -// VPXOR: Packed Bitwise Logical Exclusive OR. -// -// Forms: -// -// VPXOR m256 ymm ymm -// VPXOR ymm ymm ymm -// VPXOR m128 xmm xmm -// VPXOR xmm xmm xmm -// -// Construct and append a VPXOR instruction to the active function. -// Operates on the global context. -func VPXOR(mxy, xy, xy1 operand.Op) { ctx.VPXOR(mxy, xy, xy1) } - -// VPXORD: Bitwise Logical Exclusive OR of Packed Doubleword Integers. -// -// Forms: -// -// VPXORD m128 xmm k xmm -// VPXORD m128 xmm xmm -// VPXORD m256 ymm k ymm -// VPXORD m256 ymm ymm -// VPXORD xmm xmm k xmm -// VPXORD xmm xmm xmm -// VPXORD ymm ymm k ymm -// VPXORD ymm ymm ymm -// VPXORD m512 zmm k zmm -// VPXORD m512 zmm zmm -// VPXORD zmm zmm k zmm -// VPXORD zmm zmm zmm -// -// Construct and append a VPXORD instruction to the active function. -func (c *Context) VPXORD(ops ...operand.Op) { - c.addinstruction(x86.VPXORD(ops...)) -} - -// VPXORD: Bitwise Logical Exclusive OR of Packed Doubleword Integers. -// -// Forms: -// -// VPXORD m128 xmm k xmm -// VPXORD m128 xmm xmm -// VPXORD m256 ymm k ymm -// VPXORD m256 ymm ymm -// VPXORD xmm xmm k xmm -// VPXORD xmm xmm xmm -// VPXORD ymm ymm k ymm -// VPXORD ymm ymm ymm -// VPXORD m512 zmm k zmm -// VPXORD m512 zmm zmm -// VPXORD zmm zmm k zmm -// VPXORD zmm zmm zmm -// -// Construct and append a VPXORD instruction to the active function. -// Operates on the global context. -func VPXORD(ops ...operand.Op) { ctx.VPXORD(ops...) } - -// VPXORD_BCST: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPXORD.BCST m32 xmm k xmm -// VPXORD.BCST m32 xmm xmm -// VPXORD.BCST m32 ymm k ymm -// VPXORD.BCST m32 ymm ymm -// VPXORD.BCST m32 zmm k zmm -// VPXORD.BCST m32 zmm zmm -// -// Construct and append a VPXORD.BCST instruction to the active function. -func (c *Context) VPXORD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPXORD_BCST(ops...)) -} - -// VPXORD_BCST: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPXORD.BCST m32 xmm k xmm -// VPXORD.BCST m32 xmm xmm -// VPXORD.BCST m32 ymm k ymm -// VPXORD.BCST m32 ymm ymm -// VPXORD.BCST m32 zmm k zmm -// VPXORD.BCST m32 zmm zmm -// -// Construct and append a VPXORD.BCST instruction to the active function. -// Operates on the global context. -func VPXORD_BCST(ops ...operand.Op) { ctx.VPXORD_BCST(ops...) } - -// VPXORD_BCST_Z: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPXORD.BCST.Z m32 xmm k xmm -// VPXORD.BCST.Z m32 ymm k ymm -// VPXORD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPXORD.BCST.Z instruction to the active function. -func (c *Context) VPXORD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPXORD_BCST_Z(m, xyz, k, xyz1)) -} - -// VPXORD_BCST_Z: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPXORD.BCST.Z m32 xmm k xmm -// VPXORD.BCST.Z m32 ymm k ymm -// VPXORD.BCST.Z m32 zmm k zmm -// -// Construct and append a VPXORD.BCST.Z instruction to the active function. -// Operates on the global context. -func VPXORD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPXORD_BCST_Z(m, xyz, k, xyz1) } - -// VPXORD_Z: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPXORD.Z m128 xmm k xmm -// VPXORD.Z m256 ymm k ymm -// VPXORD.Z xmm xmm k xmm -// VPXORD.Z ymm ymm k ymm -// VPXORD.Z m512 zmm k zmm -// VPXORD.Z zmm zmm k zmm -// -// Construct and append a VPXORD.Z instruction to the active function. -func (c *Context) VPXORD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPXORD_Z(mxyz, xyz, k, xyz1)) -} - -// VPXORD_Z: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPXORD.Z m128 xmm k xmm -// VPXORD.Z m256 ymm k ymm -// VPXORD.Z xmm xmm k xmm -// VPXORD.Z ymm ymm k ymm -// VPXORD.Z m512 zmm k zmm -// VPXORD.Z zmm zmm k zmm -// -// Construct and append a VPXORD.Z instruction to the active function. -// Operates on the global context. -func VPXORD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPXORD_Z(mxyz, xyz, k, xyz1) } - -// VPXORQ: Bitwise Logical Exclusive OR of Packed Quadword Integers. -// -// Forms: -// -// VPXORQ m128 xmm k xmm -// VPXORQ m128 xmm xmm -// VPXORQ m256 ymm k ymm -// VPXORQ m256 ymm ymm -// VPXORQ xmm xmm k xmm -// VPXORQ xmm xmm xmm -// VPXORQ ymm ymm k ymm -// VPXORQ ymm ymm ymm -// VPXORQ m512 zmm k zmm -// VPXORQ m512 zmm zmm -// VPXORQ zmm zmm k zmm -// VPXORQ zmm zmm zmm -// -// Construct and append a VPXORQ instruction to the active function. -func (c *Context) VPXORQ(ops ...operand.Op) { - c.addinstruction(x86.VPXORQ(ops...)) -} - -// VPXORQ: Bitwise Logical Exclusive OR of Packed Quadword Integers. -// -// Forms: -// -// VPXORQ m128 xmm k xmm -// VPXORQ m128 xmm xmm -// VPXORQ m256 ymm k ymm -// VPXORQ m256 ymm ymm -// VPXORQ xmm xmm k xmm -// VPXORQ xmm xmm xmm -// VPXORQ ymm ymm k ymm -// VPXORQ ymm ymm ymm -// VPXORQ m512 zmm k zmm -// VPXORQ m512 zmm zmm -// VPXORQ zmm zmm k zmm -// VPXORQ zmm zmm zmm -// -// Construct and append a VPXORQ instruction to the active function. -// Operates on the global context. -func VPXORQ(ops ...operand.Op) { ctx.VPXORQ(ops...) } - -// VPXORQ_BCST: Bitwise Logical Exclusive OR of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPXORQ.BCST m64 xmm k xmm -// VPXORQ.BCST m64 xmm xmm -// VPXORQ.BCST m64 ymm k ymm -// VPXORQ.BCST m64 ymm ymm -// VPXORQ.BCST m64 zmm k zmm -// VPXORQ.BCST m64 zmm zmm -// -// Construct and append a VPXORQ.BCST instruction to the active function. -func (c *Context) VPXORQ_BCST(ops ...operand.Op) { - c.addinstruction(x86.VPXORQ_BCST(ops...)) -} - -// VPXORQ_BCST: Bitwise Logical Exclusive OR of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPXORQ.BCST m64 xmm k xmm -// VPXORQ.BCST m64 xmm xmm -// VPXORQ.BCST m64 ymm k ymm -// VPXORQ.BCST m64 ymm ymm -// VPXORQ.BCST m64 zmm k zmm -// VPXORQ.BCST m64 zmm zmm -// -// Construct and append a VPXORQ.BCST instruction to the active function. -// Operates on the global context. -func VPXORQ_BCST(ops ...operand.Op) { ctx.VPXORQ_BCST(ops...) } - -// VPXORQ_BCST_Z: Bitwise Logical Exclusive OR of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPXORQ.BCST.Z m64 xmm k xmm -// VPXORQ.BCST.Z m64 ymm k ymm -// VPXORQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPXORQ.BCST.Z instruction to the active function. -func (c *Context) VPXORQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPXORQ_BCST_Z(m, xyz, k, xyz1)) -} - -// VPXORQ_BCST_Z: Bitwise Logical Exclusive OR of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPXORQ.BCST.Z m64 xmm k xmm -// VPXORQ.BCST.Z m64 ymm k ymm -// VPXORQ.BCST.Z m64 zmm k zmm -// -// Construct and append a VPXORQ.BCST.Z instruction to the active function. -// Operates on the global context. -func VPXORQ_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VPXORQ_BCST_Z(m, xyz, k, xyz1) } - -// VPXORQ_Z: Bitwise Logical Exclusive OR of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPXORQ.Z m128 xmm k xmm -// VPXORQ.Z m256 ymm k ymm -// VPXORQ.Z xmm xmm k xmm -// VPXORQ.Z ymm ymm k ymm -// VPXORQ.Z m512 zmm k zmm -// VPXORQ.Z zmm zmm k zmm -// -// Construct and append a VPXORQ.Z instruction to the active function. -func (c *Context) VPXORQ_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VPXORQ_Z(mxyz, xyz, k, xyz1)) -} - -// VPXORQ_Z: Bitwise Logical Exclusive OR of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPXORQ.Z m128 xmm k xmm -// VPXORQ.Z m256 ymm k ymm -// VPXORQ.Z xmm xmm k xmm -// VPXORQ.Z ymm ymm k ymm -// VPXORQ.Z m512 zmm k zmm -// VPXORQ.Z zmm zmm k zmm -// -// Construct and append a VPXORQ.Z instruction to the active function. -// Operates on the global context. -func VPXORQ_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VPXORQ_Z(mxyz, xyz, k, xyz1) } - -// VRANGEPD: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values. -// -// Forms: -// -// VRANGEPD imm8 m128 xmm k xmm -// VRANGEPD imm8 m128 xmm xmm -// VRANGEPD imm8 m256 ymm k ymm -// VRANGEPD imm8 m256 ymm ymm -// VRANGEPD imm8 xmm xmm k xmm -// VRANGEPD imm8 xmm xmm xmm -// VRANGEPD imm8 ymm ymm k ymm -// VRANGEPD imm8 ymm ymm ymm -// VRANGEPD imm8 m512 zmm k zmm -// VRANGEPD imm8 m512 zmm zmm -// VRANGEPD imm8 zmm zmm k zmm -// VRANGEPD imm8 zmm zmm zmm -// -// Construct and append a VRANGEPD instruction to the active function. -func (c *Context) VRANGEPD(ops ...operand.Op) { - c.addinstruction(x86.VRANGEPD(ops...)) -} - -// VRANGEPD: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values. -// -// Forms: -// -// VRANGEPD imm8 m128 xmm k xmm -// VRANGEPD imm8 m128 xmm xmm -// VRANGEPD imm8 m256 ymm k ymm -// VRANGEPD imm8 m256 ymm ymm -// VRANGEPD imm8 xmm xmm k xmm -// VRANGEPD imm8 xmm xmm xmm -// VRANGEPD imm8 ymm ymm k ymm -// VRANGEPD imm8 ymm ymm ymm -// VRANGEPD imm8 m512 zmm k zmm -// VRANGEPD imm8 m512 zmm zmm -// VRANGEPD imm8 zmm zmm k zmm -// VRANGEPD imm8 zmm zmm zmm -// -// Construct and append a VRANGEPD instruction to the active function. -// Operates on the global context. -func VRANGEPD(ops ...operand.Op) { ctx.VRANGEPD(ops...) } - -// VRANGEPD_BCST: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRANGEPD.BCST imm8 m64 xmm k xmm -// VRANGEPD.BCST imm8 m64 xmm xmm -// VRANGEPD.BCST imm8 m64 ymm k ymm -// VRANGEPD.BCST imm8 m64 ymm ymm -// VRANGEPD.BCST imm8 m64 zmm k zmm -// VRANGEPD.BCST imm8 m64 zmm zmm -// -// Construct and append a VRANGEPD.BCST instruction to the active function. -func (c *Context) VRANGEPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRANGEPD_BCST(ops...)) -} - -// VRANGEPD_BCST: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRANGEPD.BCST imm8 m64 xmm k xmm -// VRANGEPD.BCST imm8 m64 xmm xmm -// VRANGEPD.BCST imm8 m64 ymm k ymm -// VRANGEPD.BCST imm8 m64 ymm ymm -// VRANGEPD.BCST imm8 m64 zmm k zmm -// VRANGEPD.BCST imm8 m64 zmm zmm -// -// Construct and append a VRANGEPD.BCST instruction to the active function. -// Operates on the global context. -func VRANGEPD_BCST(ops ...operand.Op) { ctx.VRANGEPD_BCST(ops...) } - -// VRANGEPD_BCST_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRANGEPD.BCST.Z imm8 m64 xmm k xmm -// VRANGEPD.BCST.Z imm8 m64 ymm k ymm -// VRANGEPD.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VRANGEPD.BCST.Z instruction to the active function. -func (c *Context) VRANGEPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VRANGEPD_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VRANGEPD_BCST_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRANGEPD.BCST.Z imm8 m64 xmm k xmm -// VRANGEPD.BCST.Z imm8 m64 ymm k ymm -// VRANGEPD.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VRANGEPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VRANGEPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VRANGEPD_BCST_Z(i, m, xyz, k, xyz1) } - -// VRANGEPD_SAE: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGEPD.SAE imm8 zmm zmm k zmm -// VRANGEPD.SAE imm8 zmm zmm zmm -// -// Construct and append a VRANGEPD.SAE instruction to the active function. -func (c *Context) VRANGEPD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRANGEPD_SAE(ops...)) -} - -// VRANGEPD_SAE: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGEPD.SAE imm8 zmm zmm k zmm -// VRANGEPD.SAE imm8 zmm zmm zmm -// -// Construct and append a VRANGEPD.SAE instruction to the active function. -// Operates on the global context. -func VRANGEPD_SAE(ops ...operand.Op) { ctx.VRANGEPD_SAE(ops...) } - -// VRANGEPD_SAE_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGEPD.SAE.Z imm8 zmm zmm k zmm -// -// Construct and append a VRANGEPD.SAE.Z instruction to the active function. -func (c *Context) VRANGEPD_SAE_Z(i, z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VRANGEPD_SAE_Z(i, z, z1, k, z2)) -} - -// VRANGEPD_SAE_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGEPD.SAE.Z imm8 zmm zmm k zmm -// -// Construct and append a VRANGEPD.SAE.Z instruction to the active function. -// Operates on the global context. -func VRANGEPD_SAE_Z(i, z, z1, k, z2 operand.Op) { ctx.VRANGEPD_SAE_Z(i, z, z1, k, z2) } - -// VRANGEPD_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGEPD.Z imm8 m128 xmm k xmm -// VRANGEPD.Z imm8 m256 ymm k ymm -// VRANGEPD.Z imm8 xmm xmm k xmm -// VRANGEPD.Z imm8 ymm ymm k ymm -// VRANGEPD.Z imm8 m512 zmm k zmm -// VRANGEPD.Z imm8 zmm zmm k zmm -// -// Construct and append a VRANGEPD.Z instruction to the active function. -func (c *Context) VRANGEPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VRANGEPD_Z(i, mxyz, xyz, k, xyz1)) -} - -// VRANGEPD_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGEPD.Z imm8 m128 xmm k xmm -// VRANGEPD.Z imm8 m256 ymm k ymm -// VRANGEPD.Z imm8 xmm xmm k xmm -// VRANGEPD.Z imm8 ymm ymm k ymm -// VRANGEPD.Z imm8 m512 zmm k zmm -// VRANGEPD.Z imm8 zmm zmm k zmm -// -// Construct and append a VRANGEPD.Z instruction to the active function. -// Operates on the global context. -func VRANGEPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VRANGEPD_Z(i, mxyz, xyz, k, xyz1) } - -// VRANGEPS: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values. -// -// Forms: -// -// VRANGEPS imm8 m128 xmm k xmm -// VRANGEPS imm8 m128 xmm xmm -// VRANGEPS imm8 m256 ymm k ymm -// VRANGEPS imm8 m256 ymm ymm -// VRANGEPS imm8 xmm xmm k xmm -// VRANGEPS imm8 xmm xmm xmm -// VRANGEPS imm8 ymm ymm k ymm -// VRANGEPS imm8 ymm ymm ymm -// VRANGEPS imm8 m512 zmm k zmm -// VRANGEPS imm8 m512 zmm zmm -// VRANGEPS imm8 zmm zmm k zmm -// VRANGEPS imm8 zmm zmm zmm -// -// Construct and append a VRANGEPS instruction to the active function. -func (c *Context) VRANGEPS(ops ...operand.Op) { - c.addinstruction(x86.VRANGEPS(ops...)) -} - -// VRANGEPS: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values. -// -// Forms: -// -// VRANGEPS imm8 m128 xmm k xmm -// VRANGEPS imm8 m128 xmm xmm -// VRANGEPS imm8 m256 ymm k ymm -// VRANGEPS imm8 m256 ymm ymm -// VRANGEPS imm8 xmm xmm k xmm -// VRANGEPS imm8 xmm xmm xmm -// VRANGEPS imm8 ymm ymm k ymm -// VRANGEPS imm8 ymm ymm ymm -// VRANGEPS imm8 m512 zmm k zmm -// VRANGEPS imm8 m512 zmm zmm -// VRANGEPS imm8 zmm zmm k zmm -// VRANGEPS imm8 zmm zmm zmm -// -// Construct and append a VRANGEPS instruction to the active function. -// Operates on the global context. -func VRANGEPS(ops ...operand.Op) { ctx.VRANGEPS(ops...) } - -// VRANGEPS_BCST: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRANGEPS.BCST imm8 m32 xmm k xmm -// VRANGEPS.BCST imm8 m32 xmm xmm -// VRANGEPS.BCST imm8 m32 ymm k ymm -// VRANGEPS.BCST imm8 m32 ymm ymm -// VRANGEPS.BCST imm8 m32 zmm k zmm -// VRANGEPS.BCST imm8 m32 zmm zmm -// -// Construct and append a VRANGEPS.BCST instruction to the active function. -func (c *Context) VRANGEPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRANGEPS_BCST(ops...)) -} - -// VRANGEPS_BCST: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRANGEPS.BCST imm8 m32 xmm k xmm -// VRANGEPS.BCST imm8 m32 xmm xmm -// VRANGEPS.BCST imm8 m32 ymm k ymm -// VRANGEPS.BCST imm8 m32 ymm ymm -// VRANGEPS.BCST imm8 m32 zmm k zmm -// VRANGEPS.BCST imm8 m32 zmm zmm -// -// Construct and append a VRANGEPS.BCST instruction to the active function. -// Operates on the global context. -func VRANGEPS_BCST(ops ...operand.Op) { ctx.VRANGEPS_BCST(ops...) } - -// VRANGEPS_BCST_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRANGEPS.BCST.Z imm8 m32 xmm k xmm -// VRANGEPS.BCST.Z imm8 m32 ymm k ymm -// VRANGEPS.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VRANGEPS.BCST.Z instruction to the active function. -func (c *Context) VRANGEPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VRANGEPS_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VRANGEPS_BCST_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRANGEPS.BCST.Z imm8 m32 xmm k xmm -// VRANGEPS.BCST.Z imm8 m32 ymm k ymm -// VRANGEPS.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VRANGEPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VRANGEPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VRANGEPS_BCST_Z(i, m, xyz, k, xyz1) } - -// VRANGEPS_SAE: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGEPS.SAE imm8 zmm zmm k zmm -// VRANGEPS.SAE imm8 zmm zmm zmm -// -// Construct and append a VRANGEPS.SAE instruction to the active function. -func (c *Context) VRANGEPS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRANGEPS_SAE(ops...)) -} - -// VRANGEPS_SAE: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGEPS.SAE imm8 zmm zmm k zmm -// VRANGEPS.SAE imm8 zmm zmm zmm -// -// Construct and append a VRANGEPS.SAE instruction to the active function. -// Operates on the global context. -func VRANGEPS_SAE(ops ...operand.Op) { ctx.VRANGEPS_SAE(ops...) } - -// VRANGEPS_SAE_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGEPS.SAE.Z imm8 zmm zmm k zmm -// -// Construct and append a VRANGEPS.SAE.Z instruction to the active function. -func (c *Context) VRANGEPS_SAE_Z(i, z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VRANGEPS_SAE_Z(i, z, z1, k, z2)) -} - -// VRANGEPS_SAE_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGEPS.SAE.Z imm8 zmm zmm k zmm -// -// Construct and append a VRANGEPS.SAE.Z instruction to the active function. -// Operates on the global context. -func VRANGEPS_SAE_Z(i, z, z1, k, z2 operand.Op) { ctx.VRANGEPS_SAE_Z(i, z, z1, k, z2) } - -// VRANGEPS_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGEPS.Z imm8 m128 xmm k xmm -// VRANGEPS.Z imm8 m256 ymm k ymm -// VRANGEPS.Z imm8 xmm xmm k xmm -// VRANGEPS.Z imm8 ymm ymm k ymm -// VRANGEPS.Z imm8 m512 zmm k zmm -// VRANGEPS.Z imm8 zmm zmm k zmm -// -// Construct and append a VRANGEPS.Z instruction to the active function. -func (c *Context) VRANGEPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VRANGEPS_Z(i, mxyz, xyz, k, xyz1)) -} - -// VRANGEPS_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGEPS.Z imm8 m128 xmm k xmm -// VRANGEPS.Z imm8 m256 ymm k ymm -// VRANGEPS.Z imm8 xmm xmm k xmm -// VRANGEPS.Z imm8 ymm ymm k ymm -// VRANGEPS.Z imm8 m512 zmm k zmm -// VRANGEPS.Z imm8 zmm zmm k zmm -// -// Construct and append a VRANGEPS.Z instruction to the active function. -// Operates on the global context. -func VRANGEPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VRANGEPS_Z(i, mxyz, xyz, k, xyz1) } - -// VRANGESD: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VRANGESD imm8 m64 xmm k xmm -// VRANGESD imm8 m64 xmm xmm -// VRANGESD imm8 xmm xmm k xmm -// VRANGESD imm8 xmm xmm xmm -// -// Construct and append a VRANGESD instruction to the active function. -func (c *Context) VRANGESD(ops ...operand.Op) { - c.addinstruction(x86.VRANGESD(ops...)) -} - -// VRANGESD: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VRANGESD imm8 m64 xmm k xmm -// VRANGESD imm8 m64 xmm xmm -// VRANGESD imm8 xmm xmm k xmm -// VRANGESD imm8 xmm xmm xmm -// -// Construct and append a VRANGESD instruction to the active function. -// Operates on the global context. -func VRANGESD(ops ...operand.Op) { ctx.VRANGESD(ops...) } - -// VRANGESD_SAE: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGESD.SAE imm8 xmm xmm k xmm -// VRANGESD.SAE imm8 xmm xmm xmm -// -// Construct and append a VRANGESD.SAE instruction to the active function. -func (c *Context) VRANGESD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRANGESD_SAE(ops...)) -} - -// VRANGESD_SAE: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGESD.SAE imm8 xmm xmm k xmm -// VRANGESD.SAE imm8 xmm xmm xmm -// -// Construct and append a VRANGESD.SAE instruction to the active function. -// Operates on the global context. -func VRANGESD_SAE(ops ...operand.Op) { ctx.VRANGESD_SAE(ops...) } - -// VRANGESD_SAE_Z: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGESD.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VRANGESD.SAE.Z instruction to the active function. -func (c *Context) VRANGESD_SAE_Z(i, x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VRANGESD_SAE_Z(i, x, x1, k, x2)) -} - -// VRANGESD_SAE_Z: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGESD.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VRANGESD.SAE.Z instruction to the active function. -// Operates on the global context. -func VRANGESD_SAE_Z(i, x, x1, k, x2 operand.Op) { ctx.VRANGESD_SAE_Z(i, x, x1, k, x2) } - -// VRANGESD_Z: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGESD.Z imm8 m64 xmm k xmm -// VRANGESD.Z imm8 xmm xmm k xmm -// -// Construct and append a VRANGESD.Z instruction to the active function. -func (c *Context) VRANGESD_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRANGESD_Z(i, mx, x, k, x1)) -} - -// VRANGESD_Z: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGESD.Z imm8 m64 xmm k xmm -// VRANGESD.Z imm8 xmm xmm k xmm -// -// Construct and append a VRANGESD.Z instruction to the active function. -// Operates on the global context. -func VRANGESD_Z(i, mx, x, k, x1 operand.Op) { ctx.VRANGESD_Z(i, mx, x, k, x1) } - -// VRANGESS: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VRANGESS imm8 m32 xmm k xmm -// VRANGESS imm8 m32 xmm xmm -// VRANGESS imm8 xmm xmm k xmm -// VRANGESS imm8 xmm xmm xmm -// -// Construct and append a VRANGESS instruction to the active function. -func (c *Context) VRANGESS(ops ...operand.Op) { - c.addinstruction(x86.VRANGESS(ops...)) -} - -// VRANGESS: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VRANGESS imm8 m32 xmm k xmm -// VRANGESS imm8 m32 xmm xmm -// VRANGESS imm8 xmm xmm k xmm -// VRANGESS imm8 xmm xmm xmm -// -// Construct and append a VRANGESS instruction to the active function. -// Operates on the global context. -func VRANGESS(ops ...operand.Op) { ctx.VRANGESS(ops...) } - -// VRANGESS_SAE: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGESS.SAE imm8 xmm xmm k xmm -// VRANGESS.SAE imm8 xmm xmm xmm -// -// Construct and append a VRANGESS.SAE instruction to the active function. -func (c *Context) VRANGESS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRANGESS_SAE(ops...)) -} - -// VRANGESS_SAE: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGESS.SAE imm8 xmm xmm k xmm -// VRANGESS.SAE imm8 xmm xmm xmm -// -// Construct and append a VRANGESS.SAE instruction to the active function. -// Operates on the global context. -func VRANGESS_SAE(ops ...operand.Op) { ctx.VRANGESS_SAE(ops...) } - -// VRANGESS_SAE_Z: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGESS.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VRANGESS.SAE.Z instruction to the active function. -func (c *Context) VRANGESS_SAE_Z(i, x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VRANGESS_SAE_Z(i, x, x1, k, x2)) -} - -// VRANGESS_SAE_Z: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGESS.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VRANGESS.SAE.Z instruction to the active function. -// Operates on the global context. -func VRANGESS_SAE_Z(i, x, x1, k, x2 operand.Op) { ctx.VRANGESS_SAE_Z(i, x, x1, k, x2) } - -// VRANGESS_Z: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGESS.Z imm8 m32 xmm k xmm -// VRANGESS.Z imm8 xmm xmm k xmm -// -// Construct and append a VRANGESS.Z instruction to the active function. -func (c *Context) VRANGESS_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRANGESS_Z(i, mx, x, k, x1)) -} - -// VRANGESS_Z: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGESS.Z imm8 m32 xmm k xmm -// VRANGESS.Z imm8 xmm xmm k xmm -// -// Construct and append a VRANGESS.Z instruction to the active function. -// Operates on the global context. -func VRANGESS_Z(i, mx, x, k, x1 operand.Op) { ctx.VRANGESS_Z(i, mx, x, k, x1) } - -// VRCP14PD: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VRCP14PD m128 k xmm -// VRCP14PD m128 xmm -// VRCP14PD m256 k ymm -// VRCP14PD m256 ymm -// VRCP14PD xmm k xmm -// VRCP14PD xmm xmm -// VRCP14PD ymm k ymm -// VRCP14PD ymm ymm -// VRCP14PD m512 k zmm -// VRCP14PD m512 zmm -// VRCP14PD zmm k zmm -// VRCP14PD zmm zmm -// -// Construct and append a VRCP14PD instruction to the active function. -func (c *Context) VRCP14PD(ops ...operand.Op) { - c.addinstruction(x86.VRCP14PD(ops...)) -} - -// VRCP14PD: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VRCP14PD m128 k xmm -// VRCP14PD m128 xmm -// VRCP14PD m256 k ymm -// VRCP14PD m256 ymm -// VRCP14PD xmm k xmm -// VRCP14PD xmm xmm -// VRCP14PD ymm k ymm -// VRCP14PD ymm ymm -// VRCP14PD m512 k zmm -// VRCP14PD m512 zmm -// VRCP14PD zmm k zmm -// VRCP14PD zmm zmm -// -// Construct and append a VRCP14PD instruction to the active function. -// Operates on the global context. -func VRCP14PD(ops ...operand.Op) { ctx.VRCP14PD(ops...) } - -// VRCP14PD_BCST: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRCP14PD.BCST m64 k xmm -// VRCP14PD.BCST m64 k ymm -// VRCP14PD.BCST m64 xmm -// VRCP14PD.BCST m64 ymm -// VRCP14PD.BCST m64 k zmm -// VRCP14PD.BCST m64 zmm -// -// Construct and append a VRCP14PD.BCST instruction to the active function. -func (c *Context) VRCP14PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRCP14PD_BCST(ops...)) -} - -// VRCP14PD_BCST: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRCP14PD.BCST m64 k xmm -// VRCP14PD.BCST m64 k ymm -// VRCP14PD.BCST m64 xmm -// VRCP14PD.BCST m64 ymm -// VRCP14PD.BCST m64 k zmm -// VRCP14PD.BCST m64 zmm -// -// Construct and append a VRCP14PD.BCST instruction to the active function. -// Operates on the global context. -func VRCP14PD_BCST(ops ...operand.Op) { ctx.VRCP14PD_BCST(ops...) } - -// VRCP14PD_BCST_Z: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP14PD.BCST.Z m64 k xmm -// VRCP14PD.BCST.Z m64 k ymm -// VRCP14PD.BCST.Z m64 k zmm -// -// Construct and append a VRCP14PD.BCST.Z instruction to the active function. -func (c *Context) VRCP14PD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VRCP14PD_BCST_Z(m, k, xyz)) -} - -// VRCP14PD_BCST_Z: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP14PD.BCST.Z m64 k xmm -// VRCP14PD.BCST.Z m64 k ymm -// VRCP14PD.BCST.Z m64 k zmm -// -// Construct and append a VRCP14PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VRCP14PD_BCST_Z(m, k, xyz operand.Op) { ctx.VRCP14PD_BCST_Z(m, k, xyz) } - -// VRCP14PD_Z: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRCP14PD.Z m128 k xmm -// VRCP14PD.Z m256 k ymm -// VRCP14PD.Z xmm k xmm -// VRCP14PD.Z ymm k ymm -// VRCP14PD.Z m512 k zmm -// VRCP14PD.Z zmm k zmm -// -// Construct and append a VRCP14PD.Z instruction to the active function. -func (c *Context) VRCP14PD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VRCP14PD_Z(mxyz, k, xyz)) -} - -// VRCP14PD_Z: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRCP14PD.Z m128 k xmm -// VRCP14PD.Z m256 k ymm -// VRCP14PD.Z xmm k xmm -// VRCP14PD.Z ymm k ymm -// VRCP14PD.Z m512 k zmm -// VRCP14PD.Z zmm k zmm -// -// Construct and append a VRCP14PD.Z instruction to the active function. -// Operates on the global context. -func VRCP14PD_Z(mxyz, k, xyz operand.Op) { ctx.VRCP14PD_Z(mxyz, k, xyz) } - -// VRCP14PS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRCP14PS m128 k xmm -// VRCP14PS m128 xmm -// VRCP14PS m256 k ymm -// VRCP14PS m256 ymm -// VRCP14PS xmm k xmm -// VRCP14PS xmm xmm -// VRCP14PS ymm k ymm -// VRCP14PS ymm ymm -// VRCP14PS m512 k zmm -// VRCP14PS m512 zmm -// VRCP14PS zmm k zmm -// VRCP14PS zmm zmm -// -// Construct and append a VRCP14PS instruction to the active function. -func (c *Context) VRCP14PS(ops ...operand.Op) { - c.addinstruction(x86.VRCP14PS(ops...)) -} - -// VRCP14PS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRCP14PS m128 k xmm -// VRCP14PS m128 xmm -// VRCP14PS m256 k ymm -// VRCP14PS m256 ymm -// VRCP14PS xmm k xmm -// VRCP14PS xmm xmm -// VRCP14PS ymm k ymm -// VRCP14PS ymm ymm -// VRCP14PS m512 k zmm -// VRCP14PS m512 zmm -// VRCP14PS zmm k zmm -// VRCP14PS zmm zmm -// -// Construct and append a VRCP14PS instruction to the active function. -// Operates on the global context. -func VRCP14PS(ops ...operand.Op) { ctx.VRCP14PS(ops...) } - -// VRCP14PS_BCST: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRCP14PS.BCST m32 k xmm -// VRCP14PS.BCST m32 k ymm -// VRCP14PS.BCST m32 xmm -// VRCP14PS.BCST m32 ymm -// VRCP14PS.BCST m32 k zmm -// VRCP14PS.BCST m32 zmm -// -// Construct and append a VRCP14PS.BCST instruction to the active function. -func (c *Context) VRCP14PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRCP14PS_BCST(ops...)) -} - -// VRCP14PS_BCST: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRCP14PS.BCST m32 k xmm -// VRCP14PS.BCST m32 k ymm -// VRCP14PS.BCST m32 xmm -// VRCP14PS.BCST m32 ymm -// VRCP14PS.BCST m32 k zmm -// VRCP14PS.BCST m32 zmm -// -// Construct and append a VRCP14PS.BCST instruction to the active function. -// Operates on the global context. -func VRCP14PS_BCST(ops ...operand.Op) { ctx.VRCP14PS_BCST(ops...) } - -// VRCP14PS_BCST_Z: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP14PS.BCST.Z m32 k xmm -// VRCP14PS.BCST.Z m32 k ymm -// VRCP14PS.BCST.Z m32 k zmm -// -// Construct and append a VRCP14PS.BCST.Z instruction to the active function. -func (c *Context) VRCP14PS_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VRCP14PS_BCST_Z(m, k, xyz)) -} - -// VRCP14PS_BCST_Z: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP14PS.BCST.Z m32 k xmm -// VRCP14PS.BCST.Z m32 k ymm -// VRCP14PS.BCST.Z m32 k zmm -// -// Construct and append a VRCP14PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VRCP14PS_BCST_Z(m, k, xyz operand.Op) { ctx.VRCP14PS_BCST_Z(m, k, xyz) } - -// VRCP14PS_Z: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRCP14PS.Z m128 k xmm -// VRCP14PS.Z m256 k ymm -// VRCP14PS.Z xmm k xmm -// VRCP14PS.Z ymm k ymm -// VRCP14PS.Z m512 k zmm -// VRCP14PS.Z zmm k zmm -// -// Construct and append a VRCP14PS.Z instruction to the active function. -func (c *Context) VRCP14PS_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VRCP14PS_Z(mxyz, k, xyz)) -} - -// VRCP14PS_Z: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRCP14PS.Z m128 k xmm -// VRCP14PS.Z m256 k ymm -// VRCP14PS.Z xmm k xmm -// VRCP14PS.Z ymm k ymm -// VRCP14PS.Z m512 k zmm -// VRCP14PS.Z zmm k zmm -// -// Construct and append a VRCP14PS.Z instruction to the active function. -// Operates on the global context. -func VRCP14PS_Z(mxyz, k, xyz operand.Op) { ctx.VRCP14PS_Z(mxyz, k, xyz) } - -// VRCP14SD: Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VRCP14SD m64 xmm k xmm -// VRCP14SD m64 xmm xmm -// VRCP14SD xmm xmm k xmm -// VRCP14SD xmm xmm xmm -// -// Construct and append a VRCP14SD instruction to the active function. -func (c *Context) VRCP14SD(ops ...operand.Op) { - c.addinstruction(x86.VRCP14SD(ops...)) -} - -// VRCP14SD: Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VRCP14SD m64 xmm k xmm -// VRCP14SD m64 xmm xmm -// VRCP14SD xmm xmm k xmm -// VRCP14SD xmm xmm xmm -// -// Construct and append a VRCP14SD instruction to the active function. -// Operates on the global context. -func VRCP14SD(ops ...operand.Op) { ctx.VRCP14SD(ops...) } - -// VRCP14SD_Z: Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRCP14SD.Z m64 xmm k xmm -// VRCP14SD.Z xmm xmm k xmm -// -// Construct and append a VRCP14SD.Z instruction to the active function. -func (c *Context) VRCP14SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRCP14SD_Z(mx, x, k, x1)) -} - -// VRCP14SD_Z: Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRCP14SD.Z m64 xmm k xmm -// VRCP14SD.Z xmm xmm k xmm -// -// Construct and append a VRCP14SD.Z instruction to the active function. -// Operates on the global context. -func VRCP14SD_Z(mx, x, k, x1 operand.Op) { ctx.VRCP14SD_Z(mx, x, k, x1) } - -// VRCP14SS: Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VRCP14SS m32 xmm k xmm -// VRCP14SS m32 xmm xmm -// VRCP14SS xmm xmm k xmm -// VRCP14SS xmm xmm xmm -// -// Construct and append a VRCP14SS instruction to the active function. -func (c *Context) VRCP14SS(ops ...operand.Op) { - c.addinstruction(x86.VRCP14SS(ops...)) -} - -// VRCP14SS: Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VRCP14SS m32 xmm k xmm -// VRCP14SS m32 xmm xmm -// VRCP14SS xmm xmm k xmm -// VRCP14SS xmm xmm xmm -// -// Construct and append a VRCP14SS instruction to the active function. -// Operates on the global context. -func VRCP14SS(ops ...operand.Op) { ctx.VRCP14SS(ops...) } - -// VRCP14SS_Z: Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRCP14SS.Z m32 xmm k xmm -// VRCP14SS.Z xmm xmm k xmm -// -// Construct and append a VRCP14SS.Z instruction to the active function. -func (c *Context) VRCP14SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRCP14SS_Z(mx, x, k, x1)) -} - -// VRCP14SS_Z: Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRCP14SS.Z m32 xmm k xmm -// VRCP14SS.Z xmm xmm k xmm -// -// Construct and append a VRCP14SS.Z instruction to the active function. -// Operates on the global context. -func VRCP14SS_Z(mx, x, k, x1 operand.Op) { ctx.VRCP14SS_Z(mx, x, k, x1) } - -// VRCP28PD: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28PD m512 k zmm -// VRCP28PD m512 zmm -// VRCP28PD zmm k zmm -// VRCP28PD zmm zmm -// -// Construct and append a VRCP28PD instruction to the active function. -func (c *Context) VRCP28PD(ops ...operand.Op) { - c.addinstruction(x86.VRCP28PD(ops...)) -} - -// VRCP28PD: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28PD m512 k zmm -// VRCP28PD m512 zmm -// VRCP28PD zmm k zmm -// VRCP28PD zmm zmm -// -// Construct and append a VRCP28PD instruction to the active function. -// Operates on the global context. -func VRCP28PD(ops ...operand.Op) { ctx.VRCP28PD(ops...) } - -// VRCP28PD_BCST: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRCP28PD.BCST m64 k zmm -// VRCP28PD.BCST m64 zmm -// -// Construct and append a VRCP28PD.BCST instruction to the active function. -func (c *Context) VRCP28PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRCP28PD_BCST(ops...)) -} - -// VRCP28PD_BCST: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRCP28PD.BCST m64 k zmm -// VRCP28PD.BCST m64 zmm -// -// Construct and append a VRCP28PD.BCST instruction to the active function. -// Operates on the global context. -func VRCP28PD_BCST(ops ...operand.Op) { ctx.VRCP28PD_BCST(ops...) } - -// VRCP28PD_BCST_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP28PD.BCST.Z m64 k zmm -// -// Construct and append a VRCP28PD.BCST.Z instruction to the active function. -func (c *Context) VRCP28PD_BCST_Z(m, k, z operand.Op) { - c.addinstruction(x86.VRCP28PD_BCST_Z(m, k, z)) -} - -// VRCP28PD_BCST_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP28PD.BCST.Z m64 k zmm -// -// Construct and append a VRCP28PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VRCP28PD_BCST_Z(m, k, z operand.Op) { ctx.VRCP28PD_BCST_Z(m, k, z) } - -// VRCP28PD_SAE: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28PD.SAE zmm k zmm -// VRCP28PD.SAE zmm zmm -// -// Construct and append a VRCP28PD.SAE instruction to the active function. -func (c *Context) VRCP28PD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRCP28PD_SAE(ops...)) -} - -// VRCP28PD_SAE: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28PD.SAE zmm k zmm -// VRCP28PD.SAE zmm zmm -// -// Construct and append a VRCP28PD.SAE instruction to the active function. -// Operates on the global context. -func VRCP28PD_SAE(ops ...operand.Op) { ctx.VRCP28PD_SAE(ops...) } - -// VRCP28PD_SAE_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28PD.SAE.Z zmm k zmm -// -// Construct and append a VRCP28PD.SAE.Z instruction to the active function. -func (c *Context) VRCP28PD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VRCP28PD_SAE_Z(z, k, z1)) -} - -// VRCP28PD_SAE_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28PD.SAE.Z zmm k zmm -// -// Construct and append a VRCP28PD.SAE.Z instruction to the active function. -// Operates on the global context. -func VRCP28PD_SAE_Z(z, k, z1 operand.Op) { ctx.VRCP28PD_SAE_Z(z, k, z1) } - -// VRCP28PD_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28PD.Z m512 k zmm -// VRCP28PD.Z zmm k zmm -// -// Construct and append a VRCP28PD.Z instruction to the active function. -func (c *Context) VRCP28PD_Z(mz, k, z operand.Op) { - c.addinstruction(x86.VRCP28PD_Z(mz, k, z)) -} - -// VRCP28PD_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28PD.Z m512 k zmm -// VRCP28PD.Z zmm k zmm -// -// Construct and append a VRCP28PD.Z instruction to the active function. -// Operates on the global context. -func VRCP28PD_Z(mz, k, z operand.Op) { ctx.VRCP28PD_Z(mz, k, z) } - -// VRCP28PS: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28PS m512 k zmm -// VRCP28PS m512 zmm -// VRCP28PS zmm k zmm -// VRCP28PS zmm zmm -// -// Construct and append a VRCP28PS instruction to the active function. -func (c *Context) VRCP28PS(ops ...operand.Op) { - c.addinstruction(x86.VRCP28PS(ops...)) -} - -// VRCP28PS: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28PS m512 k zmm -// VRCP28PS m512 zmm -// VRCP28PS zmm k zmm -// VRCP28PS zmm zmm -// -// Construct and append a VRCP28PS instruction to the active function. -// Operates on the global context. -func VRCP28PS(ops ...operand.Op) { ctx.VRCP28PS(ops...) } - -// VRCP28PS_BCST: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRCP28PS.BCST m32 k zmm -// VRCP28PS.BCST m32 zmm -// -// Construct and append a VRCP28PS.BCST instruction to the active function. -func (c *Context) VRCP28PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRCP28PS_BCST(ops...)) -} - -// VRCP28PS_BCST: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRCP28PS.BCST m32 k zmm -// VRCP28PS.BCST m32 zmm -// -// Construct and append a VRCP28PS.BCST instruction to the active function. -// Operates on the global context. -func VRCP28PS_BCST(ops ...operand.Op) { ctx.VRCP28PS_BCST(ops...) } - -// VRCP28PS_BCST_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP28PS.BCST.Z m32 k zmm -// -// Construct and append a VRCP28PS.BCST.Z instruction to the active function. -func (c *Context) VRCP28PS_BCST_Z(m, k, z operand.Op) { - c.addinstruction(x86.VRCP28PS_BCST_Z(m, k, z)) -} - -// VRCP28PS_BCST_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP28PS.BCST.Z m32 k zmm -// -// Construct and append a VRCP28PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VRCP28PS_BCST_Z(m, k, z operand.Op) { ctx.VRCP28PS_BCST_Z(m, k, z) } - -// VRCP28PS_SAE: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28PS.SAE zmm k zmm -// VRCP28PS.SAE zmm zmm -// -// Construct and append a VRCP28PS.SAE instruction to the active function. -func (c *Context) VRCP28PS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRCP28PS_SAE(ops...)) -} - -// VRCP28PS_SAE: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28PS.SAE zmm k zmm -// VRCP28PS.SAE zmm zmm -// -// Construct and append a VRCP28PS.SAE instruction to the active function. -// Operates on the global context. -func VRCP28PS_SAE(ops ...operand.Op) { ctx.VRCP28PS_SAE(ops...) } - -// VRCP28PS_SAE_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28PS.SAE.Z zmm k zmm -// -// Construct and append a VRCP28PS.SAE.Z instruction to the active function. -func (c *Context) VRCP28PS_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VRCP28PS_SAE_Z(z, k, z1)) -} - -// VRCP28PS_SAE_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28PS.SAE.Z zmm k zmm -// -// Construct and append a VRCP28PS.SAE.Z instruction to the active function. -// Operates on the global context. -func VRCP28PS_SAE_Z(z, k, z1 operand.Op) { ctx.VRCP28PS_SAE_Z(z, k, z1) } - -// VRCP28PS_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28PS.Z m512 k zmm -// VRCP28PS.Z zmm k zmm -// -// Construct and append a VRCP28PS.Z instruction to the active function. -func (c *Context) VRCP28PS_Z(mz, k, z operand.Op) { - c.addinstruction(x86.VRCP28PS_Z(mz, k, z)) -} - -// VRCP28PS_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28PS.Z m512 k zmm -// VRCP28PS.Z zmm k zmm -// -// Construct and append a VRCP28PS.Z instruction to the active function. -// Operates on the global context. -func VRCP28PS_Z(mz, k, z operand.Op) { ctx.VRCP28PS_Z(mz, k, z) } - -// VRCP28SD: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28SD m64 xmm k xmm -// VRCP28SD m64 xmm xmm -// VRCP28SD xmm xmm k xmm -// VRCP28SD xmm xmm xmm -// -// Construct and append a VRCP28SD instruction to the active function. -func (c *Context) VRCP28SD(ops ...operand.Op) { - c.addinstruction(x86.VRCP28SD(ops...)) -} - -// VRCP28SD: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28SD m64 xmm k xmm -// VRCP28SD m64 xmm xmm -// VRCP28SD xmm xmm k xmm -// VRCP28SD xmm xmm xmm -// -// Construct and append a VRCP28SD instruction to the active function. -// Operates on the global context. -func VRCP28SD(ops ...operand.Op) { ctx.VRCP28SD(ops...) } - -// VRCP28SD_SAE: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28SD.SAE xmm xmm k xmm -// VRCP28SD.SAE xmm xmm xmm -// -// Construct and append a VRCP28SD.SAE instruction to the active function. -func (c *Context) VRCP28SD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRCP28SD_SAE(ops...)) -} - -// VRCP28SD_SAE: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28SD.SAE xmm xmm k xmm -// VRCP28SD.SAE xmm xmm xmm -// -// Construct and append a VRCP28SD.SAE instruction to the active function. -// Operates on the global context. -func VRCP28SD_SAE(ops ...operand.Op) { ctx.VRCP28SD_SAE(ops...) } - -// VRCP28SD_SAE_Z: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28SD.SAE.Z xmm xmm k xmm -// -// Construct and append a VRCP28SD.SAE.Z instruction to the active function. -func (c *Context) VRCP28SD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VRCP28SD_SAE_Z(x, x1, k, x2)) -} - -// VRCP28SD_SAE_Z: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28SD.SAE.Z xmm xmm k xmm -// -// Construct and append a VRCP28SD.SAE.Z instruction to the active function. -// Operates on the global context. -func VRCP28SD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VRCP28SD_SAE_Z(x, x1, k, x2) } - -// VRCP28SD_Z: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28SD.Z m64 xmm k xmm -// VRCP28SD.Z xmm xmm k xmm -// -// Construct and append a VRCP28SD.Z instruction to the active function. -func (c *Context) VRCP28SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRCP28SD_Z(mx, x, k, x1)) -} - -// VRCP28SD_Z: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28SD.Z m64 xmm k xmm -// VRCP28SD.Z xmm xmm k xmm -// -// Construct and append a VRCP28SD.Z instruction to the active function. -// Operates on the global context. -func VRCP28SD_Z(mx, x, k, x1 operand.Op) { ctx.VRCP28SD_Z(mx, x, k, x1) } - -// VRCP28SS: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28SS m32 xmm k xmm -// VRCP28SS m32 xmm xmm -// VRCP28SS xmm xmm k xmm -// VRCP28SS xmm xmm xmm -// -// Construct and append a VRCP28SS instruction to the active function. -func (c *Context) VRCP28SS(ops ...operand.Op) { - c.addinstruction(x86.VRCP28SS(ops...)) -} - -// VRCP28SS: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28SS m32 xmm k xmm -// VRCP28SS m32 xmm xmm -// VRCP28SS xmm xmm k xmm -// VRCP28SS xmm xmm xmm -// -// Construct and append a VRCP28SS instruction to the active function. -// Operates on the global context. -func VRCP28SS(ops ...operand.Op) { ctx.VRCP28SS(ops...) } - -// VRCP28SS_SAE: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28SS.SAE xmm xmm k xmm -// VRCP28SS.SAE xmm xmm xmm -// -// Construct and append a VRCP28SS.SAE instruction to the active function. -func (c *Context) VRCP28SS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRCP28SS_SAE(ops...)) -} - -// VRCP28SS_SAE: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28SS.SAE xmm xmm k xmm -// VRCP28SS.SAE xmm xmm xmm -// -// Construct and append a VRCP28SS.SAE instruction to the active function. -// Operates on the global context. -func VRCP28SS_SAE(ops ...operand.Op) { ctx.VRCP28SS_SAE(ops...) } - -// VRCP28SS_SAE_Z: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28SS.SAE.Z xmm xmm k xmm -// -// Construct and append a VRCP28SS.SAE.Z instruction to the active function. -func (c *Context) VRCP28SS_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VRCP28SS_SAE_Z(x, x1, k, x2)) -} - -// VRCP28SS_SAE_Z: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28SS.SAE.Z xmm xmm k xmm -// -// Construct and append a VRCP28SS.SAE.Z instruction to the active function. -// Operates on the global context. -func VRCP28SS_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VRCP28SS_SAE_Z(x, x1, k, x2) } - -// VRCP28SS_Z: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28SS.Z m32 xmm k xmm -// VRCP28SS.Z xmm xmm k xmm -// -// Construct and append a VRCP28SS.Z instruction to the active function. -func (c *Context) VRCP28SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRCP28SS_Z(mx, x, k, x1)) -} - -// VRCP28SS_Z: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28SS.Z m32 xmm k xmm -// VRCP28SS.Z xmm xmm k xmm -// -// Construct and append a VRCP28SS.Z instruction to the active function. -// Operates on the global context. -func VRCP28SS_Z(mx, x, k, x1 operand.Op) { ctx.VRCP28SS_Z(mx, x, k, x1) } - -// VRCPPS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRCPPS m128 xmm -// VRCPPS m256 ymm -// VRCPPS xmm xmm -// VRCPPS ymm ymm -// -// Construct and append a VRCPPS instruction to the active function. -func (c *Context) VRCPPS(mxy, xy operand.Op) { - c.addinstruction(x86.VRCPPS(mxy, xy)) -} - -// VRCPPS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRCPPS m128 xmm -// VRCPPS m256 ymm -// VRCPPS xmm xmm -// VRCPPS ymm ymm -// -// Construct and append a VRCPPS instruction to the active function. -// Operates on the global context. -func VRCPPS(mxy, xy operand.Op) { ctx.VRCPPS(mxy, xy) } - -// VRCPSS: Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VRCPSS m32 xmm xmm -// VRCPSS xmm xmm xmm -// -// Construct and append a VRCPSS instruction to the active function. -func (c *Context) VRCPSS(mx, x, x1 operand.Op) { - c.addinstruction(x86.VRCPSS(mx, x, x1)) -} - -// VRCPSS: Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VRCPSS m32 xmm xmm -// VRCPSS xmm xmm xmm -// -// Construct and append a VRCPSS instruction to the active function. -// Operates on the global context. -func VRCPSS(mx, x, x1 operand.Op) { ctx.VRCPSS(mx, x, x1) } - -// VREDUCEPD: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VREDUCEPD imm8 m128 k xmm -// VREDUCEPD imm8 m128 xmm -// VREDUCEPD imm8 m256 k ymm -// VREDUCEPD imm8 m256 ymm -// VREDUCEPD imm8 xmm k xmm -// VREDUCEPD imm8 xmm xmm -// VREDUCEPD imm8 ymm k ymm -// VREDUCEPD imm8 ymm ymm -// VREDUCEPD imm8 m512 k zmm -// VREDUCEPD imm8 m512 zmm -// VREDUCEPD imm8 zmm k zmm -// VREDUCEPD imm8 zmm zmm -// -// Construct and append a VREDUCEPD instruction to the active function. -func (c *Context) VREDUCEPD(ops ...operand.Op) { - c.addinstruction(x86.VREDUCEPD(ops...)) -} - -// VREDUCEPD: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VREDUCEPD imm8 m128 k xmm -// VREDUCEPD imm8 m128 xmm -// VREDUCEPD imm8 m256 k ymm -// VREDUCEPD imm8 m256 ymm -// VREDUCEPD imm8 xmm k xmm -// VREDUCEPD imm8 xmm xmm -// VREDUCEPD imm8 ymm k ymm -// VREDUCEPD imm8 ymm ymm -// VREDUCEPD imm8 m512 k zmm -// VREDUCEPD imm8 m512 zmm -// VREDUCEPD imm8 zmm k zmm -// VREDUCEPD imm8 zmm zmm -// -// Construct and append a VREDUCEPD instruction to the active function. -// Operates on the global context. -func VREDUCEPD(ops ...operand.Op) { ctx.VREDUCEPD(ops...) } - -// VREDUCEPD_BCST: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VREDUCEPD.BCST imm8 m64 k xmm -// VREDUCEPD.BCST imm8 m64 k ymm -// VREDUCEPD.BCST imm8 m64 xmm -// VREDUCEPD.BCST imm8 m64 ymm -// VREDUCEPD.BCST imm8 m64 k zmm -// VREDUCEPD.BCST imm8 m64 zmm -// -// Construct and append a VREDUCEPD.BCST instruction to the active function. -func (c *Context) VREDUCEPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VREDUCEPD_BCST(ops...)) -} - -// VREDUCEPD_BCST: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VREDUCEPD.BCST imm8 m64 k xmm -// VREDUCEPD.BCST imm8 m64 k ymm -// VREDUCEPD.BCST imm8 m64 xmm -// VREDUCEPD.BCST imm8 m64 ymm -// VREDUCEPD.BCST imm8 m64 k zmm -// VREDUCEPD.BCST imm8 m64 zmm -// -// Construct and append a VREDUCEPD.BCST instruction to the active function. -// Operates on the global context. -func VREDUCEPD_BCST(ops ...operand.Op) { ctx.VREDUCEPD_BCST(ops...) } - -// VREDUCEPD_BCST_Z: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VREDUCEPD.BCST.Z imm8 m64 k xmm -// VREDUCEPD.BCST.Z imm8 m64 k ymm -// VREDUCEPD.BCST.Z imm8 m64 k zmm -// -// Construct and append a VREDUCEPD.BCST.Z instruction to the active function. -func (c *Context) VREDUCEPD_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VREDUCEPD_BCST_Z(i, m, k, xyz)) -} - -// VREDUCEPD_BCST_Z: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VREDUCEPD.BCST.Z imm8 m64 k xmm -// VREDUCEPD.BCST.Z imm8 m64 k ymm -// VREDUCEPD.BCST.Z imm8 m64 k zmm -// -// Construct and append a VREDUCEPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VREDUCEPD_BCST_Z(i, m, k, xyz operand.Op) { ctx.VREDUCEPD_BCST_Z(i, m, k, xyz) } - -// VREDUCEPD_Z: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VREDUCEPD.Z imm8 m128 k xmm -// VREDUCEPD.Z imm8 m256 k ymm -// VREDUCEPD.Z imm8 xmm k xmm -// VREDUCEPD.Z imm8 ymm k ymm -// VREDUCEPD.Z imm8 m512 k zmm -// VREDUCEPD.Z imm8 zmm k zmm -// -// Construct and append a VREDUCEPD.Z instruction to the active function. -func (c *Context) VREDUCEPD_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VREDUCEPD_Z(i, mxyz, k, xyz)) -} - -// VREDUCEPD_Z: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VREDUCEPD.Z imm8 m128 k xmm -// VREDUCEPD.Z imm8 m256 k ymm -// VREDUCEPD.Z imm8 xmm k xmm -// VREDUCEPD.Z imm8 ymm k ymm -// VREDUCEPD.Z imm8 m512 k zmm -// VREDUCEPD.Z imm8 zmm k zmm -// -// Construct and append a VREDUCEPD.Z instruction to the active function. -// Operates on the global context. -func VREDUCEPD_Z(i, mxyz, k, xyz operand.Op) { ctx.VREDUCEPD_Z(i, mxyz, k, xyz) } - -// VREDUCEPS: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VREDUCEPS imm8 m128 k xmm -// VREDUCEPS imm8 m128 xmm -// VREDUCEPS imm8 m256 k ymm -// VREDUCEPS imm8 m256 ymm -// VREDUCEPS imm8 xmm k xmm -// VREDUCEPS imm8 xmm xmm -// VREDUCEPS imm8 ymm k ymm -// VREDUCEPS imm8 ymm ymm -// VREDUCEPS imm8 m512 k zmm -// VREDUCEPS imm8 m512 zmm -// VREDUCEPS imm8 zmm k zmm -// VREDUCEPS imm8 zmm zmm -// -// Construct and append a VREDUCEPS instruction to the active function. -func (c *Context) VREDUCEPS(ops ...operand.Op) { - c.addinstruction(x86.VREDUCEPS(ops...)) -} - -// VREDUCEPS: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VREDUCEPS imm8 m128 k xmm -// VREDUCEPS imm8 m128 xmm -// VREDUCEPS imm8 m256 k ymm -// VREDUCEPS imm8 m256 ymm -// VREDUCEPS imm8 xmm k xmm -// VREDUCEPS imm8 xmm xmm -// VREDUCEPS imm8 ymm k ymm -// VREDUCEPS imm8 ymm ymm -// VREDUCEPS imm8 m512 k zmm -// VREDUCEPS imm8 m512 zmm -// VREDUCEPS imm8 zmm k zmm -// VREDUCEPS imm8 zmm zmm -// -// Construct and append a VREDUCEPS instruction to the active function. -// Operates on the global context. -func VREDUCEPS(ops ...operand.Op) { ctx.VREDUCEPS(ops...) } - -// VREDUCEPS_BCST: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VREDUCEPS.BCST imm8 m32 k xmm -// VREDUCEPS.BCST imm8 m32 k ymm -// VREDUCEPS.BCST imm8 m32 xmm -// VREDUCEPS.BCST imm8 m32 ymm -// VREDUCEPS.BCST imm8 m32 k zmm -// VREDUCEPS.BCST imm8 m32 zmm -// -// Construct and append a VREDUCEPS.BCST instruction to the active function. -func (c *Context) VREDUCEPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VREDUCEPS_BCST(ops...)) -} - -// VREDUCEPS_BCST: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VREDUCEPS.BCST imm8 m32 k xmm -// VREDUCEPS.BCST imm8 m32 k ymm -// VREDUCEPS.BCST imm8 m32 xmm -// VREDUCEPS.BCST imm8 m32 ymm -// VREDUCEPS.BCST imm8 m32 k zmm -// VREDUCEPS.BCST imm8 m32 zmm -// -// Construct and append a VREDUCEPS.BCST instruction to the active function. -// Operates on the global context. -func VREDUCEPS_BCST(ops ...operand.Op) { ctx.VREDUCEPS_BCST(ops...) } - -// VREDUCEPS_BCST_Z: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VREDUCEPS.BCST.Z imm8 m32 k xmm -// VREDUCEPS.BCST.Z imm8 m32 k ymm -// VREDUCEPS.BCST.Z imm8 m32 k zmm -// -// Construct and append a VREDUCEPS.BCST.Z instruction to the active function. -func (c *Context) VREDUCEPS_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VREDUCEPS_BCST_Z(i, m, k, xyz)) -} - -// VREDUCEPS_BCST_Z: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VREDUCEPS.BCST.Z imm8 m32 k xmm -// VREDUCEPS.BCST.Z imm8 m32 k ymm -// VREDUCEPS.BCST.Z imm8 m32 k zmm -// -// Construct and append a VREDUCEPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VREDUCEPS_BCST_Z(i, m, k, xyz operand.Op) { ctx.VREDUCEPS_BCST_Z(i, m, k, xyz) } - -// VREDUCEPS_Z: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VREDUCEPS.Z imm8 m128 k xmm -// VREDUCEPS.Z imm8 m256 k ymm -// VREDUCEPS.Z imm8 xmm k xmm -// VREDUCEPS.Z imm8 ymm k ymm -// VREDUCEPS.Z imm8 m512 k zmm -// VREDUCEPS.Z imm8 zmm k zmm -// -// Construct and append a VREDUCEPS.Z instruction to the active function. -func (c *Context) VREDUCEPS_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VREDUCEPS_Z(i, mxyz, k, xyz)) -} - -// VREDUCEPS_Z: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VREDUCEPS.Z imm8 m128 k xmm -// VREDUCEPS.Z imm8 m256 k ymm -// VREDUCEPS.Z imm8 xmm k xmm -// VREDUCEPS.Z imm8 ymm k ymm -// VREDUCEPS.Z imm8 m512 k zmm -// VREDUCEPS.Z imm8 zmm k zmm -// -// Construct and append a VREDUCEPS.Z instruction to the active function. -// Operates on the global context. -func VREDUCEPS_Z(i, mxyz, k, xyz operand.Op) { ctx.VREDUCEPS_Z(i, mxyz, k, xyz) } - -// VREDUCESD: Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VREDUCESD imm8 m64 xmm k xmm -// VREDUCESD imm8 m64 xmm xmm -// VREDUCESD imm8 xmm xmm k xmm -// VREDUCESD imm8 xmm xmm xmm -// -// Construct and append a VREDUCESD instruction to the active function. -func (c *Context) VREDUCESD(ops ...operand.Op) { - c.addinstruction(x86.VREDUCESD(ops...)) -} - -// VREDUCESD: Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VREDUCESD imm8 m64 xmm k xmm -// VREDUCESD imm8 m64 xmm xmm -// VREDUCESD imm8 xmm xmm k xmm -// VREDUCESD imm8 xmm xmm xmm -// -// Construct and append a VREDUCESD instruction to the active function. -// Operates on the global context. -func VREDUCESD(ops ...operand.Op) { ctx.VREDUCESD(ops...) } - -// VREDUCESD_Z: Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VREDUCESD.Z imm8 m64 xmm k xmm -// VREDUCESD.Z imm8 xmm xmm k xmm -// -// Construct and append a VREDUCESD.Z instruction to the active function. -func (c *Context) VREDUCESD_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VREDUCESD_Z(i, mx, x, k, x1)) -} - -// VREDUCESD_Z: Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VREDUCESD.Z imm8 m64 xmm k xmm -// VREDUCESD.Z imm8 xmm xmm k xmm -// -// Construct and append a VREDUCESD.Z instruction to the active function. -// Operates on the global context. -func VREDUCESD_Z(i, mx, x, k, x1 operand.Op) { ctx.VREDUCESD_Z(i, mx, x, k, x1) } - -// VREDUCESS: Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VREDUCESS imm8 m32 xmm k xmm -// VREDUCESS imm8 m32 xmm xmm -// VREDUCESS imm8 xmm xmm k xmm -// VREDUCESS imm8 xmm xmm xmm -// -// Construct and append a VREDUCESS instruction to the active function. -func (c *Context) VREDUCESS(ops ...operand.Op) { - c.addinstruction(x86.VREDUCESS(ops...)) -} - -// VREDUCESS: Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VREDUCESS imm8 m32 xmm k xmm -// VREDUCESS imm8 m32 xmm xmm -// VREDUCESS imm8 xmm xmm k xmm -// VREDUCESS imm8 xmm xmm xmm -// -// Construct and append a VREDUCESS instruction to the active function. -// Operates on the global context. -func VREDUCESS(ops ...operand.Op) { ctx.VREDUCESS(ops...) } - -// VREDUCESS_Z: Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VREDUCESS.Z imm8 m32 xmm k xmm -// VREDUCESS.Z imm8 xmm xmm k xmm -// -// Construct and append a VREDUCESS.Z instruction to the active function. -func (c *Context) VREDUCESS_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VREDUCESS_Z(i, mx, x, k, x1)) -} - -// VREDUCESS_Z: Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VREDUCESS.Z imm8 m32 xmm k xmm -// VREDUCESS.Z imm8 xmm xmm k xmm -// -// Construct and append a VREDUCESS.Z instruction to the active function. -// Operates on the global context. -func VREDUCESS_Z(i, mx, x, k, x1 operand.Op) { ctx.VREDUCESS_Z(i, mx, x, k, x1) } - -// VRNDSCALEPD: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALEPD imm8 m128 k xmm -// VRNDSCALEPD imm8 m128 xmm -// VRNDSCALEPD imm8 m256 k ymm -// VRNDSCALEPD imm8 m256 ymm -// VRNDSCALEPD imm8 xmm k xmm -// VRNDSCALEPD imm8 xmm xmm -// VRNDSCALEPD imm8 ymm k ymm -// VRNDSCALEPD imm8 ymm ymm -// VRNDSCALEPD imm8 m512 k zmm -// VRNDSCALEPD imm8 m512 zmm -// VRNDSCALEPD imm8 zmm k zmm -// VRNDSCALEPD imm8 zmm zmm -// -// Construct and append a VRNDSCALEPD instruction to the active function. -func (c *Context) VRNDSCALEPD(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALEPD(ops...)) -} - -// VRNDSCALEPD: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALEPD imm8 m128 k xmm -// VRNDSCALEPD imm8 m128 xmm -// VRNDSCALEPD imm8 m256 k ymm -// VRNDSCALEPD imm8 m256 ymm -// VRNDSCALEPD imm8 xmm k xmm -// VRNDSCALEPD imm8 xmm xmm -// VRNDSCALEPD imm8 ymm k ymm -// VRNDSCALEPD imm8 ymm ymm -// VRNDSCALEPD imm8 m512 k zmm -// VRNDSCALEPD imm8 m512 zmm -// VRNDSCALEPD imm8 zmm k zmm -// VRNDSCALEPD imm8 zmm zmm -// -// Construct and append a VRNDSCALEPD instruction to the active function. -// Operates on the global context. -func VRNDSCALEPD(ops ...operand.Op) { ctx.VRNDSCALEPD(ops...) } - -// VRNDSCALEPD_BCST: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast). -// -// Forms: -// -// VRNDSCALEPD.BCST imm8 m64 k xmm -// VRNDSCALEPD.BCST imm8 m64 k ymm -// VRNDSCALEPD.BCST imm8 m64 xmm -// VRNDSCALEPD.BCST imm8 m64 ymm -// VRNDSCALEPD.BCST imm8 m64 k zmm -// VRNDSCALEPD.BCST imm8 m64 zmm -// -// Construct and append a VRNDSCALEPD.BCST instruction to the active function. -func (c *Context) VRNDSCALEPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALEPD_BCST(ops...)) -} - -// VRNDSCALEPD_BCST: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast). -// -// Forms: -// -// VRNDSCALEPD.BCST imm8 m64 k xmm -// VRNDSCALEPD.BCST imm8 m64 k ymm -// VRNDSCALEPD.BCST imm8 m64 xmm -// VRNDSCALEPD.BCST imm8 m64 ymm -// VRNDSCALEPD.BCST imm8 m64 k zmm -// VRNDSCALEPD.BCST imm8 m64 zmm -// -// Construct and append a VRNDSCALEPD.BCST instruction to the active function. -// Operates on the global context. -func VRNDSCALEPD_BCST(ops ...operand.Op) { ctx.VRNDSCALEPD_BCST(ops...) } - -// VRNDSCALEPD_BCST_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPD.BCST.Z imm8 m64 k xmm -// VRNDSCALEPD.BCST.Z imm8 m64 k ymm -// VRNDSCALEPD.BCST.Z imm8 m64 k zmm -// -// Construct and append a VRNDSCALEPD.BCST.Z instruction to the active function. -func (c *Context) VRNDSCALEPD_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VRNDSCALEPD_BCST_Z(i, m, k, xyz)) -} - -// VRNDSCALEPD_BCST_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPD.BCST.Z imm8 m64 k xmm -// VRNDSCALEPD.BCST.Z imm8 m64 k ymm -// VRNDSCALEPD.BCST.Z imm8 m64 k zmm -// -// Construct and append a VRNDSCALEPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALEPD_BCST_Z(i, m, k, xyz operand.Op) { ctx.VRNDSCALEPD_BCST_Z(i, m, k, xyz) } - -// VRNDSCALEPD_SAE: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALEPD.SAE imm8 zmm k zmm -// VRNDSCALEPD.SAE imm8 zmm zmm -// -// Construct and append a VRNDSCALEPD.SAE instruction to the active function. -func (c *Context) VRNDSCALEPD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALEPD_SAE(ops...)) -} - -// VRNDSCALEPD_SAE: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALEPD.SAE imm8 zmm k zmm -// VRNDSCALEPD.SAE imm8 zmm zmm -// -// Construct and append a VRNDSCALEPD.SAE instruction to the active function. -// Operates on the global context. -func VRNDSCALEPD_SAE(ops ...operand.Op) { ctx.VRNDSCALEPD_SAE(ops...) } - -// VRNDSCALEPD_SAE_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPD.SAE.Z imm8 zmm k zmm -// -// Construct and append a VRNDSCALEPD.SAE.Z instruction to the active function. -func (c *Context) VRNDSCALEPD_SAE_Z(i, z, k, z1 operand.Op) { - c.addinstruction(x86.VRNDSCALEPD_SAE_Z(i, z, k, z1)) -} - -// VRNDSCALEPD_SAE_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPD.SAE.Z imm8 zmm k zmm -// -// Construct and append a VRNDSCALEPD.SAE.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALEPD_SAE_Z(i, z, k, z1 operand.Op) { ctx.VRNDSCALEPD_SAE_Z(i, z, k, z1) } - -// VRNDSCALEPD_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPD.Z imm8 m128 k xmm -// VRNDSCALEPD.Z imm8 m256 k ymm -// VRNDSCALEPD.Z imm8 xmm k xmm -// VRNDSCALEPD.Z imm8 ymm k ymm -// VRNDSCALEPD.Z imm8 m512 k zmm -// VRNDSCALEPD.Z imm8 zmm k zmm -// -// Construct and append a VRNDSCALEPD.Z instruction to the active function. -func (c *Context) VRNDSCALEPD_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VRNDSCALEPD_Z(i, mxyz, k, xyz)) -} - -// VRNDSCALEPD_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPD.Z imm8 m128 k xmm -// VRNDSCALEPD.Z imm8 m256 k ymm -// VRNDSCALEPD.Z imm8 xmm k xmm -// VRNDSCALEPD.Z imm8 ymm k ymm -// VRNDSCALEPD.Z imm8 m512 k zmm -// VRNDSCALEPD.Z imm8 zmm k zmm -// -// Construct and append a VRNDSCALEPD.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALEPD_Z(i, mxyz, k, xyz operand.Op) { ctx.VRNDSCALEPD_Z(i, mxyz, k, xyz) } - -// VRNDSCALEPS: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALEPS imm8 m128 k xmm -// VRNDSCALEPS imm8 m128 xmm -// VRNDSCALEPS imm8 m256 k ymm -// VRNDSCALEPS imm8 m256 ymm -// VRNDSCALEPS imm8 xmm k xmm -// VRNDSCALEPS imm8 xmm xmm -// VRNDSCALEPS imm8 ymm k ymm -// VRNDSCALEPS imm8 ymm ymm -// VRNDSCALEPS imm8 m512 k zmm -// VRNDSCALEPS imm8 m512 zmm -// VRNDSCALEPS imm8 zmm k zmm -// VRNDSCALEPS imm8 zmm zmm -// -// Construct and append a VRNDSCALEPS instruction to the active function. -func (c *Context) VRNDSCALEPS(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALEPS(ops...)) -} - -// VRNDSCALEPS: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALEPS imm8 m128 k xmm -// VRNDSCALEPS imm8 m128 xmm -// VRNDSCALEPS imm8 m256 k ymm -// VRNDSCALEPS imm8 m256 ymm -// VRNDSCALEPS imm8 xmm k xmm -// VRNDSCALEPS imm8 xmm xmm -// VRNDSCALEPS imm8 ymm k ymm -// VRNDSCALEPS imm8 ymm ymm -// VRNDSCALEPS imm8 m512 k zmm -// VRNDSCALEPS imm8 m512 zmm -// VRNDSCALEPS imm8 zmm k zmm -// VRNDSCALEPS imm8 zmm zmm -// -// Construct and append a VRNDSCALEPS instruction to the active function. -// Operates on the global context. -func VRNDSCALEPS(ops ...operand.Op) { ctx.VRNDSCALEPS(ops...) } - -// VRNDSCALEPS_BCST: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast). -// -// Forms: -// -// VRNDSCALEPS.BCST imm8 m32 k xmm -// VRNDSCALEPS.BCST imm8 m32 k ymm -// VRNDSCALEPS.BCST imm8 m32 xmm -// VRNDSCALEPS.BCST imm8 m32 ymm -// VRNDSCALEPS.BCST imm8 m32 k zmm -// VRNDSCALEPS.BCST imm8 m32 zmm -// -// Construct and append a VRNDSCALEPS.BCST instruction to the active function. -func (c *Context) VRNDSCALEPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALEPS_BCST(ops...)) -} - -// VRNDSCALEPS_BCST: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast). -// -// Forms: -// -// VRNDSCALEPS.BCST imm8 m32 k xmm -// VRNDSCALEPS.BCST imm8 m32 k ymm -// VRNDSCALEPS.BCST imm8 m32 xmm -// VRNDSCALEPS.BCST imm8 m32 ymm -// VRNDSCALEPS.BCST imm8 m32 k zmm -// VRNDSCALEPS.BCST imm8 m32 zmm -// -// Construct and append a VRNDSCALEPS.BCST instruction to the active function. -// Operates on the global context. -func VRNDSCALEPS_BCST(ops ...operand.Op) { ctx.VRNDSCALEPS_BCST(ops...) } - -// VRNDSCALEPS_BCST_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPS.BCST.Z imm8 m32 k xmm -// VRNDSCALEPS.BCST.Z imm8 m32 k ymm -// VRNDSCALEPS.BCST.Z imm8 m32 k zmm -// -// Construct and append a VRNDSCALEPS.BCST.Z instruction to the active function. -func (c *Context) VRNDSCALEPS_BCST_Z(i, m, k, xyz operand.Op) { - c.addinstruction(x86.VRNDSCALEPS_BCST_Z(i, m, k, xyz)) -} - -// VRNDSCALEPS_BCST_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPS.BCST.Z imm8 m32 k xmm -// VRNDSCALEPS.BCST.Z imm8 m32 k ymm -// VRNDSCALEPS.BCST.Z imm8 m32 k zmm -// -// Construct and append a VRNDSCALEPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALEPS_BCST_Z(i, m, k, xyz operand.Op) { ctx.VRNDSCALEPS_BCST_Z(i, m, k, xyz) } - -// VRNDSCALEPS_SAE: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALEPS.SAE imm8 zmm k zmm -// VRNDSCALEPS.SAE imm8 zmm zmm -// -// Construct and append a VRNDSCALEPS.SAE instruction to the active function. -func (c *Context) VRNDSCALEPS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALEPS_SAE(ops...)) -} - -// VRNDSCALEPS_SAE: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALEPS.SAE imm8 zmm k zmm -// VRNDSCALEPS.SAE imm8 zmm zmm -// -// Construct and append a VRNDSCALEPS.SAE instruction to the active function. -// Operates on the global context. -func VRNDSCALEPS_SAE(ops ...operand.Op) { ctx.VRNDSCALEPS_SAE(ops...) } - -// VRNDSCALEPS_SAE_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPS.SAE.Z imm8 zmm k zmm -// -// Construct and append a VRNDSCALEPS.SAE.Z instruction to the active function. -func (c *Context) VRNDSCALEPS_SAE_Z(i, z, k, z1 operand.Op) { - c.addinstruction(x86.VRNDSCALEPS_SAE_Z(i, z, k, z1)) -} - -// VRNDSCALEPS_SAE_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPS.SAE.Z imm8 zmm k zmm -// -// Construct and append a VRNDSCALEPS.SAE.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALEPS_SAE_Z(i, z, k, z1 operand.Op) { ctx.VRNDSCALEPS_SAE_Z(i, z, k, z1) } - -// VRNDSCALEPS_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPS.Z imm8 m128 k xmm -// VRNDSCALEPS.Z imm8 m256 k ymm -// VRNDSCALEPS.Z imm8 xmm k xmm -// VRNDSCALEPS.Z imm8 ymm k ymm -// VRNDSCALEPS.Z imm8 m512 k zmm -// VRNDSCALEPS.Z imm8 zmm k zmm -// -// Construct and append a VRNDSCALEPS.Z instruction to the active function. -func (c *Context) VRNDSCALEPS_Z(i, mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VRNDSCALEPS_Z(i, mxyz, k, xyz)) -} - -// VRNDSCALEPS_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPS.Z imm8 m128 k xmm -// VRNDSCALEPS.Z imm8 m256 k ymm -// VRNDSCALEPS.Z imm8 xmm k xmm -// VRNDSCALEPS.Z imm8 ymm k ymm -// VRNDSCALEPS.Z imm8 m512 k zmm -// VRNDSCALEPS.Z imm8 zmm k zmm -// -// Construct and append a VRNDSCALEPS.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALEPS_Z(i, mxyz, k, xyz operand.Op) { ctx.VRNDSCALEPS_Z(i, mxyz, k, xyz) } - -// VRNDSCALESD: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALESD imm8 m64 xmm k xmm -// VRNDSCALESD imm8 m64 xmm xmm -// VRNDSCALESD imm8 xmm xmm k xmm -// VRNDSCALESD imm8 xmm xmm xmm -// -// Construct and append a VRNDSCALESD instruction to the active function. -func (c *Context) VRNDSCALESD(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALESD(ops...)) -} - -// VRNDSCALESD: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALESD imm8 m64 xmm k xmm -// VRNDSCALESD imm8 m64 xmm xmm -// VRNDSCALESD imm8 xmm xmm k xmm -// VRNDSCALESD imm8 xmm xmm xmm -// -// Construct and append a VRNDSCALESD instruction to the active function. -// Operates on the global context. -func VRNDSCALESD(ops ...operand.Op) { ctx.VRNDSCALESD(ops...) } - -// VRNDSCALESD_SAE: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALESD.SAE imm8 xmm xmm k xmm -// VRNDSCALESD.SAE imm8 xmm xmm xmm -// -// Construct and append a VRNDSCALESD.SAE instruction to the active function. -func (c *Context) VRNDSCALESD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALESD_SAE(ops...)) -} - -// VRNDSCALESD_SAE: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALESD.SAE imm8 xmm xmm k xmm -// VRNDSCALESD.SAE imm8 xmm xmm xmm -// -// Construct and append a VRNDSCALESD.SAE instruction to the active function. -// Operates on the global context. -func VRNDSCALESD_SAE(ops ...operand.Op) { ctx.VRNDSCALESD_SAE(ops...) } - -// VRNDSCALESD_SAE_Z: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALESD.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VRNDSCALESD.SAE.Z instruction to the active function. -func (c *Context) VRNDSCALESD_SAE_Z(i, x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VRNDSCALESD_SAE_Z(i, x, x1, k, x2)) -} - -// VRNDSCALESD_SAE_Z: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALESD.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VRNDSCALESD.SAE.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALESD_SAE_Z(i, x, x1, k, x2 operand.Op) { ctx.VRNDSCALESD_SAE_Z(i, x, x1, k, x2) } - -// VRNDSCALESD_Z: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALESD.Z imm8 m64 xmm k xmm -// VRNDSCALESD.Z imm8 xmm xmm k xmm -// -// Construct and append a VRNDSCALESD.Z instruction to the active function. -func (c *Context) VRNDSCALESD_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRNDSCALESD_Z(i, mx, x, k, x1)) -} - -// VRNDSCALESD_Z: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALESD.Z imm8 m64 xmm k xmm -// VRNDSCALESD.Z imm8 xmm xmm k xmm -// -// Construct and append a VRNDSCALESD.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALESD_Z(i, mx, x, k, x1 operand.Op) { ctx.VRNDSCALESD_Z(i, mx, x, k, x1) } - -// VRNDSCALESS: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALESS imm8 m32 xmm k xmm -// VRNDSCALESS imm8 m32 xmm xmm -// VRNDSCALESS imm8 xmm xmm k xmm -// VRNDSCALESS imm8 xmm xmm xmm -// -// Construct and append a VRNDSCALESS instruction to the active function. -func (c *Context) VRNDSCALESS(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALESS(ops...)) -} - -// VRNDSCALESS: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALESS imm8 m32 xmm k xmm -// VRNDSCALESS imm8 m32 xmm xmm -// VRNDSCALESS imm8 xmm xmm k xmm -// VRNDSCALESS imm8 xmm xmm xmm -// -// Construct and append a VRNDSCALESS instruction to the active function. -// Operates on the global context. -func VRNDSCALESS(ops ...operand.Op) { ctx.VRNDSCALESS(ops...) } - -// VRNDSCALESS_SAE: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALESS.SAE imm8 xmm xmm k xmm -// VRNDSCALESS.SAE imm8 xmm xmm xmm -// -// Construct and append a VRNDSCALESS.SAE instruction to the active function. -func (c *Context) VRNDSCALESS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRNDSCALESS_SAE(ops...)) -} - -// VRNDSCALESS_SAE: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALESS.SAE imm8 xmm xmm k xmm -// VRNDSCALESS.SAE imm8 xmm xmm xmm -// -// Construct and append a VRNDSCALESS.SAE instruction to the active function. -// Operates on the global context. -func VRNDSCALESS_SAE(ops ...operand.Op) { ctx.VRNDSCALESS_SAE(ops...) } - -// VRNDSCALESS_SAE_Z: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALESS.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VRNDSCALESS.SAE.Z instruction to the active function. -func (c *Context) VRNDSCALESS_SAE_Z(i, x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VRNDSCALESS_SAE_Z(i, x, x1, k, x2)) -} - -// VRNDSCALESS_SAE_Z: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALESS.SAE.Z imm8 xmm xmm k xmm -// -// Construct and append a VRNDSCALESS.SAE.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALESS_SAE_Z(i, x, x1, k, x2 operand.Op) { ctx.VRNDSCALESS_SAE_Z(i, x, x1, k, x2) } - -// VRNDSCALESS_Z: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALESS.Z imm8 m32 xmm k xmm -// VRNDSCALESS.Z imm8 xmm xmm k xmm -// -// Construct and append a VRNDSCALESS.Z instruction to the active function. -func (c *Context) VRNDSCALESS_Z(i, mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRNDSCALESS_Z(i, mx, x, k, x1)) -} - -// VRNDSCALESS_Z: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALESS.Z imm8 m32 xmm k xmm -// VRNDSCALESS.Z imm8 xmm xmm k xmm -// -// Construct and append a VRNDSCALESS.Z instruction to the active function. -// Operates on the global context. -func VRNDSCALESS_Z(i, mx, x, k, x1 operand.Op) { ctx.VRNDSCALESS_Z(i, mx, x, k, x1) } - -// VROUNDPD: Round Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VROUNDPD imm8 m128 xmm -// VROUNDPD imm8 m256 ymm -// VROUNDPD imm8 xmm xmm -// VROUNDPD imm8 ymm ymm -// -// Construct and append a VROUNDPD instruction to the active function. -func (c *Context) VROUNDPD(i, mxy, xy operand.Op) { - c.addinstruction(x86.VROUNDPD(i, mxy, xy)) -} - -// VROUNDPD: Round Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VROUNDPD imm8 m128 xmm -// VROUNDPD imm8 m256 ymm -// VROUNDPD imm8 xmm xmm -// VROUNDPD imm8 ymm ymm -// -// Construct and append a VROUNDPD instruction to the active function. -// Operates on the global context. -func VROUNDPD(i, mxy, xy operand.Op) { ctx.VROUNDPD(i, mxy, xy) } - -// VROUNDPS: Round Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VROUNDPS imm8 m128 xmm -// VROUNDPS imm8 m256 ymm -// VROUNDPS imm8 xmm xmm -// VROUNDPS imm8 ymm ymm -// -// Construct and append a VROUNDPS instruction to the active function. -func (c *Context) VROUNDPS(i, mxy, xy operand.Op) { - c.addinstruction(x86.VROUNDPS(i, mxy, xy)) -} - -// VROUNDPS: Round Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VROUNDPS imm8 m128 xmm -// VROUNDPS imm8 m256 ymm -// VROUNDPS imm8 xmm xmm -// VROUNDPS imm8 ymm ymm -// -// Construct and append a VROUNDPS instruction to the active function. -// Operates on the global context. -func VROUNDPS(i, mxy, xy operand.Op) { ctx.VROUNDPS(i, mxy, xy) } - -// VROUNDSD: Round Scalar Double Precision Floating-Point Values. -// -// Forms: -// -// VROUNDSD imm8 m64 xmm xmm -// VROUNDSD imm8 xmm xmm xmm -// -// Construct and append a VROUNDSD instruction to the active function. -func (c *Context) VROUNDSD(i, mx, x, x1 operand.Op) { - c.addinstruction(x86.VROUNDSD(i, mx, x, x1)) -} - -// VROUNDSD: Round Scalar Double Precision Floating-Point Values. -// -// Forms: -// -// VROUNDSD imm8 m64 xmm xmm -// VROUNDSD imm8 xmm xmm xmm -// -// Construct and append a VROUNDSD instruction to the active function. -// Operates on the global context. -func VROUNDSD(i, mx, x, x1 operand.Op) { ctx.VROUNDSD(i, mx, x, x1) } - -// VROUNDSS: Round Scalar Single Precision Floating-Point Values. -// -// Forms: -// -// VROUNDSS imm8 m32 xmm xmm -// VROUNDSS imm8 xmm xmm xmm -// -// Construct and append a VROUNDSS instruction to the active function. -func (c *Context) VROUNDSS(i, mx, x, x1 operand.Op) { - c.addinstruction(x86.VROUNDSS(i, mx, x, x1)) -} - -// VROUNDSS: Round Scalar Single Precision Floating-Point Values. -// -// Forms: -// -// VROUNDSS imm8 m32 xmm xmm -// VROUNDSS imm8 xmm xmm xmm -// -// Construct and append a VROUNDSS instruction to the active function. -// Operates on the global context. -func VROUNDSS(i, mx, x, x1 operand.Op) { ctx.VROUNDSS(i, mx, x, x1) } - -// VRSQRT14PD: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VRSQRT14PD m128 k xmm -// VRSQRT14PD m128 xmm -// VRSQRT14PD m256 k ymm -// VRSQRT14PD m256 ymm -// VRSQRT14PD xmm k xmm -// VRSQRT14PD xmm xmm -// VRSQRT14PD ymm k ymm -// VRSQRT14PD ymm ymm -// VRSQRT14PD m512 k zmm -// VRSQRT14PD m512 zmm -// VRSQRT14PD zmm k zmm -// VRSQRT14PD zmm zmm -// -// Construct and append a VRSQRT14PD instruction to the active function. -func (c *Context) VRSQRT14PD(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT14PD(ops...)) -} - -// VRSQRT14PD: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VRSQRT14PD m128 k xmm -// VRSQRT14PD m128 xmm -// VRSQRT14PD m256 k ymm -// VRSQRT14PD m256 ymm -// VRSQRT14PD xmm k xmm -// VRSQRT14PD xmm xmm -// VRSQRT14PD ymm k ymm -// VRSQRT14PD ymm ymm -// VRSQRT14PD m512 k zmm -// VRSQRT14PD m512 zmm -// VRSQRT14PD zmm k zmm -// VRSQRT14PD zmm zmm -// -// Construct and append a VRSQRT14PD instruction to the active function. -// Operates on the global context. -func VRSQRT14PD(ops ...operand.Op) { ctx.VRSQRT14PD(ops...) } - -// VRSQRT14PD_BCST: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRSQRT14PD.BCST m64 k xmm -// VRSQRT14PD.BCST m64 k ymm -// VRSQRT14PD.BCST m64 xmm -// VRSQRT14PD.BCST m64 ymm -// VRSQRT14PD.BCST m64 k zmm -// VRSQRT14PD.BCST m64 zmm -// -// Construct and append a VRSQRT14PD.BCST instruction to the active function. -func (c *Context) VRSQRT14PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT14PD_BCST(ops...)) -} - -// VRSQRT14PD_BCST: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRSQRT14PD.BCST m64 k xmm -// VRSQRT14PD.BCST m64 k ymm -// VRSQRT14PD.BCST m64 xmm -// VRSQRT14PD.BCST m64 ymm -// VRSQRT14PD.BCST m64 k zmm -// VRSQRT14PD.BCST m64 zmm -// -// Construct and append a VRSQRT14PD.BCST instruction to the active function. -// Operates on the global context. -func VRSQRT14PD_BCST(ops ...operand.Op) { ctx.VRSQRT14PD_BCST(ops...) } - -// VRSQRT14PD_BCST_Z: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT14PD.BCST.Z m64 k xmm -// VRSQRT14PD.BCST.Z m64 k ymm -// VRSQRT14PD.BCST.Z m64 k zmm -// -// Construct and append a VRSQRT14PD.BCST.Z instruction to the active function. -func (c *Context) VRSQRT14PD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VRSQRT14PD_BCST_Z(m, k, xyz)) -} - -// VRSQRT14PD_BCST_Z: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT14PD.BCST.Z m64 k xmm -// VRSQRT14PD.BCST.Z m64 k ymm -// VRSQRT14PD.BCST.Z m64 k zmm -// -// Construct and append a VRSQRT14PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VRSQRT14PD_BCST_Z(m, k, xyz operand.Op) { ctx.VRSQRT14PD_BCST_Z(m, k, xyz) } - -// VRSQRT14PD_Z: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRSQRT14PD.Z m128 k xmm -// VRSQRT14PD.Z m256 k ymm -// VRSQRT14PD.Z xmm k xmm -// VRSQRT14PD.Z ymm k ymm -// VRSQRT14PD.Z m512 k zmm -// VRSQRT14PD.Z zmm k zmm -// -// Construct and append a VRSQRT14PD.Z instruction to the active function. -func (c *Context) VRSQRT14PD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VRSQRT14PD_Z(mxyz, k, xyz)) -} - -// VRSQRT14PD_Z: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRSQRT14PD.Z m128 k xmm -// VRSQRT14PD.Z m256 k ymm -// VRSQRT14PD.Z xmm k xmm -// VRSQRT14PD.Z ymm k ymm -// VRSQRT14PD.Z m512 k zmm -// VRSQRT14PD.Z zmm k zmm -// -// Construct and append a VRSQRT14PD.Z instruction to the active function. -// Operates on the global context. -func VRSQRT14PD_Z(mxyz, k, xyz operand.Op) { ctx.VRSQRT14PD_Z(mxyz, k, xyz) } - -// VRSQRT14PS: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRSQRT14PS m128 k xmm -// VRSQRT14PS m128 xmm -// VRSQRT14PS m256 k ymm -// VRSQRT14PS m256 ymm -// VRSQRT14PS xmm k xmm -// VRSQRT14PS xmm xmm -// VRSQRT14PS ymm k ymm -// VRSQRT14PS ymm ymm -// VRSQRT14PS m512 k zmm -// VRSQRT14PS m512 zmm -// VRSQRT14PS zmm k zmm -// VRSQRT14PS zmm zmm -// -// Construct and append a VRSQRT14PS instruction to the active function. -func (c *Context) VRSQRT14PS(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT14PS(ops...)) -} - -// VRSQRT14PS: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRSQRT14PS m128 k xmm -// VRSQRT14PS m128 xmm -// VRSQRT14PS m256 k ymm -// VRSQRT14PS m256 ymm -// VRSQRT14PS xmm k xmm -// VRSQRT14PS xmm xmm -// VRSQRT14PS ymm k ymm -// VRSQRT14PS ymm ymm -// VRSQRT14PS m512 k zmm -// VRSQRT14PS m512 zmm -// VRSQRT14PS zmm k zmm -// VRSQRT14PS zmm zmm -// -// Construct and append a VRSQRT14PS instruction to the active function. -// Operates on the global context. -func VRSQRT14PS(ops ...operand.Op) { ctx.VRSQRT14PS(ops...) } - -// VRSQRT14PS_BCST: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRSQRT14PS.BCST m32 k xmm -// VRSQRT14PS.BCST m32 k ymm -// VRSQRT14PS.BCST m32 xmm -// VRSQRT14PS.BCST m32 ymm -// VRSQRT14PS.BCST m32 k zmm -// VRSQRT14PS.BCST m32 zmm -// -// Construct and append a VRSQRT14PS.BCST instruction to the active function. -func (c *Context) VRSQRT14PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT14PS_BCST(ops...)) -} - -// VRSQRT14PS_BCST: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRSQRT14PS.BCST m32 k xmm -// VRSQRT14PS.BCST m32 k ymm -// VRSQRT14PS.BCST m32 xmm -// VRSQRT14PS.BCST m32 ymm -// VRSQRT14PS.BCST m32 k zmm -// VRSQRT14PS.BCST m32 zmm -// -// Construct and append a VRSQRT14PS.BCST instruction to the active function. -// Operates on the global context. -func VRSQRT14PS_BCST(ops ...operand.Op) { ctx.VRSQRT14PS_BCST(ops...) } - -// VRSQRT14PS_BCST_Z: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT14PS.BCST.Z m32 k xmm -// VRSQRT14PS.BCST.Z m32 k ymm -// VRSQRT14PS.BCST.Z m32 k zmm -// -// Construct and append a VRSQRT14PS.BCST.Z instruction to the active function. -func (c *Context) VRSQRT14PS_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VRSQRT14PS_BCST_Z(m, k, xyz)) -} - -// VRSQRT14PS_BCST_Z: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT14PS.BCST.Z m32 k xmm -// VRSQRT14PS.BCST.Z m32 k ymm -// VRSQRT14PS.BCST.Z m32 k zmm -// -// Construct and append a VRSQRT14PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VRSQRT14PS_BCST_Z(m, k, xyz operand.Op) { ctx.VRSQRT14PS_BCST_Z(m, k, xyz) } - -// VRSQRT14PS_Z: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRSQRT14PS.Z m128 k xmm -// VRSQRT14PS.Z m256 k ymm -// VRSQRT14PS.Z xmm k xmm -// VRSQRT14PS.Z ymm k ymm -// VRSQRT14PS.Z m512 k zmm -// VRSQRT14PS.Z zmm k zmm -// -// Construct and append a VRSQRT14PS.Z instruction to the active function. -func (c *Context) VRSQRT14PS_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VRSQRT14PS_Z(mxyz, k, xyz)) -} - -// VRSQRT14PS_Z: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRSQRT14PS.Z m128 k xmm -// VRSQRT14PS.Z m256 k ymm -// VRSQRT14PS.Z xmm k xmm -// VRSQRT14PS.Z ymm k ymm -// VRSQRT14PS.Z m512 k zmm -// VRSQRT14PS.Z zmm k zmm -// -// Construct and append a VRSQRT14PS.Z instruction to the active function. -// Operates on the global context. -func VRSQRT14PS_Z(mxyz, k, xyz operand.Op) { ctx.VRSQRT14PS_Z(mxyz, k, xyz) } - -// VRSQRT14SD: Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VRSQRT14SD m64 xmm k xmm -// VRSQRT14SD m64 xmm xmm -// VRSQRT14SD xmm xmm k xmm -// VRSQRT14SD xmm xmm xmm -// -// Construct and append a VRSQRT14SD instruction to the active function. -func (c *Context) VRSQRT14SD(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT14SD(ops...)) -} - -// VRSQRT14SD: Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VRSQRT14SD m64 xmm k xmm -// VRSQRT14SD m64 xmm xmm -// VRSQRT14SD xmm xmm k xmm -// VRSQRT14SD xmm xmm xmm -// -// Construct and append a VRSQRT14SD instruction to the active function. -// Operates on the global context. -func VRSQRT14SD(ops ...operand.Op) { ctx.VRSQRT14SD(ops...) } - -// VRSQRT14SD_Z: Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRSQRT14SD.Z m64 xmm k xmm -// VRSQRT14SD.Z xmm xmm k xmm -// -// Construct and append a VRSQRT14SD.Z instruction to the active function. -func (c *Context) VRSQRT14SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRSQRT14SD_Z(mx, x, k, x1)) -} - -// VRSQRT14SD_Z: Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRSQRT14SD.Z m64 xmm k xmm -// VRSQRT14SD.Z xmm xmm k xmm -// -// Construct and append a VRSQRT14SD.Z instruction to the active function. -// Operates on the global context. -func VRSQRT14SD_Z(mx, x, k, x1 operand.Op) { ctx.VRSQRT14SD_Z(mx, x, k, x1) } - -// VRSQRT14SS: Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VRSQRT14SS m32 xmm k xmm -// VRSQRT14SS m32 xmm xmm -// VRSQRT14SS xmm xmm k xmm -// VRSQRT14SS xmm xmm xmm -// -// Construct and append a VRSQRT14SS instruction to the active function. -func (c *Context) VRSQRT14SS(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT14SS(ops...)) -} - -// VRSQRT14SS: Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VRSQRT14SS m32 xmm k xmm -// VRSQRT14SS m32 xmm xmm -// VRSQRT14SS xmm xmm k xmm -// VRSQRT14SS xmm xmm xmm -// -// Construct and append a VRSQRT14SS instruction to the active function. -// Operates on the global context. -func VRSQRT14SS(ops ...operand.Op) { ctx.VRSQRT14SS(ops...) } - -// VRSQRT14SS_Z: Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRSQRT14SS.Z m32 xmm k xmm -// VRSQRT14SS.Z xmm xmm k xmm -// -// Construct and append a VRSQRT14SS.Z instruction to the active function. -func (c *Context) VRSQRT14SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRSQRT14SS_Z(mx, x, k, x1)) -} - -// VRSQRT14SS_Z: Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRSQRT14SS.Z m32 xmm k xmm -// VRSQRT14SS.Z xmm xmm k xmm -// -// Construct and append a VRSQRT14SS.Z instruction to the active function. -// Operates on the global context. -func VRSQRT14SS_Z(mx, x, k, x1 operand.Op) { ctx.VRSQRT14SS_Z(mx, x, k, x1) } - -// VRSQRT28PD: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28PD m512 k zmm -// VRSQRT28PD m512 zmm -// VRSQRT28PD zmm k zmm -// VRSQRT28PD zmm zmm -// -// Construct and append a VRSQRT28PD instruction to the active function. -func (c *Context) VRSQRT28PD(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28PD(ops...)) -} - -// VRSQRT28PD: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28PD m512 k zmm -// VRSQRT28PD m512 zmm -// VRSQRT28PD zmm k zmm -// VRSQRT28PD zmm zmm -// -// Construct and append a VRSQRT28PD instruction to the active function. -// Operates on the global context. -func VRSQRT28PD(ops ...operand.Op) { ctx.VRSQRT28PD(ops...) } - -// VRSQRT28PD_BCST: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRSQRT28PD.BCST m64 k zmm -// VRSQRT28PD.BCST m64 zmm -// -// Construct and append a VRSQRT28PD.BCST instruction to the active function. -func (c *Context) VRSQRT28PD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28PD_BCST(ops...)) -} - -// VRSQRT28PD_BCST: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRSQRT28PD.BCST m64 k zmm -// VRSQRT28PD.BCST m64 zmm -// -// Construct and append a VRSQRT28PD.BCST instruction to the active function. -// Operates on the global context. -func VRSQRT28PD_BCST(ops ...operand.Op) { ctx.VRSQRT28PD_BCST(ops...) } - -// VRSQRT28PD_BCST_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PD.BCST.Z m64 k zmm -// -// Construct and append a VRSQRT28PD.BCST.Z instruction to the active function. -func (c *Context) VRSQRT28PD_BCST_Z(m, k, z operand.Op) { - c.addinstruction(x86.VRSQRT28PD_BCST_Z(m, k, z)) -} - -// VRSQRT28PD_BCST_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PD.BCST.Z m64 k zmm -// -// Construct and append a VRSQRT28PD.BCST.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28PD_BCST_Z(m, k, z operand.Op) { ctx.VRSQRT28PD_BCST_Z(m, k, z) } - -// VRSQRT28PD_SAE: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28PD.SAE zmm k zmm -// VRSQRT28PD.SAE zmm zmm -// -// Construct and append a VRSQRT28PD.SAE instruction to the active function. -func (c *Context) VRSQRT28PD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28PD_SAE(ops...)) -} - -// VRSQRT28PD_SAE: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28PD.SAE zmm k zmm -// VRSQRT28PD.SAE zmm zmm -// -// Construct and append a VRSQRT28PD.SAE instruction to the active function. -// Operates on the global context. -func VRSQRT28PD_SAE(ops ...operand.Op) { ctx.VRSQRT28PD_SAE(ops...) } - -// VRSQRT28PD_SAE_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PD.SAE.Z zmm k zmm -// -// Construct and append a VRSQRT28PD.SAE.Z instruction to the active function. -func (c *Context) VRSQRT28PD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VRSQRT28PD_SAE_Z(z, k, z1)) -} - -// VRSQRT28PD_SAE_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PD.SAE.Z zmm k zmm -// -// Construct and append a VRSQRT28PD.SAE.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28PD_SAE_Z(z, k, z1 operand.Op) { ctx.VRSQRT28PD_SAE_Z(z, k, z1) } - -// VRSQRT28PD_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28PD.Z m512 k zmm -// VRSQRT28PD.Z zmm k zmm -// -// Construct and append a VRSQRT28PD.Z instruction to the active function. -func (c *Context) VRSQRT28PD_Z(mz, k, z operand.Op) { - c.addinstruction(x86.VRSQRT28PD_Z(mz, k, z)) -} - -// VRSQRT28PD_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28PD.Z m512 k zmm -// VRSQRT28PD.Z zmm k zmm -// -// Construct and append a VRSQRT28PD.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28PD_Z(mz, k, z operand.Op) { ctx.VRSQRT28PD_Z(mz, k, z) } - -// VRSQRT28PS: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28PS m512 k zmm -// VRSQRT28PS m512 zmm -// VRSQRT28PS zmm k zmm -// VRSQRT28PS zmm zmm -// -// Construct and append a VRSQRT28PS instruction to the active function. -func (c *Context) VRSQRT28PS(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28PS(ops...)) -} - -// VRSQRT28PS: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28PS m512 k zmm -// VRSQRT28PS m512 zmm -// VRSQRT28PS zmm k zmm -// VRSQRT28PS zmm zmm -// -// Construct and append a VRSQRT28PS instruction to the active function. -// Operates on the global context. -func VRSQRT28PS(ops ...operand.Op) { ctx.VRSQRT28PS(ops...) } - -// VRSQRT28PS_BCST: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRSQRT28PS.BCST m32 k zmm -// VRSQRT28PS.BCST m32 zmm -// -// Construct and append a VRSQRT28PS.BCST instruction to the active function. -func (c *Context) VRSQRT28PS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28PS_BCST(ops...)) -} - -// VRSQRT28PS_BCST: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRSQRT28PS.BCST m32 k zmm -// VRSQRT28PS.BCST m32 zmm -// -// Construct and append a VRSQRT28PS.BCST instruction to the active function. -// Operates on the global context. -func VRSQRT28PS_BCST(ops ...operand.Op) { ctx.VRSQRT28PS_BCST(ops...) } - -// VRSQRT28PS_BCST_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PS.BCST.Z m32 k zmm -// -// Construct and append a VRSQRT28PS.BCST.Z instruction to the active function. -func (c *Context) VRSQRT28PS_BCST_Z(m, k, z operand.Op) { - c.addinstruction(x86.VRSQRT28PS_BCST_Z(m, k, z)) -} - -// VRSQRT28PS_BCST_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PS.BCST.Z m32 k zmm -// -// Construct and append a VRSQRT28PS.BCST.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28PS_BCST_Z(m, k, z operand.Op) { ctx.VRSQRT28PS_BCST_Z(m, k, z) } - -// VRSQRT28PS_SAE: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28PS.SAE zmm k zmm -// VRSQRT28PS.SAE zmm zmm -// -// Construct and append a VRSQRT28PS.SAE instruction to the active function. -func (c *Context) VRSQRT28PS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28PS_SAE(ops...)) -} - -// VRSQRT28PS_SAE: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28PS.SAE zmm k zmm -// VRSQRT28PS.SAE zmm zmm -// -// Construct and append a VRSQRT28PS.SAE instruction to the active function. -// Operates on the global context. -func VRSQRT28PS_SAE(ops ...operand.Op) { ctx.VRSQRT28PS_SAE(ops...) } - -// VRSQRT28PS_SAE_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PS.SAE.Z zmm k zmm -// -// Construct and append a VRSQRT28PS.SAE.Z instruction to the active function. -func (c *Context) VRSQRT28PS_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VRSQRT28PS_SAE_Z(z, k, z1)) -} - -// VRSQRT28PS_SAE_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PS.SAE.Z zmm k zmm -// -// Construct and append a VRSQRT28PS.SAE.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28PS_SAE_Z(z, k, z1 operand.Op) { ctx.VRSQRT28PS_SAE_Z(z, k, z1) } - -// VRSQRT28PS_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28PS.Z m512 k zmm -// VRSQRT28PS.Z zmm k zmm -// -// Construct and append a VRSQRT28PS.Z instruction to the active function. -func (c *Context) VRSQRT28PS_Z(mz, k, z operand.Op) { - c.addinstruction(x86.VRSQRT28PS_Z(mz, k, z)) -} - -// VRSQRT28PS_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28PS.Z m512 k zmm -// VRSQRT28PS.Z zmm k zmm -// -// Construct and append a VRSQRT28PS.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28PS_Z(mz, k, z operand.Op) { ctx.VRSQRT28PS_Z(mz, k, z) } - -// VRSQRT28SD: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28SD m64 xmm k xmm -// VRSQRT28SD m64 xmm xmm -// VRSQRT28SD xmm xmm k xmm -// VRSQRT28SD xmm xmm xmm -// -// Construct and append a VRSQRT28SD instruction to the active function. -func (c *Context) VRSQRT28SD(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28SD(ops...)) -} - -// VRSQRT28SD: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28SD m64 xmm k xmm -// VRSQRT28SD m64 xmm xmm -// VRSQRT28SD xmm xmm k xmm -// VRSQRT28SD xmm xmm xmm -// -// Construct and append a VRSQRT28SD instruction to the active function. -// Operates on the global context. -func VRSQRT28SD(ops ...operand.Op) { ctx.VRSQRT28SD(ops...) } - -// VRSQRT28SD_SAE: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28SD.SAE xmm xmm k xmm -// VRSQRT28SD.SAE xmm xmm xmm -// -// Construct and append a VRSQRT28SD.SAE instruction to the active function. -func (c *Context) VRSQRT28SD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28SD_SAE(ops...)) -} - -// VRSQRT28SD_SAE: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28SD.SAE xmm xmm k xmm -// VRSQRT28SD.SAE xmm xmm xmm -// -// Construct and append a VRSQRT28SD.SAE instruction to the active function. -// Operates on the global context. -func VRSQRT28SD_SAE(ops ...operand.Op) { ctx.VRSQRT28SD_SAE(ops...) } - -// VRSQRT28SD_SAE_Z: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28SD.SAE.Z xmm xmm k xmm -// -// Construct and append a VRSQRT28SD.SAE.Z instruction to the active function. -func (c *Context) VRSQRT28SD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VRSQRT28SD_SAE_Z(x, x1, k, x2)) -} - -// VRSQRT28SD_SAE_Z: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28SD.SAE.Z xmm xmm k xmm -// -// Construct and append a VRSQRT28SD.SAE.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28SD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VRSQRT28SD_SAE_Z(x, x1, k, x2) } - -// VRSQRT28SD_Z: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28SD.Z m64 xmm k xmm -// VRSQRT28SD.Z xmm xmm k xmm -// -// Construct and append a VRSQRT28SD.Z instruction to the active function. -func (c *Context) VRSQRT28SD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRSQRT28SD_Z(mx, x, k, x1)) -} - -// VRSQRT28SD_Z: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28SD.Z m64 xmm k xmm -// VRSQRT28SD.Z xmm xmm k xmm -// -// Construct and append a VRSQRT28SD.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28SD_Z(mx, x, k, x1 operand.Op) { ctx.VRSQRT28SD_Z(mx, x, k, x1) } - -// VRSQRT28SS: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28SS m32 xmm k xmm -// VRSQRT28SS m32 xmm xmm -// VRSQRT28SS xmm xmm k xmm -// VRSQRT28SS xmm xmm xmm -// -// Construct and append a VRSQRT28SS instruction to the active function. -func (c *Context) VRSQRT28SS(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28SS(ops...)) -} - -// VRSQRT28SS: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28SS m32 xmm k xmm -// VRSQRT28SS m32 xmm xmm -// VRSQRT28SS xmm xmm k xmm -// VRSQRT28SS xmm xmm xmm -// -// Construct and append a VRSQRT28SS instruction to the active function. -// Operates on the global context. -func VRSQRT28SS(ops ...operand.Op) { ctx.VRSQRT28SS(ops...) } - -// VRSQRT28SS_SAE: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28SS.SAE xmm xmm k xmm -// VRSQRT28SS.SAE xmm xmm xmm -// -// Construct and append a VRSQRT28SS.SAE instruction to the active function. -func (c *Context) VRSQRT28SS_SAE(ops ...operand.Op) { - c.addinstruction(x86.VRSQRT28SS_SAE(ops...)) -} - -// VRSQRT28SS_SAE: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28SS.SAE xmm xmm k xmm -// VRSQRT28SS.SAE xmm xmm xmm -// -// Construct and append a VRSQRT28SS.SAE instruction to the active function. -// Operates on the global context. -func VRSQRT28SS_SAE(ops ...operand.Op) { ctx.VRSQRT28SS_SAE(ops...) } - -// VRSQRT28SS_SAE_Z: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28SS.SAE.Z xmm xmm k xmm -// -// Construct and append a VRSQRT28SS.SAE.Z instruction to the active function. -func (c *Context) VRSQRT28SS_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VRSQRT28SS_SAE_Z(x, x1, k, x2)) -} - -// VRSQRT28SS_SAE_Z: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28SS.SAE.Z xmm xmm k xmm -// -// Construct and append a VRSQRT28SS.SAE.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28SS_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VRSQRT28SS_SAE_Z(x, x1, k, x2) } - -// VRSQRT28SS_Z: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28SS.Z m32 xmm k xmm -// VRSQRT28SS.Z xmm xmm k xmm -// -// Construct and append a VRSQRT28SS.Z instruction to the active function. -func (c *Context) VRSQRT28SS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VRSQRT28SS_Z(mx, x, k, x1)) -} - -// VRSQRT28SS_Z: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28SS.Z m32 xmm k xmm -// VRSQRT28SS.Z xmm xmm k xmm -// -// Construct and append a VRSQRT28SS.Z instruction to the active function. -// Operates on the global context. -func VRSQRT28SS_Z(mx, x, k, x1 operand.Op) { ctx.VRSQRT28SS_Z(mx, x, k, x1) } - -// VRSQRTPS: Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRSQRTPS m128 xmm -// VRSQRTPS m256 ymm -// VRSQRTPS xmm xmm -// VRSQRTPS ymm ymm -// -// Construct and append a VRSQRTPS instruction to the active function. -func (c *Context) VRSQRTPS(mxy, xy operand.Op) { - c.addinstruction(x86.VRSQRTPS(mxy, xy)) -} - -// VRSQRTPS: Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRSQRTPS m128 xmm -// VRSQRTPS m256 ymm -// VRSQRTPS xmm xmm -// VRSQRTPS ymm ymm -// -// Construct and append a VRSQRTPS instruction to the active function. -// Operates on the global context. -func VRSQRTPS(mxy, xy operand.Op) { ctx.VRSQRTPS(mxy, xy) } - -// VRSQRTSS: Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VRSQRTSS m32 xmm xmm -// VRSQRTSS xmm xmm xmm -// -// Construct and append a VRSQRTSS instruction to the active function. -func (c *Context) VRSQRTSS(mx, x, x1 operand.Op) { - c.addinstruction(x86.VRSQRTSS(mx, x, x1)) -} - -// VRSQRTSS: Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VRSQRTSS m32 xmm xmm -// VRSQRTSS xmm xmm xmm -// -// Construct and append a VRSQRTSS instruction to the active function. -// Operates on the global context. -func VRSQRTSS(mx, x, x1 operand.Op) { ctx.VRSQRTSS(mx, x, x1) } - -// VSCALEFPD: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values. -// -// Forms: -// -// VSCALEFPD m128 xmm k xmm -// VSCALEFPD m128 xmm xmm -// VSCALEFPD m256 ymm k ymm -// VSCALEFPD m256 ymm ymm -// VSCALEFPD xmm xmm k xmm -// VSCALEFPD xmm xmm xmm -// VSCALEFPD ymm ymm k ymm -// VSCALEFPD ymm ymm ymm -// VSCALEFPD m512 zmm k zmm -// VSCALEFPD m512 zmm zmm -// VSCALEFPD zmm zmm k zmm -// VSCALEFPD zmm zmm zmm -// -// Construct and append a VSCALEFPD instruction to the active function. -func (c *Context) VSCALEFPD(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPD(ops...)) -} - -// VSCALEFPD: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values. -// -// Forms: -// -// VSCALEFPD m128 xmm k xmm -// VSCALEFPD m128 xmm xmm -// VSCALEFPD m256 ymm k ymm -// VSCALEFPD m256 ymm ymm -// VSCALEFPD xmm xmm k xmm -// VSCALEFPD xmm xmm xmm -// VSCALEFPD ymm ymm k ymm -// VSCALEFPD ymm ymm ymm -// VSCALEFPD m512 zmm k zmm -// VSCALEFPD m512 zmm zmm -// VSCALEFPD zmm zmm k zmm -// VSCALEFPD zmm zmm zmm -// -// Construct and append a VSCALEFPD instruction to the active function. -// Operates on the global context. -func VSCALEFPD(ops ...operand.Op) { ctx.VSCALEFPD(ops...) } - -// VSCALEFPD_BCST: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSCALEFPD.BCST m64 xmm k xmm -// VSCALEFPD.BCST m64 xmm xmm -// VSCALEFPD.BCST m64 ymm k ymm -// VSCALEFPD.BCST m64 ymm ymm -// VSCALEFPD.BCST m64 zmm k zmm -// VSCALEFPD.BCST m64 zmm zmm -// -// Construct and append a VSCALEFPD.BCST instruction to the active function. -func (c *Context) VSCALEFPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPD_BCST(ops...)) -} - -// VSCALEFPD_BCST: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSCALEFPD.BCST m64 xmm k xmm -// VSCALEFPD.BCST m64 xmm xmm -// VSCALEFPD.BCST m64 ymm k ymm -// VSCALEFPD.BCST m64 ymm ymm -// VSCALEFPD.BCST m64 zmm k zmm -// VSCALEFPD.BCST m64 zmm zmm -// -// Construct and append a VSCALEFPD.BCST instruction to the active function. -// Operates on the global context. -func VSCALEFPD_BCST(ops ...operand.Op) { ctx.VSCALEFPD_BCST(ops...) } - -// VSCALEFPD_BCST_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.BCST.Z m64 xmm k xmm -// VSCALEFPD.BCST.Z m64 ymm k ymm -// VSCALEFPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VSCALEFPD.BCST.Z instruction to the active function. -func (c *Context) VSCALEFPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSCALEFPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VSCALEFPD_BCST_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.BCST.Z m64 xmm k xmm -// VSCALEFPD.BCST.Z m64 ymm k ymm -// VSCALEFPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VSCALEFPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VSCALEFPD_BCST_Z(m, xyz, k, xyz1) } - -// VSCALEFPD_RD_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFPD.RD_SAE zmm zmm k zmm -// VSCALEFPD.RD_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPD.RD_SAE instruction to the active function. -func (c *Context) VSCALEFPD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPD_RD_SAE(ops...)) -} - -// VSCALEFPD_RD_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFPD.RD_SAE zmm zmm k zmm -// VSCALEFPD.RD_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPD.RD_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFPD_RD_SAE(ops ...operand.Op) { ctx.VSCALEFPD_RD_SAE(ops...) } - -// VSCALEFPD_RD_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.RD_SAE.Z instruction to the active function. -func (c *Context) VSCALEFPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSCALEFPD_RD_SAE_Z(z, z1, k, z2)) -} - -// VSCALEFPD_RD_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSCALEFPD_RD_SAE_Z(z, z1, k, z2) } - -// VSCALEFPD_RN_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSCALEFPD.RN_SAE zmm zmm k zmm -// VSCALEFPD.RN_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPD.RN_SAE instruction to the active function. -func (c *Context) VSCALEFPD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPD_RN_SAE(ops...)) -} - -// VSCALEFPD_RN_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSCALEFPD.RN_SAE zmm zmm k zmm -// VSCALEFPD.RN_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPD.RN_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFPD_RN_SAE(ops ...operand.Op) { ctx.VSCALEFPD_RN_SAE(ops...) } - -// VSCALEFPD_RN_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.RN_SAE.Z instruction to the active function. -func (c *Context) VSCALEFPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSCALEFPD_RN_SAE_Z(z, z1, k, z2)) -} - -// VSCALEFPD_RN_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSCALEFPD_RN_SAE_Z(z, z1, k, z2) } - -// VSCALEFPD_RU_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFPD.RU_SAE zmm zmm k zmm -// VSCALEFPD.RU_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPD.RU_SAE instruction to the active function. -func (c *Context) VSCALEFPD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPD_RU_SAE(ops...)) -} - -// VSCALEFPD_RU_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFPD.RU_SAE zmm zmm k zmm -// VSCALEFPD.RU_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPD.RU_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFPD_RU_SAE(ops ...operand.Op) { ctx.VSCALEFPD_RU_SAE(ops...) } - -// VSCALEFPD_RU_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.RU_SAE.Z instruction to the active function. -func (c *Context) VSCALEFPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSCALEFPD_RU_SAE_Z(z, z1, k, z2)) -} - -// VSCALEFPD_RU_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSCALEFPD_RU_SAE_Z(z, z1, k, z2) } - -// VSCALEFPD_RZ_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSCALEFPD.RZ_SAE zmm zmm k zmm -// VSCALEFPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPD.RZ_SAE instruction to the active function. -func (c *Context) VSCALEFPD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPD_RZ_SAE(ops...)) -} - -// VSCALEFPD_RZ_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSCALEFPD.RZ_SAE zmm zmm k zmm -// VSCALEFPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFPD_RZ_SAE(ops ...operand.Op) { ctx.VSCALEFPD_RZ_SAE(ops...) } - -// VSCALEFPD_RZ_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.RZ_SAE.Z instruction to the active function. -func (c *Context) VSCALEFPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSCALEFPD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VSCALEFPD_RZ_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSCALEFPD_RZ_SAE_Z(z, z1, k, z2) } - -// VSCALEFPD_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.Z m128 xmm k xmm -// VSCALEFPD.Z m256 ymm k ymm -// VSCALEFPD.Z xmm xmm k xmm -// VSCALEFPD.Z ymm ymm k ymm -// VSCALEFPD.Z m512 zmm k zmm -// VSCALEFPD.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.Z instruction to the active function. -func (c *Context) VSCALEFPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSCALEFPD_Z(mxyz, xyz, k, xyz1)) -} - -// VSCALEFPD_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.Z m128 xmm k xmm -// VSCALEFPD.Z m256 ymm k ymm -// VSCALEFPD.Z xmm xmm k xmm -// VSCALEFPD.Z ymm ymm k ymm -// VSCALEFPD.Z m512 zmm k zmm -// VSCALEFPD.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPD.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VSCALEFPD_Z(mxyz, xyz, k, xyz1) } - -// VSCALEFPS: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values. -// -// Forms: -// -// VSCALEFPS m128 xmm k xmm -// VSCALEFPS m128 xmm xmm -// VSCALEFPS m256 ymm k ymm -// VSCALEFPS m256 ymm ymm -// VSCALEFPS xmm xmm k xmm -// VSCALEFPS xmm xmm xmm -// VSCALEFPS ymm ymm k ymm -// VSCALEFPS ymm ymm ymm -// VSCALEFPS m512 zmm k zmm -// VSCALEFPS m512 zmm zmm -// VSCALEFPS zmm zmm k zmm -// VSCALEFPS zmm zmm zmm -// -// Construct and append a VSCALEFPS instruction to the active function. -func (c *Context) VSCALEFPS(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPS(ops...)) -} - -// VSCALEFPS: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values. -// -// Forms: -// -// VSCALEFPS m128 xmm k xmm -// VSCALEFPS m128 xmm xmm -// VSCALEFPS m256 ymm k ymm -// VSCALEFPS m256 ymm ymm -// VSCALEFPS xmm xmm k xmm -// VSCALEFPS xmm xmm xmm -// VSCALEFPS ymm ymm k ymm -// VSCALEFPS ymm ymm ymm -// VSCALEFPS m512 zmm k zmm -// VSCALEFPS m512 zmm zmm -// VSCALEFPS zmm zmm k zmm -// VSCALEFPS zmm zmm zmm -// -// Construct and append a VSCALEFPS instruction to the active function. -// Operates on the global context. -func VSCALEFPS(ops ...operand.Op) { ctx.VSCALEFPS(ops...) } - -// VSCALEFPS_BCST: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSCALEFPS.BCST m32 xmm k xmm -// VSCALEFPS.BCST m32 xmm xmm -// VSCALEFPS.BCST m32 ymm k ymm -// VSCALEFPS.BCST m32 ymm ymm -// VSCALEFPS.BCST m32 zmm k zmm -// VSCALEFPS.BCST m32 zmm zmm -// -// Construct and append a VSCALEFPS.BCST instruction to the active function. -func (c *Context) VSCALEFPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPS_BCST(ops...)) -} - -// VSCALEFPS_BCST: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSCALEFPS.BCST m32 xmm k xmm -// VSCALEFPS.BCST m32 xmm xmm -// VSCALEFPS.BCST m32 ymm k ymm -// VSCALEFPS.BCST m32 ymm ymm -// VSCALEFPS.BCST m32 zmm k zmm -// VSCALEFPS.BCST m32 zmm zmm -// -// Construct and append a VSCALEFPS.BCST instruction to the active function. -// Operates on the global context. -func VSCALEFPS_BCST(ops ...operand.Op) { ctx.VSCALEFPS_BCST(ops...) } - -// VSCALEFPS_BCST_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.BCST.Z m32 xmm k xmm -// VSCALEFPS.BCST.Z m32 ymm k ymm -// VSCALEFPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VSCALEFPS.BCST.Z instruction to the active function. -func (c *Context) VSCALEFPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSCALEFPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VSCALEFPS_BCST_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.BCST.Z m32 xmm k xmm -// VSCALEFPS.BCST.Z m32 ymm k ymm -// VSCALEFPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VSCALEFPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VSCALEFPS_BCST_Z(m, xyz, k, xyz1) } - -// VSCALEFPS_RD_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFPS.RD_SAE zmm zmm k zmm -// VSCALEFPS.RD_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPS.RD_SAE instruction to the active function. -func (c *Context) VSCALEFPS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPS_RD_SAE(ops...)) -} - -// VSCALEFPS_RD_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFPS.RD_SAE zmm zmm k zmm -// VSCALEFPS.RD_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPS.RD_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFPS_RD_SAE(ops ...operand.Op) { ctx.VSCALEFPS_RD_SAE(ops...) } - -// VSCALEFPS_RD_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.RD_SAE.Z instruction to the active function. -func (c *Context) VSCALEFPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSCALEFPS_RD_SAE_Z(z, z1, k, z2)) -} - -// VSCALEFPS_RD_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSCALEFPS_RD_SAE_Z(z, z1, k, z2) } - -// VSCALEFPS_RN_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSCALEFPS.RN_SAE zmm zmm k zmm -// VSCALEFPS.RN_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPS.RN_SAE instruction to the active function. -func (c *Context) VSCALEFPS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPS_RN_SAE(ops...)) -} - -// VSCALEFPS_RN_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSCALEFPS.RN_SAE zmm zmm k zmm -// VSCALEFPS.RN_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPS.RN_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFPS_RN_SAE(ops ...operand.Op) { ctx.VSCALEFPS_RN_SAE(ops...) } - -// VSCALEFPS_RN_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.RN_SAE.Z instruction to the active function. -func (c *Context) VSCALEFPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSCALEFPS_RN_SAE_Z(z, z1, k, z2)) -} - -// VSCALEFPS_RN_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSCALEFPS_RN_SAE_Z(z, z1, k, z2) } - -// VSCALEFPS_RU_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFPS.RU_SAE zmm zmm k zmm -// VSCALEFPS.RU_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPS.RU_SAE instruction to the active function. -func (c *Context) VSCALEFPS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPS_RU_SAE(ops...)) -} - -// VSCALEFPS_RU_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFPS.RU_SAE zmm zmm k zmm -// VSCALEFPS.RU_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPS.RU_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFPS_RU_SAE(ops ...operand.Op) { ctx.VSCALEFPS_RU_SAE(ops...) } - -// VSCALEFPS_RU_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.RU_SAE.Z instruction to the active function. -func (c *Context) VSCALEFPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSCALEFPS_RU_SAE_Z(z, z1, k, z2)) -} - -// VSCALEFPS_RU_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSCALEFPS_RU_SAE_Z(z, z1, k, z2) } - -// VSCALEFPS_RZ_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSCALEFPS.RZ_SAE zmm zmm k zmm -// VSCALEFPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPS.RZ_SAE instruction to the active function. -func (c *Context) VSCALEFPS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFPS_RZ_SAE(ops...)) -} - -// VSCALEFPS_RZ_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSCALEFPS.RZ_SAE zmm zmm k zmm -// VSCALEFPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VSCALEFPS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFPS_RZ_SAE(ops ...operand.Op) { ctx.VSCALEFPS_RZ_SAE(ops...) } - -// VSCALEFPS_RZ_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.RZ_SAE.Z instruction to the active function. -func (c *Context) VSCALEFPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSCALEFPS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VSCALEFPS_RZ_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSCALEFPS_RZ_SAE_Z(z, z1, k, z2) } - -// VSCALEFPS_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.Z m128 xmm k xmm -// VSCALEFPS.Z m256 ymm k ymm -// VSCALEFPS.Z xmm xmm k xmm -// VSCALEFPS.Z ymm ymm k ymm -// VSCALEFPS.Z m512 zmm k zmm -// VSCALEFPS.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.Z instruction to the active function. -func (c *Context) VSCALEFPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSCALEFPS_Z(mxyz, xyz, k, xyz1)) -} - -// VSCALEFPS_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.Z m128 xmm k xmm -// VSCALEFPS.Z m256 ymm k ymm -// VSCALEFPS.Z xmm xmm k xmm -// VSCALEFPS.Z ymm ymm k ymm -// VSCALEFPS.Z m512 zmm k zmm -// VSCALEFPS.Z zmm zmm k zmm -// -// Construct and append a VSCALEFPS.Z instruction to the active function. -// Operates on the global context. -func VSCALEFPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VSCALEFPS_Z(mxyz, xyz, k, xyz1) } - -// VSCALEFSD: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value. -// -// Forms: -// -// VSCALEFSD m64 xmm k xmm -// VSCALEFSD m64 xmm xmm -// VSCALEFSD xmm xmm k xmm -// VSCALEFSD xmm xmm xmm -// -// Construct and append a VSCALEFSD instruction to the active function. -func (c *Context) VSCALEFSD(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSD(ops...)) -} - -// VSCALEFSD: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value. -// -// Forms: -// -// VSCALEFSD m64 xmm k xmm -// VSCALEFSD m64 xmm xmm -// VSCALEFSD xmm xmm k xmm -// VSCALEFSD xmm xmm xmm -// -// Construct and append a VSCALEFSD instruction to the active function. -// Operates on the global context. -func VSCALEFSD(ops ...operand.Op) { ctx.VSCALEFSD(ops...) } - -// VSCALEFSD_RD_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFSD.RD_SAE xmm xmm k xmm -// VSCALEFSD.RD_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSD.RD_SAE instruction to the active function. -func (c *Context) VSCALEFSD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSD_RD_SAE(ops...)) -} - -// VSCALEFSD_RD_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFSD.RD_SAE xmm xmm k xmm -// VSCALEFSD.RD_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSD.RD_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFSD_RD_SAE(ops ...operand.Op) { ctx.VSCALEFSD_RD_SAE(ops...) } - -// VSCALEFSD_RD_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.RD_SAE.Z instruction to the active function. -func (c *Context) VSCALEFSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSCALEFSD_RD_SAE_Z(x, x1, k, x2)) -} - -// VSCALEFSD_RD_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSCALEFSD_RD_SAE_Z(x, x1, k, x2) } - -// VSCALEFSD_RN_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSCALEFSD.RN_SAE xmm xmm k xmm -// VSCALEFSD.RN_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSD.RN_SAE instruction to the active function. -func (c *Context) VSCALEFSD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSD_RN_SAE(ops...)) -} - -// VSCALEFSD_RN_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSCALEFSD.RN_SAE xmm xmm k xmm -// VSCALEFSD.RN_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSD.RN_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFSD_RN_SAE(ops ...operand.Op) { ctx.VSCALEFSD_RN_SAE(ops...) } - -// VSCALEFSD_RN_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.RN_SAE.Z instruction to the active function. -func (c *Context) VSCALEFSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSCALEFSD_RN_SAE_Z(x, x1, k, x2)) -} - -// VSCALEFSD_RN_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSCALEFSD_RN_SAE_Z(x, x1, k, x2) } - -// VSCALEFSD_RU_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFSD.RU_SAE xmm xmm k xmm -// VSCALEFSD.RU_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSD.RU_SAE instruction to the active function. -func (c *Context) VSCALEFSD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSD_RU_SAE(ops...)) -} - -// VSCALEFSD_RU_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFSD.RU_SAE xmm xmm k xmm -// VSCALEFSD.RU_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSD.RU_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFSD_RU_SAE(ops ...operand.Op) { ctx.VSCALEFSD_RU_SAE(ops...) } - -// VSCALEFSD_RU_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.RU_SAE.Z instruction to the active function. -func (c *Context) VSCALEFSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSCALEFSD_RU_SAE_Z(x, x1, k, x2)) -} - -// VSCALEFSD_RU_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSCALEFSD_RU_SAE_Z(x, x1, k, x2) } - -// VSCALEFSD_RZ_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSCALEFSD.RZ_SAE xmm xmm k xmm -// VSCALEFSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSD.RZ_SAE instruction to the active function. -func (c *Context) VSCALEFSD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSD_RZ_SAE(ops...)) -} - -// VSCALEFSD_RZ_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSCALEFSD.RZ_SAE xmm xmm k xmm -// VSCALEFSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFSD_RZ_SAE(ops ...operand.Op) { ctx.VSCALEFSD_RZ_SAE(ops...) } - -// VSCALEFSD_RZ_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.RZ_SAE.Z instruction to the active function. -func (c *Context) VSCALEFSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSCALEFSD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VSCALEFSD_RZ_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSCALEFSD_RZ_SAE_Z(x, x1, k, x2) } - -// VSCALEFSD_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.Z m64 xmm k xmm -// VSCALEFSD.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.Z instruction to the active function. -func (c *Context) VSCALEFSD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VSCALEFSD_Z(mx, x, k, x1)) -} - -// VSCALEFSD_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.Z m64 xmm k xmm -// VSCALEFSD.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSD.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSD_Z(mx, x, k, x1 operand.Op) { ctx.VSCALEFSD_Z(mx, x, k, x1) } - -// VSCALEFSS: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value. -// -// Forms: -// -// VSCALEFSS m32 xmm k xmm -// VSCALEFSS m32 xmm xmm -// VSCALEFSS xmm xmm k xmm -// VSCALEFSS xmm xmm xmm -// -// Construct and append a VSCALEFSS instruction to the active function. -func (c *Context) VSCALEFSS(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSS(ops...)) -} - -// VSCALEFSS: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value. -// -// Forms: -// -// VSCALEFSS m32 xmm k xmm -// VSCALEFSS m32 xmm xmm -// VSCALEFSS xmm xmm k xmm -// VSCALEFSS xmm xmm xmm -// -// Construct and append a VSCALEFSS instruction to the active function. -// Operates on the global context. -func VSCALEFSS(ops ...operand.Op) { ctx.VSCALEFSS(ops...) } - -// VSCALEFSS_RD_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFSS.RD_SAE xmm xmm k xmm -// VSCALEFSS.RD_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSS.RD_SAE instruction to the active function. -func (c *Context) VSCALEFSS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSS_RD_SAE(ops...)) -} - -// VSCALEFSS_RD_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFSS.RD_SAE xmm xmm k xmm -// VSCALEFSS.RD_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSS.RD_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFSS_RD_SAE(ops ...operand.Op) { ctx.VSCALEFSS_RD_SAE(ops...) } - -// VSCALEFSS_RD_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.RD_SAE.Z instruction to the active function. -func (c *Context) VSCALEFSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSCALEFSS_RD_SAE_Z(x, x1, k, x2)) -} - -// VSCALEFSS_RD_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSCALEFSS_RD_SAE_Z(x, x1, k, x2) } - -// VSCALEFSS_RN_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSCALEFSS.RN_SAE xmm xmm k xmm -// VSCALEFSS.RN_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSS.RN_SAE instruction to the active function. -func (c *Context) VSCALEFSS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSS_RN_SAE(ops...)) -} - -// VSCALEFSS_RN_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSCALEFSS.RN_SAE xmm xmm k xmm -// VSCALEFSS.RN_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSS.RN_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFSS_RN_SAE(ops ...operand.Op) { ctx.VSCALEFSS_RN_SAE(ops...) } - -// VSCALEFSS_RN_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.RN_SAE.Z instruction to the active function. -func (c *Context) VSCALEFSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSCALEFSS_RN_SAE_Z(x, x1, k, x2)) -} - -// VSCALEFSS_RN_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSCALEFSS_RN_SAE_Z(x, x1, k, x2) } - -// VSCALEFSS_RU_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFSS.RU_SAE xmm xmm k xmm -// VSCALEFSS.RU_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSS.RU_SAE instruction to the active function. -func (c *Context) VSCALEFSS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSS_RU_SAE(ops...)) -} - -// VSCALEFSS_RU_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFSS.RU_SAE xmm xmm k xmm -// VSCALEFSS.RU_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSS.RU_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFSS_RU_SAE(ops ...operand.Op) { ctx.VSCALEFSS_RU_SAE(ops...) } - -// VSCALEFSS_RU_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.RU_SAE.Z instruction to the active function. -func (c *Context) VSCALEFSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSCALEFSS_RU_SAE_Z(x, x1, k, x2)) -} - -// VSCALEFSS_RU_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSCALEFSS_RU_SAE_Z(x, x1, k, x2) } - -// VSCALEFSS_RZ_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSCALEFSS.RZ_SAE xmm xmm k xmm -// VSCALEFSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSS.RZ_SAE instruction to the active function. -func (c *Context) VSCALEFSS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSCALEFSS_RZ_SAE(ops...)) -} - -// VSCALEFSS_RZ_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSCALEFSS.RZ_SAE xmm xmm k xmm -// VSCALEFSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VSCALEFSS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSCALEFSS_RZ_SAE(ops ...operand.Op) { ctx.VSCALEFSS_RZ_SAE(ops...) } - -// VSCALEFSS_RZ_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.RZ_SAE.Z instruction to the active function. -func (c *Context) VSCALEFSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSCALEFSS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VSCALEFSS_RZ_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSCALEFSS_RZ_SAE_Z(x, x1, k, x2) } - -// VSCALEFSS_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.Z m32 xmm k xmm -// VSCALEFSS.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.Z instruction to the active function. -func (c *Context) VSCALEFSS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VSCALEFSS_Z(mx, x, k, x1)) -} - -// VSCALEFSS_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.Z m32 xmm k xmm -// VSCALEFSS.Z xmm xmm k xmm -// -// Construct and append a VSCALEFSS.Z instruction to the active function. -// Operates on the global context. -func VSCALEFSS_Z(mx, x, k, x1 operand.Op) { ctx.VSCALEFSS_Z(mx, x, k, x1) } - -// VSCATTERDPD: Scatter Packed Double-Precision Floating-Point Values with Signed Doubleword Indices. -// -// Forms: -// -// VSCATTERDPD xmm k vm32x -// VSCATTERDPD ymm k vm32x -// VSCATTERDPD zmm k vm32y -// -// Construct and append a VSCATTERDPD instruction to the active function. -func (c *Context) VSCATTERDPD(xyz, k, v operand.Op) { - c.addinstruction(x86.VSCATTERDPD(xyz, k, v)) -} - -// VSCATTERDPD: Scatter Packed Double-Precision Floating-Point Values with Signed Doubleword Indices. -// -// Forms: -// -// VSCATTERDPD xmm k vm32x -// VSCATTERDPD ymm k vm32x -// VSCATTERDPD zmm k vm32y -// -// Construct and append a VSCATTERDPD instruction to the active function. -// Operates on the global context. -func VSCATTERDPD(xyz, k, v operand.Op) { ctx.VSCATTERDPD(xyz, k, v) } - -// VSCATTERDPS: Scatter Packed Single-Precision Floating-Point Values with Signed Doubleword Indices. -// -// Forms: -// -// VSCATTERDPS xmm k vm32x -// VSCATTERDPS ymm k vm32y -// VSCATTERDPS zmm k vm32z -// -// Construct and append a VSCATTERDPS instruction to the active function. -func (c *Context) VSCATTERDPS(xyz, k, v operand.Op) { - c.addinstruction(x86.VSCATTERDPS(xyz, k, v)) -} - -// VSCATTERDPS: Scatter Packed Single-Precision Floating-Point Values with Signed Doubleword Indices. -// -// Forms: -// -// VSCATTERDPS xmm k vm32x -// VSCATTERDPS ymm k vm32y -// VSCATTERDPS zmm k vm32z -// -// Construct and append a VSCATTERDPS instruction to the active function. -// Operates on the global context. -func VSCATTERDPS(xyz, k, v operand.Op) { ctx.VSCATTERDPS(xyz, k, v) } - -// VSCATTERQPD: Scatter Packed Double-Precision Floating-Point Values with Signed Quadword Indices. -// -// Forms: -// -// VSCATTERQPD xmm k vm64x -// VSCATTERQPD ymm k vm64y -// VSCATTERQPD zmm k vm64z -// -// Construct and append a VSCATTERQPD instruction to the active function. -func (c *Context) VSCATTERQPD(xyz, k, v operand.Op) { - c.addinstruction(x86.VSCATTERQPD(xyz, k, v)) -} - -// VSCATTERQPD: Scatter Packed Double-Precision Floating-Point Values with Signed Quadword Indices. -// -// Forms: -// -// VSCATTERQPD xmm k vm64x -// VSCATTERQPD ymm k vm64y -// VSCATTERQPD zmm k vm64z -// -// Construct and append a VSCATTERQPD instruction to the active function. -// Operates on the global context. -func VSCATTERQPD(xyz, k, v operand.Op) { ctx.VSCATTERQPD(xyz, k, v) } - -// VSCATTERQPS: Scatter Packed Single-Precision Floating-Point Values with Signed Quadword Indices. -// -// Forms: -// -// VSCATTERQPS xmm k vm64x -// VSCATTERQPS xmm k vm64y -// VSCATTERQPS ymm k vm64z -// -// Construct and append a VSCATTERQPS instruction to the active function. -func (c *Context) VSCATTERQPS(xy, k, v operand.Op) { - c.addinstruction(x86.VSCATTERQPS(xy, k, v)) -} - -// VSCATTERQPS: Scatter Packed Single-Precision Floating-Point Values with Signed Quadword Indices. -// -// Forms: -// -// VSCATTERQPS xmm k vm64x -// VSCATTERQPS xmm k vm64y -// VSCATTERQPS ymm k vm64z -// -// Construct and append a VSCATTERQPS instruction to the active function. -// Operates on the global context. -func VSCATTERQPS(xy, k, v operand.Op) { ctx.VSCATTERQPS(xy, k, v) } - -// VSHUFF32X4: Shuffle 128-Bit Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFF32X4 imm8 m256 ymm k ymm -// VSHUFF32X4 imm8 m256 ymm ymm -// VSHUFF32X4 imm8 ymm ymm k ymm -// VSHUFF32X4 imm8 ymm ymm ymm -// VSHUFF32X4 imm8 m512 zmm k zmm -// VSHUFF32X4 imm8 m512 zmm zmm -// VSHUFF32X4 imm8 zmm zmm k zmm -// VSHUFF32X4 imm8 zmm zmm zmm -// -// Construct and append a VSHUFF32X4 instruction to the active function. -func (c *Context) VSHUFF32X4(ops ...operand.Op) { - c.addinstruction(x86.VSHUFF32X4(ops...)) -} - -// VSHUFF32X4: Shuffle 128-Bit Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFF32X4 imm8 m256 ymm k ymm -// VSHUFF32X4 imm8 m256 ymm ymm -// VSHUFF32X4 imm8 ymm ymm k ymm -// VSHUFF32X4 imm8 ymm ymm ymm -// VSHUFF32X4 imm8 m512 zmm k zmm -// VSHUFF32X4 imm8 m512 zmm zmm -// VSHUFF32X4 imm8 zmm zmm k zmm -// VSHUFF32X4 imm8 zmm zmm zmm -// -// Construct and append a VSHUFF32X4 instruction to the active function. -// Operates on the global context. -func VSHUFF32X4(ops ...operand.Op) { ctx.VSHUFF32X4(ops...) } - -// VSHUFF32X4_BCST: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFF32X4.BCST imm8 m32 ymm k ymm -// VSHUFF32X4.BCST imm8 m32 ymm ymm -// VSHUFF32X4.BCST imm8 m32 zmm k zmm -// VSHUFF32X4.BCST imm8 m32 zmm zmm -// -// Construct and append a VSHUFF32X4.BCST instruction to the active function. -func (c *Context) VSHUFF32X4_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSHUFF32X4_BCST(ops...)) -} - -// VSHUFF32X4_BCST: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFF32X4.BCST imm8 m32 ymm k ymm -// VSHUFF32X4.BCST imm8 m32 ymm ymm -// VSHUFF32X4.BCST imm8 m32 zmm k zmm -// VSHUFF32X4.BCST imm8 m32 zmm zmm -// -// Construct and append a VSHUFF32X4.BCST instruction to the active function. -// Operates on the global context. -func VSHUFF32X4_BCST(ops ...operand.Op) { ctx.VSHUFF32X4_BCST(ops...) } - -// VSHUFF32X4_BCST_Z: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFF32X4.BCST.Z imm8 m32 ymm k ymm -// VSHUFF32X4.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VSHUFF32X4.BCST.Z instruction to the active function. -func (c *Context) VSHUFF32X4_BCST_Z(i, m, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VSHUFF32X4_BCST_Z(i, m, yz, k, yz1)) -} - -// VSHUFF32X4_BCST_Z: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFF32X4.BCST.Z imm8 m32 ymm k ymm -// VSHUFF32X4.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VSHUFF32X4.BCST.Z instruction to the active function. -// Operates on the global context. -func VSHUFF32X4_BCST_Z(i, m, yz, k, yz1 operand.Op) { ctx.VSHUFF32X4_BCST_Z(i, m, yz, k, yz1) } - -// VSHUFF32X4_Z: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFF32X4.Z imm8 m256 ymm k ymm -// VSHUFF32X4.Z imm8 ymm ymm k ymm -// VSHUFF32X4.Z imm8 m512 zmm k zmm -// VSHUFF32X4.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFF32X4.Z instruction to the active function. -func (c *Context) VSHUFF32X4_Z(i, myz, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VSHUFF32X4_Z(i, myz, yz, k, yz1)) -} - -// VSHUFF32X4_Z: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFF32X4.Z imm8 m256 ymm k ymm -// VSHUFF32X4.Z imm8 ymm ymm k ymm -// VSHUFF32X4.Z imm8 m512 zmm k zmm -// VSHUFF32X4.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFF32X4.Z instruction to the active function. -// Operates on the global context. -func VSHUFF32X4_Z(i, myz, yz, k, yz1 operand.Op) { ctx.VSHUFF32X4_Z(i, myz, yz, k, yz1) } - -// VSHUFF64X2: Shuffle 128-Bit Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFF64X2 imm8 m256 ymm k ymm -// VSHUFF64X2 imm8 m256 ymm ymm -// VSHUFF64X2 imm8 ymm ymm k ymm -// VSHUFF64X2 imm8 ymm ymm ymm -// VSHUFF64X2 imm8 m512 zmm k zmm -// VSHUFF64X2 imm8 m512 zmm zmm -// VSHUFF64X2 imm8 zmm zmm k zmm -// VSHUFF64X2 imm8 zmm zmm zmm -// -// Construct and append a VSHUFF64X2 instruction to the active function. -func (c *Context) VSHUFF64X2(ops ...operand.Op) { - c.addinstruction(x86.VSHUFF64X2(ops...)) -} - -// VSHUFF64X2: Shuffle 128-Bit Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFF64X2 imm8 m256 ymm k ymm -// VSHUFF64X2 imm8 m256 ymm ymm -// VSHUFF64X2 imm8 ymm ymm k ymm -// VSHUFF64X2 imm8 ymm ymm ymm -// VSHUFF64X2 imm8 m512 zmm k zmm -// VSHUFF64X2 imm8 m512 zmm zmm -// VSHUFF64X2 imm8 zmm zmm k zmm -// VSHUFF64X2 imm8 zmm zmm zmm -// -// Construct and append a VSHUFF64X2 instruction to the active function. -// Operates on the global context. -func VSHUFF64X2(ops ...operand.Op) { ctx.VSHUFF64X2(ops...) } - -// VSHUFF64X2_BCST: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFF64X2.BCST imm8 m64 ymm k ymm -// VSHUFF64X2.BCST imm8 m64 ymm ymm -// VSHUFF64X2.BCST imm8 m64 zmm k zmm -// VSHUFF64X2.BCST imm8 m64 zmm zmm -// -// Construct and append a VSHUFF64X2.BCST instruction to the active function. -func (c *Context) VSHUFF64X2_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSHUFF64X2_BCST(ops...)) -} - -// VSHUFF64X2_BCST: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFF64X2.BCST imm8 m64 ymm k ymm -// VSHUFF64X2.BCST imm8 m64 ymm ymm -// VSHUFF64X2.BCST imm8 m64 zmm k zmm -// VSHUFF64X2.BCST imm8 m64 zmm zmm -// -// Construct and append a VSHUFF64X2.BCST instruction to the active function. -// Operates on the global context. -func VSHUFF64X2_BCST(ops ...operand.Op) { ctx.VSHUFF64X2_BCST(ops...) } - -// VSHUFF64X2_BCST_Z: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFF64X2.BCST.Z imm8 m64 ymm k ymm -// VSHUFF64X2.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VSHUFF64X2.BCST.Z instruction to the active function. -func (c *Context) VSHUFF64X2_BCST_Z(i, m, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VSHUFF64X2_BCST_Z(i, m, yz, k, yz1)) -} - -// VSHUFF64X2_BCST_Z: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFF64X2.BCST.Z imm8 m64 ymm k ymm -// VSHUFF64X2.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VSHUFF64X2.BCST.Z instruction to the active function. -// Operates on the global context. -func VSHUFF64X2_BCST_Z(i, m, yz, k, yz1 operand.Op) { ctx.VSHUFF64X2_BCST_Z(i, m, yz, k, yz1) } - -// VSHUFF64X2_Z: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFF64X2.Z imm8 m256 ymm k ymm -// VSHUFF64X2.Z imm8 ymm ymm k ymm -// VSHUFF64X2.Z imm8 m512 zmm k zmm -// VSHUFF64X2.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFF64X2.Z instruction to the active function. -func (c *Context) VSHUFF64X2_Z(i, myz, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VSHUFF64X2_Z(i, myz, yz, k, yz1)) -} - -// VSHUFF64X2_Z: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFF64X2.Z imm8 m256 ymm k ymm -// VSHUFF64X2.Z imm8 ymm ymm k ymm -// VSHUFF64X2.Z imm8 m512 zmm k zmm -// VSHUFF64X2.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFF64X2.Z instruction to the active function. -// Operates on the global context. -func VSHUFF64X2_Z(i, myz, yz, k, yz1 operand.Op) { ctx.VSHUFF64X2_Z(i, myz, yz, k, yz1) } - -// VSHUFI32X4: Shuffle 128-Bit Packed Doubleword Integer Values. -// -// Forms: -// -// VSHUFI32X4 imm8 m256 ymm k ymm -// VSHUFI32X4 imm8 m256 ymm ymm -// VSHUFI32X4 imm8 ymm ymm k ymm -// VSHUFI32X4 imm8 ymm ymm ymm -// VSHUFI32X4 imm8 m512 zmm k zmm -// VSHUFI32X4 imm8 m512 zmm zmm -// VSHUFI32X4 imm8 zmm zmm k zmm -// VSHUFI32X4 imm8 zmm zmm zmm -// -// Construct and append a VSHUFI32X4 instruction to the active function. -func (c *Context) VSHUFI32X4(ops ...operand.Op) { - c.addinstruction(x86.VSHUFI32X4(ops...)) -} - -// VSHUFI32X4: Shuffle 128-Bit Packed Doubleword Integer Values. -// -// Forms: -// -// VSHUFI32X4 imm8 m256 ymm k ymm -// VSHUFI32X4 imm8 m256 ymm ymm -// VSHUFI32X4 imm8 ymm ymm k ymm -// VSHUFI32X4 imm8 ymm ymm ymm -// VSHUFI32X4 imm8 m512 zmm k zmm -// VSHUFI32X4 imm8 m512 zmm zmm -// VSHUFI32X4 imm8 zmm zmm k zmm -// VSHUFI32X4 imm8 zmm zmm zmm -// -// Construct and append a VSHUFI32X4 instruction to the active function. -// Operates on the global context. -func VSHUFI32X4(ops ...operand.Op) { ctx.VSHUFI32X4(ops...) } - -// VSHUFI32X4_BCST: Shuffle 128-Bit Packed Doubleword Integer Values (Broadcast). -// -// Forms: -// -// VSHUFI32X4.BCST imm8 m32 ymm k ymm -// VSHUFI32X4.BCST imm8 m32 ymm ymm -// VSHUFI32X4.BCST imm8 m32 zmm k zmm -// VSHUFI32X4.BCST imm8 m32 zmm zmm -// -// Construct and append a VSHUFI32X4.BCST instruction to the active function. -func (c *Context) VSHUFI32X4_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSHUFI32X4_BCST(ops...)) -} - -// VSHUFI32X4_BCST: Shuffle 128-Bit Packed Doubleword Integer Values (Broadcast). -// -// Forms: -// -// VSHUFI32X4.BCST imm8 m32 ymm k ymm -// VSHUFI32X4.BCST imm8 m32 ymm ymm -// VSHUFI32X4.BCST imm8 m32 zmm k zmm -// VSHUFI32X4.BCST imm8 m32 zmm zmm -// -// Construct and append a VSHUFI32X4.BCST instruction to the active function. -// Operates on the global context. -func VSHUFI32X4_BCST(ops ...operand.Op) { ctx.VSHUFI32X4_BCST(ops...) } - -// VSHUFI32X4_BCST_Z: Shuffle 128-Bit Packed Doubleword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFI32X4.BCST.Z imm8 m32 ymm k ymm -// VSHUFI32X4.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VSHUFI32X4.BCST.Z instruction to the active function. -func (c *Context) VSHUFI32X4_BCST_Z(i, m, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VSHUFI32X4_BCST_Z(i, m, yz, k, yz1)) -} - -// VSHUFI32X4_BCST_Z: Shuffle 128-Bit Packed Doubleword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFI32X4.BCST.Z imm8 m32 ymm k ymm -// VSHUFI32X4.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VSHUFI32X4.BCST.Z instruction to the active function. -// Operates on the global context. -func VSHUFI32X4_BCST_Z(i, m, yz, k, yz1 operand.Op) { ctx.VSHUFI32X4_BCST_Z(i, m, yz, k, yz1) } - -// VSHUFI32X4_Z: Shuffle 128-Bit Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VSHUFI32X4.Z imm8 m256 ymm k ymm -// VSHUFI32X4.Z imm8 ymm ymm k ymm -// VSHUFI32X4.Z imm8 m512 zmm k zmm -// VSHUFI32X4.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFI32X4.Z instruction to the active function. -func (c *Context) VSHUFI32X4_Z(i, myz, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VSHUFI32X4_Z(i, myz, yz, k, yz1)) -} - -// VSHUFI32X4_Z: Shuffle 128-Bit Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VSHUFI32X4.Z imm8 m256 ymm k ymm -// VSHUFI32X4.Z imm8 ymm ymm k ymm -// VSHUFI32X4.Z imm8 m512 zmm k zmm -// VSHUFI32X4.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFI32X4.Z instruction to the active function. -// Operates on the global context. -func VSHUFI32X4_Z(i, myz, yz, k, yz1 operand.Op) { ctx.VSHUFI32X4_Z(i, myz, yz, k, yz1) } - -// VSHUFI64X2: Shuffle 128-Bit Packed Quadword Integer Values. -// -// Forms: -// -// VSHUFI64X2 imm8 m256 ymm k ymm -// VSHUFI64X2 imm8 m256 ymm ymm -// VSHUFI64X2 imm8 ymm ymm k ymm -// VSHUFI64X2 imm8 ymm ymm ymm -// VSHUFI64X2 imm8 m512 zmm k zmm -// VSHUFI64X2 imm8 m512 zmm zmm -// VSHUFI64X2 imm8 zmm zmm k zmm -// VSHUFI64X2 imm8 zmm zmm zmm -// -// Construct and append a VSHUFI64X2 instruction to the active function. -func (c *Context) VSHUFI64X2(ops ...operand.Op) { - c.addinstruction(x86.VSHUFI64X2(ops...)) -} - -// VSHUFI64X2: Shuffle 128-Bit Packed Quadword Integer Values. -// -// Forms: -// -// VSHUFI64X2 imm8 m256 ymm k ymm -// VSHUFI64X2 imm8 m256 ymm ymm -// VSHUFI64X2 imm8 ymm ymm k ymm -// VSHUFI64X2 imm8 ymm ymm ymm -// VSHUFI64X2 imm8 m512 zmm k zmm -// VSHUFI64X2 imm8 m512 zmm zmm -// VSHUFI64X2 imm8 zmm zmm k zmm -// VSHUFI64X2 imm8 zmm zmm zmm -// -// Construct and append a VSHUFI64X2 instruction to the active function. -// Operates on the global context. -func VSHUFI64X2(ops ...operand.Op) { ctx.VSHUFI64X2(ops...) } - -// VSHUFI64X2_BCST: Shuffle 128-Bit Packed Quadword Integer Values (Broadcast). -// -// Forms: -// -// VSHUFI64X2.BCST imm8 m64 ymm k ymm -// VSHUFI64X2.BCST imm8 m64 ymm ymm -// VSHUFI64X2.BCST imm8 m64 zmm k zmm -// VSHUFI64X2.BCST imm8 m64 zmm zmm -// -// Construct and append a VSHUFI64X2.BCST instruction to the active function. -func (c *Context) VSHUFI64X2_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSHUFI64X2_BCST(ops...)) -} - -// VSHUFI64X2_BCST: Shuffle 128-Bit Packed Quadword Integer Values (Broadcast). -// -// Forms: -// -// VSHUFI64X2.BCST imm8 m64 ymm k ymm -// VSHUFI64X2.BCST imm8 m64 ymm ymm -// VSHUFI64X2.BCST imm8 m64 zmm k zmm -// VSHUFI64X2.BCST imm8 m64 zmm zmm -// -// Construct and append a VSHUFI64X2.BCST instruction to the active function. -// Operates on the global context. -func VSHUFI64X2_BCST(ops ...operand.Op) { ctx.VSHUFI64X2_BCST(ops...) } - -// VSHUFI64X2_BCST_Z: Shuffle 128-Bit Packed Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFI64X2.BCST.Z imm8 m64 ymm k ymm -// VSHUFI64X2.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VSHUFI64X2.BCST.Z instruction to the active function. -func (c *Context) VSHUFI64X2_BCST_Z(i, m, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VSHUFI64X2_BCST_Z(i, m, yz, k, yz1)) -} - -// VSHUFI64X2_BCST_Z: Shuffle 128-Bit Packed Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFI64X2.BCST.Z imm8 m64 ymm k ymm -// VSHUFI64X2.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VSHUFI64X2.BCST.Z instruction to the active function. -// Operates on the global context. -func VSHUFI64X2_BCST_Z(i, m, yz, k, yz1 operand.Op) { ctx.VSHUFI64X2_BCST_Z(i, m, yz, k, yz1) } - -// VSHUFI64X2_Z: Shuffle 128-Bit Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VSHUFI64X2.Z imm8 m256 ymm k ymm -// VSHUFI64X2.Z imm8 ymm ymm k ymm -// VSHUFI64X2.Z imm8 m512 zmm k zmm -// VSHUFI64X2.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFI64X2.Z instruction to the active function. -func (c *Context) VSHUFI64X2_Z(i, myz, yz, k, yz1 operand.Op) { - c.addinstruction(x86.VSHUFI64X2_Z(i, myz, yz, k, yz1)) -} - -// VSHUFI64X2_Z: Shuffle 128-Bit Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VSHUFI64X2.Z imm8 m256 ymm k ymm -// VSHUFI64X2.Z imm8 ymm ymm k ymm -// VSHUFI64X2.Z imm8 m512 zmm k zmm -// VSHUFI64X2.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFI64X2.Z instruction to the active function. -// Operates on the global context. -func VSHUFI64X2_Z(i, myz, yz, k, yz1 operand.Op) { ctx.VSHUFI64X2_Z(i, myz, yz, k, yz1) } - -// VSHUFPD: Shuffle Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFPD imm8 m128 xmm xmm -// VSHUFPD imm8 m256 ymm ymm -// VSHUFPD imm8 xmm xmm xmm -// VSHUFPD imm8 ymm ymm ymm -// VSHUFPD imm8 m128 xmm k xmm -// VSHUFPD imm8 m256 ymm k ymm -// VSHUFPD imm8 xmm xmm k xmm -// VSHUFPD imm8 ymm ymm k ymm -// VSHUFPD imm8 m512 zmm k zmm -// VSHUFPD imm8 m512 zmm zmm -// VSHUFPD imm8 zmm zmm k zmm -// VSHUFPD imm8 zmm zmm zmm -// -// Construct and append a VSHUFPD instruction to the active function. -func (c *Context) VSHUFPD(ops ...operand.Op) { - c.addinstruction(x86.VSHUFPD(ops...)) -} - -// VSHUFPD: Shuffle Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFPD imm8 m128 xmm xmm -// VSHUFPD imm8 m256 ymm ymm -// VSHUFPD imm8 xmm xmm xmm -// VSHUFPD imm8 ymm ymm ymm -// VSHUFPD imm8 m128 xmm k xmm -// VSHUFPD imm8 m256 ymm k ymm -// VSHUFPD imm8 xmm xmm k xmm -// VSHUFPD imm8 ymm ymm k ymm -// VSHUFPD imm8 m512 zmm k zmm -// VSHUFPD imm8 m512 zmm zmm -// VSHUFPD imm8 zmm zmm k zmm -// VSHUFPD imm8 zmm zmm zmm -// -// Construct and append a VSHUFPD instruction to the active function. -// Operates on the global context. -func VSHUFPD(ops ...operand.Op) { ctx.VSHUFPD(ops...) } - -// VSHUFPD_BCST: Shuffle Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFPD.BCST imm8 m64 xmm k xmm -// VSHUFPD.BCST imm8 m64 xmm xmm -// VSHUFPD.BCST imm8 m64 ymm k ymm -// VSHUFPD.BCST imm8 m64 ymm ymm -// VSHUFPD.BCST imm8 m64 zmm k zmm -// VSHUFPD.BCST imm8 m64 zmm zmm -// -// Construct and append a VSHUFPD.BCST instruction to the active function. -func (c *Context) VSHUFPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSHUFPD_BCST(ops...)) -} - -// VSHUFPD_BCST: Shuffle Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFPD.BCST imm8 m64 xmm k xmm -// VSHUFPD.BCST imm8 m64 xmm xmm -// VSHUFPD.BCST imm8 m64 ymm k ymm -// VSHUFPD.BCST imm8 m64 ymm ymm -// VSHUFPD.BCST imm8 m64 zmm k zmm -// VSHUFPD.BCST imm8 m64 zmm zmm -// -// Construct and append a VSHUFPD.BCST instruction to the active function. -// Operates on the global context. -func VSHUFPD_BCST(ops ...operand.Op) { ctx.VSHUFPD_BCST(ops...) } - -// VSHUFPD_BCST_Z: Shuffle Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFPD.BCST.Z imm8 m64 xmm k xmm -// VSHUFPD.BCST.Z imm8 m64 ymm k ymm -// VSHUFPD.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VSHUFPD.BCST.Z instruction to the active function. -func (c *Context) VSHUFPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSHUFPD_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VSHUFPD_BCST_Z: Shuffle Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFPD.BCST.Z imm8 m64 xmm k xmm -// VSHUFPD.BCST.Z imm8 m64 ymm k ymm -// VSHUFPD.BCST.Z imm8 m64 zmm k zmm -// -// Construct and append a VSHUFPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VSHUFPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VSHUFPD_BCST_Z(i, m, xyz, k, xyz1) } - -// VSHUFPD_Z: Shuffle Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFPD.Z imm8 m128 xmm k xmm -// VSHUFPD.Z imm8 m256 ymm k ymm -// VSHUFPD.Z imm8 xmm xmm k xmm -// VSHUFPD.Z imm8 ymm ymm k ymm -// VSHUFPD.Z imm8 m512 zmm k zmm -// VSHUFPD.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFPD.Z instruction to the active function. -func (c *Context) VSHUFPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSHUFPD_Z(i, mxyz, xyz, k, xyz1)) -} - -// VSHUFPD_Z: Shuffle Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFPD.Z imm8 m128 xmm k xmm -// VSHUFPD.Z imm8 m256 ymm k ymm -// VSHUFPD.Z imm8 xmm xmm k xmm -// VSHUFPD.Z imm8 ymm ymm k ymm -// VSHUFPD.Z imm8 m512 zmm k zmm -// VSHUFPD.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFPD.Z instruction to the active function. -// Operates on the global context. -func VSHUFPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VSHUFPD_Z(i, mxyz, xyz, k, xyz1) } - -// VSHUFPS: Shuffle Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFPS imm8 m128 xmm xmm -// VSHUFPS imm8 m256 ymm ymm -// VSHUFPS imm8 xmm xmm xmm -// VSHUFPS imm8 ymm ymm ymm -// VSHUFPS imm8 m128 xmm k xmm -// VSHUFPS imm8 m256 ymm k ymm -// VSHUFPS imm8 xmm xmm k xmm -// VSHUFPS imm8 ymm ymm k ymm -// VSHUFPS imm8 m512 zmm k zmm -// VSHUFPS imm8 m512 zmm zmm -// VSHUFPS imm8 zmm zmm k zmm -// VSHUFPS imm8 zmm zmm zmm -// -// Construct and append a VSHUFPS instruction to the active function. -func (c *Context) VSHUFPS(ops ...operand.Op) { - c.addinstruction(x86.VSHUFPS(ops...)) -} - -// VSHUFPS: Shuffle Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFPS imm8 m128 xmm xmm -// VSHUFPS imm8 m256 ymm ymm -// VSHUFPS imm8 xmm xmm xmm -// VSHUFPS imm8 ymm ymm ymm -// VSHUFPS imm8 m128 xmm k xmm -// VSHUFPS imm8 m256 ymm k ymm -// VSHUFPS imm8 xmm xmm k xmm -// VSHUFPS imm8 ymm ymm k ymm -// VSHUFPS imm8 m512 zmm k zmm -// VSHUFPS imm8 m512 zmm zmm -// VSHUFPS imm8 zmm zmm k zmm -// VSHUFPS imm8 zmm zmm zmm -// -// Construct and append a VSHUFPS instruction to the active function. -// Operates on the global context. -func VSHUFPS(ops ...operand.Op) { ctx.VSHUFPS(ops...) } - -// VSHUFPS_BCST: Shuffle Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFPS.BCST imm8 m32 xmm k xmm -// VSHUFPS.BCST imm8 m32 xmm xmm -// VSHUFPS.BCST imm8 m32 ymm k ymm -// VSHUFPS.BCST imm8 m32 ymm ymm -// VSHUFPS.BCST imm8 m32 zmm k zmm -// VSHUFPS.BCST imm8 m32 zmm zmm -// -// Construct and append a VSHUFPS.BCST instruction to the active function. -func (c *Context) VSHUFPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSHUFPS_BCST(ops...)) -} - -// VSHUFPS_BCST: Shuffle Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFPS.BCST imm8 m32 xmm k xmm -// VSHUFPS.BCST imm8 m32 xmm xmm -// VSHUFPS.BCST imm8 m32 ymm k ymm -// VSHUFPS.BCST imm8 m32 ymm ymm -// VSHUFPS.BCST imm8 m32 zmm k zmm -// VSHUFPS.BCST imm8 m32 zmm zmm -// -// Construct and append a VSHUFPS.BCST instruction to the active function. -// Operates on the global context. -func VSHUFPS_BCST(ops ...operand.Op) { ctx.VSHUFPS_BCST(ops...) } - -// VSHUFPS_BCST_Z: Shuffle Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFPS.BCST.Z imm8 m32 xmm k xmm -// VSHUFPS.BCST.Z imm8 m32 ymm k ymm -// VSHUFPS.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VSHUFPS.BCST.Z instruction to the active function. -func (c *Context) VSHUFPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSHUFPS_BCST_Z(i, m, xyz, k, xyz1)) -} - -// VSHUFPS_BCST_Z: Shuffle Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFPS.BCST.Z imm8 m32 xmm k xmm -// VSHUFPS.BCST.Z imm8 m32 ymm k ymm -// VSHUFPS.BCST.Z imm8 m32 zmm k zmm -// -// Construct and append a VSHUFPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VSHUFPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) { ctx.VSHUFPS_BCST_Z(i, m, xyz, k, xyz1) } - -// VSHUFPS_Z: Shuffle Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFPS.Z imm8 m128 xmm k xmm -// VSHUFPS.Z imm8 m256 ymm k ymm -// VSHUFPS.Z imm8 xmm xmm k xmm -// VSHUFPS.Z imm8 ymm ymm k ymm -// VSHUFPS.Z imm8 m512 zmm k zmm -// VSHUFPS.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFPS.Z instruction to the active function. -func (c *Context) VSHUFPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSHUFPS_Z(i, mxyz, xyz, k, xyz1)) -} - -// VSHUFPS_Z: Shuffle Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFPS.Z imm8 m128 xmm k xmm -// VSHUFPS.Z imm8 m256 ymm k ymm -// VSHUFPS.Z imm8 xmm xmm k xmm -// VSHUFPS.Z imm8 ymm ymm k ymm -// VSHUFPS.Z imm8 m512 zmm k zmm -// VSHUFPS.Z imm8 zmm zmm k zmm -// -// Construct and append a VSHUFPS.Z instruction to the active function. -// Operates on the global context. -func VSHUFPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) { ctx.VSHUFPS_Z(i, mxyz, xyz, k, xyz1) } - -// VSQRTPD: Compute Square Roots of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSQRTPD m128 xmm -// VSQRTPD m256 ymm -// VSQRTPD xmm xmm -// VSQRTPD ymm ymm -// VSQRTPD m128 k xmm -// VSQRTPD m256 k ymm -// VSQRTPD xmm k xmm -// VSQRTPD ymm k ymm -// VSQRTPD m512 k zmm -// VSQRTPD m512 zmm -// VSQRTPD zmm k zmm -// VSQRTPD zmm zmm -// -// Construct and append a VSQRTPD instruction to the active function. -func (c *Context) VSQRTPD(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPD(ops...)) -} - -// VSQRTPD: Compute Square Roots of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSQRTPD m128 xmm -// VSQRTPD m256 ymm -// VSQRTPD xmm xmm -// VSQRTPD ymm ymm -// VSQRTPD m128 k xmm -// VSQRTPD m256 k ymm -// VSQRTPD xmm k xmm -// VSQRTPD ymm k ymm -// VSQRTPD m512 k zmm -// VSQRTPD m512 zmm -// VSQRTPD zmm k zmm -// VSQRTPD zmm zmm -// -// Construct and append a VSQRTPD instruction to the active function. -// Operates on the global context. -func VSQRTPD(ops ...operand.Op) { ctx.VSQRTPD(ops...) } - -// VSQRTPD_BCST: Compute Square Roots of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSQRTPD.BCST m32 k xmm -// VSQRTPD.BCST m32 k ymm -// VSQRTPD.BCST m32 xmm -// VSQRTPD.BCST m32 ymm -// VSQRTPD.BCST m64 k zmm -// VSQRTPD.BCST m64 zmm -// -// Construct and append a VSQRTPD.BCST instruction to the active function. -func (c *Context) VSQRTPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPD_BCST(ops...)) -} - -// VSQRTPD_BCST: Compute Square Roots of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSQRTPD.BCST m32 k xmm -// VSQRTPD.BCST m32 k ymm -// VSQRTPD.BCST m32 xmm -// VSQRTPD.BCST m32 ymm -// VSQRTPD.BCST m64 k zmm -// VSQRTPD.BCST m64 zmm -// -// Construct and append a VSQRTPD.BCST instruction to the active function. -// Operates on the global context. -func VSQRTPD_BCST(ops ...operand.Op) { ctx.VSQRTPD_BCST(ops...) } - -// VSQRTPD_BCST_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.BCST.Z m32 k xmm -// VSQRTPD.BCST.Z m32 k ymm -// VSQRTPD.BCST.Z m64 k zmm -// -// Construct and append a VSQRTPD.BCST.Z instruction to the active function. -func (c *Context) VSQRTPD_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VSQRTPD_BCST_Z(m, k, xyz)) -} - -// VSQRTPD_BCST_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.BCST.Z m32 k xmm -// VSQRTPD.BCST.Z m32 k ymm -// VSQRTPD.BCST.Z m64 k zmm -// -// Construct and append a VSQRTPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VSQRTPD_BCST_Z(m, k, xyz operand.Op) { ctx.VSQRTPD_BCST_Z(m, k, xyz) } - -// VSQRTPD_RD_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTPD.RD_SAE zmm k zmm -// VSQRTPD.RD_SAE zmm zmm -// -// Construct and append a VSQRTPD.RD_SAE instruction to the active function. -func (c *Context) VSQRTPD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPD_RD_SAE(ops...)) -} - -// VSQRTPD_RD_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTPD.RD_SAE zmm k zmm -// VSQRTPD.RD_SAE zmm zmm -// -// Construct and append a VSQRTPD.RD_SAE instruction to the active function. -// Operates on the global context. -func VSQRTPD_RD_SAE(ops ...operand.Op) { ctx.VSQRTPD_RD_SAE(ops...) } - -// VSQRTPD_RD_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RD_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPD.RD_SAE.Z instruction to the active function. -func (c *Context) VSQRTPD_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VSQRTPD_RD_SAE_Z(z, k, z1)) -} - -// VSQRTPD_RD_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RD_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTPD_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VSQRTPD_RD_SAE_Z(z, k, z1) } - -// VSQRTPD_RN_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSQRTPD.RN_SAE zmm k zmm -// VSQRTPD.RN_SAE zmm zmm -// -// Construct and append a VSQRTPD.RN_SAE instruction to the active function. -func (c *Context) VSQRTPD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPD_RN_SAE(ops...)) -} - -// VSQRTPD_RN_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSQRTPD.RN_SAE zmm k zmm -// VSQRTPD.RN_SAE zmm zmm -// -// Construct and append a VSQRTPD.RN_SAE instruction to the active function. -// Operates on the global context. -func VSQRTPD_RN_SAE(ops ...operand.Op) { ctx.VSQRTPD_RN_SAE(ops...) } - -// VSQRTPD_RN_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RN_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPD.RN_SAE.Z instruction to the active function. -func (c *Context) VSQRTPD_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VSQRTPD_RN_SAE_Z(z, k, z1)) -} - -// VSQRTPD_RN_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RN_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTPD_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VSQRTPD_RN_SAE_Z(z, k, z1) } - -// VSQRTPD_RU_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTPD.RU_SAE zmm k zmm -// VSQRTPD.RU_SAE zmm zmm -// -// Construct and append a VSQRTPD.RU_SAE instruction to the active function. -func (c *Context) VSQRTPD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPD_RU_SAE(ops...)) -} - -// VSQRTPD_RU_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTPD.RU_SAE zmm k zmm -// VSQRTPD.RU_SAE zmm zmm -// -// Construct and append a VSQRTPD.RU_SAE instruction to the active function. -// Operates on the global context. -func VSQRTPD_RU_SAE(ops ...operand.Op) { ctx.VSQRTPD_RU_SAE(ops...) } - -// VSQRTPD_RU_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RU_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPD.RU_SAE.Z instruction to the active function. -func (c *Context) VSQRTPD_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VSQRTPD_RU_SAE_Z(z, k, z1)) -} - -// VSQRTPD_RU_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RU_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTPD_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VSQRTPD_RU_SAE_Z(z, k, z1) } - -// VSQRTPD_RZ_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSQRTPD.RZ_SAE zmm k zmm -// VSQRTPD.RZ_SAE zmm zmm -// -// Construct and append a VSQRTPD.RZ_SAE instruction to the active function. -func (c *Context) VSQRTPD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPD_RZ_SAE(ops...)) -} - -// VSQRTPD_RZ_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSQRTPD.RZ_SAE zmm k zmm -// VSQRTPD.RZ_SAE zmm zmm -// -// Construct and append a VSQRTPD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSQRTPD_RZ_SAE(ops ...operand.Op) { ctx.VSQRTPD_RZ_SAE(ops...) } - -// VSQRTPD_RZ_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RZ_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPD.RZ_SAE.Z instruction to the active function. -func (c *Context) VSQRTPD_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VSQRTPD_RZ_SAE_Z(z, k, z1)) -} - -// VSQRTPD_RZ_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RZ_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTPD_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VSQRTPD_RZ_SAE_Z(z, k, z1) } - -// VSQRTPD_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSQRTPD.Z m128 k xmm -// VSQRTPD.Z m256 k ymm -// VSQRTPD.Z xmm k xmm -// VSQRTPD.Z ymm k ymm -// VSQRTPD.Z m512 k zmm -// VSQRTPD.Z zmm k zmm -// -// Construct and append a VSQRTPD.Z instruction to the active function. -func (c *Context) VSQRTPD_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VSQRTPD_Z(mxyz, k, xyz)) -} - -// VSQRTPD_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSQRTPD.Z m128 k xmm -// VSQRTPD.Z m256 k ymm -// VSQRTPD.Z xmm k xmm -// VSQRTPD.Z ymm k ymm -// VSQRTPD.Z m512 k zmm -// VSQRTPD.Z zmm k zmm -// -// Construct and append a VSQRTPD.Z instruction to the active function. -// Operates on the global context. -func VSQRTPD_Z(mxyz, k, xyz operand.Op) { ctx.VSQRTPD_Z(mxyz, k, xyz) } - -// VSQRTPS: Compute Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSQRTPS m128 xmm -// VSQRTPS m256 ymm -// VSQRTPS xmm xmm -// VSQRTPS ymm ymm -// VSQRTPS m128 k xmm -// VSQRTPS m256 k ymm -// VSQRTPS xmm k xmm -// VSQRTPS ymm k ymm -// VSQRTPS m512 k zmm -// VSQRTPS m512 zmm -// VSQRTPS zmm k zmm -// VSQRTPS zmm zmm -// -// Construct and append a VSQRTPS instruction to the active function. -func (c *Context) VSQRTPS(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPS(ops...)) -} - -// VSQRTPS: Compute Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSQRTPS m128 xmm -// VSQRTPS m256 ymm -// VSQRTPS xmm xmm -// VSQRTPS ymm ymm -// VSQRTPS m128 k xmm -// VSQRTPS m256 k ymm -// VSQRTPS xmm k xmm -// VSQRTPS ymm k ymm -// VSQRTPS m512 k zmm -// VSQRTPS m512 zmm -// VSQRTPS zmm k zmm -// VSQRTPS zmm zmm -// -// Construct and append a VSQRTPS instruction to the active function. -// Operates on the global context. -func VSQRTPS(ops ...operand.Op) { ctx.VSQRTPS(ops...) } - -// VSQRTPS_BCST: Compute Square Roots of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSQRTPS.BCST m32 k xmm -// VSQRTPS.BCST m32 k ymm -// VSQRTPS.BCST m32 xmm -// VSQRTPS.BCST m32 ymm -// VSQRTPS.BCST m32 k zmm -// VSQRTPS.BCST m32 zmm -// -// Construct and append a VSQRTPS.BCST instruction to the active function. -func (c *Context) VSQRTPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPS_BCST(ops...)) -} - -// VSQRTPS_BCST: Compute Square Roots of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSQRTPS.BCST m32 k xmm -// VSQRTPS.BCST m32 k ymm -// VSQRTPS.BCST m32 xmm -// VSQRTPS.BCST m32 ymm -// VSQRTPS.BCST m32 k zmm -// VSQRTPS.BCST m32 zmm -// -// Construct and append a VSQRTPS.BCST instruction to the active function. -// Operates on the global context. -func VSQRTPS_BCST(ops ...operand.Op) { ctx.VSQRTPS_BCST(ops...) } - -// VSQRTPS_BCST_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.BCST.Z m32 k xmm -// VSQRTPS.BCST.Z m32 k ymm -// VSQRTPS.BCST.Z m32 k zmm -// -// Construct and append a VSQRTPS.BCST.Z instruction to the active function. -func (c *Context) VSQRTPS_BCST_Z(m, k, xyz operand.Op) { - c.addinstruction(x86.VSQRTPS_BCST_Z(m, k, xyz)) -} - -// VSQRTPS_BCST_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.BCST.Z m32 k xmm -// VSQRTPS.BCST.Z m32 k ymm -// VSQRTPS.BCST.Z m32 k zmm -// -// Construct and append a VSQRTPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VSQRTPS_BCST_Z(m, k, xyz operand.Op) { ctx.VSQRTPS_BCST_Z(m, k, xyz) } - -// VSQRTPS_RD_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTPS.RD_SAE zmm k zmm -// VSQRTPS.RD_SAE zmm zmm -// -// Construct and append a VSQRTPS.RD_SAE instruction to the active function. -func (c *Context) VSQRTPS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPS_RD_SAE(ops...)) -} - -// VSQRTPS_RD_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTPS.RD_SAE zmm k zmm -// VSQRTPS.RD_SAE zmm zmm -// -// Construct and append a VSQRTPS.RD_SAE instruction to the active function. -// Operates on the global context. -func VSQRTPS_RD_SAE(ops ...operand.Op) { ctx.VSQRTPS_RD_SAE(ops...) } - -// VSQRTPS_RD_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RD_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPS.RD_SAE.Z instruction to the active function. -func (c *Context) VSQRTPS_RD_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VSQRTPS_RD_SAE_Z(z, k, z1)) -} - -// VSQRTPS_RD_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RD_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTPS_RD_SAE_Z(z, k, z1 operand.Op) { ctx.VSQRTPS_RD_SAE_Z(z, k, z1) } - -// VSQRTPS_RN_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSQRTPS.RN_SAE zmm k zmm -// VSQRTPS.RN_SAE zmm zmm -// -// Construct and append a VSQRTPS.RN_SAE instruction to the active function. -func (c *Context) VSQRTPS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPS_RN_SAE(ops...)) -} - -// VSQRTPS_RN_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSQRTPS.RN_SAE zmm k zmm -// VSQRTPS.RN_SAE zmm zmm -// -// Construct and append a VSQRTPS.RN_SAE instruction to the active function. -// Operates on the global context. -func VSQRTPS_RN_SAE(ops ...operand.Op) { ctx.VSQRTPS_RN_SAE(ops...) } - -// VSQRTPS_RN_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RN_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPS.RN_SAE.Z instruction to the active function. -func (c *Context) VSQRTPS_RN_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VSQRTPS_RN_SAE_Z(z, k, z1)) -} - -// VSQRTPS_RN_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RN_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTPS_RN_SAE_Z(z, k, z1 operand.Op) { ctx.VSQRTPS_RN_SAE_Z(z, k, z1) } - -// VSQRTPS_RU_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTPS.RU_SAE zmm k zmm -// VSQRTPS.RU_SAE zmm zmm -// -// Construct and append a VSQRTPS.RU_SAE instruction to the active function. -func (c *Context) VSQRTPS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPS_RU_SAE(ops...)) -} - -// VSQRTPS_RU_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTPS.RU_SAE zmm k zmm -// VSQRTPS.RU_SAE zmm zmm -// -// Construct and append a VSQRTPS.RU_SAE instruction to the active function. -// Operates on the global context. -func VSQRTPS_RU_SAE(ops ...operand.Op) { ctx.VSQRTPS_RU_SAE(ops...) } - -// VSQRTPS_RU_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RU_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPS.RU_SAE.Z instruction to the active function. -func (c *Context) VSQRTPS_RU_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VSQRTPS_RU_SAE_Z(z, k, z1)) -} - -// VSQRTPS_RU_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RU_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTPS_RU_SAE_Z(z, k, z1 operand.Op) { ctx.VSQRTPS_RU_SAE_Z(z, k, z1) } - -// VSQRTPS_RZ_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSQRTPS.RZ_SAE zmm k zmm -// VSQRTPS.RZ_SAE zmm zmm -// -// Construct and append a VSQRTPS.RZ_SAE instruction to the active function. -func (c *Context) VSQRTPS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTPS_RZ_SAE(ops...)) -} - -// VSQRTPS_RZ_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSQRTPS.RZ_SAE zmm k zmm -// VSQRTPS.RZ_SAE zmm zmm -// -// Construct and append a VSQRTPS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSQRTPS_RZ_SAE(ops ...operand.Op) { ctx.VSQRTPS_RZ_SAE(ops...) } - -// VSQRTPS_RZ_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RZ_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPS.RZ_SAE.Z instruction to the active function. -func (c *Context) VSQRTPS_RZ_SAE_Z(z, k, z1 operand.Op) { - c.addinstruction(x86.VSQRTPS_RZ_SAE_Z(z, k, z1)) -} - -// VSQRTPS_RZ_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RZ_SAE.Z zmm k zmm -// -// Construct and append a VSQRTPS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTPS_RZ_SAE_Z(z, k, z1 operand.Op) { ctx.VSQRTPS_RZ_SAE_Z(z, k, z1) } - -// VSQRTPS_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSQRTPS.Z m128 k xmm -// VSQRTPS.Z m256 k ymm -// VSQRTPS.Z xmm k xmm -// VSQRTPS.Z ymm k ymm -// VSQRTPS.Z m512 k zmm -// VSQRTPS.Z zmm k zmm -// -// Construct and append a VSQRTPS.Z instruction to the active function. -func (c *Context) VSQRTPS_Z(mxyz, k, xyz operand.Op) { - c.addinstruction(x86.VSQRTPS_Z(mxyz, k, xyz)) -} - -// VSQRTPS_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSQRTPS.Z m128 k xmm -// VSQRTPS.Z m256 k ymm -// VSQRTPS.Z xmm k xmm -// VSQRTPS.Z ymm k ymm -// VSQRTPS.Z m512 k zmm -// VSQRTPS.Z zmm k zmm -// -// Construct and append a VSQRTPS.Z instruction to the active function. -// Operates on the global context. -func VSQRTPS_Z(mxyz, k, xyz operand.Op) { ctx.VSQRTPS_Z(mxyz, k, xyz) } - -// VSQRTSD: Compute Square Root of Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VSQRTSD m64 xmm xmm -// VSQRTSD xmm xmm xmm -// VSQRTSD m64 xmm k xmm -// VSQRTSD xmm xmm k xmm -// -// Construct and append a VSQRTSD instruction to the active function. -func (c *Context) VSQRTSD(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSD(ops...)) -} - -// VSQRTSD: Compute Square Root of Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VSQRTSD m64 xmm xmm -// VSQRTSD xmm xmm xmm -// VSQRTSD m64 xmm k xmm -// VSQRTSD xmm xmm k xmm -// -// Construct and append a VSQRTSD instruction to the active function. -// Operates on the global context. -func VSQRTSD(ops ...operand.Op) { ctx.VSQRTSD(ops...) } - -// VSQRTSD_RD_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTSD.RD_SAE xmm xmm k xmm -// VSQRTSD.RD_SAE xmm xmm xmm -// -// Construct and append a VSQRTSD.RD_SAE instruction to the active function. -func (c *Context) VSQRTSD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSD_RD_SAE(ops...)) -} - -// VSQRTSD_RD_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTSD.RD_SAE xmm xmm k xmm -// VSQRTSD.RD_SAE xmm xmm xmm -// -// Construct and append a VSQRTSD.RD_SAE instruction to the active function. -// Operates on the global context. -func VSQRTSD_RD_SAE(ops ...operand.Op) { ctx.VSQRTSD_RD_SAE(ops...) } - -// VSQRTSD_RD_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.RD_SAE.Z instruction to the active function. -func (c *Context) VSQRTSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSQRTSD_RD_SAE_Z(x, x1, k, x2)) -} - -// VSQRTSD_RD_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSQRTSD_RD_SAE_Z(x, x1, k, x2) } - -// VSQRTSD_RN_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSQRTSD.RN_SAE xmm xmm k xmm -// VSQRTSD.RN_SAE xmm xmm xmm -// -// Construct and append a VSQRTSD.RN_SAE instruction to the active function. -func (c *Context) VSQRTSD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSD_RN_SAE(ops...)) -} - -// VSQRTSD_RN_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSQRTSD.RN_SAE xmm xmm k xmm -// VSQRTSD.RN_SAE xmm xmm xmm -// -// Construct and append a VSQRTSD.RN_SAE instruction to the active function. -// Operates on the global context. -func VSQRTSD_RN_SAE(ops ...operand.Op) { ctx.VSQRTSD_RN_SAE(ops...) } - -// VSQRTSD_RN_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.RN_SAE.Z instruction to the active function. -func (c *Context) VSQRTSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSQRTSD_RN_SAE_Z(x, x1, k, x2)) -} - -// VSQRTSD_RN_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSQRTSD_RN_SAE_Z(x, x1, k, x2) } - -// VSQRTSD_RU_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTSD.RU_SAE xmm xmm k xmm -// VSQRTSD.RU_SAE xmm xmm xmm -// -// Construct and append a VSQRTSD.RU_SAE instruction to the active function. -func (c *Context) VSQRTSD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSD_RU_SAE(ops...)) -} - -// VSQRTSD_RU_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTSD.RU_SAE xmm xmm k xmm -// VSQRTSD.RU_SAE xmm xmm xmm -// -// Construct and append a VSQRTSD.RU_SAE instruction to the active function. -// Operates on the global context. -func VSQRTSD_RU_SAE(ops ...operand.Op) { ctx.VSQRTSD_RU_SAE(ops...) } - -// VSQRTSD_RU_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.RU_SAE.Z instruction to the active function. -func (c *Context) VSQRTSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSQRTSD_RU_SAE_Z(x, x1, k, x2)) -} - -// VSQRTSD_RU_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSQRTSD_RU_SAE_Z(x, x1, k, x2) } - -// VSQRTSD_RZ_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSQRTSD.RZ_SAE xmm xmm k xmm -// VSQRTSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VSQRTSD.RZ_SAE instruction to the active function. -func (c *Context) VSQRTSD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSD_RZ_SAE(ops...)) -} - -// VSQRTSD_RZ_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSQRTSD.RZ_SAE xmm xmm k xmm -// VSQRTSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VSQRTSD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSQRTSD_RZ_SAE(ops ...operand.Op) { ctx.VSQRTSD_RZ_SAE(ops...) } - -// VSQRTSD_RZ_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.RZ_SAE.Z instruction to the active function. -func (c *Context) VSQRTSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSQRTSD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VSQRTSD_RZ_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSQRTSD_RZ_SAE_Z(x, x1, k, x2) } - -// VSQRTSD_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSQRTSD.Z m64 xmm k xmm -// VSQRTSD.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.Z instruction to the active function. -func (c *Context) VSQRTSD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VSQRTSD_Z(mx, x, k, x1)) -} - -// VSQRTSD_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSQRTSD.Z m64 xmm k xmm -// VSQRTSD.Z xmm xmm k xmm -// -// Construct and append a VSQRTSD.Z instruction to the active function. -// Operates on the global context. -func VSQRTSD_Z(mx, x, k, x1 operand.Op) { ctx.VSQRTSD_Z(mx, x, k, x1) } - -// VSQRTSS: Compute Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VSQRTSS m32 xmm xmm -// VSQRTSS xmm xmm xmm -// VSQRTSS m32 xmm k xmm -// VSQRTSS xmm xmm k xmm -// -// Construct and append a VSQRTSS instruction to the active function. -func (c *Context) VSQRTSS(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSS(ops...)) -} - -// VSQRTSS: Compute Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VSQRTSS m32 xmm xmm -// VSQRTSS xmm xmm xmm -// VSQRTSS m32 xmm k xmm -// VSQRTSS xmm xmm k xmm -// -// Construct and append a VSQRTSS instruction to the active function. -// Operates on the global context. -func VSQRTSS(ops ...operand.Op) { ctx.VSQRTSS(ops...) } - -// VSQRTSS_RD_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTSS.RD_SAE xmm xmm k xmm -// VSQRTSS.RD_SAE xmm xmm xmm -// -// Construct and append a VSQRTSS.RD_SAE instruction to the active function. -func (c *Context) VSQRTSS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSS_RD_SAE(ops...)) -} - -// VSQRTSS_RD_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTSS.RD_SAE xmm xmm k xmm -// VSQRTSS.RD_SAE xmm xmm xmm -// -// Construct and append a VSQRTSS.RD_SAE instruction to the active function. -// Operates on the global context. -func VSQRTSS_RD_SAE(ops ...operand.Op) { ctx.VSQRTSS_RD_SAE(ops...) } - -// VSQRTSS_RD_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.RD_SAE.Z instruction to the active function. -func (c *Context) VSQRTSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSQRTSS_RD_SAE_Z(x, x1, k, x2)) -} - -// VSQRTSS_RD_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSQRTSS_RD_SAE_Z(x, x1, k, x2) } - -// VSQRTSS_RN_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSQRTSS.RN_SAE xmm xmm k xmm -// VSQRTSS.RN_SAE xmm xmm xmm -// -// Construct and append a VSQRTSS.RN_SAE instruction to the active function. -func (c *Context) VSQRTSS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSS_RN_SAE(ops...)) -} - -// VSQRTSS_RN_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSQRTSS.RN_SAE xmm xmm k xmm -// VSQRTSS.RN_SAE xmm xmm xmm -// -// Construct and append a VSQRTSS.RN_SAE instruction to the active function. -// Operates on the global context. -func VSQRTSS_RN_SAE(ops ...operand.Op) { ctx.VSQRTSS_RN_SAE(ops...) } - -// VSQRTSS_RN_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.RN_SAE.Z instruction to the active function. -func (c *Context) VSQRTSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSQRTSS_RN_SAE_Z(x, x1, k, x2)) -} - -// VSQRTSS_RN_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSQRTSS_RN_SAE_Z(x, x1, k, x2) } - -// VSQRTSS_RU_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTSS.RU_SAE xmm xmm k xmm -// VSQRTSS.RU_SAE xmm xmm xmm -// -// Construct and append a VSQRTSS.RU_SAE instruction to the active function. -func (c *Context) VSQRTSS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSS_RU_SAE(ops...)) -} - -// VSQRTSS_RU_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTSS.RU_SAE xmm xmm k xmm -// VSQRTSS.RU_SAE xmm xmm xmm -// -// Construct and append a VSQRTSS.RU_SAE instruction to the active function. -// Operates on the global context. -func VSQRTSS_RU_SAE(ops ...operand.Op) { ctx.VSQRTSS_RU_SAE(ops...) } - -// VSQRTSS_RU_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.RU_SAE.Z instruction to the active function. -func (c *Context) VSQRTSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSQRTSS_RU_SAE_Z(x, x1, k, x2)) -} - -// VSQRTSS_RU_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSQRTSS_RU_SAE_Z(x, x1, k, x2) } - -// VSQRTSS_RZ_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSQRTSS.RZ_SAE xmm xmm k xmm -// VSQRTSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VSQRTSS.RZ_SAE instruction to the active function. -func (c *Context) VSQRTSS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSQRTSS_RZ_SAE(ops...)) -} - -// VSQRTSS_RZ_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSQRTSS.RZ_SAE xmm xmm k xmm -// VSQRTSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VSQRTSS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSQRTSS_RZ_SAE(ops ...operand.Op) { ctx.VSQRTSS_RZ_SAE(ops...) } - -// VSQRTSS_RZ_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.RZ_SAE.Z instruction to the active function. -func (c *Context) VSQRTSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSQRTSS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VSQRTSS_RZ_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSQRTSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSQRTSS_RZ_SAE_Z(x, x1, k, x2) } - -// VSQRTSS_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSQRTSS.Z m32 xmm k xmm -// VSQRTSS.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.Z instruction to the active function. -func (c *Context) VSQRTSS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VSQRTSS_Z(mx, x, k, x1)) -} - -// VSQRTSS_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSQRTSS.Z m32 xmm k xmm -// VSQRTSS.Z xmm xmm k xmm -// -// Construct and append a VSQRTSS.Z instruction to the active function. -// Operates on the global context. -func VSQRTSS_Z(mx, x, k, x1 operand.Op) { ctx.VSQRTSS_Z(mx, x, k, x1) } - -// VSTMXCSR: Store MXCSR Register State. -// -// Forms: -// -// VSTMXCSR m32 -// -// Construct and append a VSTMXCSR instruction to the active function. -func (c *Context) VSTMXCSR(m operand.Op) { - c.addinstruction(x86.VSTMXCSR(m)) -} - -// VSTMXCSR: Store MXCSR Register State. -// -// Forms: -// -// VSTMXCSR m32 -// -// Construct and append a VSTMXCSR instruction to the active function. -// Operates on the global context. -func VSTMXCSR(m operand.Op) { ctx.VSTMXCSR(m) } - -// VSUBPD: Subtract Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSUBPD m128 xmm xmm -// VSUBPD m256 ymm ymm -// VSUBPD xmm xmm xmm -// VSUBPD ymm ymm ymm -// VSUBPD m128 xmm k xmm -// VSUBPD m256 ymm k ymm -// VSUBPD xmm xmm k xmm -// VSUBPD ymm ymm k ymm -// VSUBPD m512 zmm k zmm -// VSUBPD m512 zmm zmm -// VSUBPD zmm zmm k zmm -// VSUBPD zmm zmm zmm -// -// Construct and append a VSUBPD instruction to the active function. -func (c *Context) VSUBPD(ops ...operand.Op) { - c.addinstruction(x86.VSUBPD(ops...)) -} - -// VSUBPD: Subtract Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSUBPD m128 xmm xmm -// VSUBPD m256 ymm ymm -// VSUBPD xmm xmm xmm -// VSUBPD ymm ymm ymm -// VSUBPD m128 xmm k xmm -// VSUBPD m256 ymm k ymm -// VSUBPD xmm xmm k xmm -// VSUBPD ymm ymm k ymm -// VSUBPD m512 zmm k zmm -// VSUBPD m512 zmm zmm -// VSUBPD zmm zmm k zmm -// VSUBPD zmm zmm zmm -// -// Construct and append a VSUBPD instruction to the active function. -// Operates on the global context. -func VSUBPD(ops ...operand.Op) { ctx.VSUBPD(ops...) } - -// VSUBPD_BCST: Subtract Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSUBPD.BCST m64 xmm k xmm -// VSUBPD.BCST m64 xmm xmm -// VSUBPD.BCST m64 ymm k ymm -// VSUBPD.BCST m64 ymm ymm -// VSUBPD.BCST m64 zmm k zmm -// VSUBPD.BCST m64 zmm zmm -// -// Construct and append a VSUBPD.BCST instruction to the active function. -func (c *Context) VSUBPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSUBPD_BCST(ops...)) -} - -// VSUBPD_BCST: Subtract Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSUBPD.BCST m64 xmm k xmm -// VSUBPD.BCST m64 xmm xmm -// VSUBPD.BCST m64 ymm k ymm -// VSUBPD.BCST m64 ymm ymm -// VSUBPD.BCST m64 zmm k zmm -// VSUBPD.BCST m64 zmm zmm -// -// Construct and append a VSUBPD.BCST instruction to the active function. -// Operates on the global context. -func VSUBPD_BCST(ops ...operand.Op) { ctx.VSUBPD_BCST(ops...) } - -// VSUBPD_BCST_Z: Subtract Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSUBPD.BCST.Z m64 xmm k xmm -// VSUBPD.BCST.Z m64 ymm k ymm -// VSUBPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VSUBPD.BCST.Z instruction to the active function. -func (c *Context) VSUBPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSUBPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VSUBPD_BCST_Z: Subtract Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSUBPD.BCST.Z m64 xmm k xmm -// VSUBPD.BCST.Z m64 ymm k ymm -// VSUBPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VSUBPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VSUBPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VSUBPD_BCST_Z(m, xyz, k, xyz1) } - -// VSUBPD_RD_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBPD.RD_SAE zmm zmm k zmm -// VSUBPD.RD_SAE zmm zmm zmm -// -// Construct and append a VSUBPD.RD_SAE instruction to the active function. -func (c *Context) VSUBPD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBPD_RD_SAE(ops...)) -} - -// VSUBPD_RD_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBPD.RD_SAE zmm zmm k zmm -// VSUBPD.RD_SAE zmm zmm zmm -// -// Construct and append a VSUBPD.RD_SAE instruction to the active function. -// Operates on the global context. -func VSUBPD_RD_SAE(ops ...operand.Op) { ctx.VSUBPD_RD_SAE(ops...) } - -// VSUBPD_RD_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.RD_SAE.Z instruction to the active function. -func (c *Context) VSUBPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSUBPD_RD_SAE_Z(z, z1, k, z2)) -} - -// VSUBPD_RD_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBPD_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSUBPD_RD_SAE_Z(z, z1, k, z2) } - -// VSUBPD_RN_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBPD.RN_SAE zmm zmm k zmm -// VSUBPD.RN_SAE zmm zmm zmm -// -// Construct and append a VSUBPD.RN_SAE instruction to the active function. -func (c *Context) VSUBPD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBPD_RN_SAE(ops...)) -} - -// VSUBPD_RN_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBPD.RN_SAE zmm zmm k zmm -// VSUBPD.RN_SAE zmm zmm zmm -// -// Construct and append a VSUBPD.RN_SAE instruction to the active function. -// Operates on the global context. -func VSUBPD_RN_SAE(ops ...operand.Op) { ctx.VSUBPD_RN_SAE(ops...) } - -// VSUBPD_RN_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.RN_SAE.Z instruction to the active function. -func (c *Context) VSUBPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSUBPD_RN_SAE_Z(z, z1, k, z2)) -} - -// VSUBPD_RN_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBPD_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSUBPD_RN_SAE_Z(z, z1, k, z2) } - -// VSUBPD_RU_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBPD.RU_SAE zmm zmm k zmm -// VSUBPD.RU_SAE zmm zmm zmm -// -// Construct and append a VSUBPD.RU_SAE instruction to the active function. -func (c *Context) VSUBPD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBPD_RU_SAE(ops...)) -} - -// VSUBPD_RU_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBPD.RU_SAE zmm zmm k zmm -// VSUBPD.RU_SAE zmm zmm zmm -// -// Construct and append a VSUBPD.RU_SAE instruction to the active function. -// Operates on the global context. -func VSUBPD_RU_SAE(ops ...operand.Op) { ctx.VSUBPD_RU_SAE(ops...) } - -// VSUBPD_RU_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.RU_SAE.Z instruction to the active function. -func (c *Context) VSUBPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSUBPD_RU_SAE_Z(z, z1, k, z2)) -} - -// VSUBPD_RU_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBPD_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSUBPD_RU_SAE_Z(z, z1, k, z2) } - -// VSUBPD_RZ_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBPD.RZ_SAE zmm zmm k zmm -// VSUBPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VSUBPD.RZ_SAE instruction to the active function. -func (c *Context) VSUBPD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBPD_RZ_SAE(ops...)) -} - -// VSUBPD_RZ_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBPD.RZ_SAE zmm zmm k zmm -// VSUBPD.RZ_SAE zmm zmm zmm -// -// Construct and append a VSUBPD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSUBPD_RZ_SAE(ops ...operand.Op) { ctx.VSUBPD_RZ_SAE(ops...) } - -// VSUBPD_RZ_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.RZ_SAE.Z instruction to the active function. -func (c *Context) VSUBPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSUBPD_RZ_SAE_Z(z, z1, k, z2)) -} - -// VSUBPD_RZ_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSUBPD_RZ_SAE_Z(z, z1, k, z2) } - -// VSUBPD_Z: Subtract Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBPD.Z m128 xmm k xmm -// VSUBPD.Z m256 ymm k ymm -// VSUBPD.Z xmm xmm k xmm -// VSUBPD.Z ymm ymm k ymm -// VSUBPD.Z m512 zmm k zmm -// VSUBPD.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.Z instruction to the active function. -func (c *Context) VSUBPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSUBPD_Z(mxyz, xyz, k, xyz1)) -} - -// VSUBPD_Z: Subtract Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBPD.Z m128 xmm k xmm -// VSUBPD.Z m256 ymm k ymm -// VSUBPD.Z xmm xmm k xmm -// VSUBPD.Z ymm ymm k ymm -// VSUBPD.Z m512 zmm k zmm -// VSUBPD.Z zmm zmm k zmm -// -// Construct and append a VSUBPD.Z instruction to the active function. -// Operates on the global context. -func VSUBPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VSUBPD_Z(mxyz, xyz, k, xyz1) } - -// VSUBPS: Subtract Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSUBPS m128 xmm xmm -// VSUBPS m256 ymm ymm -// VSUBPS xmm xmm xmm -// VSUBPS ymm ymm ymm -// VSUBPS m128 xmm k xmm -// VSUBPS m256 ymm k ymm -// VSUBPS xmm xmm k xmm -// VSUBPS ymm ymm k ymm -// VSUBPS m512 zmm k zmm -// VSUBPS m512 zmm zmm -// VSUBPS zmm zmm k zmm -// VSUBPS zmm zmm zmm -// -// Construct and append a VSUBPS instruction to the active function. -func (c *Context) VSUBPS(ops ...operand.Op) { - c.addinstruction(x86.VSUBPS(ops...)) -} - -// VSUBPS: Subtract Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSUBPS m128 xmm xmm -// VSUBPS m256 ymm ymm -// VSUBPS xmm xmm xmm -// VSUBPS ymm ymm ymm -// VSUBPS m128 xmm k xmm -// VSUBPS m256 ymm k ymm -// VSUBPS xmm xmm k xmm -// VSUBPS ymm ymm k ymm -// VSUBPS m512 zmm k zmm -// VSUBPS m512 zmm zmm -// VSUBPS zmm zmm k zmm -// VSUBPS zmm zmm zmm -// -// Construct and append a VSUBPS instruction to the active function. -// Operates on the global context. -func VSUBPS(ops ...operand.Op) { ctx.VSUBPS(ops...) } - -// VSUBPS_BCST: Subtract Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSUBPS.BCST m32 xmm k xmm -// VSUBPS.BCST m32 xmm xmm -// VSUBPS.BCST m32 ymm k ymm -// VSUBPS.BCST m32 ymm ymm -// VSUBPS.BCST m32 zmm k zmm -// VSUBPS.BCST m32 zmm zmm -// -// Construct and append a VSUBPS.BCST instruction to the active function. -func (c *Context) VSUBPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VSUBPS_BCST(ops...)) -} - -// VSUBPS_BCST: Subtract Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSUBPS.BCST m32 xmm k xmm -// VSUBPS.BCST m32 xmm xmm -// VSUBPS.BCST m32 ymm k ymm -// VSUBPS.BCST m32 ymm ymm -// VSUBPS.BCST m32 zmm k zmm -// VSUBPS.BCST m32 zmm zmm -// -// Construct and append a VSUBPS.BCST instruction to the active function. -// Operates on the global context. -func VSUBPS_BCST(ops ...operand.Op) { ctx.VSUBPS_BCST(ops...) } - -// VSUBPS_BCST_Z: Subtract Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSUBPS.BCST.Z m32 xmm k xmm -// VSUBPS.BCST.Z m32 ymm k ymm -// VSUBPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VSUBPS.BCST.Z instruction to the active function. -func (c *Context) VSUBPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSUBPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VSUBPS_BCST_Z: Subtract Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSUBPS.BCST.Z m32 xmm k xmm -// VSUBPS.BCST.Z m32 ymm k ymm -// VSUBPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VSUBPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VSUBPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VSUBPS_BCST_Z(m, xyz, k, xyz1) } - -// VSUBPS_RD_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBPS.RD_SAE zmm zmm k zmm -// VSUBPS.RD_SAE zmm zmm zmm -// -// Construct and append a VSUBPS.RD_SAE instruction to the active function. -func (c *Context) VSUBPS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBPS_RD_SAE(ops...)) -} - -// VSUBPS_RD_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBPS.RD_SAE zmm zmm k zmm -// VSUBPS.RD_SAE zmm zmm zmm -// -// Construct and append a VSUBPS.RD_SAE instruction to the active function. -// Operates on the global context. -func VSUBPS_RD_SAE(ops ...operand.Op) { ctx.VSUBPS_RD_SAE(ops...) } - -// VSUBPS_RD_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.RD_SAE.Z instruction to the active function. -func (c *Context) VSUBPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSUBPS_RD_SAE_Z(z, z1, k, z2)) -} - -// VSUBPS_RD_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RD_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBPS_RD_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSUBPS_RD_SAE_Z(z, z1, k, z2) } - -// VSUBPS_RN_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBPS.RN_SAE zmm zmm k zmm -// VSUBPS.RN_SAE zmm zmm zmm -// -// Construct and append a VSUBPS.RN_SAE instruction to the active function. -func (c *Context) VSUBPS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBPS_RN_SAE(ops...)) -} - -// VSUBPS_RN_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBPS.RN_SAE zmm zmm k zmm -// VSUBPS.RN_SAE zmm zmm zmm -// -// Construct and append a VSUBPS.RN_SAE instruction to the active function. -// Operates on the global context. -func VSUBPS_RN_SAE(ops ...operand.Op) { ctx.VSUBPS_RN_SAE(ops...) } - -// VSUBPS_RN_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.RN_SAE.Z instruction to the active function. -func (c *Context) VSUBPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSUBPS_RN_SAE_Z(z, z1, k, z2)) -} - -// VSUBPS_RN_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RN_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBPS_RN_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSUBPS_RN_SAE_Z(z, z1, k, z2) } - -// VSUBPS_RU_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBPS.RU_SAE zmm zmm k zmm -// VSUBPS.RU_SAE zmm zmm zmm -// -// Construct and append a VSUBPS.RU_SAE instruction to the active function. -func (c *Context) VSUBPS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBPS_RU_SAE(ops...)) -} - -// VSUBPS_RU_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBPS.RU_SAE zmm zmm k zmm -// VSUBPS.RU_SAE zmm zmm zmm -// -// Construct and append a VSUBPS.RU_SAE instruction to the active function. -// Operates on the global context. -func VSUBPS_RU_SAE(ops ...operand.Op) { ctx.VSUBPS_RU_SAE(ops...) } - -// VSUBPS_RU_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.RU_SAE.Z instruction to the active function. -func (c *Context) VSUBPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSUBPS_RU_SAE_Z(z, z1, k, z2)) -} - -// VSUBPS_RU_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RU_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBPS_RU_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSUBPS_RU_SAE_Z(z, z1, k, z2) } - -// VSUBPS_RZ_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBPS.RZ_SAE zmm zmm k zmm -// VSUBPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VSUBPS.RZ_SAE instruction to the active function. -func (c *Context) VSUBPS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBPS_RZ_SAE(ops...)) -} - -// VSUBPS_RZ_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBPS.RZ_SAE zmm zmm k zmm -// VSUBPS.RZ_SAE zmm zmm zmm -// -// Construct and append a VSUBPS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSUBPS_RZ_SAE(ops ...operand.Op) { ctx.VSUBPS_RZ_SAE(ops...) } - -// VSUBPS_RZ_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.RZ_SAE.Z instruction to the active function. -func (c *Context) VSUBPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { - c.addinstruction(x86.VSUBPS_RZ_SAE_Z(z, z1, k, z2)) -} - -// VSUBPS_RZ_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RZ_SAE.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) { ctx.VSUBPS_RZ_SAE_Z(z, z1, k, z2) } - -// VSUBPS_Z: Subtract Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBPS.Z m128 xmm k xmm -// VSUBPS.Z m256 ymm k ymm -// VSUBPS.Z xmm xmm k xmm -// VSUBPS.Z ymm ymm k ymm -// VSUBPS.Z m512 zmm k zmm -// VSUBPS.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.Z instruction to the active function. -func (c *Context) VSUBPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VSUBPS_Z(mxyz, xyz, k, xyz1)) -} - -// VSUBPS_Z: Subtract Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBPS.Z m128 xmm k xmm -// VSUBPS.Z m256 ymm k ymm -// VSUBPS.Z xmm xmm k xmm -// VSUBPS.Z ymm ymm k ymm -// VSUBPS.Z m512 zmm k zmm -// VSUBPS.Z zmm zmm k zmm -// -// Construct and append a VSUBPS.Z instruction to the active function. -// Operates on the global context. -func VSUBPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VSUBPS_Z(mxyz, xyz, k, xyz1) } - -// VSUBSD: Subtract Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VSUBSD m64 xmm xmm -// VSUBSD xmm xmm xmm -// VSUBSD m64 xmm k xmm -// VSUBSD xmm xmm k xmm -// -// Construct and append a VSUBSD instruction to the active function. -func (c *Context) VSUBSD(ops ...operand.Op) { - c.addinstruction(x86.VSUBSD(ops...)) -} - -// VSUBSD: Subtract Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VSUBSD m64 xmm xmm -// VSUBSD xmm xmm xmm -// VSUBSD m64 xmm k xmm -// VSUBSD xmm xmm k xmm -// -// Construct and append a VSUBSD instruction to the active function. -// Operates on the global context. -func VSUBSD(ops ...operand.Op) { ctx.VSUBSD(ops...) } - -// VSUBSD_RD_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBSD.RD_SAE xmm xmm k xmm -// VSUBSD.RD_SAE xmm xmm xmm -// -// Construct and append a VSUBSD.RD_SAE instruction to the active function. -func (c *Context) VSUBSD_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBSD_RD_SAE(ops...)) -} - -// VSUBSD_RD_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBSD.RD_SAE xmm xmm k xmm -// VSUBSD.RD_SAE xmm xmm xmm -// -// Construct and append a VSUBSD.RD_SAE instruction to the active function. -// Operates on the global context. -func VSUBSD_RD_SAE(ops ...operand.Op) { ctx.VSUBSD_RD_SAE(ops...) } - -// VSUBSD_RD_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.RD_SAE.Z instruction to the active function. -func (c *Context) VSUBSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSUBSD_RD_SAE_Z(x, x1, k, x2)) -} - -// VSUBSD_RD_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBSD_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSUBSD_RD_SAE_Z(x, x1, k, x2) } - -// VSUBSD_RN_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBSD.RN_SAE xmm xmm k xmm -// VSUBSD.RN_SAE xmm xmm xmm -// -// Construct and append a VSUBSD.RN_SAE instruction to the active function. -func (c *Context) VSUBSD_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBSD_RN_SAE(ops...)) -} - -// VSUBSD_RN_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBSD.RN_SAE xmm xmm k xmm -// VSUBSD.RN_SAE xmm xmm xmm -// -// Construct and append a VSUBSD.RN_SAE instruction to the active function. -// Operates on the global context. -func VSUBSD_RN_SAE(ops ...operand.Op) { ctx.VSUBSD_RN_SAE(ops...) } - -// VSUBSD_RN_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.RN_SAE.Z instruction to the active function. -func (c *Context) VSUBSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSUBSD_RN_SAE_Z(x, x1, k, x2)) -} - -// VSUBSD_RN_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBSD_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSUBSD_RN_SAE_Z(x, x1, k, x2) } - -// VSUBSD_RU_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBSD.RU_SAE xmm xmm k xmm -// VSUBSD.RU_SAE xmm xmm xmm -// -// Construct and append a VSUBSD.RU_SAE instruction to the active function. -func (c *Context) VSUBSD_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBSD_RU_SAE(ops...)) -} - -// VSUBSD_RU_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBSD.RU_SAE xmm xmm k xmm -// VSUBSD.RU_SAE xmm xmm xmm -// -// Construct and append a VSUBSD.RU_SAE instruction to the active function. -// Operates on the global context. -func VSUBSD_RU_SAE(ops ...operand.Op) { ctx.VSUBSD_RU_SAE(ops...) } - -// VSUBSD_RU_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.RU_SAE.Z instruction to the active function. -func (c *Context) VSUBSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSUBSD_RU_SAE_Z(x, x1, k, x2)) -} - -// VSUBSD_RU_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBSD_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSUBSD_RU_SAE_Z(x, x1, k, x2) } - -// VSUBSD_RZ_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBSD.RZ_SAE xmm xmm k xmm -// VSUBSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VSUBSD.RZ_SAE instruction to the active function. -func (c *Context) VSUBSD_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBSD_RZ_SAE(ops...)) -} - -// VSUBSD_RZ_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBSD.RZ_SAE xmm xmm k xmm -// VSUBSD.RZ_SAE xmm xmm xmm -// -// Construct and append a VSUBSD.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSUBSD_RZ_SAE(ops ...operand.Op) { ctx.VSUBSD_RZ_SAE(ops...) } - -// VSUBSD_RZ_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.RZ_SAE.Z instruction to the active function. -func (c *Context) VSUBSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSUBSD_RZ_SAE_Z(x, x1, k, x2)) -} - -// VSUBSD_RZ_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSUBSD_RZ_SAE_Z(x, x1, k, x2) } - -// VSUBSD_Z: Subtract Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBSD.Z m64 xmm k xmm -// VSUBSD.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.Z instruction to the active function. -func (c *Context) VSUBSD_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VSUBSD_Z(mx, x, k, x1)) -} - -// VSUBSD_Z: Subtract Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBSD.Z m64 xmm k xmm -// VSUBSD.Z xmm xmm k xmm -// -// Construct and append a VSUBSD.Z instruction to the active function. -// Operates on the global context. -func VSUBSD_Z(mx, x, k, x1 operand.Op) { ctx.VSUBSD_Z(mx, x, k, x1) } - -// VSUBSS: Subtract Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VSUBSS m32 xmm xmm -// VSUBSS xmm xmm xmm -// VSUBSS m32 xmm k xmm -// VSUBSS xmm xmm k xmm -// -// Construct and append a VSUBSS instruction to the active function. -func (c *Context) VSUBSS(ops ...operand.Op) { - c.addinstruction(x86.VSUBSS(ops...)) -} - -// VSUBSS: Subtract Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VSUBSS m32 xmm xmm -// VSUBSS xmm xmm xmm -// VSUBSS m32 xmm k xmm -// VSUBSS xmm xmm k xmm -// -// Construct and append a VSUBSS instruction to the active function. -// Operates on the global context. -func VSUBSS(ops ...operand.Op) { ctx.VSUBSS(ops...) } - -// VSUBSS_RD_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBSS.RD_SAE xmm xmm k xmm -// VSUBSS.RD_SAE xmm xmm xmm -// -// Construct and append a VSUBSS.RD_SAE instruction to the active function. -func (c *Context) VSUBSS_RD_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBSS_RD_SAE(ops...)) -} - -// VSUBSS_RD_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBSS.RD_SAE xmm xmm k xmm -// VSUBSS.RD_SAE xmm xmm xmm -// -// Construct and append a VSUBSS.RD_SAE instruction to the active function. -// Operates on the global context. -func VSUBSS_RD_SAE(ops ...operand.Op) { ctx.VSUBSS_RD_SAE(ops...) } - -// VSUBSS_RD_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.RD_SAE.Z instruction to the active function. -func (c *Context) VSUBSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSUBSS_RD_SAE_Z(x, x1, k, x2)) -} - -// VSUBSS_RD_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RD_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.RD_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBSS_RD_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSUBSS_RD_SAE_Z(x, x1, k, x2) } - -// VSUBSS_RN_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBSS.RN_SAE xmm xmm k xmm -// VSUBSS.RN_SAE xmm xmm xmm -// -// Construct and append a VSUBSS.RN_SAE instruction to the active function. -func (c *Context) VSUBSS_RN_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBSS_RN_SAE(ops...)) -} - -// VSUBSS_RN_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBSS.RN_SAE xmm xmm k xmm -// VSUBSS.RN_SAE xmm xmm xmm -// -// Construct and append a VSUBSS.RN_SAE instruction to the active function. -// Operates on the global context. -func VSUBSS_RN_SAE(ops ...operand.Op) { ctx.VSUBSS_RN_SAE(ops...) } - -// VSUBSS_RN_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.RN_SAE.Z instruction to the active function. -func (c *Context) VSUBSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSUBSS_RN_SAE_Z(x, x1, k, x2)) -} - -// VSUBSS_RN_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RN_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.RN_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBSS_RN_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSUBSS_RN_SAE_Z(x, x1, k, x2) } - -// VSUBSS_RU_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBSS.RU_SAE xmm xmm k xmm -// VSUBSS.RU_SAE xmm xmm xmm -// -// Construct and append a VSUBSS.RU_SAE instruction to the active function. -func (c *Context) VSUBSS_RU_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBSS_RU_SAE(ops...)) -} - -// VSUBSS_RU_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBSS.RU_SAE xmm xmm k xmm -// VSUBSS.RU_SAE xmm xmm xmm -// -// Construct and append a VSUBSS.RU_SAE instruction to the active function. -// Operates on the global context. -func VSUBSS_RU_SAE(ops ...operand.Op) { ctx.VSUBSS_RU_SAE(ops...) } - -// VSUBSS_RU_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.RU_SAE.Z instruction to the active function. -func (c *Context) VSUBSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSUBSS_RU_SAE_Z(x, x1, k, x2)) -} - -// VSUBSS_RU_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RU_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.RU_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBSS_RU_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSUBSS_RU_SAE_Z(x, x1, k, x2) } - -// VSUBSS_RZ_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBSS.RZ_SAE xmm xmm k xmm -// VSUBSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VSUBSS.RZ_SAE instruction to the active function. -func (c *Context) VSUBSS_RZ_SAE(ops ...operand.Op) { - c.addinstruction(x86.VSUBSS_RZ_SAE(ops...)) -} - -// VSUBSS_RZ_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBSS.RZ_SAE xmm xmm k xmm -// VSUBSS.RZ_SAE xmm xmm xmm -// -// Construct and append a VSUBSS.RZ_SAE instruction to the active function. -// Operates on the global context. -func VSUBSS_RZ_SAE(ops ...operand.Op) { ctx.VSUBSS_RZ_SAE(ops...) } - -// VSUBSS_RZ_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.RZ_SAE.Z instruction to the active function. -func (c *Context) VSUBSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { - c.addinstruction(x86.VSUBSS_RZ_SAE_Z(x, x1, k, x2)) -} - -// VSUBSS_RZ_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RZ_SAE.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.RZ_SAE.Z instruction to the active function. -// Operates on the global context. -func VSUBSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) { ctx.VSUBSS_RZ_SAE_Z(x, x1, k, x2) } - -// VSUBSS_Z: Subtract Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBSS.Z m32 xmm k xmm -// VSUBSS.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.Z instruction to the active function. -func (c *Context) VSUBSS_Z(mx, x, k, x1 operand.Op) { - c.addinstruction(x86.VSUBSS_Z(mx, x, k, x1)) -} - -// VSUBSS_Z: Subtract Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBSS.Z m32 xmm k xmm -// VSUBSS.Z xmm xmm k xmm -// -// Construct and append a VSUBSS.Z instruction to the active function. -// Operates on the global context. -func VSUBSS_Z(mx, x, k, x1 operand.Op) { ctx.VSUBSS_Z(mx, x, k, x1) } - -// VTESTPD: Packed Double-Precision Floating-Point Bit Test. -// -// Forms: -// -// VTESTPD m128 xmm -// VTESTPD m256 ymm -// VTESTPD xmm xmm -// VTESTPD ymm ymm -// -// Construct and append a VTESTPD instruction to the active function. -func (c *Context) VTESTPD(mxy, xy operand.Op) { - c.addinstruction(x86.VTESTPD(mxy, xy)) -} - -// VTESTPD: Packed Double-Precision Floating-Point Bit Test. -// -// Forms: -// -// VTESTPD m128 xmm -// VTESTPD m256 ymm -// VTESTPD xmm xmm -// VTESTPD ymm ymm -// -// Construct and append a VTESTPD instruction to the active function. -// Operates on the global context. -func VTESTPD(mxy, xy operand.Op) { ctx.VTESTPD(mxy, xy) } - -// VTESTPS: Packed Single-Precision Floating-Point Bit Test. -// -// Forms: -// -// VTESTPS m128 xmm -// VTESTPS m256 ymm -// VTESTPS xmm xmm -// VTESTPS ymm ymm -// -// Construct and append a VTESTPS instruction to the active function. -func (c *Context) VTESTPS(mxy, xy operand.Op) { - c.addinstruction(x86.VTESTPS(mxy, xy)) -} - -// VTESTPS: Packed Single-Precision Floating-Point Bit Test. -// -// Forms: -// -// VTESTPS m128 xmm -// VTESTPS m256 ymm -// VTESTPS xmm xmm -// VTESTPS ymm ymm -// -// Construct and append a VTESTPS instruction to the active function. -// Operates on the global context. -func VTESTPS(mxy, xy operand.Op) { ctx.VTESTPS(mxy, xy) } - -// VUCOMISD: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VUCOMISD m64 xmm -// VUCOMISD xmm xmm -// -// Construct and append a VUCOMISD instruction to the active function. -func (c *Context) VUCOMISD(mx, x operand.Op) { - c.addinstruction(x86.VUCOMISD(mx, x)) -} - -// VUCOMISD: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VUCOMISD m64 xmm -// VUCOMISD xmm xmm -// -// Construct and append a VUCOMISD instruction to the active function. -// Operates on the global context. -func VUCOMISD(mx, x operand.Op) { ctx.VUCOMISD(mx, x) } - -// VUCOMISD_SAE: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VUCOMISD.SAE xmm xmm -// -// Construct and append a VUCOMISD.SAE instruction to the active function. -func (c *Context) VUCOMISD_SAE(x, x1 operand.Op) { - c.addinstruction(x86.VUCOMISD_SAE(x, x1)) -} - -// VUCOMISD_SAE: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VUCOMISD.SAE xmm xmm -// -// Construct and append a VUCOMISD.SAE instruction to the active function. -// Operates on the global context. -func VUCOMISD_SAE(x, x1 operand.Op) { ctx.VUCOMISD_SAE(x, x1) } - -// VUCOMISS: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VUCOMISS m32 xmm -// VUCOMISS xmm xmm -// -// Construct and append a VUCOMISS instruction to the active function. -func (c *Context) VUCOMISS(mx, x operand.Op) { - c.addinstruction(x86.VUCOMISS(mx, x)) -} - -// VUCOMISS: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VUCOMISS m32 xmm -// VUCOMISS xmm xmm -// -// Construct and append a VUCOMISS instruction to the active function. -// Operates on the global context. -func VUCOMISS(mx, x operand.Op) { ctx.VUCOMISS(mx, x) } - -// VUCOMISS_SAE: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VUCOMISS.SAE xmm xmm -// -// Construct and append a VUCOMISS.SAE instruction to the active function. -func (c *Context) VUCOMISS_SAE(x, x1 operand.Op) { - c.addinstruction(x86.VUCOMISS_SAE(x, x1)) -} - -// VUCOMISS_SAE: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VUCOMISS.SAE xmm xmm -// -// Construct and append a VUCOMISS.SAE instruction to the active function. -// Operates on the global context. -func VUCOMISS_SAE(x, x1 operand.Op) { ctx.VUCOMISS_SAE(x, x1) } - -// VUNPCKHPD: Unpack and Interleave High Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKHPD m128 xmm xmm -// VUNPCKHPD m256 ymm ymm -// VUNPCKHPD xmm xmm xmm -// VUNPCKHPD ymm ymm ymm -// VUNPCKHPD m128 xmm k xmm -// VUNPCKHPD m256 ymm k ymm -// VUNPCKHPD xmm xmm k xmm -// VUNPCKHPD ymm ymm k ymm -// VUNPCKHPD m512 zmm k zmm -// VUNPCKHPD m512 zmm zmm -// VUNPCKHPD zmm zmm k zmm -// VUNPCKHPD zmm zmm zmm -// -// Construct and append a VUNPCKHPD instruction to the active function. -func (c *Context) VUNPCKHPD(ops ...operand.Op) { - c.addinstruction(x86.VUNPCKHPD(ops...)) -} - -// VUNPCKHPD: Unpack and Interleave High Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKHPD m128 xmm xmm -// VUNPCKHPD m256 ymm ymm -// VUNPCKHPD xmm xmm xmm -// VUNPCKHPD ymm ymm ymm -// VUNPCKHPD m128 xmm k xmm -// VUNPCKHPD m256 ymm k ymm -// VUNPCKHPD xmm xmm k xmm -// VUNPCKHPD ymm ymm k ymm -// VUNPCKHPD m512 zmm k zmm -// VUNPCKHPD m512 zmm zmm -// VUNPCKHPD zmm zmm k zmm -// VUNPCKHPD zmm zmm zmm -// -// Construct and append a VUNPCKHPD instruction to the active function. -// Operates on the global context. -func VUNPCKHPD(ops ...operand.Op) { ctx.VUNPCKHPD(ops...) } - -// VUNPCKHPD_BCST: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKHPD.BCST m64 xmm k xmm -// VUNPCKHPD.BCST m64 xmm xmm -// VUNPCKHPD.BCST m64 ymm k ymm -// VUNPCKHPD.BCST m64 ymm ymm -// VUNPCKHPD.BCST m64 zmm k zmm -// VUNPCKHPD.BCST m64 zmm zmm -// -// Construct and append a VUNPCKHPD.BCST instruction to the active function. -func (c *Context) VUNPCKHPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VUNPCKHPD_BCST(ops...)) -} - -// VUNPCKHPD_BCST: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKHPD.BCST m64 xmm k xmm -// VUNPCKHPD.BCST m64 xmm xmm -// VUNPCKHPD.BCST m64 ymm k ymm -// VUNPCKHPD.BCST m64 ymm ymm -// VUNPCKHPD.BCST m64 zmm k zmm -// VUNPCKHPD.BCST m64 zmm zmm -// -// Construct and append a VUNPCKHPD.BCST instruction to the active function. -// Operates on the global context. -func VUNPCKHPD_BCST(ops ...operand.Op) { ctx.VUNPCKHPD_BCST(ops...) } - -// VUNPCKHPD_BCST_Z: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKHPD.BCST.Z m64 xmm k xmm -// VUNPCKHPD.BCST.Z m64 ymm k ymm -// VUNPCKHPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VUNPCKHPD.BCST.Z instruction to the active function. -func (c *Context) VUNPCKHPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VUNPCKHPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VUNPCKHPD_BCST_Z: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKHPD.BCST.Z m64 xmm k xmm -// VUNPCKHPD.BCST.Z m64 ymm k ymm -// VUNPCKHPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VUNPCKHPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VUNPCKHPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VUNPCKHPD_BCST_Z(m, xyz, k, xyz1) } - -// VUNPCKHPD_Z: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKHPD.Z m128 xmm k xmm -// VUNPCKHPD.Z m256 ymm k ymm -// VUNPCKHPD.Z xmm xmm k xmm -// VUNPCKHPD.Z ymm ymm k ymm -// VUNPCKHPD.Z m512 zmm k zmm -// VUNPCKHPD.Z zmm zmm k zmm -// -// Construct and append a VUNPCKHPD.Z instruction to the active function. -func (c *Context) VUNPCKHPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VUNPCKHPD_Z(mxyz, xyz, k, xyz1)) -} - -// VUNPCKHPD_Z: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKHPD.Z m128 xmm k xmm -// VUNPCKHPD.Z m256 ymm k ymm -// VUNPCKHPD.Z xmm xmm k xmm -// VUNPCKHPD.Z ymm ymm k ymm -// VUNPCKHPD.Z m512 zmm k zmm -// VUNPCKHPD.Z zmm zmm k zmm -// -// Construct and append a VUNPCKHPD.Z instruction to the active function. -// Operates on the global context. -func VUNPCKHPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VUNPCKHPD_Z(mxyz, xyz, k, xyz1) } - -// VUNPCKHPS: Unpack and Interleave High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKHPS m128 xmm xmm -// VUNPCKHPS m256 ymm ymm -// VUNPCKHPS xmm xmm xmm -// VUNPCKHPS ymm ymm ymm -// VUNPCKHPS m128 xmm k xmm -// VUNPCKHPS m256 ymm k ymm -// VUNPCKHPS xmm xmm k xmm -// VUNPCKHPS ymm ymm k ymm -// VUNPCKHPS m512 zmm k zmm -// VUNPCKHPS m512 zmm zmm -// VUNPCKHPS zmm zmm k zmm -// VUNPCKHPS zmm zmm zmm -// -// Construct and append a VUNPCKHPS instruction to the active function. -func (c *Context) VUNPCKHPS(ops ...operand.Op) { - c.addinstruction(x86.VUNPCKHPS(ops...)) -} - -// VUNPCKHPS: Unpack and Interleave High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKHPS m128 xmm xmm -// VUNPCKHPS m256 ymm ymm -// VUNPCKHPS xmm xmm xmm -// VUNPCKHPS ymm ymm ymm -// VUNPCKHPS m128 xmm k xmm -// VUNPCKHPS m256 ymm k ymm -// VUNPCKHPS xmm xmm k xmm -// VUNPCKHPS ymm ymm k ymm -// VUNPCKHPS m512 zmm k zmm -// VUNPCKHPS m512 zmm zmm -// VUNPCKHPS zmm zmm k zmm -// VUNPCKHPS zmm zmm zmm -// -// Construct and append a VUNPCKHPS instruction to the active function. -// Operates on the global context. -func VUNPCKHPS(ops ...operand.Op) { ctx.VUNPCKHPS(ops...) } - -// VUNPCKHPS_BCST: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKHPS.BCST m32 xmm k xmm -// VUNPCKHPS.BCST m32 xmm xmm -// VUNPCKHPS.BCST m32 ymm k ymm -// VUNPCKHPS.BCST m32 ymm ymm -// VUNPCKHPS.BCST m32 zmm k zmm -// VUNPCKHPS.BCST m32 zmm zmm -// -// Construct and append a VUNPCKHPS.BCST instruction to the active function. -func (c *Context) VUNPCKHPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VUNPCKHPS_BCST(ops...)) -} - -// VUNPCKHPS_BCST: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKHPS.BCST m32 xmm k xmm -// VUNPCKHPS.BCST m32 xmm xmm -// VUNPCKHPS.BCST m32 ymm k ymm -// VUNPCKHPS.BCST m32 ymm ymm -// VUNPCKHPS.BCST m32 zmm k zmm -// VUNPCKHPS.BCST m32 zmm zmm -// -// Construct and append a VUNPCKHPS.BCST instruction to the active function. -// Operates on the global context. -func VUNPCKHPS_BCST(ops ...operand.Op) { ctx.VUNPCKHPS_BCST(ops...) } - -// VUNPCKHPS_BCST_Z: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKHPS.BCST.Z m32 xmm k xmm -// VUNPCKHPS.BCST.Z m32 ymm k ymm -// VUNPCKHPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VUNPCKHPS.BCST.Z instruction to the active function. -func (c *Context) VUNPCKHPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VUNPCKHPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VUNPCKHPS_BCST_Z: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKHPS.BCST.Z m32 xmm k xmm -// VUNPCKHPS.BCST.Z m32 ymm k ymm -// VUNPCKHPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VUNPCKHPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VUNPCKHPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VUNPCKHPS_BCST_Z(m, xyz, k, xyz1) } - -// VUNPCKHPS_Z: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKHPS.Z m128 xmm k xmm -// VUNPCKHPS.Z m256 ymm k ymm -// VUNPCKHPS.Z xmm xmm k xmm -// VUNPCKHPS.Z ymm ymm k ymm -// VUNPCKHPS.Z m512 zmm k zmm -// VUNPCKHPS.Z zmm zmm k zmm -// -// Construct and append a VUNPCKHPS.Z instruction to the active function. -func (c *Context) VUNPCKHPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VUNPCKHPS_Z(mxyz, xyz, k, xyz1)) -} - -// VUNPCKHPS_Z: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKHPS.Z m128 xmm k xmm -// VUNPCKHPS.Z m256 ymm k ymm -// VUNPCKHPS.Z xmm xmm k xmm -// VUNPCKHPS.Z ymm ymm k ymm -// VUNPCKHPS.Z m512 zmm k zmm -// VUNPCKHPS.Z zmm zmm k zmm -// -// Construct and append a VUNPCKHPS.Z instruction to the active function. -// Operates on the global context. -func VUNPCKHPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VUNPCKHPS_Z(mxyz, xyz, k, xyz1) } - -// VUNPCKLPD: Unpack and Interleave Low Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKLPD m128 xmm xmm -// VUNPCKLPD m256 ymm ymm -// VUNPCKLPD xmm xmm xmm -// VUNPCKLPD ymm ymm ymm -// VUNPCKLPD m128 xmm k xmm -// VUNPCKLPD m256 ymm k ymm -// VUNPCKLPD xmm xmm k xmm -// VUNPCKLPD ymm ymm k ymm -// VUNPCKLPD m512 zmm k zmm -// VUNPCKLPD m512 zmm zmm -// VUNPCKLPD zmm zmm k zmm -// VUNPCKLPD zmm zmm zmm -// -// Construct and append a VUNPCKLPD instruction to the active function. -func (c *Context) VUNPCKLPD(ops ...operand.Op) { - c.addinstruction(x86.VUNPCKLPD(ops...)) -} - -// VUNPCKLPD: Unpack and Interleave Low Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKLPD m128 xmm xmm -// VUNPCKLPD m256 ymm ymm -// VUNPCKLPD xmm xmm xmm -// VUNPCKLPD ymm ymm ymm -// VUNPCKLPD m128 xmm k xmm -// VUNPCKLPD m256 ymm k ymm -// VUNPCKLPD xmm xmm k xmm -// VUNPCKLPD ymm ymm k ymm -// VUNPCKLPD m512 zmm k zmm -// VUNPCKLPD m512 zmm zmm -// VUNPCKLPD zmm zmm k zmm -// VUNPCKLPD zmm zmm zmm -// -// Construct and append a VUNPCKLPD instruction to the active function. -// Operates on the global context. -func VUNPCKLPD(ops ...operand.Op) { ctx.VUNPCKLPD(ops...) } - -// VUNPCKLPD_BCST: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKLPD.BCST m64 xmm k xmm -// VUNPCKLPD.BCST m64 xmm xmm -// VUNPCKLPD.BCST m64 ymm k ymm -// VUNPCKLPD.BCST m64 ymm ymm -// VUNPCKLPD.BCST m64 zmm k zmm -// VUNPCKLPD.BCST m64 zmm zmm -// -// Construct and append a VUNPCKLPD.BCST instruction to the active function. -func (c *Context) VUNPCKLPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VUNPCKLPD_BCST(ops...)) -} - -// VUNPCKLPD_BCST: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKLPD.BCST m64 xmm k xmm -// VUNPCKLPD.BCST m64 xmm xmm -// VUNPCKLPD.BCST m64 ymm k ymm -// VUNPCKLPD.BCST m64 ymm ymm -// VUNPCKLPD.BCST m64 zmm k zmm -// VUNPCKLPD.BCST m64 zmm zmm -// -// Construct and append a VUNPCKLPD.BCST instruction to the active function. -// Operates on the global context. -func VUNPCKLPD_BCST(ops ...operand.Op) { ctx.VUNPCKLPD_BCST(ops...) } - -// VUNPCKLPD_BCST_Z: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKLPD.BCST.Z m64 xmm k xmm -// VUNPCKLPD.BCST.Z m64 ymm k ymm -// VUNPCKLPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VUNPCKLPD.BCST.Z instruction to the active function. -func (c *Context) VUNPCKLPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VUNPCKLPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VUNPCKLPD_BCST_Z: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKLPD.BCST.Z m64 xmm k xmm -// VUNPCKLPD.BCST.Z m64 ymm k ymm -// VUNPCKLPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VUNPCKLPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VUNPCKLPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VUNPCKLPD_BCST_Z(m, xyz, k, xyz1) } - -// VUNPCKLPD_Z: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKLPD.Z m128 xmm k xmm -// VUNPCKLPD.Z m256 ymm k ymm -// VUNPCKLPD.Z xmm xmm k xmm -// VUNPCKLPD.Z ymm ymm k ymm -// VUNPCKLPD.Z m512 zmm k zmm -// VUNPCKLPD.Z zmm zmm k zmm -// -// Construct and append a VUNPCKLPD.Z instruction to the active function. -func (c *Context) VUNPCKLPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VUNPCKLPD_Z(mxyz, xyz, k, xyz1)) -} - -// VUNPCKLPD_Z: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKLPD.Z m128 xmm k xmm -// VUNPCKLPD.Z m256 ymm k ymm -// VUNPCKLPD.Z xmm xmm k xmm -// VUNPCKLPD.Z ymm ymm k ymm -// VUNPCKLPD.Z m512 zmm k zmm -// VUNPCKLPD.Z zmm zmm k zmm -// -// Construct and append a VUNPCKLPD.Z instruction to the active function. -// Operates on the global context. -func VUNPCKLPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VUNPCKLPD_Z(mxyz, xyz, k, xyz1) } - -// VUNPCKLPS: Unpack and Interleave Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKLPS m128 xmm xmm -// VUNPCKLPS m256 ymm ymm -// VUNPCKLPS xmm xmm xmm -// VUNPCKLPS ymm ymm ymm -// VUNPCKLPS m128 xmm k xmm -// VUNPCKLPS m256 ymm k ymm -// VUNPCKLPS xmm xmm k xmm -// VUNPCKLPS ymm ymm k ymm -// VUNPCKLPS m512 zmm k zmm -// VUNPCKLPS m512 zmm zmm -// VUNPCKLPS zmm zmm k zmm -// VUNPCKLPS zmm zmm zmm -// -// Construct and append a VUNPCKLPS instruction to the active function. -func (c *Context) VUNPCKLPS(ops ...operand.Op) { - c.addinstruction(x86.VUNPCKLPS(ops...)) -} - -// VUNPCKLPS: Unpack and Interleave Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKLPS m128 xmm xmm -// VUNPCKLPS m256 ymm ymm -// VUNPCKLPS xmm xmm xmm -// VUNPCKLPS ymm ymm ymm -// VUNPCKLPS m128 xmm k xmm -// VUNPCKLPS m256 ymm k ymm -// VUNPCKLPS xmm xmm k xmm -// VUNPCKLPS ymm ymm k ymm -// VUNPCKLPS m512 zmm k zmm -// VUNPCKLPS m512 zmm zmm -// VUNPCKLPS zmm zmm k zmm -// VUNPCKLPS zmm zmm zmm -// -// Construct and append a VUNPCKLPS instruction to the active function. -// Operates on the global context. -func VUNPCKLPS(ops ...operand.Op) { ctx.VUNPCKLPS(ops...) } - -// VUNPCKLPS_BCST: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKLPS.BCST m32 xmm k xmm -// VUNPCKLPS.BCST m32 xmm xmm -// VUNPCKLPS.BCST m32 ymm k ymm -// VUNPCKLPS.BCST m32 ymm ymm -// VUNPCKLPS.BCST m32 zmm k zmm -// VUNPCKLPS.BCST m32 zmm zmm -// -// Construct and append a VUNPCKLPS.BCST instruction to the active function. -func (c *Context) VUNPCKLPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VUNPCKLPS_BCST(ops...)) -} - -// VUNPCKLPS_BCST: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKLPS.BCST m32 xmm k xmm -// VUNPCKLPS.BCST m32 xmm xmm -// VUNPCKLPS.BCST m32 ymm k ymm -// VUNPCKLPS.BCST m32 ymm ymm -// VUNPCKLPS.BCST m32 zmm k zmm -// VUNPCKLPS.BCST m32 zmm zmm -// -// Construct and append a VUNPCKLPS.BCST instruction to the active function. -// Operates on the global context. -func VUNPCKLPS_BCST(ops ...operand.Op) { ctx.VUNPCKLPS_BCST(ops...) } - -// VUNPCKLPS_BCST_Z: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKLPS.BCST.Z m32 xmm k xmm -// VUNPCKLPS.BCST.Z m32 ymm k ymm -// VUNPCKLPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VUNPCKLPS.BCST.Z instruction to the active function. -func (c *Context) VUNPCKLPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VUNPCKLPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VUNPCKLPS_BCST_Z: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKLPS.BCST.Z m32 xmm k xmm -// VUNPCKLPS.BCST.Z m32 ymm k ymm -// VUNPCKLPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VUNPCKLPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VUNPCKLPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VUNPCKLPS_BCST_Z(m, xyz, k, xyz1) } - -// VUNPCKLPS_Z: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKLPS.Z m128 xmm k xmm -// VUNPCKLPS.Z m256 ymm k ymm -// VUNPCKLPS.Z xmm xmm k xmm -// VUNPCKLPS.Z ymm ymm k ymm -// VUNPCKLPS.Z m512 zmm k zmm -// VUNPCKLPS.Z zmm zmm k zmm -// -// Construct and append a VUNPCKLPS.Z instruction to the active function. -func (c *Context) VUNPCKLPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VUNPCKLPS_Z(mxyz, xyz, k, xyz1)) -} - -// VUNPCKLPS_Z: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKLPS.Z m128 xmm k xmm -// VUNPCKLPS.Z m256 ymm k ymm -// VUNPCKLPS.Z xmm xmm k xmm -// VUNPCKLPS.Z ymm ymm k ymm -// VUNPCKLPS.Z m512 zmm k zmm -// VUNPCKLPS.Z zmm zmm k zmm -// -// Construct and append a VUNPCKLPS.Z instruction to the active function. -// Operates on the global context. -func VUNPCKLPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VUNPCKLPS_Z(mxyz, xyz, k, xyz1) } - -// VXORPD: Bitwise Logical XOR for Double-Precision Floating-Point Values. -// -// Forms: -// -// VXORPD m128 xmm xmm -// VXORPD m256 ymm ymm -// VXORPD xmm xmm xmm -// VXORPD ymm ymm ymm -// VXORPD m128 xmm k xmm -// VXORPD m256 ymm k ymm -// VXORPD xmm xmm k xmm -// VXORPD ymm ymm k ymm -// VXORPD m512 zmm k zmm -// VXORPD m512 zmm zmm -// VXORPD zmm zmm k zmm -// VXORPD zmm zmm zmm -// -// Construct and append a VXORPD instruction to the active function. -func (c *Context) VXORPD(ops ...operand.Op) { - c.addinstruction(x86.VXORPD(ops...)) -} - -// VXORPD: Bitwise Logical XOR for Double-Precision Floating-Point Values. -// -// Forms: -// -// VXORPD m128 xmm xmm -// VXORPD m256 ymm ymm -// VXORPD xmm xmm xmm -// VXORPD ymm ymm ymm -// VXORPD m128 xmm k xmm -// VXORPD m256 ymm k ymm -// VXORPD xmm xmm k xmm -// VXORPD ymm ymm k ymm -// VXORPD m512 zmm k zmm -// VXORPD m512 zmm zmm -// VXORPD zmm zmm k zmm -// VXORPD zmm zmm zmm -// -// Construct and append a VXORPD instruction to the active function. -// Operates on the global context. -func VXORPD(ops ...operand.Op) { ctx.VXORPD(ops...) } - -// VXORPD_BCST: Bitwise Logical XOR for Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VXORPD.BCST m64 xmm k xmm -// VXORPD.BCST m64 xmm xmm -// VXORPD.BCST m64 ymm k ymm -// VXORPD.BCST m64 ymm ymm -// VXORPD.BCST m64 zmm k zmm -// VXORPD.BCST m64 zmm zmm -// -// Construct and append a VXORPD.BCST instruction to the active function. -func (c *Context) VXORPD_BCST(ops ...operand.Op) { - c.addinstruction(x86.VXORPD_BCST(ops...)) -} - -// VXORPD_BCST: Bitwise Logical XOR for Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VXORPD.BCST m64 xmm k xmm -// VXORPD.BCST m64 xmm xmm -// VXORPD.BCST m64 ymm k ymm -// VXORPD.BCST m64 ymm ymm -// VXORPD.BCST m64 zmm k zmm -// VXORPD.BCST m64 zmm zmm -// -// Construct and append a VXORPD.BCST instruction to the active function. -// Operates on the global context. -func VXORPD_BCST(ops ...operand.Op) { ctx.VXORPD_BCST(ops...) } - -// VXORPD_BCST_Z: Bitwise Logical XOR for Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VXORPD.BCST.Z m64 xmm k xmm -// VXORPD.BCST.Z m64 ymm k ymm -// VXORPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VXORPD.BCST.Z instruction to the active function. -func (c *Context) VXORPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VXORPD_BCST_Z(m, xyz, k, xyz1)) -} - -// VXORPD_BCST_Z: Bitwise Logical XOR for Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VXORPD.BCST.Z m64 xmm k xmm -// VXORPD.BCST.Z m64 ymm k ymm -// VXORPD.BCST.Z m64 zmm k zmm -// -// Construct and append a VXORPD.BCST.Z instruction to the active function. -// Operates on the global context. -func VXORPD_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VXORPD_BCST_Z(m, xyz, k, xyz1) } - -// VXORPD_Z: Bitwise Logical XOR for Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VXORPD.Z m128 xmm k xmm -// VXORPD.Z m256 ymm k ymm -// VXORPD.Z xmm xmm k xmm -// VXORPD.Z ymm ymm k ymm -// VXORPD.Z m512 zmm k zmm -// VXORPD.Z zmm zmm k zmm -// -// Construct and append a VXORPD.Z instruction to the active function. -func (c *Context) VXORPD_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VXORPD_Z(mxyz, xyz, k, xyz1)) -} - -// VXORPD_Z: Bitwise Logical XOR for Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VXORPD.Z m128 xmm k xmm -// VXORPD.Z m256 ymm k ymm -// VXORPD.Z xmm xmm k xmm -// VXORPD.Z ymm ymm k ymm -// VXORPD.Z m512 zmm k zmm -// VXORPD.Z zmm zmm k zmm -// -// Construct and append a VXORPD.Z instruction to the active function. -// Operates on the global context. -func VXORPD_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VXORPD_Z(mxyz, xyz, k, xyz1) } - -// VXORPS: Bitwise Logical XOR for Single-Precision Floating-Point Values. -// -// Forms: -// -// VXORPS m128 xmm xmm -// VXORPS m256 ymm ymm -// VXORPS xmm xmm xmm -// VXORPS ymm ymm ymm -// VXORPS m128 xmm k xmm -// VXORPS m256 ymm k ymm -// VXORPS xmm xmm k xmm -// VXORPS ymm ymm k ymm -// VXORPS m512 zmm k zmm -// VXORPS m512 zmm zmm -// VXORPS zmm zmm k zmm -// VXORPS zmm zmm zmm -// -// Construct and append a VXORPS instruction to the active function. -func (c *Context) VXORPS(ops ...operand.Op) { - c.addinstruction(x86.VXORPS(ops...)) -} - -// VXORPS: Bitwise Logical XOR for Single-Precision Floating-Point Values. -// -// Forms: -// -// VXORPS m128 xmm xmm -// VXORPS m256 ymm ymm -// VXORPS xmm xmm xmm -// VXORPS ymm ymm ymm -// VXORPS m128 xmm k xmm -// VXORPS m256 ymm k ymm -// VXORPS xmm xmm k xmm -// VXORPS ymm ymm k ymm -// VXORPS m512 zmm k zmm -// VXORPS m512 zmm zmm -// VXORPS zmm zmm k zmm -// VXORPS zmm zmm zmm -// -// Construct and append a VXORPS instruction to the active function. -// Operates on the global context. -func VXORPS(ops ...operand.Op) { ctx.VXORPS(ops...) } - -// VXORPS_BCST: Bitwise Logical XOR for Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VXORPS.BCST m32 xmm k xmm -// VXORPS.BCST m32 xmm xmm -// VXORPS.BCST m32 ymm k ymm -// VXORPS.BCST m32 ymm ymm -// VXORPS.BCST m32 zmm k zmm -// VXORPS.BCST m32 zmm zmm -// -// Construct and append a VXORPS.BCST instruction to the active function. -func (c *Context) VXORPS_BCST(ops ...operand.Op) { - c.addinstruction(x86.VXORPS_BCST(ops...)) -} - -// VXORPS_BCST: Bitwise Logical XOR for Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VXORPS.BCST m32 xmm k xmm -// VXORPS.BCST m32 xmm xmm -// VXORPS.BCST m32 ymm k ymm -// VXORPS.BCST m32 ymm ymm -// VXORPS.BCST m32 zmm k zmm -// VXORPS.BCST m32 zmm zmm -// -// Construct and append a VXORPS.BCST instruction to the active function. -// Operates on the global context. -func VXORPS_BCST(ops ...operand.Op) { ctx.VXORPS_BCST(ops...) } - -// VXORPS_BCST_Z: Bitwise Logical XOR for Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VXORPS.BCST.Z m32 xmm k xmm -// VXORPS.BCST.Z m32 ymm k ymm -// VXORPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VXORPS.BCST.Z instruction to the active function. -func (c *Context) VXORPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VXORPS_BCST_Z(m, xyz, k, xyz1)) -} - -// VXORPS_BCST_Z: Bitwise Logical XOR for Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VXORPS.BCST.Z m32 xmm k xmm -// VXORPS.BCST.Z m32 ymm k ymm -// VXORPS.BCST.Z m32 zmm k zmm -// -// Construct and append a VXORPS.BCST.Z instruction to the active function. -// Operates on the global context. -func VXORPS_BCST_Z(m, xyz, k, xyz1 operand.Op) { ctx.VXORPS_BCST_Z(m, xyz, k, xyz1) } - -// VXORPS_Z: Bitwise Logical XOR for Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VXORPS.Z m128 xmm k xmm -// VXORPS.Z m256 ymm k ymm -// VXORPS.Z xmm xmm k xmm -// VXORPS.Z ymm ymm k ymm -// VXORPS.Z m512 zmm k zmm -// VXORPS.Z zmm zmm k zmm -// -// Construct and append a VXORPS.Z instruction to the active function. -func (c *Context) VXORPS_Z(mxyz, xyz, k, xyz1 operand.Op) { - c.addinstruction(x86.VXORPS_Z(mxyz, xyz, k, xyz1)) -} - -// VXORPS_Z: Bitwise Logical XOR for Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VXORPS.Z m128 xmm k xmm -// VXORPS.Z m256 ymm k ymm -// VXORPS.Z xmm xmm k xmm -// VXORPS.Z ymm ymm k ymm -// VXORPS.Z m512 zmm k zmm -// VXORPS.Z zmm zmm k zmm -// -// Construct and append a VXORPS.Z instruction to the active function. -// Operates on the global context. -func VXORPS_Z(mxyz, xyz, k, xyz1 operand.Op) { ctx.VXORPS_Z(mxyz, xyz, k, xyz1) } - -// VZEROALL: Zero All YMM Registers. -// -// Forms: -// -// VZEROALL -// -// Construct and append a VZEROALL instruction to the active function. -func (c *Context) VZEROALL() { - c.addinstruction(x86.VZEROALL()) -} - -// VZEROALL: Zero All YMM Registers. -// -// Forms: -// -// VZEROALL -// -// Construct and append a VZEROALL instruction to the active function. -// Operates on the global context. -func VZEROALL() { ctx.VZEROALL() } - -// VZEROUPPER: Zero Upper Bits of YMM Registers. -// -// Forms: -// -// VZEROUPPER -// -// Construct and append a VZEROUPPER instruction to the active function. -func (c *Context) VZEROUPPER() { - c.addinstruction(x86.VZEROUPPER()) -} - -// VZEROUPPER: Zero Upper Bits of YMM Registers. -// -// Forms: -// -// VZEROUPPER -// -// Construct and append a VZEROUPPER instruction to the active function. -// Operates on the global context. -func VZEROUPPER() { ctx.VZEROUPPER() } - -// XADDB: Exchange and Add. -// -// Forms: -// -// XADDB r8 m8 -// XADDB r8 r8 -// -// Construct and append a XADDB instruction to the active function. -func (c *Context) XADDB(r, mr operand.Op) { - c.addinstruction(x86.XADDB(r, mr)) -} - -// XADDB: Exchange and Add. -// -// Forms: -// -// XADDB r8 m8 -// XADDB r8 r8 -// -// Construct and append a XADDB instruction to the active function. -// Operates on the global context. -func XADDB(r, mr operand.Op) { ctx.XADDB(r, mr) } - -// XADDL: Exchange and Add. -// -// Forms: -// -// XADDL r32 m32 -// XADDL r32 r32 -// -// Construct and append a XADDL instruction to the active function. -func (c *Context) XADDL(r, mr operand.Op) { - c.addinstruction(x86.XADDL(r, mr)) -} - -// XADDL: Exchange and Add. -// -// Forms: -// -// XADDL r32 m32 -// XADDL r32 r32 -// -// Construct and append a XADDL instruction to the active function. -// Operates on the global context. -func XADDL(r, mr operand.Op) { ctx.XADDL(r, mr) } - -// XADDQ: Exchange and Add. -// -// Forms: -// -// XADDQ r64 m64 -// XADDQ r64 r64 -// -// Construct and append a XADDQ instruction to the active function. -func (c *Context) XADDQ(r, mr operand.Op) { - c.addinstruction(x86.XADDQ(r, mr)) -} - -// XADDQ: Exchange and Add. -// -// Forms: -// -// XADDQ r64 m64 -// XADDQ r64 r64 -// -// Construct and append a XADDQ instruction to the active function. -// Operates on the global context. -func XADDQ(r, mr operand.Op) { ctx.XADDQ(r, mr) } - -// XADDW: Exchange and Add. -// -// Forms: -// -// XADDW r16 m16 -// XADDW r16 r16 -// -// Construct and append a XADDW instruction to the active function. -func (c *Context) XADDW(r, mr operand.Op) { - c.addinstruction(x86.XADDW(r, mr)) -} - -// XADDW: Exchange and Add. -// -// Forms: -// -// XADDW r16 m16 -// XADDW r16 r16 -// -// Construct and append a XADDW instruction to the active function. -// Operates on the global context. -func XADDW(r, mr operand.Op) { ctx.XADDW(r, mr) } - -// XCHGB: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGB m8 r8 -// XCHGB r8 m8 -// XCHGB r8 r8 -// -// Construct and append a XCHGB instruction to the active function. -func (c *Context) XCHGB(mr, mr1 operand.Op) { - c.addinstruction(x86.XCHGB(mr, mr1)) -} - -// XCHGB: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGB m8 r8 -// XCHGB r8 m8 -// XCHGB r8 r8 -// -// Construct and append a XCHGB instruction to the active function. -// Operates on the global context. -func XCHGB(mr, mr1 operand.Op) { ctx.XCHGB(mr, mr1) } - -// XCHGL: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGL eax r32 -// XCHGL m32 r32 -// XCHGL r32 eax -// XCHGL r32 m32 -// XCHGL r32 r32 -// -// Construct and append a XCHGL instruction to the active function. -func (c *Context) XCHGL(emr, emr1 operand.Op) { - c.addinstruction(x86.XCHGL(emr, emr1)) -} - -// XCHGL: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGL eax r32 -// XCHGL m32 r32 -// XCHGL r32 eax -// XCHGL r32 m32 -// XCHGL r32 r32 -// -// Construct and append a XCHGL instruction to the active function. -// Operates on the global context. -func XCHGL(emr, emr1 operand.Op) { ctx.XCHGL(emr, emr1) } - -// XCHGQ: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGQ m64 r64 -// XCHGQ r64 m64 -// XCHGQ r64 r64 -// XCHGQ r64 rax -// XCHGQ rax r64 -// -// Construct and append a XCHGQ instruction to the active function. -func (c *Context) XCHGQ(mr, mr1 operand.Op) { - c.addinstruction(x86.XCHGQ(mr, mr1)) -} - -// XCHGQ: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGQ m64 r64 -// XCHGQ r64 m64 -// XCHGQ r64 r64 -// XCHGQ r64 rax -// XCHGQ rax r64 -// -// Construct and append a XCHGQ instruction to the active function. -// Operates on the global context. -func XCHGQ(mr, mr1 operand.Op) { ctx.XCHGQ(mr, mr1) } - -// XCHGW: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGW ax r16 -// XCHGW m16 r16 -// XCHGW r16 ax -// XCHGW r16 m16 -// XCHGW r16 r16 -// -// Construct and append a XCHGW instruction to the active function. -func (c *Context) XCHGW(amr, amr1 operand.Op) { - c.addinstruction(x86.XCHGW(amr, amr1)) -} - -// XCHGW: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGW ax r16 -// XCHGW m16 r16 -// XCHGW r16 ax -// XCHGW r16 m16 -// XCHGW r16 r16 -// -// Construct and append a XCHGW instruction to the active function. -// Operates on the global context. -func XCHGW(amr, amr1 operand.Op) { ctx.XCHGW(amr, amr1) } - -// XGETBV: Get Value of Extended Control Register. -// -// Forms: -// -// XGETBV -// -// Construct and append a XGETBV instruction to the active function. -func (c *Context) XGETBV() { - c.addinstruction(x86.XGETBV()) -} - -// XGETBV: Get Value of Extended Control Register. -// -// Forms: -// -// XGETBV -// -// Construct and append a XGETBV instruction to the active function. -// Operates on the global context. -func XGETBV() { ctx.XGETBV() } - -// XLAT: Table Look-up Translation. -// -// Forms: -// -// XLAT -// -// Construct and append a XLAT instruction to the active function. -func (c *Context) XLAT() { - c.addinstruction(x86.XLAT()) -} - -// XLAT: Table Look-up Translation. -// -// Forms: -// -// XLAT -// -// Construct and append a XLAT instruction to the active function. -// Operates on the global context. -func XLAT() { ctx.XLAT() } - -// XORB: Logical Exclusive OR. -// -// Forms: -// -// XORB imm8 al -// XORB imm8 m8 -// XORB imm8 r8 -// XORB m8 r8 -// XORB r8 m8 -// XORB r8 r8 -// -// Construct and append a XORB instruction to the active function. -func (c *Context) XORB(imr, amr operand.Op) { - c.addinstruction(x86.XORB(imr, amr)) -} - -// XORB: Logical Exclusive OR. -// -// Forms: -// -// XORB imm8 al -// XORB imm8 m8 -// XORB imm8 r8 -// XORB m8 r8 -// XORB r8 m8 -// XORB r8 r8 -// -// Construct and append a XORB instruction to the active function. -// Operates on the global context. -func XORB(imr, amr operand.Op) { ctx.XORB(imr, amr) } - -// XORL: Logical Exclusive OR. -// -// Forms: -// -// XORL imm32 eax -// XORL imm32 m32 -// XORL imm32 r32 -// XORL imm8 m32 -// XORL imm8 r32 -// XORL m32 r32 -// XORL r32 m32 -// XORL r32 r32 -// -// Construct and append a XORL instruction to the active function. -func (c *Context) XORL(imr, emr operand.Op) { - c.addinstruction(x86.XORL(imr, emr)) -} - -// XORL: Logical Exclusive OR. -// -// Forms: -// -// XORL imm32 eax -// XORL imm32 m32 -// XORL imm32 r32 -// XORL imm8 m32 -// XORL imm8 r32 -// XORL m32 r32 -// XORL r32 m32 -// XORL r32 r32 -// -// Construct and append a XORL instruction to the active function. -// Operates on the global context. -func XORL(imr, emr operand.Op) { ctx.XORL(imr, emr) } - -// XORPD: Bitwise Logical XOR for Double-Precision Floating-Point Values. -// -// Forms: -// -// XORPD m128 xmm -// XORPD xmm xmm -// -// Construct and append a XORPD instruction to the active function. -func (c *Context) XORPD(mx, x operand.Op) { - c.addinstruction(x86.XORPD(mx, x)) -} - -// XORPD: Bitwise Logical XOR for Double-Precision Floating-Point Values. -// -// Forms: -// -// XORPD m128 xmm -// XORPD xmm xmm -// -// Construct and append a XORPD instruction to the active function. -// Operates on the global context. -func XORPD(mx, x operand.Op) { ctx.XORPD(mx, x) } - -// XORPS: Bitwise Logical XOR for Single-Precision Floating-Point Values. -// -// Forms: -// -// XORPS m128 xmm -// XORPS xmm xmm -// -// Construct and append a XORPS instruction to the active function. -func (c *Context) XORPS(mx, x operand.Op) { - c.addinstruction(x86.XORPS(mx, x)) -} - -// XORPS: Bitwise Logical XOR for Single-Precision Floating-Point Values. -// -// Forms: -// -// XORPS m128 xmm -// XORPS xmm xmm -// -// Construct and append a XORPS instruction to the active function. -// Operates on the global context. -func XORPS(mx, x operand.Op) { ctx.XORPS(mx, x) } - -// XORQ: Logical Exclusive OR. -// -// Forms: -// -// XORQ imm32 m64 -// XORQ imm32 r64 -// XORQ imm32 rax -// XORQ imm8 m64 -// XORQ imm8 r64 -// XORQ m64 r64 -// XORQ r64 m64 -// XORQ r64 r64 -// -// Construct and append a XORQ instruction to the active function. -func (c *Context) XORQ(imr, mr operand.Op) { - c.addinstruction(x86.XORQ(imr, mr)) -} - -// XORQ: Logical Exclusive OR. -// -// Forms: -// -// XORQ imm32 m64 -// XORQ imm32 r64 -// XORQ imm32 rax -// XORQ imm8 m64 -// XORQ imm8 r64 -// XORQ m64 r64 -// XORQ r64 m64 -// XORQ r64 r64 -// -// Construct and append a XORQ instruction to the active function. -// Operates on the global context. -func XORQ(imr, mr operand.Op) { ctx.XORQ(imr, mr) } - -// XORW: Logical Exclusive OR. -// -// Forms: -// -// XORW imm16 ax -// XORW imm16 m16 -// XORW imm16 r16 -// XORW imm8 m16 -// XORW imm8 r16 -// XORW m16 r16 -// XORW r16 m16 -// XORW r16 r16 -// -// Construct and append a XORW instruction to the active function. -func (c *Context) XORW(imr, amr operand.Op) { - c.addinstruction(x86.XORW(imr, amr)) -} - -// XORW: Logical Exclusive OR. -// -// Forms: -// -// XORW imm16 ax -// XORW imm16 m16 -// XORW imm16 r16 -// XORW imm8 m16 -// XORW imm8 r16 -// XORW m16 r16 -// XORW r16 m16 -// XORW r16 r16 -// -// Construct and append a XORW instruction to the active function. -// Operates on the global context. -func XORW(imr, amr operand.Op) { ctx.XORW(imr, amr) } diff --git a/vendor/github.com/mmcloughlin/avo/build/zmov.go b/vendor/github.com/mmcloughlin/avo/build/zmov.go deleted file mode 100644 index ff97308a..00000000 --- a/vendor/github.com/mmcloughlin/avo/build/zmov.go +++ /dev/null @@ -1,294 +0,0 @@ -// Code generated by command: avogen -output zmov.go mov. DO NOT EDIT. - -package build - -import ( - "go/types" - - "github.com/mmcloughlin/avo/operand" -) - -func (c *Context) mov(a, b operand.Op, an, bn int, t *types.Basic) { - switch { - case an == 8 && operand.IsK(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVB(a, b) - case an == 8 && operand.IsK(a) && bn == 1 && operand.IsM8(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVB(a, b) - case an == 8 && operand.IsK(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVB(a, b) - case an == 1 && operand.IsM8(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVB(a, b) - case an == 4 && operand.IsR32(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVB(a, b) - case an == 8 && operand.IsK(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVD(a, b) - case an == 8 && operand.IsK(a) && bn == 4 && operand.IsM32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVD(a, b) - case an == 8 && operand.IsK(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVD(a, b) - case an == 4 && operand.IsM32(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVD(a, b) - case an == 4 && operand.IsR32(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVD(a, b) - case an == 8 && operand.IsK(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVQ(a, b) - case an == 8 && operand.IsK(a) && bn == 8 && operand.IsM64(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVQ(a, b) - case an == 8 && operand.IsK(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVQ(a, b) - case an == 8 && operand.IsM64(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVQ(a, b) - case an == 8 && operand.IsR64(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVQ(a, b) - case an == 8 && operand.IsK(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVW(a, b) - case an == 8 && operand.IsK(a) && bn == 2 && operand.IsM16(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVW(a, b) - case an == 8 && operand.IsK(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVW(a, b) - case an == 2 && operand.IsM16(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVW(a, b) - case an == 4 && operand.IsR32(a) && bn == 8 && operand.IsK(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.KMOVW(a, b) - case an == 1 && operand.IsM8(a) && bn == 1 && operand.IsR8(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVB(a, b) - case an == 1 && operand.IsR8(a) && bn == 1 && operand.IsM8(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVB(a, b) - case an == 1 && operand.IsR8(a) && bn == 1 && operand.IsR8(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVB(a, b) - case an == 1 && operand.IsM8(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVBLSX(a, b) - case an == 1 && operand.IsR8(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVBLSX(a, b) - case an == 1 && operand.IsM8(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVBLZX(a, b) - case an == 1 && operand.IsM8(a) && bn == 4 && operand.IsR32(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVBLZX(a, b) - case an == 1 && operand.IsR8(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVBLZX(a, b) - case an == 1 && operand.IsR8(a) && bn == 4 && operand.IsR32(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVBLZX(a, b) - case an == 1 && operand.IsM8(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVBQSX(a, b) - case an == 1 && operand.IsR8(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVBQSX(a, b) - case an == 1 && operand.IsM8(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVBQZX(a, b) - case an == 1 && operand.IsM8(a) && bn == 8 && operand.IsR64(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVBQZX(a, b) - case an == 1 && operand.IsR8(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVBQZX(a, b) - case an == 1 && operand.IsR8(a) && bn == 8 && operand.IsR64(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVBQZX(a, b) - case an == 1 && operand.IsM8(a) && bn == 2 && operand.IsR16(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVBWSX(a, b) - case an == 1 && operand.IsR8(a) && bn == 2 && operand.IsR16(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVBWSX(a, b) - case an == 1 && operand.IsM8(a) && bn == 2 && operand.IsR16(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVBWZX(a, b) - case an == 1 && operand.IsM8(a) && bn == 2 && operand.IsR16(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVBWZX(a, b) - case an == 1 && operand.IsR8(a) && bn == 2 && operand.IsR16(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVBWZX(a, b) - case an == 1 && operand.IsR8(a) && bn == 2 && operand.IsR16(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVBWZX(a, b) - case an == 4 && operand.IsM32(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVL(a, b) - case an == 4 && operand.IsR32(a) && bn == 4 && operand.IsM32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVL(a, b) - case an == 4 && operand.IsR32(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVL(a, b) - case an == 4 && operand.IsM32(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVLQSX(a, b) - case an == 4 && operand.IsR32(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVLQSX(a, b) - case an == 4 && operand.IsM32(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVLQZX(a, b) - case an == 4 && operand.IsM32(a) && bn == 8 && operand.IsR64(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVLQZX(a, b) - case an == 16 && operand.IsM128(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVOU(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsM128(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVOU(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVOU(a, b) - case an == 4 && operand.IsM32(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 8 && operand.IsM64(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 4 && operand.IsR32(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 8 && operand.IsR64(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 16 && operand.IsXMM(a) && bn == 4 && operand.IsM32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 16 && operand.IsXMM(a) && bn == 8 && operand.IsM64(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 16 && operand.IsXMM(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 16 && operand.IsXMM(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 8 && operand.IsM64(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 8 && operand.IsR64(a) && bn == 8 && operand.IsM64(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 8 && operand.IsR64(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVQ(a, b) - case an == 8 && operand.IsM64(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&types.IsFloat) != 0: - c.MOVSD(a, b) - case an == 16 && operand.IsXMM(a) && bn == 8 && operand.IsM64(b) && (t.Info()&types.IsFloat) != 0: - c.MOVSD(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&types.IsFloat) != 0: - c.MOVSD(a, b) - case an == 4 && operand.IsM32(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&types.IsFloat) != 0: - c.MOVSS(a, b) - case an == 16 && operand.IsXMM(a) && bn == 4 && operand.IsM32(b) && (t.Info()&types.IsFloat) != 0: - c.MOVSS(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&types.IsFloat) != 0: - c.MOVSS(a, b) - case an == 2 && operand.IsM16(a) && bn == 2 && operand.IsR16(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVW(a, b) - case an == 2 && operand.IsR16(a) && bn == 2 && operand.IsM16(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVW(a, b) - case an == 2 && operand.IsR16(a) && bn == 2 && operand.IsR16(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.MOVW(a, b) - case an == 2 && operand.IsM16(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVWLSX(a, b) - case an == 2 && operand.IsR16(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVWLSX(a, b) - case an == 2 && operand.IsM16(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVWLZX(a, b) - case an == 2 && operand.IsM16(a) && bn == 4 && operand.IsR32(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVWLZX(a, b) - case an == 2 && operand.IsR16(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVWLZX(a, b) - case an == 2 && operand.IsR16(a) && bn == 4 && operand.IsR32(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVWLZX(a, b) - case an == 2 && operand.IsM16(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVWQSX(a, b) - case an == 2 && operand.IsR16(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == types.IsInteger: - c.MOVWQSX(a, b) - case an == 2 && operand.IsM16(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVWQZX(a, b) - case an == 2 && operand.IsM16(a) && bn == 8 && operand.IsR64(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVWQZX(a, b) - case an == 2 && operand.IsR16(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsUnsigned)) == (types.IsInteger|types.IsUnsigned): - c.MOVWQZX(a, b) - case an == 2 && operand.IsR16(a) && bn == 8 && operand.IsR64(b) && (t.Info()&types.IsBoolean) != 0: - c.MOVWQZX(a, b) - case an == 4 && operand.IsM32(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVD(a, b) - case an == 4 && operand.IsR32(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVD(a, b) - case an == 16 && operand.IsXMM(a) && bn == 4 && operand.IsM32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVD(a, b) - case an == 16 && operand.IsXMM(a) && bn == 4 && operand.IsR32(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVD(a, b) - case an == 16 && operand.IsM128(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU(a, b) - case an == 32 && operand.IsM256(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsM128(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsM256(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU(a, b) - case an == 16 && operand.IsM128(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU16(a, b) - case an == 32 && operand.IsM256(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU16(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsM128(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU16(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU16(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsM256(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU16(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU16(a, b) - case an == 64 && operand.IsM512(a) && bn == 64 && operand.IsZMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU16(a, b) - case an == 64 && operand.IsZMM(a) && bn == 64 && operand.IsM512(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU16(a, b) - case an == 64 && operand.IsZMM(a) && bn == 64 && operand.IsZMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU16(a, b) - case an == 16 && operand.IsM128(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU32(a, b) - case an == 32 && operand.IsM256(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU32(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsM128(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU32(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU32(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsM256(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU32(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU32(a, b) - case an == 64 && operand.IsM512(a) && bn == 64 && operand.IsZMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU32(a, b) - case an == 64 && operand.IsZMM(a) && bn == 64 && operand.IsM512(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU32(a, b) - case an == 64 && operand.IsZMM(a) && bn == 64 && operand.IsZMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU32(a, b) - case an == 16 && operand.IsM128(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU64(a, b) - case an == 32 && operand.IsM256(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU64(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsM128(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU64(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU64(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsM256(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU64(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU64(a, b) - case an == 64 && operand.IsM512(a) && bn == 64 && operand.IsZMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU64(a, b) - case an == 64 && operand.IsZMM(a) && bn == 64 && operand.IsM512(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU64(a, b) - case an == 64 && operand.IsZMM(a) && bn == 64 && operand.IsZMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU64(a, b) - case an == 16 && operand.IsM128(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU8(a, b) - case an == 32 && operand.IsM256(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU8(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsM128(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU8(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU8(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsM256(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU8(a, b) - case an == 32 && operand.IsYMM(a) && bn == 32 && operand.IsYMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU8(a, b) - case an == 64 && operand.IsM512(a) && bn == 64 && operand.IsZMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU8(a, b) - case an == 64 && operand.IsZMM(a) && bn == 64 && operand.IsM512(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU8(a, b) - case an == 64 && operand.IsZMM(a) && bn == 64 && operand.IsZMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVDQU8(a, b) - case an == 8 && operand.IsM64(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVQ(a, b) - case an == 8 && operand.IsR64(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVQ(a, b) - case an == 16 && operand.IsXMM(a) && bn == 8 && operand.IsM64(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVQ(a, b) - case an == 16 && operand.IsXMM(a) && bn == 8 && operand.IsR64(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVQ(a, b) - case an == 16 && operand.IsXMM(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&(types.IsInteger|types.IsBoolean)) != 0: - c.VMOVQ(a, b) - case an == 8 && operand.IsM64(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&types.IsFloat) != 0: - c.VMOVSD(a, b) - case an == 16 && operand.IsXMM(a) && bn == 8 && operand.IsM64(b) && (t.Info()&types.IsFloat) != 0: - c.VMOVSD(a, b) - case an == 4 && operand.IsM32(a) && bn == 16 && operand.IsXMM(b) && (t.Info()&types.IsFloat) != 0: - c.VMOVSS(a, b) - case an == 16 && operand.IsXMM(a) && bn == 4 && operand.IsM32(b) && (t.Info()&types.IsFloat) != 0: - c.VMOVSS(a, b) - default: - c.adderrormessage("could not deduce mov instruction") - } -} diff --git a/vendor/github.com/mmcloughlin/avo/buildtags/buildtags.go b/vendor/github.com/mmcloughlin/avo/buildtags/buildtags.go deleted file mode 100644 index 9f9ebb57..00000000 --- a/vendor/github.com/mmcloughlin/avo/buildtags/buildtags.go +++ /dev/null @@ -1,312 +0,0 @@ -// Package buildtags provides types for representing and manipulating build constraints. -// -// In Go, build constraints are represented as comments in source code together with file naming conventions. For example -// -// // +build linux,386 darwin,!cgo -// // +build !purego -// -// Any terms provided in the filename can be thought of as an implicit extra -// constraint comment line. Collectively, these are referred to as -// “constraints”. Each line is a “constraint”. Within each constraint the -// space-separated terms are “options”, and within that the comma-separated -// items are “terms” which may be negated with at most one exclaimation mark. -// -// These represent a boolean formulae. The constraints are evaluated as the AND -// of constraint lines; a constraint is evaluated as the OR of its options and -// an option is evaluated as the AND of its terms. Overall build constraints are -// a boolean formula that is an AND of ORs of ANDs. -// -// This level of complexity is rarely used in Go programs. Therefore this -// package aims to provide access to all these layers of nesting if required, -// but make it easy to forget about for basic use cases too. -package buildtags - -import ( - "errors" - "fmt" - "strings" - "unicode" -) - -// Reference: https://github.com/golang/go/blob/204a8f55dc2e0ac8d27a781dab0da609b98560da/src/go/build/doc.go#L73-L92 -// -// // A build constraint is evaluated as the OR of space-separated options; -// // each option evaluates as the AND of its comma-separated terms; -// // and each term is an alphanumeric word or, preceded by !, its negation. -// // That is, the build constraint: -// // -// // // +build linux,386 darwin,!cgo -// // -// // corresponds to the boolean formula: -// // -// // (linux AND 386) OR (darwin AND (NOT cgo)) -// // -// // A file may have multiple build constraints. The overall constraint is the AND -// // of the individual constraints. That is, the build constraints: -// // -// // // +build linux darwin -// // // +build 386 -// // -// // corresponds to the boolean formula: -// // -// // (linux OR darwin) AND 386 -// - -// Interface represents a build constraint. -type Interface interface { - ConstraintsConvertable - fmt.GoStringer - Evaluate(v map[string]bool) bool - Validate() error -} - -// ConstraintsConvertable can be converted to a Constraints object. -type ConstraintsConvertable interface { - ToConstraints() Constraints -} - -// ConstraintConvertable can be converted to a Constraint. -type ConstraintConvertable interface { - ToConstraint() Constraint -} - -// OptionConvertable can be converted to an Option. -type OptionConvertable interface { - ToOption() Option -} - -// Constraints represents the AND of a list of Constraint lines. -type Constraints []Constraint - -// And builds Constraints that will be true if all of its constraints are true. -func And(cs ...ConstraintConvertable) Constraints { - constraints := Constraints{} - for _, c := range cs { - constraints = append(constraints, c.ToConstraint()) - } - return constraints -} - -// ToConstraints returns cs. -func (cs Constraints) ToConstraints() Constraints { return cs } - -// Validate validates the constraints set. -func (cs Constraints) Validate() error { - for _, c := range cs { - if err := c.Validate(); err != nil { - return err - } - } - return nil -} - -// Evaluate the boolean formula represented by cs under the given assignment of -// tag values. This is the AND of the values of the constituent Constraints. -func (cs Constraints) Evaluate(v map[string]bool) bool { - r := true - for _, c := range cs { - r = r && c.Evaluate(v) - } - return r -} - -// GoString represents Constraints as +build comment lines. -func (cs Constraints) GoString() string { - s := "" - for _, c := range cs { - s += c.GoString() - } - return s -} - -// Constraint represents the OR of a list of Options. -type Constraint []Option - -// Any builds a Constraint that will be true if any of its options are true. -func Any(opts ...OptionConvertable) Constraint { - c := Constraint{} - for _, opt := range opts { - c = append(c, opt.ToOption()) - } - return c -} - -// ParseConstraint parses a space-separated list of options. -func ParseConstraint(expr string) (Constraint, error) { - c := Constraint{} - for _, field := range strings.Fields(expr) { - opt, err := ParseOption(field) - if err != nil { - return c, err - } - c = append(c, opt) - } - return c, nil -} - -// ToConstraints returns the list of constraints containing just c. -func (c Constraint) ToConstraints() Constraints { return Constraints{c} } - -// ToConstraint returns c. -func (c Constraint) ToConstraint() Constraint { return c } - -// Validate validates the constraint. -func (c Constraint) Validate() error { - for _, o := range c { - if err := o.Validate(); err != nil { - return err - } - } - return nil -} - -// Evaluate the boolean formula represented by c under the given assignment of -// tag values. This is the OR of the values of the constituent Options. -func (c Constraint) Evaluate(v map[string]bool) bool { - r := false - for _, o := range c { - r = r || o.Evaluate(v) - } - return r -} - -// GoString represents the Constraint as one +build comment line. -func (c Constraint) GoString() string { - s := "// +build" - for _, o := range c { - s += " " + o.GoString() - } - return s + "\n" -} - -// Option represents the AND of a list of Terms. -type Option []Term - -// Opt builds an Option from the list of Terms. -func Opt(terms ...Term) Option { - return Option(terms) -} - -// ParseOption parses a comma-separated list of terms. -func ParseOption(expr string) (Option, error) { - opt := Option{} - for _, t := range strings.Split(expr, ",") { - opt = append(opt, Term(t)) - } - return opt, opt.Validate() -} - -// ToConstraints returns Constraints containing just this option. -func (o Option) ToConstraints() Constraints { return o.ToConstraint().ToConstraints() } - -// ToConstraint returns a Constraint containing just this option. -func (o Option) ToConstraint() Constraint { return Constraint{o} } - -// ToOption returns o. -func (o Option) ToOption() Option { return o } - -// Validate validates o. -func (o Option) Validate() error { - for _, t := range o { - if err := t.Validate(); err != nil { - return fmt.Errorf("invalid term %q: %w", t, err) - } - } - return nil -} - -// Evaluate the boolean formula represented by o under the given assignment of -// tag values. This is the AND of the values of the constituent Terms. -func (o Option) Evaluate(v map[string]bool) bool { - r := true - for _, t := range o { - r = r && t.Evaluate(v) - } - return r -} - -// GoString represents the Option as a comma-separated list of terms. -func (o Option) GoString() string { - var ts []string - for _, t := range o { - ts = append(ts, t.GoString()) - } - return strings.Join(ts, ",") -} - -// Term is an atomic term in a build constraint: an identifier or its negation. -type Term string - -// Not returns a term for the negation of ident. -func Not(ident string) Term { - return Term("!" + ident) -} - -// ToConstraints returns Constraints containing just this term. -func (t Term) ToConstraints() Constraints { return t.ToOption().ToConstraints() } - -// ToConstraint returns a Constraint containing just this term. -func (t Term) ToConstraint() Constraint { return t.ToOption().ToConstraint() } - -// ToOption returns an Option containing just this term. -func (t Term) ToOption() Option { return Option{t} } - -// IsNegated reports whether t is the negation of an identifier. -func (t Term) IsNegated() bool { return strings.HasPrefix(string(t), "!") } - -// Name returns the identifier for this term. -func (t Term) Name() string { - return strings.TrimPrefix(string(t), "!") -} - -// Validate the term. -func (t Term) Validate() error { - // Reference: https://github.com/golang/go/blob/204a8f55dc2e0ac8d27a781dab0da609b98560da/src/cmd/go/internal/imports/build.go#L110-L112 - // - // if strings.HasPrefix(name, "!!") { // bad syntax, reject always - // return false - // } - // - if strings.HasPrefix(string(t), "!!") { - return errors.New("at most one '!' allowed") - } - - if len(t.Name()) == 0 { - return errors.New("empty tag name") - } - - // Reference: https://github.com/golang/go/blob/204a8f55dc2e0ac8d27a781dab0da609b98560da/src/cmd/go/internal/imports/build.go#L121-L127 - // - // // Tags must be letters, digits, underscores or dots. - // // Unlike in Go identifiers, all digits are fine (e.g., "386"). - // for _, c := range name { - // if !unicode.IsLetter(c) && !unicode.IsDigit(c) && c != '_' && c != '.' { - // return false - // } - // } - // - for _, c := range t.Name() { - if !unicode.IsLetter(c) && !unicode.IsDigit(c) && c != '_' && c != '.' { - return fmt.Errorf("character '%c' disallowed in tags", c) - } - } - - return nil -} - -// Evaluate the term under the given set of identifier values. -func (t Term) Evaluate(v map[string]bool) bool { - return (t.Validate() == nil) && (v[t.Name()] == !t.IsNegated()) -} - -// GoString returns t. -func (t Term) GoString() string { return string(t) } - -// SetTags builds a set where the given list of identifiers are true. -func SetTags(idents ...string) map[string]bool { - v := map[string]bool{} - for _, ident := range idents { - v[ident] = true - } - return v -} diff --git a/vendor/github.com/mmcloughlin/avo/buildtags/syntax.go b/vendor/github.com/mmcloughlin/avo/buildtags/syntax.go deleted file mode 100644 index 92583125..00000000 --- a/vendor/github.com/mmcloughlin/avo/buildtags/syntax.go +++ /dev/null @@ -1,46 +0,0 @@ -package buildtags - -import ( - "bufio" - "bytes" - "fmt" - "go/format" - "strings" -) - -// PlusBuildSyntaxSupported reports whether the current Go version supports the -// "// +build" constraint syntax. -func PlusBuildSyntaxSupported() bool { return plusbuild } - -// GoBuildSyntaxSupported reports whether the current Go version supports the -// "//go:build" constraint syntax. -func GoBuildSyntaxSupported() bool { return gobuild } - -// Format constraints according to the syntax supported by the current Go version. -func Format(t ConstraintsConvertable) (string, error) { - // Print build tags to minimal Go source that can be passed to go/format. - src := t.ToConstraints().GoString() + "\npackage stub" - - // Format them. - formatted, err := format.Source([]byte(src)) - if err != nil { - return "", fmt.Errorf("format build constraints: %w", err) - } - - // Extract the comment lines. - buf := bytes.NewReader(formatted) - scanner := bufio.NewScanner(buf) - output := "" - for scanner.Scan() { - line := scanner.Text() - if (PlusBuildSyntaxSupported() && strings.HasPrefix(line, "// +build")) || - (GoBuildSyntaxSupported() && strings.HasPrefix(line, "//go:build")) { - output += line + "\n" - } - } - if err := scanner.Err(); err != nil { - return "", fmt.Errorf("parse formatted build constraints: %w", err) - } - - return output, nil -} diff --git a/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go116.go b/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go116.go deleted file mode 100644 index e9d393d4..00000000 --- a/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go116.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build !go1.17 - -package buildtags - -const ( - plusbuild = true - gobuild = false -) diff --git a/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go117.go b/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go117.go deleted file mode 100644 index b624deec..00000000 --- a/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go117.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build go1.17 && !go1.18 - -package buildtags - -const ( - plusbuild = true - gobuild = true -) diff --git a/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go118.go b/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go118.go deleted file mode 100644 index d372f86e..00000000 --- a/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go118.go +++ /dev/null @@ -1,8 +0,0 @@ -//go:build go1.18 - -package buildtags - -const ( - plusbuild = false - gobuild = true -) diff --git a/vendor/github.com/mmcloughlin/avo/gotypes/components.go b/vendor/github.com/mmcloughlin/avo/gotypes/components.go deleted file mode 100644 index fe0c9733..00000000 --- a/vendor/github.com/mmcloughlin/avo/gotypes/components.go +++ /dev/null @@ -1,253 +0,0 @@ -package gotypes - -import ( - "errors" - "fmt" - "go/token" - "go/types" - "strconv" - - "github.com/mmcloughlin/avo/operand" - "github.com/mmcloughlin/avo/reg" -) - -// Sizes provides type sizes used by the standard Go compiler on amd64. -var Sizes = types.SizesFor("gc", "amd64") - -// PointerSize is the size of a pointer on amd64. -var PointerSize = Sizes.Sizeof(types.Typ[types.UnsafePointer]) - -// Basic represents a primitive/basic type at a given memory address. -type Basic struct { - Addr operand.Mem - Type *types.Basic -} - -// Component provides access to sub-components of a Go type. -type Component interface { - // When the component has no further sub-components, Resolve will return a - // reference to the components type and memory address. If there was an error - // during any previous calls to Component methods, they will be returned at - // resolution time. - Resolve() (*Basic, error) - Dereference(r reg.Register) Component // dereference a pointer - Base() Component // base pointer of a string or slice - Len() Component // length of a string or slice - Cap() Component // capacity of a slice - Real() Component // real part of a complex value - Imag() Component // imaginary part of a complex value - Index(int) Component // index into an array - Field(string) Component // access a struct field -} - -// componenterr is an error that also provides a null implementation of the -// Component interface. This enables us to return an error from Component -// methods whilst also allowing method chaining to continue. -type componenterr string - -func errorf(format string, args ...any) Component { - return componenterr(fmt.Sprintf(format, args...)) -} - -func (c componenterr) Error() string { return string(c) } -func (c componenterr) Resolve() (*Basic, error) { return nil, c } -func (c componenterr) Dereference(r reg.Register) Component { return c } -func (c componenterr) Base() Component { return c } -func (c componenterr) Len() Component { return c } -func (c componenterr) Cap() Component { return c } -func (c componenterr) Real() Component { return c } -func (c componenterr) Imag() Component { return c } -func (c componenterr) Index(int) Component { return c } -func (c componenterr) Field(string) Component { return c } - -type component struct { - typ types.Type - addr operand.Mem -} - -// NewComponent builds a component for the named type at the given address. -func NewComponent(t types.Type, addr operand.Mem) Component { - return &component{ - typ: t, - addr: addr, - } -} - -func (c *component) Resolve() (*Basic, error) { - b := toprimitive(c.typ) - if b == nil { - return nil, errors.New("component is not primitive") - } - return &Basic{ - Addr: c.addr, - Type: b, - }, nil -} - -func (c *component) Dereference(r reg.Register) Component { - p, ok := c.typ.Underlying().(*types.Pointer) - if !ok { - return errorf("not pointer type") - } - return NewComponent(p.Elem(), operand.Mem{Base: r}) -} - -// Reference: https://github.com/golang/go/blob/50bd1c4d4eb4fac8ddeb5f063c099daccfb71b26/src/reflect/value.go#L1800-L1804 -// -// type SliceHeader struct { -// Data uintptr -// Len int -// Cap int -// } -var slicehdroffsets = Sizes.Offsetsof([]*types.Var{ - types.NewField(token.NoPos, nil, "Data", types.Typ[types.Uintptr], false), - types.NewField(token.NoPos, nil, "Len", types.Typ[types.Int], false), - types.NewField(token.NoPos, nil, "Cap", types.Typ[types.Int], false), -}) - -func (c *component) Base() Component { - if !isslice(c.typ) && !isstring(c.typ) { - return errorf("only slices and strings have base pointers") - } - return c.sub("_base", int(slicehdroffsets[0]), types.Typ[types.Uintptr]) -} - -func (c *component) Len() Component { - if !isslice(c.typ) && !isstring(c.typ) { - return errorf("only slices and strings have length fields") - } - return c.sub("_len", int(slicehdroffsets[1]), types.Typ[types.Int]) -} - -func (c *component) Cap() Component { - if !isslice(c.typ) { - return errorf("only slices have capacity fields") - } - return c.sub("_cap", int(slicehdroffsets[2]), types.Typ[types.Int]) -} - -func (c *component) Real() Component { - if !iscomplex(c.typ) { - return errorf("only complex types have real values") - } - f := complextofloat(c.typ) - return c.sub("_real", 0, f) -} - -func (c *component) Imag() Component { - if !iscomplex(c.typ) { - return errorf("only complex types have imaginary values") - } - f := complextofloat(c.typ) - return c.sub("_imag", int(Sizes.Sizeof(f)), f) -} - -func (c *component) Index(i int) Component { - a, ok := c.typ.Underlying().(*types.Array) - if !ok { - return errorf("not array type") - } - if int64(i) >= a.Len() { - return errorf("array index out of bounds") - } - // Reference: https://github.com/golang/tools/blob/bcd4e47d02889ebbc25c9f4bf3d27e4124b0bf9d/go/analysis/passes/asmdecl/asmdecl.go#L482-L494 - // - // case asmArray: - // tu := t.Underlying().(*types.Array) - // elem := tu.Elem() - // // Calculate offset of each element array. - // fields := []*types.Var{ - // types.NewVar(token.NoPos, nil, "fake0", elem), - // types.NewVar(token.NoPos, nil, "fake1", elem), - // } - // offsets := arch.sizes.Offsetsof(fields) - // elemoff := int(offsets[1]) - // for i := 0; i < int(tu.Len()); i++ { - // cc = appendComponentsRecursive(arch, elem, cc, suffix+"_"+strconv.Itoa(i), i*elemoff) - // } - // - elem := a.Elem() - elemsize := int(Sizes.Sizeof(types.NewArray(elem, 2)) - Sizes.Sizeof(types.NewArray(elem, 1))) - return c.sub("_"+strconv.Itoa(i), i*elemsize, elem) -} - -func (c *component) Field(n string) Component { - s, ok := c.typ.Underlying().(*types.Struct) - if !ok { - return errorf("not struct type") - } - // Reference: https://github.com/golang/tools/blob/13ba8ad772dfbf0f451b5dd0679e9c5605afc05d/go/analysis/passes/asmdecl/asmdecl.go#L471-L480 - // - // case asmStruct: - // tu := t.Underlying().(*types.Struct) - // fields := make([]*types.Var, tu.NumFields()) - // for i := 0; i < tu.NumFields(); i++ { - // fields[i] = tu.Field(i) - // } - // offsets := arch.sizes.Offsetsof(fields) - // for i, f := range fields { - // cc = appendComponentsRecursive(arch, f.Type(), cc, suffix+"_"+f.Name(), off+int(offsets[i])) - // } - // - fields := make([]*types.Var, s.NumFields()) - for i := 0; i < s.NumFields(); i++ { - fields[i] = s.Field(i) - } - offsets := Sizes.Offsetsof(fields) - for i, f := range fields { - if f.Name() == n { - return c.sub("_"+n, int(offsets[i]), f.Type()) - } - } - return errorf("struct does not have field '%s'", n) -} - -func (c *component) sub(suffix string, offset int, t types.Type) *component { - s := *c - if s.addr.Symbol.Name != "" { - s.addr.Symbol.Name += suffix - } - s.addr = s.addr.Offset(offset) - s.typ = t - return &s -} - -func isslice(t types.Type) bool { - _, ok := t.Underlying().(*types.Slice) - return ok -} - -func isstring(t types.Type) bool { - b, ok := t.Underlying().(*types.Basic) - return ok && b.Kind() == types.String -} - -func iscomplex(t types.Type) bool { - b, ok := t.Underlying().(*types.Basic) - return ok && (b.Info()&types.IsComplex) != 0 -} - -func complextofloat(t types.Type) types.Type { - switch Sizes.Sizeof(t) { - case 16: - return types.Typ[types.Float64] - case 8: - return types.Typ[types.Float32] - } - panic("bad") -} - -// toprimitive determines whether t is primitive (cannot be reduced into -// components). If it is, it returns the basic type for t, otherwise returns -// nil. -func toprimitive(t types.Type) *types.Basic { - switch b := t.(type) { - case *types.Basic: - if (b.Info() & (types.IsString | types.IsComplex)) == 0 { - return b - } - case *types.Pointer: - return types.Typ[types.Uintptr] - } - return nil -} diff --git a/vendor/github.com/mmcloughlin/avo/gotypes/doc.go b/vendor/github.com/mmcloughlin/avo/gotypes/doc.go deleted file mode 100644 index fa8f0783..00000000 --- a/vendor/github.com/mmcloughlin/avo/gotypes/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package gotypes provides helpers for interacting with Go types within avo functions. -package gotypes diff --git a/vendor/github.com/mmcloughlin/avo/gotypes/signature.go b/vendor/github.com/mmcloughlin/avo/gotypes/signature.go deleted file mode 100644 index a96b056e..00000000 --- a/vendor/github.com/mmcloughlin/avo/gotypes/signature.go +++ /dev/null @@ -1,193 +0,0 @@ -package gotypes - -import ( - "bytes" - "errors" - "fmt" - "go/token" - "go/types" - "strconv" - - "github.com/mmcloughlin/avo/operand" -) - -// Signature represents a Go function signature. -type Signature struct { - pkg *types.Package - sig *types.Signature - params *Tuple - results *Tuple -} - -// NewSignature constructs a Signature. -func NewSignature(pkg *types.Package, sig *types.Signature) *Signature { - s := &Signature{ - pkg: pkg, - sig: sig, - } - s.init() - return s -} - -// NewSignatureVoid builds the void signature "func()". -func NewSignatureVoid() *Signature { - return NewSignature(nil, types.NewSignatureType(nil, nil, nil, nil, nil, false)) -} - -// LookupSignature returns the signature of the named function in the provided package. -func LookupSignature(pkg *types.Package, name string) (*Signature, error) { - scope := pkg.Scope() - obj := scope.Lookup(name) - if obj == nil { - return nil, fmt.Errorf("could not find function \"%s\"", name) - } - s, ok := obj.Type().(*types.Signature) - if !ok { - return nil, fmt.Errorf("object \"%s\" does not have signature type", name) - } - return NewSignature(pkg, s), nil -} - -// ParseSignature builds a Signature by parsing a Go function type expression. -// The function type must reference builtin types only; see -// ParseSignatureInPackage if custom types are required. -func ParseSignature(expr string) (*Signature, error) { - return ParseSignatureInPackage(nil, expr) -} - -// ParseSignatureInPackage builds a Signature by parsing a Go function type -// expression. The expression may reference types in the provided package. -func ParseSignatureInPackage(pkg *types.Package, expr string) (*Signature, error) { - tv, err := types.Eval(token.NewFileSet(), pkg, token.NoPos, expr) - if err != nil { - return nil, err - } - if tv.Value != nil { - return nil, errors.New("signature expression should have nil value") - } - s, ok := tv.Type.(*types.Signature) - if !ok { - return nil, errors.New("provided type is not a function signature") - } - return NewSignature(pkg, s), nil -} - -// Params returns the function signature argument types. -func (s *Signature) Params() *Tuple { return s.params } - -// Results returns the function return types. -func (s *Signature) Results() *Tuple { return s.results } - -// Bytes returns the total size of the function arguments and return values. -func (s *Signature) Bytes() int { return s.Params().Bytes() + s.Results().Bytes() } - -// String writes Signature as a string. This does not include the "func" keyword. -func (s *Signature) String() string { - var buf bytes.Buffer - types.WriteSignature(&buf, s.sig, func(pkg *types.Package) string { - if pkg == s.pkg { - return "" - } - return pkg.Name() - }) - return buf.String() -} - -func (s *Signature) init() { - p := s.sig.Params() - r := s.sig.Results() - - // Compute parameter offsets. Note that if the function has results, - // additional padding up to max align is inserted between parameters and - // results. - vs := tuplevars(p) - vs = append(vs, types.NewParam(token.NoPos, nil, "sentinel", types.Typ[types.Uint64])) - paramsoffsets := Sizes.Offsetsof(vs) - paramssize := paramsoffsets[p.Len()] - if r.Len() == 0 { - paramssize = structsize(vs[:p.Len()]) - } - s.params = newTuple(p, paramsoffsets, paramssize, "arg") - - // Result offsets. - vs = tuplevars(r) - resultsoffsets := Sizes.Offsetsof(vs) - resultssize := structsize(vs) - for i := range resultsoffsets { - resultsoffsets[i] += paramssize - } - s.results = newTuple(r, resultsoffsets, resultssize, "ret") -} - -// Tuple represents a tuple of variables, such as function arguments or results. -type Tuple struct { - components []Component - byname map[string]Component - size int -} - -func newTuple(t *types.Tuple, offsets []int64, size int64, defaultprefix string) *Tuple { - tuple := &Tuple{ - byname: map[string]Component{}, - size: int(size), - } - for i := 0; i < t.Len(); i++ { - v := t.At(i) - name := v.Name() - if name == "" { - name = defaultprefix - if i > 0 { - name += strconv.Itoa(i) - } - } - addr := operand.NewParamAddr(name, int(offsets[i])) - c := NewComponent(v.Type(), addr) - tuple.components = append(tuple.components, c) - if v.Name() != "" { - tuple.byname[v.Name()] = c - } - } - return tuple -} - -// Lookup returns the variable with the given name. -func (t *Tuple) Lookup(name string) Component { - e := t.byname[name] - if e == nil { - return errorf("unknown variable \"%s\"", name) - } - return e -} - -// At returns the variable at index i. -func (t *Tuple) At(i int) Component { - if i >= len(t.components) { - return errorf("index out of range") - } - return t.components[i] -} - -// Bytes returns the size of the Tuple. This may include additional padding. -func (t *Tuple) Bytes() int { return t.size } - -func tuplevars(t *types.Tuple) []*types.Var { - vs := make([]*types.Var, t.Len()) - for i := 0; i < t.Len(); i++ { - vs[i] = t.At(i) - } - return vs -} - -// structsize computes the size of a struct containing the given variables as -// fields. It would be equivalent to calculating the size of types.NewStruct(vs, -// nil), apart from the fact that NewStruct panics if multiple fields have the -// same name, and this happens for example if the variables represent return -// types from a function. -func structsize(vs []*types.Var) int64 { - n := len(vs) - if n == 0 { - return 0 - } - offsets := Sizes.Offsetsof(vs) - return offsets[n-1] + Sizes.Sizeof(vs[n-1].Type()) -} diff --git a/vendor/github.com/mmcloughlin/avo/internal/prnt/printer.go b/vendor/github.com/mmcloughlin/avo/internal/prnt/printer.go deleted file mode 100644 index a29df6e4..00000000 --- a/vendor/github.com/mmcloughlin/avo/internal/prnt/printer.go +++ /dev/null @@ -1,101 +0,0 @@ -// Package prnt provides common functionality for code generators. -package prnt - -import ( - "bytes" - "fmt" - "go/build/constraint" - "io" - "strings" -) - -// Generator provides convenience methods for code generators. In particular it -// provides fmt-like methods which print to an internal buffer. It also allows -// any errors to be stored so they can be checked at the end, rather than having -// error checks obscuring the code generation. -type Generator struct { - buf bytes.Buffer - level int // current indentation level - indent string // indentation string - pending bool // if there's a pending indentation - err error // saved error from printing -} - -// Raw provides direct access to the underlying output stream. -func (g *Generator) Raw() io.Writer { - return &g.buf -} - -// SetIndentString sets the string used for one level of indentation. Use -// Indent() and Dedent() to control indent level. -func (g *Generator) SetIndentString(indent string) { - g.indent = indent -} - -// Indent increments the indent level. -func (g *Generator) Indent() { - g.level++ -} - -// Dedent decrements the indent level. -func (g *Generator) Dedent() { - g.level-- -} - -// Linef prints formatted output terminated with a new line. -func (g *Generator) Linef(format string, args ...any) { - g.Printf(format, args...) - g.NL() -} - -// Printf prints to the internal buffer. -func (g *Generator) Printf(format string, args ...any) { - if g.err != nil { - return - } - if g.pending { - indent := strings.Repeat(g.indent, g.level) - format = indent + format - g.pending = false - } - _, err := fmt.Fprintf(&g.buf, format, args...) - g.AddError(err) -} - -// NL prints a new line. -func (g *Generator) NL() { - g.Printf("\n") - g.pending = true -} - -// Comment writes comment lines prefixed with "// ". -func (g *Generator) Comment(lines ...string) { - for _, line := range lines { - line = strings.TrimSpace("// " + line) - g.Printf("%s\n", line) - } -} - -// BuildConstraint outputs a build constraint. -func (g *Generator) BuildConstraint(expr string) { - line := fmt.Sprintf("//go:build %s", expr) - if _, err := constraint.Parse(line); err != nil { - g.AddError(err) - } - g.Linef(line) -} - -// AddError records an error in code generation. The first non-nil error will -// prevent printing operations from writing anything else, and the error will be -// returned from Result(). -func (g *Generator) AddError(err error) { - if err != nil && g.err == nil { - g.err = err - } -} - -// Result returns the printed bytes. If any error was recorded with AddError -// during code generation, the first such error will be returned here. -func (g *Generator) Result() ([]byte, error) { - return g.buf.Bytes(), g.err -} diff --git a/vendor/github.com/mmcloughlin/avo/internal/stack/stack.go b/vendor/github.com/mmcloughlin/avo/internal/stack/stack.go deleted file mode 100644 index 1d327d9d..00000000 --- a/vendor/github.com/mmcloughlin/avo/internal/stack/stack.go +++ /dev/null @@ -1,73 +0,0 @@ -// Package stack provides helpers for querying the callstack. -package stack - -import ( - "path" - "runtime" - "strings" -) - -// Frames returns at most max callstack Frames, starting with its caller and -// skipping skip Frames. -func Frames(skip, max int) []runtime.Frame { - pc := make([]uintptr, max) - n := runtime.Callers(skip+2, pc) - if n == 0 { - return nil - } - pc = pc[:n] - frames := runtime.CallersFrames(pc) - var fs []runtime.Frame - for { - f, more := frames.Next() - fs = append(fs, f) - if !more { - break - } - } - return fs -} - -// Match returns the first stack frame for which the predicate function returns -// true. Returns nil if no match is found. Starts matching after skip frames, -// starting with its caller. -func Match(skip int, predicate func(runtime.Frame) bool) *runtime.Frame { - i, n := skip+1, 16 - for { - fs := Frames(i, n) - for j, f := range fs { - if predicate(f) { - return &fs[j] - } - } - if len(fs) < n { - break - } - i += n - } - return nil -} - -// Main returns the main() function Frame. -func Main() *runtime.Frame { - return Match(1, func(f runtime.Frame) bool { - return f.Function == "main.main" - }) -} - -// ExternalCaller returns the first frame outside the callers package. -func ExternalCaller() *runtime.Frame { - var first *runtime.Frame - return Match(1, func(f runtime.Frame) bool { - if first == nil { - first = &f - } - return pkg(first.Function) != pkg(f.Function) - }) -} - -func pkg(ident string) string { - dir, name := path.Split(ident) - parts := strings.Split(name, ".") - return dir + parts[0] -} diff --git a/vendor/github.com/mmcloughlin/avo/ir/doc.go b/vendor/github.com/mmcloughlin/avo/ir/doc.go deleted file mode 100644 index de02f464..00000000 --- a/vendor/github.com/mmcloughlin/avo/ir/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package ir provides the intermediate representation of avo programs. -package ir diff --git a/vendor/github.com/mmcloughlin/avo/ir/ir.go b/vendor/github.com/mmcloughlin/avo/ir/ir.go deleted file mode 100644 index 871d4881..00000000 --- a/vendor/github.com/mmcloughlin/avo/ir/ir.go +++ /dev/null @@ -1,365 +0,0 @@ -package ir - -import ( - "errors" - - "github.com/mmcloughlin/avo/attr" - "github.com/mmcloughlin/avo/buildtags" - "github.com/mmcloughlin/avo/gotypes" - "github.com/mmcloughlin/avo/operand" - "github.com/mmcloughlin/avo/reg" -) - -// Node is a part of a Function. -type Node interface { - node() -} - -// Label within a function. -type Label string - -func (l Label) node() {} - -// Comment represents a multi-line comment. -type Comment struct { - Lines []string -} - -func (c *Comment) node() {} - -// NewComment builds a Comment consisting of the provided lines. -func NewComment(lines ...string) *Comment { - return &Comment{ - Lines: lines, - } -} - -// Instruction is a single instruction in a function. -type Instruction struct { - Opcode string - Suffixes []string - Operands []operand.Op - - Inputs []operand.Op - Outputs []operand.Op - - IsTerminal bool - IsBranch bool - IsConditional bool - CancellingInputs bool - - // ISA is the list of required instruction set extensions. - ISA []string - - // CFG. - Pred []*Instruction - Succ []*Instruction - - // LiveIn/LiveOut are sets of live register IDs pre/post execution. - LiveIn reg.MaskSet - LiveOut reg.MaskSet -} - -func (i *Instruction) node() {} - -// OpcodeWithSuffixes returns the full opcode, including dot-separated suffixes. -func (i *Instruction) OpcodeWithSuffixes() string { - opcode := i.Opcode - for _, s := range i.Suffixes { - opcode += "." + s - } - return opcode -} - -// IsUnconditionalBranch reports whether i is an unconditional branch. -func (i Instruction) IsUnconditionalBranch() bool { - return i.IsBranch && !i.IsConditional -} - -// TargetLabel returns the label referenced by this instruction. Returns nil if -// no label is referenced. -func (i Instruction) TargetLabel() *Label { - if !i.IsBranch { - return nil - } - if len(i.Operands) == 0 { - return nil - } - if ref, ok := i.Operands[0].(operand.LabelRef); ok { - lbl := Label(ref) - return &lbl - } - return nil -} - -// Registers returns all registers involved in the instruction. -func (i Instruction) Registers() []reg.Register { - var rs []reg.Register - for _, op := range i.Operands { - rs = append(rs, operand.Registers(op)...) - } - return rs -} - -// InputRegisters returns all registers read by this instruction. -func (i Instruction) InputRegisters() []reg.Register { - var rs []reg.Register - for _, op := range i.Inputs { - rs = append(rs, operand.Registers(op)...) - } - if i.CancellingInputs && rs[0] == rs[1] { - rs = []reg.Register{} - } - for _, op := range i.Outputs { - if operand.IsMem(op) { - rs = append(rs, operand.Registers(op)...) - } - } - return rs -} - -// OutputRegisters returns all registers written by this instruction. -func (i Instruction) OutputRegisters() []reg.Register { - var rs []reg.Register - for _, op := range i.Outputs { - if r, ok := op.(reg.Register); ok { - rs = append(rs, r) - } - } - return rs -} - -// Section is a part of a file. -type Section interface { - section() -} - -// File represents an assembly file. -type File struct { - Constraints buildtags.Constraints - Includes []string - Sections []Section -} - -// NewFile initializes an empty file. -func NewFile() *File { - return &File{} -} - -// AddSection appends a Section to the file. -func (f *File) AddSection(s Section) { - f.Sections = append(f.Sections, s) -} - -// Functions returns all functions in the file. -func (f *File) Functions() []*Function { - var fns []*Function - for _, s := range f.Sections { - if fn, ok := s.(*Function); ok { - fns = append(fns, fn) - } - } - return fns -} - -// Pragma represents a function compiler directive. -type Pragma struct { - Directive string - Arguments []string -} - -// Function represents an assembly function. -type Function struct { - Name string - Attributes attr.Attribute - Pragmas []Pragma - Doc []string - Signature *gotypes.Signature - LocalSize int - - Nodes []Node - - // LabelTarget maps from label name to the following instruction. - LabelTarget map[Label]*Instruction - - // Register allocation. - Allocation reg.Allocation - - // ISA is the list of required instruction set extensions. - ISA []string -} - -func (f *Function) section() {} - -// NewFunction builds an empty function of the given name. -func NewFunction(name string) *Function { - return &Function{ - Name: name, - Signature: gotypes.NewSignatureVoid(), - } -} - -// AddPragma adds a pragma to this function. -func (f *Function) AddPragma(directive string, args ...string) { - f.Pragmas = append(f.Pragmas, Pragma{ - Directive: directive, - Arguments: args, - }) -} - -// SetSignature sets the function signature. -func (f *Function) SetSignature(s *gotypes.Signature) { - f.Signature = s -} - -// AllocLocal allocates size bytes in this function's stack. -// Returns a reference to the base pointer for the newly allocated region. -func (f *Function) AllocLocal(size int) operand.Mem { - ptr := operand.NewStackAddr(f.LocalSize) - f.LocalSize += size - return ptr -} - -// AddInstruction appends an instruction to f. -func (f *Function) AddInstruction(i *Instruction) { - f.AddNode(i) -} - -// AddLabel appends a label to f. -func (f *Function) AddLabel(l Label) { - f.AddNode(l) -} - -// AddComment adds comment lines to f. -func (f *Function) AddComment(lines ...string) { - f.AddNode(NewComment(lines...)) -} - -// AddNode appends a Node to f. -func (f *Function) AddNode(n Node) { - f.Nodes = append(f.Nodes, n) -} - -// Instructions returns just the list of instruction nodes. -func (f *Function) Instructions() []*Instruction { - var is []*Instruction - for _, n := range f.Nodes { - i, ok := n.(*Instruction) - if ok { - is = append(is, i) - } - } - return is -} - -// Labels returns just the list of label nodes. -func (f *Function) Labels() []Label { - var lbls []Label - for _, n := range f.Nodes { - lbl, ok := n.(Label) - if ok { - lbls = append(lbls, lbl) - } - } - return lbls -} - -// Stub returns the Go function declaration. -func (f *Function) Stub() string { - return "func " + f.Name + f.Signature.String() -} - -// FrameBytes returns the size of the stack frame in bytes. -func (f *Function) FrameBytes() int { - return f.LocalSize -} - -// ArgumentBytes returns the size of the arguments in bytes. -func (f *Function) ArgumentBytes() int { - return f.Signature.Bytes() -} - -// Datum represents a data element at a particular offset of a data section. -type Datum struct { - Offset int - Value operand.Constant -} - -// NewDatum builds a Datum from the given constant. -func NewDatum(offset int, v operand.Constant) Datum { - return Datum{ - Offset: offset, - Value: v, - } -} - -// Interval returns the range of bytes this datum will occupy within its section. -func (d Datum) Interval() (int, int) { - return d.Offset, d.Offset + d.Value.Bytes() -} - -// Overlaps returns whether d overlaps with other. -func (d Datum) Overlaps(other Datum) bool { - s, e := d.Interval() - so, eo := other.Interval() - return !(eo <= s || e <= so) -} - -// Global represents a DATA section. -type Global struct { - Symbol operand.Symbol - Attributes attr.Attribute - Data []Datum - Size int -} - -// NewGlobal constructs an empty DATA section. -func NewGlobal(sym operand.Symbol) *Global { - return &Global{ - Symbol: sym, - } -} - -// NewStaticGlobal is a convenience for building a static DATA section. -func NewStaticGlobal(name string) *Global { - return NewGlobal(operand.NewStaticSymbol(name)) -} - -func (g *Global) section() {} - -// Base returns a pointer to the start of the data section. -func (g *Global) Base() operand.Mem { - return operand.NewDataAddr(g.Symbol, 0) -} - -// Grow ensures that the data section has at least the given size. -func (g *Global) Grow(size int) { - if g.Size < size { - g.Size = size - } -} - -// AddDatum adds d to this data section, growing it if necessary. Errors if the datum overlaps with existing data. -func (g *Global) AddDatum(d Datum) error { - for _, other := range g.Data { - if d.Overlaps(other) { - return errors.New("overlaps existing datum") - } - } - g.add(d) - return nil -} - -// Append the constant to the end of the data section. -func (g *Global) Append(v operand.Constant) { - g.add(Datum{ - Offset: g.Size, - Value: v, - }) -} - -func (g *Global) add(d Datum) { - _, end := d.Interval() - g.Grow(end) - g.Data = append(g.Data, d) -} diff --git a/vendor/github.com/mmcloughlin/avo/operand/checks.go b/vendor/github.com/mmcloughlin/avo/operand/checks.go deleted file mode 100644 index ba1760bb..00000000 --- a/vendor/github.com/mmcloughlin/avo/operand/checks.go +++ /dev/null @@ -1,282 +0,0 @@ -package operand - -import "github.com/mmcloughlin/avo/reg" - -// Pure type assertion checks: - -// IsRegister returns whether op has type reg.Register. -func IsRegister(op Op) bool { _, ok := op.(reg.Register); return ok } - -// IsMem returns whether op has type Mem. -func IsMem(op Op) bool { _, ok := op.(Mem); return ok } - -// IsRel returns whether op has type Rel. -func IsRel(op Op) bool { _, ok := op.(Rel); return ok } - -// Checks corresponding to specific operand types in the Intel Manual: - -// Is1 returns true if op is the immediate constant 1. -func Is1(op Op) bool { - i, ok := op.(U8) - return ok && i == 1 -} - -// Is3 returns true if op is the immediate constant 3. -func Is3(op Op) bool { - i, ok := op.(U8) - return ok && i == 3 -} - -// IsIMM2U returns true if op is a 2-bit unsigned immediate (less than 4). -func IsIMM2U(op Op) bool { - i, ok := op.(U8) - return ok && i < 4 -} - -// IsIMM8 returns true is op is an 8-bit immediate. -func IsIMM8(op Op) bool { - _, uok := op.(U8) - _, iok := op.(I8) - return uok || iok -} - -// IsIMM16 returns true is op is a 16-bit immediate. -func IsIMM16(op Op) bool { - _, uok := op.(U16) - _, iok := op.(I16) - return uok || iok -} - -// IsIMM32 returns true is op is a 32-bit immediate. -func IsIMM32(op Op) bool { - _, uok := op.(U32) - _, iok := op.(I32) - return uok || iok -} - -// IsIMM64 returns true is op is a 64-bit immediate. -func IsIMM64(op Op) bool { - _, uok := op.(U64) - _, iok := op.(I64) - return uok || iok -} - -// IsAL returns true if op is the AL register. -func IsAL(op Op) bool { - return op == reg.AL -} - -// IsCL returns true if op is the CL register. -func IsCL(op Op) bool { - return op == reg.CL -} - -// IsAX returns true if op is the 16-bit AX register. -func IsAX(op Op) bool { - return op == reg.AX -} - -// IsEAX returns true if op is the 32-bit EAX register. -func IsEAX(op Op) bool { - return op == reg.EAX -} - -// IsRAX returns true if op is the 64-bit RAX register. -func IsRAX(op Op) bool { - return op == reg.RAX -} - -// IsR8 returns true if op is an 8-bit general-purpose register. -func IsR8(op Op) bool { - return IsGP(op, 1) -} - -// IsR16 returns true if op is a 16-bit general-purpose register. -func IsR16(op Op) bool { - return IsGP(op, 2) -} - -// IsR32 returns true if op is a 32-bit general-purpose register. -func IsR32(op Op) bool { - return IsGP(op, 4) -} - -// IsR64 returns true if op is a 64-bit general-purpose register. -func IsR64(op Op) bool { - return IsGP(op, 8) -} - -// IsPseudo returns true if op is a pseudo register. -func IsPseudo(op Op) bool { - return IsRegisterKind(op, reg.KindPseudo) -} - -// IsGP returns true if op is a general-purpose register of size n bytes. -func IsGP(op Op, n uint) bool { - return IsRegisterKindSize(op, reg.KindGP, n) -} - -// IsXMM0 returns true if op is the X0 register. -func IsXMM0(op Op) bool { - return op == reg.X0 -} - -// IsXMM returns true if op is a 128-bit XMM register. -func IsXMM(op Op) bool { - return IsRegisterKindSize(op, reg.KindVector, 16) -} - -// IsYMM returns true if op is a 256-bit YMM register. -func IsYMM(op Op) bool { - return IsRegisterKindSize(op, reg.KindVector, 32) -} - -// IsZMM returns true if op is a 512-bit ZMM register. -func IsZMM(op Op) bool { - return IsRegisterKindSize(op, reg.KindVector, 64) -} - -// IsK returns true if op is an Opmask register. -func IsK(op Op) bool { - return IsRegisterKind(op, reg.KindOpmask) -} - -// IsRegisterKindSize returns true if op is a register of the given kind and size in bytes. -func IsRegisterKindSize(op Op, k reg.Kind, n uint) bool { - r, ok := op.(reg.Register) - return ok && r.Kind() == k && r.Size() == n -} - -// IsRegisterKind returns true if op is a register of the given kind. -func IsRegisterKind(op Op, k reg.Kind) bool { - r, ok := op.(reg.Register) - return ok && r.Kind() == k -} - -// IsM returns true if op is a 16-, 32- or 64-bit memory operand. -func IsM(op Op) bool { - // TODO(mbm): confirm "m" check is defined correctly - // Intel manual: "A 16-, 32- or 64-bit operand in memory." - return IsM16(op) || IsM32(op) || IsM64(op) -} - -// IsM8 returns true if op is an 8-bit memory operand. -func IsM8(op Op) bool { - // TODO(mbm): confirm "m8" check is defined correctly - // Intel manual: "A byte operand in memory, usually expressed as a variable or - // array name, but pointed to by the DS:(E)SI or ES:(E)DI registers. In 64-bit - // mode, it is pointed to by the RSI or RDI registers." - return IsMSize(op, 1) -} - -// IsM16 returns true if op is a 16-bit memory operand. -func IsM16(op Op) bool { - return IsMSize(op, 2) -} - -// IsM32 returns true if op is a 16-bit memory operand. -func IsM32(op Op) bool { - return IsMSize(op, 4) -} - -// IsM64 returns true if op is a 64-bit memory operand. -func IsM64(op Op) bool { - return IsMSize(op, 8) -} - -// IsMSize returns true if op is a memory operand using general-purpose address -// registers of the given size in bytes. -func IsMSize(op Op, n uint) bool { - // TODO(mbm): should memory operands have a size attribute as well? - // TODO(mbm): m8,m16,m32,m64 checks do not actually check size - m, ok := op.(Mem) - return ok && IsMReg(m.Base) && (m.Index == nil || IsMReg(m.Index)) -} - -// IsMReg returns true if op is a register that can be used in a memory operand. -func IsMReg(op Op) bool { - return IsPseudo(op) || IsRegisterKind(op, reg.KindGP) -} - -// IsM128 returns true if op is a 128-bit memory operand. -func IsM128(op Op) bool { - // TODO(mbm): should "m128" be the same as "m64"? - return IsM64(op) -} - -// IsM256 returns true if op is a 256-bit memory operand. -func IsM256(op Op) bool { - // TODO(mbm): should "m256" be the same as "m64"? - return IsM64(op) -} - -// IsM512 returns true if op is a 512-bit memory operand. -func IsM512(op Op) bool { - // TODO(mbm): should "m512" be the same as "m64"? - return IsM64(op) -} - -// IsVM32X returns true if op is a vector memory operand with 32-bit XMM index. -func IsVM32X(op Op) bool { - return IsVmx(op) -} - -// IsVM64X returns true if op is a vector memory operand with 64-bit XMM index. -func IsVM64X(op Op) bool { - return IsVmx(op) -} - -// IsVmx returns true if op is a vector memory operand with XMM index. -func IsVmx(op Op) bool { - return isvm(op, IsXMM) -} - -// IsVM32Y returns true if op is a vector memory operand with 32-bit YMM index. -func IsVM32Y(op Op) bool { - return IsVmy(op) -} - -// IsVM64Y returns true if op is a vector memory operand with 64-bit YMM index. -func IsVM64Y(op Op) bool { - return IsVmy(op) -} - -// IsVmy returns true if op is a vector memory operand with YMM index. -func IsVmy(op Op) bool { - return isvm(op, IsYMM) -} - -// IsVM32Z returns true if op is a vector memory operand with 32-bit ZMM index. -func IsVM32Z(op Op) bool { - return IsVmz(op) -} - -// IsVM64Z returns true if op is a vector memory operand with 64-bit ZMM index. -func IsVM64Z(op Op) bool { - return IsVmz(op) -} - -// IsVmz returns true if op is a vector memory operand with ZMM index. -func IsVmz(op Op) bool { - return isvm(op, IsZMM) -} - -func isvm(op Op, idx func(Op) bool) bool { - m, ok := op.(Mem) - return ok && IsR64(m.Base) && idx(m.Index) -} - -// IsREL8 returns true if op is an 8-bit offset relative to instruction pointer. -func IsREL8(op Op) bool { - r, ok := op.(Rel) - return ok && r == Rel(int8(r)) -} - -// IsREL32 returns true if op is an offset relative to instruction pointer, or a -// label reference. -func IsREL32(op Op) bool { - // TODO(mbm): should labels be considered separately? - _, rel := op.(Rel) - _, label := op.(LabelRef) - return rel || label -} diff --git a/vendor/github.com/mmcloughlin/avo/operand/const.go b/vendor/github.com/mmcloughlin/avo/operand/const.go deleted file mode 100644 index 10d57c52..00000000 --- a/vendor/github.com/mmcloughlin/avo/operand/const.go +++ /dev/null @@ -1,64 +0,0 @@ -package operand - -import ( - "fmt" - "strconv" - "strings" -) - -// Constant represents a constant literal. -type Constant interface { - Op - Bytes() int - constant() -} - -//go:generate go run make_const.go -output zconst.go - -// Special cases for floating point string representation. -// -// Issue 387 pointed out that floating point values that happen to be integers -// need to have a decimal point to be parsed correctly. - -// String returns a representation the 32-bit float which is guaranteed to be -// parsed as a floating point constant by the Go assembler. -func (f F32) String() string { return asmfloat(float64(f), 32) } - -// String returns a representation the 64-bit float which is guaranteed to be -// parsed as a floating point constant by the Go assembler. -func (f F64) String() string { return asmfloat(float64(f), 64) } - -// asmfloat represents x as a string such that the assembler scanner will always -// recognize it as a float. Specifically, ensure that when x is an integral -// value, the result will still have a decimal point. -func asmfloat(x float64, bits int) string { - s := strconv.FormatFloat(x, 'f', -1, bits) - if !strings.ContainsRune(s, '.') { - s += ".0" - } - return s -} - -// String is a string constant. -type String string - -// Asm returns an assembly syntax representation of the string s. -func (s String) Asm() string { return fmt.Sprintf("$%q", s) } - -// Bytes returns the length of s. -func (s String) Bytes() int { return len(s) } - -func (s String) constant() {} - -// Imm returns an unsigned integer constant with size guessed from x. -func Imm(x uint64) Constant { - switch { - case uint64(uint8(x)) == x: - return U8(x) - case uint64(uint16(x)) == x: - return U16(x) - case uint64(uint32(x)) == x: - return U32(x) - } - return U64(x) -} diff --git a/vendor/github.com/mmcloughlin/avo/operand/doc.go b/vendor/github.com/mmcloughlin/avo/operand/doc.go deleted file mode 100644 index 51c44dfb..00000000 --- a/vendor/github.com/mmcloughlin/avo/operand/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package operand provides types for instruction operands. -package operand diff --git a/vendor/github.com/mmcloughlin/avo/operand/types.go b/vendor/github.com/mmcloughlin/avo/operand/types.go deleted file mode 100644 index 878425ec..00000000 --- a/vendor/github.com/mmcloughlin/avo/operand/types.go +++ /dev/null @@ -1,151 +0,0 @@ -package operand - -import ( - "fmt" - - "github.com/mmcloughlin/avo/reg" -) - -// Op is an operand. -type Op interface { - Asm() string -} - -// Symbol represents a symbol name. -type Symbol struct { - Name string - Static bool // only visible in current source file -} - -// NewStaticSymbol builds a static Symbol. Static symbols are only visible in the current source file. -func NewStaticSymbol(name string) Symbol { - return Symbol{Name: name, Static: true} -} - -func (s Symbol) String() string { - n := s.Name - if s.Static { - n += "<>" - } - return n -} - -// Mem represents a memory reference. -type Mem struct { - Symbol Symbol - Disp int - Base reg.Register - Index reg.Register - Scale uint8 -} - -// NewParamAddr is a convenience to build a Mem operand pointing to a function -// parameter, which is a named offset from the frame pointer pseudo register. -func NewParamAddr(name string, offset int) Mem { - return Mem{ - Symbol: Symbol{ - Name: name, - Static: false, - }, - Disp: offset, - Base: reg.FramePointer, - } -} - -// NewStackAddr returns a memory reference relative to the stack pointer. -func NewStackAddr(offset int) Mem { - return Mem{ - Disp: offset, - Base: reg.StackPointer, - } -} - -// NewDataAddr returns a memory reference relative to the named data symbol. -func NewDataAddr(sym Symbol, offset int) Mem { - return Mem{ - Symbol: sym, - Disp: offset, - Base: reg.StaticBase, - } -} - -// Offset returns a reference to m plus idx bytes. -func (m Mem) Offset(idx int) Mem { - a := m - a.Disp += idx - return a -} - -// Idx returns a new memory reference with (Index, Scale) set to (r, s). -func (m Mem) Idx(r reg.Register, s uint8) Mem { - a := m - a.Index = r - a.Scale = s - return a -} - -// Asm returns an assembly syntax representation of m. -func (m Mem) Asm() string { - a := m.Symbol.String() - if a != "" { - a += fmt.Sprintf("%+d", m.Disp) - } else if m.Disp != 0 { - a += fmt.Sprintf("%d", m.Disp) - } - if m.Base != nil { - a += fmt.Sprintf("(%s)", m.Base.Asm()) - } - if m.Index != nil && m.Scale != 0 { - a += fmt.Sprintf("(%s*%d)", m.Index.Asm(), m.Scale) - } - return a -} - -// Rel is an offset relative to the instruction pointer. -type Rel int32 - -// Asm returns an assembly syntax representation of r. -func (r Rel) Asm() string { - return fmt.Sprintf(".%+d", r) -} - -// LabelRef is a reference to a label. -type LabelRef string - -// Asm returns an assembly syntax representation of l. -func (l LabelRef) Asm() string { - return string(l) -} - -// Registers returns the list of all operands involved in the given operand. -func Registers(op Op) []reg.Register { - switch op := op.(type) { - case reg.Register: - return []reg.Register{op} - case Mem: - var r []reg.Register - if op.Base != nil { - r = append(r, op.Base) - } - if op.Index != nil { - r = append(r, op.Index) - } - return r - case Constant, Rel, LabelRef: - return nil - } - panic("unknown operand type") -} - -// ApplyAllocation returns an operand with allocated registers replaced. Registers missing from the allocation are left alone. -func ApplyAllocation(op Op, a reg.Allocation) Op { - switch op := op.(type) { - case reg.Register: - return a.LookupRegisterDefault(op) - case Mem: - op.Base = a.LookupRegisterDefault(op.Base) - op.Index = a.LookupRegisterDefault(op.Index) - return op - } - return op -} diff --git a/vendor/github.com/mmcloughlin/avo/operand/zconst.go b/vendor/github.com/mmcloughlin/avo/operand/zconst.go deleted file mode 100644 index 14b128a1..00000000 --- a/vendor/github.com/mmcloughlin/avo/operand/zconst.go +++ /dev/null @@ -1,75 +0,0 @@ -// Code generated by make_const.go. DO NOT EDIT. - -package operand - -import "fmt" - -// I8 is a 8-bit signed integer constant. -type I8 int8 - -func (i I8) Asm() string { return fmt.Sprintf("$%+d", i) } -func (i I8) Bytes() int { return 1 } -func (i I8) constant() {} - -// U8 is a 8-bit unsigned integer constant. -type U8 uint8 - -func (u U8) Asm() string { return fmt.Sprintf("$%#02x", u) } -func (u U8) Bytes() int { return 1 } -func (u U8) constant() {} - -// I16 is a 16-bit signed integer constant. -type I16 int16 - -func (i I16) Asm() string { return fmt.Sprintf("$%+d", i) } -func (i I16) Bytes() int { return 2 } -func (i I16) constant() {} - -// U16 is a 16-bit unsigned integer constant. -type U16 uint16 - -func (u U16) Asm() string { return fmt.Sprintf("$%#04x", u) } -func (u U16) Bytes() int { return 2 } -func (u U16) constant() {} - -// F32 is a 32-bit floating point constant. -type F32 float32 - -func (f F32) Asm() string { return fmt.Sprintf("$(%s)", f) } -func (f F32) Bytes() int { return 4 } -func (f F32) constant() {} - -// I32 is a 32-bit signed integer constant. -type I32 int32 - -func (i I32) Asm() string { return fmt.Sprintf("$%+d", i) } -func (i I32) Bytes() int { return 4 } -func (i I32) constant() {} - -// U32 is a 32-bit unsigned integer constant. -type U32 uint32 - -func (u U32) Asm() string { return fmt.Sprintf("$%#08x", u) } -func (u U32) Bytes() int { return 4 } -func (u U32) constant() {} - -// F64 is a 64-bit floating point constant. -type F64 float64 - -func (f F64) Asm() string { return fmt.Sprintf("$(%s)", f) } -func (f F64) Bytes() int { return 8 } -func (f F64) constant() {} - -// I64 is a 64-bit signed integer constant. -type I64 int64 - -func (i I64) Asm() string { return fmt.Sprintf("$%+d", i) } -func (i I64) Bytes() int { return 8 } -func (i I64) constant() {} - -// U64 is a 64-bit unsigned integer constant. -type U64 uint64 - -func (u U64) Asm() string { return fmt.Sprintf("$%#016x", u) } -func (u U64) Bytes() int { return 8 } -func (u U64) constant() {} diff --git a/vendor/github.com/mmcloughlin/avo/pass/alloc.go b/vendor/github.com/mmcloughlin/avo/pass/alloc.go deleted file mode 100644 index 39ada552..00000000 --- a/vendor/github.com/mmcloughlin/avo/pass/alloc.go +++ /dev/null @@ -1,213 +0,0 @@ -package pass - -import ( - "errors" - "math" - "sort" - - "github.com/mmcloughlin/avo/reg" -) - -// edge is an edge of the interference graph, indicating that registers X and Y -// must be in non-conflicting registers. -type edge struct { - X, Y reg.ID -} - -// Allocator is a graph-coloring register allocator. -type Allocator struct { - registers []reg.ID - priority map[reg.ID]int - allocation reg.Allocation - edges []*edge - possible map[reg.ID][]reg.ID -} - -// NewAllocator builds an allocator for the given physical registers. -func NewAllocator(rs []reg.Physical) (*Allocator, error) { - // Set of IDs, excluding restricted registers. - idset := map[reg.ID]bool{} - for _, r := range rs { - if (r.Info() & reg.Restricted) != 0 { - continue - } - idset[r.ID()] = true - } - - if len(idset) == 0 { - return nil, errors.New("no allocatable registers") - } - - // Produce slice of unique register IDs. - var ids []reg.ID - for id := range idset { - ids = append(ids, id) - } - - a := &Allocator{ - registers: ids, - priority: map[reg.ID]int{}, - allocation: reg.NewEmptyAllocation(), - possible: map[reg.ID][]reg.ID{}, - } - a.sortregisters() - - return a, nil -} - -// NewAllocatorForKind builds an allocator for the given kind of registers. -func NewAllocatorForKind(k reg.Kind) (*Allocator, error) { - f := reg.FamilyOfKind(k) - if f == nil { - return nil, errors.New("unknown register family") - } - return NewAllocator(f.Registers()) -} - -// SetPriority sets the priority of the given regiser to p. Higher priority -// registers are preferred in allocations. By default all registers have 0 -// priority. Priority will only apply to subsequent Add() calls, therefore -// typically all SetPriority calls should happen at allocator initialization. -func (a *Allocator) SetPriority(id reg.ID, p int) { - a.priority[id] = p - a.sortregisters() -} - -// sortregisters sorts the list of available registers: higher priority first, -// falling back to sorting by ID. -func (a *Allocator) sortregisters() { - sort.Slice(a.registers, func(i, j int) bool { - ri, rj := a.registers[i], a.registers[j] - pi, pj := a.priority[ri], a.priority[rj] - return (pi > pj) || (pi == pj && ri < rj) - }) -} - -// AddInterferenceSet records that r interferes with every register in s. Convenience wrapper around AddInterference. -func (a *Allocator) AddInterferenceSet(r reg.Register, s reg.MaskSet) { - for id, mask := range s { - if (r.Mask() & mask) != 0 { - a.AddInterference(r.ID(), id) - } - } -} - -// AddInterference records that x and y must be assigned to non-conflicting physical registers. -func (a *Allocator) AddInterference(x, y reg.ID) { - a.Add(x) - a.Add(y) - a.edges = append(a.edges, &edge{X: x, Y: y}) -} - -// Add adds a register to be allocated. Does nothing if the register has already been added. -func (a *Allocator) Add(v reg.ID) { - if !v.IsVirtual() { - return - } - if _, found := a.possible[v]; found { - return - } - a.possible[v] = a.possibleregisters(v) -} - -// Allocate allocates physical registers. -func (a *Allocator) Allocate() (reg.Allocation, error) { - for { - if err := a.update(); err != nil { - return nil, err - } - - if a.remaining() == 0 { - break - } - - v := a.mostrestricted() - if err := a.alloc(v); err != nil { - return nil, err - } - } - return a.allocation, nil -} - -// update possible allocations based on edges. -func (a *Allocator) update() error { - var rem []*edge - for _, e := range a.edges { - x := a.allocation.LookupDefault(e.X) - y := a.allocation.LookupDefault(e.Y) - switch { - case x.IsVirtual() && y.IsVirtual(): - rem = append(rem, e) - continue - case x.IsPhysical() && y.IsPhysical(): - if x == y { - return errors.New("impossible register allocation") - } - case x.IsPhysical() && y.IsVirtual(): - a.discardconflicting(y, x) - case x.IsVirtual() && y.IsPhysical(): - a.discardconflicting(x, y) - default: - panic("unreachable") - } - } - a.edges = rem - - return nil -} - -// mostrestricted returns the virtual register with the least possibilities. -func (a *Allocator) mostrestricted() reg.ID { - n := int(math.MaxInt32) - var v reg.ID - for w, p := range a.possible { - // On a tie, choose the smallest ID in numeric order. This avoids - // non-deterministic allocations due to map iteration order. - if len(p) < n || (len(p) == n && w < v) { - n = len(p) - v = w - } - } - return v -} - -// discardconflicting removes registers from vs possible list that conflict with p. -func (a *Allocator) discardconflicting(v, p reg.ID) { - a.possible[v] = filterregisters(a.possible[v], func(r reg.ID) bool { - return r != p - }) -} - -// alloc attempts to allocate a register to v. -func (a *Allocator) alloc(v reg.ID) error { - ps := a.possible[v] - if len(ps) == 0 { - return errors.New("failed to allocate registers") - } - p := ps[0] - a.allocation[v] = p - delete(a.possible, v) - return nil -} - -// remaining returns the number of unallocated registers. -func (a *Allocator) remaining() int { - return len(a.possible) -} - -// possibleregisters returns all allocate-able registers for the given virtual. -func (a *Allocator) possibleregisters(v reg.ID) []reg.ID { - return filterregisters(a.registers, func(r reg.ID) bool { - return v.Kind() == r.Kind() - }) -} - -func filterregisters(in []reg.ID, predicate func(reg.ID) bool) []reg.ID { - var rs []reg.ID - for _, r := range in { - if predicate(r) { - rs = append(rs, r) - } - } - return rs -} diff --git a/vendor/github.com/mmcloughlin/avo/pass/cfg.go b/vendor/github.com/mmcloughlin/avo/pass/cfg.go deleted file mode 100644 index d5f6ea4e..00000000 --- a/vendor/github.com/mmcloughlin/avo/pass/cfg.go +++ /dev/null @@ -1,81 +0,0 @@ -package pass - -import ( - "errors" - "fmt" - - "github.com/mmcloughlin/avo/ir" -) - -// LabelTarget populates the LabelTarget of the given function. This maps from -// label name to the following instruction. -func LabelTarget(fn *ir.Function) error { - target := map[ir.Label]*ir.Instruction{} - var pending []ir.Label - for _, node := range fn.Nodes { - switch n := node.(type) { - case ir.Label: - if _, found := target[n]; found { - return fmt.Errorf("duplicate label \"%s\"", n) - } - pending = append(pending, n) - case *ir.Instruction: - for _, label := range pending { - target[label] = n - } - pending = nil - } - } - if len(pending) != 0 { - return errors.New("function ends with label") - } - fn.LabelTarget = target - return nil -} - -// CFG constructs the call-flow-graph for the function. -func CFG(fn *ir.Function) error { - is := fn.Instructions() - n := len(is) - - // Populate successors. - for i := 0; i < n; i++ { - cur := is[i] - var nxt *ir.Instruction - if i+1 < n { - nxt = is[i+1] - } - - // If it's a branch, locate the target. - if cur.IsBranch { - lbl := cur.TargetLabel() - if lbl == nil { - return errors.New("no label for branch instruction") - } - target, found := fn.LabelTarget[*lbl] - if !found { - return fmt.Errorf("unknown label %q", *lbl) - } - cur.Succ = append(cur.Succ, target) - } - - // Otherwise, could continue to the following instruction. - switch { - case cur.IsTerminal: - case cur.IsUnconditionalBranch(): - default: - cur.Succ = append(cur.Succ, nxt) - } - } - - // Populate predecessors. - for _, i := range is { - for _, s := range i.Succ { - if s != nil { - s.Pred = append(s.Pred, i) - } - } - } - - return nil -} diff --git a/vendor/github.com/mmcloughlin/avo/pass/cleanup.go b/vendor/github.com/mmcloughlin/avo/pass/cleanup.go deleted file mode 100644 index d91250f3..00000000 --- a/vendor/github.com/mmcloughlin/avo/pass/cleanup.go +++ /dev/null @@ -1,123 +0,0 @@ -package pass - -import ( - "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/operand" -) - -// PruneJumpToFollowingLabel removes jump instructions that target an -// immediately following label. -func PruneJumpToFollowingLabel(fn *ir.Function) error { - for i := 0; i+1 < len(fn.Nodes); i++ { - node := fn.Nodes[i] - next := fn.Nodes[i+1] - - // This node is an unconditional jump. - inst, ok := node.(*ir.Instruction) - if !ok || !inst.IsBranch || inst.IsConditional { - continue - } - - target := inst.TargetLabel() - if target == nil { - continue - } - - // And the jump target is the immediately following node. - lbl, ok := next.(ir.Label) - if !ok || lbl != *target { - continue - } - - // Then the jump is unnecessary and can be removed. - fn.Nodes = deletenode(fn.Nodes, i) - i-- - } - - return nil -} - -// PruneDanglingLabels removes labels that are not referenced by any branches. -func PruneDanglingLabels(fn *ir.Function) error { - // Count label references. - count := map[ir.Label]int{} - for _, n := range fn.Nodes { - i, ok := n.(*ir.Instruction) - if !ok || !i.IsBranch { - continue - } - - target := i.TargetLabel() - if target == nil { - continue - } - - count[*target]++ - } - - // Look for labels with no references. - for i := 0; i < len(fn.Nodes); i++ { - node := fn.Nodes[i] - lbl, ok := node.(ir.Label) - if !ok { - continue - } - - if count[lbl] == 0 { - fn.Nodes = deletenode(fn.Nodes, i) - i-- - } - } - - return nil -} - -// PruneSelfMoves removes move instructions from one register to itself. -func PruneSelfMoves(fn *ir.Function) error { - return removeinstructions(fn, func(i *ir.Instruction) bool { - switch i.Opcode { - case "MOVB", "MOVW", "MOVL", "MOVQ": - default: - return false - } - - return operand.IsRegister(i.Operands[0]) && operand.IsRegister(i.Operands[1]) && i.Operands[0] == i.Operands[1] - }) -} - -// removeinstructions deletes instructions from the given function which match predicate. -func removeinstructions(fn *ir.Function, predicate func(*ir.Instruction) bool) error { - // Removal of instructions has the potential to invalidate CFG structures. - // Clear them to prevent accidental use of stale structures after this pass. - invalidatecfg(fn) - - for i := 0; i < len(fn.Nodes); i++ { - n := fn.Nodes[i] - - inst, ok := n.(*ir.Instruction) - if !ok || !predicate(inst) { - continue - } - - fn.Nodes = deletenode(fn.Nodes, i) - } - - return nil -} - -// deletenode deletes node i from nodes and returns the resulting slice. -func deletenode(nodes []ir.Node, i int) []ir.Node { - n := len(nodes) - copy(nodes[i:], nodes[i+1:]) - nodes[n-1] = nil - return nodes[:n-1] -} - -// invalidatecfg clears CFG structures. -func invalidatecfg(fn *ir.Function) { - fn.LabelTarget = nil - for _, i := range fn.Instructions() { - i.Pred = nil - i.Succ = nil - } -} diff --git a/vendor/github.com/mmcloughlin/avo/pass/isa.go b/vendor/github.com/mmcloughlin/avo/pass/isa.go deleted file mode 100644 index 951834d1..00000000 --- a/vendor/github.com/mmcloughlin/avo/pass/isa.go +++ /dev/null @@ -1,31 +0,0 @@ -package pass - -import ( - "sort" - - "github.com/mmcloughlin/avo/ir" -) - -// RequiredISAExtensions determines ISA extensions required for the given -// function. Populates the ISA field. -func RequiredISAExtensions(fn *ir.Function) error { - // Collect ISA set. - set := map[string]bool{} - for _, i := range fn.Instructions() { - for _, isa := range i.ISA { - set[isa] = true - } - } - - if len(set) == 0 { - return nil - } - - // Populate the function's ISA field with the unique sorted list. - for isa := range set { - fn.ISA = append(fn.ISA, isa) - } - sort.Strings(fn.ISA) - - return nil -} diff --git a/vendor/github.com/mmcloughlin/avo/pass/pass.go b/vendor/github.com/mmcloughlin/avo/pass/pass.go deleted file mode 100644 index 4f36b8be..00000000 --- a/vendor/github.com/mmcloughlin/avo/pass/pass.go +++ /dev/null @@ -1,101 +0,0 @@ -// Package pass implements processing passes on avo Files. -package pass - -import ( - "io" - - "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/printer" -) - -// Compile pass compiles an avo file. Upon successful completion the avo file -// may be printed to Go assembly. -var Compile = Concat( - Verify, - FunctionPass(PruneJumpToFollowingLabel), - FunctionPass(PruneDanglingLabels), - FunctionPass(LabelTarget), - FunctionPass(CFG), - InstructionPass(ZeroExtend32BitOutputs), - FunctionPass(Liveness), - FunctionPass(AllocateRegisters), - FunctionPass(BindRegisters), - FunctionPass(VerifyAllocation), - FunctionPass(EnsureBasePointerCalleeSaved), - Func(IncludeTextFlagHeader), - FunctionPass(PruneSelfMoves), - FunctionPass(RequiredISAExtensions), -) - -// Interface for a processing pass. -type Interface interface { - Execute(*ir.File) error -} - -// Func adapts a function to the pass Interface. -type Func func(*ir.File) error - -// Execute calls p. -func (p Func) Execute(f *ir.File) error { - return p(f) -} - -// FunctionPass is a convenience for implementing a full file pass with a -// function that operates on each avo Function independently. -type FunctionPass func(*ir.Function) error - -// Execute calls p on every function in the file. Exits on the first error. -func (p FunctionPass) Execute(f *ir.File) error { - for _, fn := range f.Functions() { - if err := p(fn); err != nil { - return err - } - } - return nil -} - -// InstructionPass is a convenience for implementing a full file pass with a -// function that operates on each Instruction independently. -type InstructionPass func(*ir.Instruction) error - -// Execute calls p on every instruction in the file. Exits on the first error. -func (p InstructionPass) Execute(f *ir.File) error { - for _, fn := range f.Functions() { - for _, i := range fn.Instructions() { - if err := p(i); err != nil { - return err - } - } - } - return nil -} - -// Concat returns a pass that executes the given passes in order, stopping on the first error. -func Concat(passes ...Interface) Interface { - return Func(func(f *ir.File) error { - for _, p := range passes { - if err := p.Execute(f); err != nil { - return err - } - } - return nil - }) -} - -// Output pass prints a file. -type Output struct { - Writer io.WriteCloser - Printer printer.Printer -} - -// Execute prints f with the configured Printer and writes output to Writer. -func (o *Output) Execute(f *ir.File) error { - b, err := o.Printer.Print(f) - if err != nil { - return err - } - if _, err = o.Writer.Write(b); err != nil { - return err - } - return o.Writer.Close() -} diff --git a/vendor/github.com/mmcloughlin/avo/pass/reg.go b/vendor/github.com/mmcloughlin/avo/pass/reg.go deleted file mode 100644 index 6c19eb8e..00000000 --- a/vendor/github.com/mmcloughlin/avo/pass/reg.go +++ /dev/null @@ -1,223 +0,0 @@ -package pass - -import ( - "errors" - - "github.com/mmcloughlin/avo/gotypes" - "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/operand" - "github.com/mmcloughlin/avo/reg" -) - -// ZeroExtend32BitOutputs applies the rule that "32-bit operands generate a -// 32-bit result, zero-extended to a 64-bit result in the destination -// general-purpose register" (Intel Software Developer’s Manual, Volume 1, -// 3.4.1.1). -func ZeroExtend32BitOutputs(i *ir.Instruction) error { - for j, op := range i.Outputs { - if !operand.IsR32(op) { - continue - } - r, ok := op.(reg.GP) - if !ok { - panic("r32 operand should satisfy reg.GP") - } - i.Outputs[j] = r.As64() - } - return nil -} - -// Liveness computes register liveness. -func Liveness(fn *ir.Function) error { - // Note this implementation is initially naive so as to be "obviously correct". - // There are a well-known optimizations we can apply if necessary. - - is := fn.Instructions() - - // Process instructions in reverse: poor approximation to topological sort. - // TODO(mbm): process instructions in topological sort order - for l, r := 0, len(is)-1; l < r; l, r = l+1, r-1 { - is[l], is[r] = is[r], is[l] - } - - // Initialize. - for _, i := range is { - i.LiveIn = reg.NewMaskSetFromRegisters(i.InputRegisters()) - i.LiveOut = reg.NewEmptyMaskSet() - } - - // Iterative dataflow analysis. - for { - changes := false - - for _, i := range is { - // out[n] = UNION[s IN succ[n]] in[s] - for _, s := range i.Succ { - if s == nil { - continue - } - changes = i.LiveOut.Update(s.LiveIn) || changes - } - - // in[n] = use[n] UNION (out[n] - def[n]) - def := reg.NewMaskSetFromRegisters(i.OutputRegisters()) - changes = i.LiveIn.Update(i.LiveOut.Difference(def)) || changes - } - - if !changes { - break - } - } - - return nil -} - -// AllocateRegisters performs register allocation. -func AllocateRegisters(fn *ir.Function) error { - // Initialize one allocator per kind. - as := map[reg.Kind]*Allocator{} - for _, i := range fn.Instructions() { - for _, r := range i.Registers() { - k := r.Kind() - if _, found := as[k]; !found { - a, err := NewAllocatorForKind(k) - if err != nil { - return err - } - as[k] = a - } - } - } - - // De-prioritize the base pointer register. This can be used as a general - // purpose register, but it's callee-save so needs to be saved/restored if - // it is clobbered. For this reason we prefer to avoid using it unless - // forced to by register pressure. - for k, a := range as { - f := reg.FamilyOfKind(k) - for _, r := range f.Registers() { - if (r.Info() & reg.BasePointer) != 0 { - // Negative priority penalizes this register relative to all - // others (having default zero priority). - a.SetPriority(r.ID(), -1) - } - } - } - - // Populate registers to be allocated. - for _, i := range fn.Instructions() { - for _, r := range i.Registers() { - as[r.Kind()].Add(r.ID()) - } - } - - // Record register interferences. - for _, i := range fn.Instructions() { - for _, d := range i.OutputRegisters() { - k := d.Kind() - out := i.LiveOut.OfKind(k) - out.DiscardRegister(d) - as[k].AddInterferenceSet(d, out) - } - } - - // Execute register allocation. - fn.Allocation = reg.NewEmptyAllocation() - for _, a := range as { - al, err := a.Allocate() - if err != nil { - return err - } - if err := fn.Allocation.Merge(al); err != nil { - return err - } - } - - return nil -} - -// BindRegisters applies the result of register allocation, replacing all virtual registers with their assigned physical registers. -func BindRegisters(fn *ir.Function) error { - for _, i := range fn.Instructions() { - for idx := range i.Operands { - i.Operands[idx] = operand.ApplyAllocation(i.Operands[idx], fn.Allocation) - } - for idx := range i.Inputs { - i.Inputs[idx] = operand.ApplyAllocation(i.Inputs[idx], fn.Allocation) - } - for idx := range i.Outputs { - i.Outputs[idx] = operand.ApplyAllocation(i.Outputs[idx], fn.Allocation) - } - } - return nil -} - -// VerifyAllocation performs sanity checks following register allocation. -func VerifyAllocation(fn *ir.Function) error { - // All registers should be physical. - for _, i := range fn.Instructions() { - for _, r := range i.Registers() { - if reg.ToPhysical(r) == nil { - return errors.New("non physical register found") - } - } - } - - return nil -} - -// EnsureBasePointerCalleeSaved ensures that the base pointer register will be -// saved and restored if it has been clobbered by the function. -func EnsureBasePointerCalleeSaved(fn *ir.Function) error { - // Check to see if the base pointer is written to. - clobbered := false - for _, i := range fn.Instructions() { - for _, r := range i.OutputRegisters() { - if p := reg.ToPhysical(r); p != nil && (p.Info()®.BasePointer) != 0 { - clobbered = true - } - } - } - - if !clobbered { - return nil - } - - // This function clobbers the base pointer register so we need to ensure it - // will be saved and restored. The Go assembler will do this automatically, - // with a few exceptions detailed below. In summary, we can usually ensure - // this happens by ensuring the function is not frameless (apart from - // NOFRAME functions). - // - // Reference: https://github.com/golang/go/blob/3f4977bd5800beca059defb5de4dc64cd758cbb9/src/cmd/internal/obj/x86/obj6.go#L591-L609 - // - // var bpsize int - // if ctxt.Arch.Family == sys.AMD64 && - // !p.From.Sym.NoFrame() && // (1) below - // !(autoffset == 0 && p.From.Sym.NoSplit()) && // (2) below - // !(autoffset == 0 && !hasCall) { // (3) below - // // Make room to save a base pointer. - // // There are 2 cases we must avoid: - // // 1) If noframe is set (which we do for functions which tail call). - // // 2) Scary runtime internals which would be all messed up by frame pointers. - // // We detect these using a heuristic: frameless nosplit functions. - // // TODO: Maybe someday we label them all with NOFRAME and get rid of this heuristic. - // // For performance, we also want to avoid: - // // 3) Frameless leaf functions - // bpsize = ctxt.Arch.PtrSize - // autoffset += int32(bpsize) - // p.To.Offset += int64(bpsize) - // } else { - // bpsize = 0 - // } - // - if fn.Attributes.NOFRAME() { - return errors.New("NOFRAME function clobbers base pointer register") - } - - if fn.LocalSize == 0 { - fn.AllocLocal(int(gotypes.PointerSize)) - } - - return nil -} diff --git a/vendor/github.com/mmcloughlin/avo/pass/textflag.go b/vendor/github.com/mmcloughlin/avo/pass/textflag.go deleted file mode 100644 index 35a848b8..00000000 --- a/vendor/github.com/mmcloughlin/avo/pass/textflag.go +++ /dev/null @@ -1,42 +0,0 @@ -package pass - -import ( - "github.com/mmcloughlin/avo/attr" - "github.com/mmcloughlin/avo/ir" -) - -// IncludeTextFlagHeader includes textflag.h if necessary. -func IncludeTextFlagHeader(f *ir.File) error { - const textflagheader = "textflag.h" - - // Check if we already have it. - for _, path := range f.Includes { - if path == textflagheader { - return nil - } - } - - // Add it if necessary. - if requirestextflags(f) { - f.Includes = append(f.Includes, textflagheader) - } - - return nil -} - -// requirestextflags returns whether the file uses flags in the textflags.h header. -func requirestextflags(f *ir.File) bool { - for _, s := range f.Sections { - var a attr.Attribute - switch s := s.(type) { - case *ir.Function: - a = s.Attributes - case *ir.Global: - a = s.Attributes - } - if a.ContainsTextFlags() { - return true - } - } - return false -} diff --git a/vendor/github.com/mmcloughlin/avo/pass/verify.go b/vendor/github.com/mmcloughlin/avo/pass/verify.go deleted file mode 100644 index 1e7b3683..00000000 --- a/vendor/github.com/mmcloughlin/avo/pass/verify.go +++ /dev/null @@ -1,32 +0,0 @@ -package pass - -import ( - "errors" - - "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/operand" -) - -// Verify pass validates an avo file. -var Verify = Concat( - InstructionPass(VerifyMemOperands), -) - -// VerifyMemOperands checks the instruction's memory operands. -func VerifyMemOperands(i *ir.Instruction) error { - for _, op := range i.Operands { - m, ok := op.(operand.Mem) - if !ok { - continue - } - - if m.Base == nil { - return errors.New("bad memory operand: missing base register") - } - - if m.Index != nil && m.Scale == 0 { - return errors.New("bad memory operand: index register with scale 0") - } - } - return nil -} diff --git a/vendor/github.com/mmcloughlin/avo/printer/goasm.go b/vendor/github.com/mmcloughlin/avo/printer/goasm.go deleted file mode 100644 index 23f5b2f7..00000000 --- a/vendor/github.com/mmcloughlin/avo/printer/goasm.go +++ /dev/null @@ -1,192 +0,0 @@ -package printer - -import ( - "strconv" - "strings" - - "github.com/mmcloughlin/avo/buildtags" - "github.com/mmcloughlin/avo/internal/prnt" - "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/operand" -) - -// dot is the pesky unicode dot used in Go assembly. -const dot = "\u00b7" - -type goasm struct { - cfg Config - prnt.Generator - - instructions []*ir.Instruction - clear bool -} - -// NewGoAsm constructs a printer for writing Go assembly files. -func NewGoAsm(cfg Config) Printer { - return &goasm{cfg: cfg} -} - -func (p *goasm) Print(f *ir.File) ([]byte, error) { - p.header(f) - for _, s := range f.Sections { - switch s := s.(type) { - case *ir.Function: - p.function(s) - case *ir.Global: - p.global(s) - default: - panic("unknown section type") - } - } - return p.Result() -} - -func (p *goasm) header(f *ir.File) { - p.Comment(p.cfg.GeneratedWarning()) - - if len(f.Constraints) > 0 { - constraints, err := buildtags.Format(f.Constraints) - if err != nil { - p.AddError(err) - } - p.NL() - p.Printf(constraints) - } - - if len(f.Includes) > 0 { - p.NL() - p.includes(f.Includes) - } -} - -func (p *goasm) includes(paths []string) { - for _, path := range paths { - p.Printf("#include \"%s\"\n", path) - } -} - -func (p *goasm) function(f *ir.Function) { - p.NL() - p.Comment(f.Stub()) - - if len(f.ISA) > 0 { - p.Comment("Requires: " + strings.Join(f.ISA, ", ")) - } - - // Reference: https://github.com/golang/go/blob/b115207baf6c2decc3820ada4574ef4e5ad940ec/src/cmd/internal/obj/util.go#L166-L176 - // - // if p.As == ATEXT { - // // If there are attributes, print them. Otherwise, skip the comma. - // // In short, print one of these two: - // // TEXT foo(SB), DUPOK|NOSPLIT, $0 - // // TEXT foo(SB), $0 - // s := p.From.Sym.Attribute.TextAttrString() - // if s != "" { - // fmt.Fprintf(&buf, "%s%s", sep, s) - // sep = ", " - // } - // } - // - p.Printf("TEXT %s%s(SB)", dot, f.Name) - if f.Attributes != 0 { - p.Printf(", %s", f.Attributes.Asm()) - } - p.Printf(", %s\n", textsize(f)) - - p.clear = true - for _, node := range f.Nodes { - switch n := node.(type) { - case *ir.Instruction: - p.instruction(n) - if n.IsTerminal || n.IsUnconditionalBranch() { - p.flush() - } - case ir.Label: - p.flush() - p.ensureclear() - p.Printf("%s:\n", n) - case *ir.Comment: - p.flush() - p.ensureclear() - for _, line := range n.Lines { - p.Printf("\t// %s\n", line) - } - default: - panic("unexpected node type") - } - } - p.flush() -} - -func (p *goasm) instruction(i *ir.Instruction) { - p.instructions = append(p.instructions, i) - p.clear = false -} - -func (p *goasm) flush() { - if len(p.instructions) == 0 { - return - } - - // Determine instruction width. Instructions with no operands are not - // considered in this calculation. - width := 0 - for _, i := range p.instructions { - opcode := i.OpcodeWithSuffixes() - if len(i.Operands) > 0 && len(opcode) > width { - width = len(opcode) - } - } - - // Output instruction block. - for _, i := range p.instructions { - if len(i.Operands) > 0 { - p.Printf("\t%-*s%s\n", width+1, i.OpcodeWithSuffixes(), joinOperands(i.Operands)) - } else { - p.Printf("\t%s\n", i.OpcodeWithSuffixes()) - } - } - - p.instructions = nil -} - -func (p *goasm) ensureclear() { - if !p.clear { - p.NL() - p.clear = true - } -} - -func (p *goasm) global(g *ir.Global) { - p.NL() - for _, d := range g.Data { - a := operand.NewDataAddr(g.Symbol, d.Offset) - p.Printf("DATA %s/%d, %s\n", a.Asm(), d.Value.Bytes(), d.Value.Asm()) - } - p.Printf("GLOBL %s(SB), %s, $%d\n", g.Symbol, g.Attributes.Asm(), g.Size) -} - -func textsize(f *ir.Function) string { - // Reference: https://github.com/golang/go/blob/b115207baf6c2decc3820ada4574ef4e5ad940ec/src/cmd/internal/obj/util.go#L260-L265 - // - // case TYPE_TEXTSIZE: - // if a.Val.(int32) == objabi.ArgsSizeUnknown { - // str = fmt.Sprintf("$%d", a.Offset) - // } else { - // str = fmt.Sprintf("$%d-%d", a.Offset, a.Val.(int32)) - // } - // - s := "$" + strconv.Itoa(f.FrameBytes()) - if argsize := f.ArgumentBytes(); argsize > 0 { - return s + "-" + strconv.Itoa(argsize) - } - return s -} - -func joinOperands(operands []operand.Op) string { - asm := make([]string, len(operands)) - for i, op := range operands { - asm[i] = op.Asm() - } - return strings.Join(asm, ", ") -} diff --git a/vendor/github.com/mmcloughlin/avo/printer/printer.go b/vendor/github.com/mmcloughlin/avo/printer/printer.go deleted file mode 100644 index b562c74e..00000000 --- a/vendor/github.com/mmcloughlin/avo/printer/printer.go +++ /dev/null @@ -1,98 +0,0 @@ -// Package printer implements printing of avo files in various formats. -package printer - -import ( - "fmt" - "os" - "path/filepath" - "strings" - - "github.com/mmcloughlin/avo/internal/stack" - "github.com/mmcloughlin/avo/ir" -) - -// Printer can produce output for an avo File. -type Printer interface { - Print(*ir.File) ([]byte, error) -} - -// Builder can construct a printer. -type Builder func(Config) Printer - -// Config represents general printing configuration. -type Config struct { - // Command-line arguments passed to the generator. If provided, this will be - // included in a code generation warning. - Argv []string - - // Name of the code generator. - Name string - - // Name of Go package the generated code will belong to. - Pkg string -} - -// NewDefaultConfig produces a config with Name "avo". -// The package name is guessed from the current directory. -func NewDefaultConfig() Config { - return Config{ - Name: "avo", - Pkg: pkg(), - } -} - -// NewArgvConfig constructs a Config from os.Args. -// The package name is guessed from the current directory. -func NewArgvConfig() Config { - return Config{ - Argv: os.Args, - Pkg: pkg(), - } -} - -// NewGoRunConfig produces a Config for a generator that's expected to be -// executed via "go run ...". -func NewGoRunConfig() Config { - path := mainfile() - if path == "" { - return NewDefaultConfig() - } - argv := []string{"go", "run", filepath.Base(path)} - if len(os.Args) > 1 { - argv = append(argv, os.Args[1:]...) - } - return Config{ - Argv: argv, - Pkg: pkg(), - } -} - -// GeneratedBy returns a description of the code generator. -func (c Config) GeneratedBy() string { - if c.Argv == nil { - return c.Name - } - return fmt.Sprintf("command: %s", strings.Join(c.Argv, " ")) -} - -// GeneratedWarning returns text for a code generation warning. Conforms to https://golang.org/s/generatedcode. -func (c Config) GeneratedWarning() string { - return fmt.Sprintf("Code generated by %s. DO NOT EDIT.", c.GeneratedBy()) -} - -// mainfile attempts to determine the file path of the main function by -// inspecting the stack. Returns empty string on failure. -func mainfile() string { - if m := stack.Main(); m != nil { - return m.File - } - return "" -} - -// pkg guesses the name of the package from the working directory. -func pkg() string { - if cwd, err := os.Getwd(); err == nil { - return filepath.Base(cwd) - } - return "" -} diff --git a/vendor/github.com/mmcloughlin/avo/printer/stubs.go b/vendor/github.com/mmcloughlin/avo/printer/stubs.go deleted file mode 100644 index 1fd9ddcb..00000000 --- a/vendor/github.com/mmcloughlin/avo/printer/stubs.go +++ /dev/null @@ -1,61 +0,0 @@ -package printer - -import ( - "go/format" - - "github.com/mmcloughlin/avo/buildtags" - "github.com/mmcloughlin/avo/internal/prnt" - "github.com/mmcloughlin/avo/ir" -) - -type stubs struct { - cfg Config - prnt.Generator -} - -// NewStubs constructs a printer for writing stub function declarations. -func NewStubs(cfg Config) Printer { - return &stubs{cfg: cfg} -} - -func (s *stubs) Print(f *ir.File) ([]byte, error) { - s.Comment(s.cfg.GeneratedWarning()) - - if len(f.Constraints) > 0 { - constraints, err := buildtags.Format(f.Constraints) - if err != nil { - s.AddError(err) - } - s.NL() - s.Printf(constraints) - } - - s.NL() - s.Printf("package %s\n", s.cfg.Pkg) - for _, fn := range f.Functions() { - s.NL() - s.Comment(fn.Doc...) - for _, pragma := range fn.Pragmas { - s.pragma(pragma) - } - s.Printf("%s\n", fn.Stub()) - } - - // Apply formatting to the result. This is the simplest way to ensure - // comment formatting rules introduced in Go 1.19 are applied. See - // https://go.dev/doc/comment. - src, err := s.Result() - if err != nil { - return nil, err - } - - return format.Source(src) -} - -func (s *stubs) pragma(p ir.Pragma) { - s.Printf("//go:%s", p.Directive) - for _, arg := range p.Arguments { - s.Printf(" %s", arg) - } - s.NL() -} diff --git a/vendor/github.com/mmcloughlin/avo/reg/collection.go b/vendor/github.com/mmcloughlin/avo/reg/collection.go deleted file mode 100644 index d1a744d9..00000000 --- a/vendor/github.com/mmcloughlin/avo/reg/collection.go +++ /dev/null @@ -1,57 +0,0 @@ -package reg - -// Collection represents a collection of virtual registers. This is primarily -// useful for allocating virtual registers with distinct IDs. -type Collection struct { - idx map[Kind]Index -} - -// NewCollection builds an empty register collection. -func NewCollection() *Collection { - return &Collection{ - idx: map[Kind]Index{}, - } -} - -// VirtualRegister allocates and returns a new virtual register of the given kind and width. -func (c *Collection) VirtualRegister(k Kind, s Spec) Virtual { - idx := c.idx[k] - c.idx[k]++ - return NewVirtual(idx, k, s) -} - -// GP8L allocates and returns a general-purpose 8-bit register (low byte). -func (c *Collection) GP8L() GPVirtual { return c.GP(S8L) } - -// GP8H allocates and returns a general-purpose 8-bit register (high byte). -func (c *Collection) GP8H() GPVirtual { return c.GP(S8H) } - -// GP8 allocates and returns a general-purpose 8-bit register (low byte). -func (c *Collection) GP8() GPVirtual { return c.GP8L() } - -// GP16 allocates and returns a general-purpose 16-bit register. -func (c *Collection) GP16() GPVirtual { return c.GP(S16) } - -// GP32 allocates and returns a general-purpose 32-bit register. -func (c *Collection) GP32() GPVirtual { return c.GP(S32) } - -// GP64 allocates and returns a general-purpose 64-bit register. -func (c *Collection) GP64() GPVirtual { return c.GP(S64) } - -// GP allocates and returns a general-purpose register of the given width. -func (c *Collection) GP(s Spec) GPVirtual { return newgpv(c.VirtualRegister(KindGP, s)) } - -// XMM allocates and returns a 128-bit vector register. -func (c *Collection) XMM() VecVirtual { return c.Vec(S128) } - -// YMM allocates and returns a 256-bit vector register. -func (c *Collection) YMM() VecVirtual { return c.Vec(S256) } - -// ZMM allocates and returns a 512-bit vector register. -func (c *Collection) ZMM() VecVirtual { return c.Vec(S512) } - -// Vec allocates and returns a vector register of the given width. -func (c *Collection) Vec(s Spec) VecVirtual { return newvecv(c.VirtualRegister(KindVector, s)) } - -// K allocates and returns an opmask register. -func (c *Collection) K() OpmaskVirtual { return newopmaskv(c.VirtualRegister(KindOpmask, S64)) } diff --git a/vendor/github.com/mmcloughlin/avo/reg/doc.go b/vendor/github.com/mmcloughlin/avo/reg/doc.go deleted file mode 100644 index 1c0aee37..00000000 --- a/vendor/github.com/mmcloughlin/avo/reg/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package reg provides types for physical and virtual registers, and definitions of x86-64 register families. -package reg diff --git a/vendor/github.com/mmcloughlin/avo/reg/set.go b/vendor/github.com/mmcloughlin/avo/reg/set.go deleted file mode 100644 index 2cf88147..00000000 --- a/vendor/github.com/mmcloughlin/avo/reg/set.go +++ /dev/null @@ -1,112 +0,0 @@ -package reg - -// MaskSet maps register IDs to masks. -type MaskSet map[ID]uint16 - -// NewEmptyMaskSet builds an empty register mask set. -func NewEmptyMaskSet() MaskSet { - return MaskSet{} -} - -// NewMaskSetFromRegisters forms a mask set from the given register list. -func NewMaskSetFromRegisters(rs []Register) MaskSet { - s := NewEmptyMaskSet() - for _, r := range rs { - s.AddRegister(r) - } - return s -} - -// Clone returns a copy of s. -func (s MaskSet) Clone() MaskSet { - c := NewEmptyMaskSet() - for id, mask := range s { - c.Add(id, mask) - } - return c -} - -// Add mask to the given register ID. -// Reports whether this made any change to the set. -func (s MaskSet) Add(id ID, mask uint16) bool { - if (s[id] & mask) == mask { - return false - } - s[id] |= mask - return true -} - -// AddRegister is a convenience for adding the register's (ID, mask) to the set. -// Reports whether this made any change to the set. -func (s MaskSet) AddRegister(r Register) bool { - return s.Add(r.ID(), r.Mask()) -} - -// Discard clears masked bits from register ID. -// Reports whether this made any change to the set. -func (s MaskSet) Discard(id ID, mask uint16) bool { - if curr, found := s[id]; !found || (curr&mask) == 0 { - return false - } - s[id] &^= mask - if s[id] == 0 { - delete(s, id) - } - return true -} - -// DiscardRegister is a convenience for discarding the register's (ID, mask) from the set. -// Reports whether this made any change to the set. -func (s MaskSet) DiscardRegister(r Register) bool { - return s.Discard(r.ID(), r.Mask()) -} - -// Update adds masks in t to s. -// Reports whether this made any change to the set. -func (s MaskSet) Update(t MaskSet) bool { - change := false - for id, mask := range t { - change = s.Add(id, mask) || change - } - return change -} - -// Difference returns the set of registers in s but not t. -func (s MaskSet) Difference(t MaskSet) MaskSet { - d := s.Clone() - d.DifferenceUpdate(t) - return d -} - -// DifferenceUpdate removes every element of t from s. -func (s MaskSet) DifferenceUpdate(t MaskSet) bool { - change := false - for id, mask := range t { - change = s.Discard(id, mask) || change - } - return change -} - -// Equals returns true if s and t contain the same masks. -func (s MaskSet) Equals(t MaskSet) bool { - if len(s) != len(t) { - return false - } - for id, mask := range s { - if _, found := t[id]; !found || mask != t[id] { - return false - } - } - return true -} - -// OfKind returns the set of elements of s with kind k. -func (s MaskSet) OfKind(k Kind) MaskSet { - t := NewEmptyMaskSet() - for id, mask := range s { - if id.Kind() == k { - t.Add(id, mask) - } - } - return t -} diff --git a/vendor/github.com/mmcloughlin/avo/reg/types.go b/vendor/github.com/mmcloughlin/avo/reg/types.go deleted file mode 100644 index 9eacdf95..00000000 --- a/vendor/github.com/mmcloughlin/avo/reg/types.go +++ /dev/null @@ -1,305 +0,0 @@ -package reg - -import ( - "errors" - "fmt" -) - -// Kind is a class of registers. -type Kind uint8 - -// Index of a register within a kind. -type Index uint16 - -// Family is a collection of Physical registers of a common kind. -type Family struct { - Kind Kind - registers []Physical -} - -// define builds a register and adds it to the Family. -func (f *Family) define(s Spec, idx Index, name string, flags ...Info) Physical { - r := newregister(f, s, idx, name, flags...) - f.add(r) - return r -} - -// add r to the family. -func (f *Family) add(r Physical) { - if r.Kind() != f.Kind { - panic("bad kind") - } - f.registers = append(f.registers, r) -} - -// Virtual returns a virtual register from this family's kind. -func (f *Family) Virtual(idx Index, s Spec) Virtual { - return NewVirtual(idx, f.Kind, s) -} - -// Registers returns the registers in this family. -func (f *Family) Registers() []Physical { - return append([]Physical(nil), f.registers...) -} - -// Lookup returns the register with given physical index and spec. Returns nil if no such register exists. -func (f *Family) Lookup(idx Index, s Spec) Physical { - for _, r := range f.registers { - if r.PhysicalIndex() == idx && r.Mask() == s.Mask() { - return r - } - } - return nil -} - -// ID is a register identifier. -type ID uint32 - -// newid builds a new register ID from the virtual flag v, kind and index. -func newid(v uint8, kind Kind, idx Index) ID { - return ID(v) | (ID(kind) << 8) | (ID(idx) << 16) -} - -// IsVirtual reports whether this is an ID for a virtual register. -func (id ID) IsVirtual() bool { return (id & 1) == 1 } - -// IsPhysical reports whether this is an ID for a physical register. -func (id ID) IsPhysical() bool { return !id.IsVirtual() } - -// Kind extracts the kind from the register ID. -func (id ID) Kind() Kind { return Kind(id >> 8) } - -// Index extracts the index from the register ID. -func (id ID) Index() Index { return Index(id >> 16) } - -// Register represents a virtual or physical register. -type Register interface { - ID() ID - Kind() Kind - Size() uint - Mask() uint16 - Asm() string - as(Spec) Register - spec() Spec - register() -} - -// Equal reports whether a and b are equal registers. -func Equal(a, b Register) bool { - return (a.ID() == b.ID()) && (a.Mask() == b.Mask()) -} - -// Virtual is a register of a given type and size, not yet allocated to a physical register. -type Virtual interface { - VirtualIndex() Index - Register -} - -// ToVirtual converts r to Virtual if possible, otherwise returns nil. -func ToVirtual(r Register) Virtual { - if v, ok := r.(Virtual); ok { - return v - } - return nil -} - -type virtual struct { - idx Index - kind Kind - Spec -} - -// NewVirtual builds a Virtual register. -func NewVirtual(idx Index, k Kind, s Spec) Virtual { - return virtual{ - idx: idx, - kind: k, - Spec: s, - } -} - -func (v virtual) ID() ID { return newid(1, v.kind, v.idx) } -func (v virtual) VirtualIndex() Index { return v.idx } -func (v virtual) Kind() Kind { return v.kind } - -func (v virtual) Asm() string { - // TODO(mbm): decide on virtual register syntax - return fmt.Sprintf("", v.idx, v.Kind(), v.Size()) -} - -func (v virtual) as(s Spec) Register { - return virtual{ - idx: v.idx, - kind: v.kind, - Spec: s, - } -} - -func (v virtual) spec() Spec { return v.Spec } -func (v virtual) register() {} - -// Info is a bitmask of register properties. -type Info uint8 - -// Defined register Info flags. -const ( - None Info = 0 - Restricted Info = 1 << iota - BasePointer -) - -// Physical is a concrete register. -type Physical interface { - PhysicalIndex() Index - Info() Info - Register -} - -// ToPhysical converts r to Physical if possible, otherwise returns nil. -func ToPhysical(r Register) Physical { - if p, ok := r.(Physical); ok { - return p - } - return nil -} - -// register implements Physical. -type register struct { - family *Family - idx Index - name string - info Info - Spec -} - -func newregister(f *Family, s Spec, idx Index, name string, flags ...Info) register { - r := register{ - family: f, - idx: idx, - name: name, - info: None, - Spec: s, - } - for _, flag := range flags { - r.info |= flag - } - return r -} - -func (r register) ID() ID { return newid(0, r.Kind(), r.idx) } -func (r register) PhysicalIndex() Index { return r.idx } -func (r register) Kind() Kind { return r.family.Kind } -func (r register) Asm() string { return r.name } -func (r register) Info() Info { return r.info } - -func (r register) as(s Spec) Register { - return r.family.Lookup(r.PhysicalIndex(), s) -} - -func (r register) spec() Spec { return r.Spec } -func (r register) register() {} - -// Spec defines the size of a register as well as the bit ranges it occupies in -// an underlying physical register. -type Spec uint16 - -// Spec values required for x86-64. -const ( - S0 Spec = 0x0 // zero value reserved for pseudo registers - S8L Spec = 0x1 - S8H Spec = 0x2 - S8 = S8L - S16 Spec = 0x3 - S32 Spec = 0x7 - S64 Spec = 0xf - S128 Spec = 0x1f - S256 Spec = 0x3f - S512 Spec = 0x7f -) - -// Mask returns a mask representing which bytes of an underlying register are -// used by this register. This is almost always the low bytes, except for the -// case of the high-byte registers. If bit n of the mask is set, this means -// bytes 2^(n-1) to 2^n-1 are used. -func (s Spec) Mask() uint16 { - return uint16(s) -} - -// Size returns the register width in bytes. -func (s Spec) Size() uint { - x := uint(s) - return (x >> 1) + (x & 1) -} - -// LookupPhysical returns the physical register with the given parameters, or nil if not found. -func LookupPhysical(k Kind, idx Index, s Spec) Physical { - f := FamilyOfKind(k) - if f == nil { - return nil - } - return f.Lookup(idx, s) -} - -// LookupID returns the physical register with the given id and spec, or nil if not found. -func LookupID(id ID, s Spec) Physical { - if id.IsVirtual() { - return nil - } - return LookupPhysical(id.Kind(), id.Index(), s) -} - -// Allocation records a register allocation. -type Allocation map[ID]ID - -// NewEmptyAllocation builds an empty register allocation. -func NewEmptyAllocation() Allocation { - return Allocation{} -} - -// Merge allocations from b into a. Errors if there is disagreement on a common -// register. -func (a Allocation) Merge(b Allocation) error { - for id, p := range b { - if alt, found := a[id]; found && alt != p { - return errors.New("disagreement on overlapping register") - } - a[id] = p - } - return nil -} - -// LookupDefault returns the register ID assigned by this allocation, returning -// id if none is found. -func (a Allocation) LookupDefault(id ID) ID { - if _, found := a[id]; found { - return a[id] - } - return id -} - -// LookupRegister the allocation for register r, or return nil if there is none. -func (a Allocation) LookupRegister(r Register) Physical { - // Return immediately if it is already a physical register. - if p := ToPhysical(r); p != nil { - return p - } - - // Lookup an allocation for this virtual ID. - id, found := a[r.ID()] - if !found { - return nil - } - - return LookupID(id, r.spec()) -} - -// LookupRegisterDefault returns the register assigned to r, or r itself if there is none. -func (a Allocation) LookupRegisterDefault(r Register) Register { - if r == nil { - return nil - } - if p := a.LookupRegister(r); p != nil { - return p - } - return r -} diff --git a/vendor/github.com/mmcloughlin/avo/reg/x86.go b/vendor/github.com/mmcloughlin/avo/reg/x86.go deleted file mode 100644 index ee7d1c79..00000000 --- a/vendor/github.com/mmcloughlin/avo/reg/x86.go +++ /dev/null @@ -1,383 +0,0 @@ -package reg - -// Register kinds. -const ( - KindPseudo Kind = iota - KindGP - KindVector - KindOpmask -) - -// Declare register families. -var ( - Pseudo = &Family{Kind: KindPseudo} - GeneralPurpose = &Family{Kind: KindGP} - Vector = &Family{Kind: KindVector} - Opmask = &Family{Kind: KindOpmask} - - Families = []*Family{ - Pseudo, - GeneralPurpose, - Vector, - Opmask, - } -) - -var familiesByKind = map[Kind]*Family{} - -func init() { - for _, f := range Families { - familiesByKind[f.Kind] = f - } -} - -// FamilyOfKind returns the Family of registers of the given kind, or nil if not found. -func FamilyOfKind(k Kind) *Family { - return familiesByKind[k] -} - -// Pseudo registers. -var ( - FramePointer = Pseudo.define(S0, 0, "FP") - ProgramCounter = Pseudo.define(S0, 0, "PC") - StaticBase = Pseudo.define(S0, 0, "SB") - StackPointer = Pseudo.define(S0, 0, "SP") -) - -// GP provides additional methods for general purpose registers. -type GP interface { - As8() Register - As8L() Register - As8H() Register - As16() Register - As32() Register - As64() Register -} - -// GPPhysical is a general-purpose physical register. -type GPPhysical interface { - Physical - GP -} - -type gpp struct { - Physical -} - -func newgpp(r Physical) GPPhysical { return gpp{Physical: r} } - -func (p gpp) As8() Register { return newgpp(p.as(S8).(Physical)) } -func (p gpp) As8L() Register { return newgpp(p.as(S8L).(Physical)) } -func (p gpp) As8H() Register { return newgpp(p.as(S8H).(Physical)) } -func (p gpp) As16() Register { return newgpp(p.as(S16).(Physical)) } -func (p gpp) As32() Register { return newgpp(p.as(S32).(Physical)) } -func (p gpp) As64() Register { return newgpp(p.as(S64).(Physical)) } - -// GPVirtual is a general-purpose virtual register. -type GPVirtual interface { - Virtual - GP -} - -type gpv struct { - Virtual -} - -func newgpv(v Virtual) GPVirtual { return gpv{Virtual: v} } - -func (v gpv) As8() Register { return newgpv(v.as(S8).(Virtual)) } -func (v gpv) As8L() Register { return newgpv(v.as(S8L).(Virtual)) } -func (v gpv) As8H() Register { return newgpv(v.as(S8H).(Virtual)) } -func (v gpv) As16() Register { return newgpv(v.as(S16).(Virtual)) } -func (v gpv) As32() Register { return newgpv(v.as(S32).(Virtual)) } -func (v gpv) As64() Register { return newgpv(v.as(S64).(Virtual)) } - -func gp(s Spec, id Index, name string, flags ...Info) GPPhysical { - r := newgpp(newregister(GeneralPurpose, s, id, name, flags...)) - GeneralPurpose.add(r) - return r -} - -// General purpose registers. -var ( - // Low byte. - AL = gp(S8L, 0, "AL") - CL = gp(S8L, 1, "CL") - DL = gp(S8L, 2, "DL") - BL = gp(S8L, 3, "BL") - - // High byte. - AH = gp(S8H, 0, "AH") - CH = gp(S8H, 1, "CH") - DH = gp(S8H, 2, "DH") - BH = gp(S8H, 3, "BH") - - // 8-bit. - SPB = gp(S8, 4, "SP", Restricted) - BPB = gp(S8, 5, "BP", BasePointer) - SIB = gp(S8, 6, "SI") - DIB = gp(S8, 7, "DI") - R8B = gp(S8, 8, "R8") - R9B = gp(S8, 9, "R9") - R10B = gp(S8, 10, "R10") - R11B = gp(S8, 11, "R11") - R12B = gp(S8, 12, "R12") - R13B = gp(S8, 13, "R13") - R14B = gp(S8, 14, "R14") - R15B = gp(S8, 15, "R15") - - // 16-bit. - AX = gp(S16, 0, "AX") - CX = gp(S16, 1, "CX") - DX = gp(S16, 2, "DX") - BX = gp(S16, 3, "BX") - SP = gp(S16, 4, "SP", Restricted) - BP = gp(S16, 5, "BP", BasePointer) - SI = gp(S16, 6, "SI") - DI = gp(S16, 7, "DI") - R8W = gp(S16, 8, "R8") - R9W = gp(S16, 9, "R9") - R10W = gp(S16, 10, "R10") - R11W = gp(S16, 11, "R11") - R12W = gp(S16, 12, "R12") - R13W = gp(S16, 13, "R13") - R14W = gp(S16, 14, "R14") - R15W = gp(S16, 15, "R15") - - // 32-bit. - EAX = gp(S32, 0, "AX") - ECX = gp(S32, 1, "CX") - EDX = gp(S32, 2, "DX") - EBX = gp(S32, 3, "BX") - ESP = gp(S32, 4, "SP", Restricted) - EBP = gp(S32, 5, "BP", BasePointer) - ESI = gp(S32, 6, "SI") - EDI = gp(S32, 7, "DI") - R8L = gp(S32, 8, "R8") - R9L = gp(S32, 9, "R9") - R10L = gp(S32, 10, "R10") - R11L = gp(S32, 11, "R11") - R12L = gp(S32, 12, "R12") - R13L = gp(S32, 13, "R13") - R14L = gp(S32, 14, "R14") - R15L = gp(S32, 15, "R15") - - // 64-bit. - RAX = gp(S64, 0, "AX") - RCX = gp(S64, 1, "CX") - RDX = gp(S64, 2, "DX") - RBX = gp(S64, 3, "BX") - RSP = gp(S64, 4, "SP", Restricted) - RBP = gp(S64, 5, "BP", BasePointer) - RSI = gp(S64, 6, "SI") - RDI = gp(S64, 7, "DI") - R8 = gp(S64, 8, "R8") - R9 = gp(S64, 9, "R9") - R10 = gp(S64, 10, "R10") - R11 = gp(S64, 11, "R11") - R12 = gp(S64, 12, "R12") - R13 = gp(S64, 13, "R13") - R14 = gp(S64, 14, "R14") - R15 = gp(S64, 15, "R15") -) - -// Vec provides methods for vector registers. -type Vec interface { - AsX() Register - AsY() Register - AsZ() Register -} - -// VecPhysical is a physical vector register. -type VecPhysical interface { - Physical - Vec -} - -type vecp struct { - Physical - Vec -} - -func newvecp(r Physical) VecPhysical { return vecp{Physical: r} } - -func (p vecp) AsX() Register { return newvecp(p.as(S128).(Physical)) } -func (p vecp) AsY() Register { return newvecp(p.as(S256).(Physical)) } -func (p vecp) AsZ() Register { return newvecp(p.as(S512).(Physical)) } - -// VecVirtual is a virtual vector register. -type VecVirtual interface { - Virtual - Vec -} - -type vecv struct { - Virtual - Vec -} - -func newvecv(v Virtual) VecVirtual { return vecv{Virtual: v} } - -func (v vecv) AsX() Register { return newvecv(v.as(S128).(Virtual)) } -func (v vecv) AsY() Register { return newvecv(v.as(S256).(Virtual)) } -func (v vecv) AsZ() Register { return newvecv(v.as(S512).(Virtual)) } - -func vec(s Spec, id Index, name string, flags ...Info) VecPhysical { - r := newvecp(newregister(Vector, s, id, name, flags...)) - Vector.add(r) - return r -} - -// Vector registers. -var ( - // 128-bit. - X0 = vec(S128, 0, "X0") - X1 = vec(S128, 1, "X1") - X2 = vec(S128, 2, "X2") - X3 = vec(S128, 3, "X3") - X4 = vec(S128, 4, "X4") - X5 = vec(S128, 5, "X5") - X6 = vec(S128, 6, "X6") - X7 = vec(S128, 7, "X7") - X8 = vec(S128, 8, "X8") - X9 = vec(S128, 9, "X9") - X10 = vec(S128, 10, "X10") - X11 = vec(S128, 11, "X11") - X12 = vec(S128, 12, "X12") - X13 = vec(S128, 13, "X13") - X14 = vec(S128, 14, "X14") - X15 = vec(S128, 15, "X15") - X16 = vec(S128, 16, "X16") - X17 = vec(S128, 17, "X17") - X18 = vec(S128, 18, "X18") - X19 = vec(S128, 19, "X19") - X20 = vec(S128, 20, "X20") - X21 = vec(S128, 21, "X21") - X22 = vec(S128, 22, "X22") - X23 = vec(S128, 23, "X23") - X24 = vec(S128, 24, "X24") - X25 = vec(S128, 25, "X25") - X26 = vec(S128, 26, "X26") - X27 = vec(S128, 27, "X27") - X28 = vec(S128, 28, "X28") - X29 = vec(S128, 29, "X29") - X30 = vec(S128, 30, "X30") - X31 = vec(S128, 31, "X31") - - // 256-bit. - Y0 = vec(S256, 0, "Y0") - Y1 = vec(S256, 1, "Y1") - Y2 = vec(S256, 2, "Y2") - Y3 = vec(S256, 3, "Y3") - Y4 = vec(S256, 4, "Y4") - Y5 = vec(S256, 5, "Y5") - Y6 = vec(S256, 6, "Y6") - Y7 = vec(S256, 7, "Y7") - Y8 = vec(S256, 8, "Y8") - Y9 = vec(S256, 9, "Y9") - Y10 = vec(S256, 10, "Y10") - Y11 = vec(S256, 11, "Y11") - Y12 = vec(S256, 12, "Y12") - Y13 = vec(S256, 13, "Y13") - Y14 = vec(S256, 14, "Y14") - Y15 = vec(S256, 15, "Y15") - Y16 = vec(S256, 16, "Y16") - Y17 = vec(S256, 17, "Y17") - Y18 = vec(S256, 18, "Y18") - Y19 = vec(S256, 19, "Y19") - Y20 = vec(S256, 20, "Y20") - Y21 = vec(S256, 21, "Y21") - Y22 = vec(S256, 22, "Y22") - Y23 = vec(S256, 23, "Y23") - Y24 = vec(S256, 24, "Y24") - Y25 = vec(S256, 25, "Y25") - Y26 = vec(S256, 26, "Y26") - Y27 = vec(S256, 27, "Y27") - Y28 = vec(S256, 28, "Y28") - Y29 = vec(S256, 29, "Y29") - Y30 = vec(S256, 30, "Y30") - Y31 = vec(S256, 31, "Y31") - - // 512-bit. - Z0 = vec(S512, 0, "Z0") - Z1 = vec(S512, 1, "Z1") - Z2 = vec(S512, 2, "Z2") - Z3 = vec(S512, 3, "Z3") - Z4 = vec(S512, 4, "Z4") - Z5 = vec(S512, 5, "Z5") - Z6 = vec(S512, 6, "Z6") - Z7 = vec(S512, 7, "Z7") - Z8 = vec(S512, 8, "Z8") - Z9 = vec(S512, 9, "Z9") - Z10 = vec(S512, 10, "Z10") - Z11 = vec(S512, 11, "Z11") - Z12 = vec(S512, 12, "Z12") - Z13 = vec(S512, 13, "Z13") - Z14 = vec(S512, 14, "Z14") - Z15 = vec(S512, 15, "Z15") - Z16 = vec(S512, 16, "Z16") - Z17 = vec(S512, 17, "Z17") - Z18 = vec(S512, 18, "Z18") - Z19 = vec(S512, 19, "Z19") - Z20 = vec(S512, 20, "Z20") - Z21 = vec(S512, 21, "Z21") - Z22 = vec(S512, 22, "Z22") - Z23 = vec(S512, 23, "Z23") - Z24 = vec(S512, 24, "Z24") - Z25 = vec(S512, 25, "Z25") - Z26 = vec(S512, 26, "Z26") - Z27 = vec(S512, 27, "Z27") - Z28 = vec(S512, 28, "Z28") - Z29 = vec(S512, 29, "Z29") - Z30 = vec(S512, 30, "Z30") - Z31 = vec(S512, 31, "Z31") -) - -// OpmaskPhysical is a opmask physical register. -type OpmaskPhysical interface { - Physical -} - -type opmaskp struct { - Physical -} - -func newopmaskp(r Physical) OpmaskPhysical { return opmaskp{Physical: r} } - -// OpmaskVirtual is a virtual opmask register. -type OpmaskVirtual interface { - Virtual -} - -type opmaskv struct { - Virtual -} - -func newopmaskv(v Virtual) OpmaskVirtual { return opmaskv{Virtual: v} } - -func opmask(s Spec, id Index, name string, flags ...Info) OpmaskPhysical { - r := newopmaskp(newregister(Opmask, s, id, name, flags...)) - Opmask.add(r) - return r -} - -// Opmask registers. -// -// Note that while K0 is a physical opmask register (it is a valid opmask source -// and destination operand), it cannot be used as an opmask predicate value -// because in that context K0 means "all true" or "no mask" regardless of the -// actual contents of the physical register. For that reason, K0 should never be -// assigned as a "general purpose" opmask register. However, it can be -// explicitly operated upon by name as non-predicate operand, for example to -// hold a constant or temporary value during calculations on other opmask -// registers. -var ( - K0 = opmask(S64, 0, "K0", Restricted) - K1 = opmask(S64, 1, "K1") - K2 = opmask(S64, 2, "K2") - K3 = opmask(S64, 3, "K3") - K4 = opmask(S64, 4, "K4") - K5 = opmask(S64, 5, "K5") - K6 = opmask(S64, 6, "K6") - K7 = opmask(S64, 7, "K7") -) diff --git a/vendor/github.com/mmcloughlin/avo/src/src.go b/vendor/github.com/mmcloughlin/avo/src/src.go deleted file mode 100644 index 3a47886e..00000000 --- a/vendor/github.com/mmcloughlin/avo/src/src.go +++ /dev/null @@ -1,62 +0,0 @@ -// Package src provides types for working with source files. -package src - -import ( - "os" - "path/filepath" - "runtime" - "strconv" -) - -// Position represents a position in a source file. -type Position struct { - Filename string - Line int // 1-up -} - -// FramePosition returns the Position of the given stack frame. -func FramePosition(f runtime.Frame) Position { - return Position{ - Filename: f.File, - Line: f.Line, - } -} - -// IsValid reports whether the position is valid: Line must be positive, but -// Filename may be empty. -func (p Position) IsValid() bool { - return p.Line > 0 -} - -// String represents Position as a string. -func (p Position) String() string { - if !p.IsValid() { - return "-" - } - var s string - if p.Filename != "" { - s += p.Filename + ":" - } - s += strconv.Itoa(p.Line) - return s -} - -// Rel returns Position relative to basepath. If the given filename cannot be -// expressed relative to basepath the position will be returned unchanged. -func (p Position) Rel(basepath string) Position { - q := p - if rel, err := filepath.Rel(basepath, q.Filename); err == nil { - q.Filename = rel - } - return q -} - -// Relwd returns Position relative to the current working directory. Returns p -// unchanged if the working directory cannot be determined, or the filename -// cannot be expressed relative to the working directory. -func (p Position) Relwd() Position { - if wd, err := os.Getwd(); err == nil { - return p.Rel(wd) - } - return p -} diff --git a/vendor/github.com/mmcloughlin/avo/x86/doc.go b/vendor/github.com/mmcloughlin/avo/x86/doc.go deleted file mode 100644 index 6e4c8ee8..00000000 --- a/vendor/github.com/mmcloughlin/avo/x86/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// Package x86 provides constructors for all x86-64 instructions. -package x86 diff --git a/vendor/github.com/mmcloughlin/avo/x86/gen.go b/vendor/github.com/mmcloughlin/avo/x86/gen.go deleted file mode 100644 index c2e667af..00000000 --- a/vendor/github.com/mmcloughlin/avo/x86/gen.go +++ /dev/null @@ -1,5 +0,0 @@ -package x86 - -//go:generate avogen -output zoptab.go optab -//go:generate avogen -output zctors.go ctors -//go:generate avogen -output zctors_test.go ctorstest diff --git a/vendor/github.com/mmcloughlin/avo/x86/optab.go b/vendor/github.com/mmcloughlin/avo/x86/optab.go deleted file mode 100644 index 677c569b..00000000 --- a/vendor/github.com/mmcloughlin/avo/x86/optab.go +++ /dev/null @@ -1,130 +0,0 @@ -package x86 - -import ( - "errors" - - "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/operand" -) - -// build constructs an instruction object from a list of acceptable forms, and -// given input operands and suffixes. -func build(forms []form, suffixes sffxs, ops []operand.Op) (*ir.Instruction, error) { - for i := range forms { - f := &forms[i] - if f.match(suffixes, ops) { - return f.build(suffixes, ops), nil - } - } - return nil, errors.New("bad operands") -} - -// form represents an instruction form. -type form struct { - Opcode opc - SuffixesClass sffxscls - Features feature - ISAs isas - Arity uint8 - Operands oprnds -} - -// feature is a flags enumeration type representing instruction properties. -type feature uint8 - -const ( - featureTerminal feature = 1 << iota - featureBranch - featureConditionalBranch - featureCancellingInputs -) - -// oprnds is a list of explicit and implicit operands of an instruction form. -// The size of the array is output by optab generator. -type oprnds [maxoperands]oprnd - -// oprnd represents an explicit or implicit operand to an instruction form. -type oprnd struct { - Type uint8 - Implicit bool - Action action -} - -// action an instruction form applies to an operand. -type action uint8 - -const ( - actionN action = iota - actionR - actionW - actionRW action = actionR | actionW -) - -// Read reports if the action includes read. -func (a action) Read() bool { return (a & actionR) != 0 } - -// Read reports if the action includes write. -func (a action) Write() bool { return (a & actionW) != 0 } - -// match reports whether this form matches the given suffixes and operand -// list. -func (f *form) match(suffixes sffxs, ops []operand.Op) bool { - // Match suffix. - accept := f.SuffixesClass.SuffixesSet() - if !accept[suffixes] { - return false - } - - // Match operands. - if len(ops) != int(f.Arity) { - return false - } - - for i, op := range ops { - t := oprndtype(f.Operands[i].Type) - if !t.Match(op) { - return false - } - } - - return true -} - -// build the full instruction object for this form and the given suffixes and -// operands. Assumes the form already matches the inputs. -func (f *form) build(suffixes sffxs, ops []operand.Op) *ir.Instruction { - // Base instruction properties. - i := &ir.Instruction{ - Opcode: f.Opcode.String(), - Suffixes: suffixes.Strings(), - Operands: ops, - IsTerminal: (f.Features & featureTerminal) != 0, - IsBranch: (f.Features & featureBranch) != 0, - IsConditional: (f.Features & featureConditionalBranch) != 0, - CancellingInputs: (f.Features & featureCancellingInputs) != 0, - ISA: f.ISAs.List(), - } - - // Input/output operands. - for _, spec := range f.Operands { - if spec.Type == 0 { - break - } - - var op operand.Op - if spec.Implicit { - op = implreg(spec.Type).Register() - } else { - op, ops = ops[0], ops[1:] - } - - if spec.Action.Read() { - i.Inputs = append(i.Inputs, op) - } - if spec.Action.Write() { - i.Outputs = append(i.Outputs, op) - } - } - - return i -} diff --git a/vendor/github.com/mmcloughlin/avo/x86/zctors.go b/vendor/github.com/mmcloughlin/avo/x86/zctors.go deleted file mode 100644 index 3d2debca..00000000 --- a/vendor/github.com/mmcloughlin/avo/x86/zctors.go +++ /dev/null @@ -1,38615 +0,0 @@ -// Code generated by command: avogen -output zctors.go ctors. DO NOT EDIT. - -package x86 - -import ( - intrep "github.com/mmcloughlin/avo/ir" - "github.com/mmcloughlin/avo/operand" -) - -// ADCB: Add with Carry. -// -// Forms: -// -// ADCB imm8 al -// ADCB imm8 m8 -// ADCB imm8 r8 -// ADCB m8 r8 -// ADCB r8 m8 -// ADCB r8 r8 -func ADCB(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcADCB.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// ADCL: Add with Carry. -// -// Forms: -// -// ADCL imm32 eax -// ADCL imm32 m32 -// ADCL imm32 r32 -// ADCL imm8 m32 -// ADCL imm8 r32 -// ADCL m32 r32 -// ADCL r32 m32 -// ADCL r32 r32 -func ADCL(imr, emr operand.Op) (*intrep.Instruction, error) { - return build(opcADCL.Forms(), sffxs{}, []operand.Op{imr, emr}) -} - -// ADCQ: Add with Carry. -// -// Forms: -// -// ADCQ imm32 m64 -// ADCQ imm32 r64 -// ADCQ imm32 rax -// ADCQ imm8 m64 -// ADCQ imm8 r64 -// ADCQ m64 r64 -// ADCQ r64 m64 -// ADCQ r64 r64 -func ADCQ(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcADCQ.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// ADCW: Add with Carry. -// -// Forms: -// -// ADCW imm16 ax -// ADCW imm16 m16 -// ADCW imm16 r16 -// ADCW imm8 m16 -// ADCW imm8 r16 -// ADCW m16 r16 -// ADCW r16 m16 -// ADCW r16 r16 -func ADCW(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcADCW.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// ADCXL: Unsigned Integer Addition of Two Operands with Carry Flag. -// -// Forms: -// -// ADCXL m32 r32 -// ADCXL r32 r32 -func ADCXL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcADCXL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// ADCXQ: Unsigned Integer Addition of Two Operands with Carry Flag. -// -// Forms: -// -// ADCXQ m64 r64 -// ADCXQ r64 r64 -func ADCXQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcADCXQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// ADDB: Add. -// -// Forms: -// -// ADDB imm8 al -// ADDB imm8 m8 -// ADDB imm8 r8 -// ADDB m8 r8 -// ADDB r8 m8 -// ADDB r8 r8 -func ADDB(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcADDB.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// ADDL: Add. -// -// Forms: -// -// ADDL imm32 eax -// ADDL imm32 m32 -// ADDL imm32 r32 -// ADDL imm8 m32 -// ADDL imm8 r32 -// ADDL m32 r32 -// ADDL r32 m32 -// ADDL r32 r32 -func ADDL(imr, emr operand.Op) (*intrep.Instruction, error) { - return build(opcADDL.Forms(), sffxs{}, []operand.Op{imr, emr}) -} - -// ADDPD: Add Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// ADDPD m128 xmm -// ADDPD xmm xmm -func ADDPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcADDPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ADDPS: Add Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// ADDPS m128 xmm -// ADDPS xmm xmm -func ADDPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcADDPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ADDQ: Add. -// -// Forms: -// -// ADDQ imm32 m64 -// ADDQ imm32 r64 -// ADDQ imm32 rax -// ADDQ imm8 m64 -// ADDQ imm8 r64 -// ADDQ m64 r64 -// ADDQ r64 m64 -// ADDQ r64 r64 -func ADDQ(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcADDQ.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// ADDSD: Add Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// ADDSD m64 xmm -// ADDSD xmm xmm -func ADDSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcADDSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ADDSS: Add Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// ADDSS m32 xmm -// ADDSS xmm xmm -func ADDSS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcADDSS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ADDSUBPD: Packed Double-FP Add/Subtract. -// -// Forms: -// -// ADDSUBPD m128 xmm -// ADDSUBPD xmm xmm -func ADDSUBPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcADDSUBPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ADDSUBPS: Packed Single-FP Add/Subtract. -// -// Forms: -// -// ADDSUBPS m128 xmm -// ADDSUBPS xmm xmm -func ADDSUBPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcADDSUBPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ADDW: Add. -// -// Forms: -// -// ADDW imm16 ax -// ADDW imm16 m16 -// ADDW imm16 r16 -// ADDW imm8 m16 -// ADDW imm8 r16 -// ADDW m16 r16 -// ADDW r16 m16 -// ADDW r16 r16 -func ADDW(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcADDW.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// ADOXL: Unsigned Integer Addition of Two Operands with Overflow Flag. -// -// Forms: -// -// ADOXL m32 r32 -// ADOXL r32 r32 -func ADOXL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcADOXL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// ADOXQ: Unsigned Integer Addition of Two Operands with Overflow Flag. -// -// Forms: -// -// ADOXQ m64 r64 -// ADOXQ r64 r64 -func ADOXQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcADOXQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// AESDEC: Perform One Round of an AES Decryption Flow. -// -// Forms: -// -// AESDEC m128 xmm -// AESDEC xmm xmm -func AESDEC(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcAESDEC.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// AESDECLAST: Perform Last Round of an AES Decryption Flow. -// -// Forms: -// -// AESDECLAST m128 xmm -// AESDECLAST xmm xmm -func AESDECLAST(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcAESDECLAST.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// AESENC: Perform One Round of an AES Encryption Flow. -// -// Forms: -// -// AESENC m128 xmm -// AESENC xmm xmm -func AESENC(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcAESENC.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// AESENCLAST: Perform Last Round of an AES Encryption Flow. -// -// Forms: -// -// AESENCLAST m128 xmm -// AESENCLAST xmm xmm -func AESENCLAST(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcAESENCLAST.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// AESIMC: Perform the AES InvMixColumn Transformation. -// -// Forms: -// -// AESIMC m128 xmm -// AESIMC xmm xmm -func AESIMC(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcAESIMC.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// AESKEYGENASSIST: AES Round Key Generation Assist. -// -// Forms: -// -// AESKEYGENASSIST imm8 m128 xmm -// AESKEYGENASSIST imm8 xmm xmm -func AESKEYGENASSIST(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcAESKEYGENASSIST.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// ANDB: Logical AND. -// -// Forms: -// -// ANDB imm8 al -// ANDB imm8 m8 -// ANDB imm8 r8 -// ANDB m8 r8 -// ANDB r8 m8 -// ANDB r8 r8 -func ANDB(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcANDB.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// ANDL: Logical AND. -// -// Forms: -// -// ANDL imm32 eax -// ANDL imm32 m32 -// ANDL imm32 r32 -// ANDL imm8 m32 -// ANDL imm8 r32 -// ANDL m32 r32 -// ANDL r32 m32 -// ANDL r32 r32 -func ANDL(imr, emr operand.Op) (*intrep.Instruction, error) { - return build(opcANDL.Forms(), sffxs{}, []operand.Op{imr, emr}) -} - -// ANDNL: Logical AND NOT. -// -// Forms: -// -// ANDNL m32 r32 r32 -// ANDNL r32 r32 r32 -func ANDNL(mr, r, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcANDNL.Forms(), sffxs{}, []operand.Op{mr, r, r1}) -} - -// ANDNPD: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// ANDNPD m128 xmm -// ANDNPD xmm xmm -func ANDNPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcANDNPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ANDNPS: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// ANDNPS m128 xmm -// ANDNPS xmm xmm -func ANDNPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcANDNPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ANDNQ: Logical AND NOT. -// -// Forms: -// -// ANDNQ m64 r64 r64 -// ANDNQ r64 r64 r64 -func ANDNQ(mr, r, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcANDNQ.Forms(), sffxs{}, []operand.Op{mr, r, r1}) -} - -// ANDPD: Bitwise Logical AND of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// ANDPD m128 xmm -// ANDPD xmm xmm -func ANDPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcANDPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ANDPS: Bitwise Logical AND of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// ANDPS m128 xmm -// ANDPS xmm xmm -func ANDPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcANDPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ANDQ: Logical AND. -// -// Forms: -// -// ANDQ imm32 m64 -// ANDQ imm32 r64 -// ANDQ imm32 rax -// ANDQ imm8 m64 -// ANDQ imm8 r64 -// ANDQ m64 r64 -// ANDQ r64 m64 -// ANDQ r64 r64 -func ANDQ(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcANDQ.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// ANDW: Logical AND. -// -// Forms: -// -// ANDW imm16 ax -// ANDW imm16 m16 -// ANDW imm16 r16 -// ANDW imm8 m16 -// ANDW imm8 r16 -// ANDW m16 r16 -// ANDW r16 m16 -// ANDW r16 r16 -func ANDW(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcANDW.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// BEXTRL: Bit Field Extract. -// -// Forms: -// -// BEXTRL r32 m32 r32 -// BEXTRL r32 r32 r32 -func BEXTRL(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcBEXTRL.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// BEXTRQ: Bit Field Extract. -// -// Forms: -// -// BEXTRQ r64 m64 r64 -// BEXTRQ r64 r64 r64 -func BEXTRQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcBEXTRQ.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// BLENDPD: Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// BLENDPD imm8 m128 xmm -// BLENDPD imm8 xmm xmm -func BLENDPD(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcBLENDPD.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// BLENDPS: Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// BLENDPS imm8 m128 xmm -// BLENDPS imm8 xmm xmm -func BLENDPS(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcBLENDPS.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// BLENDVPD: Variable Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// BLENDVPD xmm0 m128 xmm -// BLENDVPD xmm0 xmm xmm -func BLENDVPD(x, mx, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcBLENDVPD.Forms(), sffxs{}, []operand.Op{x, mx, x1}) -} - -// BLENDVPS: Variable Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// BLENDVPS xmm0 m128 xmm -// BLENDVPS xmm0 xmm xmm -func BLENDVPS(x, mx, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcBLENDVPS.Forms(), sffxs{}, []operand.Op{x, mx, x1}) -} - -// BLSIL: Isolate Lowest Set Bit. -// -// Forms: -// -// BLSIL m32 r32 -// BLSIL r32 r32 -func BLSIL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBLSIL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BLSIQ: Isolate Lowest Set Bit. -// -// Forms: -// -// BLSIQ m64 r64 -// BLSIQ r64 r64 -func BLSIQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBLSIQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BLSMSKL: Mask From Lowest Set Bit. -// -// Forms: -// -// BLSMSKL m32 r32 -// BLSMSKL r32 r32 -func BLSMSKL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBLSMSKL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BLSMSKQ: Mask From Lowest Set Bit. -// -// Forms: -// -// BLSMSKQ m64 r64 -// BLSMSKQ r64 r64 -func BLSMSKQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBLSMSKQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BLSRL: Reset Lowest Set Bit. -// -// Forms: -// -// BLSRL m32 r32 -// BLSRL r32 r32 -func BLSRL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBLSRL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BLSRQ: Reset Lowest Set Bit. -// -// Forms: -// -// BLSRQ m64 r64 -// BLSRQ r64 r64 -func BLSRQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBLSRQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BSFL: Bit Scan Forward. -// -// Forms: -// -// BSFL m32 r32 -// BSFL r32 r32 -func BSFL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBSFL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BSFQ: Bit Scan Forward. -// -// Forms: -// -// BSFQ m64 r64 -// BSFQ r64 r64 -func BSFQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBSFQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BSFW: Bit Scan Forward. -// -// Forms: -// -// BSFW m16 r16 -// BSFW r16 r16 -func BSFW(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBSFW.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BSRL: Bit Scan Reverse. -// -// Forms: -// -// BSRL m32 r32 -// BSRL r32 r32 -func BSRL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBSRL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BSRQ: Bit Scan Reverse. -// -// Forms: -// -// BSRQ m64 r64 -// BSRQ r64 r64 -func BSRQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBSRQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BSRW: Bit Scan Reverse. -// -// Forms: -// -// BSRW m16 r16 -// BSRW r16 r16 -func BSRW(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcBSRW.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// BSWAPL: Byte Swap. -// -// Forms: -// -// BSWAPL r32 -func BSWAPL(r operand.Op) (*intrep.Instruction, error) { - return build(opcBSWAPL.Forms(), sffxs{}, []operand.Op{r}) -} - -// BSWAPQ: Byte Swap. -// -// Forms: -// -// BSWAPQ r64 -func BSWAPQ(r operand.Op) (*intrep.Instruction, error) { - return build(opcBSWAPQ.Forms(), sffxs{}, []operand.Op{r}) -} - -// BTCL: Bit Test and Complement. -// -// Forms: -// -// BTCL imm8 m32 -// BTCL imm8 r32 -// BTCL r32 m32 -// BTCL r32 r32 -func BTCL(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTCL.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTCQ: Bit Test and Complement. -// -// Forms: -// -// BTCQ imm8 m64 -// BTCQ imm8 r64 -// BTCQ r64 m64 -// BTCQ r64 r64 -func BTCQ(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTCQ.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTCW: Bit Test and Complement. -// -// Forms: -// -// BTCW imm8 m16 -// BTCW imm8 r16 -// BTCW r16 m16 -// BTCW r16 r16 -func BTCW(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTCW.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTL: Bit Test. -// -// Forms: -// -// BTL imm8 m32 -// BTL imm8 r32 -// BTL r32 m32 -// BTL r32 r32 -func BTL(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTL.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTQ: Bit Test. -// -// Forms: -// -// BTQ imm8 m64 -// BTQ imm8 r64 -// BTQ r64 m64 -// BTQ r64 r64 -func BTQ(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTQ.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTRL: Bit Test and Reset. -// -// Forms: -// -// BTRL imm8 m32 -// BTRL imm8 r32 -// BTRL r32 m32 -// BTRL r32 r32 -func BTRL(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTRL.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTRQ: Bit Test and Reset. -// -// Forms: -// -// BTRQ imm8 m64 -// BTRQ imm8 r64 -// BTRQ r64 m64 -// BTRQ r64 r64 -func BTRQ(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTRQ.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTRW: Bit Test and Reset. -// -// Forms: -// -// BTRW imm8 m16 -// BTRW imm8 r16 -// BTRW r16 m16 -// BTRW r16 r16 -func BTRW(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTRW.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTSL: Bit Test and Set. -// -// Forms: -// -// BTSL imm8 m32 -// BTSL imm8 r32 -// BTSL r32 m32 -// BTSL r32 r32 -func BTSL(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTSL.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTSQ: Bit Test and Set. -// -// Forms: -// -// BTSQ imm8 m64 -// BTSQ imm8 r64 -// BTSQ r64 m64 -// BTSQ r64 r64 -func BTSQ(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTSQ.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTSW: Bit Test and Set. -// -// Forms: -// -// BTSW imm8 m16 -// BTSW imm8 r16 -// BTSW r16 m16 -// BTSW r16 r16 -func BTSW(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTSW.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BTW: Bit Test. -// -// Forms: -// -// BTW imm8 m16 -// BTW imm8 r16 -// BTW r16 m16 -// BTW r16 r16 -func BTW(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcBTW.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// BZHIL: Zero High Bits Starting with Specified Bit Position. -// -// Forms: -// -// BZHIL r32 m32 r32 -// BZHIL r32 r32 r32 -func BZHIL(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcBZHIL.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// BZHIQ: Zero High Bits Starting with Specified Bit Position. -// -// Forms: -// -// BZHIQ r64 m64 r64 -// BZHIQ r64 r64 r64 -func BZHIQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcBZHIQ.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// CALL: Call Procedure. -// -// Forms: -// -// CALL rel32 -func CALL(r operand.Op) (*intrep.Instruction, error) { - return build(opcCALL.Forms(), sffxs{}, []operand.Op{r}) -} - -// CBW: Convert Byte to Word. -// -// Forms: -// -// CBW -func CBW() (*intrep.Instruction, error) { - return build(opcCBW.Forms(), sffxs{}, []operand.Op{}) -} - -// CDQ: Convert Doubleword to Quadword. -// -// Forms: -// -// CDQ -func CDQ() (*intrep.Instruction, error) { - return build(opcCDQ.Forms(), sffxs{}, []operand.Op{}) -} - -// CDQE: Convert Doubleword to Quadword. -// -// Forms: -// -// CDQE -func CDQE() (*intrep.Instruction, error) { - return build(opcCDQE.Forms(), sffxs{}, []operand.Op{}) -} - -// CLC: Clear Carry Flag. -// -// Forms: -// -// CLC -func CLC() (*intrep.Instruction, error) { - return build(opcCLC.Forms(), sffxs{}, []operand.Op{}) -} - -// CLD: Clear Direction Flag. -// -// Forms: -// -// CLD -func CLD() (*intrep.Instruction, error) { - return build(opcCLD.Forms(), sffxs{}, []operand.Op{}) -} - -// CLFLUSH: Flush Cache Line. -// -// Forms: -// -// CLFLUSH m8 -func CLFLUSH(m operand.Op) (*intrep.Instruction, error) { - return build(opcCLFLUSH.Forms(), sffxs{}, []operand.Op{m}) -} - -// CLFLUSHOPT: Flush Cache Line Optimized. -// -// Forms: -// -// CLFLUSHOPT m8 -func CLFLUSHOPT(m operand.Op) (*intrep.Instruction, error) { - return build(opcCLFLUSHOPT.Forms(), sffxs{}, []operand.Op{m}) -} - -// CMC: Complement Carry Flag. -// -// Forms: -// -// CMC -func CMC() (*intrep.Instruction, error) { - return build(opcCMC.Forms(), sffxs{}, []operand.Op{}) -} - -// CMOVLCC: Move if above or equal (CF == 0). -// -// Forms: -// -// CMOVLCC m32 r32 -// CMOVLCC r32 r32 -func CMOVLCC(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLCC.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLCS: Move if below (CF == 1). -// -// Forms: -// -// CMOVLCS m32 r32 -// CMOVLCS r32 r32 -func CMOVLCS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLCS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLEQ: Move if equal (ZF == 1). -// -// Forms: -// -// CMOVLEQ m32 r32 -// CMOVLEQ r32 r32 -func CMOVLEQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLEQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLGE: Move if greater or equal (SF == OF). -// -// Forms: -// -// CMOVLGE m32 r32 -// CMOVLGE r32 r32 -func CMOVLGE(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLGE.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLGT: Move if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// CMOVLGT m32 r32 -// CMOVLGT r32 r32 -func CMOVLGT(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLGT.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLHI: Move if above (CF == 0 and ZF == 0). -// -// Forms: -// -// CMOVLHI m32 r32 -// CMOVLHI r32 r32 -func CMOVLHI(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLHI.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLLE: Move if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// CMOVLLE m32 r32 -// CMOVLLE r32 r32 -func CMOVLLE(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLLE.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLLS: Move if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// CMOVLLS m32 r32 -// CMOVLLS r32 r32 -func CMOVLLS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLLS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLLT: Move if less (SF != OF). -// -// Forms: -// -// CMOVLLT m32 r32 -// CMOVLLT r32 r32 -func CMOVLLT(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLLT.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLMI: Move if sign (SF == 1). -// -// Forms: -// -// CMOVLMI m32 r32 -// CMOVLMI r32 r32 -func CMOVLMI(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLMI.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLNE: Move if not equal (ZF == 0). -// -// Forms: -// -// CMOVLNE m32 r32 -// CMOVLNE r32 r32 -func CMOVLNE(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLNE.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLOC: Move if not overflow (OF == 0). -// -// Forms: -// -// CMOVLOC m32 r32 -// CMOVLOC r32 r32 -func CMOVLOC(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLOC.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLOS: Move if overflow (OF == 1). -// -// Forms: -// -// CMOVLOS m32 r32 -// CMOVLOS r32 r32 -func CMOVLOS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLOS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLPC: Move if not parity (PF == 0). -// -// Forms: -// -// CMOVLPC m32 r32 -// CMOVLPC r32 r32 -func CMOVLPC(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLPC.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLPL: Move if not sign (SF == 0). -// -// Forms: -// -// CMOVLPL m32 r32 -// CMOVLPL r32 r32 -func CMOVLPL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLPL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVLPS: Move if parity (PF == 1). -// -// Forms: -// -// CMOVLPS m32 r32 -// CMOVLPS r32 r32 -func CMOVLPS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVLPS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQCC: Move if above or equal (CF == 0). -// -// Forms: -// -// CMOVQCC m64 r64 -// CMOVQCC r64 r64 -func CMOVQCC(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQCC.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQCS: Move if below (CF == 1). -// -// Forms: -// -// CMOVQCS m64 r64 -// CMOVQCS r64 r64 -func CMOVQCS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQCS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQEQ: Move if equal (ZF == 1). -// -// Forms: -// -// CMOVQEQ m64 r64 -// CMOVQEQ r64 r64 -func CMOVQEQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQEQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQGE: Move if greater or equal (SF == OF). -// -// Forms: -// -// CMOVQGE m64 r64 -// CMOVQGE r64 r64 -func CMOVQGE(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQGE.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQGT: Move if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// CMOVQGT m64 r64 -// CMOVQGT r64 r64 -func CMOVQGT(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQGT.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQHI: Move if above (CF == 0 and ZF == 0). -// -// Forms: -// -// CMOVQHI m64 r64 -// CMOVQHI r64 r64 -func CMOVQHI(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQHI.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQLE: Move if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// CMOVQLE m64 r64 -// CMOVQLE r64 r64 -func CMOVQLE(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQLE.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQLS: Move if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// CMOVQLS m64 r64 -// CMOVQLS r64 r64 -func CMOVQLS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQLS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQLT: Move if less (SF != OF). -// -// Forms: -// -// CMOVQLT m64 r64 -// CMOVQLT r64 r64 -func CMOVQLT(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQLT.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQMI: Move if sign (SF == 1). -// -// Forms: -// -// CMOVQMI m64 r64 -// CMOVQMI r64 r64 -func CMOVQMI(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQMI.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQNE: Move if not equal (ZF == 0). -// -// Forms: -// -// CMOVQNE m64 r64 -// CMOVQNE r64 r64 -func CMOVQNE(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQNE.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQOC: Move if not overflow (OF == 0). -// -// Forms: -// -// CMOVQOC m64 r64 -// CMOVQOC r64 r64 -func CMOVQOC(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQOC.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQOS: Move if overflow (OF == 1). -// -// Forms: -// -// CMOVQOS m64 r64 -// CMOVQOS r64 r64 -func CMOVQOS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQOS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQPC: Move if not parity (PF == 0). -// -// Forms: -// -// CMOVQPC m64 r64 -// CMOVQPC r64 r64 -func CMOVQPC(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQPC.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQPL: Move if not sign (SF == 0). -// -// Forms: -// -// CMOVQPL m64 r64 -// CMOVQPL r64 r64 -func CMOVQPL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQPL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVQPS: Move if parity (PF == 1). -// -// Forms: -// -// CMOVQPS m64 r64 -// CMOVQPS r64 r64 -func CMOVQPS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVQPS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWCC: Move if above or equal (CF == 0). -// -// Forms: -// -// CMOVWCC m16 r16 -// CMOVWCC r16 r16 -func CMOVWCC(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWCC.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWCS: Move if below (CF == 1). -// -// Forms: -// -// CMOVWCS m16 r16 -// CMOVWCS r16 r16 -func CMOVWCS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWCS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWEQ: Move if equal (ZF == 1). -// -// Forms: -// -// CMOVWEQ m16 r16 -// CMOVWEQ r16 r16 -func CMOVWEQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWEQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWGE: Move if greater or equal (SF == OF). -// -// Forms: -// -// CMOVWGE m16 r16 -// CMOVWGE r16 r16 -func CMOVWGE(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWGE.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWGT: Move if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// CMOVWGT m16 r16 -// CMOVWGT r16 r16 -func CMOVWGT(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWGT.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWHI: Move if above (CF == 0 and ZF == 0). -// -// Forms: -// -// CMOVWHI m16 r16 -// CMOVWHI r16 r16 -func CMOVWHI(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWHI.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWLE: Move if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// CMOVWLE m16 r16 -// CMOVWLE r16 r16 -func CMOVWLE(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWLE.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWLS: Move if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// CMOVWLS m16 r16 -// CMOVWLS r16 r16 -func CMOVWLS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWLS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWLT: Move if less (SF != OF). -// -// Forms: -// -// CMOVWLT m16 r16 -// CMOVWLT r16 r16 -func CMOVWLT(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWLT.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWMI: Move if sign (SF == 1). -// -// Forms: -// -// CMOVWMI m16 r16 -// CMOVWMI r16 r16 -func CMOVWMI(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWMI.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWNE: Move if not equal (ZF == 0). -// -// Forms: -// -// CMOVWNE m16 r16 -// CMOVWNE r16 r16 -func CMOVWNE(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWNE.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWOC: Move if not overflow (OF == 0). -// -// Forms: -// -// CMOVWOC m16 r16 -// CMOVWOC r16 r16 -func CMOVWOC(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWOC.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWOS: Move if overflow (OF == 1). -// -// Forms: -// -// CMOVWOS m16 r16 -// CMOVWOS r16 r16 -func CMOVWOS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWOS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWPC: Move if not parity (PF == 0). -// -// Forms: -// -// CMOVWPC m16 r16 -// CMOVWPC r16 r16 -func CMOVWPC(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWPC.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWPL: Move if not sign (SF == 0). -// -// Forms: -// -// CMOVWPL m16 r16 -// CMOVWPL r16 r16 -func CMOVWPL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWPL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMOVWPS: Move if parity (PF == 1). -// -// Forms: -// -// CMOVWPS m16 r16 -// CMOVWPS r16 r16 -func CMOVWPS(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCMOVWPS.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CMPB: Compare Two Operands. -// -// Forms: -// -// CMPB al imm8 -// CMPB m8 imm8 -// CMPB m8 r8 -// CMPB r8 imm8 -// CMPB r8 m8 -// CMPB r8 r8 -func CMPB(amr, imr operand.Op) (*intrep.Instruction, error) { - return build(opcCMPB.Forms(), sffxs{}, []operand.Op{amr, imr}) -} - -// CMPL: Compare Two Operands. -// -// Forms: -// -// CMPL eax imm32 -// CMPL m32 imm32 -// CMPL m32 imm8 -// CMPL m32 r32 -// CMPL r32 imm32 -// CMPL r32 imm8 -// CMPL r32 m32 -// CMPL r32 r32 -func CMPL(emr, imr operand.Op) (*intrep.Instruction, error) { - return build(opcCMPL.Forms(), sffxs{}, []operand.Op{emr, imr}) -} - -// CMPPD: Compare Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// CMPPD m128 xmm imm8 -// CMPPD xmm xmm imm8 -func CMPPD(mx, x, i operand.Op) (*intrep.Instruction, error) { - return build(opcCMPPD.Forms(), sffxs{}, []operand.Op{mx, x, i}) -} - -// CMPPS: Compare Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// CMPPS m128 xmm imm8 -// CMPPS xmm xmm imm8 -func CMPPS(mx, x, i operand.Op) (*intrep.Instruction, error) { - return build(opcCMPPS.Forms(), sffxs{}, []operand.Op{mx, x, i}) -} - -// CMPQ: Compare Two Operands. -// -// Forms: -// -// CMPQ m64 imm32 -// CMPQ m64 imm8 -// CMPQ m64 r64 -// CMPQ r64 imm32 -// CMPQ r64 imm8 -// CMPQ r64 m64 -// CMPQ r64 r64 -// CMPQ rax imm32 -func CMPQ(mr, imr operand.Op) (*intrep.Instruction, error) { - return build(opcCMPQ.Forms(), sffxs{}, []operand.Op{mr, imr}) -} - -// CMPSD: Compare Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// CMPSD m64 xmm imm8 -// CMPSD xmm xmm imm8 -func CMPSD(mx, x, i operand.Op) (*intrep.Instruction, error) { - return build(opcCMPSD.Forms(), sffxs{}, []operand.Op{mx, x, i}) -} - -// CMPSS: Compare Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// CMPSS m32 xmm imm8 -// CMPSS xmm xmm imm8 -func CMPSS(mx, x, i operand.Op) (*intrep.Instruction, error) { - return build(opcCMPSS.Forms(), sffxs{}, []operand.Op{mx, x, i}) -} - -// CMPW: Compare Two Operands. -// -// Forms: -// -// CMPW ax imm16 -// CMPW m16 imm16 -// CMPW m16 imm8 -// CMPW m16 r16 -// CMPW r16 imm16 -// CMPW r16 imm8 -// CMPW r16 m16 -// CMPW r16 r16 -func CMPW(amr, imr operand.Op) (*intrep.Instruction, error) { - return build(opcCMPW.Forms(), sffxs{}, []operand.Op{amr, imr}) -} - -// CMPXCHG16B: Compare and Exchange 16 Bytes. -// -// Forms: -// -// CMPXCHG16B m128 -func CMPXCHG16B(m operand.Op) (*intrep.Instruction, error) { - return build(opcCMPXCHG16B.Forms(), sffxs{}, []operand.Op{m}) -} - -// CMPXCHG8B: Compare and Exchange 8 Bytes. -// -// Forms: -// -// CMPXCHG8B m64 -func CMPXCHG8B(m operand.Op) (*intrep.Instruction, error) { - return build(opcCMPXCHG8B.Forms(), sffxs{}, []operand.Op{m}) -} - -// CMPXCHGB: Compare and Exchange. -// -// Forms: -// -// CMPXCHGB r8 m8 -// CMPXCHGB r8 r8 -func CMPXCHGB(r, mr operand.Op) (*intrep.Instruction, error) { - return build(opcCMPXCHGB.Forms(), sffxs{}, []operand.Op{r, mr}) -} - -// CMPXCHGL: Compare and Exchange. -// -// Forms: -// -// CMPXCHGL r32 m32 -// CMPXCHGL r32 r32 -func CMPXCHGL(r, mr operand.Op) (*intrep.Instruction, error) { - return build(opcCMPXCHGL.Forms(), sffxs{}, []operand.Op{r, mr}) -} - -// CMPXCHGQ: Compare and Exchange. -// -// Forms: -// -// CMPXCHGQ r64 m64 -// CMPXCHGQ r64 r64 -func CMPXCHGQ(r, mr operand.Op) (*intrep.Instruction, error) { - return build(opcCMPXCHGQ.Forms(), sffxs{}, []operand.Op{r, mr}) -} - -// CMPXCHGW: Compare and Exchange. -// -// Forms: -// -// CMPXCHGW r16 m16 -// CMPXCHGW r16 r16 -func CMPXCHGW(r, mr operand.Op) (*intrep.Instruction, error) { - return build(opcCMPXCHGW.Forms(), sffxs{}, []operand.Op{r, mr}) -} - -// COMISD: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// COMISD m64 xmm -// COMISD xmm xmm -func COMISD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCOMISD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// COMISS: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// COMISS m32 xmm -// COMISS xmm xmm -func COMISS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCOMISS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CPUID: CPU Identification. -// -// Forms: -// -// CPUID -func CPUID() (*intrep.Instruction, error) { - return build(opcCPUID.Forms(), sffxs{}, []operand.Op{}) -} - -// CQO: Convert Quadword to Octaword. -// -// Forms: -// -// CQO -func CQO() (*intrep.Instruction, error) { - return build(opcCQO.Forms(), sffxs{}, []operand.Op{}) -} - -// CRC32B: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32B m8 r32 -// CRC32B m8 r64 -// CRC32B r8 r32 -// CRC32B r8 r64 -func CRC32B(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCRC32B.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CRC32L: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32L m32 r32 -// CRC32L r32 r32 -func CRC32L(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCRC32L.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CRC32Q: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32Q m64 r64 -// CRC32Q r64 r64 -func CRC32Q(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCRC32Q.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CRC32W: Accumulate CRC32 Value. -// -// Forms: -// -// CRC32W m16 r32 -// CRC32W r16 r32 -func CRC32W(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcCRC32W.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// CVTPD2PL: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTPD2PL m128 xmm -// CVTPD2PL xmm xmm -func CVTPD2PL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTPD2PL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTPD2PS: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// CVTPD2PS m128 xmm -// CVTPD2PS xmm xmm -func CVTPD2PS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTPD2PS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTPL2PD: Convert Packed Dword Integers to Packed Double-Precision FP Values. -// -// Forms: -// -// CVTPL2PD m64 xmm -// CVTPL2PD xmm xmm -func CVTPL2PD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTPL2PD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTPL2PS: Convert Packed Dword Integers to Packed Single-Precision FP Values. -// -// Forms: -// -// CVTPL2PS m128 xmm -// CVTPL2PS xmm xmm -func CVTPL2PS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTPL2PS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTPS2PD: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values. -// -// Forms: -// -// CVTPS2PD m64 xmm -// CVTPS2PD xmm xmm -func CVTPS2PD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTPS2PD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTPS2PL: Convert Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTPS2PL m128 xmm -// CVTPS2PL xmm xmm -func CVTPS2PL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTPS2PL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTSD2SL: Convert Scalar Double-Precision FP Value to Integer. -// -// Forms: -// -// CVTSD2SL m64 r32 -// CVTSD2SL m64 r64 -// CVTSD2SL xmm r32 -// CVTSD2SL xmm r64 -func CVTSD2SL(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcCVTSD2SL.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// CVTSD2SS: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value. -// -// Forms: -// -// CVTSD2SS m64 xmm -// CVTSD2SS xmm xmm -func CVTSD2SS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTSD2SS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTSL2SD: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// CVTSL2SD m32 xmm -// CVTSL2SD r32 xmm -func CVTSL2SD(mr, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTSL2SD.Forms(), sffxs{}, []operand.Op{mr, x}) -} - -// CVTSL2SS: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// CVTSL2SS m32 xmm -// CVTSL2SS r32 xmm -func CVTSL2SS(mr, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTSL2SS.Forms(), sffxs{}, []operand.Op{mr, x}) -} - -// CVTSQ2SD: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// CVTSQ2SD m64 xmm -// CVTSQ2SD r64 xmm -func CVTSQ2SD(mr, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTSQ2SD.Forms(), sffxs{}, []operand.Op{mr, x}) -} - -// CVTSQ2SS: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// CVTSQ2SS m64 xmm -// CVTSQ2SS r64 xmm -func CVTSQ2SS(mr, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTSQ2SS.Forms(), sffxs{}, []operand.Op{mr, x}) -} - -// CVTSS2SD: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value. -// -// Forms: -// -// CVTSS2SD m32 xmm -// CVTSS2SD xmm xmm -func CVTSS2SD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTSS2SD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTSS2SL: Convert Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// CVTSS2SL m32 r32 -// CVTSS2SL m32 r64 -// CVTSS2SL xmm r32 -// CVTSS2SL xmm r64 -func CVTSS2SL(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcCVTSS2SL.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// CVTTPD2PL: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTTPD2PL m128 xmm -// CVTTPD2PL xmm xmm -func CVTTPD2PL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTTPD2PL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTTPS2PL: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// CVTTPS2PL m128 xmm -// CVTTPS2PL xmm xmm -func CVTTPS2PL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcCVTTPS2PL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// CVTTSD2SL: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// CVTTSD2SL m64 r32 -// CVTTSD2SL xmm r32 -func CVTTSD2SL(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcCVTTSD2SL.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// CVTTSD2SQ: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// CVTTSD2SQ m64 r64 -// CVTTSD2SQ xmm r64 -func CVTTSD2SQ(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcCVTTSD2SQ.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// CVTTSS2SL: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// CVTTSS2SL m32 r32 -// CVTTSS2SL m32 r64 -// CVTTSS2SL xmm r32 -// CVTTSS2SL xmm r64 -func CVTTSS2SL(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcCVTTSS2SL.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// CWD: Convert Word to Doubleword. -// -// Forms: -// -// CWD -func CWD() (*intrep.Instruction, error) { - return build(opcCWD.Forms(), sffxs{}, []operand.Op{}) -} - -// CWDE: Convert Word to Doubleword. -// -// Forms: -// -// CWDE -func CWDE() (*intrep.Instruction, error) { - return build(opcCWDE.Forms(), sffxs{}, []operand.Op{}) -} - -// DECB: Decrement by 1. -// -// Forms: -// -// DECB m8 -// DECB r8 -func DECB(mr operand.Op) (*intrep.Instruction, error) { - return build(opcDECB.Forms(), sffxs{}, []operand.Op{mr}) -} - -// DECL: Decrement by 1. -// -// Forms: -// -// DECL m32 -// DECL r32 -func DECL(mr operand.Op) (*intrep.Instruction, error) { - return build(opcDECL.Forms(), sffxs{}, []operand.Op{mr}) -} - -// DECQ: Decrement by 1. -// -// Forms: -// -// DECQ m64 -// DECQ r64 -func DECQ(mr operand.Op) (*intrep.Instruction, error) { - return build(opcDECQ.Forms(), sffxs{}, []operand.Op{mr}) -} - -// DECW: Decrement by 1. -// -// Forms: -// -// DECW m16 -// DECW r16 -func DECW(mr operand.Op) (*intrep.Instruction, error) { - return build(opcDECW.Forms(), sffxs{}, []operand.Op{mr}) -} - -// DIVB: Unsigned Divide. -// -// Forms: -// -// DIVB m8 -// DIVB r8 -func DIVB(mr operand.Op) (*intrep.Instruction, error) { - return build(opcDIVB.Forms(), sffxs{}, []operand.Op{mr}) -} - -// DIVL: Unsigned Divide. -// -// Forms: -// -// DIVL m32 -// DIVL r32 -func DIVL(mr operand.Op) (*intrep.Instruction, error) { - return build(opcDIVL.Forms(), sffxs{}, []operand.Op{mr}) -} - -// DIVPD: Divide Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// DIVPD m128 xmm -// DIVPD xmm xmm -func DIVPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcDIVPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// DIVPS: Divide Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// DIVPS m128 xmm -// DIVPS xmm xmm -func DIVPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcDIVPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// DIVQ: Unsigned Divide. -// -// Forms: -// -// DIVQ m64 -// DIVQ r64 -func DIVQ(mr operand.Op) (*intrep.Instruction, error) { - return build(opcDIVQ.Forms(), sffxs{}, []operand.Op{mr}) -} - -// DIVSD: Divide Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// DIVSD m64 xmm -// DIVSD xmm xmm -func DIVSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcDIVSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// DIVSS: Divide Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// DIVSS m32 xmm -// DIVSS xmm xmm -func DIVSS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcDIVSS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// DIVW: Unsigned Divide. -// -// Forms: -// -// DIVW m16 -// DIVW r16 -func DIVW(mr operand.Op) (*intrep.Instruction, error) { - return build(opcDIVW.Forms(), sffxs{}, []operand.Op{mr}) -} - -// DPPD: Dot Product of Packed Double Precision Floating-Point Values. -// -// Forms: -// -// DPPD imm8 m128 xmm -// DPPD imm8 xmm xmm -func DPPD(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcDPPD.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// DPPS: Dot Product of Packed Single Precision Floating-Point Values. -// -// Forms: -// -// DPPS imm8 m128 xmm -// DPPS imm8 xmm xmm -func DPPS(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcDPPS.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// EXTRACTPS: Extract Packed Single Precision Floating-Point Value. -// -// Forms: -// -// EXTRACTPS imm2u xmm m32 -// EXTRACTPS imm2u xmm r32 -func EXTRACTPS(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcEXTRACTPS.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// HADDPD: Packed Double-FP Horizontal Add. -// -// Forms: -// -// HADDPD m128 xmm -// HADDPD xmm xmm -func HADDPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcHADDPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// HADDPS: Packed Single-FP Horizontal Add. -// -// Forms: -// -// HADDPS m128 xmm -// HADDPS xmm xmm -func HADDPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcHADDPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// HSUBPD: Packed Double-FP Horizontal Subtract. -// -// Forms: -// -// HSUBPD m128 xmm -// HSUBPD xmm xmm -func HSUBPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcHSUBPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// HSUBPS: Packed Single-FP Horizontal Subtract. -// -// Forms: -// -// HSUBPS m128 xmm -// HSUBPS xmm xmm -func HSUBPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcHSUBPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// IDIVB: Signed Divide. -// -// Forms: -// -// IDIVB m8 -// IDIVB r8 -func IDIVB(mr operand.Op) (*intrep.Instruction, error) { - return build(opcIDIVB.Forms(), sffxs{}, []operand.Op{mr}) -} - -// IDIVL: Signed Divide. -// -// Forms: -// -// IDIVL m32 -// IDIVL r32 -func IDIVL(mr operand.Op) (*intrep.Instruction, error) { - return build(opcIDIVL.Forms(), sffxs{}, []operand.Op{mr}) -} - -// IDIVQ: Signed Divide. -// -// Forms: -// -// IDIVQ m64 -// IDIVQ r64 -func IDIVQ(mr operand.Op) (*intrep.Instruction, error) { - return build(opcIDIVQ.Forms(), sffxs{}, []operand.Op{mr}) -} - -// IDIVW: Signed Divide. -// -// Forms: -// -// IDIVW m16 -// IDIVW r16 -func IDIVW(mr operand.Op) (*intrep.Instruction, error) { - return build(opcIDIVW.Forms(), sffxs{}, []operand.Op{mr}) -} - -// IMUL3L: Signed Multiply. -// -// Forms: -// -// IMUL3L imm32 m32 r32 -// IMUL3L imm32 r32 r32 -// IMUL3L imm8 m32 r32 -// IMUL3L imm8 r32 r32 -func IMUL3L(i, mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcIMUL3L.Forms(), sffxs{}, []operand.Op{i, mr, r}) -} - -// IMUL3Q: Signed Multiply. -// -// Forms: -// -// IMUL3Q imm32 m64 r64 -// IMUL3Q imm32 r64 r64 -// IMUL3Q imm8 m64 r64 -// IMUL3Q imm8 r64 r64 -func IMUL3Q(i, mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcIMUL3Q.Forms(), sffxs{}, []operand.Op{i, mr, r}) -} - -// IMUL3W: Signed Multiply. -// -// Forms: -// -// IMUL3W imm16 m16 r16 -// IMUL3W imm16 r16 r16 -// IMUL3W imm8 m16 r16 -// IMUL3W imm8 r16 r16 -func IMUL3W(i, mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcIMUL3W.Forms(), sffxs{}, []operand.Op{i, mr, r}) -} - -// IMULB: Signed Multiply. -// -// Forms: -// -// IMULB m8 -// IMULB r8 -func IMULB(mr operand.Op) (*intrep.Instruction, error) { - return build(opcIMULB.Forms(), sffxs{}, []operand.Op{mr}) -} - -// IMULL: Signed Multiply. -// -// Forms: -// -// IMULL m32 r32 -// IMULL m32 -// IMULL r32 r32 -// IMULL r32 -func IMULL(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcIMULL.Forms(), sffxs{}, ops) -} - -// IMULQ: Signed Multiply. -// -// Forms: -// -// IMULQ m64 r64 -// IMULQ m64 -// IMULQ r64 r64 -// IMULQ r64 -func IMULQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcIMULQ.Forms(), sffxs{}, ops) -} - -// IMULW: Signed Multiply. -// -// Forms: -// -// IMULW m16 r16 -// IMULW m16 -// IMULW r16 r16 -// IMULW r16 -func IMULW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcIMULW.Forms(), sffxs{}, ops) -} - -// INCB: Increment by 1. -// -// Forms: -// -// INCB m8 -// INCB r8 -func INCB(mr operand.Op) (*intrep.Instruction, error) { - return build(opcINCB.Forms(), sffxs{}, []operand.Op{mr}) -} - -// INCL: Increment by 1. -// -// Forms: -// -// INCL m32 -// INCL r32 -func INCL(mr operand.Op) (*intrep.Instruction, error) { - return build(opcINCL.Forms(), sffxs{}, []operand.Op{mr}) -} - -// INCQ: Increment by 1. -// -// Forms: -// -// INCQ m64 -// INCQ r64 -func INCQ(mr operand.Op) (*intrep.Instruction, error) { - return build(opcINCQ.Forms(), sffxs{}, []operand.Op{mr}) -} - -// INCW: Increment by 1. -// -// Forms: -// -// INCW m16 -// INCW r16 -func INCW(mr operand.Op) (*intrep.Instruction, error) { - return build(opcINCW.Forms(), sffxs{}, []operand.Op{mr}) -} - -// INSERTPS: Insert Packed Single Precision Floating-Point Value. -// -// Forms: -// -// INSERTPS imm8 m32 xmm -// INSERTPS imm8 xmm xmm -func INSERTPS(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcINSERTPS.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// INT: Call to Interrupt Procedure. -// -// Forms: -// -// INT 3 -// INT imm8 -func INT(i operand.Op) (*intrep.Instruction, error) { - return build(opcINT.Forms(), sffxs{}, []operand.Op{i}) -} - -// JA: Jump if above (CF == 0 and ZF == 0). -// -// Forms: -// -// JA rel32 -// JA rel8 -func JA(r operand.Op) (*intrep.Instruction, error) { - return build(opcJA.Forms(), sffxs{}, []operand.Op{r}) -} - -// JAE: Jump if above or equal (CF == 0). -// -// Forms: -// -// JAE rel32 -// JAE rel8 -func JAE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJAE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JB: Jump if below (CF == 1). -// -// Forms: -// -// JB rel32 -// JB rel8 -func JB(r operand.Op) (*intrep.Instruction, error) { - return build(opcJB.Forms(), sffxs{}, []operand.Op{r}) -} - -// JBE: Jump if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// JBE rel32 -// JBE rel8 -func JBE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJBE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JC: Jump if below (CF == 1). -// -// Forms: -// -// JC rel32 -// JC rel8 -func JC(r operand.Op) (*intrep.Instruction, error) { - return build(opcJC.Forms(), sffxs{}, []operand.Op{r}) -} - -// JCC: Jump if above or equal (CF == 0). -// -// Forms: -// -// JCC rel32 -// JCC rel8 -func JCC(r operand.Op) (*intrep.Instruction, error) { - return build(opcJCC.Forms(), sffxs{}, []operand.Op{r}) -} - -// JCS: Jump if below (CF == 1). -// -// Forms: -// -// JCS rel32 -// JCS rel8 -func JCS(r operand.Op) (*intrep.Instruction, error) { - return build(opcJCS.Forms(), sffxs{}, []operand.Op{r}) -} - -// JCXZL: Jump if ECX register is 0. -// -// Forms: -// -// JCXZL rel8 -func JCXZL(r operand.Op) (*intrep.Instruction, error) { - return build(opcJCXZL.Forms(), sffxs{}, []operand.Op{r}) -} - -// JCXZQ: Jump if RCX register is 0. -// -// Forms: -// -// JCXZQ rel8 -func JCXZQ(r operand.Op) (*intrep.Instruction, error) { - return build(opcJCXZQ.Forms(), sffxs{}, []operand.Op{r}) -} - -// JE: Jump if equal (ZF == 1). -// -// Forms: -// -// JE rel32 -// JE rel8 -func JE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JEQ: Jump if equal (ZF == 1). -// -// Forms: -// -// JEQ rel32 -// JEQ rel8 -func JEQ(r operand.Op) (*intrep.Instruction, error) { - return build(opcJEQ.Forms(), sffxs{}, []operand.Op{r}) -} - -// JG: Jump if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// JG rel32 -// JG rel8 -func JG(r operand.Op) (*intrep.Instruction, error) { - return build(opcJG.Forms(), sffxs{}, []operand.Op{r}) -} - -// JGE: Jump if greater or equal (SF == OF). -// -// Forms: -// -// JGE rel32 -// JGE rel8 -func JGE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJGE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JGT: Jump if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// JGT rel32 -// JGT rel8 -func JGT(r operand.Op) (*intrep.Instruction, error) { - return build(opcJGT.Forms(), sffxs{}, []operand.Op{r}) -} - -// JHI: Jump if above (CF == 0 and ZF == 0). -// -// Forms: -// -// JHI rel32 -// JHI rel8 -func JHI(r operand.Op) (*intrep.Instruction, error) { - return build(opcJHI.Forms(), sffxs{}, []operand.Op{r}) -} - -// JHS: Jump if above or equal (CF == 0). -// -// Forms: -// -// JHS rel32 -// JHS rel8 -func JHS(r operand.Op) (*intrep.Instruction, error) { - return build(opcJHS.Forms(), sffxs{}, []operand.Op{r}) -} - -// JL: Jump if less (SF != OF). -// -// Forms: -// -// JL rel32 -// JL rel8 -func JL(r operand.Op) (*intrep.Instruction, error) { - return build(opcJL.Forms(), sffxs{}, []operand.Op{r}) -} - -// JLE: Jump if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// JLE rel32 -// JLE rel8 -func JLE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJLE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JLO: Jump if below (CF == 1). -// -// Forms: -// -// JLO rel32 -// JLO rel8 -func JLO(r operand.Op) (*intrep.Instruction, error) { - return build(opcJLO.Forms(), sffxs{}, []operand.Op{r}) -} - -// JLS: Jump if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// JLS rel32 -// JLS rel8 -func JLS(r operand.Op) (*intrep.Instruction, error) { - return build(opcJLS.Forms(), sffxs{}, []operand.Op{r}) -} - -// JLT: Jump if less (SF != OF). -// -// Forms: -// -// JLT rel32 -// JLT rel8 -func JLT(r operand.Op) (*intrep.Instruction, error) { - return build(opcJLT.Forms(), sffxs{}, []operand.Op{r}) -} - -// JMI: Jump if sign (SF == 1). -// -// Forms: -// -// JMI rel32 -// JMI rel8 -func JMI(r operand.Op) (*intrep.Instruction, error) { - return build(opcJMI.Forms(), sffxs{}, []operand.Op{r}) -} - -// JMP: Jump Unconditionally. -// -// Forms: -// -// JMP rel32 -// JMP rel8 -// JMP m64 -// JMP r64 -func JMP(mr operand.Op) (*intrep.Instruction, error) { - return build(opcJMP.Forms(), sffxs{}, []operand.Op{mr}) -} - -// JNA: Jump if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// JNA rel32 -// JNA rel8 -func JNA(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNA.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNAE: Jump if below (CF == 1). -// -// Forms: -// -// JNAE rel32 -// JNAE rel8 -func JNAE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNAE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNB: Jump if above or equal (CF == 0). -// -// Forms: -// -// JNB rel32 -// JNB rel8 -func JNB(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNB.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNBE: Jump if above (CF == 0 and ZF == 0). -// -// Forms: -// -// JNBE rel32 -// JNBE rel8 -func JNBE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNBE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNC: Jump if above or equal (CF == 0). -// -// Forms: -// -// JNC rel32 -// JNC rel8 -func JNC(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNC.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNE: Jump if not equal (ZF == 0). -// -// Forms: -// -// JNE rel32 -// JNE rel8 -func JNE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNG: Jump if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// JNG rel32 -// JNG rel8 -func JNG(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNG.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNGE: Jump if less (SF != OF). -// -// Forms: -// -// JNGE rel32 -// JNGE rel8 -func JNGE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNGE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNL: Jump if greater or equal (SF == OF). -// -// Forms: -// -// JNL rel32 -// JNL rel8 -func JNL(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNL.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNLE: Jump if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// JNLE rel32 -// JNLE rel8 -func JNLE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNLE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNO: Jump if not overflow (OF == 0). -// -// Forms: -// -// JNO rel32 -// JNO rel8 -func JNO(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNO.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNP: Jump if not parity (PF == 0). -// -// Forms: -// -// JNP rel32 -// JNP rel8 -func JNP(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNP.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNS: Jump if not sign (SF == 0). -// -// Forms: -// -// JNS rel32 -// JNS rel8 -func JNS(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNS.Forms(), sffxs{}, []operand.Op{r}) -} - -// JNZ: Jump if not equal (ZF == 0). -// -// Forms: -// -// JNZ rel32 -// JNZ rel8 -func JNZ(r operand.Op) (*intrep.Instruction, error) { - return build(opcJNZ.Forms(), sffxs{}, []operand.Op{r}) -} - -// JO: Jump if overflow (OF == 1). -// -// Forms: -// -// JO rel32 -// JO rel8 -func JO(r operand.Op) (*intrep.Instruction, error) { - return build(opcJO.Forms(), sffxs{}, []operand.Op{r}) -} - -// JOC: Jump if not overflow (OF == 0). -// -// Forms: -// -// JOC rel32 -// JOC rel8 -func JOC(r operand.Op) (*intrep.Instruction, error) { - return build(opcJOC.Forms(), sffxs{}, []operand.Op{r}) -} - -// JOS: Jump if overflow (OF == 1). -// -// Forms: -// -// JOS rel32 -// JOS rel8 -func JOS(r operand.Op) (*intrep.Instruction, error) { - return build(opcJOS.Forms(), sffxs{}, []operand.Op{r}) -} - -// JP: Jump if parity (PF == 1). -// -// Forms: -// -// JP rel32 -// JP rel8 -func JP(r operand.Op) (*intrep.Instruction, error) { - return build(opcJP.Forms(), sffxs{}, []operand.Op{r}) -} - -// JPC: Jump if not parity (PF == 0). -// -// Forms: -// -// JPC rel32 -// JPC rel8 -func JPC(r operand.Op) (*intrep.Instruction, error) { - return build(opcJPC.Forms(), sffxs{}, []operand.Op{r}) -} - -// JPE: Jump if parity (PF == 1). -// -// Forms: -// -// JPE rel32 -// JPE rel8 -func JPE(r operand.Op) (*intrep.Instruction, error) { - return build(opcJPE.Forms(), sffxs{}, []operand.Op{r}) -} - -// JPL: Jump if not sign (SF == 0). -// -// Forms: -// -// JPL rel32 -// JPL rel8 -func JPL(r operand.Op) (*intrep.Instruction, error) { - return build(opcJPL.Forms(), sffxs{}, []operand.Op{r}) -} - -// JPO: Jump if not parity (PF == 0). -// -// Forms: -// -// JPO rel32 -// JPO rel8 -func JPO(r operand.Op) (*intrep.Instruction, error) { - return build(opcJPO.Forms(), sffxs{}, []operand.Op{r}) -} - -// JPS: Jump if parity (PF == 1). -// -// Forms: -// -// JPS rel32 -// JPS rel8 -func JPS(r operand.Op) (*intrep.Instruction, error) { - return build(opcJPS.Forms(), sffxs{}, []operand.Op{r}) -} - -// JS: Jump if sign (SF == 1). -// -// Forms: -// -// JS rel32 -// JS rel8 -func JS(r operand.Op) (*intrep.Instruction, error) { - return build(opcJS.Forms(), sffxs{}, []operand.Op{r}) -} - -// JZ: Jump if equal (ZF == 1). -// -// Forms: -// -// JZ rel32 -// JZ rel8 -func JZ(r operand.Op) (*intrep.Instruction, error) { - return build(opcJZ.Forms(), sffxs{}, []operand.Op{r}) -} - -// KADDB: ADD Two 8-bit Masks. -// -// Forms: -// -// KADDB k k k -func KADDB(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKADDB.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KADDD: ADD Two 32-bit Masks. -// -// Forms: -// -// KADDD k k k -func KADDD(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKADDD.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KADDQ: ADD Two 64-bit Masks. -// -// Forms: -// -// KADDQ k k k -func KADDQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKADDQ.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KADDW: ADD Two 16-bit Masks. -// -// Forms: -// -// KADDW k k k -func KADDW(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKADDW.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KANDB: Bitwise Logical AND 8-bit Masks. -// -// Forms: -// -// KANDB k k k -func KANDB(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKANDB.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KANDD: Bitwise Logical AND 32-bit Masks. -// -// Forms: -// -// KANDD k k k -func KANDD(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKANDD.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KANDNB: Bitwise Logical AND NOT 8-bit Masks. -// -// Forms: -// -// KANDNB k k k -func KANDNB(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKANDNB.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KANDND: Bitwise Logical AND NOT 32-bit Masks. -// -// Forms: -// -// KANDND k k k -func KANDND(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKANDND.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KANDNQ: Bitwise Logical AND NOT 64-bit Masks. -// -// Forms: -// -// KANDNQ k k k -func KANDNQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKANDNQ.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KANDNW: Bitwise Logical AND NOT 16-bit Masks. -// -// Forms: -// -// KANDNW k k k -func KANDNW(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKANDNW.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KANDQ: Bitwise Logical AND 64-bit Masks. -// -// Forms: -// -// KANDQ k k k -func KANDQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKANDQ.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KANDW: Bitwise Logical AND 16-bit Masks. -// -// Forms: -// -// KANDW k k k -func KANDW(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKANDW.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KMOVB: Move 8-bit Mask. -// -// Forms: -// -// KMOVB k k -// KMOVB k m8 -// KMOVB k r32 -// KMOVB m8 k -// KMOVB r32 k -func KMOVB(kmr, kmr1 operand.Op) (*intrep.Instruction, error) { - return build(opcKMOVB.Forms(), sffxs{}, []operand.Op{kmr, kmr1}) -} - -// KMOVD: Move 32-bit Mask. -// -// Forms: -// -// KMOVD k k -// KMOVD k m32 -// KMOVD k r32 -// KMOVD m32 k -// KMOVD r32 k -func KMOVD(kmr, kmr1 operand.Op) (*intrep.Instruction, error) { - return build(opcKMOVD.Forms(), sffxs{}, []operand.Op{kmr, kmr1}) -} - -// KMOVQ: Move 64-bit Mask. -// -// Forms: -// -// KMOVQ k k -// KMOVQ k m64 -// KMOVQ k r64 -// KMOVQ m64 k -// KMOVQ r64 k -func KMOVQ(kmr, kmr1 operand.Op) (*intrep.Instruction, error) { - return build(opcKMOVQ.Forms(), sffxs{}, []operand.Op{kmr, kmr1}) -} - -// KMOVW: Move 16-bit Mask. -// -// Forms: -// -// KMOVW k k -// KMOVW k m16 -// KMOVW k r32 -// KMOVW m16 k -// KMOVW r32 k -func KMOVW(kmr, kmr1 operand.Op) (*intrep.Instruction, error) { - return build(opcKMOVW.Forms(), sffxs{}, []operand.Op{kmr, kmr1}) -} - -// KNOTB: NOT 8-bit Mask Register. -// -// Forms: -// -// KNOTB k k -func KNOTB(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKNOTB.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KNOTD: NOT 32-bit Mask Register. -// -// Forms: -// -// KNOTD k k -func KNOTD(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKNOTD.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KNOTQ: NOT 64-bit Mask Register. -// -// Forms: -// -// KNOTQ k k -func KNOTQ(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKNOTQ.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KNOTW: NOT 16-bit Mask Register. -// -// Forms: -// -// KNOTW k k -func KNOTW(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKNOTW.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KORB: Bitwise Logical OR 8-bit Masks. -// -// Forms: -// -// KORB k k k -func KORB(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKORB.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KORD: Bitwise Logical OR 32-bit Masks. -// -// Forms: -// -// KORD k k k -func KORD(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKORD.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KORQ: Bitwise Logical OR 64-bit Masks. -// -// Forms: -// -// KORQ k k k -func KORQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKORQ.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KORTESTB: OR 8-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTB k k -func KORTESTB(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKORTESTB.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KORTESTD: OR 32-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTD k k -func KORTESTD(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKORTESTD.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KORTESTQ: OR 64-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTQ k k -func KORTESTQ(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKORTESTQ.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KORTESTW: OR 16-bit Masks and Set Flags. -// -// Forms: -// -// KORTESTW k k -func KORTESTW(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKORTESTW.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KORW: Bitwise Logical OR 16-bit Masks. -// -// Forms: -// -// KORW k k k -func KORW(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKORW.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KSHIFTLB: Shift Left 8-bit Masks. -// -// Forms: -// -// KSHIFTLB imm8 k k -func KSHIFTLB(i, k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKSHIFTLB.Forms(), sffxs{}, []operand.Op{i, k, k1}) -} - -// KSHIFTLD: Shift Left 32-bit Masks. -// -// Forms: -// -// KSHIFTLD imm8 k k -func KSHIFTLD(i, k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKSHIFTLD.Forms(), sffxs{}, []operand.Op{i, k, k1}) -} - -// KSHIFTLQ: Shift Left 64-bit Masks. -// -// Forms: -// -// KSHIFTLQ imm8 k k -func KSHIFTLQ(i, k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKSHIFTLQ.Forms(), sffxs{}, []operand.Op{i, k, k1}) -} - -// KSHIFTLW: Shift Left 16-bit Masks. -// -// Forms: -// -// KSHIFTLW imm8 k k -func KSHIFTLW(i, k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKSHIFTLW.Forms(), sffxs{}, []operand.Op{i, k, k1}) -} - -// KSHIFTRB: Shift Right 8-bit Masks. -// -// Forms: -// -// KSHIFTRB imm8 k k -func KSHIFTRB(i, k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKSHIFTRB.Forms(), sffxs{}, []operand.Op{i, k, k1}) -} - -// KSHIFTRD: Shift Right 32-bit Masks. -// -// Forms: -// -// KSHIFTRD imm8 k k -func KSHIFTRD(i, k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKSHIFTRD.Forms(), sffxs{}, []operand.Op{i, k, k1}) -} - -// KSHIFTRQ: Shift Right 64-bit Masks. -// -// Forms: -// -// KSHIFTRQ imm8 k k -func KSHIFTRQ(i, k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKSHIFTRQ.Forms(), sffxs{}, []operand.Op{i, k, k1}) -} - -// KSHIFTRW: Shift Right 16-bit Masks. -// -// Forms: -// -// KSHIFTRW imm8 k k -func KSHIFTRW(i, k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKSHIFTRW.Forms(), sffxs{}, []operand.Op{i, k, k1}) -} - -// KTESTB: Bit Test 8-bit Masks and Set Flags. -// -// Forms: -// -// KTESTB k k -func KTESTB(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKTESTB.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KTESTD: Bit Test 32-bit Masks and Set Flags. -// -// Forms: -// -// KTESTD k k -func KTESTD(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKTESTD.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KTESTQ: Bit Test 64-bit Masks and Set Flags. -// -// Forms: -// -// KTESTQ k k -func KTESTQ(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKTESTQ.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KTESTW: Bit Test 16-bit Masks and Set Flags. -// -// Forms: -// -// KTESTW k k -func KTESTW(k, k1 operand.Op) (*intrep.Instruction, error) { - return build(opcKTESTW.Forms(), sffxs{}, []operand.Op{k, k1}) -} - -// KUNPCKBW: Unpack and Interleave 8-bit Masks. -// -// Forms: -// -// KUNPCKBW k k k -func KUNPCKBW(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKUNPCKBW.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KUNPCKDQ: Unpack and Interleave 32-bit Masks. -// -// Forms: -// -// KUNPCKDQ k k k -func KUNPCKDQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKUNPCKDQ.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KUNPCKWD: Unpack and Interleave 16-bit Masks. -// -// Forms: -// -// KUNPCKWD k k k -func KUNPCKWD(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKUNPCKWD.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KXNORB: Bitwise Logical XNOR 8-bit Masks. -// -// Forms: -// -// KXNORB k k k -func KXNORB(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKXNORB.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KXNORD: Bitwise Logical XNOR 32-bit Masks. -// -// Forms: -// -// KXNORD k k k -func KXNORD(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKXNORD.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KXNORQ: Bitwise Logical XNOR 64-bit Masks. -// -// Forms: -// -// KXNORQ k k k -func KXNORQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKXNORQ.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KXNORW: Bitwise Logical XNOR 16-bit Masks. -// -// Forms: -// -// KXNORW k k k -func KXNORW(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKXNORW.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KXORB: Bitwise Logical XOR 8-bit Masks. -// -// Forms: -// -// KXORB k k k -func KXORB(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKXORB.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KXORD: Bitwise Logical XOR 32-bit Masks. -// -// Forms: -// -// KXORD k k k -func KXORD(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKXORD.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KXORQ: Bitwise Logical XOR 64-bit Masks. -// -// Forms: -// -// KXORQ k k k -func KXORQ(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKXORQ.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// KXORW: Bitwise Logical XOR 16-bit Masks. -// -// Forms: -// -// KXORW k k k -func KXORW(k, k1, k2 operand.Op) (*intrep.Instruction, error) { - return build(opcKXORW.Forms(), sffxs{}, []operand.Op{k, k1, k2}) -} - -// LDDQU: Load Unaligned Integer 128 Bits. -// -// Forms: -// -// LDDQU m128 xmm -func LDDQU(m, x operand.Op) (*intrep.Instruction, error) { - return build(opcLDDQU.Forms(), sffxs{}, []operand.Op{m, x}) -} - -// LDMXCSR: Load MXCSR Register. -// -// Forms: -// -// LDMXCSR m32 -func LDMXCSR(m operand.Op) (*intrep.Instruction, error) { - return build(opcLDMXCSR.Forms(), sffxs{}, []operand.Op{m}) -} - -// LEAL: Load Effective Address. -// -// Forms: -// -// LEAL m r32 -func LEAL(m, r operand.Op) (*intrep.Instruction, error) { - return build(opcLEAL.Forms(), sffxs{}, []operand.Op{m, r}) -} - -// LEAQ: Load Effective Address. -// -// Forms: -// -// LEAQ m r64 -func LEAQ(m, r operand.Op) (*intrep.Instruction, error) { - return build(opcLEAQ.Forms(), sffxs{}, []operand.Op{m, r}) -} - -// LEAW: Load Effective Address. -// -// Forms: -// -// LEAW m r16 -func LEAW(m, r operand.Op) (*intrep.Instruction, error) { - return build(opcLEAW.Forms(), sffxs{}, []operand.Op{m, r}) -} - -// LFENCE: Load Fence. -// -// Forms: -// -// LFENCE -func LFENCE() (*intrep.Instruction, error) { - return build(opcLFENCE.Forms(), sffxs{}, []operand.Op{}) -} - -// LZCNTL: Count the Number of Leading Zero Bits. -// -// Forms: -// -// LZCNTL m32 r32 -// LZCNTL r32 r32 -func LZCNTL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcLZCNTL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// LZCNTQ: Count the Number of Leading Zero Bits. -// -// Forms: -// -// LZCNTQ m64 r64 -// LZCNTQ r64 r64 -func LZCNTQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcLZCNTQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// LZCNTW: Count the Number of Leading Zero Bits. -// -// Forms: -// -// LZCNTW m16 r16 -// LZCNTW r16 r16 -func LZCNTW(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcLZCNTW.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MASKMOVDQU: Store Selected Bytes of Double Quadword. -// -// Forms: -// -// MASKMOVDQU xmm xmm -func MASKMOVDQU(x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcMASKMOVDQU.Forms(), sffxs{}, []operand.Op{x, x1}) -} - -// MASKMOVOU: Store Selected Bytes of Double Quadword. -// -// Forms: -// -// MASKMOVOU xmm xmm -func MASKMOVOU(x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcMASKMOVOU.Forms(), sffxs{}, []operand.Op{x, x1}) -} - -// MAXPD: Return Maximum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MAXPD m128 xmm -// MAXPD xmm xmm -func MAXPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMAXPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MAXPS: Return Maximum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MAXPS m128 xmm -// MAXPS xmm xmm -func MAXPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMAXPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MAXSD: Return Maximum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// MAXSD m64 xmm -// MAXSD xmm xmm -func MAXSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMAXSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MAXSS: Return Maximum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// MAXSS m32 xmm -// MAXSS xmm xmm -func MAXSS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMAXSS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MFENCE: Memory Fence. -// -// Forms: -// -// MFENCE -func MFENCE() (*intrep.Instruction, error) { - return build(opcMFENCE.Forms(), sffxs{}, []operand.Op{}) -} - -// MINPD: Return Minimum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MINPD m128 xmm -// MINPD xmm xmm -func MINPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMINPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MINPS: Return Minimum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MINPS m128 xmm -// MINPS xmm xmm -func MINPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMINPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MINSD: Return Minimum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// MINSD m64 xmm -// MINSD xmm xmm -func MINSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMINSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MINSS: Return Minimum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// MINSS m32 xmm -// MINSS xmm xmm -func MINSS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMINSS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MONITOR: Monitor a Linear Address Range. -// -// Forms: -// -// MONITOR -func MONITOR() (*intrep.Instruction, error) { - return build(opcMONITOR.Forms(), sffxs{}, []operand.Op{}) -} - -// MOVAPD: Move Aligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MOVAPD m128 xmm -// MOVAPD xmm m128 -// MOVAPD xmm xmm -func MOVAPD(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVAPD.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVAPS: Move Aligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVAPS m128 xmm -// MOVAPS xmm m128 -// MOVAPS xmm xmm -func MOVAPS(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVAPS.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVB: Move. -// -// Forms: -// -// MOVB imm8 m8 -// MOVB imm8 r8 -// MOVB m8 r8 -// MOVB r8 m8 -// MOVB r8 r8 -func MOVB(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcMOVB.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// MOVBELL: Move Data After Swapping Bytes. -// -// Forms: -// -// MOVBELL m32 r32 -// MOVBELL r32 m32 -func MOVBELL(mr, mr1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVBELL.Forms(), sffxs{}, []operand.Op{mr, mr1}) -} - -// MOVBEQQ: Move Data After Swapping Bytes. -// -// Forms: -// -// MOVBEQQ m64 r64 -// MOVBEQQ r64 m64 -func MOVBEQQ(mr, mr1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVBEQQ.Forms(), sffxs{}, []operand.Op{mr, mr1}) -} - -// MOVBEWW: Move Data After Swapping Bytes. -// -// Forms: -// -// MOVBEWW m16 r16 -// MOVBEWW r16 m16 -func MOVBEWW(mr, mr1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVBEWW.Forms(), sffxs{}, []operand.Op{mr, mr1}) -} - -// MOVBLSX: Move with Sign-Extension. -// -// Forms: -// -// MOVBLSX m8 r32 -// MOVBLSX r8 r32 -func MOVBLSX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVBLSX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVBLZX: Move with Zero-Extend. -// -// Forms: -// -// MOVBLZX m8 r32 -// MOVBLZX r8 r32 -func MOVBLZX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVBLZX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVBQSX: Move with Sign-Extension. -// -// Forms: -// -// MOVBQSX m8 r64 -// MOVBQSX r8 r64 -func MOVBQSX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVBQSX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVBQZX: Move with Zero-Extend. -// -// Forms: -// -// MOVBQZX m8 r64 -// MOVBQZX r8 r64 -func MOVBQZX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVBQZX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVBWSX: Move with Sign-Extension. -// -// Forms: -// -// MOVBWSX m8 r16 -// MOVBWSX r8 r16 -func MOVBWSX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVBWSX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVBWZX: Move with Zero-Extend. -// -// Forms: -// -// MOVBWZX m8 r16 -// MOVBWZX r8 r16 -func MOVBWZX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVBWZX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVD: Move. -// -// Forms: -// -// MOVD m32 xmm -// MOVD m64 xmm -// MOVD r32 xmm -// MOVD r64 xmm -// MOVD xmm m32 -// MOVD xmm m64 -// MOVD xmm r32 -// MOVD xmm r64 -// MOVD xmm xmm -// MOVD imm32 m64 -// MOVD imm32 r64 -// MOVD imm64 r64 -// MOVD m64 r64 -// MOVD r64 m64 -// MOVD r64 r64 -func MOVD(imrx, mrx operand.Op) (*intrep.Instruction, error) { - return build(opcMOVD.Forms(), sffxs{}, []operand.Op{imrx, mrx}) -} - -// MOVDDUP: Move One Double-FP and Duplicate. -// -// Forms: -// -// MOVDDUP m64 xmm -// MOVDDUP xmm xmm -func MOVDDUP(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMOVDDUP.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MOVDQ2Q: Move. -// -// Forms: -// -// MOVDQ2Q m32 xmm -// MOVDQ2Q m64 xmm -// MOVDQ2Q r32 xmm -// MOVDQ2Q r64 xmm -// MOVDQ2Q xmm m32 -// MOVDQ2Q xmm m64 -// MOVDQ2Q xmm r32 -// MOVDQ2Q xmm r64 -// MOVDQ2Q xmm xmm -// MOVDQ2Q imm32 m64 -// MOVDQ2Q imm32 r64 -// MOVDQ2Q imm64 r64 -// MOVDQ2Q m64 r64 -// MOVDQ2Q r64 m64 -// MOVDQ2Q r64 r64 -func MOVDQ2Q(imrx, mrx operand.Op) (*intrep.Instruction, error) { - return build(opcMOVDQ2Q.Forms(), sffxs{}, []operand.Op{imrx, mrx}) -} - -// MOVHLPS: Move Packed Single-Precision Floating-Point Values High to Low. -// -// Forms: -// -// MOVHLPS xmm xmm -func MOVHLPS(x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVHLPS.Forms(), sffxs{}, []operand.Op{x, x1}) -} - -// MOVHPD: Move High Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// MOVHPD m64 xmm -// MOVHPD xmm m64 -func MOVHPD(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVHPD.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVHPS: Move High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVHPS m64 xmm -// MOVHPS xmm m64 -func MOVHPS(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVHPS.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVL: Move. -// -// Forms: -// -// MOVL imm32 m32 -// MOVL imm32 r32 -// MOVL m32 r32 -// MOVL r32 m32 -// MOVL r32 r32 -func MOVL(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcMOVL.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// MOVLHPS: Move Packed Single-Precision Floating-Point Values Low to High. -// -// Forms: -// -// MOVLHPS xmm xmm -func MOVLHPS(x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVLHPS.Forms(), sffxs{}, []operand.Op{x, x1}) -} - -// MOVLPD: Move Low Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// MOVLPD m64 xmm -// MOVLPD xmm m64 -func MOVLPD(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVLPD.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVLPS: Move Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVLPS m64 xmm -// MOVLPS xmm m64 -func MOVLPS(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVLPS.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVLQSX: Move Doubleword to Quadword with Sign-Extension. -// -// Forms: -// -// MOVLQSX m32 r64 -// MOVLQSX r32 r64 -func MOVLQSX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVLQSX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVLQZX: Move with Zero-Extend. -// -// Forms: -// -// MOVLQZX m32 r64 -func MOVLQZX(m, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVLQZX.Forms(), sffxs{}, []operand.Op{m, r}) -} - -// MOVMSKPD: Extract Packed Double-Precision Floating-Point Sign Mask. -// -// Forms: -// -// MOVMSKPD xmm r32 -func MOVMSKPD(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVMSKPD.Forms(), sffxs{}, []operand.Op{x, r}) -} - -// MOVMSKPS: Extract Packed Single-Precision Floating-Point Sign Mask. -// -// Forms: -// -// MOVMSKPS xmm r32 -func MOVMSKPS(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVMSKPS.Forms(), sffxs{}, []operand.Op{x, r}) -} - -// MOVNTDQ: Store Double Quadword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTDQ xmm m128 -func MOVNTDQ(x, m operand.Op) (*intrep.Instruction, error) { - return build(opcMOVNTDQ.Forms(), sffxs{}, []operand.Op{x, m}) -} - -// MOVNTDQA: Load Double Quadword Non-Temporal Aligned Hint. -// -// Forms: -// -// MOVNTDQA m128 xmm -func MOVNTDQA(m, x operand.Op) (*intrep.Instruction, error) { - return build(opcMOVNTDQA.Forms(), sffxs{}, []operand.Op{m, x}) -} - -// MOVNTIL: Store Doubleword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTIL r32 m32 -func MOVNTIL(r, m operand.Op) (*intrep.Instruction, error) { - return build(opcMOVNTIL.Forms(), sffxs{}, []operand.Op{r, m}) -} - -// MOVNTIQ: Store Doubleword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTIQ r64 m64 -func MOVNTIQ(r, m operand.Op) (*intrep.Instruction, error) { - return build(opcMOVNTIQ.Forms(), sffxs{}, []operand.Op{r, m}) -} - -// MOVNTO: Store Double Quadword Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTO xmm m128 -func MOVNTO(x, m operand.Op) (*intrep.Instruction, error) { - return build(opcMOVNTO.Forms(), sffxs{}, []operand.Op{x, m}) -} - -// MOVNTPD: Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTPD xmm m128 -func MOVNTPD(x, m operand.Op) (*intrep.Instruction, error) { - return build(opcMOVNTPD.Forms(), sffxs{}, []operand.Op{x, m}) -} - -// MOVNTPS: Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// MOVNTPS xmm m128 -func MOVNTPS(x, m operand.Op) (*intrep.Instruction, error) { - return build(opcMOVNTPS.Forms(), sffxs{}, []operand.Op{x, m}) -} - -// MOVO: Move Aligned Double Quadword. -// -// Forms: -// -// MOVO m128 xmm -// MOVO xmm m128 -// MOVO xmm xmm -func MOVO(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVO.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVOA: Move Aligned Double Quadword. -// -// Forms: -// -// MOVOA m128 xmm -// MOVOA xmm m128 -// MOVOA xmm xmm -func MOVOA(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVOA.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVOU: Move Unaligned Double Quadword. -// -// Forms: -// -// MOVOU m128 xmm -// MOVOU xmm m128 -// MOVOU xmm xmm -func MOVOU(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVOU.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVQ: Move. -// -// Forms: -// -// MOVQ m32 xmm -// MOVQ m64 xmm -// MOVQ r32 xmm -// MOVQ r64 xmm -// MOVQ xmm m32 -// MOVQ xmm m64 -// MOVQ xmm r32 -// MOVQ xmm r64 -// MOVQ xmm xmm -// MOVQ imm32 m64 -// MOVQ imm32 r64 -// MOVQ imm64 r64 -// MOVQ m64 r64 -// MOVQ r64 m64 -// MOVQ r64 r64 -func MOVQ(imrx, mrx operand.Op) (*intrep.Instruction, error) { - return build(opcMOVQ.Forms(), sffxs{}, []operand.Op{imrx, mrx}) -} - -// MOVSD: Move Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// MOVSD m64 xmm -// MOVSD xmm m64 -// MOVSD xmm xmm -func MOVSD(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVSD.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVSHDUP: Move Packed Single-FP High and Duplicate. -// -// Forms: -// -// MOVSHDUP m128 xmm -// MOVSHDUP xmm xmm -func MOVSHDUP(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMOVSHDUP.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MOVSLDUP: Move Packed Single-FP Low and Duplicate. -// -// Forms: -// -// MOVSLDUP m128 xmm -// MOVSLDUP xmm xmm -func MOVSLDUP(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMOVSLDUP.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MOVSS: Move Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVSS m32 xmm -// MOVSS xmm m32 -// MOVSS xmm xmm -func MOVSS(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVSS.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVUPD: Move Unaligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MOVUPD m128 xmm -// MOVUPD xmm m128 -// MOVUPD xmm xmm -func MOVUPD(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVUPD.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVUPS: Move Unaligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MOVUPS m128 xmm -// MOVUPS xmm m128 -// MOVUPS xmm xmm -func MOVUPS(mx, mx1 operand.Op) (*intrep.Instruction, error) { - return build(opcMOVUPS.Forms(), sffxs{}, []operand.Op{mx, mx1}) -} - -// MOVW: Move. -// -// Forms: -// -// MOVW imm16 m16 -// MOVW imm16 r16 -// MOVW m16 r16 -// MOVW r16 m16 -// MOVW r16 r16 -func MOVW(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcMOVW.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// MOVWLSX: Move with Sign-Extension. -// -// Forms: -// -// MOVWLSX m16 r32 -// MOVWLSX r16 r32 -func MOVWLSX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVWLSX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVWLZX: Move with Zero-Extend. -// -// Forms: -// -// MOVWLZX m16 r32 -// MOVWLZX r16 r32 -func MOVWLZX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVWLZX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVWQSX: Move with Sign-Extension. -// -// Forms: -// -// MOVWQSX m16 r64 -// MOVWQSX r16 r64 -func MOVWQSX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVWQSX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MOVWQZX: Move with Zero-Extend. -// -// Forms: -// -// MOVWQZX m16 r64 -// MOVWQZX r16 r64 -func MOVWQZX(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcMOVWQZX.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// MPSADBW: Compute Multiple Packed Sums of Absolute Difference. -// -// Forms: -// -// MPSADBW imm8 m128 xmm -// MPSADBW imm8 xmm xmm -func MPSADBW(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMPSADBW.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// MULB: Unsigned Multiply. -// -// Forms: -// -// MULB m8 -// MULB r8 -func MULB(mr operand.Op) (*intrep.Instruction, error) { - return build(opcMULB.Forms(), sffxs{}, []operand.Op{mr}) -} - -// MULL: Unsigned Multiply. -// -// Forms: -// -// MULL m32 -// MULL r32 -func MULL(mr operand.Op) (*intrep.Instruction, error) { - return build(opcMULL.Forms(), sffxs{}, []operand.Op{mr}) -} - -// MULPD: Multiply Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// MULPD m128 xmm -// MULPD xmm xmm -func MULPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMULPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MULPS: Multiply Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// MULPS m128 xmm -// MULPS xmm xmm -func MULPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMULPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MULQ: Unsigned Multiply. -// -// Forms: -// -// MULQ m64 -// MULQ r64 -func MULQ(mr operand.Op) (*intrep.Instruction, error) { - return build(opcMULQ.Forms(), sffxs{}, []operand.Op{mr}) -} - -// MULSD: Multiply Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// MULSD m64 xmm -// MULSD xmm xmm -func MULSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMULSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MULSS: Multiply Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// MULSS m32 xmm -// MULSS xmm xmm -func MULSS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcMULSS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// MULW: Unsigned Multiply. -// -// Forms: -// -// MULW m16 -// MULW r16 -func MULW(mr operand.Op) (*intrep.Instruction, error) { - return build(opcMULW.Forms(), sffxs{}, []operand.Op{mr}) -} - -// MULXL: Unsigned Multiply Without Affecting Flags. -// -// Forms: -// -// MULXL m32 r32 r32 -// MULXL r32 r32 r32 -func MULXL(mr, r, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcMULXL.Forms(), sffxs{}, []operand.Op{mr, r, r1}) -} - -// MULXQ: Unsigned Multiply Without Affecting Flags. -// -// Forms: -// -// MULXQ m64 r64 r64 -// MULXQ r64 r64 r64 -func MULXQ(mr, r, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcMULXQ.Forms(), sffxs{}, []operand.Op{mr, r, r1}) -} - -// MWAIT: Monitor Wait. -// -// Forms: -// -// MWAIT -func MWAIT() (*intrep.Instruction, error) { - return build(opcMWAIT.Forms(), sffxs{}, []operand.Op{}) -} - -// NEGB: Two's Complement Negation. -// -// Forms: -// -// NEGB m8 -// NEGB r8 -func NEGB(mr operand.Op) (*intrep.Instruction, error) { - return build(opcNEGB.Forms(), sffxs{}, []operand.Op{mr}) -} - -// NEGL: Two's Complement Negation. -// -// Forms: -// -// NEGL m32 -// NEGL r32 -func NEGL(mr operand.Op) (*intrep.Instruction, error) { - return build(opcNEGL.Forms(), sffxs{}, []operand.Op{mr}) -} - -// NEGQ: Two's Complement Negation. -// -// Forms: -// -// NEGQ m64 -// NEGQ r64 -func NEGQ(mr operand.Op) (*intrep.Instruction, error) { - return build(opcNEGQ.Forms(), sffxs{}, []operand.Op{mr}) -} - -// NEGW: Two's Complement Negation. -// -// Forms: -// -// NEGW m16 -// NEGW r16 -func NEGW(mr operand.Op) (*intrep.Instruction, error) { - return build(opcNEGW.Forms(), sffxs{}, []operand.Op{mr}) -} - -// NOP: No Operation. -// -// Forms: -// -// NOP -func NOP() (*intrep.Instruction, error) { - return build(opcNOP.Forms(), sffxs{}, []operand.Op{}) -} - -// NOTB: One's Complement Negation. -// -// Forms: -// -// NOTB m8 -// NOTB r8 -func NOTB(mr operand.Op) (*intrep.Instruction, error) { - return build(opcNOTB.Forms(), sffxs{}, []operand.Op{mr}) -} - -// NOTL: One's Complement Negation. -// -// Forms: -// -// NOTL m32 -// NOTL r32 -func NOTL(mr operand.Op) (*intrep.Instruction, error) { - return build(opcNOTL.Forms(), sffxs{}, []operand.Op{mr}) -} - -// NOTQ: One's Complement Negation. -// -// Forms: -// -// NOTQ m64 -// NOTQ r64 -func NOTQ(mr operand.Op) (*intrep.Instruction, error) { - return build(opcNOTQ.Forms(), sffxs{}, []operand.Op{mr}) -} - -// NOTW: One's Complement Negation. -// -// Forms: -// -// NOTW m16 -// NOTW r16 -func NOTW(mr operand.Op) (*intrep.Instruction, error) { - return build(opcNOTW.Forms(), sffxs{}, []operand.Op{mr}) -} - -// ORB: Logical Inclusive OR. -// -// Forms: -// -// ORB imm8 al -// ORB imm8 m8 -// ORB imm8 r8 -// ORB m8 r8 -// ORB r8 m8 -// ORB r8 r8 -func ORB(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcORB.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// ORL: Logical Inclusive OR. -// -// Forms: -// -// ORL imm32 eax -// ORL imm32 m32 -// ORL imm32 r32 -// ORL imm8 m32 -// ORL imm8 r32 -// ORL m32 r32 -// ORL r32 m32 -// ORL r32 r32 -func ORL(imr, emr operand.Op) (*intrep.Instruction, error) { - return build(opcORL.Forms(), sffxs{}, []operand.Op{imr, emr}) -} - -// ORPD: Bitwise Logical OR of Double-Precision Floating-Point Values. -// -// Forms: -// -// ORPD m128 xmm -// ORPD xmm xmm -func ORPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcORPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ORPS: Bitwise Logical OR of Single-Precision Floating-Point Values. -// -// Forms: -// -// ORPS m128 xmm -// ORPS xmm xmm -func ORPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcORPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// ORQ: Logical Inclusive OR. -// -// Forms: -// -// ORQ imm32 m64 -// ORQ imm32 r64 -// ORQ imm32 rax -// ORQ imm8 m64 -// ORQ imm8 r64 -// ORQ m64 r64 -// ORQ r64 m64 -// ORQ r64 r64 -func ORQ(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcORQ.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// ORW: Logical Inclusive OR. -// -// Forms: -// -// ORW imm16 ax -// ORW imm16 m16 -// ORW imm16 r16 -// ORW imm8 m16 -// ORW imm8 r16 -// ORW m16 r16 -// ORW r16 m16 -// ORW r16 r16 -func ORW(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcORW.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// PABSB: Packed Absolute Value of Byte Integers. -// -// Forms: -// -// PABSB m128 xmm -// PABSB xmm xmm -func PABSB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPABSB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PABSD: Packed Absolute Value of Doubleword Integers. -// -// Forms: -// -// PABSD m128 xmm -// PABSD xmm xmm -func PABSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPABSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PABSW: Packed Absolute Value of Word Integers. -// -// Forms: -// -// PABSW m128 xmm -// PABSW xmm xmm -func PABSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPABSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PACKSSLW: Pack Doublewords into Words with Signed Saturation. -// -// Forms: -// -// PACKSSLW m128 xmm -// PACKSSLW xmm xmm -func PACKSSLW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPACKSSLW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PACKSSWB: Pack Words into Bytes with Signed Saturation. -// -// Forms: -// -// PACKSSWB m128 xmm -// PACKSSWB xmm xmm -func PACKSSWB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPACKSSWB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PACKUSDW: Pack Doublewords into Words with Unsigned Saturation. -// -// Forms: -// -// PACKUSDW m128 xmm -// PACKUSDW xmm xmm -func PACKUSDW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPACKUSDW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PACKUSWB: Pack Words into Bytes with Unsigned Saturation. -// -// Forms: -// -// PACKUSWB m128 xmm -// PACKUSWB xmm xmm -func PACKUSWB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPACKUSWB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PADDB: Add Packed Byte Integers. -// -// Forms: -// -// PADDB m128 xmm -// PADDB xmm xmm -func PADDB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPADDB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PADDD: Add Packed Doubleword Integers. -// -// Forms: -// -// PADDD m128 xmm -// PADDD xmm xmm -func PADDD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPADDD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PADDL: Add Packed Doubleword Integers. -// -// Forms: -// -// PADDL m128 xmm -// PADDL xmm xmm -func PADDL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPADDL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PADDQ: Add Packed Quadword Integers. -// -// Forms: -// -// PADDQ m128 xmm -// PADDQ xmm xmm -func PADDQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPADDQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PADDSB: Add Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// PADDSB m128 xmm -// PADDSB xmm xmm -func PADDSB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPADDSB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PADDSW: Add Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PADDSW m128 xmm -// PADDSW xmm xmm -func PADDSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPADDSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PADDUSB: Add Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// PADDUSB m128 xmm -// PADDUSB xmm xmm -func PADDUSB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPADDUSB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PADDUSW: Add Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// PADDUSW m128 xmm -// PADDUSW xmm xmm -func PADDUSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPADDUSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PADDW: Add Packed Word Integers. -// -// Forms: -// -// PADDW m128 xmm -// PADDW xmm xmm -func PADDW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPADDW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PALIGNR: Packed Align Right. -// -// Forms: -// -// PALIGNR imm8 m128 xmm -// PALIGNR imm8 xmm xmm -func PALIGNR(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPALIGNR.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PAND: Packed Bitwise Logical AND. -// -// Forms: -// -// PAND m128 xmm -// PAND xmm xmm -func PAND(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPAND.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PANDN: Packed Bitwise Logical AND NOT. -// -// Forms: -// -// PANDN m128 xmm -// PANDN xmm xmm -func PANDN(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPANDN.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PAUSE: Spin Loop Hint. -// -// Forms: -// -// PAUSE -func PAUSE() (*intrep.Instruction, error) { - return build(opcPAUSE.Forms(), sffxs{}, []operand.Op{}) -} - -// PAVGB: Average Packed Byte Integers. -// -// Forms: -// -// PAVGB m128 xmm -// PAVGB xmm xmm -func PAVGB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPAVGB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PAVGW: Average Packed Word Integers. -// -// Forms: -// -// PAVGW m128 xmm -// PAVGW xmm xmm -func PAVGW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPAVGW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PBLENDVB: Variable Blend Packed Bytes. -// -// Forms: -// -// PBLENDVB xmm0 m128 xmm -// PBLENDVB xmm0 xmm xmm -func PBLENDVB(x, mx, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcPBLENDVB.Forms(), sffxs{}, []operand.Op{x, mx, x1}) -} - -// PBLENDW: Blend Packed Words. -// -// Forms: -// -// PBLENDW imm8 m128 xmm -// PBLENDW imm8 xmm xmm -func PBLENDW(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPBLENDW.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PCLMULQDQ: Carry-Less Quadword Multiplication. -// -// Forms: -// -// PCLMULQDQ imm8 m128 xmm -// PCLMULQDQ imm8 xmm xmm -func PCLMULQDQ(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCLMULQDQ.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PCMPEQB: Compare Packed Byte Data for Equality. -// -// Forms: -// -// PCMPEQB m128 xmm -// PCMPEQB xmm xmm -func PCMPEQB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPEQB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PCMPEQL: Compare Packed Doubleword Data for Equality. -// -// Forms: -// -// PCMPEQL m128 xmm -// PCMPEQL xmm xmm -func PCMPEQL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPEQL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PCMPEQQ: Compare Packed Quadword Data for Equality. -// -// Forms: -// -// PCMPEQQ m128 xmm -// PCMPEQQ xmm xmm -func PCMPEQQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPEQQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PCMPEQW: Compare Packed Word Data for Equality. -// -// Forms: -// -// PCMPEQW m128 xmm -// PCMPEQW xmm xmm -func PCMPEQW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPEQW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PCMPESTRI: Packed Compare Explicit Length Strings, Return Index. -// -// Forms: -// -// PCMPESTRI imm8 m128 xmm -// PCMPESTRI imm8 xmm xmm -func PCMPESTRI(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPESTRI.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PCMPESTRM: Packed Compare Explicit Length Strings, Return Mask. -// -// Forms: -// -// PCMPESTRM imm8 m128 xmm -// PCMPESTRM imm8 xmm xmm -func PCMPESTRM(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPESTRM.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PCMPGTB: Compare Packed Signed Byte Integers for Greater Than. -// -// Forms: -// -// PCMPGTB m128 xmm -// PCMPGTB xmm xmm -func PCMPGTB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPGTB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PCMPGTL: Compare Packed Signed Doubleword Integers for Greater Than. -// -// Forms: -// -// PCMPGTL m128 xmm -// PCMPGTL xmm xmm -func PCMPGTL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPGTL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PCMPGTQ: Compare Packed Data for Greater Than. -// -// Forms: -// -// PCMPGTQ m128 xmm -// PCMPGTQ xmm xmm -func PCMPGTQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPGTQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PCMPGTW: Compare Packed Signed Word Integers for Greater Than. -// -// Forms: -// -// PCMPGTW m128 xmm -// PCMPGTW xmm xmm -func PCMPGTW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPGTW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PCMPISTRI: Packed Compare Implicit Length Strings, Return Index. -// -// Forms: -// -// PCMPISTRI imm8 m128 xmm -// PCMPISTRI imm8 xmm xmm -func PCMPISTRI(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPISTRI.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PCMPISTRM: Packed Compare Implicit Length Strings, Return Mask. -// -// Forms: -// -// PCMPISTRM imm8 m128 xmm -// PCMPISTRM imm8 xmm xmm -func PCMPISTRM(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPCMPISTRM.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PDEPL: Parallel Bits Deposit. -// -// Forms: -// -// PDEPL m32 r32 r32 -// PDEPL r32 r32 r32 -func PDEPL(mr, r, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcPDEPL.Forms(), sffxs{}, []operand.Op{mr, r, r1}) -} - -// PDEPQ: Parallel Bits Deposit. -// -// Forms: -// -// PDEPQ m64 r64 r64 -// PDEPQ r64 r64 r64 -func PDEPQ(mr, r, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcPDEPQ.Forms(), sffxs{}, []operand.Op{mr, r, r1}) -} - -// PEXTL: Parallel Bits Extract. -// -// Forms: -// -// PEXTL m32 r32 r32 -// PEXTL r32 r32 r32 -func PEXTL(mr, r, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcPEXTL.Forms(), sffxs{}, []operand.Op{mr, r, r1}) -} - -// PEXTQ: Parallel Bits Extract. -// -// Forms: -// -// PEXTQ m64 r64 r64 -// PEXTQ r64 r64 r64 -func PEXTQ(mr, r, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcPEXTQ.Forms(), sffxs{}, []operand.Op{mr, r, r1}) -} - -// PEXTRB: Extract Byte. -// -// Forms: -// -// PEXTRB imm8 xmm m8 -// PEXTRB imm8 xmm r32 -func PEXTRB(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcPEXTRB.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// PEXTRD: Extract Doubleword. -// -// Forms: -// -// PEXTRD imm8 xmm m32 -// PEXTRD imm8 xmm r32 -func PEXTRD(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcPEXTRD.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// PEXTRQ: Extract Quadword. -// -// Forms: -// -// PEXTRQ imm8 xmm m64 -// PEXTRQ imm8 xmm r64 -func PEXTRQ(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcPEXTRQ.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// PEXTRW: Extract Word. -// -// Forms: -// -// PEXTRW imm8 xmm m16 -// PEXTRW imm8 xmm r32 -func PEXTRW(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcPEXTRW.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// PHADDD: Packed Horizontal Add Doubleword Integer. -// -// Forms: -// -// PHADDD m128 xmm -// PHADDD xmm xmm -func PHADDD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPHADDD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PHADDSW: Packed Horizontal Add Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PHADDSW m128 xmm -// PHADDSW xmm xmm -func PHADDSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPHADDSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PHADDW: Packed Horizontal Add Word Integers. -// -// Forms: -// -// PHADDW m128 xmm -// PHADDW xmm xmm -func PHADDW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPHADDW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PHMINPOSUW: Packed Horizontal Minimum of Unsigned Word Integers. -// -// Forms: -// -// PHMINPOSUW m128 xmm -// PHMINPOSUW xmm xmm -func PHMINPOSUW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPHMINPOSUW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PHSUBD: Packed Horizontal Subtract Doubleword Integers. -// -// Forms: -// -// PHSUBD m128 xmm -// PHSUBD xmm xmm -func PHSUBD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPHSUBD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PHSUBSW: Packed Horizontal Subtract Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PHSUBSW m128 xmm -// PHSUBSW xmm xmm -func PHSUBSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPHSUBSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PHSUBW: Packed Horizontal Subtract Word Integers. -// -// Forms: -// -// PHSUBW m128 xmm -// PHSUBW xmm xmm -func PHSUBW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPHSUBW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PINSRB: Insert Byte. -// -// Forms: -// -// PINSRB imm8 m8 xmm -// PINSRB imm8 r32 xmm -func PINSRB(i, mr, x operand.Op) (*intrep.Instruction, error) { - return build(opcPINSRB.Forms(), sffxs{}, []operand.Op{i, mr, x}) -} - -// PINSRD: Insert Doubleword. -// -// Forms: -// -// PINSRD imm8 m32 xmm -// PINSRD imm8 r32 xmm -func PINSRD(i, mr, x operand.Op) (*intrep.Instruction, error) { - return build(opcPINSRD.Forms(), sffxs{}, []operand.Op{i, mr, x}) -} - -// PINSRQ: Insert Quadword. -// -// Forms: -// -// PINSRQ imm8 m64 xmm -// PINSRQ imm8 r64 xmm -func PINSRQ(i, mr, x operand.Op) (*intrep.Instruction, error) { - return build(opcPINSRQ.Forms(), sffxs{}, []operand.Op{i, mr, x}) -} - -// PINSRW: Insert Word. -// -// Forms: -// -// PINSRW imm8 m16 xmm -// PINSRW imm8 r32 xmm -func PINSRW(i, mr, x operand.Op) (*intrep.Instruction, error) { - return build(opcPINSRW.Forms(), sffxs{}, []operand.Op{i, mr, x}) -} - -// PMADDUBSW: Multiply and Add Packed Signed and Unsigned Byte Integers. -// -// Forms: -// -// PMADDUBSW m128 xmm -// PMADDUBSW xmm xmm -func PMADDUBSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMADDUBSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMADDWL: Multiply and Add Packed Signed Word Integers. -// -// Forms: -// -// PMADDWL m128 xmm -// PMADDWL xmm xmm -func PMADDWL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMADDWL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMAXSB: Maximum of Packed Signed Byte Integers. -// -// Forms: -// -// PMAXSB m128 xmm -// PMAXSB xmm xmm -func PMAXSB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMAXSB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMAXSD: Maximum of Packed Signed Doubleword Integers. -// -// Forms: -// -// PMAXSD m128 xmm -// PMAXSD xmm xmm -func PMAXSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMAXSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMAXSW: Maximum of Packed Signed Word Integers. -// -// Forms: -// -// PMAXSW m128 xmm -// PMAXSW xmm xmm -func PMAXSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMAXSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMAXUB: Maximum of Packed Unsigned Byte Integers. -// -// Forms: -// -// PMAXUB m128 xmm -// PMAXUB xmm xmm -func PMAXUB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMAXUB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMAXUD: Maximum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// PMAXUD m128 xmm -// PMAXUD xmm xmm -func PMAXUD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMAXUD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMAXUW: Maximum of Packed Unsigned Word Integers. -// -// Forms: -// -// PMAXUW m128 xmm -// PMAXUW xmm xmm -func PMAXUW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMAXUW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMINSB: Minimum of Packed Signed Byte Integers. -// -// Forms: -// -// PMINSB m128 xmm -// PMINSB xmm xmm -func PMINSB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMINSB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMINSD: Minimum of Packed Signed Doubleword Integers. -// -// Forms: -// -// PMINSD m128 xmm -// PMINSD xmm xmm -func PMINSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMINSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMINSW: Minimum of Packed Signed Word Integers. -// -// Forms: -// -// PMINSW m128 xmm -// PMINSW xmm xmm -func PMINSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMINSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMINUB: Minimum of Packed Unsigned Byte Integers. -// -// Forms: -// -// PMINUB m128 xmm -// PMINUB xmm xmm -func PMINUB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMINUB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMINUD: Minimum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// PMINUD m128 xmm -// PMINUD xmm xmm -func PMINUD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMINUD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMINUW: Minimum of Packed Unsigned Word Integers. -// -// Forms: -// -// PMINUW m128 xmm -// PMINUW xmm xmm -func PMINUW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMINUW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVMSKB: Move Byte Mask. -// -// Forms: -// -// PMOVMSKB xmm r32 -func PMOVMSKB(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVMSKB.Forms(), sffxs{}, []operand.Op{x, r}) -} - -// PMOVSXBD: Move Packed Byte Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXBD m32 xmm -// PMOVSXBD xmm xmm -func PMOVSXBD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVSXBD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVSXBQ: Move Packed Byte Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXBQ m16 xmm -// PMOVSXBQ xmm xmm -func PMOVSXBQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVSXBQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVSXBW: Move Packed Byte Integers to Word Integers with Sign Extension. -// -// Forms: -// -// PMOVSXBW m64 xmm -// PMOVSXBW xmm xmm -func PMOVSXBW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVSXBW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVSXDQ: Move Packed Doubleword Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXDQ m64 xmm -// PMOVSXDQ xmm xmm -func PMOVSXDQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVSXDQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVSXWD: Move Packed Word Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXWD m64 xmm -// PMOVSXWD xmm xmm -func PMOVSXWD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVSXWD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVSXWQ: Move Packed Word Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// PMOVSXWQ m32 xmm -// PMOVSXWQ xmm xmm -func PMOVSXWQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVSXWQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVZXBD: Move Packed Byte Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXBD m32 xmm -// PMOVZXBD xmm xmm -func PMOVZXBD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVZXBD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVZXBQ: Move Packed Byte Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXBQ m16 xmm -// PMOVZXBQ xmm xmm -func PMOVZXBQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVZXBQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVZXBW: Move Packed Byte Integers to Word Integers with Zero Extension. -// -// Forms: -// -// PMOVZXBW m64 xmm -// PMOVZXBW xmm xmm -func PMOVZXBW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVZXBW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVZXDQ: Move Packed Doubleword Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXDQ m64 xmm -// PMOVZXDQ xmm xmm -func PMOVZXDQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVZXDQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVZXWD: Move Packed Word Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXWD m64 xmm -// PMOVZXWD xmm xmm -func PMOVZXWD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVZXWD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMOVZXWQ: Move Packed Word Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// PMOVZXWQ m32 xmm -// PMOVZXWQ xmm xmm -func PMOVZXWQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMOVZXWQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMULDQ: Multiply Packed Signed Doubleword Integers and Store Quadword Result. -// -// Forms: -// -// PMULDQ m128 xmm -// PMULDQ xmm xmm -func PMULDQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMULDQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMULHRSW: Packed Multiply Signed Word Integers and Store High Result with Round and Scale. -// -// Forms: -// -// PMULHRSW m128 xmm -// PMULHRSW xmm xmm -func PMULHRSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMULHRSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMULHUW: Multiply Packed Unsigned Word Integers and Store High Result. -// -// Forms: -// -// PMULHUW m128 xmm -// PMULHUW xmm xmm -func PMULHUW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMULHUW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMULHW: Multiply Packed Signed Word Integers and Store High Result. -// -// Forms: -// -// PMULHW m128 xmm -// PMULHW xmm xmm -func PMULHW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMULHW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMULLD: Multiply Packed Signed Doubleword Integers and Store Low Result. -// -// Forms: -// -// PMULLD m128 xmm -// PMULLD xmm xmm -func PMULLD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMULLD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMULLW: Multiply Packed Signed Word Integers and Store Low Result. -// -// Forms: -// -// PMULLW m128 xmm -// PMULLW xmm xmm -func PMULLW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMULLW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PMULULQ: Multiply Packed Unsigned Doubleword Integers. -// -// Forms: -// -// PMULULQ m128 xmm -// PMULULQ xmm xmm -func PMULULQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPMULULQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// POPCNTL: Count of Number of Bits Set to 1. -// -// Forms: -// -// POPCNTL m32 r32 -// POPCNTL r32 r32 -func POPCNTL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcPOPCNTL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// POPCNTQ: Count of Number of Bits Set to 1. -// -// Forms: -// -// POPCNTQ m64 r64 -// POPCNTQ r64 r64 -func POPCNTQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcPOPCNTQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// POPCNTW: Count of Number of Bits Set to 1. -// -// Forms: -// -// POPCNTW m16 r16 -// POPCNTW r16 r16 -func POPCNTW(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcPOPCNTW.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// POPQ: Pop a Value from the Stack. -// -// Forms: -// -// POPQ m64 -// POPQ r64 -func POPQ(mr operand.Op) (*intrep.Instruction, error) { - return build(opcPOPQ.Forms(), sffxs{}, []operand.Op{mr}) -} - -// POPW: Pop a Value from the Stack. -// -// Forms: -// -// POPW m16 -// POPW r16 -func POPW(mr operand.Op) (*intrep.Instruction, error) { - return build(opcPOPW.Forms(), sffxs{}, []operand.Op{mr}) -} - -// POR: Packed Bitwise Logical OR. -// -// Forms: -// -// POR m128 xmm -// POR xmm xmm -func POR(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPOR.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PREFETCHNTA: Prefetch Data Into Caches using NTA Hint. -// -// Forms: -// -// PREFETCHNTA m8 -func PREFETCHNTA(m operand.Op) (*intrep.Instruction, error) { - return build(opcPREFETCHNTA.Forms(), sffxs{}, []operand.Op{m}) -} - -// PREFETCHT0: Prefetch Data Into Caches using T0 Hint. -// -// Forms: -// -// PREFETCHT0 m8 -func PREFETCHT0(m operand.Op) (*intrep.Instruction, error) { - return build(opcPREFETCHT0.Forms(), sffxs{}, []operand.Op{m}) -} - -// PREFETCHT1: Prefetch Data Into Caches using T1 Hint. -// -// Forms: -// -// PREFETCHT1 m8 -func PREFETCHT1(m operand.Op) (*intrep.Instruction, error) { - return build(opcPREFETCHT1.Forms(), sffxs{}, []operand.Op{m}) -} - -// PREFETCHT2: Prefetch Data Into Caches using T2 Hint. -// -// Forms: -// -// PREFETCHT2 m8 -func PREFETCHT2(m operand.Op) (*intrep.Instruction, error) { - return build(opcPREFETCHT2.Forms(), sffxs{}, []operand.Op{m}) -} - -// PSADBW: Compute Sum of Absolute Differences. -// -// Forms: -// -// PSADBW m128 xmm -// PSADBW xmm xmm -func PSADBW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSADBW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSHUFB: Packed Shuffle Bytes. -// -// Forms: -// -// PSHUFB m128 xmm -// PSHUFB xmm xmm -func PSHUFB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSHUFB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSHUFD: Shuffle Packed Doublewords. -// -// Forms: -// -// PSHUFD imm8 m128 xmm -// PSHUFD imm8 xmm xmm -func PSHUFD(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSHUFD.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PSHUFHW: Shuffle Packed High Words. -// -// Forms: -// -// PSHUFHW imm8 m128 xmm -// PSHUFHW imm8 xmm xmm -func PSHUFHW(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSHUFHW.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PSHUFL: Shuffle Packed Doublewords. -// -// Forms: -// -// PSHUFL imm8 m128 xmm -// PSHUFL imm8 xmm xmm -func PSHUFL(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSHUFL.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PSHUFLW: Shuffle Packed Low Words. -// -// Forms: -// -// PSHUFLW imm8 m128 xmm -// PSHUFLW imm8 xmm xmm -func PSHUFLW(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSHUFLW.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// PSIGNB: Packed Sign of Byte Integers. -// -// Forms: -// -// PSIGNB m128 xmm -// PSIGNB xmm xmm -func PSIGNB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSIGNB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSIGND: Packed Sign of Doubleword Integers. -// -// Forms: -// -// PSIGND m128 xmm -// PSIGND xmm xmm -func PSIGND(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSIGND.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSIGNW: Packed Sign of Word Integers. -// -// Forms: -// -// PSIGNW m128 xmm -// PSIGNW xmm xmm -func PSIGNW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSIGNW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSLLDQ: Shift Packed Double Quadword Left Logical. -// -// Forms: -// -// PSLLDQ imm8 xmm -func PSLLDQ(i, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSLLDQ.Forms(), sffxs{}, []operand.Op{i, x}) -} - -// PSLLL: Shift Packed Doubleword Data Left Logical. -// -// Forms: -// -// PSLLL imm8 xmm -// PSLLL m128 xmm -// PSLLL xmm xmm -func PSLLL(imx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSLLL.Forms(), sffxs{}, []operand.Op{imx, x}) -} - -// PSLLO: Shift Packed Double Quadword Left Logical. -// -// Forms: -// -// PSLLO imm8 xmm -func PSLLO(i, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSLLO.Forms(), sffxs{}, []operand.Op{i, x}) -} - -// PSLLQ: Shift Packed Quadword Data Left Logical. -// -// Forms: -// -// PSLLQ imm8 xmm -// PSLLQ m128 xmm -// PSLLQ xmm xmm -func PSLLQ(imx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSLLQ.Forms(), sffxs{}, []operand.Op{imx, x}) -} - -// PSLLW: Shift Packed Word Data Left Logical. -// -// Forms: -// -// PSLLW imm8 xmm -// PSLLW m128 xmm -// PSLLW xmm xmm -func PSLLW(imx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSLLW.Forms(), sffxs{}, []operand.Op{imx, x}) -} - -// PSRAL: Shift Packed Doubleword Data Right Arithmetic. -// -// Forms: -// -// PSRAL imm8 xmm -// PSRAL m128 xmm -// PSRAL xmm xmm -func PSRAL(imx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSRAL.Forms(), sffxs{}, []operand.Op{imx, x}) -} - -// PSRAW: Shift Packed Word Data Right Arithmetic. -// -// Forms: -// -// PSRAW imm8 xmm -// PSRAW m128 xmm -// PSRAW xmm xmm -func PSRAW(imx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSRAW.Forms(), sffxs{}, []operand.Op{imx, x}) -} - -// PSRLDQ: Shift Packed Double Quadword Right Logical. -// -// Forms: -// -// PSRLDQ imm8 xmm -func PSRLDQ(i, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSRLDQ.Forms(), sffxs{}, []operand.Op{i, x}) -} - -// PSRLL: Shift Packed Doubleword Data Right Logical. -// -// Forms: -// -// PSRLL imm8 xmm -// PSRLL m128 xmm -// PSRLL xmm xmm -func PSRLL(imx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSRLL.Forms(), sffxs{}, []operand.Op{imx, x}) -} - -// PSRLO: Shift Packed Double Quadword Right Logical. -// -// Forms: -// -// PSRLO imm8 xmm -func PSRLO(i, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSRLO.Forms(), sffxs{}, []operand.Op{i, x}) -} - -// PSRLQ: Shift Packed Quadword Data Right Logical. -// -// Forms: -// -// PSRLQ imm8 xmm -// PSRLQ m128 xmm -// PSRLQ xmm xmm -func PSRLQ(imx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSRLQ.Forms(), sffxs{}, []operand.Op{imx, x}) -} - -// PSRLW: Shift Packed Word Data Right Logical. -// -// Forms: -// -// PSRLW imm8 xmm -// PSRLW m128 xmm -// PSRLW xmm xmm -func PSRLW(imx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSRLW.Forms(), sffxs{}, []operand.Op{imx, x}) -} - -// PSUBB: Subtract Packed Byte Integers. -// -// Forms: -// -// PSUBB m128 xmm -// PSUBB xmm xmm -func PSUBB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSUBB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSUBL: Subtract Packed Doubleword Integers. -// -// Forms: -// -// PSUBL m128 xmm -// PSUBL xmm xmm -func PSUBL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSUBL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSUBQ: Subtract Packed Quadword Integers. -// -// Forms: -// -// PSUBQ m128 xmm -// PSUBQ xmm xmm -func PSUBQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSUBQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSUBSB: Subtract Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// PSUBSB m128 xmm -// PSUBSB xmm xmm -func PSUBSB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSUBSB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSUBSW: Subtract Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// PSUBSW m128 xmm -// PSUBSW xmm xmm -func PSUBSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSUBSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSUBUSB: Subtract Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// PSUBUSB m128 xmm -// PSUBUSB xmm xmm -func PSUBUSB(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSUBUSB.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSUBUSW: Subtract Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// PSUBUSW m128 xmm -// PSUBUSW xmm xmm -func PSUBUSW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSUBUSW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PSUBW: Subtract Packed Word Integers. -// -// Forms: -// -// PSUBW m128 xmm -// PSUBW xmm xmm -func PSUBW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPSUBW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PTEST: Packed Logical Compare. -// -// Forms: -// -// PTEST m128 xmm -// PTEST xmm xmm -func PTEST(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPTEST.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PUNPCKHBW: Unpack and Interleave High-Order Bytes into Words. -// -// Forms: -// -// PUNPCKHBW m128 xmm -// PUNPCKHBW xmm xmm -func PUNPCKHBW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPUNPCKHBW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PUNPCKHLQ: Unpack and Interleave High-Order Doublewords into Quadwords. -// -// Forms: -// -// PUNPCKHLQ m128 xmm -// PUNPCKHLQ xmm xmm -func PUNPCKHLQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPUNPCKHLQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PUNPCKHQDQ: Unpack and Interleave High-Order Quadwords into Double Quadwords. -// -// Forms: -// -// PUNPCKHQDQ m128 xmm -// PUNPCKHQDQ xmm xmm -func PUNPCKHQDQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPUNPCKHQDQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PUNPCKHWL: Unpack and Interleave High-Order Words into Doublewords. -// -// Forms: -// -// PUNPCKHWL m128 xmm -// PUNPCKHWL xmm xmm -func PUNPCKHWL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPUNPCKHWL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PUNPCKLBW: Unpack and Interleave Low-Order Bytes into Words. -// -// Forms: -// -// PUNPCKLBW m128 xmm -// PUNPCKLBW xmm xmm -func PUNPCKLBW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPUNPCKLBW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PUNPCKLLQ: Unpack and Interleave Low-Order Doublewords into Quadwords. -// -// Forms: -// -// PUNPCKLLQ m128 xmm -// PUNPCKLLQ xmm xmm -func PUNPCKLLQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPUNPCKLLQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PUNPCKLQDQ: Unpack and Interleave Low-Order Quadwords into Double Quadwords. -// -// Forms: -// -// PUNPCKLQDQ m128 xmm -// PUNPCKLQDQ xmm xmm -func PUNPCKLQDQ(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPUNPCKLQDQ.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PUNPCKLWL: Unpack and Interleave Low-Order Words into Doublewords. -// -// Forms: -// -// PUNPCKLWL m128 xmm -// PUNPCKLWL xmm xmm -func PUNPCKLWL(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPUNPCKLWL.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// PUSHQ: Push Value Onto the Stack. -// -// Forms: -// -// PUSHQ imm32 -// PUSHQ imm8 -// PUSHQ m64 -// PUSHQ r64 -func PUSHQ(imr operand.Op) (*intrep.Instruction, error) { - return build(opcPUSHQ.Forms(), sffxs{}, []operand.Op{imr}) -} - -// PUSHW: Push Value Onto the Stack. -// -// Forms: -// -// PUSHW m16 -// PUSHW r16 -func PUSHW(mr operand.Op) (*intrep.Instruction, error) { - return build(opcPUSHW.Forms(), sffxs{}, []operand.Op{mr}) -} - -// PXOR: Packed Bitwise Logical Exclusive OR. -// -// Forms: -// -// PXOR m128 xmm -// PXOR xmm xmm -func PXOR(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcPXOR.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// RCLB: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLB 1 m8 -// RCLB 1 r8 -// RCLB cl m8 -// RCLB cl r8 -// RCLB imm8 m8 -// RCLB imm8 r8 -func RCLB(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRCLB.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RCLL: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLL 1 m32 -// RCLL 1 r32 -// RCLL cl m32 -// RCLL cl r32 -// RCLL imm8 m32 -// RCLL imm8 r32 -func RCLL(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRCLL.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RCLQ: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLQ 1 m64 -// RCLQ 1 r64 -// RCLQ cl m64 -// RCLQ cl r64 -// RCLQ imm8 m64 -// RCLQ imm8 r64 -func RCLQ(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRCLQ.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RCLW: Rotate Left through Carry Flag. -// -// Forms: -// -// RCLW 1 m16 -// RCLW 1 r16 -// RCLW cl m16 -// RCLW cl r16 -// RCLW imm8 m16 -// RCLW imm8 r16 -func RCLW(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRCLW.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RCPPS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// RCPPS m128 xmm -// RCPPS xmm xmm -func RCPPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcRCPPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// RCPSS: Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// RCPSS m32 xmm -// RCPSS xmm xmm -func RCPSS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcRCPSS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// RCRB: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRB 1 m8 -// RCRB 1 r8 -// RCRB cl m8 -// RCRB cl r8 -// RCRB imm8 m8 -// RCRB imm8 r8 -func RCRB(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRCRB.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RCRL: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRL 1 m32 -// RCRL 1 r32 -// RCRL cl m32 -// RCRL cl r32 -// RCRL imm8 m32 -// RCRL imm8 r32 -func RCRL(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRCRL.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RCRQ: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRQ 1 m64 -// RCRQ 1 r64 -// RCRQ cl m64 -// RCRQ cl r64 -// RCRQ imm8 m64 -// RCRQ imm8 r64 -func RCRQ(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRCRQ.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RCRW: Rotate Right through Carry Flag. -// -// Forms: -// -// RCRW 1 m16 -// RCRW 1 r16 -// RCRW cl m16 -// RCRW cl r16 -// RCRW imm8 m16 -// RCRW imm8 r16 -func RCRW(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRCRW.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RDRANDL: Read Random Number. -// -// Forms: -// -// RDRANDL r16 -// RDRANDL r32 -// RDRANDL r64 -func RDRANDL(r operand.Op) (*intrep.Instruction, error) { - return build(opcRDRANDL.Forms(), sffxs{}, []operand.Op{r}) -} - -// RDSEEDL: Read Random SEED. -// -// Forms: -// -// RDSEEDL r16 -// RDSEEDL r32 -// RDSEEDL r64 -func RDSEEDL(r operand.Op) (*intrep.Instruction, error) { - return build(opcRDSEEDL.Forms(), sffxs{}, []operand.Op{r}) -} - -// RDTSC: Read Time-Stamp Counter. -// -// Forms: -// -// RDTSC -func RDTSC() (*intrep.Instruction, error) { - return build(opcRDTSC.Forms(), sffxs{}, []operand.Op{}) -} - -// RDTSCP: Read Time-Stamp Counter and Processor ID. -// -// Forms: -// -// RDTSCP -func RDTSCP() (*intrep.Instruction, error) { - return build(opcRDTSCP.Forms(), sffxs{}, []operand.Op{}) -} - -// RET: Return from Procedure. -// -// Forms: -// -// RET -func RET() (*intrep.Instruction, error) { - return build(opcRET.Forms(), sffxs{}, []operand.Op{}) -} - -// RETFL: Return from Procedure. -// -// Forms: -// -// RETFL imm16 -func RETFL(i operand.Op) (*intrep.Instruction, error) { - return build(opcRETFL.Forms(), sffxs{}, []operand.Op{i}) -} - -// RETFQ: Return from Procedure. -// -// Forms: -// -// RETFQ imm16 -func RETFQ(i operand.Op) (*intrep.Instruction, error) { - return build(opcRETFQ.Forms(), sffxs{}, []operand.Op{i}) -} - -// RETFW: Return from Procedure. -// -// Forms: -// -// RETFW imm16 -func RETFW(i operand.Op) (*intrep.Instruction, error) { - return build(opcRETFW.Forms(), sffxs{}, []operand.Op{i}) -} - -// ROLB: Rotate Left. -// -// Forms: -// -// ROLB 1 m8 -// ROLB 1 r8 -// ROLB cl m8 -// ROLB cl r8 -// ROLB imm8 m8 -// ROLB imm8 r8 -func ROLB(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcROLB.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// ROLL: Rotate Left. -// -// Forms: -// -// ROLL 1 m32 -// ROLL 1 r32 -// ROLL cl m32 -// ROLL cl r32 -// ROLL imm8 m32 -// ROLL imm8 r32 -func ROLL(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcROLL.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// ROLQ: Rotate Left. -// -// Forms: -// -// ROLQ 1 m64 -// ROLQ 1 r64 -// ROLQ cl m64 -// ROLQ cl r64 -// ROLQ imm8 m64 -// ROLQ imm8 r64 -func ROLQ(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcROLQ.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// ROLW: Rotate Left. -// -// Forms: -// -// ROLW 1 m16 -// ROLW 1 r16 -// ROLW cl m16 -// ROLW cl r16 -// ROLW imm8 m16 -// ROLW imm8 r16 -func ROLW(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcROLW.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RORB: Rotate Right. -// -// Forms: -// -// RORB 1 m8 -// RORB 1 r8 -// RORB cl m8 -// RORB cl r8 -// RORB imm8 m8 -// RORB imm8 r8 -func RORB(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRORB.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RORL: Rotate Right. -// -// Forms: -// -// RORL 1 m32 -// RORL 1 r32 -// RORL cl m32 -// RORL cl r32 -// RORL imm8 m32 -// RORL imm8 r32 -func RORL(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRORL.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RORQ: Rotate Right. -// -// Forms: -// -// RORQ 1 m64 -// RORQ 1 r64 -// RORQ cl m64 -// RORQ cl r64 -// RORQ imm8 m64 -// RORQ imm8 r64 -func RORQ(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRORQ.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RORW: Rotate Right. -// -// Forms: -// -// RORW 1 m16 -// RORW 1 r16 -// RORW cl m16 -// RORW cl r16 -// RORW imm8 m16 -// RORW imm8 r16 -func RORW(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcRORW.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// RORXL: Rotate Right Logical Without Affecting Flags. -// -// Forms: -// -// RORXL imm8 m32 r32 -// RORXL imm8 r32 r32 -func RORXL(i, mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcRORXL.Forms(), sffxs{}, []operand.Op{i, mr, r}) -} - -// RORXQ: Rotate Right Logical Without Affecting Flags. -// -// Forms: -// -// RORXQ imm8 m64 r64 -// RORXQ imm8 r64 r64 -func RORXQ(i, mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcRORXQ.Forms(), sffxs{}, []operand.Op{i, mr, r}) -} - -// ROUNDPD: Round Packed Double Precision Floating-Point Values. -// -// Forms: -// -// ROUNDPD imm8 m128 xmm -// ROUNDPD imm8 xmm xmm -func ROUNDPD(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcROUNDPD.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// ROUNDPS: Round Packed Single Precision Floating-Point Values. -// -// Forms: -// -// ROUNDPS imm8 m128 xmm -// ROUNDPS imm8 xmm xmm -func ROUNDPS(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcROUNDPS.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// ROUNDSD: Round Scalar Double Precision Floating-Point Values. -// -// Forms: -// -// ROUNDSD imm8 m64 xmm -// ROUNDSD imm8 xmm xmm -func ROUNDSD(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcROUNDSD.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// ROUNDSS: Round Scalar Single Precision Floating-Point Values. -// -// Forms: -// -// ROUNDSS imm8 m32 xmm -// ROUNDSS imm8 xmm xmm -func ROUNDSS(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcROUNDSS.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// RSQRTPS: Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// RSQRTPS m128 xmm -// RSQRTPS xmm xmm -func RSQRTPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcRSQRTPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// RSQRTSS: Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// RSQRTSS m32 xmm -// RSQRTSS xmm xmm -func RSQRTSS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcRSQRTSS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SALB: Arithmetic Shift Left. -// -// Forms: -// -// SALB 1 m8 -// SALB 1 r8 -// SALB cl m8 -// SALB cl r8 -// SALB imm8 m8 -// SALB imm8 r8 -func SALB(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSALB.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SALL: Arithmetic Shift Left. -// -// Forms: -// -// SALL 1 m32 -// SALL 1 r32 -// SALL cl m32 -// SALL cl r32 -// SALL imm8 m32 -// SALL imm8 r32 -func SALL(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSALL.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SALQ: Arithmetic Shift Left. -// -// Forms: -// -// SALQ 1 m64 -// SALQ 1 r64 -// SALQ cl m64 -// SALQ cl r64 -// SALQ imm8 m64 -// SALQ imm8 r64 -func SALQ(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSALQ.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SALW: Arithmetic Shift Left. -// -// Forms: -// -// SALW 1 m16 -// SALW 1 r16 -// SALW cl m16 -// SALW cl r16 -// SALW imm8 m16 -// SALW imm8 r16 -func SALW(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSALW.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SARB: Arithmetic Shift Right. -// -// Forms: -// -// SARB 1 m8 -// SARB 1 r8 -// SARB cl m8 -// SARB cl r8 -// SARB imm8 m8 -// SARB imm8 r8 -func SARB(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSARB.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SARL: Arithmetic Shift Right. -// -// Forms: -// -// SARL 1 m32 -// SARL 1 r32 -// SARL cl m32 -// SARL cl r32 -// SARL imm8 m32 -// SARL imm8 r32 -func SARL(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSARL.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SARQ: Arithmetic Shift Right. -// -// Forms: -// -// SARQ 1 m64 -// SARQ 1 r64 -// SARQ cl m64 -// SARQ cl r64 -// SARQ imm8 m64 -// SARQ imm8 r64 -func SARQ(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSARQ.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SARW: Arithmetic Shift Right. -// -// Forms: -// -// SARW 1 m16 -// SARW 1 r16 -// SARW cl m16 -// SARW cl r16 -// SARW imm8 m16 -// SARW imm8 r16 -func SARW(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSARW.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SARXL: Arithmetic Shift Right Without Affecting Flags. -// -// Forms: -// -// SARXL r32 m32 r32 -// SARXL r32 r32 r32 -func SARXL(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcSARXL.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// SARXQ: Arithmetic Shift Right Without Affecting Flags. -// -// Forms: -// -// SARXQ r64 m64 r64 -// SARXQ r64 r64 r64 -func SARXQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcSARXQ.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// SBBB: Subtract with Borrow. -// -// Forms: -// -// SBBB imm8 al -// SBBB imm8 m8 -// SBBB imm8 r8 -// SBBB m8 r8 -// SBBB r8 m8 -// SBBB r8 r8 -func SBBB(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcSBBB.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// SBBL: Subtract with Borrow. -// -// Forms: -// -// SBBL imm32 eax -// SBBL imm32 m32 -// SBBL imm32 r32 -// SBBL imm8 m32 -// SBBL imm8 r32 -// SBBL m32 r32 -// SBBL r32 m32 -// SBBL r32 r32 -func SBBL(imr, emr operand.Op) (*intrep.Instruction, error) { - return build(opcSBBL.Forms(), sffxs{}, []operand.Op{imr, emr}) -} - -// SBBQ: Subtract with Borrow. -// -// Forms: -// -// SBBQ imm32 m64 -// SBBQ imm32 r64 -// SBBQ imm32 rax -// SBBQ imm8 m64 -// SBBQ imm8 r64 -// SBBQ m64 r64 -// SBBQ r64 m64 -// SBBQ r64 r64 -func SBBQ(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSBBQ.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// SBBW: Subtract with Borrow. -// -// Forms: -// -// SBBW imm16 ax -// SBBW imm16 m16 -// SBBW imm16 r16 -// SBBW imm8 m16 -// SBBW imm8 r16 -// SBBW m16 r16 -// SBBW r16 m16 -// SBBW r16 r16 -func SBBW(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcSBBW.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// SETCC: Set byte if above or equal (CF == 0). -// -// Forms: -// -// SETCC m8 -// SETCC r8 -func SETCC(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETCC.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETCS: Set byte if below (CF == 1). -// -// Forms: -// -// SETCS m8 -// SETCS r8 -func SETCS(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETCS.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETEQ: Set byte if equal (ZF == 1). -// -// Forms: -// -// SETEQ m8 -// SETEQ r8 -func SETEQ(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETEQ.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETGE: Set byte if greater or equal (SF == OF). -// -// Forms: -// -// SETGE m8 -// SETGE r8 -func SETGE(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETGE.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETGT: Set byte if greater (ZF == 0 and SF == OF). -// -// Forms: -// -// SETGT m8 -// SETGT r8 -func SETGT(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETGT.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETHI: Set byte if above (CF == 0 and ZF == 0). -// -// Forms: -// -// SETHI m8 -// SETHI r8 -func SETHI(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETHI.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETLE: Set byte if less or equal (ZF == 1 or SF != OF). -// -// Forms: -// -// SETLE m8 -// SETLE r8 -func SETLE(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETLE.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETLS: Set byte if below or equal (CF == 1 or ZF == 1). -// -// Forms: -// -// SETLS m8 -// SETLS r8 -func SETLS(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETLS.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETLT: Set byte if less (SF != OF). -// -// Forms: -// -// SETLT m8 -// SETLT r8 -func SETLT(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETLT.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETMI: Set byte if sign (SF == 1). -// -// Forms: -// -// SETMI m8 -// SETMI r8 -func SETMI(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETMI.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETNE: Set byte if not equal (ZF == 0). -// -// Forms: -// -// SETNE m8 -// SETNE r8 -func SETNE(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETNE.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETOC: Set byte if not overflow (OF == 0). -// -// Forms: -// -// SETOC m8 -// SETOC r8 -func SETOC(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETOC.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETOS: Set byte if overflow (OF == 1). -// -// Forms: -// -// SETOS m8 -// SETOS r8 -func SETOS(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETOS.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETPC: Set byte if not parity (PF == 0). -// -// Forms: -// -// SETPC m8 -// SETPC r8 -func SETPC(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETPC.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETPL: Set byte if not sign (SF == 0). -// -// Forms: -// -// SETPL m8 -// SETPL r8 -func SETPL(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETPL.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SETPS: Set byte if parity (PF == 1). -// -// Forms: -// -// SETPS m8 -// SETPS r8 -func SETPS(mr operand.Op) (*intrep.Instruction, error) { - return build(opcSETPS.Forms(), sffxs{}, []operand.Op{mr}) -} - -// SFENCE: Store Fence. -// -// Forms: -// -// SFENCE -func SFENCE() (*intrep.Instruction, error) { - return build(opcSFENCE.Forms(), sffxs{}, []operand.Op{}) -} - -// SHA1MSG1: Perform an Intermediate Calculation for the Next Four SHA1 Message Doublewords. -// -// Forms: -// -// SHA1MSG1 m128 xmm -// SHA1MSG1 xmm xmm -func SHA1MSG1(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSHA1MSG1.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SHA1MSG2: Perform a Final Calculation for the Next Four SHA1 Message Doublewords. -// -// Forms: -// -// SHA1MSG2 m128 xmm -// SHA1MSG2 xmm xmm -func SHA1MSG2(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSHA1MSG2.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SHA1NEXTE: Calculate SHA1 State Variable E after Four Rounds. -// -// Forms: -// -// SHA1NEXTE m128 xmm -// SHA1NEXTE xmm xmm -func SHA1NEXTE(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSHA1NEXTE.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SHA1RNDS4: Perform Four Rounds of SHA1 Operation. -// -// Forms: -// -// SHA1RNDS4 imm2u m128 xmm -// SHA1RNDS4 imm2u xmm xmm -func SHA1RNDS4(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSHA1RNDS4.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// SHA256MSG1: Perform an Intermediate Calculation for the Next Four SHA256 Message Doublewords. -// -// Forms: -// -// SHA256MSG1 m128 xmm -// SHA256MSG1 xmm xmm -func SHA256MSG1(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSHA256MSG1.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SHA256MSG2: Perform a Final Calculation for the Next Four SHA256 Message Doublewords. -// -// Forms: -// -// SHA256MSG2 m128 xmm -// SHA256MSG2 xmm xmm -func SHA256MSG2(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSHA256MSG2.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SHA256RNDS2: Perform Two Rounds of SHA256 Operation. -// -// Forms: -// -// SHA256RNDS2 xmm0 m128 xmm -// SHA256RNDS2 xmm0 xmm xmm -func SHA256RNDS2(x, mx, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcSHA256RNDS2.Forms(), sffxs{}, []operand.Op{x, mx, x1}) -} - -// SHLB: Logical Shift Left. -// -// Forms: -// -// SHLB 1 m8 -// SHLB 1 r8 -// SHLB cl m8 -// SHLB cl r8 -// SHLB imm8 m8 -// SHLB imm8 r8 -func SHLB(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSHLB.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SHLL: Logical Shift Left. -// -// Forms: -// -// SHLL 1 m32 -// SHLL 1 r32 -// SHLL cl m32 -// SHLL cl r32 -// SHLL cl r32 m32 -// SHLL cl r32 r32 -// SHLL imm8 m32 -// SHLL imm8 r32 -// SHLL imm8 r32 m32 -// SHLL imm8 r32 r32 -func SHLL(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcSHLL.Forms(), sffxs{}, ops) -} - -// SHLQ: Logical Shift Left. -// -// Forms: -// -// SHLQ 1 m64 -// SHLQ 1 r64 -// SHLQ cl m64 -// SHLQ cl r64 -// SHLQ cl r64 m64 -// SHLQ cl r64 r64 -// SHLQ imm8 m64 -// SHLQ imm8 r64 -// SHLQ imm8 r64 m64 -// SHLQ imm8 r64 r64 -func SHLQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcSHLQ.Forms(), sffxs{}, ops) -} - -// SHLW: Logical Shift Left. -// -// Forms: -// -// SHLW 1 m16 -// SHLW 1 r16 -// SHLW cl m16 -// SHLW cl r16 -// SHLW cl r16 m16 -// SHLW cl r16 r16 -// SHLW imm8 m16 -// SHLW imm8 r16 -// SHLW imm8 r16 m16 -// SHLW imm8 r16 r16 -func SHLW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcSHLW.Forms(), sffxs{}, ops) -} - -// SHLXL: Logical Shift Left Without Affecting Flags. -// -// Forms: -// -// SHLXL r32 m32 r32 -// SHLXL r32 r32 r32 -func SHLXL(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcSHLXL.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// SHLXQ: Logical Shift Left Without Affecting Flags. -// -// Forms: -// -// SHLXQ r64 m64 r64 -// SHLXQ r64 r64 r64 -func SHLXQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcSHLXQ.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// SHRB: Logical Shift Right. -// -// Forms: -// -// SHRB 1 m8 -// SHRB 1 r8 -// SHRB cl m8 -// SHRB cl r8 -// SHRB imm8 m8 -// SHRB imm8 r8 -func SHRB(ci, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSHRB.Forms(), sffxs{}, []operand.Op{ci, mr}) -} - -// SHRL: Logical Shift Right. -// -// Forms: -// -// SHRL 1 m32 -// SHRL 1 r32 -// SHRL cl m32 -// SHRL cl r32 -// SHRL cl r32 m32 -// SHRL cl r32 r32 -// SHRL imm8 m32 -// SHRL imm8 r32 -// SHRL imm8 r32 m32 -// SHRL imm8 r32 r32 -func SHRL(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcSHRL.Forms(), sffxs{}, ops) -} - -// SHRQ: Logical Shift Right. -// -// Forms: -// -// SHRQ 1 m64 -// SHRQ 1 r64 -// SHRQ cl m64 -// SHRQ cl r64 -// SHRQ cl r64 m64 -// SHRQ cl r64 r64 -// SHRQ imm8 m64 -// SHRQ imm8 r64 -// SHRQ imm8 r64 m64 -// SHRQ imm8 r64 r64 -func SHRQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcSHRQ.Forms(), sffxs{}, ops) -} - -// SHRW: Logical Shift Right. -// -// Forms: -// -// SHRW 1 m16 -// SHRW 1 r16 -// SHRW cl m16 -// SHRW cl r16 -// SHRW cl r16 m16 -// SHRW cl r16 r16 -// SHRW imm8 m16 -// SHRW imm8 r16 -// SHRW imm8 r16 m16 -// SHRW imm8 r16 r16 -func SHRW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcSHRW.Forms(), sffxs{}, ops) -} - -// SHRXL: Logical Shift Right Without Affecting Flags. -// -// Forms: -// -// SHRXL r32 m32 r32 -// SHRXL r32 r32 r32 -func SHRXL(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcSHRXL.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// SHRXQ: Logical Shift Right Without Affecting Flags. -// -// Forms: -// -// SHRXQ r64 m64 r64 -// SHRXQ r64 r64 r64 -func SHRXQ(r, mr, r1 operand.Op) (*intrep.Instruction, error) { - return build(opcSHRXQ.Forms(), sffxs{}, []operand.Op{r, mr, r1}) -} - -// SHUFPD: Shuffle Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// SHUFPD imm8 m128 xmm -// SHUFPD imm8 xmm xmm -func SHUFPD(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSHUFPD.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// SHUFPS: Shuffle Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// SHUFPS imm8 m128 xmm -// SHUFPS imm8 xmm xmm -func SHUFPS(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSHUFPS.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// SQRTPD: Compute Square Roots of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// SQRTPD m128 xmm -// SQRTPD xmm xmm -func SQRTPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSQRTPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SQRTPS: Compute Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// SQRTPS m128 xmm -// SQRTPS xmm xmm -func SQRTPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSQRTPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SQRTSD: Compute Square Root of Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// SQRTSD m64 xmm -// SQRTSD xmm xmm -func SQRTSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSQRTSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SQRTSS: Compute Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// SQRTSS m32 xmm -// SQRTSS xmm xmm -func SQRTSS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSQRTSS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// STC: Set Carry Flag. -// -// Forms: -// -// STC -func STC() (*intrep.Instruction, error) { - return build(opcSTC.Forms(), sffxs{}, []operand.Op{}) -} - -// STD: Set Direction Flag. -// -// Forms: -// -// STD -func STD() (*intrep.Instruction, error) { - return build(opcSTD.Forms(), sffxs{}, []operand.Op{}) -} - -// STMXCSR: Store MXCSR Register State. -// -// Forms: -// -// STMXCSR m32 -func STMXCSR(m operand.Op) (*intrep.Instruction, error) { - return build(opcSTMXCSR.Forms(), sffxs{}, []operand.Op{m}) -} - -// SUBB: Subtract. -// -// Forms: -// -// SUBB imm8 al -// SUBB imm8 m8 -// SUBB imm8 r8 -// SUBB m8 r8 -// SUBB r8 m8 -// SUBB r8 r8 -func SUBB(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcSUBB.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// SUBL: Subtract. -// -// Forms: -// -// SUBL imm32 eax -// SUBL imm32 m32 -// SUBL imm32 r32 -// SUBL imm8 m32 -// SUBL imm8 r32 -// SUBL m32 r32 -// SUBL r32 m32 -// SUBL r32 r32 -func SUBL(imr, emr operand.Op) (*intrep.Instruction, error) { - return build(opcSUBL.Forms(), sffxs{}, []operand.Op{imr, emr}) -} - -// SUBPD: Subtract Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// SUBPD m128 xmm -// SUBPD xmm xmm -func SUBPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSUBPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SUBPS: Subtract Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// SUBPS m128 xmm -// SUBPS xmm xmm -func SUBPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSUBPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SUBQ: Subtract. -// -// Forms: -// -// SUBQ imm32 m64 -// SUBQ imm32 r64 -// SUBQ imm32 rax -// SUBQ imm8 m64 -// SUBQ imm8 r64 -// SUBQ m64 r64 -// SUBQ r64 m64 -// SUBQ r64 r64 -func SUBQ(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcSUBQ.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// SUBSD: Subtract Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// SUBSD m64 xmm -// SUBSD xmm xmm -func SUBSD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSUBSD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SUBSS: Subtract Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// SUBSS m32 xmm -// SUBSS xmm xmm -func SUBSS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcSUBSS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// SUBW: Subtract. -// -// Forms: -// -// SUBW imm16 ax -// SUBW imm16 m16 -// SUBW imm16 r16 -// SUBW imm8 m16 -// SUBW imm8 r16 -// SUBW m16 r16 -// SUBW r16 m16 -// SUBW r16 r16 -func SUBW(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcSUBW.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// SYSCALL: Fast System Call. -// -// Forms: -// -// SYSCALL -func SYSCALL() (*intrep.Instruction, error) { - return build(opcSYSCALL.Forms(), sffxs{}, []operand.Op{}) -} - -// TESTB: Logical Compare. -// -// Forms: -// -// TESTB imm8 al -// TESTB imm8 m8 -// TESTB imm8 r8 -// TESTB r8 m8 -// TESTB r8 r8 -func TESTB(ir, amr operand.Op) (*intrep.Instruction, error) { - return build(opcTESTB.Forms(), sffxs{}, []operand.Op{ir, amr}) -} - -// TESTL: Logical Compare. -// -// Forms: -// -// TESTL imm32 eax -// TESTL imm32 m32 -// TESTL imm32 r32 -// TESTL r32 m32 -// TESTL r32 r32 -func TESTL(ir, emr operand.Op) (*intrep.Instruction, error) { - return build(opcTESTL.Forms(), sffxs{}, []operand.Op{ir, emr}) -} - -// TESTQ: Logical Compare. -// -// Forms: -// -// TESTQ imm32 m64 -// TESTQ imm32 r64 -// TESTQ imm32 rax -// TESTQ r64 m64 -// TESTQ r64 r64 -func TESTQ(ir, mr operand.Op) (*intrep.Instruction, error) { - return build(opcTESTQ.Forms(), sffxs{}, []operand.Op{ir, mr}) -} - -// TESTW: Logical Compare. -// -// Forms: -// -// TESTW imm16 ax -// TESTW imm16 m16 -// TESTW imm16 r16 -// TESTW r16 m16 -// TESTW r16 r16 -func TESTW(ir, amr operand.Op) (*intrep.Instruction, error) { - return build(opcTESTW.Forms(), sffxs{}, []operand.Op{ir, amr}) -} - -// TZCNTL: Count the Number of Trailing Zero Bits. -// -// Forms: -// -// TZCNTL m32 r32 -// TZCNTL r32 r32 -func TZCNTL(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcTZCNTL.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// TZCNTQ: Count the Number of Trailing Zero Bits. -// -// Forms: -// -// TZCNTQ m64 r64 -// TZCNTQ r64 r64 -func TZCNTQ(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcTZCNTQ.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// TZCNTW: Count the Number of Trailing Zero Bits. -// -// Forms: -// -// TZCNTW m16 r16 -// TZCNTW r16 r16 -func TZCNTW(mr, r operand.Op) (*intrep.Instruction, error) { - return build(opcTZCNTW.Forms(), sffxs{}, []operand.Op{mr, r}) -} - -// UCOMISD: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// UCOMISD m64 xmm -// UCOMISD xmm xmm -func UCOMISD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcUCOMISD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// UCOMISS: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// UCOMISS m32 xmm -// UCOMISS xmm xmm -func UCOMISS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcUCOMISS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// UD2: Undefined Instruction. -// -// Forms: -// -// UD2 -func UD2() (*intrep.Instruction, error) { - return build(opcUD2.Forms(), sffxs{}, []operand.Op{}) -} - -// UNPCKHPD: Unpack and Interleave High Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKHPD m128 xmm -// UNPCKHPD xmm xmm -func UNPCKHPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcUNPCKHPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// UNPCKHPS: Unpack and Interleave High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKHPS m128 xmm -// UNPCKHPS xmm xmm -func UNPCKHPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcUNPCKHPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// UNPCKLPD: Unpack and Interleave Low Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKLPD m128 xmm -// UNPCKLPD xmm xmm -func UNPCKLPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcUNPCKLPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// UNPCKLPS: Unpack and Interleave Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// UNPCKLPS m128 xmm -// UNPCKLPS xmm xmm -func UNPCKLPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcUNPCKLPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// VADDPD: Add Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VADDPD m128 xmm xmm -// VADDPD m256 ymm ymm -// VADDPD xmm xmm xmm -// VADDPD ymm ymm ymm -// VADDPD m128 xmm k xmm -// VADDPD m256 ymm k ymm -// VADDPD xmm xmm k xmm -// VADDPD ymm ymm k ymm -// VADDPD m512 zmm k zmm -// VADDPD m512 zmm zmm -// VADDPD zmm zmm k zmm -// VADDPD zmm zmm zmm -func VADDPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{}, ops) -} - -// VADDPD_BCST: Add Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VADDPD.BCST m64 xmm k xmm -// VADDPD.BCST m64 xmm xmm -// VADDPD.BCST m64 ymm k ymm -// VADDPD.BCST m64 ymm ymm -// VADDPD.BCST m64 zmm k zmm -// VADDPD.BCST m64 zmm zmm -func VADDPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VADDPD_BCST_Z: Add Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VADDPD.BCST.Z m64 xmm k xmm -// VADDPD.BCST.Z m64 ymm k ymm -// VADDPD.BCST.Z m64 zmm k zmm -func VADDPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VADDPD_RD_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDPD.RD_SAE zmm zmm k zmm -// VADDPD.RD_SAE zmm zmm zmm -func VADDPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VADDPD_RD_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPD.RD_SAE.Z zmm zmm k zmm -func VADDPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VADDPD_RN_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDPD.RN_SAE zmm zmm k zmm -// VADDPD.RN_SAE zmm zmm zmm -func VADDPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VADDPD_RN_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDPD.RN_SAE.Z zmm zmm k zmm -func VADDPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VADDPD_RU_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDPD.RU_SAE zmm zmm k zmm -// VADDPD.RU_SAE zmm zmm zmm -func VADDPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VADDPD_RU_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPD.RU_SAE.Z zmm zmm k zmm -func VADDPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VADDPD_RZ_SAE: Add Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDPD.RZ_SAE zmm zmm k zmm -// VADDPD.RZ_SAE zmm zmm zmm -func VADDPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VADDPD_RZ_SAE_Z: Add Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDPD.RZ_SAE.Z zmm zmm k zmm -func VADDPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VADDPD_Z: Add Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDPD.Z m128 xmm k xmm -// VADDPD.Z m256 ymm k ymm -// VADDPD.Z xmm xmm k xmm -// VADDPD.Z ymm ymm k ymm -// VADDPD.Z m512 zmm k zmm -// VADDPD.Z zmm zmm k zmm -func VADDPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VADDPS: Add Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VADDPS m128 xmm xmm -// VADDPS m256 ymm ymm -// VADDPS xmm xmm xmm -// VADDPS ymm ymm ymm -// VADDPS m128 xmm k xmm -// VADDPS m256 ymm k ymm -// VADDPS xmm xmm k xmm -// VADDPS ymm ymm k ymm -// VADDPS m512 zmm k zmm -// VADDPS m512 zmm zmm -// VADDPS zmm zmm k zmm -// VADDPS zmm zmm zmm -func VADDPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{}, ops) -} - -// VADDPS_BCST: Add Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VADDPS.BCST m32 xmm k xmm -// VADDPS.BCST m32 xmm xmm -// VADDPS.BCST m32 ymm k ymm -// VADDPS.BCST m32 ymm ymm -// VADDPS.BCST m32 zmm k zmm -// VADDPS.BCST m32 zmm zmm -func VADDPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VADDPS_BCST_Z: Add Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VADDPS.BCST.Z m32 xmm k xmm -// VADDPS.BCST.Z m32 ymm k ymm -// VADDPS.BCST.Z m32 zmm k zmm -func VADDPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VADDPS_RD_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDPS.RD_SAE zmm zmm k zmm -// VADDPS.RD_SAE zmm zmm zmm -func VADDPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VADDPS_RD_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPS.RD_SAE.Z zmm zmm k zmm -func VADDPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VADDPS_RN_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDPS.RN_SAE zmm zmm k zmm -// VADDPS.RN_SAE zmm zmm zmm -func VADDPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VADDPS_RN_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDPS.RN_SAE.Z zmm zmm k zmm -func VADDPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VADDPS_RU_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDPS.RU_SAE zmm zmm k zmm -// VADDPS.RU_SAE zmm zmm zmm -func VADDPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VADDPS_RU_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDPS.RU_SAE.Z zmm zmm k zmm -func VADDPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VADDPS_RZ_SAE: Add Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDPS.RZ_SAE zmm zmm k zmm -// VADDPS.RZ_SAE zmm zmm zmm -func VADDPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VADDPS_RZ_SAE_Z: Add Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDPS.RZ_SAE.Z zmm zmm k zmm -func VADDPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VADDPS_Z: Add Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDPS.Z m128 xmm k xmm -// VADDPS.Z m256 ymm k ymm -// VADDPS.Z xmm xmm k xmm -// VADDPS.Z ymm ymm k ymm -// VADDPS.Z m512 zmm k zmm -// VADDPS.Z zmm zmm k zmm -func VADDPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VADDSD: Add Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VADDSD m64 xmm xmm -// VADDSD xmm xmm xmm -// VADDSD m64 xmm k xmm -// VADDSD xmm xmm k xmm -func VADDSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{}, ops) -} - -// VADDSD_RD_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDSD.RD_SAE xmm xmm k xmm -// VADDSD.RD_SAE xmm xmm xmm -func VADDSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VADDSD_RD_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSD.RD_SAE.Z xmm xmm k xmm -func VADDSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VADDSD_RN_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDSD.RN_SAE xmm xmm k xmm -// VADDSD.RN_SAE xmm xmm xmm -func VADDSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VADDSD_RN_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDSD.RN_SAE.Z xmm xmm k xmm -func VADDSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VADDSD_RU_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDSD.RU_SAE xmm xmm k xmm -// VADDSD.RU_SAE xmm xmm xmm -func VADDSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VADDSD_RU_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSD.RU_SAE.Z xmm xmm k xmm -func VADDSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VADDSD_RZ_SAE: Add Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDSD.RZ_SAE xmm xmm k xmm -// VADDSD.RZ_SAE xmm xmm xmm -func VADDSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VADDSD_RZ_SAE_Z: Add Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDSD.RZ_SAE.Z xmm xmm k xmm -func VADDSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VADDSD_Z: Add Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDSD.Z m64 xmm k xmm -// VADDSD.Z xmm xmm k xmm -func VADDSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VADDSS: Add Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VADDSS m32 xmm xmm -// VADDSS xmm xmm xmm -// VADDSS m32 xmm k xmm -// VADDSS xmm xmm k xmm -func VADDSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{}, ops) -} - -// VADDSS_RD_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VADDSS.RD_SAE xmm xmm k xmm -// VADDSS.RD_SAE xmm xmm xmm -func VADDSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VADDSS_RD_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSS.RD_SAE.Z xmm xmm k xmm -func VADDSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VADDSS_RN_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VADDSS.RN_SAE xmm xmm k xmm -// VADDSS.RN_SAE xmm xmm xmm -func VADDSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VADDSS_RN_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VADDSS.RN_SAE.Z xmm xmm k xmm -func VADDSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VADDSS_RU_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VADDSS.RU_SAE xmm xmm k xmm -// VADDSS.RU_SAE xmm xmm xmm -func VADDSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VADDSS_RU_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VADDSS.RU_SAE.Z xmm xmm k xmm -func VADDSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VADDSS_RZ_SAE: Add Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VADDSS.RZ_SAE xmm xmm k xmm -// VADDSS.RZ_SAE xmm xmm xmm -func VADDSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VADDSS_RZ_SAE_Z: Add Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VADDSS.RZ_SAE.Z xmm xmm k xmm -func VADDSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VADDSS_Z: Add Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VADDSS.Z m32 xmm k xmm -// VADDSS.Z xmm xmm k xmm -func VADDSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VADDSUBPD: Packed Double-FP Add/Subtract. -// -// Forms: -// -// VADDSUBPD m128 xmm xmm -// VADDSUBPD m256 ymm ymm -// VADDSUBPD xmm xmm xmm -// VADDSUBPD ymm ymm ymm -func VADDSUBPD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSUBPD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VADDSUBPS: Packed Single-FP Add/Subtract. -// -// Forms: -// -// VADDSUBPS m128 xmm xmm -// VADDSUBPS m256 ymm ymm -// VADDSUBPS xmm xmm xmm -// VADDSUBPS ymm ymm ymm -func VADDSUBPS(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVADDSUBPS.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VAESDEC: Perform One Round of an AES Decryption Flow. -// -// Forms: -// -// VAESDEC m128 xmm xmm -// VAESDEC xmm xmm xmm -// VAESDEC m256 ymm ymm -// VAESDEC ymm ymm ymm -// VAESDEC m512 zmm zmm -// VAESDEC zmm zmm zmm -func VAESDEC(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVAESDEC.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1}) -} - -// VAESDECLAST: Perform Last Round of an AES Decryption Flow. -// -// Forms: -// -// VAESDECLAST m128 xmm xmm -// VAESDECLAST xmm xmm xmm -// VAESDECLAST m256 ymm ymm -// VAESDECLAST ymm ymm ymm -// VAESDECLAST m512 zmm zmm -// VAESDECLAST zmm zmm zmm -func VAESDECLAST(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVAESDECLAST.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1}) -} - -// VAESENC: Perform One Round of an AES Encryption Flow. -// -// Forms: -// -// VAESENC m128 xmm xmm -// VAESENC xmm xmm xmm -// VAESENC m256 ymm ymm -// VAESENC ymm ymm ymm -// VAESENC m512 zmm zmm -// VAESENC zmm zmm zmm -func VAESENC(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVAESENC.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1}) -} - -// VAESENCLAST: Perform Last Round of an AES Encryption Flow. -// -// Forms: -// -// VAESENCLAST m128 xmm xmm -// VAESENCLAST xmm xmm xmm -// VAESENCLAST m256 ymm ymm -// VAESENCLAST ymm ymm ymm -// VAESENCLAST m512 zmm zmm -// VAESENCLAST zmm zmm zmm -func VAESENCLAST(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVAESENCLAST.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1}) -} - -// VAESIMC: Perform the AES InvMixColumn Transformation. -// -// Forms: -// -// VAESIMC m128 xmm -// VAESIMC xmm xmm -func VAESIMC(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVAESIMC.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// VAESKEYGENASSIST: AES Round Key Generation Assist. -// -// Forms: -// -// VAESKEYGENASSIST imm8 m128 xmm -// VAESKEYGENASSIST imm8 xmm xmm -func VAESKEYGENASSIST(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVAESKEYGENASSIST.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// VALIGND: Align Doubleword Vectors. -// -// Forms: -// -// VALIGND imm8 m128 xmm k xmm -// VALIGND imm8 m128 xmm xmm -// VALIGND imm8 m256 ymm k ymm -// VALIGND imm8 m256 ymm ymm -// VALIGND imm8 xmm xmm k xmm -// VALIGND imm8 xmm xmm xmm -// VALIGND imm8 ymm ymm k ymm -// VALIGND imm8 ymm ymm ymm -// VALIGND imm8 m512 zmm k zmm -// VALIGND imm8 m512 zmm zmm -// VALIGND imm8 zmm zmm k zmm -// VALIGND imm8 zmm zmm zmm -func VALIGND(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVALIGND.Forms(), sffxs{}, ops) -} - -// VALIGND_BCST: Align Doubleword Vectors (Broadcast). -// -// Forms: -// -// VALIGND.BCST imm8 m32 xmm k xmm -// VALIGND.BCST imm8 m32 xmm xmm -// VALIGND.BCST imm8 m32 ymm k ymm -// VALIGND.BCST imm8 m32 ymm ymm -// VALIGND.BCST imm8 m32 zmm k zmm -// VALIGND.BCST imm8 m32 zmm zmm -func VALIGND_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVALIGND.Forms(), sffxs{sffxBCST}, ops) -} - -// VALIGND_BCST_Z: Align Doubleword Vectors (Broadcast, Zeroing Masking). -// -// Forms: -// -// VALIGND.BCST.Z imm8 m32 xmm k xmm -// VALIGND.BCST.Z imm8 m32 ymm k ymm -// VALIGND.BCST.Z imm8 m32 zmm k zmm -func VALIGND_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVALIGND.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VALIGND_Z: Align Doubleword Vectors (Zeroing Masking). -// -// Forms: -// -// VALIGND.Z imm8 m128 xmm k xmm -// VALIGND.Z imm8 m256 ymm k ymm -// VALIGND.Z imm8 xmm xmm k xmm -// VALIGND.Z imm8 ymm ymm k ymm -// VALIGND.Z imm8 m512 zmm k zmm -// VALIGND.Z imm8 zmm zmm k zmm -func VALIGND_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVALIGND.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VALIGNQ: Align Quadword Vectors. -// -// Forms: -// -// VALIGNQ imm8 m128 xmm k xmm -// VALIGNQ imm8 m128 xmm xmm -// VALIGNQ imm8 m256 ymm k ymm -// VALIGNQ imm8 m256 ymm ymm -// VALIGNQ imm8 xmm xmm k xmm -// VALIGNQ imm8 xmm xmm xmm -// VALIGNQ imm8 ymm ymm k ymm -// VALIGNQ imm8 ymm ymm ymm -// VALIGNQ imm8 m512 zmm k zmm -// VALIGNQ imm8 m512 zmm zmm -// VALIGNQ imm8 zmm zmm k zmm -// VALIGNQ imm8 zmm zmm zmm -func VALIGNQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVALIGNQ.Forms(), sffxs{}, ops) -} - -// VALIGNQ_BCST: Align Quadword Vectors (Broadcast). -// -// Forms: -// -// VALIGNQ.BCST imm8 m64 xmm k xmm -// VALIGNQ.BCST imm8 m64 xmm xmm -// VALIGNQ.BCST imm8 m64 ymm k ymm -// VALIGNQ.BCST imm8 m64 ymm ymm -// VALIGNQ.BCST imm8 m64 zmm k zmm -// VALIGNQ.BCST imm8 m64 zmm zmm -func VALIGNQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVALIGNQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VALIGNQ_BCST_Z: Align Quadword Vectors (Broadcast, Zeroing Masking). -// -// Forms: -// -// VALIGNQ.BCST.Z imm8 m64 xmm k xmm -// VALIGNQ.BCST.Z imm8 m64 ymm k ymm -// VALIGNQ.BCST.Z imm8 m64 zmm k zmm -func VALIGNQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVALIGNQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VALIGNQ_Z: Align Quadword Vectors (Zeroing Masking). -// -// Forms: -// -// VALIGNQ.Z imm8 m128 xmm k xmm -// VALIGNQ.Z imm8 m256 ymm k ymm -// VALIGNQ.Z imm8 xmm xmm k xmm -// VALIGNQ.Z imm8 ymm ymm k ymm -// VALIGNQ.Z imm8 m512 zmm k zmm -// VALIGNQ.Z imm8 zmm zmm k zmm -func VALIGNQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVALIGNQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VANDNPD: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VANDNPD m128 xmm xmm -// VANDNPD m256 ymm ymm -// VANDNPD xmm xmm xmm -// VANDNPD ymm ymm ymm -// VANDNPD m128 xmm k xmm -// VANDNPD m256 ymm k ymm -// VANDNPD xmm xmm k xmm -// VANDNPD ymm ymm k ymm -// VANDNPD m512 zmm k zmm -// VANDNPD m512 zmm zmm -// VANDNPD zmm zmm k zmm -// VANDNPD zmm zmm zmm -func VANDNPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVANDNPD.Forms(), sffxs{}, ops) -} - -// VANDNPD_BCST: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDNPD.BCST m64 xmm k xmm -// VANDNPD.BCST m64 xmm xmm -// VANDNPD.BCST m64 ymm k ymm -// VANDNPD.BCST m64 ymm ymm -// VANDNPD.BCST m64 zmm k zmm -// VANDNPD.BCST m64 zmm zmm -func VANDNPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVANDNPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VANDNPD_BCST_Z: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDNPD.BCST.Z m64 xmm k xmm -// VANDNPD.BCST.Z m64 ymm k ymm -// VANDNPD.BCST.Z m64 zmm k zmm -func VANDNPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVANDNPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VANDNPD_Z: Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDNPD.Z m128 xmm k xmm -// VANDNPD.Z m256 ymm k ymm -// VANDNPD.Z xmm xmm k xmm -// VANDNPD.Z ymm ymm k ymm -// VANDNPD.Z m512 zmm k zmm -// VANDNPD.Z zmm zmm k zmm -func VANDNPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVANDNPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VANDNPS: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VANDNPS m128 xmm xmm -// VANDNPS m256 ymm ymm -// VANDNPS xmm xmm xmm -// VANDNPS ymm ymm ymm -// VANDNPS m128 xmm k xmm -// VANDNPS m256 ymm k ymm -// VANDNPS xmm xmm k xmm -// VANDNPS ymm ymm k ymm -// VANDNPS m512 zmm k zmm -// VANDNPS m512 zmm zmm -// VANDNPS zmm zmm k zmm -// VANDNPS zmm zmm zmm -func VANDNPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVANDNPS.Forms(), sffxs{}, ops) -} - -// VANDNPS_BCST: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDNPS.BCST m32 xmm k xmm -// VANDNPS.BCST m32 xmm xmm -// VANDNPS.BCST m32 ymm k ymm -// VANDNPS.BCST m32 ymm ymm -// VANDNPS.BCST m32 zmm k zmm -// VANDNPS.BCST m32 zmm zmm -func VANDNPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVANDNPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VANDNPS_BCST_Z: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDNPS.BCST.Z m32 xmm k xmm -// VANDNPS.BCST.Z m32 ymm k ymm -// VANDNPS.BCST.Z m32 zmm k zmm -func VANDNPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVANDNPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VANDNPS_Z: Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDNPS.Z m128 xmm k xmm -// VANDNPS.Z m256 ymm k ymm -// VANDNPS.Z xmm xmm k xmm -// VANDNPS.Z ymm ymm k ymm -// VANDNPS.Z m512 zmm k zmm -// VANDNPS.Z zmm zmm k zmm -func VANDNPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVANDNPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VANDPD: Bitwise Logical AND of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VANDPD m128 xmm xmm -// VANDPD m256 ymm ymm -// VANDPD xmm xmm xmm -// VANDPD ymm ymm ymm -// VANDPD m128 xmm k xmm -// VANDPD m256 ymm k ymm -// VANDPD xmm xmm k xmm -// VANDPD ymm ymm k ymm -// VANDPD m512 zmm k zmm -// VANDPD m512 zmm zmm -// VANDPD zmm zmm k zmm -// VANDPD zmm zmm zmm -func VANDPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVANDPD.Forms(), sffxs{}, ops) -} - -// VANDPD_BCST: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDPD.BCST m64 xmm k xmm -// VANDPD.BCST m64 xmm xmm -// VANDPD.BCST m64 ymm k ymm -// VANDPD.BCST m64 ymm ymm -// VANDPD.BCST m64 zmm k zmm -// VANDPD.BCST m64 zmm zmm -func VANDPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVANDPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VANDPD_BCST_Z: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDPD.BCST.Z m64 xmm k xmm -// VANDPD.BCST.Z m64 ymm k ymm -// VANDPD.BCST.Z m64 zmm k zmm -func VANDPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVANDPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VANDPD_Z: Bitwise Logical AND of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDPD.Z m128 xmm k xmm -// VANDPD.Z m256 ymm k ymm -// VANDPD.Z xmm xmm k xmm -// VANDPD.Z ymm ymm k ymm -// VANDPD.Z m512 zmm k zmm -// VANDPD.Z zmm zmm k zmm -func VANDPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVANDPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VANDPS: Bitwise Logical AND of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VANDPS m128 xmm xmm -// VANDPS m256 ymm ymm -// VANDPS xmm xmm xmm -// VANDPS ymm ymm ymm -// VANDPS m128 xmm k xmm -// VANDPS m256 ymm k ymm -// VANDPS xmm xmm k xmm -// VANDPS ymm ymm k ymm -// VANDPS m512 zmm k zmm -// VANDPS m512 zmm zmm -// VANDPS zmm zmm k zmm -// VANDPS zmm zmm zmm -func VANDPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVANDPS.Forms(), sffxs{}, ops) -} - -// VANDPS_BCST: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VANDPS.BCST m32 xmm k xmm -// VANDPS.BCST m32 xmm xmm -// VANDPS.BCST m32 ymm k ymm -// VANDPS.BCST m32 ymm ymm -// VANDPS.BCST m32 zmm k zmm -// VANDPS.BCST m32 zmm zmm -func VANDPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVANDPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VANDPS_BCST_Z: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VANDPS.BCST.Z m32 xmm k xmm -// VANDPS.BCST.Z m32 ymm k ymm -// VANDPS.BCST.Z m32 zmm k zmm -func VANDPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVANDPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VANDPS_Z: Bitwise Logical AND of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VANDPS.Z m128 xmm k xmm -// VANDPS.Z m256 ymm k ymm -// VANDPS.Z xmm xmm k xmm -// VANDPS.Z ymm ymm k ymm -// VANDPS.Z m512 zmm k zmm -// VANDPS.Z zmm zmm k zmm -func VANDPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVANDPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VBLENDMPD: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control. -// -// Forms: -// -// VBLENDMPD m128 xmm k xmm -// VBLENDMPD m128 xmm xmm -// VBLENDMPD m256 ymm k ymm -// VBLENDMPD m256 ymm ymm -// VBLENDMPD xmm xmm k xmm -// VBLENDMPD xmm xmm xmm -// VBLENDMPD ymm ymm k ymm -// VBLENDMPD ymm ymm ymm -// VBLENDMPD m512 zmm k zmm -// VBLENDMPD m512 zmm zmm -// VBLENDMPD zmm zmm k zmm -// VBLENDMPD zmm zmm zmm -func VBLENDMPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDMPD.Forms(), sffxs{}, ops) -} - -// VBLENDMPD_BCST: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VBLENDMPD.BCST m64 xmm k xmm -// VBLENDMPD.BCST m64 xmm xmm -// VBLENDMPD.BCST m64 ymm k ymm -// VBLENDMPD.BCST m64 ymm ymm -// VBLENDMPD.BCST m64 zmm k zmm -// VBLENDMPD.BCST m64 zmm zmm -func VBLENDMPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDMPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VBLENDMPD_BCST_Z: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VBLENDMPD.BCST.Z m64 xmm k xmm -// VBLENDMPD.BCST.Z m64 ymm k ymm -// VBLENDMPD.BCST.Z m64 zmm k zmm -func VBLENDMPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDMPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VBLENDMPD_Z: Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VBLENDMPD.Z m128 xmm k xmm -// VBLENDMPD.Z m256 ymm k ymm -// VBLENDMPD.Z xmm xmm k xmm -// VBLENDMPD.Z ymm ymm k ymm -// VBLENDMPD.Z m512 zmm k zmm -// VBLENDMPD.Z zmm zmm k zmm -func VBLENDMPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDMPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VBLENDMPS: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control. -// -// Forms: -// -// VBLENDMPS m128 xmm k xmm -// VBLENDMPS m128 xmm xmm -// VBLENDMPS m256 ymm k ymm -// VBLENDMPS m256 ymm ymm -// VBLENDMPS xmm xmm k xmm -// VBLENDMPS xmm xmm xmm -// VBLENDMPS ymm ymm k ymm -// VBLENDMPS ymm ymm ymm -// VBLENDMPS m512 zmm k zmm -// VBLENDMPS m512 zmm zmm -// VBLENDMPS zmm zmm k zmm -// VBLENDMPS zmm zmm zmm -func VBLENDMPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDMPS.Forms(), sffxs{}, ops) -} - -// VBLENDMPS_BCST: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VBLENDMPS.BCST m32 xmm k xmm -// VBLENDMPS.BCST m32 xmm xmm -// VBLENDMPS.BCST m32 ymm k ymm -// VBLENDMPS.BCST m32 ymm ymm -// VBLENDMPS.BCST m32 zmm k zmm -// VBLENDMPS.BCST m32 zmm zmm -func VBLENDMPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDMPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VBLENDMPS_BCST_Z: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VBLENDMPS.BCST.Z m32 xmm k xmm -// VBLENDMPS.BCST.Z m32 ymm k ymm -// VBLENDMPS.BCST.Z m32 zmm k zmm -func VBLENDMPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDMPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VBLENDMPS_Z: Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VBLENDMPS.Z m128 xmm k xmm -// VBLENDMPS.Z m256 ymm k ymm -// VBLENDMPS.Z xmm xmm k xmm -// VBLENDMPS.Z ymm ymm k ymm -// VBLENDMPS.Z m512 zmm k zmm -// VBLENDMPS.Z zmm zmm k zmm -func VBLENDMPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDMPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VBLENDPD: Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VBLENDPD imm8 m128 xmm xmm -// VBLENDPD imm8 m256 ymm ymm -// VBLENDPD imm8 xmm xmm xmm -// VBLENDPD imm8 ymm ymm ymm -func VBLENDPD(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDPD.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1}) -} - -// VBLENDPS: Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VBLENDPS imm8 m128 xmm xmm -// VBLENDPS imm8 m256 ymm ymm -// VBLENDPS imm8 xmm xmm xmm -// VBLENDPS imm8 ymm ymm ymm -func VBLENDPS(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDPS.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1}) -} - -// VBLENDVPD: Variable Blend Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VBLENDVPD xmm m128 xmm xmm -// VBLENDVPD xmm xmm xmm xmm -// VBLENDVPD ymm m256 ymm ymm -// VBLENDVPD ymm ymm ymm ymm -func VBLENDVPD(xy, mxy, xy1, xy2 operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDVPD.Forms(), sffxs{}, []operand.Op{xy, mxy, xy1, xy2}) -} - -// VBLENDVPS: Variable Blend Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VBLENDVPS xmm m128 xmm xmm -// VBLENDVPS xmm xmm xmm xmm -// VBLENDVPS ymm m256 ymm ymm -// VBLENDVPS ymm ymm ymm ymm -func VBLENDVPS(xy, mxy, xy1, xy2 operand.Op) (*intrep.Instruction, error) { - return build(opcVBLENDVPS.Forms(), sffxs{}, []operand.Op{xy, mxy, xy1, xy2}) -} - -// VBROADCASTF128: Broadcast 128 Bit of Floating-Point Data. -// -// Forms: -// -// VBROADCASTF128 m128 ymm -func VBROADCASTF128(m, y operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF128.Forms(), sffxs{}, []operand.Op{m, y}) -} - -// VBROADCASTF32X2: Broadcast Two Single-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF32X2 m64 k ymm -// VBROADCASTF32X2 m64 ymm -// VBROADCASTF32X2 xmm k ymm -// VBROADCASTF32X2 xmm ymm -// VBROADCASTF32X2 m64 k zmm -// VBROADCASTF32X2 m64 zmm -// VBROADCASTF32X2 xmm k zmm -// VBROADCASTF32X2 xmm zmm -func VBROADCASTF32X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF32X2.Forms(), sffxs{}, ops) -} - -// VBROADCASTF32X2_Z: Broadcast Two Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF32X2.Z m64 k ymm -// VBROADCASTF32X2.Z xmm k ymm -// VBROADCASTF32X2.Z m64 k zmm -// VBROADCASTF32X2.Z xmm k zmm -func VBROADCASTF32X2_Z(mx, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF32X2.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, yz}) -} - -// VBROADCASTF32X4: Broadcast Four Single-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF32X4 m128 k ymm -// VBROADCASTF32X4 m128 ymm -// VBROADCASTF32X4 m128 k zmm -// VBROADCASTF32X4 m128 zmm -func VBROADCASTF32X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF32X4.Forms(), sffxs{}, ops) -} - -// VBROADCASTF32X4_Z: Broadcast Four Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF32X4.Z m128 k ymm -// VBROADCASTF32X4.Z m128 k zmm -func VBROADCASTF32X4_Z(m, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF32X4.Forms(), sffxs{sffxZ}, []operand.Op{m, k, yz}) -} - -// VBROADCASTF32X8: Broadcast Eight Single-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF32X8 m256 k zmm -// VBROADCASTF32X8 m256 zmm -func VBROADCASTF32X8(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF32X8.Forms(), sffxs{}, ops) -} - -// VBROADCASTF32X8_Z: Broadcast Eight Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF32X8.Z m256 k zmm -func VBROADCASTF32X8_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF32X8.Forms(), sffxs{sffxZ}, []operand.Op{m, k, z}) -} - -// VBROADCASTF64X2: Broadcast Two Double-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF64X2 m128 k ymm -// VBROADCASTF64X2 m128 ymm -// VBROADCASTF64X2 m128 k zmm -// VBROADCASTF64X2 m128 zmm -func VBROADCASTF64X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF64X2.Forms(), sffxs{}, ops) -} - -// VBROADCASTF64X2_Z: Broadcast Two Double-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF64X2.Z m128 k ymm -// VBROADCASTF64X2.Z m128 k zmm -func VBROADCASTF64X2_Z(m, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF64X2.Forms(), sffxs{sffxZ}, []operand.Op{m, k, yz}) -} - -// VBROADCASTF64X4: Broadcast Four Double-Precision Floating-Point Elements. -// -// Forms: -// -// VBROADCASTF64X4 m256 k zmm -// VBROADCASTF64X4 m256 zmm -func VBROADCASTF64X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF64X4.Forms(), sffxs{}, ops) -} - -// VBROADCASTF64X4_Z: Broadcast Four Double-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTF64X4.Z m256 k zmm -func VBROADCASTF64X4_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTF64X4.Forms(), sffxs{sffxZ}, []operand.Op{m, k, z}) -} - -// VBROADCASTI128: Broadcast 128 Bits of Integer Data. -// -// Forms: -// -// VBROADCASTI128 m128 ymm -func VBROADCASTI128(m, y operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI128.Forms(), sffxs{}, []operand.Op{m, y}) -} - -// VBROADCASTI32X2: Broadcast Two Doubleword Elements. -// -// Forms: -// -// VBROADCASTI32X2 m64 k xmm -// VBROADCASTI32X2 m64 k ymm -// VBROADCASTI32X2 m64 xmm -// VBROADCASTI32X2 m64 ymm -// VBROADCASTI32X2 xmm k xmm -// VBROADCASTI32X2 xmm k ymm -// VBROADCASTI32X2 xmm xmm -// VBROADCASTI32X2 xmm ymm -// VBROADCASTI32X2 m64 k zmm -// VBROADCASTI32X2 m64 zmm -// VBROADCASTI32X2 xmm k zmm -// VBROADCASTI32X2 xmm zmm -func VBROADCASTI32X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI32X2.Forms(), sffxs{}, ops) -} - -// VBROADCASTI32X2_Z: Broadcast Two Doubleword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI32X2.Z m64 k xmm -// VBROADCASTI32X2.Z m64 k ymm -// VBROADCASTI32X2.Z xmm k xmm -// VBROADCASTI32X2.Z xmm k ymm -// VBROADCASTI32X2.Z m64 k zmm -// VBROADCASTI32X2.Z xmm k zmm -func VBROADCASTI32X2_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI32X2.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz}) -} - -// VBROADCASTI32X4: Broadcast Four Doubleword Elements. -// -// Forms: -// -// VBROADCASTI32X4 m128 k ymm -// VBROADCASTI32X4 m128 ymm -// VBROADCASTI32X4 m128 k zmm -// VBROADCASTI32X4 m128 zmm -func VBROADCASTI32X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI32X4.Forms(), sffxs{}, ops) -} - -// VBROADCASTI32X4_Z: Broadcast Four Doubleword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI32X4.Z m128 k ymm -// VBROADCASTI32X4.Z m128 k zmm -func VBROADCASTI32X4_Z(m, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI32X4.Forms(), sffxs{sffxZ}, []operand.Op{m, k, yz}) -} - -// VBROADCASTI32X8: Broadcast Eight Doubleword Elements. -// -// Forms: -// -// VBROADCASTI32X8 m256 k zmm -// VBROADCASTI32X8 m256 zmm -func VBROADCASTI32X8(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI32X8.Forms(), sffxs{}, ops) -} - -// VBROADCASTI32X8_Z: Broadcast Eight Doubleword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI32X8.Z m256 k zmm -func VBROADCASTI32X8_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI32X8.Forms(), sffxs{sffxZ}, []operand.Op{m, k, z}) -} - -// VBROADCASTI64X2: Broadcast Two Quadword Elements. -// -// Forms: -// -// VBROADCASTI64X2 m128 k ymm -// VBROADCASTI64X2 m128 ymm -// VBROADCASTI64X2 m128 k zmm -// VBROADCASTI64X2 m128 zmm -func VBROADCASTI64X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI64X2.Forms(), sffxs{}, ops) -} - -// VBROADCASTI64X2_Z: Broadcast Two Quadword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI64X2.Z m128 k ymm -// VBROADCASTI64X2.Z m128 k zmm -func VBROADCASTI64X2_Z(m, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI64X2.Forms(), sffxs{sffxZ}, []operand.Op{m, k, yz}) -} - -// VBROADCASTI64X4: Broadcast Four Quadword Elements. -// -// Forms: -// -// VBROADCASTI64X4 m256 k zmm -// VBROADCASTI64X4 m256 zmm -func VBROADCASTI64X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI64X4.Forms(), sffxs{}, ops) -} - -// VBROADCASTI64X4_Z: Broadcast Four Quadword Elements (Zeroing Masking). -// -// Forms: -// -// VBROADCASTI64X4.Z m256 k zmm -func VBROADCASTI64X4_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTI64X4.Forms(), sffxs{sffxZ}, []operand.Op{m, k, z}) -} - -// VBROADCASTSD: Broadcast Double-Precision Floating-Point Element. -// -// Forms: -// -// VBROADCASTSD xmm ymm -// VBROADCASTSD m64 ymm -// VBROADCASTSD m64 k ymm -// VBROADCASTSD xmm k ymm -// VBROADCASTSD m64 k zmm -// VBROADCASTSD m64 zmm -// VBROADCASTSD xmm k zmm -// VBROADCASTSD xmm zmm -func VBROADCASTSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTSD.Forms(), sffxs{}, ops) -} - -// VBROADCASTSD_Z: Broadcast Double-Precision Floating-Point Element (Zeroing Masking). -// -// Forms: -// -// VBROADCASTSD.Z m64 k ymm -// VBROADCASTSD.Z xmm k ymm -// VBROADCASTSD.Z m64 k zmm -// VBROADCASTSD.Z xmm k zmm -func VBROADCASTSD_Z(mx, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, yz}) -} - -// VBROADCASTSS: Broadcast Single-Precision Floating-Point Element. -// -// Forms: -// -// VBROADCASTSS xmm xmm -// VBROADCASTSS xmm ymm -// VBROADCASTSS m32 xmm -// VBROADCASTSS m32 ymm -// VBROADCASTSS m32 k ymm -// VBROADCASTSS xmm k ymm -// VBROADCASTSS m32 k zmm -// VBROADCASTSS m32 zmm -// VBROADCASTSS xmm k zmm -// VBROADCASTSS xmm zmm -func VBROADCASTSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTSS.Forms(), sffxs{}, ops) -} - -// VBROADCASTSS_Z: Broadcast Single-Precision Floating-Point Element (Zeroing Masking). -// -// Forms: -// -// VBROADCASTSS.Z m32 k ymm -// VBROADCASTSS.Z xmm k ymm -// VBROADCASTSS.Z m32 k zmm -// VBROADCASTSS.Z xmm k zmm -func VBROADCASTSS_Z(mx, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVBROADCASTSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, yz}) -} - -// VCMPPD: Compare Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCMPPD imm8 m128 xmm xmm -// VCMPPD imm8 m256 ymm ymm -// VCMPPD imm8 xmm xmm xmm -// VCMPPD imm8 ymm ymm ymm -// VCMPPD imm8 m128 xmm k k -// VCMPPD imm8 m128 xmm k -// VCMPPD imm8 m256 ymm k k -// VCMPPD imm8 m256 ymm k -// VCMPPD imm8 xmm xmm k k -// VCMPPD imm8 xmm xmm k -// VCMPPD imm8 ymm ymm k k -// VCMPPD imm8 ymm ymm k -// VCMPPD imm8 m512 zmm k k -// VCMPPD imm8 m512 zmm k -// VCMPPD imm8 zmm zmm k k -// VCMPPD imm8 zmm zmm k -func VCMPPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPPD.Forms(), sffxs{}, ops) -} - -// VCMPPD_BCST: Compare Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCMPPD.BCST imm8 m64 xmm k k -// VCMPPD.BCST imm8 m64 xmm k -// VCMPPD.BCST imm8 m64 ymm k k -// VCMPPD.BCST imm8 m64 ymm k -// VCMPPD.BCST imm8 m64 zmm k k -// VCMPPD.BCST imm8 m64 zmm k -func VCMPPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VCMPPD_SAE: Compare Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPPD.SAE imm8 zmm zmm k k -// VCMPPD.SAE imm8 zmm zmm k -func VCMPPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPPD.Forms(), sffxs{sffxSAE}, ops) -} - -// VCMPPS: Compare Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCMPPS imm8 m128 xmm xmm -// VCMPPS imm8 m256 ymm ymm -// VCMPPS imm8 xmm xmm xmm -// VCMPPS imm8 ymm ymm ymm -// VCMPPS imm8 m128 xmm k k -// VCMPPS imm8 m128 xmm k -// VCMPPS imm8 m256 ymm k k -// VCMPPS imm8 m256 ymm k -// VCMPPS imm8 xmm xmm k k -// VCMPPS imm8 xmm xmm k -// VCMPPS imm8 ymm ymm k k -// VCMPPS imm8 ymm ymm k -// VCMPPS imm8 m512 zmm k k -// VCMPPS imm8 m512 zmm k -// VCMPPS imm8 zmm zmm k k -// VCMPPS imm8 zmm zmm k -func VCMPPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPPS.Forms(), sffxs{}, ops) -} - -// VCMPPS_BCST: Compare Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCMPPS.BCST imm8 m32 xmm k k -// VCMPPS.BCST imm8 m32 xmm k -// VCMPPS.BCST imm8 m32 ymm k k -// VCMPPS.BCST imm8 m32 ymm k -// VCMPPS.BCST imm8 m32 zmm k k -// VCMPPS.BCST imm8 m32 zmm k -func VCMPPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VCMPPS_SAE: Compare Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPPS.SAE imm8 zmm zmm k k -// VCMPPS.SAE imm8 zmm zmm k -func VCMPPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPPS.Forms(), sffxs{sffxSAE}, ops) -} - -// VCMPSD: Compare Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VCMPSD imm8 m64 xmm xmm -// VCMPSD imm8 xmm xmm xmm -// VCMPSD imm8 m64 xmm k k -// VCMPSD imm8 m64 xmm k -// VCMPSD imm8 xmm xmm k k -// VCMPSD imm8 xmm xmm k -func VCMPSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPSD.Forms(), sffxs{}, ops) -} - -// VCMPSD_SAE: Compare Scalar Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPSD.SAE imm8 xmm xmm k k -// VCMPSD.SAE imm8 xmm xmm k -func VCMPSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPSD.Forms(), sffxs{sffxSAE}, ops) -} - -// VCMPSS: Compare Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VCMPSS imm8 m32 xmm xmm -// VCMPSS imm8 xmm xmm xmm -// VCMPSS imm8 m32 xmm k k -// VCMPSS imm8 m32 xmm k -// VCMPSS imm8 xmm xmm k k -// VCMPSS imm8 xmm xmm k -func VCMPSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPSS.Forms(), sffxs{}, ops) -} - -// VCMPSS_SAE: Compare Scalar Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VCMPSS.SAE imm8 xmm xmm k k -// VCMPSS.SAE imm8 xmm xmm k -func VCMPSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCMPSS.Forms(), sffxs{sffxSAE}, ops) -} - -// VCOMISD: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VCOMISD m64 xmm -// VCOMISD xmm xmm -func VCOMISD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCOMISD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// VCOMISD_SAE: Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VCOMISD.SAE xmm xmm -func VCOMISD_SAE(x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCOMISD.Forms(), sffxs{sffxSAE}, []operand.Op{x, x1}) -} - -// VCOMISS: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VCOMISS m32 xmm -// VCOMISS xmm xmm -func VCOMISS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCOMISS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// VCOMISS_SAE: Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VCOMISS.SAE xmm xmm -func VCOMISS_SAE(x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCOMISS.Forms(), sffxs{sffxSAE}, []operand.Op{x, x1}) -} - -// VCOMPRESSPD: Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register. -// -// Forms: -// -// VCOMPRESSPD xmm k m128 -// VCOMPRESSPD xmm k xmm -// VCOMPRESSPD xmm m128 -// VCOMPRESSPD xmm xmm -// VCOMPRESSPD ymm k m256 -// VCOMPRESSPD ymm k ymm -// VCOMPRESSPD ymm m256 -// VCOMPRESSPD ymm ymm -// VCOMPRESSPD zmm k m512 -// VCOMPRESSPD zmm k zmm -// VCOMPRESSPD zmm m512 -// VCOMPRESSPD zmm zmm -func VCOMPRESSPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCOMPRESSPD.Forms(), sffxs{}, ops) -} - -// VCOMPRESSPD_Z: Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VCOMPRESSPD.Z xmm k m128 -// VCOMPRESSPD.Z xmm k xmm -// VCOMPRESSPD.Z ymm k m256 -// VCOMPRESSPD.Z ymm k ymm -// VCOMPRESSPD.Z zmm k m512 -// VCOMPRESSPD.Z zmm k zmm -func VCOMPRESSPD_Z(xyz, k, mxyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCOMPRESSPD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxyz}) -} - -// VCOMPRESSPS: Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register. -// -// Forms: -// -// VCOMPRESSPS xmm k m128 -// VCOMPRESSPS xmm k xmm -// VCOMPRESSPS xmm m128 -// VCOMPRESSPS xmm xmm -// VCOMPRESSPS ymm k m256 -// VCOMPRESSPS ymm k ymm -// VCOMPRESSPS ymm m256 -// VCOMPRESSPS ymm ymm -// VCOMPRESSPS zmm k m512 -// VCOMPRESSPS zmm k zmm -// VCOMPRESSPS zmm m512 -// VCOMPRESSPS zmm zmm -func VCOMPRESSPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCOMPRESSPS.Forms(), sffxs{}, ops) -} - -// VCOMPRESSPS_Z: Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VCOMPRESSPS.Z xmm k m128 -// VCOMPRESSPS.Z xmm k xmm -// VCOMPRESSPS.Z ymm k m256 -// VCOMPRESSPS.Z ymm k ymm -// VCOMPRESSPS.Z zmm k m512 -// VCOMPRESSPS.Z zmm k zmm -func VCOMPRESSPS_Z(xyz, k, mxyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCOMPRESSPS.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxyz}) -} - -// VCVTDQ2PD: Convert Packed Dword Integers to Packed Double-Precision FP Values. -// -// Forms: -// -// VCVTDQ2PD m128 ymm -// VCVTDQ2PD m64 xmm -// VCVTDQ2PD xmm xmm -// VCVTDQ2PD xmm ymm -// VCVTDQ2PD m128 k ymm -// VCVTDQ2PD m64 k xmm -// VCVTDQ2PD xmm k xmm -// VCVTDQ2PD xmm k ymm -// VCVTDQ2PD m256 k zmm -// VCVTDQ2PD m256 zmm -// VCVTDQ2PD ymm k zmm -// VCVTDQ2PD ymm zmm -func VCVTDQ2PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PD.Forms(), sffxs{}, ops) -} - -// VCVTDQ2PD_BCST: Convert Packed Dword Integers to Packed Double-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTDQ2PD.BCST m32 k xmm -// VCVTDQ2PD.BCST m32 k ymm -// VCVTDQ2PD.BCST m32 xmm -// VCVTDQ2PD.BCST m32 ymm -// VCVTDQ2PD.BCST m32 k zmm -// VCVTDQ2PD.BCST m32 zmm -func VCVTDQ2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTDQ2PD_BCST_Z: Convert Packed Dword Integers to Packed Double-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PD.BCST.Z m32 k xmm -// VCVTDQ2PD.BCST.Z m32 k ymm -// VCVTDQ2PD.BCST.Z m32 k zmm -func VCVTDQ2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTDQ2PD_Z: Convert Packed Dword Integers to Packed Double-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PD.Z m128 k ymm -// VCVTDQ2PD.Z m64 k xmm -// VCVTDQ2PD.Z xmm k xmm -// VCVTDQ2PD.Z xmm k ymm -// VCVTDQ2PD.Z m256 k zmm -// VCVTDQ2PD.Z ymm k zmm -func VCVTDQ2PD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VCVTDQ2PS: Convert Packed Dword Integers to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTDQ2PS m128 xmm -// VCVTDQ2PS m256 ymm -// VCVTDQ2PS xmm xmm -// VCVTDQ2PS ymm ymm -// VCVTDQ2PS m128 k xmm -// VCVTDQ2PS m256 k ymm -// VCVTDQ2PS xmm k xmm -// VCVTDQ2PS ymm k ymm -// VCVTDQ2PS m512 k zmm -// VCVTDQ2PS m512 zmm -// VCVTDQ2PS zmm k zmm -// VCVTDQ2PS zmm zmm -func VCVTDQ2PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{}, ops) -} - -// VCVTDQ2PS_BCST: Convert Packed Dword Integers to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTDQ2PS.BCST m32 k xmm -// VCVTDQ2PS.BCST m32 k ymm -// VCVTDQ2PS.BCST m32 xmm -// VCVTDQ2PS.BCST m32 ymm -// VCVTDQ2PS.BCST m32 k zmm -// VCVTDQ2PS.BCST m32 zmm -func VCVTDQ2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTDQ2PS_BCST_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.BCST.Z m32 k xmm -// VCVTDQ2PS.BCST.Z m32 k ymm -// VCVTDQ2PS.BCST.Z m32 k zmm -func VCVTDQ2PS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTDQ2PS_RD_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTDQ2PS.RD_SAE zmm k zmm -// VCVTDQ2PS.RD_SAE zmm zmm -func VCVTDQ2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTDQ2PS_RD_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RD_SAE.Z zmm k zmm -func VCVTDQ2PS_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTDQ2PS_RN_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Nearest). -// -// Forms: -// -// VCVTDQ2PS.RN_SAE zmm k zmm -// VCVTDQ2PS.RN_SAE zmm zmm -func VCVTDQ2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTDQ2PS_RN_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RN_SAE.Z zmm k zmm -func VCVTDQ2PS_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTDQ2PS_RU_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTDQ2PS.RU_SAE zmm k zmm -// VCVTDQ2PS.RU_SAE zmm zmm -func VCVTDQ2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTDQ2PS_RU_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RU_SAE.Z zmm k zmm -func VCVTDQ2PS_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTDQ2PS_RZ_SAE: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Zero). -// -// Forms: -// -// VCVTDQ2PS.RZ_SAE zmm k zmm -// VCVTDQ2PS.RZ_SAE zmm zmm -func VCVTDQ2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTDQ2PS_RZ_SAE_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.RZ_SAE.Z zmm k zmm -func VCVTDQ2PS_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTDQ2PS_Z: Convert Packed Dword Integers to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTDQ2PS.Z m128 k xmm -// VCVTDQ2PS.Z m256 k ymm -// VCVTDQ2PS.Z xmm k xmm -// VCVTDQ2PS.Z ymm k ymm -// VCVTDQ2PS.Z m512 k zmm -// VCVTDQ2PS.Z zmm k zmm -func VCVTDQ2PS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTDQ2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTPD2DQ: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPD2DQ m512 k ymm -// VCVTPD2DQ m512 ymm -// VCVTPD2DQ zmm k ymm -// VCVTPD2DQ zmm ymm -func VCVTPD2DQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{}, ops) -} - -// VCVTPD2DQX: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPD2DQX m128 xmm -// VCVTPD2DQX xmm xmm -// VCVTPD2DQX m128 k xmm -// VCVTPD2DQX xmm k xmm -func VCVTPD2DQX(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQX.Forms(), sffxs{}, ops) -} - -// VCVTPD2DQX_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2DQX.BCST m64 k xmm -// VCVTPD2DQX.BCST m64 xmm -func VCVTPD2DQX_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQX.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2DQX_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQX.BCST.Z m64 k xmm -func VCVTPD2DQX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTPD2DQX_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQX.Z m128 k xmm -// VCVTPD2DQX.Z xmm k xmm -func VCVTPD2DQX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x}) -} - -// VCVTPD2DQY: Convert Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPD2DQY m256 xmm -// VCVTPD2DQY ymm xmm -// VCVTPD2DQY m256 k xmm -// VCVTPD2DQY ymm k xmm -func VCVTPD2DQY(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQY.Forms(), sffxs{}, ops) -} - -// VCVTPD2DQY_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2DQY.BCST m64 k xmm -// VCVTPD2DQY.BCST m64 xmm -func VCVTPD2DQY_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQY.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2DQY_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQY.BCST.Z m64 k xmm -func VCVTPD2DQY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTPD2DQY_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQY.Z m256 k xmm -// VCVTPD2DQY.Z ymm k xmm -func VCVTPD2DQY_Z(my, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x}) -} - -// VCVTPD2DQ_BCST: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2DQ.BCST m64 k ymm -// VCVTPD2DQ.BCST m64 ymm -func VCVTPD2DQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2DQ_BCST_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.BCST.Z m64 k ymm -func VCVTPD2DQ_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y}) -} - -// VCVTPD2DQ_RD_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2DQ.RD_SAE zmm k ymm -// VCVTPD2DQ.RD_SAE zmm ymm -func VCVTPD2DQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTPD2DQ_RD_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RD_SAE.Z zmm k ymm -func VCVTPD2DQ_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2DQ_RN_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2DQ.RN_SAE zmm k ymm -// VCVTPD2DQ.RN_SAE zmm ymm -func VCVTPD2DQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTPD2DQ_RN_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RN_SAE.Z zmm k ymm -func VCVTPD2DQ_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2DQ_RU_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2DQ.RU_SAE zmm k ymm -// VCVTPD2DQ.RU_SAE zmm ymm -func VCVTPD2DQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTPD2DQ_RU_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RU_SAE.Z zmm k ymm -func VCVTPD2DQ_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2DQ_RZ_SAE: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2DQ.RZ_SAE zmm k ymm -// VCVTPD2DQ.RZ_SAE zmm ymm -func VCVTPD2DQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTPD2DQ_RZ_SAE_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.RZ_SAE.Z zmm k ymm -func VCVTPD2DQ_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2DQ_Z: Convert Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2DQ.Z m512 k ymm -// VCVTPD2DQ.Z zmm k ymm -func VCVTPD2DQ_Z(mz, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2DQ.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y}) -} - -// VCVTPD2PS: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTPD2PS m512 k ymm -// VCVTPD2PS m512 ymm -// VCVTPD2PS zmm k ymm -// VCVTPD2PS zmm ymm -func VCVTPD2PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{}, ops) -} - -// VCVTPD2PSX: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTPD2PSX m128 xmm -// VCVTPD2PSX xmm xmm -// VCVTPD2PSX m128 k xmm -// VCVTPD2PSX xmm k xmm -func VCVTPD2PSX(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PSX.Forms(), sffxs{}, ops) -} - -// VCVTPD2PSX_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPD2PSX.BCST m64 k xmm -// VCVTPD2PSX.BCST m64 xmm -func VCVTPD2PSX_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PSX.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2PSX_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSX.BCST.Z m64 k xmm -func VCVTPD2PSX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PSX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTPD2PSX_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSX.Z m128 k xmm -// VCVTPD2PSX.Z xmm k xmm -func VCVTPD2PSX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PSX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x}) -} - -// VCVTPD2PSY: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values. -// -// Forms: -// -// VCVTPD2PSY m256 xmm -// VCVTPD2PSY ymm xmm -// VCVTPD2PSY m256 k xmm -// VCVTPD2PSY ymm k xmm -func VCVTPD2PSY(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PSY.Forms(), sffxs{}, ops) -} - -// VCVTPD2PSY_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPD2PSY.BCST m64 k xmm -// VCVTPD2PSY.BCST m64 xmm -func VCVTPD2PSY_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PSY.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2PSY_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSY.BCST.Z m64 k xmm -func VCVTPD2PSY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PSY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTPD2PSY_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPD2PSY.Z m256 k xmm -// VCVTPD2PSY.Z ymm k xmm -func VCVTPD2PSY_Z(my, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PSY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x}) -} - -// VCVTPD2PS_BCST: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPD2PS.BCST m64 k ymm -// VCVTPD2PS.BCST m64 ymm -func VCVTPD2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2PS_BCST_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.BCST.Z m64 k ymm -func VCVTPD2PS_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y}) -} - -// VCVTPD2PS_RD_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2PS.RD_SAE zmm k ymm -// VCVTPD2PS.RD_SAE zmm ymm -func VCVTPD2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTPD2PS_RD_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RD_SAE.Z zmm k ymm -func VCVTPD2PS_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2PS_RN_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2PS.RN_SAE zmm k ymm -// VCVTPD2PS.RN_SAE zmm ymm -func VCVTPD2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTPD2PS_RN_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RN_SAE.Z zmm k ymm -func VCVTPD2PS_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2PS_RU_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2PS.RU_SAE zmm k ymm -// VCVTPD2PS.RU_SAE zmm ymm -func VCVTPD2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTPD2PS_RU_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RU_SAE.Z zmm k ymm -func VCVTPD2PS_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2PS_RZ_SAE: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Zero). -// -// Forms: -// -// VCVTPD2PS.RZ_SAE zmm k ymm -// VCVTPD2PS.RZ_SAE zmm ymm -func VCVTPD2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTPD2PS_RZ_SAE_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.RZ_SAE.Z zmm k ymm -func VCVTPD2PS_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2PS_Z: Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPD2PS.Z m512 k ymm -// VCVTPD2PS.Z zmm k ymm -func VCVTPD2PS_Z(mz, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y}) -} - -// VCVTPD2QQ: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers. -// -// Forms: -// -// VCVTPD2QQ m128 k xmm -// VCVTPD2QQ m128 xmm -// VCVTPD2QQ m256 k ymm -// VCVTPD2QQ m256 ymm -// VCVTPD2QQ xmm k xmm -// VCVTPD2QQ xmm xmm -// VCVTPD2QQ ymm k ymm -// VCVTPD2QQ ymm ymm -// VCVTPD2QQ m512 k zmm -// VCVTPD2QQ m512 zmm -// VCVTPD2QQ zmm k zmm -// VCVTPD2QQ zmm zmm -func VCVTPD2QQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{}, ops) -} - -// VCVTPD2QQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2QQ.BCST m64 k xmm -// VCVTPD2QQ.BCST m64 k ymm -// VCVTPD2QQ.BCST m64 xmm -// VCVTPD2QQ.BCST m64 ymm -// VCVTPD2QQ.BCST m64 k zmm -// VCVTPD2QQ.BCST m64 zmm -func VCVTPD2QQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2QQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.BCST.Z m64 k xmm -// VCVTPD2QQ.BCST.Z m64 k ymm -// VCVTPD2QQ.BCST.Z m64 k zmm -func VCVTPD2QQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTPD2QQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2QQ.RD_SAE zmm k zmm -// VCVTPD2QQ.RD_SAE zmm zmm -func VCVTPD2QQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTPD2QQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RD_SAE.Z zmm k zmm -func VCVTPD2QQ_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPD2QQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2QQ.RN_SAE zmm k zmm -// VCVTPD2QQ.RN_SAE zmm zmm -func VCVTPD2QQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTPD2QQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RN_SAE.Z zmm k zmm -func VCVTPD2QQ_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPD2QQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2QQ.RU_SAE zmm k zmm -// VCVTPD2QQ.RU_SAE zmm zmm -func VCVTPD2QQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTPD2QQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RU_SAE.Z zmm k zmm -func VCVTPD2QQ_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPD2QQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2QQ.RZ_SAE zmm k zmm -// VCVTPD2QQ.RZ_SAE zmm zmm -func VCVTPD2QQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTPD2QQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.RZ_SAE.Z zmm k zmm -func VCVTPD2QQ_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPD2QQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2QQ.Z m128 k xmm -// VCVTPD2QQ.Z m256 k ymm -// VCVTPD2QQ.Z xmm k xmm -// VCVTPD2QQ.Z ymm k ymm -// VCVTPD2QQ.Z m512 k zmm -// VCVTPD2QQ.Z zmm k zmm -func VCVTPD2QQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2QQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTPD2UDQ: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTPD2UDQ m512 k ymm -// VCVTPD2UDQ m512 ymm -// VCVTPD2UDQ zmm k ymm -// VCVTPD2UDQ zmm ymm -func VCVTPD2UDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{}, ops) -} - -// VCVTPD2UDQX: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTPD2UDQX m128 k xmm -// VCVTPD2UDQX m128 xmm -// VCVTPD2UDQX xmm k xmm -// VCVTPD2UDQX xmm xmm -func VCVTPD2UDQX(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQX.Forms(), sffxs{}, ops) -} - -// VCVTPD2UDQX_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UDQX.BCST m64 k xmm -// VCVTPD2UDQX.BCST m64 xmm -func VCVTPD2UDQX_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQX.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2UDQX_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQX.BCST.Z m64 k xmm -func VCVTPD2UDQX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTPD2UDQX_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQX.Z m128 k xmm -// VCVTPD2UDQX.Z xmm k xmm -func VCVTPD2UDQX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x}) -} - -// VCVTPD2UDQY: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTPD2UDQY m256 k xmm -// VCVTPD2UDQY m256 xmm -// VCVTPD2UDQY ymm k xmm -// VCVTPD2UDQY ymm xmm -func VCVTPD2UDQY(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQY.Forms(), sffxs{}, ops) -} - -// VCVTPD2UDQY_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UDQY.BCST m64 k xmm -// VCVTPD2UDQY.BCST m64 xmm -func VCVTPD2UDQY_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQY.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2UDQY_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQY.BCST.Z m64 k xmm -func VCVTPD2UDQY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTPD2UDQY_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQY.Z m256 k xmm -// VCVTPD2UDQY.Z ymm k xmm -func VCVTPD2UDQY_Z(my, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x}) -} - -// VCVTPD2UDQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UDQ.BCST m64 k ymm -// VCVTPD2UDQ.BCST m64 ymm -func VCVTPD2UDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2UDQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.BCST.Z m64 k ymm -func VCVTPD2UDQ_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y}) -} - -// VCVTPD2UDQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2UDQ.RD_SAE zmm k ymm -// VCVTPD2UDQ.RD_SAE zmm ymm -func VCVTPD2UDQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTPD2UDQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RD_SAE.Z zmm k ymm -func VCVTPD2UDQ_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2UDQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2UDQ.RN_SAE zmm k ymm -// VCVTPD2UDQ.RN_SAE zmm ymm -func VCVTPD2UDQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTPD2UDQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RN_SAE.Z zmm k ymm -func VCVTPD2UDQ_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2UDQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2UDQ.RU_SAE zmm k ymm -// VCVTPD2UDQ.RU_SAE zmm ymm -func VCVTPD2UDQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTPD2UDQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RU_SAE.Z zmm k ymm -func VCVTPD2UDQ_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2UDQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2UDQ.RZ_SAE zmm k ymm -// VCVTPD2UDQ.RZ_SAE zmm ymm -func VCVTPD2UDQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTPD2UDQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.RZ_SAE.Z zmm k ymm -func VCVTPD2UDQ_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTPD2UDQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UDQ.Z m512 k ymm -// VCVTPD2UDQ.Z zmm k ymm -func VCVTPD2UDQ_Z(mz, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UDQ.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y}) -} - -// VCVTPD2UQQ: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers. -// -// Forms: -// -// VCVTPD2UQQ m128 k xmm -// VCVTPD2UQQ m128 xmm -// VCVTPD2UQQ m256 k ymm -// VCVTPD2UQQ m256 ymm -// VCVTPD2UQQ xmm k xmm -// VCVTPD2UQQ xmm xmm -// VCVTPD2UQQ ymm k ymm -// VCVTPD2UQQ ymm ymm -// VCVTPD2UQQ m512 k zmm -// VCVTPD2UQQ m512 zmm -// VCVTPD2UQQ zmm k zmm -// VCVTPD2UQQ zmm zmm -func VCVTPD2UQQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{}, ops) -} - -// VCVTPD2UQQ_BCST: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTPD2UQQ.BCST m64 k xmm -// VCVTPD2UQQ.BCST m64 k ymm -// VCVTPD2UQQ.BCST m64 xmm -// VCVTPD2UQQ.BCST m64 ymm -// VCVTPD2UQQ.BCST m64 k zmm -// VCVTPD2UQQ.BCST m64 zmm -func VCVTPD2UQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPD2UQQ_BCST_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.BCST.Z m64 k xmm -// VCVTPD2UQQ.BCST.Z m64 k ymm -// VCVTPD2UQQ.BCST.Z m64 k zmm -func VCVTPD2UQQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTPD2UQQ_RD_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPD2UQQ.RD_SAE zmm k zmm -// VCVTPD2UQQ.RD_SAE zmm zmm -func VCVTPD2UQQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTPD2UQQ_RD_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RD_SAE.Z zmm k zmm -func VCVTPD2UQQ_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPD2UQQ_RN_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPD2UQQ.RN_SAE zmm k zmm -// VCVTPD2UQQ.RN_SAE zmm zmm -func VCVTPD2UQQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTPD2UQQ_RN_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RN_SAE.Z zmm k zmm -func VCVTPD2UQQ_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPD2UQQ_RU_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPD2UQQ.RU_SAE zmm k zmm -// VCVTPD2UQQ.RU_SAE zmm zmm -func VCVTPD2UQQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTPD2UQQ_RU_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RU_SAE.Z zmm k zmm -func VCVTPD2UQQ_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPD2UQQ_RZ_SAE: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPD2UQQ.RZ_SAE zmm k zmm -// VCVTPD2UQQ.RZ_SAE zmm zmm -func VCVTPD2UQQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTPD2UQQ_RZ_SAE_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.RZ_SAE.Z zmm k zmm -func VCVTPD2UQQ_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPD2UQQ_Z: Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPD2UQQ.Z m128 k xmm -// VCVTPD2UQQ.Z m256 k ymm -// VCVTPD2UQQ.Z xmm k xmm -// VCVTPD2UQQ.Z ymm k ymm -// VCVTPD2UQQ.Z m512 k zmm -// VCVTPD2UQQ.Z zmm k zmm -func VCVTPD2UQQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPD2UQQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTPH2PS: Convert Half-Precision FP Values to Single-Precision FP Values. -// -// Forms: -// -// VCVTPH2PS m128 ymm -// VCVTPH2PS m64 xmm -// VCVTPH2PS xmm xmm -// VCVTPH2PS xmm ymm -// VCVTPH2PS m128 k ymm -// VCVTPH2PS m64 k xmm -// VCVTPH2PS xmm k xmm -// VCVTPH2PS xmm k ymm -// VCVTPH2PS m256 k zmm -// VCVTPH2PS m256 zmm -// VCVTPH2PS ymm k zmm -// VCVTPH2PS ymm zmm -func VCVTPH2PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPH2PS.Forms(), sffxs{}, ops) -} - -// VCVTPH2PS_SAE: Convert Half-Precision FP Values to Single-Precision FP Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTPH2PS.SAE ymm k zmm -// VCVTPH2PS.SAE ymm zmm -func VCVTPH2PS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPH2PS.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTPH2PS_SAE_Z: Convert Half-Precision FP Values to Single-Precision FP Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTPH2PS.SAE.Z ymm k zmm -func VCVTPH2PS_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPH2PS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPH2PS_Z: Convert Half-Precision FP Values to Single-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPH2PS.Z m128 k ymm -// VCVTPH2PS.Z m64 k xmm -// VCVTPH2PS.Z xmm k xmm -// VCVTPH2PS.Z xmm k ymm -// VCVTPH2PS.Z m256 k zmm -// VCVTPH2PS.Z ymm k zmm -func VCVTPH2PS_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPH2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VCVTPS2DQ: Convert Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTPS2DQ m128 xmm -// VCVTPS2DQ m256 ymm -// VCVTPS2DQ xmm xmm -// VCVTPS2DQ ymm ymm -// VCVTPS2DQ m128 k xmm -// VCVTPS2DQ m256 k ymm -// VCVTPS2DQ xmm k xmm -// VCVTPS2DQ ymm k ymm -// VCVTPS2DQ m512 k zmm -// VCVTPS2DQ m512 zmm -// VCVTPS2DQ zmm k zmm -// VCVTPS2DQ zmm zmm -func VCVTPS2DQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{}, ops) -} - -// VCVTPS2DQ_BCST: Convert Packed Single-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTPS2DQ.BCST m32 k xmm -// VCVTPS2DQ.BCST m32 k ymm -// VCVTPS2DQ.BCST m32 xmm -// VCVTPS2DQ.BCST m32 ymm -// VCVTPS2DQ.BCST m32 k zmm -// VCVTPS2DQ.BCST m32 zmm -func VCVTPS2DQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPS2DQ_BCST_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.BCST.Z m32 k xmm -// VCVTPS2DQ.BCST.Z m32 k ymm -// VCVTPS2DQ.BCST.Z m32 k zmm -func VCVTPS2DQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTPS2DQ_RD_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2DQ.RD_SAE zmm k zmm -// VCVTPS2DQ.RD_SAE zmm zmm -func VCVTPS2DQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTPS2DQ_RD_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RD_SAE.Z zmm k zmm -func VCVTPS2DQ_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPS2DQ_RN_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2DQ.RN_SAE zmm k zmm -// VCVTPS2DQ.RN_SAE zmm zmm -func VCVTPS2DQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTPS2DQ_RN_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RN_SAE.Z zmm k zmm -func VCVTPS2DQ_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPS2DQ_RU_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2DQ.RU_SAE zmm k zmm -// VCVTPS2DQ.RU_SAE zmm zmm -func VCVTPS2DQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTPS2DQ_RU_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RU_SAE.Z zmm k zmm -func VCVTPS2DQ_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPS2DQ_RZ_SAE: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Zero). -// -// Forms: -// -// VCVTPS2DQ.RZ_SAE zmm k zmm -// VCVTPS2DQ.RZ_SAE zmm zmm -func VCVTPS2DQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTPS2DQ_RZ_SAE_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.RZ_SAE.Z zmm k zmm -func VCVTPS2DQ_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPS2DQ_Z: Convert Packed Single-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTPS2DQ.Z m128 k xmm -// VCVTPS2DQ.Z m256 k ymm -// VCVTPS2DQ.Z xmm k xmm -// VCVTPS2DQ.Z ymm k ymm -// VCVTPS2DQ.Z m512 k zmm -// VCVTPS2DQ.Z zmm k zmm -func VCVTPS2DQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2DQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTPS2PD: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values. -// -// Forms: -// -// VCVTPS2PD m128 ymm -// VCVTPS2PD m64 xmm -// VCVTPS2PD xmm xmm -// VCVTPS2PD xmm ymm -// VCVTPS2PD m64 k xmm -// VCVTPS2PD xmm k xmm -// VCVTPS2PD m256 k zmm -// VCVTPS2PD m256 zmm -// VCVTPS2PD ymm k zmm -// VCVTPS2PD ymm zmm -// VCVTPS2PD m128 k ymm -// VCVTPS2PD xmm k ymm -func VCVTPS2PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PD.Forms(), sffxs{}, ops) -} - -// VCVTPS2PD_BCST: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Broadcast). -// -// Forms: -// -// VCVTPS2PD.BCST m32 k xmm -// VCVTPS2PD.BCST m32 xmm -// VCVTPS2PD.BCST m32 k zmm -// VCVTPS2PD.BCST m32 zmm -// VCVTPS2PD.BCST m32 k ymm -// VCVTPS2PD.BCST m32 ymm -func VCVTPS2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPS2PD_BCST_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2PD.BCST.Z m32 k xmm -// VCVTPS2PD.BCST.Z m32 k zmm -// VCVTPS2PD.BCST.Z m32 k ymm -func VCVTPS2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTPS2PD_SAE: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTPS2PD.SAE ymm k zmm -// VCVTPS2PD.SAE ymm zmm -func VCVTPS2PD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PD.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTPS2PD_SAE_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTPS2PD.SAE.Z ymm k zmm -func VCVTPS2PD_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPS2PD_Z: Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2PD.Z m64 k xmm -// VCVTPS2PD.Z xmm k xmm -// VCVTPS2PD.Z m256 k zmm -// VCVTPS2PD.Z ymm k zmm -// VCVTPS2PD.Z m128 k ymm -// VCVTPS2PD.Z xmm k ymm -func VCVTPS2PD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VCVTPS2PH: Convert Single-Precision FP value to Half-Precision FP value. -// -// Forms: -// -// VCVTPS2PH imm8 xmm m64 -// VCVTPS2PH imm8 xmm xmm -// VCVTPS2PH imm8 ymm m128 -// VCVTPS2PH imm8 ymm xmm -// VCVTPS2PH imm8 xmm k m64 -// VCVTPS2PH imm8 xmm k xmm -// VCVTPS2PH imm8 ymm k m128 -// VCVTPS2PH imm8 ymm k xmm -// VCVTPS2PH imm8 zmm k m256 -// VCVTPS2PH imm8 zmm k ymm -// VCVTPS2PH imm8 zmm m256 -// VCVTPS2PH imm8 zmm ymm -func VCVTPS2PH(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PH.Forms(), sffxs{}, ops) -} - -// VCVTPS2PH_SAE: Convert Single-Precision FP value to Half-Precision FP value (Suppress All Exceptions). -// -// Forms: -// -// VCVTPS2PH.SAE imm8 zmm k ymm -// VCVTPS2PH.SAE imm8 zmm ymm -func VCVTPS2PH_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PH.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTPS2PH_SAE_Z: Convert Single-Precision FP value to Half-Precision FP value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTPS2PH.SAE.Z imm8 zmm k ymm -func VCVTPS2PH_SAE_Z(i, z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PH.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, y}) -} - -// VCVTPS2PH_Z: Convert Single-Precision FP value to Half-Precision FP value (Zeroing Masking). -// -// Forms: -// -// VCVTPS2PH.Z imm8 xmm k m64 -// VCVTPS2PH.Z imm8 xmm k xmm -// VCVTPS2PH.Z imm8 ymm k m128 -// VCVTPS2PH.Z imm8 ymm k xmm -// VCVTPS2PH.Z imm8 zmm k m256 -// VCVTPS2PH.Z imm8 zmm k ymm -func VCVTPS2PH_Z(i, xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2PH.Forms(), sffxs{sffxZ}, []operand.Op{i, xyz, k, mxy}) -} - -// VCVTPS2QQ: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values. -// -// Forms: -// -// VCVTPS2QQ m128 k ymm -// VCVTPS2QQ m128 ymm -// VCVTPS2QQ m64 k xmm -// VCVTPS2QQ m64 xmm -// VCVTPS2QQ xmm k xmm -// VCVTPS2QQ xmm k ymm -// VCVTPS2QQ xmm xmm -// VCVTPS2QQ xmm ymm -// VCVTPS2QQ m256 k zmm -// VCVTPS2QQ m256 zmm -// VCVTPS2QQ ymm k zmm -// VCVTPS2QQ ymm zmm -func VCVTPS2QQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{}, ops) -} - -// VCVTPS2QQ_BCST: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTPS2QQ.BCST m32 k xmm -// VCVTPS2QQ.BCST m32 k ymm -// VCVTPS2QQ.BCST m32 xmm -// VCVTPS2QQ.BCST m32 ymm -// VCVTPS2QQ.BCST m32 k zmm -// VCVTPS2QQ.BCST m32 zmm -func VCVTPS2QQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPS2QQ_BCST_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.BCST.Z m32 k xmm -// VCVTPS2QQ.BCST.Z m32 k ymm -// VCVTPS2QQ.BCST.Z m32 k zmm -func VCVTPS2QQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTPS2QQ_RD_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2QQ.RD_SAE ymm k zmm -// VCVTPS2QQ.RD_SAE ymm zmm -func VCVTPS2QQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTPS2QQ_RD_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RD_SAE.Z ymm k zmm -func VCVTPS2QQ_RD_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPS2QQ_RN_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2QQ.RN_SAE ymm k zmm -// VCVTPS2QQ.RN_SAE ymm zmm -func VCVTPS2QQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTPS2QQ_RN_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RN_SAE.Z ymm k zmm -func VCVTPS2QQ_RN_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPS2QQ_RU_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2QQ.RU_SAE ymm k zmm -// VCVTPS2QQ.RU_SAE ymm zmm -func VCVTPS2QQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTPS2QQ_RU_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RU_SAE.Z ymm k zmm -func VCVTPS2QQ_RU_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPS2QQ_RZ_SAE: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Zero). -// -// Forms: -// -// VCVTPS2QQ.RZ_SAE ymm k zmm -// VCVTPS2QQ.RZ_SAE ymm zmm -func VCVTPS2QQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTPS2QQ_RZ_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.RZ_SAE.Z ymm k zmm -func VCVTPS2QQ_RZ_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPS2QQ_Z: Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2QQ.Z m128 k ymm -// VCVTPS2QQ.Z m64 k xmm -// VCVTPS2QQ.Z xmm k xmm -// VCVTPS2QQ.Z xmm k ymm -// VCVTPS2QQ.Z m256 k zmm -// VCVTPS2QQ.Z ymm k zmm -func VCVTPS2QQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2QQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VCVTPS2UDQ: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values. -// -// Forms: -// -// VCVTPS2UDQ m128 k xmm -// VCVTPS2UDQ m128 xmm -// VCVTPS2UDQ m256 k ymm -// VCVTPS2UDQ m256 ymm -// VCVTPS2UDQ xmm k xmm -// VCVTPS2UDQ xmm xmm -// VCVTPS2UDQ ymm k ymm -// VCVTPS2UDQ ymm ymm -// VCVTPS2UDQ m512 k zmm -// VCVTPS2UDQ m512 zmm -// VCVTPS2UDQ zmm k zmm -// VCVTPS2UDQ zmm zmm -func VCVTPS2UDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{}, ops) -} - -// VCVTPS2UDQ_BCST: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast). -// -// Forms: -// -// VCVTPS2UDQ.BCST m32 k xmm -// VCVTPS2UDQ.BCST m32 k ymm -// VCVTPS2UDQ.BCST m32 xmm -// VCVTPS2UDQ.BCST m32 ymm -// VCVTPS2UDQ.BCST m32 k zmm -// VCVTPS2UDQ.BCST m32 zmm -func VCVTPS2UDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPS2UDQ_BCST_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.BCST.Z m32 k xmm -// VCVTPS2UDQ.BCST.Z m32 k ymm -// VCVTPS2UDQ.BCST.Z m32 k zmm -func VCVTPS2UDQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTPS2UDQ_RD_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2UDQ.RD_SAE zmm k zmm -// VCVTPS2UDQ.RD_SAE zmm zmm -func VCVTPS2UDQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTPS2UDQ_RD_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RD_SAE.Z zmm k zmm -func VCVTPS2UDQ_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPS2UDQ_RN_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2UDQ.RN_SAE zmm k zmm -// VCVTPS2UDQ.RN_SAE zmm zmm -func VCVTPS2UDQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTPS2UDQ_RN_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RN_SAE.Z zmm k zmm -func VCVTPS2UDQ_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPS2UDQ_RU_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2UDQ.RU_SAE zmm k zmm -// VCVTPS2UDQ.RU_SAE zmm zmm -func VCVTPS2UDQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTPS2UDQ_RU_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RU_SAE.Z zmm k zmm -func VCVTPS2UDQ_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPS2UDQ_RZ_SAE: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Zero). -// -// Forms: -// -// VCVTPS2UDQ.RZ_SAE zmm k zmm -// VCVTPS2UDQ.RZ_SAE zmm zmm -func VCVTPS2UDQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTPS2UDQ_RZ_SAE_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.RZ_SAE.Z zmm k zmm -func VCVTPS2UDQ_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTPS2UDQ_Z: Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2UDQ.Z m128 k xmm -// VCVTPS2UDQ.Z m256 k ymm -// VCVTPS2UDQ.Z xmm k xmm -// VCVTPS2UDQ.Z ymm k ymm -// VCVTPS2UDQ.Z m512 k zmm -// VCVTPS2UDQ.Z zmm k zmm -func VCVTPS2UDQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTPS2UQQ: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values. -// -// Forms: -// -// VCVTPS2UQQ m128 k ymm -// VCVTPS2UQQ m128 ymm -// VCVTPS2UQQ m64 k xmm -// VCVTPS2UQQ m64 xmm -// VCVTPS2UQQ xmm k xmm -// VCVTPS2UQQ xmm k ymm -// VCVTPS2UQQ xmm xmm -// VCVTPS2UQQ xmm ymm -// VCVTPS2UQQ m256 k zmm -// VCVTPS2UQQ m256 zmm -// VCVTPS2UQQ ymm k zmm -// VCVTPS2UQQ ymm zmm -func VCVTPS2UQQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{}, ops) -} - -// VCVTPS2UQQ_BCST: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTPS2UQQ.BCST m32 k xmm -// VCVTPS2UQQ.BCST m32 k ymm -// VCVTPS2UQQ.BCST m32 xmm -// VCVTPS2UQQ.BCST m32 ymm -// VCVTPS2UQQ.BCST m32 k zmm -// VCVTPS2UQQ.BCST m32 zmm -func VCVTPS2UQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTPS2UQQ_BCST_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.BCST.Z m32 k xmm -// VCVTPS2UQQ.BCST.Z m32 k ymm -// VCVTPS2UQQ.BCST.Z m32 k zmm -func VCVTPS2UQQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTPS2UQQ_RD_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTPS2UQQ.RD_SAE ymm k zmm -// VCVTPS2UQQ.RD_SAE ymm zmm -func VCVTPS2UQQ_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTPS2UQQ_RD_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RD_SAE.Z ymm k zmm -func VCVTPS2UQQ_RD_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPS2UQQ_RN_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Nearest). -// -// Forms: -// -// VCVTPS2UQQ.RN_SAE ymm k zmm -// VCVTPS2UQQ.RN_SAE ymm zmm -func VCVTPS2UQQ_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTPS2UQQ_RN_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RN_SAE.Z ymm k zmm -func VCVTPS2UQQ_RN_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPS2UQQ_RU_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTPS2UQQ.RU_SAE ymm k zmm -// VCVTPS2UQQ.RU_SAE ymm zmm -func VCVTPS2UQQ_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTPS2UQQ_RU_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RU_SAE.Z ymm k zmm -func VCVTPS2UQQ_RU_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPS2UQQ_RZ_SAE: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Zero). -// -// Forms: -// -// VCVTPS2UQQ.RZ_SAE ymm k zmm -// VCVTPS2UQQ.RZ_SAE ymm zmm -func VCVTPS2UQQ_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTPS2UQQ_RZ_SAE_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.RZ_SAE.Z ymm k zmm -func VCVTPS2UQQ_RZ_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTPS2UQQ_Z: Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTPS2UQQ.Z m128 k ymm -// VCVTPS2UQQ.Z m64 k xmm -// VCVTPS2UQQ.Z xmm k xmm -// VCVTPS2UQQ.Z xmm k ymm -// VCVTPS2UQQ.Z m256 k zmm -// VCVTPS2UQQ.Z ymm k zmm -func VCVTPS2UQQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTPS2UQQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VCVTQQ2PD: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PD m128 k xmm -// VCVTQQ2PD m128 xmm -// VCVTQQ2PD m256 k ymm -// VCVTQQ2PD m256 ymm -// VCVTQQ2PD xmm k xmm -// VCVTQQ2PD xmm xmm -// VCVTQQ2PD ymm k ymm -// VCVTQQ2PD ymm ymm -// VCVTQQ2PD m512 k zmm -// VCVTQQ2PD m512 zmm -// VCVTQQ2PD zmm k zmm -// VCVTQQ2PD zmm zmm -func VCVTQQ2PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{}, ops) -} - -// VCVTQQ2PD_BCST: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PD.BCST m64 k xmm -// VCVTQQ2PD.BCST m64 k ymm -// VCVTQQ2PD.BCST m64 xmm -// VCVTQQ2PD.BCST m64 ymm -// VCVTQQ2PD.BCST m64 k zmm -// VCVTQQ2PD.BCST m64 zmm -func VCVTQQ2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTQQ2PD_BCST_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.BCST.Z m64 k xmm -// VCVTQQ2PD.BCST.Z m64 k ymm -// VCVTQQ2PD.BCST.Z m64 k zmm -func VCVTQQ2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTQQ2PD_RD_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTQQ2PD.RD_SAE zmm k zmm -// VCVTQQ2PD.RD_SAE zmm zmm -func VCVTQQ2PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTQQ2PD_RD_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RD_SAE.Z zmm k zmm -func VCVTQQ2PD_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTQQ2PD_RN_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTQQ2PD.RN_SAE zmm k zmm -// VCVTQQ2PD.RN_SAE zmm zmm -func VCVTQQ2PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTQQ2PD_RN_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RN_SAE.Z zmm k zmm -func VCVTQQ2PD_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTQQ2PD_RU_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTQQ2PD.RU_SAE zmm k zmm -// VCVTQQ2PD.RU_SAE zmm zmm -func VCVTQQ2PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTQQ2PD_RU_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RU_SAE.Z zmm k zmm -func VCVTQQ2PD_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTQQ2PD_RZ_SAE: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTQQ2PD.RZ_SAE zmm k zmm -// VCVTQQ2PD.RZ_SAE zmm zmm -func VCVTQQ2PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTQQ2PD_RZ_SAE_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.RZ_SAE.Z zmm k zmm -func VCVTQQ2PD_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTQQ2PD_Z: Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PD.Z m128 k xmm -// VCVTQQ2PD.Z m256 k ymm -// VCVTQQ2PD.Z xmm k xmm -// VCVTQQ2PD.Z ymm k ymm -// VCVTQQ2PD.Z m512 k zmm -// VCVTQQ2PD.Z zmm k zmm -func VCVTQQ2PD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTQQ2PS: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PS m512 k ymm -// VCVTQQ2PS m512 ymm -// VCVTQQ2PS zmm k ymm -// VCVTQQ2PS zmm ymm -func VCVTQQ2PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{}, ops) -} - -// VCVTQQ2PSX: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PSX m128 k xmm -// VCVTQQ2PSX m128 xmm -// VCVTQQ2PSX xmm k xmm -// VCVTQQ2PSX xmm xmm -func VCVTQQ2PSX(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PSX.Forms(), sffxs{}, ops) -} - -// VCVTQQ2PSX_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PSX.BCST m64 k xmm -// VCVTQQ2PSX.BCST m64 xmm -func VCVTQQ2PSX_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PSX.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTQQ2PSX_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSX.BCST.Z m64 k xmm -func VCVTQQ2PSX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PSX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTQQ2PSX_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSX.Z m128 k xmm -// VCVTQQ2PSX.Z xmm k xmm -func VCVTQQ2PSX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PSX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x}) -} - -// VCVTQQ2PSY: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTQQ2PSY m256 k xmm -// VCVTQQ2PSY m256 xmm -// VCVTQQ2PSY ymm k xmm -// VCVTQQ2PSY ymm xmm -func VCVTQQ2PSY(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PSY.Forms(), sffxs{}, ops) -} - -// VCVTQQ2PSY_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PSY.BCST m64 k xmm -// VCVTQQ2PSY.BCST m64 xmm -func VCVTQQ2PSY_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PSY.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTQQ2PSY_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSY.BCST.Z m64 k xmm -func VCVTQQ2PSY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PSY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTQQ2PSY_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PSY.Z m256 k xmm -// VCVTQQ2PSY.Z ymm k xmm -func VCVTQQ2PSY_Z(my, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PSY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x}) -} - -// VCVTQQ2PS_BCST: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTQQ2PS.BCST m64 k ymm -// VCVTQQ2PS.BCST m64 ymm -func VCVTQQ2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTQQ2PS_BCST_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.BCST.Z m64 k ymm -func VCVTQQ2PS_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y}) -} - -// VCVTQQ2PS_RD_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTQQ2PS.RD_SAE zmm k ymm -// VCVTQQ2PS.RD_SAE zmm ymm -func VCVTQQ2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTQQ2PS_RD_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RD_SAE.Z zmm k ymm -func VCVTQQ2PS_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTQQ2PS_RN_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTQQ2PS.RN_SAE zmm k ymm -// VCVTQQ2PS.RN_SAE zmm ymm -func VCVTQQ2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTQQ2PS_RN_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RN_SAE.Z zmm k ymm -func VCVTQQ2PS_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTQQ2PS_RU_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTQQ2PS.RU_SAE zmm k ymm -// VCVTQQ2PS.RU_SAE zmm ymm -func VCVTQQ2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTQQ2PS_RU_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RU_SAE.Z zmm k ymm -func VCVTQQ2PS_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTQQ2PS_RZ_SAE: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTQQ2PS.RZ_SAE zmm k ymm -// VCVTQQ2PS.RZ_SAE zmm ymm -func VCVTQQ2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTQQ2PS_RZ_SAE_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.RZ_SAE.Z zmm k ymm -func VCVTQQ2PS_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTQQ2PS_Z: Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTQQ2PS.Z m512 k ymm -// VCVTQQ2PS.Z zmm k ymm -func VCVTQQ2PS_Z(mz, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTQQ2PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y}) -} - -// VCVTSD2SI: Convert Scalar Double-Precision FP Value to Integer. -// -// Forms: -// -// VCVTSD2SI m64 r32 -// VCVTSD2SI xmm r32 -func VCVTSD2SI(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SI.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTSD2SIQ: Convert Scalar Double-Precision FP Value to Integer. -// -// Forms: -// -// VCVTSD2SIQ m64 r64 -// VCVTSD2SIQ xmm r64 -func VCVTSD2SIQ(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SIQ.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTSD2SIQ_RD_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2SIQ.RD_SAE xmm r64 -func VCVTSD2SIQ_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SIQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2SIQ_RN_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2SIQ.RN_SAE xmm r64 -func VCVTSD2SIQ_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SIQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2SIQ_RU_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2SIQ.RU_SAE xmm r64 -func VCVTSD2SIQ_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SIQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2SIQ_RZ_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2SIQ.RZ_SAE xmm r64 -func VCVTSD2SIQ_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SIQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2SI_RD_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2SI.RD_SAE xmm r32 -func VCVTSD2SI_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SI.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2SI_RN_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2SI.RN_SAE xmm r32 -func VCVTSD2SI_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SI.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2SI_RU_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2SI.RU_SAE xmm r32 -func VCVTSD2SI_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SI.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2SI_RZ_SAE: Convert Scalar Double-Precision FP Value to Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2SI.RZ_SAE xmm r32 -func VCVTSD2SI_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SI.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2SS: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value. -// -// Forms: -// -// VCVTSD2SS m64 xmm xmm -// VCVTSD2SS xmm xmm xmm -// VCVTSD2SS m64 xmm k xmm -// VCVTSD2SS xmm xmm k xmm -func VCVTSD2SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{}, ops) -} - -// VCVTSD2SS_RD_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2SS.RD_SAE xmm xmm k xmm -// VCVTSD2SS.RD_SAE xmm xmm xmm -func VCVTSD2SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTSD2SS_RD_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RD_SAE.Z xmm xmm k xmm -func VCVTSD2SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VCVTSD2SS_RN_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2SS.RN_SAE xmm xmm k xmm -// VCVTSD2SS.RN_SAE xmm xmm xmm -func VCVTSD2SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTSD2SS_RN_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RN_SAE.Z xmm xmm k xmm -func VCVTSD2SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VCVTSD2SS_RU_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2SS.RU_SAE xmm xmm k xmm -// VCVTSD2SS.RU_SAE xmm xmm xmm -func VCVTSD2SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTSD2SS_RU_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RU_SAE.Z xmm xmm k xmm -func VCVTSD2SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VCVTSD2SS_RZ_SAE: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSD2SS.RZ_SAE xmm xmm k xmm -// VCVTSD2SS.RZ_SAE xmm xmm xmm -func VCVTSD2SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTSD2SS_RZ_SAE_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.RZ_SAE.Z xmm xmm k xmm -func VCVTSD2SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VCVTSD2SS_Z: Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value (Zeroing Masking). -// -// Forms: -// -// VCVTSD2SS.Z m64 xmm k xmm -// VCVTSD2SS.Z xmm xmm k xmm -func VCVTSD2SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VCVTSD2USIL: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSD2USIL m64 r32 -// VCVTSD2USIL xmm r32 -func VCVTSD2USIL(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIL.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTSD2USIL_RD_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2USIL.RD_SAE xmm r32 -func VCVTSD2USIL_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIL.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2USIL_RN_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2USIL.RN_SAE xmm r32 -func VCVTSD2USIL_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIL.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2USIL_RU_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2USIL.RU_SAE xmm r32 -func VCVTSD2USIL_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIL.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2USIL_RZ_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2USIL.RZ_SAE xmm r32 -func VCVTSD2USIL_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIL.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2USIQ: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSD2USIQ m64 r64 -// VCVTSD2USIQ xmm r64 -func VCVTSD2USIQ(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIQ.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTSD2USIQ_RD_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSD2USIQ.RD_SAE xmm r64 -func VCVTSD2USIQ_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2USIQ_RN_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSD2USIQ.RN_SAE xmm r64 -func VCVTSD2USIQ_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2USIQ_RU_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSD2USIQ.RU_SAE xmm r64 -func VCVTSD2USIQ_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r}) -} - -// VCVTSD2USIQ_RZ_SAE: Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSD2USIQ.RZ_SAE xmm r64 -func VCVTSD2USIQ_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSD2USIQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r}) -} - -// VCVTSI2SDL: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// VCVTSI2SDL m32 xmm xmm -// VCVTSI2SDL r32 xmm xmm -func VCVTSI2SDL(mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SDL.Forms(), sffxs{}, []operand.Op{mr, x, x1}) -} - -// VCVTSI2SDQ: Convert Dword Integer to Scalar Double-Precision FP Value. -// -// Forms: -// -// VCVTSI2SDQ m64 xmm xmm -// VCVTSI2SDQ r64 xmm xmm -func VCVTSI2SDQ(mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SDQ.Forms(), sffxs{}, []operand.Op{mr, x, x1}) -} - -// VCVTSI2SDQ_RD_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSI2SDQ.RD_SAE r64 xmm xmm -func VCVTSI2SDQ_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SDQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SDQ_RN_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSI2SDQ.RN_SAE r64 xmm xmm -func VCVTSI2SDQ_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SDQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SDQ_RU_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSI2SDQ.RU_SAE r64 xmm xmm -func VCVTSI2SDQ_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SDQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SDQ_RZ_SAE: Convert Dword Integer to Scalar Double-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSI2SDQ.RZ_SAE r64 xmm xmm -func VCVTSI2SDQ_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SDQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SSL: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// VCVTSI2SSL m32 xmm xmm -// VCVTSI2SSL r32 xmm xmm -func VCVTSI2SSL(mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSL.Forms(), sffxs{}, []operand.Op{mr, x, x1}) -} - -// VCVTSI2SSL_RD_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSI2SSL.RD_SAE r32 xmm xmm -func VCVTSI2SSL_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSL.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SSL_RN_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSI2SSL.RN_SAE r32 xmm xmm -func VCVTSI2SSL_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSL.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SSL_RU_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSI2SSL.RU_SAE r32 xmm xmm -func VCVTSI2SSL_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSL.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SSL_RZ_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSI2SSL.RZ_SAE r32 xmm xmm -func VCVTSI2SSL_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSL.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SSQ: Convert Dword Integer to Scalar Single-Precision FP Value. -// -// Forms: -// -// VCVTSI2SSQ m64 xmm xmm -// VCVTSI2SSQ r64 xmm xmm -func VCVTSI2SSQ(mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSQ.Forms(), sffxs{}, []operand.Op{mr, x, x1}) -} - -// VCVTSI2SSQ_RD_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSI2SSQ.RD_SAE r64 xmm xmm -func VCVTSI2SSQ_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SSQ_RN_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Nearest). -// -// Forms: -// -// VCVTSI2SSQ.RN_SAE r64 xmm xmm -func VCVTSI2SSQ_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SSQ_RU_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSI2SSQ.RU_SAE r64 xmm xmm -func VCVTSI2SSQ_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSI2SSQ_RZ_SAE: Convert Dword Integer to Scalar Single-Precision FP Value (Round Towards Zero). -// -// Forms: -// -// VCVTSI2SSQ.RZ_SAE r64 xmm xmm -func VCVTSI2SSQ_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSI2SSQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTSS2SD: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value. -// -// Forms: -// -// VCVTSS2SD m32 xmm xmm -// VCVTSS2SD xmm xmm xmm -// VCVTSS2SD m32 xmm k xmm -// VCVTSS2SD xmm xmm k xmm -func VCVTSS2SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SD.Forms(), sffxs{}, ops) -} - -// VCVTSS2SD_SAE: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Suppress All Exceptions). -// -// Forms: -// -// VCVTSS2SD.SAE xmm xmm k xmm -// VCVTSS2SD.SAE xmm xmm xmm -func VCVTSS2SD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SD.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTSS2SD_SAE_Z: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTSS2SD.SAE.Z xmm xmm k xmm -func VCVTSS2SD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VCVTSS2SD_Z: Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value (Zeroing Masking). -// -// Forms: -// -// VCVTSS2SD.Z m32 xmm k xmm -// VCVTSS2SD.Z xmm xmm k xmm -func VCVTSS2SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VCVTSS2SI: Convert Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTSS2SI m32 r32 -// VCVTSS2SI xmm r32 -func VCVTSS2SI(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SI.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTSS2SIQ: Convert Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTSS2SIQ m32 r64 -// VCVTSS2SIQ xmm r64 -func VCVTSS2SIQ(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SIQ.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTSS2SIQ_RD_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2SIQ.RD_SAE xmm r64 -func VCVTSS2SIQ_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SIQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2SIQ_RN_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2SIQ.RN_SAE xmm r64 -func VCVTSS2SIQ_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SIQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2SIQ_RU_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2SIQ.RU_SAE xmm r64 -func VCVTSS2SIQ_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SIQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2SIQ_RZ_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2SIQ.RZ_SAE xmm r64 -func VCVTSS2SIQ_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SIQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2SI_RD_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2SI.RD_SAE xmm r32 -func VCVTSS2SI_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SI.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2SI_RN_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2SI.RN_SAE xmm r32 -func VCVTSS2SI_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SI.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2SI_RU_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2SI.RU_SAE xmm r32 -func VCVTSS2SI_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SI.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2SI_RZ_SAE: Convert Scalar Single-Precision FP Value to Dword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2SI.RZ_SAE xmm r32 -func VCVTSS2SI_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2SI.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2USIL: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSS2USIL m32 r32 -// VCVTSS2USIL xmm r32 -func VCVTSS2USIL(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIL.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTSS2USIL_RD_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2USIL.RD_SAE xmm r32 -func VCVTSS2USIL_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIL.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2USIL_RN_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2USIL.RN_SAE xmm r32 -func VCVTSS2USIL_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIL.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2USIL_RU_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2USIL.RU_SAE xmm r32 -func VCVTSS2USIL_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIL.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2USIL_RZ_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2USIL.RZ_SAE xmm r32 -func VCVTSS2USIL_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIL.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2USIQ: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer. -// -// Forms: -// -// VCVTSS2USIQ m32 r64 -// VCVTSS2USIQ xmm r64 -func VCVTSS2USIQ(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIQ.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTSS2USIQ_RD_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTSS2USIQ.RD_SAE xmm r64 -func VCVTSS2USIQ_RD_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2USIQ_RN_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Nearest). -// -// Forms: -// -// VCVTSS2USIQ.RN_SAE xmm r64 -func VCVTSS2USIQ_RN_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2USIQ_RU_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTSS2USIQ.RU_SAE xmm r64 -func VCVTSS2USIQ_RU_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{x, r}) -} - -// VCVTSS2USIQ_RZ_SAE: Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer (Round Towards Zero). -// -// Forms: -// -// VCVTSS2USIQ.RZ_SAE xmm r64 -func VCVTSS2USIQ_RZ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTSS2USIQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{x, r}) -} - -// VCVTTPD2DQ: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPD2DQ m512 k ymm -// VCVTTPD2DQ m512 ymm -// VCVTTPD2DQ zmm k ymm -// VCVTTPD2DQ zmm ymm -func VCVTTPD2DQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQ.Forms(), sffxs{}, ops) -} - -// VCVTTPD2DQX: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPD2DQX m128 xmm -// VCVTTPD2DQX xmm xmm -// VCVTTPD2DQX m128 k xmm -// VCVTTPD2DQX xmm k xmm -func VCVTTPD2DQX(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQX.Forms(), sffxs{}, ops) -} - -// VCVTTPD2DQX_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2DQX.BCST m64 k xmm -// VCVTTPD2DQX.BCST m64 xmm -func VCVTTPD2DQX_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQX.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPD2DQX_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQX.BCST.Z m64 k xmm -func VCVTTPD2DQX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTTPD2DQX_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQX.Z m128 k xmm -// VCVTTPD2DQX.Z xmm k xmm -func VCVTTPD2DQX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x}) -} - -// VCVTTPD2DQY: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPD2DQY m256 xmm -// VCVTTPD2DQY ymm xmm -// VCVTTPD2DQY m256 k xmm -// VCVTTPD2DQY ymm k xmm -func VCVTTPD2DQY(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQY.Forms(), sffxs{}, ops) -} - -// VCVTTPD2DQY_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2DQY.BCST m64 k xmm -// VCVTTPD2DQY.BCST m64 xmm -func VCVTTPD2DQY_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQY.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPD2DQY_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQY.BCST.Z m64 k xmm -func VCVTTPD2DQY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTTPD2DQY_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQY.Z m256 k xmm -// VCVTTPD2DQY.Z ymm k xmm -func VCVTTPD2DQY_Z(my, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x}) -} - -// VCVTTPD2DQ_BCST: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2DQ.BCST m64 k ymm -// VCVTTPD2DQ.BCST m64 ymm -func VCVTTPD2DQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPD2DQ_BCST_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQ.BCST.Z m64 k ymm -func VCVTTPD2DQ_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y}) -} - -// VCVTTPD2DQ_SAE: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2DQ.SAE zmm k ymm -// VCVTTPD2DQ.SAE zmm ymm -func VCVTTPD2DQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTTPD2DQ_SAE_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQ.SAE.Z zmm k ymm -func VCVTTPD2DQ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTTPD2DQ_Z: Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2DQ.Z m512 k ymm -// VCVTTPD2DQ.Z zmm k ymm -func VCVTTPD2DQ_Z(mz, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2DQ.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y}) -} - -// VCVTTPD2QQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers. -// -// Forms: -// -// VCVTTPD2QQ m128 k xmm -// VCVTTPD2QQ m128 xmm -// VCVTTPD2QQ m256 k ymm -// VCVTTPD2QQ m256 ymm -// VCVTTPD2QQ xmm k xmm -// VCVTTPD2QQ xmm xmm -// VCVTTPD2QQ ymm k ymm -// VCVTTPD2QQ ymm ymm -// VCVTTPD2QQ m512 k zmm -// VCVTTPD2QQ m512 zmm -// VCVTTPD2QQ zmm k zmm -// VCVTTPD2QQ zmm zmm -func VCVTTPD2QQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2QQ.Forms(), sffxs{}, ops) -} - -// VCVTTPD2QQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2QQ.BCST m64 k xmm -// VCVTTPD2QQ.BCST m64 k ymm -// VCVTTPD2QQ.BCST m64 xmm -// VCVTTPD2QQ.BCST m64 ymm -// VCVTTPD2QQ.BCST m64 k zmm -// VCVTTPD2QQ.BCST m64 zmm -func VCVTTPD2QQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPD2QQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2QQ.BCST.Z m64 k xmm -// VCVTTPD2QQ.BCST.Z m64 k ymm -// VCVTTPD2QQ.BCST.Z m64 k zmm -func VCVTTPD2QQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTTPD2QQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2QQ.SAE zmm k zmm -// VCVTTPD2QQ.SAE zmm zmm -func VCVTTPD2QQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTTPD2QQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2QQ.SAE.Z zmm k zmm -func VCVTTPD2QQ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTTPD2QQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2QQ.Z m128 k xmm -// VCVTTPD2QQ.Z m256 k ymm -// VCVTTPD2QQ.Z xmm k xmm -// VCVTTPD2QQ.Z ymm k ymm -// VCVTTPD2QQ.Z m512 k zmm -// VCVTTPD2QQ.Z zmm k zmm -func VCVTTPD2QQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2QQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTTPD2UDQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTTPD2UDQ m512 k ymm -// VCVTTPD2UDQ m512 ymm -// VCVTTPD2UDQ zmm k ymm -// VCVTTPD2UDQ zmm ymm -func VCVTTPD2UDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQ.Forms(), sffxs{}, ops) -} - -// VCVTTPD2UDQX: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTTPD2UDQX m128 k xmm -// VCVTTPD2UDQX m128 xmm -// VCVTTPD2UDQX xmm k xmm -// VCVTTPD2UDQX xmm xmm -func VCVTTPD2UDQX(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQX.Forms(), sffxs{}, ops) -} - -// VCVTTPD2UDQX_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UDQX.BCST m64 k xmm -// VCVTTPD2UDQX.BCST m64 xmm -func VCVTTPD2UDQX_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQX.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPD2UDQX_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQX.BCST.Z m64 k xmm -func VCVTTPD2UDQX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTTPD2UDQX_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQX.Z m128 k xmm -// VCVTTPD2UDQX.Z xmm k xmm -func VCVTTPD2UDQX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x}) -} - -// VCVTTPD2UDQY: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VCVTTPD2UDQY m256 k xmm -// VCVTTPD2UDQY m256 xmm -// VCVTTPD2UDQY ymm k xmm -// VCVTTPD2UDQY ymm xmm -func VCVTTPD2UDQY(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQY.Forms(), sffxs{}, ops) -} - -// VCVTTPD2UDQY_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UDQY.BCST m64 k xmm -// VCVTTPD2UDQY.BCST m64 xmm -func VCVTTPD2UDQY_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQY.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPD2UDQY_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQY.BCST.Z m64 k xmm -func VCVTTPD2UDQY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTTPD2UDQY_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQY.Z m256 k xmm -// VCVTTPD2UDQY.Z ymm k xmm -func VCVTTPD2UDQY_Z(my, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x}) -} - -// VCVTTPD2UDQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UDQ.BCST m64 k ymm -// VCVTTPD2UDQ.BCST m64 ymm -func VCVTTPD2UDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPD2UDQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQ.BCST.Z m64 k ymm -func VCVTTPD2UDQ_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y}) -} - -// VCVTTPD2UDQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2UDQ.SAE zmm k ymm -// VCVTTPD2UDQ.SAE zmm ymm -func VCVTTPD2UDQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTTPD2UDQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQ.SAE.Z zmm k ymm -func VCVTTPD2UDQ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTTPD2UDQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UDQ.Z m512 k ymm -// VCVTTPD2UDQ.Z zmm k ymm -func VCVTTPD2UDQ_Z(mz, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UDQ.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y}) -} - -// VCVTTPD2UQQ: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers. -// -// Forms: -// -// VCVTTPD2UQQ m128 k xmm -// VCVTTPD2UQQ m128 xmm -// VCVTTPD2UQQ m256 k ymm -// VCVTTPD2UQQ m256 ymm -// VCVTTPD2UQQ xmm k xmm -// VCVTTPD2UQQ xmm xmm -// VCVTTPD2UQQ ymm k ymm -// VCVTTPD2UQQ ymm ymm -// VCVTTPD2UQQ m512 k zmm -// VCVTTPD2UQQ m512 zmm -// VCVTTPD2UQQ zmm k zmm -// VCVTTPD2UQQ zmm zmm -func VCVTTPD2UQQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UQQ.Forms(), sffxs{}, ops) -} - -// VCVTTPD2UQQ_BCST: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VCVTTPD2UQQ.BCST m64 k xmm -// VCVTTPD2UQQ.BCST m64 k ymm -// VCVTTPD2UQQ.BCST m64 xmm -// VCVTTPD2UQQ.BCST m64 ymm -// VCVTTPD2UQQ.BCST m64 k zmm -// VCVTTPD2UQQ.BCST m64 zmm -func VCVTTPD2UQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPD2UQQ_BCST_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UQQ.BCST.Z m64 k xmm -// VCVTTPD2UQQ.BCST.Z m64 k ymm -// VCVTTPD2UQQ.BCST.Z m64 k zmm -func VCVTTPD2UQQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTTPD2UQQ_SAE: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPD2UQQ.SAE zmm k zmm -// VCVTTPD2UQQ.SAE zmm zmm -func VCVTTPD2UQQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTTPD2UQQ_SAE_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UQQ.SAE.Z zmm k zmm -func VCVTTPD2UQQ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTTPD2UQQ_Z: Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPD2UQQ.Z m128 k xmm -// VCVTTPD2UQQ.Z m256 k ymm -// VCVTTPD2UQQ.Z xmm k xmm -// VCVTTPD2UQQ.Z ymm k ymm -// VCVTTPD2UQQ.Z m512 k zmm -// VCVTTPD2UQQ.Z zmm k zmm -func VCVTTPD2UQQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPD2UQQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTTPS2DQ: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers. -// -// Forms: -// -// VCVTTPS2DQ m128 xmm -// VCVTTPS2DQ m256 ymm -// VCVTTPS2DQ xmm xmm -// VCVTTPS2DQ ymm ymm -// VCVTTPS2DQ m128 k xmm -// VCVTTPS2DQ m256 k ymm -// VCVTTPS2DQ xmm k xmm -// VCVTTPS2DQ ymm k ymm -// VCVTTPS2DQ m512 k zmm -// VCVTTPS2DQ m512 zmm -// VCVTTPS2DQ zmm k zmm -// VCVTTPS2DQ zmm zmm -func VCVTTPS2DQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2DQ.Forms(), sffxs{}, ops) -} - -// VCVTTPS2DQ_BCST: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Broadcast). -// -// Forms: -// -// VCVTTPS2DQ.BCST m32 k xmm -// VCVTTPS2DQ.BCST m32 k ymm -// VCVTTPS2DQ.BCST m32 xmm -// VCVTTPS2DQ.BCST m32 ymm -// VCVTTPS2DQ.BCST m32 k zmm -// VCVTTPS2DQ.BCST m32 zmm -func VCVTTPS2DQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPS2DQ_BCST_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2DQ.BCST.Z m32 k xmm -// VCVTTPS2DQ.BCST.Z m32 k ymm -// VCVTTPS2DQ.BCST.Z m32 k zmm -func VCVTTPS2DQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTTPS2DQ_SAE: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2DQ.SAE zmm k zmm -// VCVTTPS2DQ.SAE zmm zmm -func VCVTTPS2DQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTTPS2DQ_SAE_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2DQ.SAE.Z zmm k zmm -func VCVTTPS2DQ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTTPS2DQ_Z: Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2DQ.Z m128 k xmm -// VCVTTPS2DQ.Z m256 k ymm -// VCVTTPS2DQ.Z xmm k xmm -// VCVTTPS2DQ.Z ymm k ymm -// VCVTTPS2DQ.Z m512 k zmm -// VCVTTPS2DQ.Z zmm k zmm -func VCVTTPS2DQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2DQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTTPS2QQ: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values. -// -// Forms: -// -// VCVTTPS2QQ m128 k ymm -// VCVTTPS2QQ m128 ymm -// VCVTTPS2QQ m64 k xmm -// VCVTTPS2QQ m64 xmm -// VCVTTPS2QQ xmm k xmm -// VCVTTPS2QQ xmm k ymm -// VCVTTPS2QQ xmm xmm -// VCVTTPS2QQ xmm ymm -// VCVTTPS2QQ m256 k zmm -// VCVTTPS2QQ m256 zmm -// VCVTTPS2QQ ymm k zmm -// VCVTTPS2QQ ymm zmm -func VCVTTPS2QQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2QQ.Forms(), sffxs{}, ops) -} - -// VCVTTPS2QQ_BCST: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTTPS2QQ.BCST m32 k xmm -// VCVTTPS2QQ.BCST m32 k ymm -// VCVTTPS2QQ.BCST m32 xmm -// VCVTTPS2QQ.BCST m32 ymm -// VCVTTPS2QQ.BCST m32 k zmm -// VCVTTPS2QQ.BCST m32 zmm -func VCVTTPS2QQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPS2QQ_BCST_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2QQ.BCST.Z m32 k xmm -// VCVTTPS2QQ.BCST.Z m32 k ymm -// VCVTTPS2QQ.BCST.Z m32 k zmm -func VCVTTPS2QQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTTPS2QQ_SAE: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2QQ.SAE ymm k zmm -// VCVTTPS2QQ.SAE ymm zmm -func VCVTTPS2QQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTTPS2QQ_SAE_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2QQ.SAE.Z ymm k zmm -func VCVTTPS2QQ_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTTPS2QQ_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2QQ.Z m128 k ymm -// VCVTTPS2QQ.Z m64 k xmm -// VCVTTPS2QQ.Z xmm k xmm -// VCVTTPS2QQ.Z xmm k ymm -// VCVTTPS2QQ.Z m256 k zmm -// VCVTTPS2QQ.Z ymm k zmm -func VCVTTPS2QQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2QQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VCVTTPS2UDQ: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values. -// -// Forms: -// -// VCVTTPS2UDQ m128 k xmm -// VCVTTPS2UDQ m128 xmm -// VCVTTPS2UDQ m256 k ymm -// VCVTTPS2UDQ m256 ymm -// VCVTTPS2UDQ xmm k xmm -// VCVTTPS2UDQ xmm xmm -// VCVTTPS2UDQ ymm k ymm -// VCVTTPS2UDQ ymm ymm -// VCVTTPS2UDQ m512 k zmm -// VCVTTPS2UDQ m512 zmm -// VCVTTPS2UDQ zmm k zmm -// VCVTTPS2UDQ zmm zmm -func VCVTTPS2UDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UDQ.Forms(), sffxs{}, ops) -} - -// VCVTTPS2UDQ_BCST: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast). -// -// Forms: -// -// VCVTTPS2UDQ.BCST m32 k xmm -// VCVTTPS2UDQ.BCST m32 k ymm -// VCVTTPS2UDQ.BCST m32 xmm -// VCVTTPS2UDQ.BCST m32 ymm -// VCVTTPS2UDQ.BCST m32 k zmm -// VCVTTPS2UDQ.BCST m32 zmm -func VCVTTPS2UDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPS2UDQ_BCST_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UDQ.BCST.Z m32 k xmm -// VCVTTPS2UDQ.BCST.Z m32 k ymm -// VCVTTPS2UDQ.BCST.Z m32 k zmm -func VCVTTPS2UDQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTTPS2UDQ_SAE: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2UDQ.SAE zmm k zmm -// VCVTTPS2UDQ.SAE zmm zmm -func VCVTTPS2UDQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTTPS2UDQ_SAE_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UDQ.SAE.Z zmm k zmm -func VCVTTPS2UDQ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTTPS2UDQ_Z: Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UDQ.Z m128 k xmm -// VCVTTPS2UDQ.Z m256 k ymm -// VCVTTPS2UDQ.Z xmm k xmm -// VCVTTPS2UDQ.Z ymm k ymm -// VCVTTPS2UDQ.Z m512 k zmm -// VCVTTPS2UDQ.Z zmm k zmm -func VCVTTPS2UDQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTTPS2UQQ: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values. -// -// Forms: -// -// VCVTTPS2UQQ m128 k ymm -// VCVTTPS2UQQ m128 ymm -// VCVTTPS2UQQ m64 k xmm -// VCVTTPS2UQQ m64 xmm -// VCVTTPS2UQQ xmm k xmm -// VCVTTPS2UQQ xmm k ymm -// VCVTTPS2UQQ xmm xmm -// VCVTTPS2UQQ xmm ymm -// VCVTTPS2UQQ m256 k zmm -// VCVTTPS2UQQ m256 zmm -// VCVTTPS2UQQ ymm k zmm -// VCVTTPS2UQQ ymm zmm -func VCVTTPS2UQQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UQQ.Forms(), sffxs{}, ops) -} - -// VCVTTPS2UQQ_BCST: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast). -// -// Forms: -// -// VCVTTPS2UQQ.BCST m32 k xmm -// VCVTTPS2UQQ.BCST m32 k ymm -// VCVTTPS2UQQ.BCST m32 xmm -// VCVTTPS2UQQ.BCST m32 ymm -// VCVTTPS2UQQ.BCST m32 k zmm -// VCVTTPS2UQQ.BCST m32 zmm -func VCVTTPS2UQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTTPS2UQQ_BCST_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UQQ.BCST.Z m32 k xmm -// VCVTTPS2UQQ.BCST.Z m32 k ymm -// VCVTTPS2UQQ.BCST.Z m32 k zmm -func VCVTTPS2UQQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTTPS2UQQ_SAE: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Suppress All Exceptions). -// -// Forms: -// -// VCVTTPS2UQQ.SAE ymm k zmm -// VCVTTPS2UQQ.SAE ymm zmm -func VCVTTPS2UQQ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxSAE}, ops) -} - -// VCVTTPS2UQQ_SAE_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UQQ.SAE.Z ymm k zmm -func VCVTTPS2UQQ_SAE_Z(y, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{y, k, z}) -} - -// VCVTTPS2UQQ_Z: Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VCVTTPS2UQQ.Z m128 k ymm -// VCVTTPS2UQQ.Z m64 k xmm -// VCVTTPS2UQQ.Z xmm k xmm -// VCVTTPS2UQQ.Z xmm k ymm -// VCVTTPS2UQQ.Z m256 k zmm -// VCVTTPS2UQQ.Z ymm k zmm -func VCVTTPS2UQQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTPS2UQQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VCVTTSD2SI: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// VCVTTSD2SI m64 r32 -// VCVTTSD2SI xmm r32 -func VCVTTSD2SI(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSD2SI.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTTSD2SIQ: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer. -// -// Forms: -// -// VCVTTSD2SIQ m64 r64 -// VCVTTSD2SIQ xmm r64 -func VCVTTSD2SIQ(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSD2SIQ.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTTSD2SIQ_SAE: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2SIQ.SAE xmm r64 -func VCVTTSD2SIQ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSD2SIQ.Forms(), sffxs{sffxSAE}, []operand.Op{x, r}) -} - -// VCVTTSD2SI_SAE: Convert with Truncation Scalar Double-Precision FP Value to Signed Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2SI.SAE xmm r32 -func VCVTTSD2SI_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSD2SI.Forms(), sffxs{sffxSAE}, []operand.Op{x, r}) -} - -// VCVTTSD2USIL: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSD2USIL m64 r32 -// VCVTTSD2USIL xmm r32 -func VCVTTSD2USIL(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSD2USIL.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTTSD2USIL_SAE: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2USIL.SAE xmm r32 -func VCVTTSD2USIL_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSD2USIL.Forms(), sffxs{sffxSAE}, []operand.Op{x, r}) -} - -// VCVTTSD2USIQ: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSD2USIQ m64 r64 -// VCVTTSD2USIQ xmm r64 -func VCVTTSD2USIQ(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSD2USIQ.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTTSD2USIQ_SAE: Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSD2USIQ.SAE xmm r64 -func VCVTTSD2USIQ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSD2USIQ.Forms(), sffxs{sffxSAE}, []operand.Op{x, r}) -} - -// VCVTTSS2SI: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTTSS2SI m32 r32 -// VCVTTSS2SI xmm r32 -func VCVTTSS2SI(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSS2SI.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTTSS2SIQ: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer. -// -// Forms: -// -// VCVTTSS2SIQ m32 r64 -// VCVTTSS2SIQ xmm r64 -func VCVTTSS2SIQ(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSS2SIQ.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTTSS2SIQ_SAE: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2SIQ.SAE xmm r64 -func VCVTTSS2SIQ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSS2SIQ.Forms(), sffxs{sffxSAE}, []operand.Op{x, r}) -} - -// VCVTTSS2SI_SAE: Convert with Truncation Scalar Single-Precision FP Value to Dword Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2SI.SAE xmm r32 -func VCVTTSS2SI_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSS2SI.Forms(), sffxs{sffxSAE}, []operand.Op{x, r}) -} - -// VCVTTSS2USIL: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSS2USIL m32 r32 -// VCVTTSS2USIL xmm r32 -func VCVTTSS2USIL(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSS2USIL.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTTSS2USIL_SAE: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2USIL.SAE xmm r32 -func VCVTTSS2USIL_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSS2USIL.Forms(), sffxs{sffxSAE}, []operand.Op{x, r}) -} - -// VCVTTSS2USIQ: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer. -// -// Forms: -// -// VCVTTSS2USIQ m32 r64 -// VCVTTSS2USIQ xmm r64 -func VCVTTSS2USIQ(mx, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSS2USIQ.Forms(), sffxs{}, []operand.Op{mx, r}) -} - -// VCVTTSS2USIQ_SAE: Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer (Suppress All Exceptions). -// -// Forms: -// -// VCVTTSS2USIQ.SAE xmm r64 -func VCVTTSS2USIQ_SAE(x, r operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTTSS2USIQ.Forms(), sffxs{sffxSAE}, []operand.Op{x, r}) -} - -// VCVTUDQ2PD: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUDQ2PD m128 k ymm -// VCVTUDQ2PD m128 ymm -// VCVTUDQ2PD m64 k xmm -// VCVTUDQ2PD m64 xmm -// VCVTUDQ2PD xmm k xmm -// VCVTUDQ2PD xmm k ymm -// VCVTUDQ2PD xmm xmm -// VCVTUDQ2PD xmm ymm -// VCVTUDQ2PD m256 k zmm -// VCVTUDQ2PD m256 zmm -// VCVTUDQ2PD ymm k zmm -// VCVTUDQ2PD ymm zmm -func VCVTUDQ2PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PD.Forms(), sffxs{}, ops) -} - -// VCVTUDQ2PD_BCST: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUDQ2PD.BCST m32 k xmm -// VCVTUDQ2PD.BCST m32 k ymm -// VCVTUDQ2PD.BCST m32 xmm -// VCVTUDQ2PD.BCST m32 ymm -// VCVTUDQ2PD.BCST m32 k zmm -// VCVTUDQ2PD.BCST m32 zmm -func VCVTUDQ2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTUDQ2PD_BCST_Z: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PD.BCST.Z m32 k xmm -// VCVTUDQ2PD.BCST.Z m32 k ymm -// VCVTUDQ2PD.BCST.Z m32 k zmm -func VCVTUDQ2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTUDQ2PD_Z: Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PD.Z m128 k ymm -// VCVTUDQ2PD.Z m64 k xmm -// VCVTUDQ2PD.Z xmm k xmm -// VCVTUDQ2PD.Z xmm k ymm -// VCVTUDQ2PD.Z m256 k zmm -// VCVTUDQ2PD.Z ymm k zmm -func VCVTUDQ2PD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VCVTUDQ2PS: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUDQ2PS m128 k xmm -// VCVTUDQ2PS m128 xmm -// VCVTUDQ2PS m256 k ymm -// VCVTUDQ2PS m256 ymm -// VCVTUDQ2PS xmm k xmm -// VCVTUDQ2PS xmm xmm -// VCVTUDQ2PS ymm k ymm -// VCVTUDQ2PS ymm ymm -// VCVTUDQ2PS m512 k zmm -// VCVTUDQ2PS m512 zmm -// VCVTUDQ2PS zmm k zmm -// VCVTUDQ2PS zmm zmm -func VCVTUDQ2PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{}, ops) -} - -// VCVTUDQ2PS_BCST: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUDQ2PS.BCST m32 k xmm -// VCVTUDQ2PS.BCST m32 k ymm -// VCVTUDQ2PS.BCST m32 xmm -// VCVTUDQ2PS.BCST m32 ymm -// VCVTUDQ2PS.BCST m32 k zmm -// VCVTUDQ2PS.BCST m32 zmm -func VCVTUDQ2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTUDQ2PS_BCST_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.BCST.Z m32 k xmm -// VCVTUDQ2PS.BCST.Z m32 k ymm -// VCVTUDQ2PS.BCST.Z m32 k zmm -func VCVTUDQ2PS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTUDQ2PS_RD_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUDQ2PS.RD_SAE zmm k zmm -// VCVTUDQ2PS.RD_SAE zmm zmm -func VCVTUDQ2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTUDQ2PS_RD_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RD_SAE.Z zmm k zmm -func VCVTUDQ2PS_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTUDQ2PS_RN_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTUDQ2PS.RN_SAE zmm k zmm -// VCVTUDQ2PS.RN_SAE zmm zmm -func VCVTUDQ2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTUDQ2PS_RN_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RN_SAE.Z zmm k zmm -func VCVTUDQ2PS_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTUDQ2PS_RU_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUDQ2PS.RU_SAE zmm k zmm -// VCVTUDQ2PS.RU_SAE zmm zmm -func VCVTUDQ2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTUDQ2PS_RU_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RU_SAE.Z zmm k zmm -func VCVTUDQ2PS_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTUDQ2PS_RZ_SAE: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTUDQ2PS.RZ_SAE zmm k zmm -// VCVTUDQ2PS.RZ_SAE zmm zmm -func VCVTUDQ2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTUDQ2PS_RZ_SAE_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.RZ_SAE.Z zmm k zmm -func VCVTUDQ2PS_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTUDQ2PS_Z: Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUDQ2PS.Z m128 k xmm -// VCVTUDQ2PS.Z m256 k ymm -// VCVTUDQ2PS.Z xmm k xmm -// VCVTUDQ2PS.Z ymm k ymm -// VCVTUDQ2PS.Z m512 k zmm -// VCVTUDQ2PS.Z zmm k zmm -func VCVTUDQ2PS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUDQ2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTUQQ2PD: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PD m128 k xmm -// VCVTUQQ2PD m128 xmm -// VCVTUQQ2PD m256 k ymm -// VCVTUQQ2PD m256 ymm -// VCVTUQQ2PD xmm k xmm -// VCVTUQQ2PD xmm xmm -// VCVTUQQ2PD ymm k ymm -// VCVTUQQ2PD ymm ymm -// VCVTUQQ2PD m512 k zmm -// VCVTUQQ2PD m512 zmm -// VCVTUQQ2PD zmm k zmm -// VCVTUQQ2PD zmm zmm -func VCVTUQQ2PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{}, ops) -} - -// VCVTUQQ2PD_BCST: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PD.BCST m64 k xmm -// VCVTUQQ2PD.BCST m64 k ymm -// VCVTUQQ2PD.BCST m64 xmm -// VCVTUQQ2PD.BCST m64 ymm -// VCVTUQQ2PD.BCST m64 k zmm -// VCVTUQQ2PD.BCST m64 zmm -func VCVTUQQ2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTUQQ2PD_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.BCST.Z m64 k xmm -// VCVTUQQ2PD.BCST.Z m64 k ymm -// VCVTUQQ2PD.BCST.Z m64 k zmm -func VCVTUQQ2PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VCVTUQQ2PD_RD_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUQQ2PD.RD_SAE zmm k zmm -// VCVTUQQ2PD.RD_SAE zmm zmm -func VCVTUQQ2PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTUQQ2PD_RD_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RD_SAE.Z zmm k zmm -func VCVTUQQ2PD_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTUQQ2PD_RN_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTUQQ2PD.RN_SAE zmm k zmm -// VCVTUQQ2PD.RN_SAE zmm zmm -func VCVTUQQ2PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTUQQ2PD_RN_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RN_SAE.Z zmm k zmm -func VCVTUQQ2PD_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTUQQ2PD_RU_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUQQ2PD.RU_SAE zmm k zmm -// VCVTUQQ2PD.RU_SAE zmm zmm -func VCVTUQQ2PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTUQQ2PD_RU_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RU_SAE.Z zmm k zmm -func VCVTUQQ2PD_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTUQQ2PD_RZ_SAE: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTUQQ2PD.RZ_SAE zmm k zmm -// VCVTUQQ2PD.RZ_SAE zmm zmm -func VCVTUQQ2PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTUQQ2PD_RZ_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.RZ_SAE.Z zmm k zmm -func VCVTUQQ2PD_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VCVTUQQ2PD_Z: Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PD.Z m128 k xmm -// VCVTUQQ2PD.Z m256 k ymm -// VCVTUQQ2PD.Z xmm k xmm -// VCVTUQQ2PD.Z ymm k ymm -// VCVTUQQ2PD.Z m512 k zmm -// VCVTUQQ2PD.Z zmm k zmm -func VCVTUQQ2PD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VCVTUQQ2PS: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PS m512 k ymm -// VCVTUQQ2PS m512 ymm -// VCVTUQQ2PS zmm k ymm -// VCVTUQQ2PS zmm ymm -func VCVTUQQ2PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{}, ops) -} - -// VCVTUQQ2PSX: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PSX m128 k xmm -// VCVTUQQ2PSX m128 xmm -// VCVTUQQ2PSX xmm k xmm -// VCVTUQQ2PSX xmm xmm -func VCVTUQQ2PSX(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PSX.Forms(), sffxs{}, ops) -} - -// VCVTUQQ2PSX_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PSX.BCST m64 k xmm -// VCVTUQQ2PSX.BCST m64 xmm -func VCVTUQQ2PSX_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PSX.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTUQQ2PSX_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSX.BCST.Z m64 k xmm -func VCVTUQQ2PSX_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PSX.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTUQQ2PSX_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSX.Z m128 k xmm -// VCVTUQQ2PSX.Z xmm k xmm -func VCVTUQQ2PSX_Z(mx, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PSX.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, x}) -} - -// VCVTUQQ2PSY: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VCVTUQQ2PSY m256 k xmm -// VCVTUQQ2PSY m256 xmm -// VCVTUQQ2PSY ymm k xmm -// VCVTUQQ2PSY ymm xmm -func VCVTUQQ2PSY(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PSY.Forms(), sffxs{}, ops) -} - -// VCVTUQQ2PSY_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PSY.BCST m64 k xmm -// VCVTUQQ2PSY.BCST m64 xmm -func VCVTUQQ2PSY_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PSY.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTUQQ2PSY_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSY.BCST.Z m64 k xmm -func VCVTUQQ2PSY_BCST_Z(m, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PSY.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, x}) -} - -// VCVTUQQ2PSY_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PSY.Z m256 k xmm -// VCVTUQQ2PSY.Z ymm k xmm -func VCVTUQQ2PSY_Z(my, k, x operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PSY.Forms(), sffxs{sffxZ}, []operand.Op{my, k, x}) -} - -// VCVTUQQ2PS_BCST: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VCVTUQQ2PS.BCST m64 k ymm -// VCVTUQQ2PS.BCST m64 ymm -func VCVTUQQ2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VCVTUQQ2PS_BCST_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.BCST.Z m64 k ymm -func VCVTUQQ2PS_BCST_Z(m, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, y}) -} - -// VCVTUQQ2PS_RD_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUQQ2PS.RD_SAE zmm k ymm -// VCVTUQQ2PS.RD_SAE zmm ymm -func VCVTUQQ2PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VCVTUQQ2PS_RD_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RD_SAE.Z zmm k ymm -func VCVTUQQ2PS_RD_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTUQQ2PS_RN_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VCVTUQQ2PS.RN_SAE zmm k ymm -// VCVTUQQ2PS.RN_SAE zmm ymm -func VCVTUQQ2PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VCVTUQQ2PS_RN_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RN_SAE.Z zmm k ymm -func VCVTUQQ2PS_RN_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTUQQ2PS_RU_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUQQ2PS.RU_SAE zmm k ymm -// VCVTUQQ2PS.RU_SAE zmm ymm -func VCVTUQQ2PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VCVTUQQ2PS_RU_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RU_SAE.Z zmm k ymm -func VCVTUQQ2PS_RU_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTUQQ2PS_RZ_SAE: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VCVTUQQ2PS.RZ_SAE zmm k ymm -// VCVTUQQ2PS.RZ_SAE zmm ymm -func VCVTUQQ2PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VCVTUQQ2PS_RZ_SAE_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.RZ_SAE.Z zmm k ymm -func VCVTUQQ2PS_RZ_SAE_Z(z, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, y}) -} - -// VCVTUQQ2PS_Z: Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VCVTUQQ2PS.Z m512 k ymm -// VCVTUQQ2PS.Z zmm k ymm -func VCVTUQQ2PS_Z(mz, k, y operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUQQ2PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, y}) -} - -// VCVTUSI2SDL: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SDL m32 xmm xmm -// VCVTUSI2SDL r32 xmm xmm -func VCVTUSI2SDL(mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SDL.Forms(), sffxs{}, []operand.Op{mr, x, x1}) -} - -// VCVTUSI2SDQ: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SDQ m64 xmm xmm -// VCVTUSI2SDQ r64 xmm xmm -func VCVTUSI2SDQ(mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SDQ.Forms(), sffxs{}, []operand.Op{mr, x, x1}) -} - -// VCVTUSI2SDQ_RD_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUSI2SDQ.RD_SAE r64 xmm xmm -func VCVTUSI2SDQ_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SDQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SDQ_RN_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VCVTUSI2SDQ.RN_SAE r64 xmm xmm -func VCVTUSI2SDQ_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SDQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SDQ_RU_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUSI2SDQ.RU_SAE r64 xmm xmm -func VCVTUSI2SDQ_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SDQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SDQ_RZ_SAE: Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VCVTUSI2SDQ.RZ_SAE r64 xmm xmm -func VCVTUSI2SDQ_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SDQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SSL: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SSL m32 xmm xmm -// VCVTUSI2SSL r32 xmm xmm -func VCVTUSI2SSL(mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSL.Forms(), sffxs{}, []operand.Op{mr, x, x1}) -} - -// VCVTUSI2SSL_RD_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUSI2SSL.RD_SAE r32 xmm xmm -func VCVTUSI2SSL_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSL.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SSL_RN_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VCVTUSI2SSL.RN_SAE r32 xmm xmm -func VCVTUSI2SSL_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSL.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SSL_RU_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUSI2SSL.RU_SAE r32 xmm xmm -func VCVTUSI2SSL_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSL.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SSL_RZ_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VCVTUSI2SSL.RZ_SAE r32 xmm xmm -func VCVTUSI2SSL_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSL.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SSQ: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VCVTUSI2SSQ m64 xmm xmm -// VCVTUSI2SSQ r64 xmm xmm -func VCVTUSI2SSQ(mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSQ.Forms(), sffxs{}, []operand.Op{mr, x, x1}) -} - -// VCVTUSI2SSQ_RD_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VCVTUSI2SSQ.RD_SAE r64 xmm xmm -func VCVTUSI2SSQ_RD_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSQ.Forms(), sffxs{sffxRD_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SSQ_RN_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VCVTUSI2SSQ.RN_SAE r64 xmm xmm -func VCVTUSI2SSQ_RN_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSQ.Forms(), sffxs{sffxRN_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SSQ_RU_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VCVTUSI2SSQ.RU_SAE r64 xmm xmm -func VCVTUSI2SSQ_RU_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSQ.Forms(), sffxs{sffxRU_SAE}, []operand.Op{r, x, x1}) -} - -// VCVTUSI2SSQ_RZ_SAE: Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VCVTUSI2SSQ.RZ_SAE r64 xmm xmm -func VCVTUSI2SSQ_RZ_SAE(r, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVCVTUSI2SSQ.Forms(), sffxs{sffxRZ_SAE}, []operand.Op{r, x, x1}) -} - -// VDBPSADBW: Double Block Packed Sum-Absolute-Differences on Unsigned Bytes. -// -// Forms: -// -// VDBPSADBW imm8 m128 xmm k xmm -// VDBPSADBW imm8 m128 xmm xmm -// VDBPSADBW imm8 m256 ymm k ymm -// VDBPSADBW imm8 m256 ymm ymm -// VDBPSADBW imm8 xmm xmm k xmm -// VDBPSADBW imm8 xmm xmm xmm -// VDBPSADBW imm8 ymm ymm k ymm -// VDBPSADBW imm8 ymm ymm ymm -// VDBPSADBW imm8 m512 zmm k zmm -// VDBPSADBW imm8 m512 zmm zmm -// VDBPSADBW imm8 zmm zmm k zmm -// VDBPSADBW imm8 zmm zmm zmm -func VDBPSADBW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDBPSADBW.Forms(), sffxs{}, ops) -} - -// VDBPSADBW_Z: Double Block Packed Sum-Absolute-Differences on Unsigned Bytes (Zeroing Masking). -// -// Forms: -// -// VDBPSADBW.Z imm8 m128 xmm k xmm -// VDBPSADBW.Z imm8 m256 ymm k ymm -// VDBPSADBW.Z imm8 xmm xmm k xmm -// VDBPSADBW.Z imm8 ymm ymm k ymm -// VDBPSADBW.Z imm8 m512 zmm k zmm -// VDBPSADBW.Z imm8 zmm zmm k zmm -func VDBPSADBW_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVDBPSADBW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VDIVPD: Divide Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VDIVPD m128 xmm xmm -// VDIVPD m256 ymm ymm -// VDIVPD xmm xmm xmm -// VDIVPD ymm ymm ymm -// VDIVPD m128 xmm k xmm -// VDIVPD m256 ymm k ymm -// VDIVPD xmm xmm k xmm -// VDIVPD ymm ymm k ymm -// VDIVPD m512 zmm k zmm -// VDIVPD m512 zmm zmm -// VDIVPD zmm zmm k zmm -// VDIVPD zmm zmm zmm -func VDIVPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{}, ops) -} - -// VDIVPD_BCST: Divide Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VDIVPD.BCST m64 xmm k xmm -// VDIVPD.BCST m64 xmm xmm -// VDIVPD.BCST m64 ymm k ymm -// VDIVPD.BCST m64 ymm ymm -// VDIVPD.BCST m64 zmm k zmm -// VDIVPD.BCST m64 zmm zmm -func VDIVPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VDIVPD_BCST_Z: Divide Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VDIVPD.BCST.Z m64 xmm k xmm -// VDIVPD.BCST.Z m64 ymm k ymm -// VDIVPD.BCST.Z m64 zmm k zmm -func VDIVPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VDIVPD_RD_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVPD.RD_SAE zmm zmm k zmm -// VDIVPD.RD_SAE zmm zmm zmm -func VDIVPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VDIVPD_RD_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RD_SAE.Z zmm zmm k zmm -func VDIVPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VDIVPD_RN_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVPD.RN_SAE zmm zmm k zmm -// VDIVPD.RN_SAE zmm zmm zmm -func VDIVPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VDIVPD_RN_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RN_SAE.Z zmm zmm k zmm -func VDIVPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VDIVPD_RU_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVPD.RU_SAE zmm zmm k zmm -// VDIVPD.RU_SAE zmm zmm zmm -func VDIVPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VDIVPD_RU_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RU_SAE.Z zmm zmm k zmm -func VDIVPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VDIVPD_RZ_SAE: Divide Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVPD.RZ_SAE zmm zmm k zmm -// VDIVPD.RZ_SAE zmm zmm zmm -func VDIVPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VDIVPD_RZ_SAE_Z: Divide Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVPD.RZ_SAE.Z zmm zmm k zmm -func VDIVPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VDIVPD_Z: Divide Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVPD.Z m128 xmm k xmm -// VDIVPD.Z m256 ymm k ymm -// VDIVPD.Z xmm xmm k xmm -// VDIVPD.Z ymm ymm k ymm -// VDIVPD.Z m512 zmm k zmm -// VDIVPD.Z zmm zmm k zmm -func VDIVPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VDIVPS: Divide Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VDIVPS m128 xmm xmm -// VDIVPS m256 ymm ymm -// VDIVPS xmm xmm xmm -// VDIVPS ymm ymm ymm -// VDIVPS m128 xmm k xmm -// VDIVPS m256 ymm k ymm -// VDIVPS xmm xmm k xmm -// VDIVPS ymm ymm k ymm -// VDIVPS m512 zmm k zmm -// VDIVPS m512 zmm zmm -// VDIVPS zmm zmm k zmm -// VDIVPS zmm zmm zmm -func VDIVPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{}, ops) -} - -// VDIVPS_BCST: Divide Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VDIVPS.BCST m32 xmm k xmm -// VDIVPS.BCST m32 xmm xmm -// VDIVPS.BCST m32 ymm k ymm -// VDIVPS.BCST m32 ymm ymm -// VDIVPS.BCST m32 zmm k zmm -// VDIVPS.BCST m32 zmm zmm -func VDIVPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VDIVPS_BCST_Z: Divide Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VDIVPS.BCST.Z m32 xmm k xmm -// VDIVPS.BCST.Z m32 ymm k ymm -// VDIVPS.BCST.Z m32 zmm k zmm -func VDIVPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VDIVPS_RD_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVPS.RD_SAE zmm zmm k zmm -// VDIVPS.RD_SAE zmm zmm zmm -func VDIVPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VDIVPS_RD_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RD_SAE.Z zmm zmm k zmm -func VDIVPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VDIVPS_RN_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVPS.RN_SAE zmm zmm k zmm -// VDIVPS.RN_SAE zmm zmm zmm -func VDIVPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VDIVPS_RN_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RN_SAE.Z zmm zmm k zmm -func VDIVPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VDIVPS_RU_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVPS.RU_SAE zmm zmm k zmm -// VDIVPS.RU_SAE zmm zmm zmm -func VDIVPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VDIVPS_RU_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RU_SAE.Z zmm zmm k zmm -func VDIVPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VDIVPS_RZ_SAE: Divide Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVPS.RZ_SAE zmm zmm k zmm -// VDIVPS.RZ_SAE zmm zmm zmm -func VDIVPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VDIVPS_RZ_SAE_Z: Divide Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVPS.RZ_SAE.Z zmm zmm k zmm -func VDIVPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VDIVPS_Z: Divide Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVPS.Z m128 xmm k xmm -// VDIVPS.Z m256 ymm k ymm -// VDIVPS.Z xmm xmm k xmm -// VDIVPS.Z ymm ymm k ymm -// VDIVPS.Z m512 zmm k zmm -// VDIVPS.Z zmm zmm k zmm -func VDIVPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VDIVSD: Divide Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VDIVSD m64 xmm xmm -// VDIVSD xmm xmm xmm -// VDIVSD m64 xmm k xmm -// VDIVSD xmm xmm k xmm -func VDIVSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{}, ops) -} - -// VDIVSD_RD_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVSD.RD_SAE xmm xmm k xmm -// VDIVSD.RD_SAE xmm xmm xmm -func VDIVSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VDIVSD_RD_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RD_SAE.Z xmm xmm k xmm -func VDIVSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VDIVSD_RN_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVSD.RN_SAE xmm xmm k xmm -// VDIVSD.RN_SAE xmm xmm xmm -func VDIVSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VDIVSD_RN_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RN_SAE.Z xmm xmm k xmm -func VDIVSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VDIVSD_RU_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVSD.RU_SAE xmm xmm k xmm -// VDIVSD.RU_SAE xmm xmm xmm -func VDIVSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VDIVSD_RU_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RU_SAE.Z xmm xmm k xmm -func VDIVSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VDIVSD_RZ_SAE: Divide Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVSD.RZ_SAE xmm xmm k xmm -// VDIVSD.RZ_SAE xmm xmm xmm -func VDIVSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VDIVSD_RZ_SAE_Z: Divide Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVSD.RZ_SAE.Z xmm xmm k xmm -func VDIVSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VDIVSD_Z: Divide Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVSD.Z m64 xmm k xmm -// VDIVSD.Z xmm xmm k xmm -func VDIVSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VDIVSS: Divide Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VDIVSS m32 xmm xmm -// VDIVSS xmm xmm xmm -// VDIVSS m32 xmm k xmm -// VDIVSS xmm xmm k xmm -func VDIVSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{}, ops) -} - -// VDIVSS_RD_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VDIVSS.RD_SAE xmm xmm k xmm -// VDIVSS.RD_SAE xmm xmm xmm -func VDIVSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VDIVSS_RD_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RD_SAE.Z xmm xmm k xmm -func VDIVSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VDIVSS_RN_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VDIVSS.RN_SAE xmm xmm k xmm -// VDIVSS.RN_SAE xmm xmm xmm -func VDIVSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VDIVSS_RN_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RN_SAE.Z xmm xmm k xmm -func VDIVSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VDIVSS_RU_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VDIVSS.RU_SAE xmm xmm k xmm -// VDIVSS.RU_SAE xmm xmm xmm -func VDIVSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VDIVSS_RU_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RU_SAE.Z xmm xmm k xmm -func VDIVSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VDIVSS_RZ_SAE: Divide Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VDIVSS.RZ_SAE xmm xmm k xmm -// VDIVSS.RZ_SAE xmm xmm xmm -func VDIVSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VDIVSS_RZ_SAE_Z: Divide Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VDIVSS.RZ_SAE.Z xmm xmm k xmm -func VDIVSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VDIVSS_Z: Divide Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VDIVSS.Z m32 xmm k xmm -// VDIVSS.Z xmm xmm k xmm -func VDIVSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVDIVSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VDPPD: Dot Product of Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VDPPD imm8 m128 xmm xmm -// VDPPD imm8 xmm xmm xmm -func VDPPD(i, mx, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVDPPD.Forms(), sffxs{}, []operand.Op{i, mx, x, x1}) -} - -// VDPPS: Dot Product of Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VDPPS imm8 m128 xmm xmm -// VDPPS imm8 m256 ymm ymm -// VDPPS imm8 xmm xmm xmm -// VDPPS imm8 ymm ymm ymm -func VDPPS(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVDPPS.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1}) -} - -// VEXP2PD: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error. -// -// Forms: -// -// VEXP2PD m512 k zmm -// VEXP2PD m512 zmm -// VEXP2PD zmm k zmm -// VEXP2PD zmm zmm -func VEXP2PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PD.Forms(), sffxs{}, ops) -} - -// VEXP2PD_BCST: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast). -// -// Forms: -// -// VEXP2PD.BCST m64 k zmm -// VEXP2PD.BCST m64 zmm -func VEXP2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VEXP2PD_BCST_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VEXP2PD.BCST.Z m64 k zmm -func VEXP2PD_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z}) -} - -// VEXP2PD_SAE: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VEXP2PD.SAE zmm k zmm -// VEXP2PD.SAE zmm zmm -func VEXP2PD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PD.Forms(), sffxs{sffxSAE}, ops) -} - -// VEXP2PD_SAE_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VEXP2PD.SAE.Z zmm k zmm -func VEXP2PD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VEXP2PD_Z: Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Zeroing Masking). -// -// Forms: -// -// VEXP2PD.Z m512 k zmm -// VEXP2PD.Z zmm k zmm -func VEXP2PD_Z(mz, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PD.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z}) -} - -// VEXP2PS: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error. -// -// Forms: -// -// VEXP2PS m512 k zmm -// VEXP2PS m512 zmm -// VEXP2PS zmm k zmm -// VEXP2PS zmm zmm -func VEXP2PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PS.Forms(), sffxs{}, ops) -} - -// VEXP2PS_BCST: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast). -// -// Forms: -// -// VEXP2PS.BCST m32 k zmm -// VEXP2PS.BCST m32 zmm -func VEXP2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VEXP2PS_BCST_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VEXP2PS.BCST.Z m32 k zmm -func VEXP2PS_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z}) -} - -// VEXP2PS_SAE: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VEXP2PS.SAE zmm k zmm -// VEXP2PS.SAE zmm zmm -func VEXP2PS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PS.Forms(), sffxs{sffxSAE}, ops) -} - -// VEXP2PS_SAE_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VEXP2PS.SAE.Z zmm k zmm -func VEXP2PS_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VEXP2PS_Z: Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error (Zeroing Masking). -// -// Forms: -// -// VEXP2PS.Z m512 k zmm -// VEXP2PS.Z zmm k zmm -func VEXP2PS_Z(mz, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVEXP2PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z}) -} - -// VEXPANDPD: Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory. -// -// Forms: -// -// VEXPANDPD m256 k ymm -// VEXPANDPD m256 ymm -// VEXPANDPD ymm k ymm -// VEXPANDPD ymm ymm -// VEXPANDPD m512 k zmm -// VEXPANDPD m512 zmm -// VEXPANDPD zmm k zmm -// VEXPANDPD zmm zmm -// VEXPANDPD m128 k xmm -// VEXPANDPD m128 xmm -// VEXPANDPD xmm k xmm -// VEXPANDPD xmm xmm -func VEXPANDPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXPANDPD.Forms(), sffxs{}, ops) -} - -// VEXPANDPD_Z: Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory (Zeroing Masking). -// -// Forms: -// -// VEXPANDPD.Z m256 k ymm -// VEXPANDPD.Z ymm k ymm -// VEXPANDPD.Z m512 k zmm -// VEXPANDPD.Z zmm k zmm -// VEXPANDPD.Z m128 k xmm -// VEXPANDPD.Z xmm k xmm -func VEXPANDPD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVEXPANDPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VEXPANDPS: Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory. -// -// Forms: -// -// VEXPANDPS m128 k xmm -// VEXPANDPS m128 xmm -// VEXPANDPS m256 k ymm -// VEXPANDPS m256 ymm -// VEXPANDPS xmm k xmm -// VEXPANDPS xmm xmm -// VEXPANDPS ymm k ymm -// VEXPANDPS ymm ymm -// VEXPANDPS m512 k zmm -// VEXPANDPS m512 zmm -// VEXPANDPS zmm k zmm -// VEXPANDPS zmm zmm -func VEXPANDPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXPANDPS.Forms(), sffxs{}, ops) -} - -// VEXPANDPS_Z: Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory (Zeroing Masking). -// -// Forms: -// -// VEXPANDPS.Z m128 k xmm -// VEXPANDPS.Z m256 k ymm -// VEXPANDPS.Z xmm k xmm -// VEXPANDPS.Z ymm k ymm -// VEXPANDPS.Z m512 k zmm -// VEXPANDPS.Z zmm k zmm -func VEXPANDPS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVEXPANDPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VEXTRACTF128: Extract Packed Floating-Point Values. -// -// Forms: -// -// VEXTRACTF128 imm8 ymm m128 -// VEXTRACTF128 imm8 ymm xmm -func VEXTRACTF128(i, y, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTF128.Forms(), sffxs{}, []operand.Op{i, y, mx}) -} - -// VEXTRACTF32X4: Extract 128 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF32X4 imm8 ymm k m128 -// VEXTRACTF32X4 imm8 ymm k xmm -// VEXTRACTF32X4 imm8 ymm m128 -// VEXTRACTF32X4 imm8 ymm xmm -// VEXTRACTF32X4 imm8 zmm k m128 -// VEXTRACTF32X4 imm8 zmm k xmm -// VEXTRACTF32X4 imm8 zmm m128 -// VEXTRACTF32X4 imm8 zmm xmm -func VEXTRACTF32X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTF32X4.Forms(), sffxs{}, ops) -} - -// VEXTRACTF32X4_Z: Extract 128 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF32X4.Z imm8 ymm k m128 -// VEXTRACTF32X4.Z imm8 ymm k xmm -// VEXTRACTF32X4.Z imm8 zmm k m128 -// VEXTRACTF32X4.Z imm8 zmm k xmm -func VEXTRACTF32X4_Z(i, yz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTF32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, yz, k, mx}) -} - -// VEXTRACTF32X8: Extract 256 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF32X8 imm8 zmm k m256 -// VEXTRACTF32X8 imm8 zmm k ymm -// VEXTRACTF32X8 imm8 zmm m256 -// VEXTRACTF32X8 imm8 zmm ymm -func VEXTRACTF32X8(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTF32X8.Forms(), sffxs{}, ops) -} - -// VEXTRACTF32X8_Z: Extract 256 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF32X8.Z imm8 zmm k m256 -// VEXTRACTF32X8.Z imm8 zmm k ymm -func VEXTRACTF32X8_Z(i, z, k, my operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTF32X8.Forms(), sffxs{sffxZ}, []operand.Op{i, z, k, my}) -} - -// VEXTRACTF64X2: Extract 128 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF64X2 imm8 ymm k m128 -// VEXTRACTF64X2 imm8 ymm k xmm -// VEXTRACTF64X2 imm8 ymm m128 -// VEXTRACTF64X2 imm8 ymm xmm -// VEXTRACTF64X2 imm8 zmm k m128 -// VEXTRACTF64X2 imm8 zmm k xmm -// VEXTRACTF64X2 imm8 zmm m128 -// VEXTRACTF64X2 imm8 zmm xmm -func VEXTRACTF64X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTF64X2.Forms(), sffxs{}, ops) -} - -// VEXTRACTF64X2_Z: Extract 128 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF64X2.Z imm8 ymm k m128 -// VEXTRACTF64X2.Z imm8 ymm k xmm -// VEXTRACTF64X2.Z imm8 zmm k m128 -// VEXTRACTF64X2.Z imm8 zmm k xmm -func VEXTRACTF64X2_Z(i, yz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTF64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, yz, k, mx}) -} - -// VEXTRACTF64X4: Extract 256 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VEXTRACTF64X4 imm8 zmm k m256 -// VEXTRACTF64X4 imm8 zmm k ymm -// VEXTRACTF64X4 imm8 zmm m256 -// VEXTRACTF64X4 imm8 zmm ymm -func VEXTRACTF64X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTF64X4.Forms(), sffxs{}, ops) -} - -// VEXTRACTF64X4_Z: Extract 256 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTF64X4.Z imm8 zmm k m256 -// VEXTRACTF64X4.Z imm8 zmm k ymm -func VEXTRACTF64X4_Z(i, z, k, my operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTF64X4.Forms(), sffxs{sffxZ}, []operand.Op{i, z, k, my}) -} - -// VEXTRACTI128: Extract Packed Integer Values. -// -// Forms: -// -// VEXTRACTI128 imm8 ymm m128 -// VEXTRACTI128 imm8 ymm xmm -func VEXTRACTI128(i, y, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTI128.Forms(), sffxs{}, []operand.Op{i, y, mx}) -} - -// VEXTRACTI32X4: Extract 128 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VEXTRACTI32X4 imm8 ymm k m128 -// VEXTRACTI32X4 imm8 ymm k xmm -// VEXTRACTI32X4 imm8 ymm m128 -// VEXTRACTI32X4 imm8 ymm xmm -// VEXTRACTI32X4 imm8 zmm k m128 -// VEXTRACTI32X4 imm8 zmm k xmm -// VEXTRACTI32X4 imm8 zmm m128 -// VEXTRACTI32X4 imm8 zmm xmm -func VEXTRACTI32X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTI32X4.Forms(), sffxs{}, ops) -} - -// VEXTRACTI32X4_Z: Extract 128 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI32X4.Z imm8 ymm k m128 -// VEXTRACTI32X4.Z imm8 ymm k xmm -// VEXTRACTI32X4.Z imm8 zmm k m128 -// VEXTRACTI32X4.Z imm8 zmm k xmm -func VEXTRACTI32X4_Z(i, yz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTI32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, yz, k, mx}) -} - -// VEXTRACTI32X8: Extract 256 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VEXTRACTI32X8 imm8 zmm k m256 -// VEXTRACTI32X8 imm8 zmm k ymm -// VEXTRACTI32X8 imm8 zmm m256 -// VEXTRACTI32X8 imm8 zmm ymm -func VEXTRACTI32X8(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTI32X8.Forms(), sffxs{}, ops) -} - -// VEXTRACTI32X8_Z: Extract 256 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI32X8.Z imm8 zmm k m256 -// VEXTRACTI32X8.Z imm8 zmm k ymm -func VEXTRACTI32X8_Z(i, z, k, my operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTI32X8.Forms(), sffxs{sffxZ}, []operand.Op{i, z, k, my}) -} - -// VEXTRACTI64X2: Extract 128 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VEXTRACTI64X2 imm8 ymm k m128 -// VEXTRACTI64X2 imm8 ymm k xmm -// VEXTRACTI64X2 imm8 ymm m128 -// VEXTRACTI64X2 imm8 ymm xmm -// VEXTRACTI64X2 imm8 zmm k m128 -// VEXTRACTI64X2 imm8 zmm k xmm -// VEXTRACTI64X2 imm8 zmm m128 -// VEXTRACTI64X2 imm8 zmm xmm -func VEXTRACTI64X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTI64X2.Forms(), sffxs{}, ops) -} - -// VEXTRACTI64X2_Z: Extract 128 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI64X2.Z imm8 ymm k m128 -// VEXTRACTI64X2.Z imm8 ymm k xmm -// VEXTRACTI64X2.Z imm8 zmm k m128 -// VEXTRACTI64X2.Z imm8 zmm k xmm -func VEXTRACTI64X2_Z(i, yz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTI64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, yz, k, mx}) -} - -// VEXTRACTI64X4: Extract 256 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VEXTRACTI64X4 imm8 zmm k m256 -// VEXTRACTI64X4 imm8 zmm k ymm -// VEXTRACTI64X4 imm8 zmm m256 -// VEXTRACTI64X4 imm8 zmm ymm -func VEXTRACTI64X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTI64X4.Forms(), sffxs{}, ops) -} - -// VEXTRACTI64X4_Z: Extract 256 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VEXTRACTI64X4.Z imm8 zmm k m256 -// VEXTRACTI64X4.Z imm8 zmm k ymm -func VEXTRACTI64X4_Z(i, z, k, my operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTI64X4.Forms(), sffxs{sffxZ}, []operand.Op{i, z, k, my}) -} - -// VEXTRACTPS: Extract Packed Single Precision Floating-Point Value. -// -// Forms: -// -// VEXTRACTPS imm8 xmm m32 -// VEXTRACTPS imm8 xmm r32 -func VEXTRACTPS(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcVEXTRACTPS.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// VFIXUPIMMPD: Fix Up Special Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFIXUPIMMPD imm8 m128 xmm k xmm -// VFIXUPIMMPD imm8 m128 xmm xmm -// VFIXUPIMMPD imm8 m256 ymm k ymm -// VFIXUPIMMPD imm8 m256 ymm ymm -// VFIXUPIMMPD imm8 xmm xmm k xmm -// VFIXUPIMMPD imm8 xmm xmm xmm -// VFIXUPIMMPD imm8 ymm ymm k ymm -// VFIXUPIMMPD imm8 ymm ymm ymm -// VFIXUPIMMPD imm8 m512 zmm k zmm -// VFIXUPIMMPD imm8 m512 zmm zmm -// VFIXUPIMMPD imm8 zmm zmm k zmm -// VFIXUPIMMPD imm8 zmm zmm zmm -func VFIXUPIMMPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPD.Forms(), sffxs{}, ops) -} - -// VFIXUPIMMPD_BCST: Fix Up Special Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFIXUPIMMPD.BCST imm8 m64 xmm k xmm -// VFIXUPIMMPD.BCST imm8 m64 xmm xmm -// VFIXUPIMMPD.BCST imm8 m64 ymm k ymm -// VFIXUPIMMPD.BCST imm8 m64 ymm ymm -// VFIXUPIMMPD.BCST imm8 m64 zmm k zmm -// VFIXUPIMMPD.BCST imm8 m64 zmm zmm -func VFIXUPIMMPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFIXUPIMMPD_BCST_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPD.BCST.Z imm8 m64 xmm k xmm -// VFIXUPIMMPD.BCST.Z imm8 m64 ymm k ymm -// VFIXUPIMMPD.BCST.Z imm8 m64 zmm k zmm -func VFIXUPIMMPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VFIXUPIMMPD_SAE: Fix Up Special Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMPD.SAE imm8 zmm zmm k zmm -// VFIXUPIMMPD.SAE imm8 zmm zmm zmm -func VFIXUPIMMPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxSAE}, ops) -} - -// VFIXUPIMMPD_SAE_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPD.SAE.Z imm8 zmm zmm k zmm -func VFIXUPIMMPD_SAE_Z(i, z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, z1, k, z2}) -} - -// VFIXUPIMMPD_Z: Fix Up Special Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPD.Z imm8 m128 xmm k xmm -// VFIXUPIMMPD.Z imm8 m256 ymm k ymm -// VFIXUPIMMPD.Z imm8 xmm xmm k xmm -// VFIXUPIMMPD.Z imm8 ymm ymm k ymm -// VFIXUPIMMPD.Z imm8 m512 zmm k zmm -// VFIXUPIMMPD.Z imm8 zmm zmm k zmm -func VFIXUPIMMPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VFIXUPIMMPS: Fix Up Special Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFIXUPIMMPS imm8 m256 ymm k ymm -// VFIXUPIMMPS imm8 m256 ymm ymm -// VFIXUPIMMPS imm8 ymm ymm k ymm -// VFIXUPIMMPS imm8 ymm ymm ymm -// VFIXUPIMMPS imm8 m512 zmm k zmm -// VFIXUPIMMPS imm8 m512 zmm zmm -// VFIXUPIMMPS imm8 zmm zmm k zmm -// VFIXUPIMMPS imm8 zmm zmm zmm -// VFIXUPIMMPS imm8 m128 xmm k xmm -// VFIXUPIMMPS imm8 m128 xmm xmm -// VFIXUPIMMPS imm8 xmm xmm k xmm -// VFIXUPIMMPS imm8 xmm xmm xmm -func VFIXUPIMMPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPS.Forms(), sffxs{}, ops) -} - -// VFIXUPIMMPS_BCST: Fix Up Special Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFIXUPIMMPS.BCST imm8 m32 ymm k ymm -// VFIXUPIMMPS.BCST imm8 m32 ymm ymm -// VFIXUPIMMPS.BCST imm8 m32 zmm k zmm -// VFIXUPIMMPS.BCST imm8 m32 zmm zmm -// VFIXUPIMMPS.BCST imm8 m32 xmm k xmm -// VFIXUPIMMPS.BCST imm8 m32 xmm xmm -func VFIXUPIMMPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFIXUPIMMPS_BCST_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPS.BCST.Z imm8 m32 ymm k ymm -// VFIXUPIMMPS.BCST.Z imm8 m32 zmm k zmm -// VFIXUPIMMPS.BCST.Z imm8 m32 xmm k xmm -func VFIXUPIMMPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VFIXUPIMMPS_SAE: Fix Up Special Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMPS.SAE imm8 zmm zmm k zmm -// VFIXUPIMMPS.SAE imm8 zmm zmm zmm -func VFIXUPIMMPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxSAE}, ops) -} - -// VFIXUPIMMPS_SAE_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPS.SAE.Z imm8 zmm zmm k zmm -func VFIXUPIMMPS_SAE_Z(i, z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, z1, k, z2}) -} - -// VFIXUPIMMPS_Z: Fix Up Special Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMPS.Z imm8 m256 ymm k ymm -// VFIXUPIMMPS.Z imm8 ymm ymm k ymm -// VFIXUPIMMPS.Z imm8 m512 zmm k zmm -// VFIXUPIMMPS.Z imm8 zmm zmm k zmm -// VFIXUPIMMPS.Z imm8 m128 xmm k xmm -// VFIXUPIMMPS.Z imm8 xmm xmm k xmm -func VFIXUPIMMPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VFIXUPIMMSD: Fix Up Special Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VFIXUPIMMSD imm8 m64 xmm k xmm -// VFIXUPIMMSD imm8 m64 xmm xmm -// VFIXUPIMMSD imm8 xmm xmm k xmm -// VFIXUPIMMSD imm8 xmm xmm xmm -func VFIXUPIMMSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMSD.Forms(), sffxs{}, ops) -} - -// VFIXUPIMMSD_SAE: Fix Up Special Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMSD.SAE imm8 xmm xmm k xmm -// VFIXUPIMMSD.SAE imm8 xmm xmm xmm -func VFIXUPIMMSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMSD.Forms(), sffxs{sffxSAE}, ops) -} - -// VFIXUPIMMSD_SAE_Z: Fix Up Special Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSD.SAE.Z imm8 xmm xmm k xmm -func VFIXUPIMMSD_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2}) -} - -// VFIXUPIMMSD_Z: Fix Up Special Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSD.Z imm8 m64 xmm k xmm -// VFIXUPIMMSD.Z imm8 xmm xmm k xmm -func VFIXUPIMMSD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMSD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VFIXUPIMMSS: Fix Up Special Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VFIXUPIMMSS imm8 m32 xmm k xmm -// VFIXUPIMMSS imm8 m32 xmm xmm -// VFIXUPIMMSS imm8 xmm xmm k xmm -// VFIXUPIMMSS imm8 xmm xmm xmm -func VFIXUPIMMSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMSS.Forms(), sffxs{}, ops) -} - -// VFIXUPIMMSS_SAE: Fix Up Special Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VFIXUPIMMSS.SAE imm8 xmm xmm k xmm -// VFIXUPIMMSS.SAE imm8 xmm xmm xmm -func VFIXUPIMMSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMSS.Forms(), sffxs{sffxSAE}, ops) -} - -// VFIXUPIMMSS_SAE_Z: Fix Up Special Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSS.SAE.Z imm8 xmm xmm k xmm -func VFIXUPIMMSS_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2}) -} - -// VFIXUPIMMSS_Z: Fix Up Special Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VFIXUPIMMSS.Z imm8 m32 xmm k xmm -// VFIXUPIMMSS.Z imm8 xmm xmm k xmm -func VFIXUPIMMSS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFIXUPIMMSS.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VFMADD132PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132PD m128 xmm xmm -// VFMADD132PD m256 ymm ymm -// VFMADD132PD xmm xmm xmm -// VFMADD132PD ymm ymm ymm -// VFMADD132PD m128 xmm k xmm -// VFMADD132PD m256 ymm k ymm -// VFMADD132PD xmm xmm k xmm -// VFMADD132PD ymm ymm k ymm -// VFMADD132PD m512 zmm k zmm -// VFMADD132PD m512 zmm zmm -// VFMADD132PD zmm zmm k zmm -// VFMADD132PD zmm zmm zmm -func VFMADD132PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{}, ops) -} - -// VFMADD132PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD132PD.BCST m64 xmm k xmm -// VFMADD132PD.BCST m64 xmm xmm -// VFMADD132PD.BCST m64 ymm k ymm -// VFMADD132PD.BCST m64 ymm ymm -// VFMADD132PD.BCST m64 zmm k zmm -// VFMADD132PD.BCST m64 zmm zmm -func VFMADD132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADD132PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.BCST.Z m64 xmm k xmm -// VFMADD132PD.BCST.Z m64 ymm k ymm -// VFMADD132PD.BCST.Z m64 zmm k zmm -func VFMADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADD132PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132PD.RD_SAE zmm zmm k zmm -// VFMADD132PD.RD_SAE zmm zmm zmm -func VFMADD132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD132PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RD_SAE.Z zmm zmm k zmm -func VFMADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD132PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132PD.RN_SAE zmm zmm k zmm -// VFMADD132PD.RN_SAE zmm zmm zmm -func VFMADD132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD132PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RN_SAE.Z zmm zmm k zmm -func VFMADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD132PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132PD.RU_SAE zmm zmm k zmm -// VFMADD132PD.RU_SAE zmm zmm zmm -func VFMADD132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD132PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RU_SAE.Z zmm zmm k zmm -func VFMADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD132PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132PD.RZ_SAE zmm zmm k zmm -// VFMADD132PD.RZ_SAE zmm zmm zmm -func VFMADD132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD132PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.RZ_SAE.Z zmm zmm k zmm -func VFMADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD132PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132PD.Z m128 xmm k xmm -// VFMADD132PD.Z m256 ymm k ymm -// VFMADD132PD.Z xmm xmm k xmm -// VFMADD132PD.Z ymm ymm k ymm -// VFMADD132PD.Z m512 zmm k zmm -// VFMADD132PD.Z zmm zmm k zmm -func VFMADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADD132PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132PS m128 xmm xmm -// VFMADD132PS m256 ymm ymm -// VFMADD132PS xmm xmm xmm -// VFMADD132PS ymm ymm ymm -// VFMADD132PS m128 xmm k xmm -// VFMADD132PS m256 ymm k ymm -// VFMADD132PS xmm xmm k xmm -// VFMADD132PS ymm ymm k ymm -// VFMADD132PS m512 zmm k zmm -// VFMADD132PS m512 zmm zmm -// VFMADD132PS zmm zmm k zmm -// VFMADD132PS zmm zmm zmm -func VFMADD132PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{}, ops) -} - -// VFMADD132PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD132PS.BCST m32 xmm k xmm -// VFMADD132PS.BCST m32 xmm xmm -// VFMADD132PS.BCST m32 ymm k ymm -// VFMADD132PS.BCST m32 ymm ymm -// VFMADD132PS.BCST m32 zmm k zmm -// VFMADD132PS.BCST m32 zmm zmm -func VFMADD132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADD132PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.BCST.Z m32 xmm k xmm -// VFMADD132PS.BCST.Z m32 ymm k ymm -// VFMADD132PS.BCST.Z m32 zmm k zmm -func VFMADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADD132PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132PS.RD_SAE zmm zmm k zmm -// VFMADD132PS.RD_SAE zmm zmm zmm -func VFMADD132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD132PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RD_SAE.Z zmm zmm k zmm -func VFMADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD132PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132PS.RN_SAE zmm zmm k zmm -// VFMADD132PS.RN_SAE zmm zmm zmm -func VFMADD132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD132PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RN_SAE.Z zmm zmm k zmm -func VFMADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD132PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132PS.RU_SAE zmm zmm k zmm -// VFMADD132PS.RU_SAE zmm zmm zmm -func VFMADD132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD132PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RU_SAE.Z zmm zmm k zmm -func VFMADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD132PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132PS.RZ_SAE zmm zmm k zmm -// VFMADD132PS.RZ_SAE zmm zmm zmm -func VFMADD132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD132PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.RZ_SAE.Z zmm zmm k zmm -func VFMADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD132PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132PS.Z m128 xmm k xmm -// VFMADD132PS.Z m256 ymm k ymm -// VFMADD132PS.Z xmm xmm k xmm -// VFMADD132PS.Z ymm ymm k ymm -// VFMADD132PS.Z m512 zmm k zmm -// VFMADD132PS.Z zmm zmm k zmm -func VFMADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADD132SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132SD m64 xmm xmm -// VFMADD132SD xmm xmm xmm -// VFMADD132SD m64 xmm k xmm -// VFMADD132SD xmm xmm k xmm -func VFMADD132SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{}, ops) -} - -// VFMADD132SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132SD.RD_SAE xmm xmm k xmm -// VFMADD132SD.RD_SAE xmm xmm xmm -func VFMADD132SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD132SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RD_SAE.Z xmm xmm k xmm -func VFMADD132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD132SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132SD.RN_SAE xmm xmm k xmm -// VFMADD132SD.RN_SAE xmm xmm xmm -func VFMADD132SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD132SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RN_SAE.Z xmm xmm k xmm -func VFMADD132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD132SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132SD.RU_SAE xmm xmm k xmm -// VFMADD132SD.RU_SAE xmm xmm xmm -func VFMADD132SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD132SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RU_SAE.Z xmm xmm k xmm -func VFMADD132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD132SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132SD.RZ_SAE xmm xmm k xmm -// VFMADD132SD.RZ_SAE xmm xmm xmm -func VFMADD132SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD132SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.RZ_SAE.Z xmm xmm k xmm -func VFMADD132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD132SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132SD.Z m64 xmm k xmm -// VFMADD132SD.Z xmm xmm k xmm -func VFMADD132SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMADD132SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD132SS m32 xmm xmm -// VFMADD132SS xmm xmm xmm -// VFMADD132SS m32 xmm k xmm -// VFMADD132SS xmm xmm k xmm -func VFMADD132SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{}, ops) -} - -// VFMADD132SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD132SS.RD_SAE xmm xmm k xmm -// VFMADD132SS.RD_SAE xmm xmm xmm -func VFMADD132SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD132SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RD_SAE.Z xmm xmm k xmm -func VFMADD132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD132SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD132SS.RN_SAE xmm xmm k xmm -// VFMADD132SS.RN_SAE xmm xmm xmm -func VFMADD132SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD132SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RN_SAE.Z xmm xmm k xmm -func VFMADD132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD132SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD132SS.RU_SAE xmm xmm k xmm -// VFMADD132SS.RU_SAE xmm xmm xmm -func VFMADD132SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD132SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RU_SAE.Z xmm xmm k xmm -func VFMADD132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD132SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD132SS.RZ_SAE xmm xmm k xmm -// VFMADD132SS.RZ_SAE xmm xmm xmm -func VFMADD132SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD132SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.RZ_SAE.Z xmm xmm k xmm -func VFMADD132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD132SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD132SS.Z m32 xmm k xmm -// VFMADD132SS.Z xmm xmm k xmm -func VFMADD132SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD132SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMADD213PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213PD m128 xmm xmm -// VFMADD213PD m256 ymm ymm -// VFMADD213PD xmm xmm xmm -// VFMADD213PD ymm ymm ymm -// VFMADD213PD m128 xmm k xmm -// VFMADD213PD m256 ymm k ymm -// VFMADD213PD xmm xmm k xmm -// VFMADD213PD ymm ymm k ymm -// VFMADD213PD m512 zmm k zmm -// VFMADD213PD m512 zmm zmm -// VFMADD213PD zmm zmm k zmm -// VFMADD213PD zmm zmm zmm -func VFMADD213PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{}, ops) -} - -// VFMADD213PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD213PD.BCST m64 xmm k xmm -// VFMADD213PD.BCST m64 xmm xmm -// VFMADD213PD.BCST m64 ymm k ymm -// VFMADD213PD.BCST m64 ymm ymm -// VFMADD213PD.BCST m64 zmm k zmm -// VFMADD213PD.BCST m64 zmm zmm -func VFMADD213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADD213PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.BCST.Z m64 xmm k xmm -// VFMADD213PD.BCST.Z m64 ymm k ymm -// VFMADD213PD.BCST.Z m64 zmm k zmm -func VFMADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADD213PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213PD.RD_SAE zmm zmm k zmm -// VFMADD213PD.RD_SAE zmm zmm zmm -func VFMADD213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD213PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RD_SAE.Z zmm zmm k zmm -func VFMADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD213PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213PD.RN_SAE zmm zmm k zmm -// VFMADD213PD.RN_SAE zmm zmm zmm -func VFMADD213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD213PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RN_SAE.Z zmm zmm k zmm -func VFMADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD213PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213PD.RU_SAE zmm zmm k zmm -// VFMADD213PD.RU_SAE zmm zmm zmm -func VFMADD213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD213PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RU_SAE.Z zmm zmm k zmm -func VFMADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD213PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213PD.RZ_SAE zmm zmm k zmm -// VFMADD213PD.RZ_SAE zmm zmm zmm -func VFMADD213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD213PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.RZ_SAE.Z zmm zmm k zmm -func VFMADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD213PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213PD.Z m128 xmm k xmm -// VFMADD213PD.Z m256 ymm k ymm -// VFMADD213PD.Z xmm xmm k xmm -// VFMADD213PD.Z ymm ymm k ymm -// VFMADD213PD.Z m512 zmm k zmm -// VFMADD213PD.Z zmm zmm k zmm -func VFMADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADD213PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213PS m128 xmm xmm -// VFMADD213PS m256 ymm ymm -// VFMADD213PS xmm xmm xmm -// VFMADD213PS ymm ymm ymm -// VFMADD213PS m128 xmm k xmm -// VFMADD213PS m256 ymm k ymm -// VFMADD213PS xmm xmm k xmm -// VFMADD213PS ymm ymm k ymm -// VFMADD213PS m512 zmm k zmm -// VFMADD213PS m512 zmm zmm -// VFMADD213PS zmm zmm k zmm -// VFMADD213PS zmm zmm zmm -func VFMADD213PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{}, ops) -} - -// VFMADD213PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD213PS.BCST m32 xmm k xmm -// VFMADD213PS.BCST m32 xmm xmm -// VFMADD213PS.BCST m32 ymm k ymm -// VFMADD213PS.BCST m32 ymm ymm -// VFMADD213PS.BCST m32 zmm k zmm -// VFMADD213PS.BCST m32 zmm zmm -func VFMADD213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADD213PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.BCST.Z m32 xmm k xmm -// VFMADD213PS.BCST.Z m32 ymm k ymm -// VFMADD213PS.BCST.Z m32 zmm k zmm -func VFMADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADD213PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213PS.RD_SAE zmm zmm k zmm -// VFMADD213PS.RD_SAE zmm zmm zmm -func VFMADD213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD213PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RD_SAE.Z zmm zmm k zmm -func VFMADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD213PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213PS.RN_SAE zmm zmm k zmm -// VFMADD213PS.RN_SAE zmm zmm zmm -func VFMADD213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD213PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RN_SAE.Z zmm zmm k zmm -func VFMADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD213PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213PS.RU_SAE zmm zmm k zmm -// VFMADD213PS.RU_SAE zmm zmm zmm -func VFMADD213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD213PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RU_SAE.Z zmm zmm k zmm -func VFMADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD213PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213PS.RZ_SAE zmm zmm k zmm -// VFMADD213PS.RZ_SAE zmm zmm zmm -func VFMADD213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD213PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.RZ_SAE.Z zmm zmm k zmm -func VFMADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD213PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213PS.Z m128 xmm k xmm -// VFMADD213PS.Z m256 ymm k ymm -// VFMADD213PS.Z xmm xmm k xmm -// VFMADD213PS.Z ymm ymm k ymm -// VFMADD213PS.Z m512 zmm k zmm -// VFMADD213PS.Z zmm zmm k zmm -func VFMADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADD213SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213SD m64 xmm xmm -// VFMADD213SD xmm xmm xmm -// VFMADD213SD m64 xmm k xmm -// VFMADD213SD xmm xmm k xmm -func VFMADD213SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{}, ops) -} - -// VFMADD213SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213SD.RD_SAE xmm xmm k xmm -// VFMADD213SD.RD_SAE xmm xmm xmm -func VFMADD213SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD213SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RD_SAE.Z xmm xmm k xmm -func VFMADD213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD213SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213SD.RN_SAE xmm xmm k xmm -// VFMADD213SD.RN_SAE xmm xmm xmm -func VFMADD213SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD213SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RN_SAE.Z xmm xmm k xmm -func VFMADD213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD213SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213SD.RU_SAE xmm xmm k xmm -// VFMADD213SD.RU_SAE xmm xmm xmm -func VFMADD213SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD213SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RU_SAE.Z xmm xmm k xmm -func VFMADD213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD213SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213SD.RZ_SAE xmm xmm k xmm -// VFMADD213SD.RZ_SAE xmm xmm xmm -func VFMADD213SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD213SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.RZ_SAE.Z xmm xmm k xmm -func VFMADD213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD213SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213SD.Z m64 xmm k xmm -// VFMADD213SD.Z xmm xmm k xmm -func VFMADD213SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMADD213SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD213SS m32 xmm xmm -// VFMADD213SS xmm xmm xmm -// VFMADD213SS m32 xmm k xmm -// VFMADD213SS xmm xmm k xmm -func VFMADD213SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{}, ops) -} - -// VFMADD213SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD213SS.RD_SAE xmm xmm k xmm -// VFMADD213SS.RD_SAE xmm xmm xmm -func VFMADD213SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD213SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RD_SAE.Z xmm xmm k xmm -func VFMADD213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD213SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD213SS.RN_SAE xmm xmm k xmm -// VFMADD213SS.RN_SAE xmm xmm xmm -func VFMADD213SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD213SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RN_SAE.Z xmm xmm k xmm -func VFMADD213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD213SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD213SS.RU_SAE xmm xmm k xmm -// VFMADD213SS.RU_SAE xmm xmm xmm -func VFMADD213SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD213SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RU_SAE.Z xmm xmm k xmm -func VFMADD213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD213SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD213SS.RZ_SAE xmm xmm k xmm -// VFMADD213SS.RZ_SAE xmm xmm xmm -func VFMADD213SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD213SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.RZ_SAE.Z xmm xmm k xmm -func VFMADD213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD213SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD213SS.Z m32 xmm k xmm -// VFMADD213SS.Z xmm xmm k xmm -func VFMADD213SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD213SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMADD231PD: Fused Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231PD m128 xmm xmm -// VFMADD231PD m256 ymm ymm -// VFMADD231PD xmm xmm xmm -// VFMADD231PD ymm ymm ymm -// VFMADD231PD m128 xmm k xmm -// VFMADD231PD m256 ymm k ymm -// VFMADD231PD xmm xmm k xmm -// VFMADD231PD ymm ymm k ymm -// VFMADD231PD m512 zmm k zmm -// VFMADD231PD m512 zmm zmm -// VFMADD231PD zmm zmm k zmm -// VFMADD231PD zmm zmm zmm -func VFMADD231PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{}, ops) -} - -// VFMADD231PD_BCST: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD231PD.BCST m64 xmm k xmm -// VFMADD231PD.BCST m64 xmm xmm -// VFMADD231PD.BCST m64 ymm k ymm -// VFMADD231PD.BCST m64 ymm ymm -// VFMADD231PD.BCST m64 zmm k zmm -// VFMADD231PD.BCST m64 zmm zmm -func VFMADD231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADD231PD_BCST_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.BCST.Z m64 xmm k xmm -// VFMADD231PD.BCST.Z m64 ymm k ymm -// VFMADD231PD.BCST.Z m64 zmm k zmm -func VFMADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADD231PD_RD_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231PD.RD_SAE zmm zmm k zmm -// VFMADD231PD.RD_SAE zmm zmm zmm -func VFMADD231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD231PD_RD_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RD_SAE.Z zmm zmm k zmm -func VFMADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD231PD_RN_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231PD.RN_SAE zmm zmm k zmm -// VFMADD231PD.RN_SAE zmm zmm zmm -func VFMADD231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD231PD_RN_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RN_SAE.Z zmm zmm k zmm -func VFMADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD231PD_RU_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231PD.RU_SAE zmm zmm k zmm -// VFMADD231PD.RU_SAE zmm zmm zmm -func VFMADD231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD231PD_RU_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RU_SAE.Z zmm zmm k zmm -func VFMADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD231PD_RZ_SAE: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231PD.RZ_SAE zmm zmm k zmm -// VFMADD231PD.RZ_SAE zmm zmm zmm -func VFMADD231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD231PD_RZ_SAE_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.RZ_SAE.Z zmm zmm k zmm -func VFMADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD231PD_Z: Fused Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231PD.Z m128 xmm k xmm -// VFMADD231PD.Z m256 ymm k ymm -// VFMADD231PD.Z xmm xmm k xmm -// VFMADD231PD.Z ymm ymm k ymm -// VFMADD231PD.Z m512 zmm k zmm -// VFMADD231PD.Z zmm zmm k zmm -func VFMADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADD231PS: Fused Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231PS m128 xmm xmm -// VFMADD231PS m256 ymm ymm -// VFMADD231PS xmm xmm xmm -// VFMADD231PS ymm ymm ymm -// VFMADD231PS m128 xmm k xmm -// VFMADD231PS m256 ymm k ymm -// VFMADD231PS xmm xmm k xmm -// VFMADD231PS ymm ymm k ymm -// VFMADD231PS m512 zmm k zmm -// VFMADD231PS m512 zmm zmm -// VFMADD231PS zmm zmm k zmm -// VFMADD231PS zmm zmm zmm -func VFMADD231PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{}, ops) -} - -// VFMADD231PS_BCST: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADD231PS.BCST m32 xmm k xmm -// VFMADD231PS.BCST m32 xmm xmm -// VFMADD231PS.BCST m32 ymm k ymm -// VFMADD231PS.BCST m32 ymm ymm -// VFMADD231PS.BCST m32 zmm k zmm -// VFMADD231PS.BCST m32 zmm zmm -func VFMADD231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADD231PS_BCST_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.BCST.Z m32 xmm k xmm -// VFMADD231PS.BCST.Z m32 ymm k ymm -// VFMADD231PS.BCST.Z m32 zmm k zmm -func VFMADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADD231PS_RD_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231PS.RD_SAE zmm zmm k zmm -// VFMADD231PS.RD_SAE zmm zmm zmm -func VFMADD231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD231PS_RD_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RD_SAE.Z zmm zmm k zmm -func VFMADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD231PS_RN_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231PS.RN_SAE zmm zmm k zmm -// VFMADD231PS.RN_SAE zmm zmm zmm -func VFMADD231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD231PS_RN_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RN_SAE.Z zmm zmm k zmm -func VFMADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD231PS_RU_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231PS.RU_SAE zmm zmm k zmm -// VFMADD231PS.RU_SAE zmm zmm zmm -func VFMADD231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD231PS_RU_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RU_SAE.Z zmm zmm k zmm -func VFMADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD231PS_RZ_SAE: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231PS.RZ_SAE zmm zmm k zmm -// VFMADD231PS.RZ_SAE zmm zmm zmm -func VFMADD231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD231PS_RZ_SAE_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.RZ_SAE.Z zmm zmm k zmm -func VFMADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADD231PS_Z: Fused Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231PS.Z m128 xmm k xmm -// VFMADD231PS.Z m256 ymm k ymm -// VFMADD231PS.Z xmm xmm k xmm -// VFMADD231PS.Z ymm ymm k ymm -// VFMADD231PS.Z m512 zmm k zmm -// VFMADD231PS.Z zmm zmm k zmm -func VFMADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADD231SD: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231SD m64 xmm xmm -// VFMADD231SD xmm xmm xmm -// VFMADD231SD m64 xmm k xmm -// VFMADD231SD xmm xmm k xmm -func VFMADD231SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{}, ops) -} - -// VFMADD231SD_RD_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231SD.RD_SAE xmm xmm k xmm -// VFMADD231SD.RD_SAE xmm xmm xmm -func VFMADD231SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD231SD_RD_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RD_SAE.Z xmm xmm k xmm -func VFMADD231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD231SD_RN_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231SD.RN_SAE xmm xmm k xmm -// VFMADD231SD.RN_SAE xmm xmm xmm -func VFMADD231SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD231SD_RN_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RN_SAE.Z xmm xmm k xmm -func VFMADD231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD231SD_RU_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231SD.RU_SAE xmm xmm k xmm -// VFMADD231SD.RU_SAE xmm xmm xmm -func VFMADD231SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD231SD_RU_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RU_SAE.Z xmm xmm k xmm -func VFMADD231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD231SD_RZ_SAE: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231SD.RZ_SAE xmm xmm k xmm -// VFMADD231SD.RZ_SAE xmm xmm xmm -func VFMADD231SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD231SD_RZ_SAE_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.RZ_SAE.Z xmm xmm k xmm -func VFMADD231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD231SD_Z: Fused Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231SD.Z m64 xmm k xmm -// VFMADD231SD.Z xmm xmm k xmm -func VFMADD231SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMADD231SS: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADD231SS m32 xmm xmm -// VFMADD231SS xmm xmm xmm -// VFMADD231SS m32 xmm k xmm -// VFMADD231SS xmm xmm k xmm -func VFMADD231SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{}, ops) -} - -// VFMADD231SS_RD_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADD231SS.RD_SAE xmm xmm k xmm -// VFMADD231SS.RD_SAE xmm xmm xmm -func VFMADD231SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADD231SS_RD_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RD_SAE.Z xmm xmm k xmm -func VFMADD231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD231SS_RN_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADD231SS.RN_SAE xmm xmm k xmm -// VFMADD231SS.RN_SAE xmm xmm xmm -func VFMADD231SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADD231SS_RN_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RN_SAE.Z xmm xmm k xmm -func VFMADD231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD231SS_RU_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADD231SS.RU_SAE xmm xmm k xmm -// VFMADD231SS.RU_SAE xmm xmm xmm -func VFMADD231SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADD231SS_RU_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RU_SAE.Z xmm xmm k xmm -func VFMADD231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD231SS_RZ_SAE: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADD231SS.RZ_SAE xmm xmm k xmm -// VFMADD231SS.RZ_SAE xmm xmm xmm -func VFMADD231SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADD231SS_RZ_SAE_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.RZ_SAE.Z xmm xmm k xmm -func VFMADD231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMADD231SS_Z: Fused Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADD231SS.Z m32 xmm k xmm -// VFMADD231SS.Z xmm xmm k xmm -func VFMADD231SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADD231SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMADDSUB132PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB132PD m128 xmm xmm -// VFMADDSUB132PD m256 ymm ymm -// VFMADDSUB132PD xmm xmm xmm -// VFMADDSUB132PD ymm ymm ymm -// VFMADDSUB132PD m128 xmm k xmm -// VFMADDSUB132PD m256 ymm k ymm -// VFMADDSUB132PD xmm xmm k xmm -// VFMADDSUB132PD ymm ymm k ymm -// VFMADDSUB132PD m512 zmm k zmm -// VFMADDSUB132PD m512 zmm zmm -// VFMADDSUB132PD zmm zmm k zmm -// VFMADDSUB132PD zmm zmm zmm -func VFMADDSUB132PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{}, ops) -} - -// VFMADDSUB132PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB132PD.BCST m64 xmm k xmm -// VFMADDSUB132PD.BCST m64 xmm xmm -// VFMADDSUB132PD.BCST m64 ymm k ymm -// VFMADDSUB132PD.BCST m64 ymm ymm -// VFMADDSUB132PD.BCST m64 zmm k zmm -// VFMADDSUB132PD.BCST m64 zmm zmm -func VFMADDSUB132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADDSUB132PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.BCST.Z m64 xmm k xmm -// VFMADDSUB132PD.BCST.Z m64 ymm k ymm -// VFMADDSUB132PD.BCST.Z m64 zmm k zmm -func VFMADDSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADDSUB132PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB132PD.RD_SAE zmm zmm k zmm -// VFMADDSUB132PD.RD_SAE zmm zmm zmm -func VFMADDSUB132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADDSUB132PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RD_SAE.Z zmm zmm k zmm -func VFMADDSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB132PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB132PD.RN_SAE zmm zmm k zmm -// VFMADDSUB132PD.RN_SAE zmm zmm zmm -func VFMADDSUB132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADDSUB132PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RN_SAE.Z zmm zmm k zmm -func VFMADDSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB132PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB132PD.RU_SAE zmm zmm k zmm -// VFMADDSUB132PD.RU_SAE zmm zmm zmm -func VFMADDSUB132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADDSUB132PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RU_SAE.Z zmm zmm k zmm -func VFMADDSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB132PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB132PD.RZ_SAE zmm zmm k zmm -// VFMADDSUB132PD.RZ_SAE zmm zmm zmm -func VFMADDSUB132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADDSUB132PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.RZ_SAE.Z zmm zmm k zmm -func VFMADDSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB132PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PD.Z m128 xmm k xmm -// VFMADDSUB132PD.Z m256 ymm k ymm -// VFMADDSUB132PD.Z xmm xmm k xmm -// VFMADDSUB132PD.Z ymm ymm k ymm -// VFMADDSUB132PD.Z m512 zmm k zmm -// VFMADDSUB132PD.Z zmm zmm k zmm -func VFMADDSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADDSUB132PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB132PS m128 xmm xmm -// VFMADDSUB132PS m256 ymm ymm -// VFMADDSUB132PS xmm xmm xmm -// VFMADDSUB132PS ymm ymm ymm -// VFMADDSUB132PS m128 xmm k xmm -// VFMADDSUB132PS m256 ymm k ymm -// VFMADDSUB132PS xmm xmm k xmm -// VFMADDSUB132PS ymm ymm k ymm -// VFMADDSUB132PS m512 zmm k zmm -// VFMADDSUB132PS m512 zmm zmm -// VFMADDSUB132PS zmm zmm k zmm -// VFMADDSUB132PS zmm zmm zmm -func VFMADDSUB132PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{}, ops) -} - -// VFMADDSUB132PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB132PS.BCST m32 xmm k xmm -// VFMADDSUB132PS.BCST m32 xmm xmm -// VFMADDSUB132PS.BCST m32 ymm k ymm -// VFMADDSUB132PS.BCST m32 ymm ymm -// VFMADDSUB132PS.BCST m32 zmm k zmm -// VFMADDSUB132PS.BCST m32 zmm zmm -func VFMADDSUB132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADDSUB132PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.BCST.Z m32 xmm k xmm -// VFMADDSUB132PS.BCST.Z m32 ymm k ymm -// VFMADDSUB132PS.BCST.Z m32 zmm k zmm -func VFMADDSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADDSUB132PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB132PS.RD_SAE zmm zmm k zmm -// VFMADDSUB132PS.RD_SAE zmm zmm zmm -func VFMADDSUB132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADDSUB132PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RD_SAE.Z zmm zmm k zmm -func VFMADDSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB132PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB132PS.RN_SAE zmm zmm k zmm -// VFMADDSUB132PS.RN_SAE zmm zmm zmm -func VFMADDSUB132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADDSUB132PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RN_SAE.Z zmm zmm k zmm -func VFMADDSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB132PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB132PS.RU_SAE zmm zmm k zmm -// VFMADDSUB132PS.RU_SAE zmm zmm zmm -func VFMADDSUB132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADDSUB132PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RU_SAE.Z zmm zmm k zmm -func VFMADDSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB132PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB132PS.RZ_SAE zmm zmm k zmm -// VFMADDSUB132PS.RZ_SAE zmm zmm zmm -func VFMADDSUB132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADDSUB132PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.RZ_SAE.Z zmm zmm k zmm -func VFMADDSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB132PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB132PS.Z m128 xmm k xmm -// VFMADDSUB132PS.Z m256 ymm k ymm -// VFMADDSUB132PS.Z xmm xmm k xmm -// VFMADDSUB132PS.Z ymm ymm k ymm -// VFMADDSUB132PS.Z m512 zmm k zmm -// VFMADDSUB132PS.Z zmm zmm k zmm -func VFMADDSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADDSUB213PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB213PD m128 xmm xmm -// VFMADDSUB213PD m256 ymm ymm -// VFMADDSUB213PD xmm xmm xmm -// VFMADDSUB213PD ymm ymm ymm -// VFMADDSUB213PD m128 xmm k xmm -// VFMADDSUB213PD m256 ymm k ymm -// VFMADDSUB213PD xmm xmm k xmm -// VFMADDSUB213PD ymm ymm k ymm -// VFMADDSUB213PD m512 zmm k zmm -// VFMADDSUB213PD m512 zmm zmm -// VFMADDSUB213PD zmm zmm k zmm -// VFMADDSUB213PD zmm zmm zmm -func VFMADDSUB213PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{}, ops) -} - -// VFMADDSUB213PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB213PD.BCST m64 xmm k xmm -// VFMADDSUB213PD.BCST m64 xmm xmm -// VFMADDSUB213PD.BCST m64 ymm k ymm -// VFMADDSUB213PD.BCST m64 ymm ymm -// VFMADDSUB213PD.BCST m64 zmm k zmm -// VFMADDSUB213PD.BCST m64 zmm zmm -func VFMADDSUB213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADDSUB213PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.BCST.Z m64 xmm k xmm -// VFMADDSUB213PD.BCST.Z m64 ymm k ymm -// VFMADDSUB213PD.BCST.Z m64 zmm k zmm -func VFMADDSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADDSUB213PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB213PD.RD_SAE zmm zmm k zmm -// VFMADDSUB213PD.RD_SAE zmm zmm zmm -func VFMADDSUB213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADDSUB213PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RD_SAE.Z zmm zmm k zmm -func VFMADDSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB213PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB213PD.RN_SAE zmm zmm k zmm -// VFMADDSUB213PD.RN_SAE zmm zmm zmm -func VFMADDSUB213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADDSUB213PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RN_SAE.Z zmm zmm k zmm -func VFMADDSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB213PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB213PD.RU_SAE zmm zmm k zmm -// VFMADDSUB213PD.RU_SAE zmm zmm zmm -func VFMADDSUB213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADDSUB213PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RU_SAE.Z zmm zmm k zmm -func VFMADDSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB213PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB213PD.RZ_SAE zmm zmm k zmm -// VFMADDSUB213PD.RZ_SAE zmm zmm zmm -func VFMADDSUB213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADDSUB213PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.RZ_SAE.Z zmm zmm k zmm -func VFMADDSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB213PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PD.Z m128 xmm k xmm -// VFMADDSUB213PD.Z m256 ymm k ymm -// VFMADDSUB213PD.Z xmm xmm k xmm -// VFMADDSUB213PD.Z ymm ymm k ymm -// VFMADDSUB213PD.Z m512 zmm k zmm -// VFMADDSUB213PD.Z zmm zmm k zmm -func VFMADDSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADDSUB213PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB213PS m128 xmm xmm -// VFMADDSUB213PS m256 ymm ymm -// VFMADDSUB213PS xmm xmm xmm -// VFMADDSUB213PS ymm ymm ymm -// VFMADDSUB213PS m128 xmm k xmm -// VFMADDSUB213PS m256 ymm k ymm -// VFMADDSUB213PS xmm xmm k xmm -// VFMADDSUB213PS ymm ymm k ymm -// VFMADDSUB213PS m512 zmm k zmm -// VFMADDSUB213PS m512 zmm zmm -// VFMADDSUB213PS zmm zmm k zmm -// VFMADDSUB213PS zmm zmm zmm -func VFMADDSUB213PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{}, ops) -} - -// VFMADDSUB213PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB213PS.BCST m32 xmm k xmm -// VFMADDSUB213PS.BCST m32 xmm xmm -// VFMADDSUB213PS.BCST m32 ymm k ymm -// VFMADDSUB213PS.BCST m32 ymm ymm -// VFMADDSUB213PS.BCST m32 zmm k zmm -// VFMADDSUB213PS.BCST m32 zmm zmm -func VFMADDSUB213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADDSUB213PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.BCST.Z m32 xmm k xmm -// VFMADDSUB213PS.BCST.Z m32 ymm k ymm -// VFMADDSUB213PS.BCST.Z m32 zmm k zmm -func VFMADDSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADDSUB213PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB213PS.RD_SAE zmm zmm k zmm -// VFMADDSUB213PS.RD_SAE zmm zmm zmm -func VFMADDSUB213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADDSUB213PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RD_SAE.Z zmm zmm k zmm -func VFMADDSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB213PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB213PS.RN_SAE zmm zmm k zmm -// VFMADDSUB213PS.RN_SAE zmm zmm zmm -func VFMADDSUB213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADDSUB213PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RN_SAE.Z zmm zmm k zmm -func VFMADDSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB213PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB213PS.RU_SAE zmm zmm k zmm -// VFMADDSUB213PS.RU_SAE zmm zmm zmm -func VFMADDSUB213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADDSUB213PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RU_SAE.Z zmm zmm k zmm -func VFMADDSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB213PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB213PS.RZ_SAE zmm zmm k zmm -// VFMADDSUB213PS.RZ_SAE zmm zmm zmm -func VFMADDSUB213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADDSUB213PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.RZ_SAE.Z zmm zmm k zmm -func VFMADDSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB213PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB213PS.Z m128 xmm k xmm -// VFMADDSUB213PS.Z m256 ymm k ymm -// VFMADDSUB213PS.Z xmm xmm k xmm -// VFMADDSUB213PS.Z ymm ymm k ymm -// VFMADDSUB213PS.Z m512 zmm k zmm -// VFMADDSUB213PS.Z zmm zmm k zmm -func VFMADDSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADDSUB231PD: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB231PD m128 xmm xmm -// VFMADDSUB231PD m256 ymm ymm -// VFMADDSUB231PD xmm xmm xmm -// VFMADDSUB231PD ymm ymm ymm -// VFMADDSUB231PD m128 xmm k xmm -// VFMADDSUB231PD m256 ymm k ymm -// VFMADDSUB231PD xmm xmm k xmm -// VFMADDSUB231PD ymm ymm k ymm -// VFMADDSUB231PD m512 zmm k zmm -// VFMADDSUB231PD m512 zmm zmm -// VFMADDSUB231PD zmm zmm k zmm -// VFMADDSUB231PD zmm zmm zmm -func VFMADDSUB231PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{}, ops) -} - -// VFMADDSUB231PD_BCST: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB231PD.BCST m64 xmm k xmm -// VFMADDSUB231PD.BCST m64 xmm xmm -// VFMADDSUB231PD.BCST m64 ymm k ymm -// VFMADDSUB231PD.BCST m64 ymm ymm -// VFMADDSUB231PD.BCST m64 zmm k zmm -// VFMADDSUB231PD.BCST m64 zmm zmm -func VFMADDSUB231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADDSUB231PD_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.BCST.Z m64 xmm k xmm -// VFMADDSUB231PD.BCST.Z m64 ymm k ymm -// VFMADDSUB231PD.BCST.Z m64 zmm k zmm -func VFMADDSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADDSUB231PD_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB231PD.RD_SAE zmm zmm k zmm -// VFMADDSUB231PD.RD_SAE zmm zmm zmm -func VFMADDSUB231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADDSUB231PD_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RD_SAE.Z zmm zmm k zmm -func VFMADDSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB231PD_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB231PD.RN_SAE zmm zmm k zmm -// VFMADDSUB231PD.RN_SAE zmm zmm zmm -func VFMADDSUB231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADDSUB231PD_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RN_SAE.Z zmm zmm k zmm -func VFMADDSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB231PD_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB231PD.RU_SAE zmm zmm k zmm -// VFMADDSUB231PD.RU_SAE zmm zmm zmm -func VFMADDSUB231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADDSUB231PD_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RU_SAE.Z zmm zmm k zmm -func VFMADDSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB231PD_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB231PD.RZ_SAE zmm zmm k zmm -// VFMADDSUB231PD.RZ_SAE zmm zmm zmm -func VFMADDSUB231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADDSUB231PD_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.RZ_SAE.Z zmm zmm k zmm -func VFMADDSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB231PD_Z: Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PD.Z m128 xmm k xmm -// VFMADDSUB231PD.Z m256 ymm k ymm -// VFMADDSUB231PD.Z xmm xmm k xmm -// VFMADDSUB231PD.Z ymm ymm k ymm -// VFMADDSUB231PD.Z m512 zmm k zmm -// VFMADDSUB231PD.Z zmm zmm k zmm -func VFMADDSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMADDSUB231PS: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMADDSUB231PS m128 xmm xmm -// VFMADDSUB231PS m256 ymm ymm -// VFMADDSUB231PS xmm xmm xmm -// VFMADDSUB231PS ymm ymm ymm -// VFMADDSUB231PS m128 xmm k xmm -// VFMADDSUB231PS m256 ymm k ymm -// VFMADDSUB231PS xmm xmm k xmm -// VFMADDSUB231PS ymm ymm k ymm -// VFMADDSUB231PS m512 zmm k zmm -// VFMADDSUB231PS m512 zmm zmm -// VFMADDSUB231PS zmm zmm k zmm -// VFMADDSUB231PS zmm zmm zmm -func VFMADDSUB231PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{}, ops) -} - -// VFMADDSUB231PS_BCST: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMADDSUB231PS.BCST m32 xmm k xmm -// VFMADDSUB231PS.BCST m32 xmm xmm -// VFMADDSUB231PS.BCST m32 ymm k ymm -// VFMADDSUB231PS.BCST m32 ymm ymm -// VFMADDSUB231PS.BCST m32 zmm k zmm -// VFMADDSUB231PS.BCST m32 zmm zmm -func VFMADDSUB231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMADDSUB231PS_BCST_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.BCST.Z m32 xmm k xmm -// VFMADDSUB231PS.BCST.Z m32 ymm k ymm -// VFMADDSUB231PS.BCST.Z m32 zmm k zmm -func VFMADDSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMADDSUB231PS_RD_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMADDSUB231PS.RD_SAE zmm zmm k zmm -// VFMADDSUB231PS.RD_SAE zmm zmm zmm -func VFMADDSUB231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMADDSUB231PS_RD_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RD_SAE.Z zmm zmm k zmm -func VFMADDSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB231PS_RN_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMADDSUB231PS.RN_SAE zmm zmm k zmm -// VFMADDSUB231PS.RN_SAE zmm zmm zmm -func VFMADDSUB231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMADDSUB231PS_RN_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RN_SAE.Z zmm zmm k zmm -func VFMADDSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB231PS_RU_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMADDSUB231PS.RU_SAE zmm zmm k zmm -// VFMADDSUB231PS.RU_SAE zmm zmm zmm -func VFMADDSUB231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMADDSUB231PS_RU_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RU_SAE.Z zmm zmm k zmm -func VFMADDSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB231PS_RZ_SAE: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMADDSUB231PS.RZ_SAE zmm zmm k zmm -// VFMADDSUB231PS.RZ_SAE zmm zmm zmm -func VFMADDSUB231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMADDSUB231PS_RZ_SAE_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.RZ_SAE.Z zmm zmm k zmm -func VFMADDSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMADDSUB231PS_Z: Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMADDSUB231PS.Z m128 xmm k xmm -// VFMADDSUB231PS.Z m256 ymm k ymm -// VFMADDSUB231PS.Z xmm xmm k xmm -// VFMADDSUB231PS.Z ymm ymm k ymm -// VFMADDSUB231PS.Z m512 zmm k zmm -// VFMADDSUB231PS.Z zmm zmm k zmm -func VFMADDSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMADDSUB231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUB132PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132PD m128 xmm xmm -// VFMSUB132PD m256 ymm ymm -// VFMSUB132PD xmm xmm xmm -// VFMSUB132PD ymm ymm ymm -// VFMSUB132PD m128 xmm k xmm -// VFMSUB132PD m256 ymm k ymm -// VFMSUB132PD xmm xmm k xmm -// VFMSUB132PD ymm ymm k ymm -// VFMSUB132PD m512 zmm k zmm -// VFMSUB132PD m512 zmm zmm -// VFMSUB132PD zmm zmm k zmm -// VFMSUB132PD zmm zmm zmm -func VFMSUB132PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{}, ops) -} - -// VFMSUB132PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB132PD.BCST m64 xmm k xmm -// VFMSUB132PD.BCST m64 xmm xmm -// VFMSUB132PD.BCST m64 ymm k ymm -// VFMSUB132PD.BCST m64 ymm ymm -// VFMSUB132PD.BCST m64 zmm k zmm -// VFMSUB132PD.BCST m64 zmm zmm -func VFMSUB132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUB132PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.BCST.Z m64 xmm k xmm -// VFMSUB132PD.BCST.Z m64 ymm k ymm -// VFMSUB132PD.BCST.Z m64 zmm k zmm -func VFMSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUB132PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132PD.RD_SAE zmm zmm k zmm -// VFMSUB132PD.RD_SAE zmm zmm zmm -func VFMSUB132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB132PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RD_SAE.Z zmm zmm k zmm -func VFMSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB132PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132PD.RN_SAE zmm zmm k zmm -// VFMSUB132PD.RN_SAE zmm zmm zmm -func VFMSUB132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB132PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RN_SAE.Z zmm zmm k zmm -func VFMSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB132PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132PD.RU_SAE zmm zmm k zmm -// VFMSUB132PD.RU_SAE zmm zmm zmm -func VFMSUB132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB132PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RU_SAE.Z zmm zmm k zmm -func VFMSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB132PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132PD.RZ_SAE zmm zmm k zmm -// VFMSUB132PD.RZ_SAE zmm zmm zmm -func VFMSUB132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB132PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.RZ_SAE.Z zmm zmm k zmm -func VFMSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB132PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132PD.Z m128 xmm k xmm -// VFMSUB132PD.Z m256 ymm k ymm -// VFMSUB132PD.Z xmm xmm k xmm -// VFMSUB132PD.Z ymm ymm k ymm -// VFMSUB132PD.Z m512 zmm k zmm -// VFMSUB132PD.Z zmm zmm k zmm -func VFMSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUB132PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132PS m128 xmm xmm -// VFMSUB132PS m256 ymm ymm -// VFMSUB132PS xmm xmm xmm -// VFMSUB132PS ymm ymm ymm -// VFMSUB132PS m128 xmm k xmm -// VFMSUB132PS m256 ymm k ymm -// VFMSUB132PS xmm xmm k xmm -// VFMSUB132PS ymm ymm k ymm -// VFMSUB132PS m512 zmm k zmm -// VFMSUB132PS m512 zmm zmm -// VFMSUB132PS zmm zmm k zmm -// VFMSUB132PS zmm zmm zmm -func VFMSUB132PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{}, ops) -} - -// VFMSUB132PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB132PS.BCST m32 xmm k xmm -// VFMSUB132PS.BCST m32 xmm xmm -// VFMSUB132PS.BCST m32 ymm k ymm -// VFMSUB132PS.BCST m32 ymm ymm -// VFMSUB132PS.BCST m32 zmm k zmm -// VFMSUB132PS.BCST m32 zmm zmm -func VFMSUB132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUB132PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.BCST.Z m32 xmm k xmm -// VFMSUB132PS.BCST.Z m32 ymm k ymm -// VFMSUB132PS.BCST.Z m32 zmm k zmm -func VFMSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUB132PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132PS.RD_SAE zmm zmm k zmm -// VFMSUB132PS.RD_SAE zmm zmm zmm -func VFMSUB132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB132PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RD_SAE.Z zmm zmm k zmm -func VFMSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB132PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132PS.RN_SAE zmm zmm k zmm -// VFMSUB132PS.RN_SAE zmm zmm zmm -func VFMSUB132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB132PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RN_SAE.Z zmm zmm k zmm -func VFMSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB132PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132PS.RU_SAE zmm zmm k zmm -// VFMSUB132PS.RU_SAE zmm zmm zmm -func VFMSUB132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB132PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RU_SAE.Z zmm zmm k zmm -func VFMSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB132PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132PS.RZ_SAE zmm zmm k zmm -// VFMSUB132PS.RZ_SAE zmm zmm zmm -func VFMSUB132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB132PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.RZ_SAE.Z zmm zmm k zmm -func VFMSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB132PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132PS.Z m128 xmm k xmm -// VFMSUB132PS.Z m256 ymm k ymm -// VFMSUB132PS.Z xmm xmm k xmm -// VFMSUB132PS.Z ymm ymm k ymm -// VFMSUB132PS.Z m512 zmm k zmm -// VFMSUB132PS.Z zmm zmm k zmm -func VFMSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUB132SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132SD m64 xmm xmm -// VFMSUB132SD xmm xmm xmm -// VFMSUB132SD m64 xmm k xmm -// VFMSUB132SD xmm xmm k xmm -func VFMSUB132SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{}, ops) -} - -// VFMSUB132SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132SD.RD_SAE xmm xmm k xmm -// VFMSUB132SD.RD_SAE xmm xmm xmm -func VFMSUB132SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB132SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RD_SAE.Z xmm xmm k xmm -func VFMSUB132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB132SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132SD.RN_SAE xmm xmm k xmm -// VFMSUB132SD.RN_SAE xmm xmm xmm -func VFMSUB132SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB132SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RN_SAE.Z xmm xmm k xmm -func VFMSUB132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB132SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132SD.RU_SAE xmm xmm k xmm -// VFMSUB132SD.RU_SAE xmm xmm xmm -func VFMSUB132SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB132SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RU_SAE.Z xmm xmm k xmm -func VFMSUB132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB132SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132SD.RZ_SAE xmm xmm k xmm -// VFMSUB132SD.RZ_SAE xmm xmm xmm -func VFMSUB132SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB132SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.RZ_SAE.Z xmm xmm k xmm -func VFMSUB132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB132SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132SD.Z m64 xmm k xmm -// VFMSUB132SD.Z xmm xmm k xmm -func VFMSUB132SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMSUB132SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB132SS m32 xmm xmm -// VFMSUB132SS xmm xmm xmm -// VFMSUB132SS m32 xmm k xmm -// VFMSUB132SS xmm xmm k xmm -func VFMSUB132SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{}, ops) -} - -// VFMSUB132SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB132SS.RD_SAE xmm xmm k xmm -// VFMSUB132SS.RD_SAE xmm xmm xmm -func VFMSUB132SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB132SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RD_SAE.Z xmm xmm k xmm -func VFMSUB132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB132SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB132SS.RN_SAE xmm xmm k xmm -// VFMSUB132SS.RN_SAE xmm xmm xmm -func VFMSUB132SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB132SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RN_SAE.Z xmm xmm k xmm -func VFMSUB132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB132SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB132SS.RU_SAE xmm xmm k xmm -// VFMSUB132SS.RU_SAE xmm xmm xmm -func VFMSUB132SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB132SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RU_SAE.Z xmm xmm k xmm -func VFMSUB132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB132SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB132SS.RZ_SAE xmm xmm k xmm -// VFMSUB132SS.RZ_SAE xmm xmm xmm -func VFMSUB132SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB132SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.RZ_SAE.Z xmm xmm k xmm -func VFMSUB132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB132SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB132SS.Z m32 xmm k xmm -// VFMSUB132SS.Z xmm xmm k xmm -func VFMSUB132SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB132SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMSUB213PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213PD m128 xmm xmm -// VFMSUB213PD m256 ymm ymm -// VFMSUB213PD xmm xmm xmm -// VFMSUB213PD ymm ymm ymm -// VFMSUB213PD m128 xmm k xmm -// VFMSUB213PD m256 ymm k ymm -// VFMSUB213PD xmm xmm k xmm -// VFMSUB213PD ymm ymm k ymm -// VFMSUB213PD m512 zmm k zmm -// VFMSUB213PD m512 zmm zmm -// VFMSUB213PD zmm zmm k zmm -// VFMSUB213PD zmm zmm zmm -func VFMSUB213PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{}, ops) -} - -// VFMSUB213PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB213PD.BCST m64 xmm k xmm -// VFMSUB213PD.BCST m64 xmm xmm -// VFMSUB213PD.BCST m64 ymm k ymm -// VFMSUB213PD.BCST m64 ymm ymm -// VFMSUB213PD.BCST m64 zmm k zmm -// VFMSUB213PD.BCST m64 zmm zmm -func VFMSUB213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUB213PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.BCST.Z m64 xmm k xmm -// VFMSUB213PD.BCST.Z m64 ymm k ymm -// VFMSUB213PD.BCST.Z m64 zmm k zmm -func VFMSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUB213PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213PD.RD_SAE zmm zmm k zmm -// VFMSUB213PD.RD_SAE zmm zmm zmm -func VFMSUB213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB213PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RD_SAE.Z zmm zmm k zmm -func VFMSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB213PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213PD.RN_SAE zmm zmm k zmm -// VFMSUB213PD.RN_SAE zmm zmm zmm -func VFMSUB213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB213PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RN_SAE.Z zmm zmm k zmm -func VFMSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB213PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213PD.RU_SAE zmm zmm k zmm -// VFMSUB213PD.RU_SAE zmm zmm zmm -func VFMSUB213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB213PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RU_SAE.Z zmm zmm k zmm -func VFMSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB213PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213PD.RZ_SAE zmm zmm k zmm -// VFMSUB213PD.RZ_SAE zmm zmm zmm -func VFMSUB213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB213PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.RZ_SAE.Z zmm zmm k zmm -func VFMSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB213PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213PD.Z m128 xmm k xmm -// VFMSUB213PD.Z m256 ymm k ymm -// VFMSUB213PD.Z xmm xmm k xmm -// VFMSUB213PD.Z ymm ymm k ymm -// VFMSUB213PD.Z m512 zmm k zmm -// VFMSUB213PD.Z zmm zmm k zmm -func VFMSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUB213PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213PS m128 xmm xmm -// VFMSUB213PS m256 ymm ymm -// VFMSUB213PS xmm xmm xmm -// VFMSUB213PS ymm ymm ymm -// VFMSUB213PS m128 xmm k xmm -// VFMSUB213PS m256 ymm k ymm -// VFMSUB213PS xmm xmm k xmm -// VFMSUB213PS ymm ymm k ymm -// VFMSUB213PS m512 zmm k zmm -// VFMSUB213PS m512 zmm zmm -// VFMSUB213PS zmm zmm k zmm -// VFMSUB213PS zmm zmm zmm -func VFMSUB213PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{}, ops) -} - -// VFMSUB213PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB213PS.BCST m32 xmm k xmm -// VFMSUB213PS.BCST m32 xmm xmm -// VFMSUB213PS.BCST m32 ymm k ymm -// VFMSUB213PS.BCST m32 ymm ymm -// VFMSUB213PS.BCST m32 zmm k zmm -// VFMSUB213PS.BCST m32 zmm zmm -func VFMSUB213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUB213PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.BCST.Z m32 xmm k xmm -// VFMSUB213PS.BCST.Z m32 ymm k ymm -// VFMSUB213PS.BCST.Z m32 zmm k zmm -func VFMSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUB213PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213PS.RD_SAE zmm zmm k zmm -// VFMSUB213PS.RD_SAE zmm zmm zmm -func VFMSUB213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB213PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RD_SAE.Z zmm zmm k zmm -func VFMSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB213PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213PS.RN_SAE zmm zmm k zmm -// VFMSUB213PS.RN_SAE zmm zmm zmm -func VFMSUB213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB213PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RN_SAE.Z zmm zmm k zmm -func VFMSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB213PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213PS.RU_SAE zmm zmm k zmm -// VFMSUB213PS.RU_SAE zmm zmm zmm -func VFMSUB213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB213PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RU_SAE.Z zmm zmm k zmm -func VFMSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB213PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213PS.RZ_SAE zmm zmm k zmm -// VFMSUB213PS.RZ_SAE zmm zmm zmm -func VFMSUB213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB213PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.RZ_SAE.Z zmm zmm k zmm -func VFMSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB213PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213PS.Z m128 xmm k xmm -// VFMSUB213PS.Z m256 ymm k ymm -// VFMSUB213PS.Z xmm xmm k xmm -// VFMSUB213PS.Z ymm ymm k ymm -// VFMSUB213PS.Z m512 zmm k zmm -// VFMSUB213PS.Z zmm zmm k zmm -func VFMSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUB213SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213SD m64 xmm xmm -// VFMSUB213SD xmm xmm xmm -// VFMSUB213SD m64 xmm k xmm -// VFMSUB213SD xmm xmm k xmm -func VFMSUB213SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{}, ops) -} - -// VFMSUB213SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213SD.RD_SAE xmm xmm k xmm -// VFMSUB213SD.RD_SAE xmm xmm xmm -func VFMSUB213SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB213SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RD_SAE.Z xmm xmm k xmm -func VFMSUB213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB213SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213SD.RN_SAE xmm xmm k xmm -// VFMSUB213SD.RN_SAE xmm xmm xmm -func VFMSUB213SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB213SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RN_SAE.Z xmm xmm k xmm -func VFMSUB213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB213SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213SD.RU_SAE xmm xmm k xmm -// VFMSUB213SD.RU_SAE xmm xmm xmm -func VFMSUB213SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB213SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RU_SAE.Z xmm xmm k xmm -func VFMSUB213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB213SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213SD.RZ_SAE xmm xmm k xmm -// VFMSUB213SD.RZ_SAE xmm xmm xmm -func VFMSUB213SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB213SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.RZ_SAE.Z xmm xmm k xmm -func VFMSUB213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB213SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213SD.Z m64 xmm k xmm -// VFMSUB213SD.Z xmm xmm k xmm -func VFMSUB213SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMSUB213SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB213SS m32 xmm xmm -// VFMSUB213SS xmm xmm xmm -// VFMSUB213SS m32 xmm k xmm -// VFMSUB213SS xmm xmm k xmm -func VFMSUB213SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{}, ops) -} - -// VFMSUB213SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB213SS.RD_SAE xmm xmm k xmm -// VFMSUB213SS.RD_SAE xmm xmm xmm -func VFMSUB213SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB213SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RD_SAE.Z xmm xmm k xmm -func VFMSUB213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB213SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB213SS.RN_SAE xmm xmm k xmm -// VFMSUB213SS.RN_SAE xmm xmm xmm -func VFMSUB213SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB213SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RN_SAE.Z xmm xmm k xmm -func VFMSUB213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB213SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB213SS.RU_SAE xmm xmm k xmm -// VFMSUB213SS.RU_SAE xmm xmm xmm -func VFMSUB213SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB213SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RU_SAE.Z xmm xmm k xmm -func VFMSUB213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB213SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB213SS.RZ_SAE xmm xmm k xmm -// VFMSUB213SS.RZ_SAE xmm xmm xmm -func VFMSUB213SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB213SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.RZ_SAE.Z xmm xmm k xmm -func VFMSUB213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB213SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB213SS.Z m32 xmm k xmm -// VFMSUB213SS.Z xmm xmm k xmm -func VFMSUB213SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB213SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMSUB231PD: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231PD m128 xmm xmm -// VFMSUB231PD m256 ymm ymm -// VFMSUB231PD xmm xmm xmm -// VFMSUB231PD ymm ymm ymm -// VFMSUB231PD m128 xmm k xmm -// VFMSUB231PD m256 ymm k ymm -// VFMSUB231PD xmm xmm k xmm -// VFMSUB231PD ymm ymm k ymm -// VFMSUB231PD m512 zmm k zmm -// VFMSUB231PD m512 zmm zmm -// VFMSUB231PD zmm zmm k zmm -// VFMSUB231PD zmm zmm zmm -func VFMSUB231PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{}, ops) -} - -// VFMSUB231PD_BCST: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB231PD.BCST m64 xmm k xmm -// VFMSUB231PD.BCST m64 xmm xmm -// VFMSUB231PD.BCST m64 ymm k ymm -// VFMSUB231PD.BCST m64 ymm ymm -// VFMSUB231PD.BCST m64 zmm k zmm -// VFMSUB231PD.BCST m64 zmm zmm -func VFMSUB231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUB231PD_BCST_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.BCST.Z m64 xmm k xmm -// VFMSUB231PD.BCST.Z m64 ymm k ymm -// VFMSUB231PD.BCST.Z m64 zmm k zmm -func VFMSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUB231PD_RD_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231PD.RD_SAE zmm zmm k zmm -// VFMSUB231PD.RD_SAE zmm zmm zmm -func VFMSUB231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB231PD_RD_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RD_SAE.Z zmm zmm k zmm -func VFMSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB231PD_RN_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231PD.RN_SAE zmm zmm k zmm -// VFMSUB231PD.RN_SAE zmm zmm zmm -func VFMSUB231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB231PD_RN_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RN_SAE.Z zmm zmm k zmm -func VFMSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB231PD_RU_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231PD.RU_SAE zmm zmm k zmm -// VFMSUB231PD.RU_SAE zmm zmm zmm -func VFMSUB231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB231PD_RU_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RU_SAE.Z zmm zmm k zmm -func VFMSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB231PD_RZ_SAE: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231PD.RZ_SAE zmm zmm k zmm -// VFMSUB231PD.RZ_SAE zmm zmm zmm -func VFMSUB231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB231PD_RZ_SAE_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.RZ_SAE.Z zmm zmm k zmm -func VFMSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB231PD_Z: Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231PD.Z m128 xmm k xmm -// VFMSUB231PD.Z m256 ymm k ymm -// VFMSUB231PD.Z xmm xmm k xmm -// VFMSUB231PD.Z ymm ymm k ymm -// VFMSUB231PD.Z m512 zmm k zmm -// VFMSUB231PD.Z zmm zmm k zmm -func VFMSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUB231PS: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231PS m128 xmm xmm -// VFMSUB231PS m256 ymm ymm -// VFMSUB231PS xmm xmm xmm -// VFMSUB231PS ymm ymm ymm -// VFMSUB231PS m128 xmm k xmm -// VFMSUB231PS m256 ymm k ymm -// VFMSUB231PS xmm xmm k xmm -// VFMSUB231PS ymm ymm k ymm -// VFMSUB231PS m512 zmm k zmm -// VFMSUB231PS m512 zmm zmm -// VFMSUB231PS zmm zmm k zmm -// VFMSUB231PS zmm zmm zmm -func VFMSUB231PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{}, ops) -} - -// VFMSUB231PS_BCST: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUB231PS.BCST m32 xmm k xmm -// VFMSUB231PS.BCST m32 xmm xmm -// VFMSUB231PS.BCST m32 ymm k ymm -// VFMSUB231PS.BCST m32 ymm ymm -// VFMSUB231PS.BCST m32 zmm k zmm -// VFMSUB231PS.BCST m32 zmm zmm -func VFMSUB231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUB231PS_BCST_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.BCST.Z m32 xmm k xmm -// VFMSUB231PS.BCST.Z m32 ymm k ymm -// VFMSUB231PS.BCST.Z m32 zmm k zmm -func VFMSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUB231PS_RD_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231PS.RD_SAE zmm zmm k zmm -// VFMSUB231PS.RD_SAE zmm zmm zmm -func VFMSUB231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB231PS_RD_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RD_SAE.Z zmm zmm k zmm -func VFMSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB231PS_RN_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231PS.RN_SAE zmm zmm k zmm -// VFMSUB231PS.RN_SAE zmm zmm zmm -func VFMSUB231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB231PS_RN_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RN_SAE.Z zmm zmm k zmm -func VFMSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB231PS_RU_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231PS.RU_SAE zmm zmm k zmm -// VFMSUB231PS.RU_SAE zmm zmm zmm -func VFMSUB231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB231PS_RU_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RU_SAE.Z zmm zmm k zmm -func VFMSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB231PS_RZ_SAE: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231PS.RZ_SAE zmm zmm k zmm -// VFMSUB231PS.RZ_SAE zmm zmm zmm -func VFMSUB231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB231PS_RZ_SAE_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.RZ_SAE.Z zmm zmm k zmm -func VFMSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUB231PS_Z: Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231PS.Z m128 xmm k xmm -// VFMSUB231PS.Z m256 ymm k ymm -// VFMSUB231PS.Z xmm xmm k xmm -// VFMSUB231PS.Z ymm ymm k ymm -// VFMSUB231PS.Z m512 zmm k zmm -// VFMSUB231PS.Z zmm zmm k zmm -func VFMSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUB231SD: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231SD m64 xmm xmm -// VFMSUB231SD xmm xmm xmm -// VFMSUB231SD m64 xmm k xmm -// VFMSUB231SD xmm xmm k xmm -func VFMSUB231SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{}, ops) -} - -// VFMSUB231SD_RD_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231SD.RD_SAE xmm xmm k xmm -// VFMSUB231SD.RD_SAE xmm xmm xmm -func VFMSUB231SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB231SD_RD_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RD_SAE.Z xmm xmm k xmm -func VFMSUB231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB231SD_RN_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231SD.RN_SAE xmm xmm k xmm -// VFMSUB231SD.RN_SAE xmm xmm xmm -func VFMSUB231SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB231SD_RN_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RN_SAE.Z xmm xmm k xmm -func VFMSUB231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB231SD_RU_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231SD.RU_SAE xmm xmm k xmm -// VFMSUB231SD.RU_SAE xmm xmm xmm -func VFMSUB231SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB231SD_RU_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RU_SAE.Z xmm xmm k xmm -func VFMSUB231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB231SD_RZ_SAE: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231SD.RZ_SAE xmm xmm k xmm -// VFMSUB231SD.RZ_SAE xmm xmm xmm -func VFMSUB231SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB231SD_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.RZ_SAE.Z xmm xmm k xmm -func VFMSUB231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB231SD_Z: Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231SD.Z m64 xmm k xmm -// VFMSUB231SD.Z xmm xmm k xmm -func VFMSUB231SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMSUB231SS: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUB231SS m32 xmm xmm -// VFMSUB231SS xmm xmm xmm -// VFMSUB231SS m32 xmm k xmm -// VFMSUB231SS xmm xmm k xmm -func VFMSUB231SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{}, ops) -} - -// VFMSUB231SS_RD_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUB231SS.RD_SAE xmm xmm k xmm -// VFMSUB231SS.RD_SAE xmm xmm xmm -func VFMSUB231SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUB231SS_RD_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RD_SAE.Z xmm xmm k xmm -func VFMSUB231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB231SS_RN_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUB231SS.RN_SAE xmm xmm k xmm -// VFMSUB231SS.RN_SAE xmm xmm xmm -func VFMSUB231SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUB231SS_RN_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RN_SAE.Z xmm xmm k xmm -func VFMSUB231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB231SS_RU_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUB231SS.RU_SAE xmm xmm k xmm -// VFMSUB231SS.RU_SAE xmm xmm xmm -func VFMSUB231SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUB231SS_RU_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RU_SAE.Z xmm xmm k xmm -func VFMSUB231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB231SS_RZ_SAE: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUB231SS.RZ_SAE xmm xmm k xmm -// VFMSUB231SS.RZ_SAE xmm xmm xmm -func VFMSUB231SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUB231SS_RZ_SAE_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.RZ_SAE.Z xmm xmm k xmm -func VFMSUB231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFMSUB231SS_Z: Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUB231SS.Z m32 xmm k xmm -// VFMSUB231SS.Z xmm xmm k xmm -func VFMSUB231SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUB231SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFMSUBADD132PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD132PD m128 xmm xmm -// VFMSUBADD132PD m256 ymm ymm -// VFMSUBADD132PD xmm xmm xmm -// VFMSUBADD132PD ymm ymm ymm -// VFMSUBADD132PD m128 xmm k xmm -// VFMSUBADD132PD m256 ymm k ymm -// VFMSUBADD132PD xmm xmm k xmm -// VFMSUBADD132PD ymm ymm k ymm -// VFMSUBADD132PD m512 zmm k zmm -// VFMSUBADD132PD m512 zmm zmm -// VFMSUBADD132PD zmm zmm k zmm -// VFMSUBADD132PD zmm zmm zmm -func VFMSUBADD132PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{}, ops) -} - -// VFMSUBADD132PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD132PD.BCST m64 xmm k xmm -// VFMSUBADD132PD.BCST m64 xmm xmm -// VFMSUBADD132PD.BCST m64 ymm k ymm -// VFMSUBADD132PD.BCST m64 ymm ymm -// VFMSUBADD132PD.BCST m64 zmm k zmm -// VFMSUBADD132PD.BCST m64 zmm zmm -func VFMSUBADD132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUBADD132PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.BCST.Z m64 xmm k xmm -// VFMSUBADD132PD.BCST.Z m64 ymm k ymm -// VFMSUBADD132PD.BCST.Z m64 zmm k zmm -func VFMSUBADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUBADD132PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD132PD.RD_SAE zmm zmm k zmm -// VFMSUBADD132PD.RD_SAE zmm zmm zmm -func VFMSUBADD132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUBADD132PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RD_SAE.Z zmm zmm k zmm -func VFMSUBADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD132PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD132PD.RN_SAE zmm zmm k zmm -// VFMSUBADD132PD.RN_SAE zmm zmm zmm -func VFMSUBADD132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUBADD132PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RN_SAE.Z zmm zmm k zmm -func VFMSUBADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD132PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD132PD.RU_SAE zmm zmm k zmm -// VFMSUBADD132PD.RU_SAE zmm zmm zmm -func VFMSUBADD132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUBADD132PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RU_SAE.Z zmm zmm k zmm -func VFMSUBADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD132PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD132PD.RZ_SAE zmm zmm k zmm -// VFMSUBADD132PD.RZ_SAE zmm zmm zmm -func VFMSUBADD132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUBADD132PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.RZ_SAE.Z zmm zmm k zmm -func VFMSUBADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD132PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PD.Z m128 xmm k xmm -// VFMSUBADD132PD.Z m256 ymm k ymm -// VFMSUBADD132PD.Z xmm xmm k xmm -// VFMSUBADD132PD.Z ymm ymm k ymm -// VFMSUBADD132PD.Z m512 zmm k zmm -// VFMSUBADD132PD.Z zmm zmm k zmm -func VFMSUBADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUBADD132PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD132PS m128 xmm xmm -// VFMSUBADD132PS m256 ymm ymm -// VFMSUBADD132PS xmm xmm xmm -// VFMSUBADD132PS ymm ymm ymm -// VFMSUBADD132PS m128 xmm k xmm -// VFMSUBADD132PS m256 ymm k ymm -// VFMSUBADD132PS xmm xmm k xmm -// VFMSUBADD132PS ymm ymm k ymm -// VFMSUBADD132PS m512 zmm k zmm -// VFMSUBADD132PS m512 zmm zmm -// VFMSUBADD132PS zmm zmm k zmm -// VFMSUBADD132PS zmm zmm zmm -func VFMSUBADD132PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{}, ops) -} - -// VFMSUBADD132PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD132PS.BCST m32 xmm k xmm -// VFMSUBADD132PS.BCST m32 xmm xmm -// VFMSUBADD132PS.BCST m32 ymm k ymm -// VFMSUBADD132PS.BCST m32 ymm ymm -// VFMSUBADD132PS.BCST m32 zmm k zmm -// VFMSUBADD132PS.BCST m32 zmm zmm -func VFMSUBADD132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUBADD132PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.BCST.Z m32 xmm k xmm -// VFMSUBADD132PS.BCST.Z m32 ymm k ymm -// VFMSUBADD132PS.BCST.Z m32 zmm k zmm -func VFMSUBADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUBADD132PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD132PS.RD_SAE zmm zmm k zmm -// VFMSUBADD132PS.RD_SAE zmm zmm zmm -func VFMSUBADD132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUBADD132PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RD_SAE.Z zmm zmm k zmm -func VFMSUBADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD132PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD132PS.RN_SAE zmm zmm k zmm -// VFMSUBADD132PS.RN_SAE zmm zmm zmm -func VFMSUBADD132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUBADD132PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RN_SAE.Z zmm zmm k zmm -func VFMSUBADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD132PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD132PS.RU_SAE zmm zmm k zmm -// VFMSUBADD132PS.RU_SAE zmm zmm zmm -func VFMSUBADD132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUBADD132PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RU_SAE.Z zmm zmm k zmm -func VFMSUBADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD132PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD132PS.RZ_SAE zmm zmm k zmm -// VFMSUBADD132PS.RZ_SAE zmm zmm zmm -func VFMSUBADD132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUBADD132PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.RZ_SAE.Z zmm zmm k zmm -func VFMSUBADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD132PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD132PS.Z m128 xmm k xmm -// VFMSUBADD132PS.Z m256 ymm k ymm -// VFMSUBADD132PS.Z xmm xmm k xmm -// VFMSUBADD132PS.Z ymm ymm k ymm -// VFMSUBADD132PS.Z m512 zmm k zmm -// VFMSUBADD132PS.Z zmm zmm k zmm -func VFMSUBADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUBADD213PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD213PD m128 xmm xmm -// VFMSUBADD213PD m256 ymm ymm -// VFMSUBADD213PD xmm xmm xmm -// VFMSUBADD213PD ymm ymm ymm -// VFMSUBADD213PD m128 xmm k xmm -// VFMSUBADD213PD m256 ymm k ymm -// VFMSUBADD213PD xmm xmm k xmm -// VFMSUBADD213PD ymm ymm k ymm -// VFMSUBADD213PD m512 zmm k zmm -// VFMSUBADD213PD m512 zmm zmm -// VFMSUBADD213PD zmm zmm k zmm -// VFMSUBADD213PD zmm zmm zmm -func VFMSUBADD213PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{}, ops) -} - -// VFMSUBADD213PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD213PD.BCST m64 xmm k xmm -// VFMSUBADD213PD.BCST m64 xmm xmm -// VFMSUBADD213PD.BCST m64 ymm k ymm -// VFMSUBADD213PD.BCST m64 ymm ymm -// VFMSUBADD213PD.BCST m64 zmm k zmm -// VFMSUBADD213PD.BCST m64 zmm zmm -func VFMSUBADD213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUBADD213PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.BCST.Z m64 xmm k xmm -// VFMSUBADD213PD.BCST.Z m64 ymm k ymm -// VFMSUBADD213PD.BCST.Z m64 zmm k zmm -func VFMSUBADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUBADD213PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD213PD.RD_SAE zmm zmm k zmm -// VFMSUBADD213PD.RD_SAE zmm zmm zmm -func VFMSUBADD213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUBADD213PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RD_SAE.Z zmm zmm k zmm -func VFMSUBADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD213PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD213PD.RN_SAE zmm zmm k zmm -// VFMSUBADD213PD.RN_SAE zmm zmm zmm -func VFMSUBADD213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUBADD213PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RN_SAE.Z zmm zmm k zmm -func VFMSUBADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD213PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD213PD.RU_SAE zmm zmm k zmm -// VFMSUBADD213PD.RU_SAE zmm zmm zmm -func VFMSUBADD213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUBADD213PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RU_SAE.Z zmm zmm k zmm -func VFMSUBADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD213PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD213PD.RZ_SAE zmm zmm k zmm -// VFMSUBADD213PD.RZ_SAE zmm zmm zmm -func VFMSUBADD213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUBADD213PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.RZ_SAE.Z zmm zmm k zmm -func VFMSUBADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD213PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PD.Z m128 xmm k xmm -// VFMSUBADD213PD.Z m256 ymm k ymm -// VFMSUBADD213PD.Z xmm xmm k xmm -// VFMSUBADD213PD.Z ymm ymm k ymm -// VFMSUBADD213PD.Z m512 zmm k zmm -// VFMSUBADD213PD.Z zmm zmm k zmm -func VFMSUBADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUBADD213PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD213PS m128 xmm xmm -// VFMSUBADD213PS m256 ymm ymm -// VFMSUBADD213PS xmm xmm xmm -// VFMSUBADD213PS ymm ymm ymm -// VFMSUBADD213PS m128 xmm k xmm -// VFMSUBADD213PS m256 ymm k ymm -// VFMSUBADD213PS xmm xmm k xmm -// VFMSUBADD213PS ymm ymm k ymm -// VFMSUBADD213PS m512 zmm k zmm -// VFMSUBADD213PS m512 zmm zmm -// VFMSUBADD213PS zmm zmm k zmm -// VFMSUBADD213PS zmm zmm zmm -func VFMSUBADD213PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{}, ops) -} - -// VFMSUBADD213PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD213PS.BCST m32 xmm k xmm -// VFMSUBADD213PS.BCST m32 xmm xmm -// VFMSUBADD213PS.BCST m32 ymm k ymm -// VFMSUBADD213PS.BCST m32 ymm ymm -// VFMSUBADD213PS.BCST m32 zmm k zmm -// VFMSUBADD213PS.BCST m32 zmm zmm -func VFMSUBADD213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUBADD213PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.BCST.Z m32 xmm k xmm -// VFMSUBADD213PS.BCST.Z m32 ymm k ymm -// VFMSUBADD213PS.BCST.Z m32 zmm k zmm -func VFMSUBADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUBADD213PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD213PS.RD_SAE zmm zmm k zmm -// VFMSUBADD213PS.RD_SAE zmm zmm zmm -func VFMSUBADD213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUBADD213PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RD_SAE.Z zmm zmm k zmm -func VFMSUBADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD213PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD213PS.RN_SAE zmm zmm k zmm -// VFMSUBADD213PS.RN_SAE zmm zmm zmm -func VFMSUBADD213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUBADD213PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RN_SAE.Z zmm zmm k zmm -func VFMSUBADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD213PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD213PS.RU_SAE zmm zmm k zmm -// VFMSUBADD213PS.RU_SAE zmm zmm zmm -func VFMSUBADD213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUBADD213PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RU_SAE.Z zmm zmm k zmm -func VFMSUBADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD213PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD213PS.RZ_SAE zmm zmm k zmm -// VFMSUBADD213PS.RZ_SAE zmm zmm zmm -func VFMSUBADD213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUBADD213PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.RZ_SAE.Z zmm zmm k zmm -func VFMSUBADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD213PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD213PS.Z m128 xmm k xmm -// VFMSUBADD213PS.Z m256 ymm k ymm -// VFMSUBADD213PS.Z xmm xmm k xmm -// VFMSUBADD213PS.Z ymm ymm k ymm -// VFMSUBADD213PS.Z m512 zmm k zmm -// VFMSUBADD213PS.Z zmm zmm k zmm -func VFMSUBADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUBADD231PD: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD231PD m128 xmm xmm -// VFMSUBADD231PD m256 ymm ymm -// VFMSUBADD231PD xmm xmm xmm -// VFMSUBADD231PD ymm ymm ymm -// VFMSUBADD231PD m128 xmm k xmm -// VFMSUBADD231PD m256 ymm k ymm -// VFMSUBADD231PD xmm xmm k xmm -// VFMSUBADD231PD ymm ymm k ymm -// VFMSUBADD231PD m512 zmm k zmm -// VFMSUBADD231PD m512 zmm zmm -// VFMSUBADD231PD zmm zmm k zmm -// VFMSUBADD231PD zmm zmm zmm -func VFMSUBADD231PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{}, ops) -} - -// VFMSUBADD231PD_BCST: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD231PD.BCST m64 xmm k xmm -// VFMSUBADD231PD.BCST m64 xmm xmm -// VFMSUBADD231PD.BCST m64 ymm k ymm -// VFMSUBADD231PD.BCST m64 ymm ymm -// VFMSUBADD231PD.BCST m64 zmm k zmm -// VFMSUBADD231PD.BCST m64 zmm zmm -func VFMSUBADD231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUBADD231PD_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.BCST.Z m64 xmm k xmm -// VFMSUBADD231PD.BCST.Z m64 ymm k ymm -// VFMSUBADD231PD.BCST.Z m64 zmm k zmm -func VFMSUBADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUBADD231PD_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD231PD.RD_SAE zmm zmm k zmm -// VFMSUBADD231PD.RD_SAE zmm zmm zmm -func VFMSUBADD231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUBADD231PD_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RD_SAE.Z zmm zmm k zmm -func VFMSUBADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD231PD_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD231PD.RN_SAE zmm zmm k zmm -// VFMSUBADD231PD.RN_SAE zmm zmm zmm -func VFMSUBADD231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUBADD231PD_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RN_SAE.Z zmm zmm k zmm -func VFMSUBADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD231PD_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD231PD.RU_SAE zmm zmm k zmm -// VFMSUBADD231PD.RU_SAE zmm zmm zmm -func VFMSUBADD231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUBADD231PD_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RU_SAE.Z zmm zmm k zmm -func VFMSUBADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD231PD_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD231PD.RZ_SAE zmm zmm k zmm -// VFMSUBADD231PD.RZ_SAE zmm zmm zmm -func VFMSUBADD231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUBADD231PD_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.RZ_SAE.Z zmm zmm k zmm -func VFMSUBADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD231PD_Z: Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PD.Z m128 xmm k xmm -// VFMSUBADD231PD.Z m256 ymm k ymm -// VFMSUBADD231PD.Z xmm xmm k xmm -// VFMSUBADD231PD.Z ymm ymm k ymm -// VFMSUBADD231PD.Z m512 zmm k zmm -// VFMSUBADD231PD.Z zmm zmm k zmm -func VFMSUBADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFMSUBADD231PS: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFMSUBADD231PS m128 xmm xmm -// VFMSUBADD231PS m256 ymm ymm -// VFMSUBADD231PS xmm xmm xmm -// VFMSUBADD231PS ymm ymm ymm -// VFMSUBADD231PS m128 xmm k xmm -// VFMSUBADD231PS m256 ymm k ymm -// VFMSUBADD231PS xmm xmm k xmm -// VFMSUBADD231PS ymm ymm k ymm -// VFMSUBADD231PS m512 zmm k zmm -// VFMSUBADD231PS m512 zmm zmm -// VFMSUBADD231PS zmm zmm k zmm -// VFMSUBADD231PS zmm zmm zmm -func VFMSUBADD231PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{}, ops) -} - -// VFMSUBADD231PS_BCST: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFMSUBADD231PS.BCST m32 xmm k xmm -// VFMSUBADD231PS.BCST m32 xmm xmm -// VFMSUBADD231PS.BCST m32 ymm k ymm -// VFMSUBADD231PS.BCST m32 ymm ymm -// VFMSUBADD231PS.BCST m32 zmm k zmm -// VFMSUBADD231PS.BCST m32 zmm zmm -func VFMSUBADD231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFMSUBADD231PS_BCST_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.BCST.Z m32 xmm k xmm -// VFMSUBADD231PS.BCST.Z m32 ymm k ymm -// VFMSUBADD231PS.BCST.Z m32 zmm k zmm -func VFMSUBADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFMSUBADD231PS_RD_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFMSUBADD231PS.RD_SAE zmm zmm k zmm -// VFMSUBADD231PS.RD_SAE zmm zmm zmm -func VFMSUBADD231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFMSUBADD231PS_RD_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RD_SAE.Z zmm zmm k zmm -func VFMSUBADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD231PS_RN_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFMSUBADD231PS.RN_SAE zmm zmm k zmm -// VFMSUBADD231PS.RN_SAE zmm zmm zmm -func VFMSUBADD231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFMSUBADD231PS_RN_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RN_SAE.Z zmm zmm k zmm -func VFMSUBADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD231PS_RU_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFMSUBADD231PS.RU_SAE zmm zmm k zmm -// VFMSUBADD231PS.RU_SAE zmm zmm zmm -func VFMSUBADD231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFMSUBADD231PS_RU_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RU_SAE.Z zmm zmm k zmm -func VFMSUBADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD231PS_RZ_SAE: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFMSUBADD231PS.RZ_SAE zmm zmm k zmm -// VFMSUBADD231PS.RZ_SAE zmm zmm zmm -func VFMSUBADD231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFMSUBADD231PS_RZ_SAE_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.RZ_SAE.Z zmm zmm k zmm -func VFMSUBADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFMSUBADD231PS_Z: Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFMSUBADD231PS.Z m128 xmm k xmm -// VFMSUBADD231PS.Z m256 ymm k ymm -// VFMSUBADD231PS.Z xmm xmm k xmm -// VFMSUBADD231PS.Z ymm ymm k ymm -// VFMSUBADD231PS.Z m512 zmm k zmm -// VFMSUBADD231PS.Z zmm zmm k zmm -func VFMSUBADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFMSUBADD231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMADD132PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132PD m128 xmm xmm -// VFNMADD132PD m256 ymm ymm -// VFNMADD132PD xmm xmm xmm -// VFNMADD132PD ymm ymm ymm -// VFNMADD132PD m128 xmm k xmm -// VFNMADD132PD m256 ymm k ymm -// VFNMADD132PD xmm xmm k xmm -// VFNMADD132PD ymm ymm k ymm -// VFNMADD132PD m512 zmm k zmm -// VFNMADD132PD m512 zmm zmm -// VFNMADD132PD zmm zmm k zmm -// VFNMADD132PD zmm zmm zmm -func VFNMADD132PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{}, ops) -} - -// VFNMADD132PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD132PD.BCST m64 xmm k xmm -// VFNMADD132PD.BCST m64 xmm xmm -// VFNMADD132PD.BCST m64 ymm k ymm -// VFNMADD132PD.BCST m64 ymm ymm -// VFNMADD132PD.BCST m64 zmm k zmm -// VFNMADD132PD.BCST m64 zmm zmm -func VFNMADD132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMADD132PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.BCST.Z m64 xmm k xmm -// VFNMADD132PD.BCST.Z m64 ymm k ymm -// VFNMADD132PD.BCST.Z m64 zmm k zmm -func VFNMADD132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMADD132PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132PD.RD_SAE zmm zmm k zmm -// VFNMADD132PD.RD_SAE zmm zmm zmm -func VFNMADD132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD132PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RD_SAE.Z zmm zmm k zmm -func VFNMADD132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD132PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132PD.RN_SAE zmm zmm k zmm -// VFNMADD132PD.RN_SAE zmm zmm zmm -func VFNMADD132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD132PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RN_SAE.Z zmm zmm k zmm -func VFNMADD132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD132PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132PD.RU_SAE zmm zmm k zmm -// VFNMADD132PD.RU_SAE zmm zmm zmm -func VFNMADD132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD132PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RU_SAE.Z zmm zmm k zmm -func VFNMADD132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD132PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132PD.RZ_SAE zmm zmm k zmm -// VFNMADD132PD.RZ_SAE zmm zmm zmm -func VFNMADD132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD132PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.RZ_SAE.Z zmm zmm k zmm -func VFNMADD132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD132PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132PD.Z m128 xmm k xmm -// VFNMADD132PD.Z m256 ymm k ymm -// VFNMADD132PD.Z xmm xmm k xmm -// VFNMADD132PD.Z ymm ymm k ymm -// VFNMADD132PD.Z m512 zmm k zmm -// VFNMADD132PD.Z zmm zmm k zmm -func VFNMADD132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMADD132PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132PS m128 xmm xmm -// VFNMADD132PS m256 ymm ymm -// VFNMADD132PS xmm xmm xmm -// VFNMADD132PS ymm ymm ymm -// VFNMADD132PS m128 xmm k xmm -// VFNMADD132PS m256 ymm k ymm -// VFNMADD132PS xmm xmm k xmm -// VFNMADD132PS ymm ymm k ymm -// VFNMADD132PS m512 zmm k zmm -// VFNMADD132PS m512 zmm zmm -// VFNMADD132PS zmm zmm k zmm -// VFNMADD132PS zmm zmm zmm -func VFNMADD132PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{}, ops) -} - -// VFNMADD132PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD132PS.BCST m32 xmm k xmm -// VFNMADD132PS.BCST m32 xmm xmm -// VFNMADD132PS.BCST m32 ymm k ymm -// VFNMADD132PS.BCST m32 ymm ymm -// VFNMADD132PS.BCST m32 zmm k zmm -// VFNMADD132PS.BCST m32 zmm zmm -func VFNMADD132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMADD132PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.BCST.Z m32 xmm k xmm -// VFNMADD132PS.BCST.Z m32 ymm k ymm -// VFNMADD132PS.BCST.Z m32 zmm k zmm -func VFNMADD132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMADD132PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132PS.RD_SAE zmm zmm k zmm -// VFNMADD132PS.RD_SAE zmm zmm zmm -func VFNMADD132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD132PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RD_SAE.Z zmm zmm k zmm -func VFNMADD132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD132PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132PS.RN_SAE zmm zmm k zmm -// VFNMADD132PS.RN_SAE zmm zmm zmm -func VFNMADD132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD132PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RN_SAE.Z zmm zmm k zmm -func VFNMADD132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD132PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132PS.RU_SAE zmm zmm k zmm -// VFNMADD132PS.RU_SAE zmm zmm zmm -func VFNMADD132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD132PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RU_SAE.Z zmm zmm k zmm -func VFNMADD132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD132PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132PS.RZ_SAE zmm zmm k zmm -// VFNMADD132PS.RZ_SAE zmm zmm zmm -func VFNMADD132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD132PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.RZ_SAE.Z zmm zmm k zmm -func VFNMADD132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD132PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132PS.Z m128 xmm k xmm -// VFNMADD132PS.Z m256 ymm k ymm -// VFNMADD132PS.Z xmm xmm k xmm -// VFNMADD132PS.Z ymm ymm k ymm -// VFNMADD132PS.Z m512 zmm k zmm -// VFNMADD132PS.Z zmm zmm k zmm -func VFNMADD132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMADD132SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132SD m64 xmm xmm -// VFNMADD132SD xmm xmm xmm -// VFNMADD132SD m64 xmm k xmm -// VFNMADD132SD xmm xmm k xmm -func VFNMADD132SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{}, ops) -} - -// VFNMADD132SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132SD.RD_SAE xmm xmm k xmm -// VFNMADD132SD.RD_SAE xmm xmm xmm -func VFNMADD132SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD132SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RD_SAE.Z xmm xmm k xmm -func VFNMADD132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD132SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132SD.RN_SAE xmm xmm k xmm -// VFNMADD132SD.RN_SAE xmm xmm xmm -func VFNMADD132SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD132SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RN_SAE.Z xmm xmm k xmm -func VFNMADD132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD132SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132SD.RU_SAE xmm xmm k xmm -// VFNMADD132SD.RU_SAE xmm xmm xmm -func VFNMADD132SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD132SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RU_SAE.Z xmm xmm k xmm -func VFNMADD132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD132SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132SD.RZ_SAE xmm xmm k xmm -// VFNMADD132SD.RZ_SAE xmm xmm xmm -func VFNMADD132SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD132SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.RZ_SAE.Z xmm xmm k xmm -func VFNMADD132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD132SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132SD.Z m64 xmm k xmm -// VFNMADD132SD.Z xmm xmm k xmm -func VFNMADD132SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMADD132SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD132SS m32 xmm xmm -// VFNMADD132SS xmm xmm xmm -// VFNMADD132SS m32 xmm k xmm -// VFNMADD132SS xmm xmm k xmm -func VFNMADD132SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{}, ops) -} - -// VFNMADD132SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD132SS.RD_SAE xmm xmm k xmm -// VFNMADD132SS.RD_SAE xmm xmm xmm -func VFNMADD132SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD132SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RD_SAE.Z xmm xmm k xmm -func VFNMADD132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD132SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD132SS.RN_SAE xmm xmm k xmm -// VFNMADD132SS.RN_SAE xmm xmm xmm -func VFNMADD132SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD132SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RN_SAE.Z xmm xmm k xmm -func VFNMADD132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD132SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD132SS.RU_SAE xmm xmm k xmm -// VFNMADD132SS.RU_SAE xmm xmm xmm -func VFNMADD132SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD132SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RU_SAE.Z xmm xmm k xmm -func VFNMADD132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD132SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD132SS.RZ_SAE xmm xmm k xmm -// VFNMADD132SS.RZ_SAE xmm xmm xmm -func VFNMADD132SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD132SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.RZ_SAE.Z xmm xmm k xmm -func VFNMADD132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD132SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD132SS.Z m32 xmm k xmm -// VFNMADD132SS.Z xmm xmm k xmm -func VFNMADD132SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD132SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMADD213PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213PD m128 xmm xmm -// VFNMADD213PD m256 ymm ymm -// VFNMADD213PD xmm xmm xmm -// VFNMADD213PD ymm ymm ymm -// VFNMADD213PD m128 xmm k xmm -// VFNMADD213PD m256 ymm k ymm -// VFNMADD213PD xmm xmm k xmm -// VFNMADD213PD ymm ymm k ymm -// VFNMADD213PD m512 zmm k zmm -// VFNMADD213PD m512 zmm zmm -// VFNMADD213PD zmm zmm k zmm -// VFNMADD213PD zmm zmm zmm -func VFNMADD213PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{}, ops) -} - -// VFNMADD213PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD213PD.BCST m64 xmm k xmm -// VFNMADD213PD.BCST m64 xmm xmm -// VFNMADD213PD.BCST m64 ymm k ymm -// VFNMADD213PD.BCST m64 ymm ymm -// VFNMADD213PD.BCST m64 zmm k zmm -// VFNMADD213PD.BCST m64 zmm zmm -func VFNMADD213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMADD213PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.BCST.Z m64 xmm k xmm -// VFNMADD213PD.BCST.Z m64 ymm k ymm -// VFNMADD213PD.BCST.Z m64 zmm k zmm -func VFNMADD213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMADD213PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213PD.RD_SAE zmm zmm k zmm -// VFNMADD213PD.RD_SAE zmm zmm zmm -func VFNMADD213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD213PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RD_SAE.Z zmm zmm k zmm -func VFNMADD213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD213PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213PD.RN_SAE zmm zmm k zmm -// VFNMADD213PD.RN_SAE zmm zmm zmm -func VFNMADD213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD213PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RN_SAE.Z zmm zmm k zmm -func VFNMADD213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD213PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213PD.RU_SAE zmm zmm k zmm -// VFNMADD213PD.RU_SAE zmm zmm zmm -func VFNMADD213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD213PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RU_SAE.Z zmm zmm k zmm -func VFNMADD213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD213PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213PD.RZ_SAE zmm zmm k zmm -// VFNMADD213PD.RZ_SAE zmm zmm zmm -func VFNMADD213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD213PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.RZ_SAE.Z zmm zmm k zmm -func VFNMADD213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD213PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213PD.Z m128 xmm k xmm -// VFNMADD213PD.Z m256 ymm k ymm -// VFNMADD213PD.Z xmm xmm k xmm -// VFNMADD213PD.Z ymm ymm k ymm -// VFNMADD213PD.Z m512 zmm k zmm -// VFNMADD213PD.Z zmm zmm k zmm -func VFNMADD213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMADD213PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213PS m128 xmm xmm -// VFNMADD213PS m256 ymm ymm -// VFNMADD213PS xmm xmm xmm -// VFNMADD213PS ymm ymm ymm -// VFNMADD213PS m128 xmm k xmm -// VFNMADD213PS m256 ymm k ymm -// VFNMADD213PS xmm xmm k xmm -// VFNMADD213PS ymm ymm k ymm -// VFNMADD213PS m512 zmm k zmm -// VFNMADD213PS m512 zmm zmm -// VFNMADD213PS zmm zmm k zmm -// VFNMADD213PS zmm zmm zmm -func VFNMADD213PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{}, ops) -} - -// VFNMADD213PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD213PS.BCST m32 xmm k xmm -// VFNMADD213PS.BCST m32 xmm xmm -// VFNMADD213PS.BCST m32 ymm k ymm -// VFNMADD213PS.BCST m32 ymm ymm -// VFNMADD213PS.BCST m32 zmm k zmm -// VFNMADD213PS.BCST m32 zmm zmm -func VFNMADD213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMADD213PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.BCST.Z m32 xmm k xmm -// VFNMADD213PS.BCST.Z m32 ymm k ymm -// VFNMADD213PS.BCST.Z m32 zmm k zmm -func VFNMADD213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMADD213PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213PS.RD_SAE zmm zmm k zmm -// VFNMADD213PS.RD_SAE zmm zmm zmm -func VFNMADD213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD213PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RD_SAE.Z zmm zmm k zmm -func VFNMADD213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD213PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213PS.RN_SAE zmm zmm k zmm -// VFNMADD213PS.RN_SAE zmm zmm zmm -func VFNMADD213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD213PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RN_SAE.Z zmm zmm k zmm -func VFNMADD213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD213PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213PS.RU_SAE zmm zmm k zmm -// VFNMADD213PS.RU_SAE zmm zmm zmm -func VFNMADD213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD213PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RU_SAE.Z zmm zmm k zmm -func VFNMADD213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD213PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213PS.RZ_SAE zmm zmm k zmm -// VFNMADD213PS.RZ_SAE zmm zmm zmm -func VFNMADD213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD213PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.RZ_SAE.Z zmm zmm k zmm -func VFNMADD213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD213PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213PS.Z m128 xmm k xmm -// VFNMADD213PS.Z m256 ymm k ymm -// VFNMADD213PS.Z xmm xmm k xmm -// VFNMADD213PS.Z ymm ymm k ymm -// VFNMADD213PS.Z m512 zmm k zmm -// VFNMADD213PS.Z zmm zmm k zmm -func VFNMADD213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMADD213SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213SD m64 xmm xmm -// VFNMADD213SD xmm xmm xmm -// VFNMADD213SD m64 xmm k xmm -// VFNMADD213SD xmm xmm k xmm -func VFNMADD213SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{}, ops) -} - -// VFNMADD213SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213SD.RD_SAE xmm xmm k xmm -// VFNMADD213SD.RD_SAE xmm xmm xmm -func VFNMADD213SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD213SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RD_SAE.Z xmm xmm k xmm -func VFNMADD213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD213SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213SD.RN_SAE xmm xmm k xmm -// VFNMADD213SD.RN_SAE xmm xmm xmm -func VFNMADD213SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD213SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RN_SAE.Z xmm xmm k xmm -func VFNMADD213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD213SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213SD.RU_SAE xmm xmm k xmm -// VFNMADD213SD.RU_SAE xmm xmm xmm -func VFNMADD213SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD213SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RU_SAE.Z xmm xmm k xmm -func VFNMADD213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD213SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213SD.RZ_SAE xmm xmm k xmm -// VFNMADD213SD.RZ_SAE xmm xmm xmm -func VFNMADD213SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD213SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.RZ_SAE.Z xmm xmm k xmm -func VFNMADD213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD213SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213SD.Z m64 xmm k xmm -// VFNMADD213SD.Z xmm xmm k xmm -func VFNMADD213SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMADD213SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD213SS m32 xmm xmm -// VFNMADD213SS xmm xmm xmm -// VFNMADD213SS m32 xmm k xmm -// VFNMADD213SS xmm xmm k xmm -func VFNMADD213SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{}, ops) -} - -// VFNMADD213SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD213SS.RD_SAE xmm xmm k xmm -// VFNMADD213SS.RD_SAE xmm xmm xmm -func VFNMADD213SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD213SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RD_SAE.Z xmm xmm k xmm -func VFNMADD213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD213SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD213SS.RN_SAE xmm xmm k xmm -// VFNMADD213SS.RN_SAE xmm xmm xmm -func VFNMADD213SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD213SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RN_SAE.Z xmm xmm k xmm -func VFNMADD213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD213SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD213SS.RU_SAE xmm xmm k xmm -// VFNMADD213SS.RU_SAE xmm xmm xmm -func VFNMADD213SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD213SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RU_SAE.Z xmm xmm k xmm -func VFNMADD213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD213SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD213SS.RZ_SAE xmm xmm k xmm -// VFNMADD213SS.RZ_SAE xmm xmm xmm -func VFNMADD213SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD213SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.RZ_SAE.Z xmm xmm k xmm -func VFNMADD213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD213SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD213SS.Z m32 xmm k xmm -// VFNMADD213SS.Z xmm xmm k xmm -func VFNMADD213SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD213SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMADD231PD: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231PD m128 xmm xmm -// VFNMADD231PD m256 ymm ymm -// VFNMADD231PD xmm xmm xmm -// VFNMADD231PD ymm ymm ymm -// VFNMADD231PD m128 xmm k xmm -// VFNMADD231PD m256 ymm k ymm -// VFNMADD231PD xmm xmm k xmm -// VFNMADD231PD ymm ymm k ymm -// VFNMADD231PD m512 zmm k zmm -// VFNMADD231PD m512 zmm zmm -// VFNMADD231PD zmm zmm k zmm -// VFNMADD231PD zmm zmm zmm -func VFNMADD231PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{}, ops) -} - -// VFNMADD231PD_BCST: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD231PD.BCST m64 xmm k xmm -// VFNMADD231PD.BCST m64 xmm xmm -// VFNMADD231PD.BCST m64 ymm k ymm -// VFNMADD231PD.BCST m64 ymm ymm -// VFNMADD231PD.BCST m64 zmm k zmm -// VFNMADD231PD.BCST m64 zmm zmm -func VFNMADD231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMADD231PD_BCST_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.BCST.Z m64 xmm k xmm -// VFNMADD231PD.BCST.Z m64 ymm k ymm -// VFNMADD231PD.BCST.Z m64 zmm k zmm -func VFNMADD231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMADD231PD_RD_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231PD.RD_SAE zmm zmm k zmm -// VFNMADD231PD.RD_SAE zmm zmm zmm -func VFNMADD231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD231PD_RD_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RD_SAE.Z zmm zmm k zmm -func VFNMADD231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD231PD_RN_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231PD.RN_SAE zmm zmm k zmm -// VFNMADD231PD.RN_SAE zmm zmm zmm -func VFNMADD231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD231PD_RN_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RN_SAE.Z zmm zmm k zmm -func VFNMADD231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD231PD_RU_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231PD.RU_SAE zmm zmm k zmm -// VFNMADD231PD.RU_SAE zmm zmm zmm -func VFNMADD231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD231PD_RU_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RU_SAE.Z zmm zmm k zmm -func VFNMADD231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD231PD_RZ_SAE: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231PD.RZ_SAE zmm zmm k zmm -// VFNMADD231PD.RZ_SAE zmm zmm zmm -func VFNMADD231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD231PD_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.RZ_SAE.Z zmm zmm k zmm -func VFNMADD231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD231PD_Z: Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231PD.Z m128 xmm k xmm -// VFNMADD231PD.Z m256 ymm k ymm -// VFNMADD231PD.Z xmm xmm k xmm -// VFNMADD231PD.Z ymm ymm k ymm -// VFNMADD231PD.Z m512 zmm k zmm -// VFNMADD231PD.Z zmm zmm k zmm -func VFNMADD231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMADD231PS: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231PS m128 xmm xmm -// VFNMADD231PS m256 ymm ymm -// VFNMADD231PS xmm xmm xmm -// VFNMADD231PS ymm ymm ymm -// VFNMADD231PS m128 xmm k xmm -// VFNMADD231PS m256 ymm k ymm -// VFNMADD231PS xmm xmm k xmm -// VFNMADD231PS ymm ymm k ymm -// VFNMADD231PS m512 zmm k zmm -// VFNMADD231PS m512 zmm zmm -// VFNMADD231PS zmm zmm k zmm -// VFNMADD231PS zmm zmm zmm -func VFNMADD231PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{}, ops) -} - -// VFNMADD231PS_BCST: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMADD231PS.BCST m32 xmm k xmm -// VFNMADD231PS.BCST m32 xmm xmm -// VFNMADD231PS.BCST m32 ymm k ymm -// VFNMADD231PS.BCST m32 ymm ymm -// VFNMADD231PS.BCST m32 zmm k zmm -// VFNMADD231PS.BCST m32 zmm zmm -func VFNMADD231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMADD231PS_BCST_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.BCST.Z m32 xmm k xmm -// VFNMADD231PS.BCST.Z m32 ymm k ymm -// VFNMADD231PS.BCST.Z m32 zmm k zmm -func VFNMADD231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMADD231PS_RD_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231PS.RD_SAE zmm zmm k zmm -// VFNMADD231PS.RD_SAE zmm zmm zmm -func VFNMADD231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD231PS_RD_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RD_SAE.Z zmm zmm k zmm -func VFNMADD231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD231PS_RN_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231PS.RN_SAE zmm zmm k zmm -// VFNMADD231PS.RN_SAE zmm zmm zmm -func VFNMADD231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD231PS_RN_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RN_SAE.Z zmm zmm k zmm -func VFNMADD231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD231PS_RU_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231PS.RU_SAE zmm zmm k zmm -// VFNMADD231PS.RU_SAE zmm zmm zmm -func VFNMADD231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD231PS_RU_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RU_SAE.Z zmm zmm k zmm -func VFNMADD231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD231PS_RZ_SAE: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231PS.RZ_SAE zmm zmm k zmm -// VFNMADD231PS.RZ_SAE zmm zmm zmm -func VFNMADD231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD231PS_RZ_SAE_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.RZ_SAE.Z zmm zmm k zmm -func VFNMADD231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMADD231PS_Z: Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231PS.Z m128 xmm k xmm -// VFNMADD231PS.Z m256 ymm k ymm -// VFNMADD231PS.Z xmm xmm k xmm -// VFNMADD231PS.Z ymm ymm k ymm -// VFNMADD231PS.Z m512 zmm k zmm -// VFNMADD231PS.Z zmm zmm k zmm -func VFNMADD231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMADD231SD: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231SD m64 xmm xmm -// VFNMADD231SD xmm xmm xmm -// VFNMADD231SD m64 xmm k xmm -// VFNMADD231SD xmm xmm k xmm -func VFNMADD231SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{}, ops) -} - -// VFNMADD231SD_RD_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231SD.RD_SAE xmm xmm k xmm -// VFNMADD231SD.RD_SAE xmm xmm xmm -func VFNMADD231SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD231SD_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RD_SAE.Z xmm xmm k xmm -func VFNMADD231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD231SD_RN_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231SD.RN_SAE xmm xmm k xmm -// VFNMADD231SD.RN_SAE xmm xmm xmm -func VFNMADD231SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD231SD_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RN_SAE.Z xmm xmm k xmm -func VFNMADD231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD231SD_RU_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231SD.RU_SAE xmm xmm k xmm -// VFNMADD231SD.RU_SAE xmm xmm xmm -func VFNMADD231SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD231SD_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RU_SAE.Z xmm xmm k xmm -func VFNMADD231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD231SD_RZ_SAE: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231SD.RZ_SAE xmm xmm k xmm -// VFNMADD231SD.RZ_SAE xmm xmm xmm -func VFNMADD231SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD231SD_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.RZ_SAE.Z xmm xmm k xmm -func VFNMADD231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD231SD_Z: Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231SD.Z m64 xmm k xmm -// VFNMADD231SD.Z xmm xmm k xmm -func VFNMADD231SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMADD231SS: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMADD231SS m32 xmm xmm -// VFNMADD231SS xmm xmm xmm -// VFNMADD231SS m32 xmm k xmm -// VFNMADD231SS xmm xmm k xmm -func VFNMADD231SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{}, ops) -} - -// VFNMADD231SS_RD_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMADD231SS.RD_SAE xmm xmm k xmm -// VFNMADD231SS.RD_SAE xmm xmm xmm -func VFNMADD231SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMADD231SS_RD_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RD_SAE.Z xmm xmm k xmm -func VFNMADD231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD231SS_RN_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMADD231SS.RN_SAE xmm xmm k xmm -// VFNMADD231SS.RN_SAE xmm xmm xmm -func VFNMADD231SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMADD231SS_RN_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RN_SAE.Z xmm xmm k xmm -func VFNMADD231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD231SS_RU_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMADD231SS.RU_SAE xmm xmm k xmm -// VFNMADD231SS.RU_SAE xmm xmm xmm -func VFNMADD231SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMADD231SS_RU_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RU_SAE.Z xmm xmm k xmm -func VFNMADD231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD231SS_RZ_SAE: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMADD231SS.RZ_SAE xmm xmm k xmm -// VFNMADD231SS.RZ_SAE xmm xmm xmm -func VFNMADD231SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMADD231SS_RZ_SAE_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.RZ_SAE.Z xmm xmm k xmm -func VFNMADD231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMADD231SS_Z: Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMADD231SS.Z m32 xmm k xmm -// VFNMADD231SS.Z xmm xmm k xmm -func VFNMADD231SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMADD231SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMSUB132PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132PD m128 xmm xmm -// VFNMSUB132PD m256 ymm ymm -// VFNMSUB132PD xmm xmm xmm -// VFNMSUB132PD ymm ymm ymm -// VFNMSUB132PD m128 xmm k xmm -// VFNMSUB132PD m256 ymm k ymm -// VFNMSUB132PD xmm xmm k xmm -// VFNMSUB132PD ymm ymm k ymm -// VFNMSUB132PD m512 zmm k zmm -// VFNMSUB132PD m512 zmm zmm -// VFNMSUB132PD zmm zmm k zmm -// VFNMSUB132PD zmm zmm zmm -func VFNMSUB132PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{}, ops) -} - -// VFNMSUB132PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB132PD.BCST m64 xmm k xmm -// VFNMSUB132PD.BCST m64 xmm xmm -// VFNMSUB132PD.BCST m64 ymm k ymm -// VFNMSUB132PD.BCST m64 ymm ymm -// VFNMSUB132PD.BCST m64 zmm k zmm -// VFNMSUB132PD.BCST m64 zmm zmm -func VFNMSUB132PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMSUB132PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.BCST.Z m64 xmm k xmm -// VFNMSUB132PD.BCST.Z m64 ymm k ymm -// VFNMSUB132PD.BCST.Z m64 zmm k zmm -func VFNMSUB132PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMSUB132PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132PD.RD_SAE zmm zmm k zmm -// VFNMSUB132PD.RD_SAE zmm zmm zmm -func VFNMSUB132PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB132PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RD_SAE.Z zmm zmm k zmm -func VFNMSUB132PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB132PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132PD.RN_SAE zmm zmm k zmm -// VFNMSUB132PD.RN_SAE zmm zmm zmm -func VFNMSUB132PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB132PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RN_SAE.Z zmm zmm k zmm -func VFNMSUB132PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB132PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132PD.RU_SAE zmm zmm k zmm -// VFNMSUB132PD.RU_SAE zmm zmm zmm -func VFNMSUB132PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB132PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RU_SAE.Z zmm zmm k zmm -func VFNMSUB132PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB132PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132PD.RZ_SAE zmm zmm k zmm -// VFNMSUB132PD.RZ_SAE zmm zmm zmm -func VFNMSUB132PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB132PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.RZ_SAE.Z zmm zmm k zmm -func VFNMSUB132PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB132PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PD.Z m128 xmm k xmm -// VFNMSUB132PD.Z m256 ymm k ymm -// VFNMSUB132PD.Z xmm xmm k xmm -// VFNMSUB132PD.Z ymm ymm k ymm -// VFNMSUB132PD.Z m512 zmm k zmm -// VFNMSUB132PD.Z zmm zmm k zmm -func VFNMSUB132PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMSUB132PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132PS m128 xmm xmm -// VFNMSUB132PS m256 ymm ymm -// VFNMSUB132PS xmm xmm xmm -// VFNMSUB132PS ymm ymm ymm -// VFNMSUB132PS m128 xmm k xmm -// VFNMSUB132PS m256 ymm k ymm -// VFNMSUB132PS xmm xmm k xmm -// VFNMSUB132PS ymm ymm k ymm -// VFNMSUB132PS m512 zmm k zmm -// VFNMSUB132PS m512 zmm zmm -// VFNMSUB132PS zmm zmm k zmm -// VFNMSUB132PS zmm zmm zmm -func VFNMSUB132PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{}, ops) -} - -// VFNMSUB132PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB132PS.BCST m32 xmm k xmm -// VFNMSUB132PS.BCST m32 xmm xmm -// VFNMSUB132PS.BCST m32 ymm k ymm -// VFNMSUB132PS.BCST m32 ymm ymm -// VFNMSUB132PS.BCST m32 zmm k zmm -// VFNMSUB132PS.BCST m32 zmm zmm -func VFNMSUB132PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMSUB132PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.BCST.Z m32 xmm k xmm -// VFNMSUB132PS.BCST.Z m32 ymm k ymm -// VFNMSUB132PS.BCST.Z m32 zmm k zmm -func VFNMSUB132PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMSUB132PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132PS.RD_SAE zmm zmm k zmm -// VFNMSUB132PS.RD_SAE zmm zmm zmm -func VFNMSUB132PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB132PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RD_SAE.Z zmm zmm k zmm -func VFNMSUB132PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB132PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132PS.RN_SAE zmm zmm k zmm -// VFNMSUB132PS.RN_SAE zmm zmm zmm -func VFNMSUB132PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB132PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RN_SAE.Z zmm zmm k zmm -func VFNMSUB132PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB132PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132PS.RU_SAE zmm zmm k zmm -// VFNMSUB132PS.RU_SAE zmm zmm zmm -func VFNMSUB132PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB132PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RU_SAE.Z zmm zmm k zmm -func VFNMSUB132PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB132PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132PS.RZ_SAE zmm zmm k zmm -// VFNMSUB132PS.RZ_SAE zmm zmm zmm -func VFNMSUB132PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB132PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.RZ_SAE.Z zmm zmm k zmm -func VFNMSUB132PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB132PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132PS.Z m128 xmm k xmm -// VFNMSUB132PS.Z m256 ymm k ymm -// VFNMSUB132PS.Z xmm xmm k xmm -// VFNMSUB132PS.Z ymm ymm k ymm -// VFNMSUB132PS.Z m512 zmm k zmm -// VFNMSUB132PS.Z zmm zmm k zmm -func VFNMSUB132PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMSUB132SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132SD m64 xmm xmm -// VFNMSUB132SD xmm xmm xmm -// VFNMSUB132SD m64 xmm k xmm -// VFNMSUB132SD xmm xmm k xmm -func VFNMSUB132SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{}, ops) -} - -// VFNMSUB132SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132SD.RD_SAE xmm xmm k xmm -// VFNMSUB132SD.RD_SAE xmm xmm xmm -func VFNMSUB132SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB132SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RD_SAE.Z xmm xmm k xmm -func VFNMSUB132SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB132SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132SD.RN_SAE xmm xmm k xmm -// VFNMSUB132SD.RN_SAE xmm xmm xmm -func VFNMSUB132SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB132SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RN_SAE.Z xmm xmm k xmm -func VFNMSUB132SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB132SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132SD.RU_SAE xmm xmm k xmm -// VFNMSUB132SD.RU_SAE xmm xmm xmm -func VFNMSUB132SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB132SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RU_SAE.Z xmm xmm k xmm -func VFNMSUB132SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB132SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132SD.RZ_SAE xmm xmm k xmm -// VFNMSUB132SD.RZ_SAE xmm xmm xmm -func VFNMSUB132SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB132SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.RZ_SAE.Z xmm xmm k xmm -func VFNMSUB132SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB132SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SD.Z m64 xmm k xmm -// VFNMSUB132SD.Z xmm xmm k xmm -func VFNMSUB132SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMSUB132SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB132SS m32 xmm xmm -// VFNMSUB132SS xmm xmm xmm -// VFNMSUB132SS m32 xmm k xmm -// VFNMSUB132SS xmm xmm k xmm -func VFNMSUB132SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{}, ops) -} - -// VFNMSUB132SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB132SS.RD_SAE xmm xmm k xmm -// VFNMSUB132SS.RD_SAE xmm xmm xmm -func VFNMSUB132SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB132SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RD_SAE.Z xmm xmm k xmm -func VFNMSUB132SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB132SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB132SS.RN_SAE xmm xmm k xmm -// VFNMSUB132SS.RN_SAE xmm xmm xmm -func VFNMSUB132SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB132SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RN_SAE.Z xmm xmm k xmm -func VFNMSUB132SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB132SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB132SS.RU_SAE xmm xmm k xmm -// VFNMSUB132SS.RU_SAE xmm xmm xmm -func VFNMSUB132SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB132SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RU_SAE.Z xmm xmm k xmm -func VFNMSUB132SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB132SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB132SS.RZ_SAE xmm xmm k xmm -// VFNMSUB132SS.RZ_SAE xmm xmm xmm -func VFNMSUB132SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB132SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.RZ_SAE.Z xmm xmm k xmm -func VFNMSUB132SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB132SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB132SS.Z m32 xmm k xmm -// VFNMSUB132SS.Z xmm xmm k xmm -func VFNMSUB132SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB132SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMSUB213PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213PD m128 xmm xmm -// VFNMSUB213PD m256 ymm ymm -// VFNMSUB213PD xmm xmm xmm -// VFNMSUB213PD ymm ymm ymm -// VFNMSUB213PD m128 xmm k xmm -// VFNMSUB213PD m256 ymm k ymm -// VFNMSUB213PD xmm xmm k xmm -// VFNMSUB213PD ymm ymm k ymm -// VFNMSUB213PD m512 zmm k zmm -// VFNMSUB213PD m512 zmm zmm -// VFNMSUB213PD zmm zmm k zmm -// VFNMSUB213PD zmm zmm zmm -func VFNMSUB213PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{}, ops) -} - -// VFNMSUB213PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB213PD.BCST m64 xmm k xmm -// VFNMSUB213PD.BCST m64 xmm xmm -// VFNMSUB213PD.BCST m64 ymm k ymm -// VFNMSUB213PD.BCST m64 ymm ymm -// VFNMSUB213PD.BCST m64 zmm k zmm -// VFNMSUB213PD.BCST m64 zmm zmm -func VFNMSUB213PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMSUB213PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.BCST.Z m64 xmm k xmm -// VFNMSUB213PD.BCST.Z m64 ymm k ymm -// VFNMSUB213PD.BCST.Z m64 zmm k zmm -func VFNMSUB213PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMSUB213PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213PD.RD_SAE zmm zmm k zmm -// VFNMSUB213PD.RD_SAE zmm zmm zmm -func VFNMSUB213PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB213PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RD_SAE.Z zmm zmm k zmm -func VFNMSUB213PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB213PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213PD.RN_SAE zmm zmm k zmm -// VFNMSUB213PD.RN_SAE zmm zmm zmm -func VFNMSUB213PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB213PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RN_SAE.Z zmm zmm k zmm -func VFNMSUB213PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB213PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213PD.RU_SAE zmm zmm k zmm -// VFNMSUB213PD.RU_SAE zmm zmm zmm -func VFNMSUB213PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB213PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RU_SAE.Z zmm zmm k zmm -func VFNMSUB213PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB213PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213PD.RZ_SAE zmm zmm k zmm -// VFNMSUB213PD.RZ_SAE zmm zmm zmm -func VFNMSUB213PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB213PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.RZ_SAE.Z zmm zmm k zmm -func VFNMSUB213PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB213PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PD.Z m128 xmm k xmm -// VFNMSUB213PD.Z m256 ymm k ymm -// VFNMSUB213PD.Z xmm xmm k xmm -// VFNMSUB213PD.Z ymm ymm k ymm -// VFNMSUB213PD.Z m512 zmm k zmm -// VFNMSUB213PD.Z zmm zmm k zmm -func VFNMSUB213PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMSUB213PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213PS m128 xmm xmm -// VFNMSUB213PS m256 ymm ymm -// VFNMSUB213PS xmm xmm xmm -// VFNMSUB213PS ymm ymm ymm -// VFNMSUB213PS m128 xmm k xmm -// VFNMSUB213PS m256 ymm k ymm -// VFNMSUB213PS xmm xmm k xmm -// VFNMSUB213PS ymm ymm k ymm -// VFNMSUB213PS m512 zmm k zmm -// VFNMSUB213PS m512 zmm zmm -// VFNMSUB213PS zmm zmm k zmm -// VFNMSUB213PS zmm zmm zmm -func VFNMSUB213PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{}, ops) -} - -// VFNMSUB213PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB213PS.BCST m32 xmm k xmm -// VFNMSUB213PS.BCST m32 xmm xmm -// VFNMSUB213PS.BCST m32 ymm k ymm -// VFNMSUB213PS.BCST m32 ymm ymm -// VFNMSUB213PS.BCST m32 zmm k zmm -// VFNMSUB213PS.BCST m32 zmm zmm -func VFNMSUB213PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMSUB213PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.BCST.Z m32 xmm k xmm -// VFNMSUB213PS.BCST.Z m32 ymm k ymm -// VFNMSUB213PS.BCST.Z m32 zmm k zmm -func VFNMSUB213PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMSUB213PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213PS.RD_SAE zmm zmm k zmm -// VFNMSUB213PS.RD_SAE zmm zmm zmm -func VFNMSUB213PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB213PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RD_SAE.Z zmm zmm k zmm -func VFNMSUB213PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB213PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213PS.RN_SAE zmm zmm k zmm -// VFNMSUB213PS.RN_SAE zmm zmm zmm -func VFNMSUB213PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB213PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RN_SAE.Z zmm zmm k zmm -func VFNMSUB213PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB213PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213PS.RU_SAE zmm zmm k zmm -// VFNMSUB213PS.RU_SAE zmm zmm zmm -func VFNMSUB213PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB213PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RU_SAE.Z zmm zmm k zmm -func VFNMSUB213PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB213PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213PS.RZ_SAE zmm zmm k zmm -// VFNMSUB213PS.RZ_SAE zmm zmm zmm -func VFNMSUB213PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB213PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.RZ_SAE.Z zmm zmm k zmm -func VFNMSUB213PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB213PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213PS.Z m128 xmm k xmm -// VFNMSUB213PS.Z m256 ymm k ymm -// VFNMSUB213PS.Z xmm xmm k xmm -// VFNMSUB213PS.Z ymm ymm k ymm -// VFNMSUB213PS.Z m512 zmm k zmm -// VFNMSUB213PS.Z zmm zmm k zmm -func VFNMSUB213PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMSUB213SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213SD m64 xmm xmm -// VFNMSUB213SD xmm xmm xmm -// VFNMSUB213SD m64 xmm k xmm -// VFNMSUB213SD xmm xmm k xmm -func VFNMSUB213SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{}, ops) -} - -// VFNMSUB213SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213SD.RD_SAE xmm xmm k xmm -// VFNMSUB213SD.RD_SAE xmm xmm xmm -func VFNMSUB213SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB213SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RD_SAE.Z xmm xmm k xmm -func VFNMSUB213SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB213SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213SD.RN_SAE xmm xmm k xmm -// VFNMSUB213SD.RN_SAE xmm xmm xmm -func VFNMSUB213SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB213SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RN_SAE.Z xmm xmm k xmm -func VFNMSUB213SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB213SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213SD.RU_SAE xmm xmm k xmm -// VFNMSUB213SD.RU_SAE xmm xmm xmm -func VFNMSUB213SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB213SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RU_SAE.Z xmm xmm k xmm -func VFNMSUB213SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB213SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213SD.RZ_SAE xmm xmm k xmm -// VFNMSUB213SD.RZ_SAE xmm xmm xmm -func VFNMSUB213SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB213SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.RZ_SAE.Z xmm xmm k xmm -func VFNMSUB213SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB213SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SD.Z m64 xmm k xmm -// VFNMSUB213SD.Z xmm xmm k xmm -func VFNMSUB213SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMSUB213SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB213SS m32 xmm xmm -// VFNMSUB213SS xmm xmm xmm -// VFNMSUB213SS m32 xmm k xmm -// VFNMSUB213SS xmm xmm k xmm -func VFNMSUB213SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{}, ops) -} - -// VFNMSUB213SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB213SS.RD_SAE xmm xmm k xmm -// VFNMSUB213SS.RD_SAE xmm xmm xmm -func VFNMSUB213SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB213SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RD_SAE.Z xmm xmm k xmm -func VFNMSUB213SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB213SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB213SS.RN_SAE xmm xmm k xmm -// VFNMSUB213SS.RN_SAE xmm xmm xmm -func VFNMSUB213SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB213SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RN_SAE.Z xmm xmm k xmm -func VFNMSUB213SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB213SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB213SS.RU_SAE xmm xmm k xmm -// VFNMSUB213SS.RU_SAE xmm xmm xmm -func VFNMSUB213SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB213SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RU_SAE.Z xmm xmm k xmm -func VFNMSUB213SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB213SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB213SS.RZ_SAE xmm xmm k xmm -// VFNMSUB213SS.RZ_SAE xmm xmm xmm -func VFNMSUB213SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB213SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.RZ_SAE.Z xmm xmm k xmm -func VFNMSUB213SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB213SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB213SS.Z m32 xmm k xmm -// VFNMSUB213SS.Z xmm xmm k xmm -func VFNMSUB213SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB213SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMSUB231PD: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231PD m128 xmm xmm -// VFNMSUB231PD m256 ymm ymm -// VFNMSUB231PD xmm xmm xmm -// VFNMSUB231PD ymm ymm ymm -// VFNMSUB231PD m128 xmm k xmm -// VFNMSUB231PD m256 ymm k ymm -// VFNMSUB231PD xmm xmm k xmm -// VFNMSUB231PD ymm ymm k ymm -// VFNMSUB231PD m512 zmm k zmm -// VFNMSUB231PD m512 zmm zmm -// VFNMSUB231PD zmm zmm k zmm -// VFNMSUB231PD zmm zmm zmm -func VFNMSUB231PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{}, ops) -} - -// VFNMSUB231PD_BCST: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB231PD.BCST m64 xmm k xmm -// VFNMSUB231PD.BCST m64 xmm xmm -// VFNMSUB231PD.BCST m64 ymm k ymm -// VFNMSUB231PD.BCST m64 ymm ymm -// VFNMSUB231PD.BCST m64 zmm k zmm -// VFNMSUB231PD.BCST m64 zmm zmm -func VFNMSUB231PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMSUB231PD_BCST_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.BCST.Z m64 xmm k xmm -// VFNMSUB231PD.BCST.Z m64 ymm k ymm -// VFNMSUB231PD.BCST.Z m64 zmm k zmm -func VFNMSUB231PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMSUB231PD_RD_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231PD.RD_SAE zmm zmm k zmm -// VFNMSUB231PD.RD_SAE zmm zmm zmm -func VFNMSUB231PD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB231PD_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RD_SAE.Z zmm zmm k zmm -func VFNMSUB231PD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB231PD_RN_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231PD.RN_SAE zmm zmm k zmm -// VFNMSUB231PD.RN_SAE zmm zmm zmm -func VFNMSUB231PD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB231PD_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RN_SAE.Z zmm zmm k zmm -func VFNMSUB231PD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB231PD_RU_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231PD.RU_SAE zmm zmm k zmm -// VFNMSUB231PD.RU_SAE zmm zmm zmm -func VFNMSUB231PD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB231PD_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RU_SAE.Z zmm zmm k zmm -func VFNMSUB231PD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB231PD_RZ_SAE: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231PD.RZ_SAE zmm zmm k zmm -// VFNMSUB231PD.RZ_SAE zmm zmm zmm -func VFNMSUB231PD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB231PD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.RZ_SAE.Z zmm zmm k zmm -func VFNMSUB231PD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB231PD_Z: Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PD.Z m128 xmm k xmm -// VFNMSUB231PD.Z m256 ymm k ymm -// VFNMSUB231PD.Z xmm xmm k xmm -// VFNMSUB231PD.Z ymm ymm k ymm -// VFNMSUB231PD.Z m512 zmm k zmm -// VFNMSUB231PD.Z zmm zmm k zmm -func VFNMSUB231PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMSUB231PS: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231PS m128 xmm xmm -// VFNMSUB231PS m256 ymm ymm -// VFNMSUB231PS xmm xmm xmm -// VFNMSUB231PS ymm ymm ymm -// VFNMSUB231PS m128 xmm k xmm -// VFNMSUB231PS m256 ymm k ymm -// VFNMSUB231PS xmm xmm k xmm -// VFNMSUB231PS ymm ymm k ymm -// VFNMSUB231PS m512 zmm k zmm -// VFNMSUB231PS m512 zmm zmm -// VFNMSUB231PS zmm zmm k zmm -// VFNMSUB231PS zmm zmm zmm -func VFNMSUB231PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{}, ops) -} - -// VFNMSUB231PS_BCST: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFNMSUB231PS.BCST m32 xmm k xmm -// VFNMSUB231PS.BCST m32 xmm xmm -// VFNMSUB231PS.BCST m32 ymm k ymm -// VFNMSUB231PS.BCST m32 ymm ymm -// VFNMSUB231PS.BCST m32 zmm k zmm -// VFNMSUB231PS.BCST m32 zmm zmm -func VFNMSUB231PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VFNMSUB231PS_BCST_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.BCST.Z m32 xmm k xmm -// VFNMSUB231PS.BCST.Z m32 ymm k ymm -// VFNMSUB231PS.BCST.Z m32 zmm k zmm -func VFNMSUB231PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VFNMSUB231PS_RD_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231PS.RD_SAE zmm zmm k zmm -// VFNMSUB231PS.RD_SAE zmm zmm zmm -func VFNMSUB231PS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB231PS_RD_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RD_SAE.Z zmm zmm k zmm -func VFNMSUB231PS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB231PS_RN_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231PS.RN_SAE zmm zmm k zmm -// VFNMSUB231PS.RN_SAE zmm zmm zmm -func VFNMSUB231PS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB231PS_RN_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RN_SAE.Z zmm zmm k zmm -func VFNMSUB231PS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB231PS_RU_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231PS.RU_SAE zmm zmm k zmm -// VFNMSUB231PS.RU_SAE zmm zmm zmm -func VFNMSUB231PS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB231PS_RU_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RU_SAE.Z zmm zmm k zmm -func VFNMSUB231PS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB231PS_RZ_SAE: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231PS.RZ_SAE zmm zmm k zmm -// VFNMSUB231PS.RZ_SAE zmm zmm zmm -func VFNMSUB231PS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB231PS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.RZ_SAE.Z zmm zmm k zmm -func VFNMSUB231PS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VFNMSUB231PS_Z: Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231PS.Z m128 xmm k xmm -// VFNMSUB231PS.Z m256 ymm k ymm -// VFNMSUB231PS.Z xmm xmm k xmm -// VFNMSUB231PS.Z ymm ymm k ymm -// VFNMSUB231PS.Z m512 zmm k zmm -// VFNMSUB231PS.Z zmm zmm k zmm -func VFNMSUB231PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VFNMSUB231SD: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231SD m64 xmm xmm -// VFNMSUB231SD xmm xmm xmm -// VFNMSUB231SD m64 xmm k xmm -// VFNMSUB231SD xmm xmm k xmm -func VFNMSUB231SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{}, ops) -} - -// VFNMSUB231SD_RD_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231SD.RD_SAE xmm xmm k xmm -// VFNMSUB231SD.RD_SAE xmm xmm xmm -func VFNMSUB231SD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB231SD_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RD_SAE.Z xmm xmm k xmm -func VFNMSUB231SD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB231SD_RN_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231SD.RN_SAE xmm xmm k xmm -// VFNMSUB231SD.RN_SAE xmm xmm xmm -func VFNMSUB231SD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB231SD_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RN_SAE.Z xmm xmm k xmm -func VFNMSUB231SD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB231SD_RU_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231SD.RU_SAE xmm xmm k xmm -// VFNMSUB231SD.RU_SAE xmm xmm xmm -func VFNMSUB231SD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB231SD_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RU_SAE.Z xmm xmm k xmm -func VFNMSUB231SD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB231SD_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231SD.RZ_SAE xmm xmm k xmm -// VFNMSUB231SD.RZ_SAE xmm xmm xmm -func VFNMSUB231SD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB231SD_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.RZ_SAE.Z xmm xmm k xmm -func VFNMSUB231SD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB231SD_Z: Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SD.Z m64 xmm k xmm -// VFNMSUB231SD.Z xmm xmm k xmm -func VFNMSUB231SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFNMSUB231SS: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VFNMSUB231SS m32 xmm xmm -// VFNMSUB231SS xmm xmm xmm -// VFNMSUB231SS m32 xmm k xmm -// VFNMSUB231SS xmm xmm k xmm -func VFNMSUB231SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{}, ops) -} - -// VFNMSUB231SS_RD_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VFNMSUB231SS.RD_SAE xmm xmm k xmm -// VFNMSUB231SS.RD_SAE xmm xmm xmm -func VFNMSUB231SS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VFNMSUB231SS_RD_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RD_SAE.Z xmm xmm k xmm -func VFNMSUB231SS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB231SS_RN_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VFNMSUB231SS.RN_SAE xmm xmm k xmm -// VFNMSUB231SS.RN_SAE xmm xmm xmm -func VFNMSUB231SS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VFNMSUB231SS_RN_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RN_SAE.Z xmm xmm k xmm -func VFNMSUB231SS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB231SS_RU_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VFNMSUB231SS.RU_SAE xmm xmm k xmm -// VFNMSUB231SS.RU_SAE xmm xmm xmm -func VFNMSUB231SS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VFNMSUB231SS_RU_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RU_SAE.Z xmm xmm k xmm -func VFNMSUB231SS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB231SS_RZ_SAE: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VFNMSUB231SS.RZ_SAE xmm xmm k xmm -// VFNMSUB231SS.RZ_SAE xmm xmm xmm -func VFNMSUB231SS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VFNMSUB231SS_RZ_SAE_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.RZ_SAE.Z xmm xmm k xmm -func VFNMSUB231SS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VFNMSUB231SS_Z: Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VFNMSUB231SS.Z m32 xmm k xmm -// VFNMSUB231SS.Z xmm xmm k xmm -func VFNMSUB231SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVFNMSUB231SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VFPCLASSPDX: Test Class of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPDX imm8 m128 k k -// VFPCLASSPDX imm8 m128 k -// VFPCLASSPDX imm8 xmm k k -// VFPCLASSPDX imm8 xmm k -func VFPCLASSPDX(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPDX.Forms(), sffxs{}, ops) -} - -// VFPCLASSPDX_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPDX.BCST imm8 m64 k k -// VFPCLASSPDX.BCST imm8 m64 k -func VFPCLASSPDX_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPDX.Forms(), sffxs{sffxBCST}, ops) -} - -// VFPCLASSPDY: Test Class of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPDY imm8 m256 k k -// VFPCLASSPDY imm8 m256 k -// VFPCLASSPDY imm8 ymm k k -// VFPCLASSPDY imm8 ymm k -func VFPCLASSPDY(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPDY.Forms(), sffxs{}, ops) -} - -// VFPCLASSPDY_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPDY.BCST imm8 m64 k k -// VFPCLASSPDY.BCST imm8 m64 k -func VFPCLASSPDY_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPDY.Forms(), sffxs{sffxBCST}, ops) -} - -// VFPCLASSPDZ: Test Class of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPDZ imm8 m512 k k -// VFPCLASSPDZ imm8 m512 k -// VFPCLASSPDZ imm8 zmm k k -// VFPCLASSPDZ imm8 zmm k -func VFPCLASSPDZ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPDZ.Forms(), sffxs{}, ops) -} - -// VFPCLASSPDZ_BCST: Test Class of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPDZ.BCST imm8 m64 k k -// VFPCLASSPDZ.BCST imm8 m64 k -func VFPCLASSPDZ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPDZ.Forms(), sffxs{sffxBCST}, ops) -} - -// VFPCLASSPSX: Test Class of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPSX imm8 m128 k k -// VFPCLASSPSX imm8 m128 k -// VFPCLASSPSX imm8 xmm k k -// VFPCLASSPSX imm8 xmm k -func VFPCLASSPSX(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPSX.Forms(), sffxs{}, ops) -} - -// VFPCLASSPSX_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPSX.BCST imm8 m32 k k -// VFPCLASSPSX.BCST imm8 m32 k -func VFPCLASSPSX_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPSX.Forms(), sffxs{sffxBCST}, ops) -} - -// VFPCLASSPSY: Test Class of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPSY imm8 m256 k k -// VFPCLASSPSY imm8 m256 k -// VFPCLASSPSY imm8 ymm k k -// VFPCLASSPSY imm8 ymm k -func VFPCLASSPSY(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPSY.Forms(), sffxs{}, ops) -} - -// VFPCLASSPSY_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPSY.BCST imm8 m32 k k -// VFPCLASSPSY.BCST imm8 m32 k -func VFPCLASSPSY_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPSY.Forms(), sffxs{sffxBCST}, ops) -} - -// VFPCLASSPSZ: Test Class of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VFPCLASSPSZ imm8 m512 k k -// VFPCLASSPSZ imm8 m512 k -// VFPCLASSPSZ imm8 zmm k k -// VFPCLASSPSZ imm8 zmm k -func VFPCLASSPSZ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPSZ.Forms(), sffxs{}, ops) -} - -// VFPCLASSPSZ_BCST: Test Class of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VFPCLASSPSZ.BCST imm8 m32 k k -// VFPCLASSPSZ.BCST imm8 m32 k -func VFPCLASSPSZ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSPSZ.Forms(), sffxs{sffxBCST}, ops) -} - -// VFPCLASSSD: Test Class of Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VFPCLASSSD imm8 m64 k k -// VFPCLASSSD imm8 m64 k -// VFPCLASSSD imm8 xmm k k -// VFPCLASSSD imm8 xmm k -func VFPCLASSSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSSD.Forms(), sffxs{}, ops) -} - -// VFPCLASSSS: Test Class of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VFPCLASSSS imm8 m32 k k -// VFPCLASSSS imm8 m32 k -// VFPCLASSSS imm8 xmm k k -// VFPCLASSSS imm8 xmm k -func VFPCLASSSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVFPCLASSSS.Forms(), sffxs{}, ops) -} - -// VGATHERDPD: Gather Packed Double-Precision Floating-Point Values Using Signed Doubleword Indices. -// -// Forms: -// -// VGATHERDPD xmm vm32x xmm -// VGATHERDPD ymm vm32x ymm -// VGATHERDPD vm32x k xmm -// VGATHERDPD vm32x k ymm -// VGATHERDPD vm32y k zmm -func VGATHERDPD(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGATHERDPD.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz}) -} - -// VGATHERDPS: Gather Packed Single-Precision Floating-Point Values Using Signed Doubleword Indices. -// -// Forms: -// -// VGATHERDPS xmm vm32x xmm -// VGATHERDPS ymm vm32y ymm -// VGATHERDPS vm32x k xmm -// VGATHERDPS vm32y k ymm -// VGATHERDPS vm32z k zmm -func VGATHERDPS(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGATHERDPS.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz}) -} - -// VGATHERQPD: Gather Packed Double-Precision Floating-Point Values Using Signed Quadword Indices. -// -// Forms: -// -// VGATHERQPD xmm vm64x xmm -// VGATHERQPD ymm vm64y ymm -// VGATHERQPD vm64x k xmm -// VGATHERQPD vm64y k ymm -// VGATHERQPD vm64z k zmm -func VGATHERQPD(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGATHERQPD.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz}) -} - -// VGATHERQPS: Gather Packed Single-Precision Floating-Point Values Using Signed Quadword Indices. -// -// Forms: -// -// VGATHERQPS xmm vm64x xmm -// VGATHERQPS xmm vm64y xmm -// VGATHERQPS vm64x k xmm -// VGATHERQPS vm64y k xmm -// VGATHERQPS vm64z k ymm -func VGATHERQPS(vx, kv, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVGATHERQPS.Forms(), sffxs{}, []operand.Op{vx, kv, xy}) -} - -// VGETEXPPD: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values. -// -// Forms: -// -// VGETEXPPD m128 k xmm -// VGETEXPPD m128 xmm -// VGETEXPPD m256 k ymm -// VGETEXPPD m256 ymm -// VGETEXPPD xmm k xmm -// VGETEXPPD xmm xmm -// VGETEXPPD ymm k ymm -// VGETEXPPD ymm ymm -// VGETEXPPD m512 k zmm -// VGETEXPPD m512 zmm -// VGETEXPPD zmm k zmm -// VGETEXPPD zmm zmm -func VGETEXPPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPD.Forms(), sffxs{}, ops) -} - -// VGETEXPPD_BCST: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETEXPPD.BCST m64 k xmm -// VGETEXPPD.BCST m64 k ymm -// VGETEXPPD.BCST m64 xmm -// VGETEXPPD.BCST m64 ymm -// VGETEXPPD.BCST m64 k zmm -// VGETEXPPD.BCST m64 zmm -func VGETEXPPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VGETEXPPD_BCST_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETEXPPD.BCST.Z m64 k xmm -// VGETEXPPD.BCST.Z m64 k ymm -// VGETEXPPD.BCST.Z m64 k zmm -func VGETEXPPD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VGETEXPPD_SAE: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPPD.SAE zmm k zmm -// VGETEXPPD.SAE zmm zmm -func VGETEXPPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPD.Forms(), sffxs{sffxSAE}, ops) -} - -// VGETEXPPD_SAE_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPPD.SAE.Z zmm k zmm -func VGETEXPPD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VGETEXPPD_Z: Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETEXPPD.Z m128 k xmm -// VGETEXPPD.Z m256 k ymm -// VGETEXPPD.Z xmm k xmm -// VGETEXPPD.Z ymm k ymm -// VGETEXPPD.Z m512 k zmm -// VGETEXPPD.Z zmm k zmm -func VGETEXPPD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VGETEXPPS: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values. -// -// Forms: -// -// VGETEXPPS m128 k xmm -// VGETEXPPS m128 xmm -// VGETEXPPS m256 k ymm -// VGETEXPPS m256 ymm -// VGETEXPPS xmm k xmm -// VGETEXPPS xmm xmm -// VGETEXPPS ymm k ymm -// VGETEXPPS ymm ymm -// VGETEXPPS m512 k zmm -// VGETEXPPS m512 zmm -// VGETEXPPS zmm k zmm -// VGETEXPPS zmm zmm -func VGETEXPPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPS.Forms(), sffxs{}, ops) -} - -// VGETEXPPS_BCST: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETEXPPS.BCST m32 k xmm -// VGETEXPPS.BCST m32 k ymm -// VGETEXPPS.BCST m32 xmm -// VGETEXPPS.BCST m32 ymm -// VGETEXPPS.BCST m32 k zmm -// VGETEXPPS.BCST m32 zmm -func VGETEXPPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VGETEXPPS_BCST_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETEXPPS.BCST.Z m32 k xmm -// VGETEXPPS.BCST.Z m32 k ymm -// VGETEXPPS.BCST.Z m32 k zmm -func VGETEXPPS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VGETEXPPS_SAE: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPPS.SAE zmm k zmm -// VGETEXPPS.SAE zmm zmm -func VGETEXPPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPS.Forms(), sffxs{sffxSAE}, ops) -} - -// VGETEXPPS_SAE_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPPS.SAE.Z zmm k zmm -func VGETEXPPS_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VGETEXPPS_Z: Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETEXPPS.Z m128 k xmm -// VGETEXPPS.Z m256 k ymm -// VGETEXPPS.Z xmm k xmm -// VGETEXPPS.Z ymm k ymm -// VGETEXPPS.Z m512 k zmm -// VGETEXPPS.Z zmm k zmm -func VGETEXPPS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VGETEXPSD: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value. -// -// Forms: -// -// VGETEXPSD m64 xmm k xmm -// VGETEXPSD m64 xmm xmm -// VGETEXPSD xmm xmm k xmm -// VGETEXPSD xmm xmm xmm -func VGETEXPSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPSD.Forms(), sffxs{}, ops) -} - -// VGETEXPSD_SAE: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPSD.SAE xmm xmm k xmm -// VGETEXPSD.SAE xmm xmm xmm -func VGETEXPSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPSD.Forms(), sffxs{sffxSAE}, ops) -} - -// VGETEXPSD_SAE_Z: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPSD.SAE.Z xmm xmm k xmm -func VGETEXPSD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VGETEXPSD_Z: Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETEXPSD.Z m64 xmm k xmm -// VGETEXPSD.Z xmm xmm k xmm -func VGETEXPSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VGETEXPSS: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value. -// -// Forms: -// -// VGETEXPSS m32 xmm k xmm -// VGETEXPSS m32 xmm xmm -// VGETEXPSS xmm xmm k xmm -// VGETEXPSS xmm xmm xmm -func VGETEXPSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPSS.Forms(), sffxs{}, ops) -} - -// VGETEXPSS_SAE: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETEXPSS.SAE xmm xmm k xmm -// VGETEXPSS.SAE xmm xmm xmm -func VGETEXPSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPSS.Forms(), sffxs{sffxSAE}, ops) -} - -// VGETEXPSS_SAE_Z: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETEXPSS.SAE.Z xmm xmm k xmm -func VGETEXPSS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VGETEXPSS_Z: Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETEXPSS.Z m32 xmm k xmm -// VGETEXPSS.Z xmm xmm k xmm -func VGETEXPSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETEXPSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VGETMANTPD: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VGETMANTPD imm8 m128 k xmm -// VGETMANTPD imm8 m128 xmm -// VGETMANTPD imm8 m256 k ymm -// VGETMANTPD imm8 m256 ymm -// VGETMANTPD imm8 xmm k xmm -// VGETMANTPD imm8 xmm xmm -// VGETMANTPD imm8 ymm k ymm -// VGETMANTPD imm8 ymm ymm -// VGETMANTPD imm8 m512 k zmm -// VGETMANTPD imm8 m512 zmm -// VGETMANTPD imm8 zmm k zmm -// VGETMANTPD imm8 zmm zmm -func VGETMANTPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPD.Forms(), sffxs{}, ops) -} - -// VGETMANTPD_BCST: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETMANTPD.BCST imm8 m64 k xmm -// VGETMANTPD.BCST imm8 m64 k ymm -// VGETMANTPD.BCST imm8 m64 xmm -// VGETMANTPD.BCST imm8 m64 ymm -// VGETMANTPD.BCST imm8 m64 k zmm -// VGETMANTPD.BCST imm8 m64 zmm -func VGETMANTPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VGETMANTPD_BCST_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETMANTPD.BCST.Z imm8 m64 k xmm -// VGETMANTPD.BCST.Z imm8 m64 k ymm -// VGETMANTPD.BCST.Z imm8 m64 k zmm -func VGETMANTPD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VGETMANTPD_SAE: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTPD.SAE imm8 zmm k zmm -// VGETMANTPD.SAE imm8 zmm zmm -func VGETMANTPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPD.Forms(), sffxs{sffxSAE}, ops) -} - -// VGETMANTPD_SAE_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTPD.SAE.Z imm8 zmm k zmm -func VGETMANTPD_SAE_Z(i, z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, z1}) -} - -// VGETMANTPD_Z: Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETMANTPD.Z imm8 m128 k xmm -// VGETMANTPD.Z imm8 m256 k ymm -// VGETMANTPD.Z imm8 xmm k xmm -// VGETMANTPD.Z imm8 ymm k ymm -// VGETMANTPD.Z imm8 m512 k zmm -// VGETMANTPD.Z imm8 zmm k zmm -func VGETMANTPD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VGETMANTPS: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VGETMANTPS imm8 m128 k xmm -// VGETMANTPS imm8 m128 xmm -// VGETMANTPS imm8 m256 k ymm -// VGETMANTPS imm8 m256 ymm -// VGETMANTPS imm8 xmm k xmm -// VGETMANTPS imm8 xmm xmm -// VGETMANTPS imm8 ymm k ymm -// VGETMANTPS imm8 ymm ymm -// VGETMANTPS imm8 m512 k zmm -// VGETMANTPS imm8 m512 zmm -// VGETMANTPS imm8 zmm k zmm -// VGETMANTPS imm8 zmm zmm -func VGETMANTPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPS.Forms(), sffxs{}, ops) -} - -// VGETMANTPS_BCST: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VGETMANTPS.BCST imm8 m32 k xmm -// VGETMANTPS.BCST imm8 m32 k ymm -// VGETMANTPS.BCST imm8 m32 xmm -// VGETMANTPS.BCST imm8 m32 ymm -// VGETMANTPS.BCST imm8 m32 k zmm -// VGETMANTPS.BCST imm8 m32 zmm -func VGETMANTPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VGETMANTPS_BCST_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGETMANTPS.BCST.Z imm8 m32 k xmm -// VGETMANTPS.BCST.Z imm8 m32 k ymm -// VGETMANTPS.BCST.Z imm8 m32 k zmm -func VGETMANTPS_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VGETMANTPS_SAE: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTPS.SAE imm8 zmm k zmm -// VGETMANTPS.SAE imm8 zmm zmm -func VGETMANTPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPS.Forms(), sffxs{sffxSAE}, ops) -} - -// VGETMANTPS_SAE_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTPS.SAE.Z imm8 zmm k zmm -func VGETMANTPS_SAE_Z(i, z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, z1}) -} - -// VGETMANTPS_Z: Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VGETMANTPS.Z imm8 m128 k xmm -// VGETMANTPS.Z imm8 m256 k ymm -// VGETMANTPS.Z imm8 xmm k xmm -// VGETMANTPS.Z imm8 ymm k ymm -// VGETMANTPS.Z imm8 m512 k zmm -// VGETMANTPS.Z imm8 zmm k zmm -func VGETMANTPS_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VGETMANTSD: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VGETMANTSD imm8 m64 xmm k xmm -// VGETMANTSD imm8 m64 xmm xmm -// VGETMANTSD imm8 xmm xmm k xmm -// VGETMANTSD imm8 xmm xmm xmm -func VGETMANTSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTSD.Forms(), sffxs{}, ops) -} - -// VGETMANTSD_SAE: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTSD.SAE imm8 xmm xmm k xmm -// VGETMANTSD.SAE imm8 xmm xmm xmm -func VGETMANTSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTSD.Forms(), sffxs{sffxSAE}, ops) -} - -// VGETMANTSD_SAE_Z: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTSD.SAE.Z imm8 xmm xmm k xmm -func VGETMANTSD_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2}) -} - -// VGETMANTSD_Z: Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETMANTSD.Z imm8 m64 xmm k xmm -// VGETMANTSD.Z imm8 xmm xmm k xmm -func VGETMANTSD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTSD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VGETMANTSS: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VGETMANTSS imm8 m32 xmm k xmm -// VGETMANTSS imm8 m32 xmm xmm -// VGETMANTSS imm8 xmm xmm k xmm -// VGETMANTSS imm8 xmm xmm xmm -func VGETMANTSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTSS.Forms(), sffxs{}, ops) -} - -// VGETMANTSS_SAE: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VGETMANTSS.SAE imm8 xmm xmm k xmm -// VGETMANTSS.SAE imm8 xmm xmm xmm -func VGETMANTSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTSS.Forms(), sffxs{sffxSAE}, ops) -} - -// VGETMANTSS_SAE_Z: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VGETMANTSS.SAE.Z imm8 xmm xmm k xmm -func VGETMANTSS_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2}) -} - -// VGETMANTSS_Z: Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VGETMANTSS.Z imm8 m32 xmm k xmm -// VGETMANTSS.Z imm8 xmm xmm k xmm -func VGETMANTSS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGETMANTSS.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VGF2P8AFFINEINVQB: Galois Field Affine Transformation Inverse. -// -// Forms: -// -// VGF2P8AFFINEINVQB imm8 m128 xmm xmm -// VGF2P8AFFINEINVQB imm8 m256 ymm ymm -// VGF2P8AFFINEINVQB imm8 xmm xmm xmm -// VGF2P8AFFINEINVQB imm8 ymm ymm ymm -// VGF2P8AFFINEINVQB imm8 m512 zmm k zmm -// VGF2P8AFFINEINVQB imm8 m512 zmm zmm -// VGF2P8AFFINEINVQB imm8 zmm zmm k zmm -// VGF2P8AFFINEINVQB imm8 zmm zmm zmm -// VGF2P8AFFINEINVQB imm8 m128 xmm k xmm -// VGF2P8AFFINEINVQB imm8 m256 ymm k ymm -// VGF2P8AFFINEINVQB imm8 xmm xmm k xmm -// VGF2P8AFFINEINVQB imm8 ymm ymm k ymm -func VGF2P8AFFINEINVQB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8AFFINEINVQB.Forms(), sffxs{}, ops) -} - -// VGF2P8AFFINEINVQB_BCST: Galois Field Affine Transformation Inverse (Broadcast). -// -// Forms: -// -// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm k zmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 zmm zmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm k xmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 xmm xmm -// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm k ymm -// VGF2P8AFFINEINVQB.BCST imm8 m64 ymm ymm -func VGF2P8AFFINEINVQB_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8AFFINEINVQB.Forms(), sffxs{sffxBCST}, ops) -} - -// VGF2P8AFFINEINVQB_BCST_Z: Galois Field Affine Transformation Inverse (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 zmm k zmm -// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 xmm k xmm -// VGF2P8AFFINEINVQB.BCST.Z imm8 m64 ymm k ymm -func VGF2P8AFFINEINVQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8AFFINEINVQB.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VGF2P8AFFINEINVQB_Z: Galois Field Affine Transformation Inverse (Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEINVQB.Z imm8 m512 zmm k zmm -// VGF2P8AFFINEINVQB.Z imm8 zmm zmm k zmm -// VGF2P8AFFINEINVQB.Z imm8 m128 xmm k xmm -// VGF2P8AFFINEINVQB.Z imm8 m256 ymm k ymm -// VGF2P8AFFINEINVQB.Z imm8 xmm xmm k xmm -// VGF2P8AFFINEINVQB.Z imm8 ymm ymm k ymm -func VGF2P8AFFINEINVQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8AFFINEINVQB.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VGF2P8AFFINEQB: Galois Field Affine Transformation. -// -// Forms: -// -// VGF2P8AFFINEQB imm8 m128 xmm xmm -// VGF2P8AFFINEQB imm8 m256 ymm ymm -// VGF2P8AFFINEQB imm8 xmm xmm xmm -// VGF2P8AFFINEQB imm8 ymm ymm ymm -// VGF2P8AFFINEQB imm8 m512 zmm k zmm -// VGF2P8AFFINEQB imm8 m512 zmm zmm -// VGF2P8AFFINEQB imm8 zmm zmm k zmm -// VGF2P8AFFINEQB imm8 zmm zmm zmm -// VGF2P8AFFINEQB imm8 m128 xmm k xmm -// VGF2P8AFFINEQB imm8 m256 ymm k ymm -// VGF2P8AFFINEQB imm8 xmm xmm k xmm -// VGF2P8AFFINEQB imm8 ymm ymm k ymm -func VGF2P8AFFINEQB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8AFFINEQB.Forms(), sffxs{}, ops) -} - -// VGF2P8AFFINEQB_BCST: Galois Field Affine Transformation (Broadcast). -// -// Forms: -// -// VGF2P8AFFINEQB.BCST imm8 m64 zmm k zmm -// VGF2P8AFFINEQB.BCST imm8 m64 zmm zmm -// VGF2P8AFFINEQB.BCST imm8 m64 xmm k xmm -// VGF2P8AFFINEQB.BCST imm8 m64 xmm xmm -// VGF2P8AFFINEQB.BCST imm8 m64 ymm k ymm -// VGF2P8AFFINEQB.BCST imm8 m64 ymm ymm -func VGF2P8AFFINEQB_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8AFFINEQB.Forms(), sffxs{sffxBCST}, ops) -} - -// VGF2P8AFFINEQB_BCST_Z: Galois Field Affine Transformation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEQB.BCST.Z imm8 m64 zmm k zmm -// VGF2P8AFFINEQB.BCST.Z imm8 m64 xmm k xmm -// VGF2P8AFFINEQB.BCST.Z imm8 m64 ymm k ymm -func VGF2P8AFFINEQB_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8AFFINEQB.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VGF2P8AFFINEQB_Z: Galois Field Affine Transformation (Zeroing Masking). -// -// Forms: -// -// VGF2P8AFFINEQB.Z imm8 m512 zmm k zmm -// VGF2P8AFFINEQB.Z imm8 zmm zmm k zmm -// VGF2P8AFFINEQB.Z imm8 m128 xmm k xmm -// VGF2P8AFFINEQB.Z imm8 m256 ymm k ymm -// VGF2P8AFFINEQB.Z imm8 xmm xmm k xmm -// VGF2P8AFFINEQB.Z imm8 ymm ymm k ymm -func VGF2P8AFFINEQB_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8AFFINEQB.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VGF2P8MULB: Galois Field Multiply Bytes. -// -// Forms: -// -// VGF2P8MULB m128 xmm xmm -// VGF2P8MULB m256 ymm ymm -// VGF2P8MULB xmm xmm xmm -// VGF2P8MULB ymm ymm ymm -// VGF2P8MULB m512 zmm k zmm -// VGF2P8MULB m512 zmm zmm -// VGF2P8MULB zmm zmm k zmm -// VGF2P8MULB zmm zmm zmm -// VGF2P8MULB m128 xmm k xmm -// VGF2P8MULB m256 ymm k ymm -// VGF2P8MULB xmm xmm k xmm -// VGF2P8MULB ymm ymm k ymm -func VGF2P8MULB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8MULB.Forms(), sffxs{}, ops) -} - -// VGF2P8MULB_Z: Galois Field Multiply Bytes (Zeroing Masking). -// -// Forms: -// -// VGF2P8MULB.Z m512 zmm k zmm -// VGF2P8MULB.Z zmm zmm k zmm -// VGF2P8MULB.Z m128 xmm k xmm -// VGF2P8MULB.Z m256 ymm k ymm -// VGF2P8MULB.Z xmm xmm k xmm -// VGF2P8MULB.Z ymm ymm k ymm -func VGF2P8MULB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVGF2P8MULB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VHADDPD: Packed Double-FP Horizontal Add. -// -// Forms: -// -// VHADDPD m128 xmm xmm -// VHADDPD m256 ymm ymm -// VHADDPD xmm xmm xmm -// VHADDPD ymm ymm ymm -func VHADDPD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVHADDPD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VHADDPS: Packed Single-FP Horizontal Add. -// -// Forms: -// -// VHADDPS m128 xmm xmm -// VHADDPS m256 ymm ymm -// VHADDPS xmm xmm xmm -// VHADDPS ymm ymm ymm -func VHADDPS(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVHADDPS.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VHSUBPD: Packed Double-FP Horizontal Subtract. -// -// Forms: -// -// VHSUBPD m128 xmm xmm -// VHSUBPD m256 ymm ymm -// VHSUBPD xmm xmm xmm -// VHSUBPD ymm ymm ymm -func VHSUBPD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVHSUBPD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VHSUBPS: Packed Single-FP Horizontal Subtract. -// -// Forms: -// -// VHSUBPS m128 xmm xmm -// VHSUBPS m256 ymm ymm -// VHSUBPS xmm xmm xmm -// VHSUBPS ymm ymm ymm -func VHSUBPS(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVHSUBPS.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VINSERTF128: Insert Packed Floating-Point Values. -// -// Forms: -// -// VINSERTF128 imm8 m128 ymm ymm -// VINSERTF128 imm8 xmm ymm ymm -func VINSERTF128(i, mx, y, y1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTF128.Forms(), sffxs{}, []operand.Op{i, mx, y, y1}) -} - -// VINSERTF32X4: Insert 128 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF32X4 imm8 m128 ymm k ymm -// VINSERTF32X4 imm8 m128 ymm ymm -// VINSERTF32X4 imm8 xmm ymm k ymm -// VINSERTF32X4 imm8 xmm ymm ymm -// VINSERTF32X4 imm8 m128 zmm k zmm -// VINSERTF32X4 imm8 m128 zmm zmm -// VINSERTF32X4 imm8 xmm zmm k zmm -// VINSERTF32X4 imm8 xmm zmm zmm -func VINSERTF32X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTF32X4.Forms(), sffxs{}, ops) -} - -// VINSERTF32X4_Z: Insert 128 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF32X4.Z imm8 m128 ymm k ymm -// VINSERTF32X4.Z imm8 xmm ymm k ymm -// VINSERTF32X4.Z imm8 m128 zmm k zmm -// VINSERTF32X4.Z imm8 xmm zmm k zmm -func VINSERTF32X4_Z(i, mx, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTF32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, yz, k, yz1}) -} - -// VINSERTF32X8: Insert 256 Bits of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF32X8 imm8 m256 zmm k zmm -// VINSERTF32X8 imm8 m256 zmm zmm -// VINSERTF32X8 imm8 ymm zmm k zmm -// VINSERTF32X8 imm8 ymm zmm zmm -func VINSERTF32X8(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTF32X8.Forms(), sffxs{}, ops) -} - -// VINSERTF32X8_Z: Insert 256 Bits of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF32X8.Z imm8 m256 zmm k zmm -// VINSERTF32X8.Z imm8 ymm zmm k zmm -func VINSERTF32X8_Z(i, my, z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTF32X8.Forms(), sffxs{sffxZ}, []operand.Op{i, my, z, k, z1}) -} - -// VINSERTF64X2: Insert 128 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF64X2 imm8 m128 ymm k ymm -// VINSERTF64X2 imm8 m128 ymm ymm -// VINSERTF64X2 imm8 xmm ymm k ymm -// VINSERTF64X2 imm8 xmm ymm ymm -// VINSERTF64X2 imm8 m128 zmm k zmm -// VINSERTF64X2 imm8 m128 zmm zmm -// VINSERTF64X2 imm8 xmm zmm k zmm -// VINSERTF64X2 imm8 xmm zmm zmm -func VINSERTF64X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTF64X2.Forms(), sffxs{}, ops) -} - -// VINSERTF64X2_Z: Insert 128 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF64X2.Z imm8 m128 ymm k ymm -// VINSERTF64X2.Z imm8 xmm ymm k ymm -// VINSERTF64X2.Z imm8 m128 zmm k zmm -// VINSERTF64X2.Z imm8 xmm zmm k zmm -func VINSERTF64X2_Z(i, mx, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTF64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, yz, k, yz1}) -} - -// VINSERTF64X4: Insert 256 Bits of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VINSERTF64X4 imm8 m256 zmm k zmm -// VINSERTF64X4 imm8 m256 zmm zmm -// VINSERTF64X4 imm8 ymm zmm k zmm -// VINSERTF64X4 imm8 ymm zmm zmm -func VINSERTF64X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTF64X4.Forms(), sffxs{}, ops) -} - -// VINSERTF64X4_Z: Insert 256 Bits of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VINSERTF64X4.Z imm8 m256 zmm k zmm -// VINSERTF64X4.Z imm8 ymm zmm k zmm -func VINSERTF64X4_Z(i, my, z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTF64X4.Forms(), sffxs{sffxZ}, []operand.Op{i, my, z, k, z1}) -} - -// VINSERTI128: Insert Packed Integer Values. -// -// Forms: -// -// VINSERTI128 imm8 m128 ymm ymm -// VINSERTI128 imm8 xmm ymm ymm -func VINSERTI128(i, mx, y, y1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTI128.Forms(), sffxs{}, []operand.Op{i, mx, y, y1}) -} - -// VINSERTI32X4: Insert 128 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VINSERTI32X4 imm8 m128 ymm k ymm -// VINSERTI32X4 imm8 m128 ymm ymm -// VINSERTI32X4 imm8 xmm ymm k ymm -// VINSERTI32X4 imm8 xmm ymm ymm -// VINSERTI32X4 imm8 m128 zmm k zmm -// VINSERTI32X4 imm8 m128 zmm zmm -// VINSERTI32X4 imm8 xmm zmm k zmm -// VINSERTI32X4 imm8 xmm zmm zmm -func VINSERTI32X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTI32X4.Forms(), sffxs{}, ops) -} - -// VINSERTI32X4_Z: Insert 128 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI32X4.Z imm8 m128 ymm k ymm -// VINSERTI32X4.Z imm8 xmm ymm k ymm -// VINSERTI32X4.Z imm8 m128 zmm k zmm -// VINSERTI32X4.Z imm8 xmm zmm k zmm -func VINSERTI32X4_Z(i, mx, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTI32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, yz, k, yz1}) -} - -// VINSERTI32X8: Insert 256 Bits of Packed Doubleword Integer Values. -// -// Forms: -// -// VINSERTI32X8 imm8 m256 zmm k zmm -// VINSERTI32X8 imm8 m256 zmm zmm -// VINSERTI32X8 imm8 ymm zmm k zmm -// VINSERTI32X8 imm8 ymm zmm zmm -func VINSERTI32X8(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTI32X8.Forms(), sffxs{}, ops) -} - -// VINSERTI32X8_Z: Insert 256 Bits of Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI32X8.Z imm8 m256 zmm k zmm -// VINSERTI32X8.Z imm8 ymm zmm k zmm -func VINSERTI32X8_Z(i, my, z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTI32X8.Forms(), sffxs{sffxZ}, []operand.Op{i, my, z, k, z1}) -} - -// VINSERTI64X2: Insert 128 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VINSERTI64X2 imm8 m128 ymm k ymm -// VINSERTI64X2 imm8 m128 ymm ymm -// VINSERTI64X2 imm8 xmm ymm k ymm -// VINSERTI64X2 imm8 xmm ymm ymm -// VINSERTI64X2 imm8 m128 zmm k zmm -// VINSERTI64X2 imm8 m128 zmm zmm -// VINSERTI64X2 imm8 xmm zmm k zmm -// VINSERTI64X2 imm8 xmm zmm zmm -func VINSERTI64X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTI64X2.Forms(), sffxs{}, ops) -} - -// VINSERTI64X2_Z: Insert 128 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI64X2.Z imm8 m128 ymm k ymm -// VINSERTI64X2.Z imm8 xmm ymm k ymm -// VINSERTI64X2.Z imm8 m128 zmm k zmm -// VINSERTI64X2.Z imm8 xmm zmm k zmm -func VINSERTI64X2_Z(i, mx, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTI64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, yz, k, yz1}) -} - -// VINSERTI64X4: Insert 256 Bits of Packed Quadword Integer Values. -// -// Forms: -// -// VINSERTI64X4 imm8 m256 zmm k zmm -// VINSERTI64X4 imm8 m256 zmm zmm -// VINSERTI64X4 imm8 ymm zmm k zmm -// VINSERTI64X4 imm8 ymm zmm zmm -func VINSERTI64X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTI64X4.Forms(), sffxs{}, ops) -} - -// VINSERTI64X4_Z: Insert 256 Bits of Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VINSERTI64X4.Z imm8 m256 zmm k zmm -// VINSERTI64X4.Z imm8 ymm zmm k zmm -func VINSERTI64X4_Z(i, my, z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTI64X4.Forms(), sffxs{sffxZ}, []operand.Op{i, my, z, k, z1}) -} - -// VINSERTPS: Insert Packed Single Precision Floating-Point Value. -// -// Forms: -// -// VINSERTPS imm8 m32 xmm xmm -// VINSERTPS imm8 xmm xmm xmm -func VINSERTPS(i, mx, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVINSERTPS.Forms(), sffxs{}, []operand.Op{i, mx, x, x1}) -} - -// VLDDQU: Load Unaligned Integer 128 Bits. -// -// Forms: -// -// VLDDQU m128 xmm -// VLDDQU m256 ymm -func VLDDQU(m, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVLDDQU.Forms(), sffxs{}, []operand.Op{m, xy}) -} - -// VLDMXCSR: Load MXCSR Register. -// -// Forms: -// -// VLDMXCSR m32 -func VLDMXCSR(m operand.Op) (*intrep.Instruction, error) { - return build(opcVLDMXCSR.Forms(), sffxs{}, []operand.Op{m}) -} - -// VMASKMOVDQU: Store Selected Bytes of Double Quadword. -// -// Forms: -// -// VMASKMOVDQU xmm xmm -func VMASKMOVDQU(x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMASKMOVDQU.Forms(), sffxs{}, []operand.Op{x, x1}) -} - -// VMASKMOVPD: Conditional Move Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMASKMOVPD m128 xmm xmm -// VMASKMOVPD m256 ymm ymm -// VMASKMOVPD xmm xmm m128 -// VMASKMOVPD ymm ymm m256 -func VMASKMOVPD(mxy, xy, mxy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMASKMOVPD.Forms(), sffxs{}, []operand.Op{mxy, xy, mxy1}) -} - -// VMASKMOVPS: Conditional Move Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMASKMOVPS m128 xmm xmm -// VMASKMOVPS m256 ymm ymm -// VMASKMOVPS xmm xmm m128 -// VMASKMOVPS ymm ymm m256 -func VMASKMOVPS(mxy, xy, mxy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMASKMOVPS.Forms(), sffxs{}, []operand.Op{mxy, xy, mxy1}) -} - -// VMAXPD: Return Maximum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMAXPD m128 xmm xmm -// VMAXPD m256 ymm ymm -// VMAXPD xmm xmm xmm -// VMAXPD ymm ymm ymm -// VMAXPD m128 xmm k xmm -// VMAXPD m256 ymm k ymm -// VMAXPD xmm xmm k xmm -// VMAXPD ymm ymm k ymm -// VMAXPD m512 zmm k zmm -// VMAXPD m512 zmm zmm -// VMAXPD zmm zmm k zmm -// VMAXPD zmm zmm zmm -func VMAXPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPD.Forms(), sffxs{}, ops) -} - -// VMAXPD_BCST: Return Maximum Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMAXPD.BCST m64 xmm k xmm -// VMAXPD.BCST m64 xmm xmm -// VMAXPD.BCST m64 ymm k ymm -// VMAXPD.BCST m64 ymm ymm -// VMAXPD.BCST m64 zmm k zmm -// VMAXPD.BCST m64 zmm zmm -func VMAXPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VMAXPD_BCST_Z: Return Maximum Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMAXPD.BCST.Z m64 xmm k xmm -// VMAXPD.BCST.Z m64 ymm k ymm -// VMAXPD.BCST.Z m64 zmm k zmm -func VMAXPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VMAXPD_SAE: Return Maximum Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMAXPD.SAE zmm zmm k zmm -// VMAXPD.SAE zmm zmm zmm -func VMAXPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPD.Forms(), sffxs{sffxSAE}, ops) -} - -// VMAXPD_SAE_Z: Return Maximum Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXPD.SAE.Z zmm zmm k zmm -func VMAXPD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMAXPD_Z: Return Maximum Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMAXPD.Z m128 xmm k xmm -// VMAXPD.Z m256 ymm k ymm -// VMAXPD.Z xmm xmm k xmm -// VMAXPD.Z ymm ymm k ymm -// VMAXPD.Z m512 zmm k zmm -// VMAXPD.Z zmm zmm k zmm -func VMAXPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VMAXPS: Return Maximum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMAXPS m128 xmm xmm -// VMAXPS m256 ymm ymm -// VMAXPS xmm xmm xmm -// VMAXPS ymm ymm ymm -// VMAXPS m128 xmm k xmm -// VMAXPS m256 ymm k ymm -// VMAXPS xmm xmm k xmm -// VMAXPS ymm ymm k ymm -// VMAXPS m512 zmm k zmm -// VMAXPS m512 zmm zmm -// VMAXPS zmm zmm k zmm -// VMAXPS zmm zmm zmm -func VMAXPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPS.Forms(), sffxs{}, ops) -} - -// VMAXPS_BCST: Return Maximum Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMAXPS.BCST m32 xmm k xmm -// VMAXPS.BCST m32 xmm xmm -// VMAXPS.BCST m32 ymm k ymm -// VMAXPS.BCST m32 ymm ymm -// VMAXPS.BCST m32 zmm k zmm -// VMAXPS.BCST m32 zmm zmm -func VMAXPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VMAXPS_BCST_Z: Return Maximum Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMAXPS.BCST.Z m32 xmm k xmm -// VMAXPS.BCST.Z m32 ymm k ymm -// VMAXPS.BCST.Z m32 zmm k zmm -func VMAXPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VMAXPS_SAE: Return Maximum Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMAXPS.SAE zmm zmm k zmm -// VMAXPS.SAE zmm zmm zmm -func VMAXPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPS.Forms(), sffxs{sffxSAE}, ops) -} - -// VMAXPS_SAE_Z: Return Maximum Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXPS.SAE.Z zmm zmm k zmm -func VMAXPS_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMAXPS_Z: Return Maximum Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMAXPS.Z m128 xmm k xmm -// VMAXPS.Z m256 ymm k ymm -// VMAXPS.Z xmm xmm k xmm -// VMAXPS.Z ymm ymm k ymm -// VMAXPS.Z m512 zmm k zmm -// VMAXPS.Z zmm zmm k zmm -func VMAXPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VMAXSD: Return Maximum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VMAXSD m64 xmm xmm -// VMAXSD xmm xmm xmm -// VMAXSD m64 xmm k xmm -// VMAXSD xmm xmm k xmm -func VMAXSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXSD.Forms(), sffxs{}, ops) -} - -// VMAXSD_SAE: Return Maximum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMAXSD.SAE xmm xmm k xmm -// VMAXSD.SAE xmm xmm xmm -func VMAXSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXSD.Forms(), sffxs{sffxSAE}, ops) -} - -// VMAXSD_SAE_Z: Return Maximum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXSD.SAE.Z xmm xmm k xmm -func VMAXSD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMAXSD_Z: Return Maximum Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMAXSD.Z m64 xmm k xmm -// VMAXSD.Z xmm xmm k xmm -func VMAXSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VMAXSS: Return Maximum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VMAXSS m32 xmm xmm -// VMAXSS xmm xmm xmm -// VMAXSS m32 xmm k xmm -// VMAXSS xmm xmm k xmm -func VMAXSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXSS.Forms(), sffxs{}, ops) -} - -// VMAXSS_SAE: Return Maximum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMAXSS.SAE xmm xmm k xmm -// VMAXSS.SAE xmm xmm xmm -func VMAXSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXSS.Forms(), sffxs{sffxSAE}, ops) -} - -// VMAXSS_SAE_Z: Return Maximum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMAXSS.SAE.Z xmm xmm k xmm -func VMAXSS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMAXSS_Z: Return Maximum Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMAXSS.Z m32 xmm k xmm -// VMAXSS.Z xmm xmm k xmm -func VMAXSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMAXSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VMINPD: Return Minimum Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMINPD m128 xmm xmm -// VMINPD m256 ymm ymm -// VMINPD xmm xmm xmm -// VMINPD ymm ymm ymm -// VMINPD m128 xmm k xmm -// VMINPD m256 ymm k ymm -// VMINPD xmm xmm k xmm -// VMINPD ymm ymm k ymm -// VMINPD m512 zmm k zmm -// VMINPD m512 zmm zmm -// VMINPD zmm zmm k zmm -// VMINPD zmm zmm zmm -func VMINPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPD.Forms(), sffxs{}, ops) -} - -// VMINPD_BCST: Return Minimum Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMINPD.BCST m64 xmm k xmm -// VMINPD.BCST m64 xmm xmm -// VMINPD.BCST m64 ymm k ymm -// VMINPD.BCST m64 ymm ymm -// VMINPD.BCST m64 zmm k zmm -// VMINPD.BCST m64 zmm zmm -func VMINPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VMINPD_BCST_Z: Return Minimum Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMINPD.BCST.Z m64 xmm k xmm -// VMINPD.BCST.Z m64 ymm k ymm -// VMINPD.BCST.Z m64 zmm k zmm -func VMINPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VMINPD_SAE: Return Minimum Packed Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMINPD.SAE zmm zmm k zmm -// VMINPD.SAE zmm zmm zmm -func VMINPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPD.Forms(), sffxs{sffxSAE}, ops) -} - -// VMINPD_SAE_Z: Return Minimum Packed Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINPD.SAE.Z zmm zmm k zmm -func VMINPD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMINPD_Z: Return Minimum Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMINPD.Z m128 xmm k xmm -// VMINPD.Z m256 ymm k ymm -// VMINPD.Z xmm xmm k xmm -// VMINPD.Z ymm ymm k ymm -// VMINPD.Z m512 zmm k zmm -// VMINPD.Z zmm zmm k zmm -func VMINPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VMINPS: Return Minimum Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMINPS m128 xmm xmm -// VMINPS m256 ymm ymm -// VMINPS xmm xmm xmm -// VMINPS ymm ymm ymm -// VMINPS m128 xmm k xmm -// VMINPS m256 ymm k ymm -// VMINPS xmm xmm k xmm -// VMINPS ymm ymm k ymm -// VMINPS m512 zmm k zmm -// VMINPS m512 zmm zmm -// VMINPS zmm zmm k zmm -// VMINPS zmm zmm zmm -func VMINPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPS.Forms(), sffxs{}, ops) -} - -// VMINPS_BCST: Return Minimum Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMINPS.BCST m32 xmm k xmm -// VMINPS.BCST m32 xmm xmm -// VMINPS.BCST m32 ymm k ymm -// VMINPS.BCST m32 ymm ymm -// VMINPS.BCST m32 zmm k zmm -// VMINPS.BCST m32 zmm zmm -func VMINPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VMINPS_BCST_Z: Return Minimum Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMINPS.BCST.Z m32 xmm k xmm -// VMINPS.BCST.Z m32 ymm k ymm -// VMINPS.BCST.Z m32 zmm k zmm -func VMINPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VMINPS_SAE: Return Minimum Packed Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VMINPS.SAE zmm zmm k zmm -// VMINPS.SAE zmm zmm zmm -func VMINPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPS.Forms(), sffxs{sffxSAE}, ops) -} - -// VMINPS_SAE_Z: Return Minimum Packed Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINPS.SAE.Z zmm zmm k zmm -func VMINPS_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMINPS_Z: Return Minimum Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMINPS.Z m128 xmm k xmm -// VMINPS.Z m256 ymm k ymm -// VMINPS.Z xmm xmm k xmm -// VMINPS.Z ymm ymm k ymm -// VMINPS.Z m512 zmm k zmm -// VMINPS.Z zmm zmm k zmm -func VMINPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VMINSD: Return Minimum Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VMINSD m64 xmm xmm -// VMINSD xmm xmm xmm -// VMINSD m64 xmm k xmm -// VMINSD xmm xmm k xmm -func VMINSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINSD.Forms(), sffxs{}, ops) -} - -// VMINSD_SAE: Return Minimum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMINSD.SAE xmm xmm k xmm -// VMINSD.SAE xmm xmm xmm -func VMINSD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINSD.Forms(), sffxs{sffxSAE}, ops) -} - -// VMINSD_SAE_Z: Return Minimum Scalar Double-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINSD.SAE.Z xmm xmm k xmm -func VMINSD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINSD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMINSD_Z: Return Minimum Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMINSD.Z m64 xmm k xmm -// VMINSD.Z xmm xmm k xmm -func VMINSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VMINSS: Return Minimum Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VMINSS m32 xmm xmm -// VMINSS xmm xmm xmm -// VMINSS m32 xmm k xmm -// VMINSS xmm xmm k xmm -func VMINSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINSS.Forms(), sffxs{}, ops) -} - -// VMINSS_SAE: Return Minimum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions). -// -// Forms: -// -// VMINSS.SAE xmm xmm k xmm -// VMINSS.SAE xmm xmm xmm -func VMINSS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMINSS.Forms(), sffxs{sffxSAE}, ops) -} - -// VMINSS_SAE_Z: Return Minimum Scalar Single-Precision Floating-Point Value (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VMINSS.SAE.Z xmm xmm k xmm -func VMINSS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINSS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMINSS_Z: Return Minimum Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMINSS.Z m32 xmm k xmm -// VMINSS.Z xmm xmm k xmm -func VMINSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMINSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VMOVAPD: Move Aligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMOVAPD m128 xmm -// VMOVAPD m256 ymm -// VMOVAPD xmm m128 -// VMOVAPD xmm xmm -// VMOVAPD ymm m256 -// VMOVAPD ymm ymm -// VMOVAPD m128 k xmm -// VMOVAPD m256 k ymm -// VMOVAPD xmm k m128 -// VMOVAPD xmm k xmm -// VMOVAPD ymm k m256 -// VMOVAPD ymm k ymm -// VMOVAPD m512 k zmm -// VMOVAPD m512 zmm -// VMOVAPD zmm k m512 -// VMOVAPD zmm k zmm -// VMOVAPD zmm m512 -// VMOVAPD zmm zmm -func VMOVAPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVAPD.Forms(), sffxs{}, ops) -} - -// VMOVAPD_Z: Move Aligned Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVAPD.Z m128 k xmm -// VMOVAPD.Z m256 k ymm -// VMOVAPD.Z xmm k m128 -// VMOVAPD.Z xmm k xmm -// VMOVAPD.Z ymm k m256 -// VMOVAPD.Z ymm k ymm -// VMOVAPD.Z m512 k zmm -// VMOVAPD.Z zmm k m512 -// VMOVAPD.Z zmm k zmm -func VMOVAPD_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVAPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMOVAPS: Move Aligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVAPS m128 xmm -// VMOVAPS m256 ymm -// VMOVAPS xmm m128 -// VMOVAPS xmm xmm -// VMOVAPS ymm m256 -// VMOVAPS ymm ymm -// VMOVAPS m128 k xmm -// VMOVAPS m256 k ymm -// VMOVAPS xmm k m128 -// VMOVAPS xmm k xmm -// VMOVAPS ymm k m256 -// VMOVAPS ymm k ymm -// VMOVAPS m512 k zmm -// VMOVAPS m512 zmm -// VMOVAPS zmm k m512 -// VMOVAPS zmm k zmm -// VMOVAPS zmm m512 -// VMOVAPS zmm zmm -func VMOVAPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVAPS.Forms(), sffxs{}, ops) -} - -// VMOVAPS_Z: Move Aligned Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVAPS.Z m128 k xmm -// VMOVAPS.Z m256 k ymm -// VMOVAPS.Z xmm k m128 -// VMOVAPS.Z xmm k xmm -// VMOVAPS.Z ymm k m256 -// VMOVAPS.Z ymm k ymm -// VMOVAPS.Z m512 k zmm -// VMOVAPS.Z zmm k m512 -// VMOVAPS.Z zmm k zmm -func VMOVAPS_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVAPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMOVD: Move Doubleword. -// -// Forms: -// -// VMOVD m32 xmm -// VMOVD r32 xmm -// VMOVD xmm m32 -// VMOVD xmm r32 -func VMOVD(mrx, mrx1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVD.Forms(), sffxs{}, []operand.Op{mrx, mrx1}) -} - -// VMOVDDUP: Move One Double-FP and Duplicate. -// -// Forms: -// -// VMOVDDUP m256 ymm -// VMOVDDUP m64 xmm -// VMOVDDUP xmm xmm -// VMOVDDUP ymm ymm -// VMOVDDUP m256 k ymm -// VMOVDDUP m64 k xmm -// VMOVDDUP xmm k xmm -// VMOVDDUP ymm k ymm -// VMOVDDUP m512 k zmm -// VMOVDDUP m512 zmm -// VMOVDDUP zmm k zmm -// VMOVDDUP zmm zmm -func VMOVDDUP(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDDUP.Forms(), sffxs{}, ops) -} - -// VMOVDDUP_Z: Move One Double-FP and Duplicate (Zeroing Masking). -// -// Forms: -// -// VMOVDDUP.Z m256 k ymm -// VMOVDDUP.Z m64 k xmm -// VMOVDDUP.Z xmm k xmm -// VMOVDDUP.Z ymm k ymm -// VMOVDDUP.Z m512 k zmm -// VMOVDDUP.Z zmm k zmm -func VMOVDDUP_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDDUP.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VMOVDQA: Move Aligned Double Quadword. -// -// Forms: -// -// VMOVDQA m128 xmm -// VMOVDQA m256 ymm -// VMOVDQA xmm m128 -// VMOVDQA xmm xmm -// VMOVDQA ymm m256 -// VMOVDQA ymm ymm -func VMOVDQA(mxy, mxy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQA.Forms(), sffxs{}, []operand.Op{mxy, mxy1}) -} - -// VMOVDQA32: Move Aligned Doubleword Values. -// -// Forms: -// -// VMOVDQA32 m128 k xmm -// VMOVDQA32 m128 xmm -// VMOVDQA32 m256 k ymm -// VMOVDQA32 m256 ymm -// VMOVDQA32 xmm k m128 -// VMOVDQA32 xmm k xmm -// VMOVDQA32 xmm m128 -// VMOVDQA32 xmm xmm -// VMOVDQA32 ymm k m256 -// VMOVDQA32 ymm k ymm -// VMOVDQA32 ymm m256 -// VMOVDQA32 ymm ymm -// VMOVDQA32 m512 k zmm -// VMOVDQA32 m512 zmm -// VMOVDQA32 zmm k m512 -// VMOVDQA32 zmm k zmm -// VMOVDQA32 zmm m512 -// VMOVDQA32 zmm zmm -func VMOVDQA32(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQA32.Forms(), sffxs{}, ops) -} - -// VMOVDQA32_Z: Move Aligned Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQA32.Z m128 k xmm -// VMOVDQA32.Z m256 k ymm -// VMOVDQA32.Z xmm k m128 -// VMOVDQA32.Z xmm k xmm -// VMOVDQA32.Z ymm k m256 -// VMOVDQA32.Z ymm k ymm -// VMOVDQA32.Z m512 k zmm -// VMOVDQA32.Z zmm k m512 -// VMOVDQA32.Z zmm k zmm -func VMOVDQA32_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQA32.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMOVDQA64: Move Aligned Quadword Values. -// -// Forms: -// -// VMOVDQA64 m128 k xmm -// VMOVDQA64 m128 xmm -// VMOVDQA64 m256 k ymm -// VMOVDQA64 m256 ymm -// VMOVDQA64 xmm k m128 -// VMOVDQA64 xmm k xmm -// VMOVDQA64 xmm m128 -// VMOVDQA64 xmm xmm -// VMOVDQA64 ymm k m256 -// VMOVDQA64 ymm k ymm -// VMOVDQA64 ymm m256 -// VMOVDQA64 ymm ymm -// VMOVDQA64 m512 k zmm -// VMOVDQA64 m512 zmm -// VMOVDQA64 zmm k m512 -// VMOVDQA64 zmm k zmm -// VMOVDQA64 zmm m512 -// VMOVDQA64 zmm zmm -func VMOVDQA64(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQA64.Forms(), sffxs{}, ops) -} - -// VMOVDQA64_Z: Move Aligned Quadword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQA64.Z m128 k xmm -// VMOVDQA64.Z m256 k ymm -// VMOVDQA64.Z xmm k m128 -// VMOVDQA64.Z xmm k xmm -// VMOVDQA64.Z ymm k m256 -// VMOVDQA64.Z ymm k ymm -// VMOVDQA64.Z m512 k zmm -// VMOVDQA64.Z zmm k m512 -// VMOVDQA64.Z zmm k zmm -func VMOVDQA64_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQA64.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMOVDQU: Move Unaligned Double Quadword. -// -// Forms: -// -// VMOVDQU m128 xmm -// VMOVDQU m256 ymm -// VMOVDQU xmm m128 -// VMOVDQU xmm xmm -// VMOVDQU ymm m256 -// VMOVDQU ymm ymm -func VMOVDQU(mxy, mxy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQU.Forms(), sffxs{}, []operand.Op{mxy, mxy1}) -} - -// VMOVDQU16: Move Unaligned Word Values. -// -// Forms: -// -// VMOVDQU16 m128 k xmm -// VMOVDQU16 m128 xmm -// VMOVDQU16 m256 k ymm -// VMOVDQU16 m256 ymm -// VMOVDQU16 xmm k m128 -// VMOVDQU16 xmm k xmm -// VMOVDQU16 xmm m128 -// VMOVDQU16 xmm xmm -// VMOVDQU16 ymm k m256 -// VMOVDQU16 ymm k ymm -// VMOVDQU16 ymm m256 -// VMOVDQU16 ymm ymm -// VMOVDQU16 m512 k zmm -// VMOVDQU16 m512 zmm -// VMOVDQU16 zmm k m512 -// VMOVDQU16 zmm k zmm -// VMOVDQU16 zmm m512 -// VMOVDQU16 zmm zmm -func VMOVDQU16(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQU16.Forms(), sffxs{}, ops) -} - -// VMOVDQU16_Z: Move Unaligned Word Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU16.Z m128 k xmm -// VMOVDQU16.Z m256 k ymm -// VMOVDQU16.Z xmm k m128 -// VMOVDQU16.Z xmm k xmm -// VMOVDQU16.Z ymm k m256 -// VMOVDQU16.Z ymm k ymm -// VMOVDQU16.Z m512 k zmm -// VMOVDQU16.Z zmm k m512 -// VMOVDQU16.Z zmm k zmm -func VMOVDQU16_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQU16.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMOVDQU32: Move Unaligned Doubleword Values. -// -// Forms: -// -// VMOVDQU32 m128 k xmm -// VMOVDQU32 m128 xmm -// VMOVDQU32 m256 k ymm -// VMOVDQU32 m256 ymm -// VMOVDQU32 xmm k m128 -// VMOVDQU32 xmm k xmm -// VMOVDQU32 xmm m128 -// VMOVDQU32 xmm xmm -// VMOVDQU32 ymm k m256 -// VMOVDQU32 ymm k ymm -// VMOVDQU32 ymm m256 -// VMOVDQU32 ymm ymm -// VMOVDQU32 m512 k zmm -// VMOVDQU32 m512 zmm -// VMOVDQU32 zmm k m512 -// VMOVDQU32 zmm k zmm -// VMOVDQU32 zmm m512 -// VMOVDQU32 zmm zmm -func VMOVDQU32(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQU32.Forms(), sffxs{}, ops) -} - -// VMOVDQU32_Z: Move Unaligned Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU32.Z m128 k xmm -// VMOVDQU32.Z m256 k ymm -// VMOVDQU32.Z xmm k m128 -// VMOVDQU32.Z xmm k xmm -// VMOVDQU32.Z ymm k m256 -// VMOVDQU32.Z ymm k ymm -// VMOVDQU32.Z m512 k zmm -// VMOVDQU32.Z zmm k m512 -// VMOVDQU32.Z zmm k zmm -func VMOVDQU32_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQU32.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMOVDQU64: Move Unaligned Quadword Values. -// -// Forms: -// -// VMOVDQU64 m128 k xmm -// VMOVDQU64 m128 xmm -// VMOVDQU64 m256 k ymm -// VMOVDQU64 m256 ymm -// VMOVDQU64 xmm k m128 -// VMOVDQU64 xmm k xmm -// VMOVDQU64 xmm m128 -// VMOVDQU64 xmm xmm -// VMOVDQU64 ymm k m256 -// VMOVDQU64 ymm k ymm -// VMOVDQU64 ymm m256 -// VMOVDQU64 ymm ymm -// VMOVDQU64 m512 k zmm -// VMOVDQU64 m512 zmm -// VMOVDQU64 zmm k m512 -// VMOVDQU64 zmm k zmm -// VMOVDQU64 zmm m512 -// VMOVDQU64 zmm zmm -func VMOVDQU64(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQU64.Forms(), sffxs{}, ops) -} - -// VMOVDQU64_Z: Move Unaligned Quadword Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU64.Z m128 k xmm -// VMOVDQU64.Z m256 k ymm -// VMOVDQU64.Z xmm k m128 -// VMOVDQU64.Z xmm k xmm -// VMOVDQU64.Z ymm k m256 -// VMOVDQU64.Z ymm k ymm -// VMOVDQU64.Z m512 k zmm -// VMOVDQU64.Z zmm k m512 -// VMOVDQU64.Z zmm k zmm -func VMOVDQU64_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQU64.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMOVDQU8: Move Unaligned Byte Values. -// -// Forms: -// -// VMOVDQU8 m128 k xmm -// VMOVDQU8 m128 xmm -// VMOVDQU8 m256 k ymm -// VMOVDQU8 m256 ymm -// VMOVDQU8 xmm k m128 -// VMOVDQU8 xmm k xmm -// VMOVDQU8 xmm m128 -// VMOVDQU8 xmm xmm -// VMOVDQU8 ymm k m256 -// VMOVDQU8 ymm k ymm -// VMOVDQU8 ymm m256 -// VMOVDQU8 ymm ymm -// VMOVDQU8 m512 k zmm -// VMOVDQU8 m512 zmm -// VMOVDQU8 zmm k m512 -// VMOVDQU8 zmm k zmm -// VMOVDQU8 zmm m512 -// VMOVDQU8 zmm zmm -func VMOVDQU8(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQU8.Forms(), sffxs{}, ops) -} - -// VMOVDQU8_Z: Move Unaligned Byte Values (Zeroing Masking). -// -// Forms: -// -// VMOVDQU8.Z m128 k xmm -// VMOVDQU8.Z m256 k ymm -// VMOVDQU8.Z xmm k m128 -// VMOVDQU8.Z xmm k xmm -// VMOVDQU8.Z ymm k m256 -// VMOVDQU8.Z ymm k ymm -// VMOVDQU8.Z m512 k zmm -// VMOVDQU8.Z zmm k m512 -// VMOVDQU8.Z zmm k zmm -func VMOVDQU8_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVDQU8.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMOVHLPS: Move Packed Single-Precision Floating-Point Values High to Low. -// -// Forms: -// -// VMOVHLPS xmm xmm xmm -func VMOVHLPS(x, x1, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVHLPS.Forms(), sffxs{}, []operand.Op{x, x1, x2}) -} - -// VMOVHPD: Move High Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// VMOVHPD m64 xmm xmm -// VMOVHPD xmm m64 -func VMOVHPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVHPD.Forms(), sffxs{}, ops) -} - -// VMOVHPS: Move High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVHPS m64 xmm xmm -// VMOVHPS xmm m64 -func VMOVHPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVHPS.Forms(), sffxs{}, ops) -} - -// VMOVLHPS: Move Packed Single-Precision Floating-Point Values Low to High. -// -// Forms: -// -// VMOVLHPS xmm xmm xmm -func VMOVLHPS(x, x1, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVLHPS.Forms(), sffxs{}, []operand.Op{x, x1, x2}) -} - -// VMOVLPD: Move Low Packed Double-Precision Floating-Point Value. -// -// Forms: -// -// VMOVLPD m64 xmm xmm -// VMOVLPD xmm m64 -func VMOVLPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVLPD.Forms(), sffxs{}, ops) -} - -// VMOVLPS: Move Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVLPS m64 xmm xmm -// VMOVLPS xmm m64 -func VMOVLPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVLPS.Forms(), sffxs{}, ops) -} - -// VMOVMSKPD: Extract Packed Double-Precision Floating-Point Sign Mask. -// -// Forms: -// -// VMOVMSKPD xmm r32 -// VMOVMSKPD ymm r32 -func VMOVMSKPD(xy, r operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVMSKPD.Forms(), sffxs{}, []operand.Op{xy, r}) -} - -// VMOVMSKPS: Extract Packed Single-Precision Floating-Point Sign Mask. -// -// Forms: -// -// VMOVMSKPS xmm r32 -// VMOVMSKPS ymm r32 -func VMOVMSKPS(xy, r operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVMSKPS.Forms(), sffxs{}, []operand.Op{xy, r}) -} - -// VMOVNTDQ: Store Double Quadword Using Non-Temporal Hint. -// -// Forms: -// -// VMOVNTDQ xmm m128 -// VMOVNTDQ ymm m256 -// VMOVNTDQ zmm m512 -func VMOVNTDQ(xyz, m operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVNTDQ.Forms(), sffxs{}, []operand.Op{xyz, m}) -} - -// VMOVNTDQA: Load Double Quadword Non-Temporal Aligned Hint. -// -// Forms: -// -// VMOVNTDQA m256 ymm -// VMOVNTDQA m128 xmm -// VMOVNTDQA m512 zmm -func VMOVNTDQA(m, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVNTDQA.Forms(), sffxs{}, []operand.Op{m, xyz}) -} - -// VMOVNTPD: Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// VMOVNTPD xmm m128 -// VMOVNTPD ymm m256 -// VMOVNTPD zmm m512 -func VMOVNTPD(xyz, m operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVNTPD.Forms(), sffxs{}, []operand.Op{xyz, m}) -} - -// VMOVNTPS: Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint. -// -// Forms: -// -// VMOVNTPS xmm m128 -// VMOVNTPS ymm m256 -// VMOVNTPS zmm m512 -func VMOVNTPS(xyz, m operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVNTPS.Forms(), sffxs{}, []operand.Op{xyz, m}) -} - -// VMOVQ: Move Quadword. -// -// Forms: -// -// VMOVQ m64 xmm -// VMOVQ r64 xmm -// VMOVQ xmm m64 -// VMOVQ xmm r64 -// VMOVQ xmm xmm -func VMOVQ(mrx, mrx1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVQ.Forms(), sffxs{}, []operand.Op{mrx, mrx1}) -} - -// VMOVSD: Move Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VMOVSD m64 xmm -// VMOVSD xmm m64 -// VMOVSD xmm xmm xmm -// VMOVSD m64 k xmm -// VMOVSD xmm k m64 -// VMOVSD xmm xmm k xmm -func VMOVSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVSD.Forms(), sffxs{}, ops) -} - -// VMOVSD_Z: Move Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VMOVSD.Z m64 k xmm -// VMOVSD.Z xmm xmm k xmm -func VMOVSD_Z(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVSD.Forms(), sffxs{sffxZ}, ops) -} - -// VMOVSHDUP: Move Packed Single-FP High and Duplicate. -// -// Forms: -// -// VMOVSHDUP m128 xmm -// VMOVSHDUP m256 ymm -// VMOVSHDUP xmm xmm -// VMOVSHDUP ymm ymm -// VMOVSHDUP m128 k xmm -// VMOVSHDUP m256 k ymm -// VMOVSHDUP xmm k xmm -// VMOVSHDUP ymm k ymm -// VMOVSHDUP m512 k zmm -// VMOVSHDUP m512 zmm -// VMOVSHDUP zmm k zmm -// VMOVSHDUP zmm zmm -func VMOVSHDUP(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVSHDUP.Forms(), sffxs{}, ops) -} - -// VMOVSHDUP_Z: Move Packed Single-FP High and Duplicate (Zeroing Masking). -// -// Forms: -// -// VMOVSHDUP.Z m128 k xmm -// VMOVSHDUP.Z m256 k ymm -// VMOVSHDUP.Z xmm k xmm -// VMOVSHDUP.Z ymm k ymm -// VMOVSHDUP.Z m512 k zmm -// VMOVSHDUP.Z zmm k zmm -func VMOVSHDUP_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVSHDUP.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VMOVSLDUP: Move Packed Single-FP Low and Duplicate. -// -// Forms: -// -// VMOVSLDUP m128 xmm -// VMOVSLDUP m256 ymm -// VMOVSLDUP xmm xmm -// VMOVSLDUP ymm ymm -// VMOVSLDUP m128 k xmm -// VMOVSLDUP m256 k ymm -// VMOVSLDUP xmm k xmm -// VMOVSLDUP ymm k ymm -// VMOVSLDUP m512 k zmm -// VMOVSLDUP m512 zmm -// VMOVSLDUP zmm k zmm -// VMOVSLDUP zmm zmm -func VMOVSLDUP(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVSLDUP.Forms(), sffxs{}, ops) -} - -// VMOVSLDUP_Z: Move Packed Single-FP Low and Duplicate (Zeroing Masking). -// -// Forms: -// -// VMOVSLDUP.Z m128 k xmm -// VMOVSLDUP.Z m256 k ymm -// VMOVSLDUP.Z xmm k xmm -// VMOVSLDUP.Z ymm k ymm -// VMOVSLDUP.Z m512 k zmm -// VMOVSLDUP.Z zmm k zmm -func VMOVSLDUP_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVSLDUP.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VMOVSS: Move Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVSS m32 xmm -// VMOVSS xmm m32 -// VMOVSS xmm xmm xmm -// VMOVSS m32 k xmm -// VMOVSS xmm k m32 -// VMOVSS xmm xmm k xmm -func VMOVSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVSS.Forms(), sffxs{}, ops) -} - -// VMOVSS_Z: Move Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVSS.Z m32 k xmm -// VMOVSS.Z xmm xmm k xmm -func VMOVSS_Z(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVSS.Forms(), sffxs{sffxZ}, ops) -} - -// VMOVUPD: Move Unaligned Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMOVUPD m128 xmm -// VMOVUPD m256 ymm -// VMOVUPD xmm m128 -// VMOVUPD xmm xmm -// VMOVUPD ymm m256 -// VMOVUPD ymm ymm -// VMOVUPD m128 k xmm -// VMOVUPD m256 k ymm -// VMOVUPD xmm k m128 -// VMOVUPD xmm k xmm -// VMOVUPD ymm k m256 -// VMOVUPD ymm k ymm -// VMOVUPD m512 k zmm -// VMOVUPD m512 zmm -// VMOVUPD zmm k m512 -// VMOVUPD zmm k zmm -// VMOVUPD zmm m512 -// VMOVUPD zmm zmm -func VMOVUPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVUPD.Forms(), sffxs{}, ops) -} - -// VMOVUPD_Z: Move Unaligned Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVUPD.Z m128 k xmm -// VMOVUPD.Z m256 k ymm -// VMOVUPD.Z xmm k m128 -// VMOVUPD.Z xmm k xmm -// VMOVUPD.Z ymm k m256 -// VMOVUPD.Z ymm k ymm -// VMOVUPD.Z m512 k zmm -// VMOVUPD.Z zmm k m512 -// VMOVUPD.Z zmm k zmm -func VMOVUPD_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVUPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMOVUPS: Move Unaligned Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMOVUPS m128 xmm -// VMOVUPS m256 ymm -// VMOVUPS xmm m128 -// VMOVUPS xmm xmm -// VMOVUPS ymm m256 -// VMOVUPS ymm ymm -// VMOVUPS m128 k xmm -// VMOVUPS m256 k ymm -// VMOVUPS xmm k m128 -// VMOVUPS xmm k xmm -// VMOVUPS ymm k m256 -// VMOVUPS ymm k ymm -// VMOVUPS m512 k zmm -// VMOVUPS m512 zmm -// VMOVUPS zmm k m512 -// VMOVUPS zmm k zmm -// VMOVUPS zmm m512 -// VMOVUPS zmm zmm -func VMOVUPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVUPS.Forms(), sffxs{}, ops) -} - -// VMOVUPS_Z: Move Unaligned Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMOVUPS.Z m128 k xmm -// VMOVUPS.Z m256 k ymm -// VMOVUPS.Z xmm k m128 -// VMOVUPS.Z xmm k xmm -// VMOVUPS.Z ymm k m256 -// VMOVUPS.Z ymm k ymm -// VMOVUPS.Z m512 k zmm -// VMOVUPS.Z zmm k m512 -// VMOVUPS.Z zmm k zmm -func VMOVUPS_Z(mxyz, k, mxyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMOVUPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, mxyz1}) -} - -// VMPSADBW: Compute Multiple Packed Sums of Absolute Difference. -// -// Forms: -// -// VMPSADBW imm8 m256 ymm ymm -// VMPSADBW imm8 ymm ymm ymm -// VMPSADBW imm8 m128 xmm xmm -// VMPSADBW imm8 xmm xmm xmm -func VMPSADBW(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMPSADBW.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1}) -} - -// VMULPD: Multiply Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VMULPD m128 xmm xmm -// VMULPD m256 ymm ymm -// VMULPD xmm xmm xmm -// VMULPD ymm ymm ymm -// VMULPD m128 xmm k xmm -// VMULPD m256 ymm k ymm -// VMULPD xmm xmm k xmm -// VMULPD ymm ymm k ymm -// VMULPD m512 zmm k zmm -// VMULPD m512 zmm zmm -// VMULPD zmm zmm k zmm -// VMULPD zmm zmm zmm -func VMULPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{}, ops) -} - -// VMULPD_BCST: Multiply Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMULPD.BCST m64 xmm k xmm -// VMULPD.BCST m64 xmm xmm -// VMULPD.BCST m64 ymm k ymm -// VMULPD.BCST m64 ymm ymm -// VMULPD.BCST m64 zmm k zmm -// VMULPD.BCST m64 zmm zmm -func VMULPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VMULPD_BCST_Z: Multiply Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMULPD.BCST.Z m64 xmm k xmm -// VMULPD.BCST.Z m64 ymm k ymm -// VMULPD.BCST.Z m64 zmm k zmm -func VMULPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VMULPD_RD_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULPD.RD_SAE zmm zmm k zmm -// VMULPD.RD_SAE zmm zmm zmm -func VMULPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VMULPD_RD_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPD.RD_SAE.Z zmm zmm k zmm -func VMULPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMULPD_RN_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULPD.RN_SAE zmm zmm k zmm -// VMULPD.RN_SAE zmm zmm zmm -func VMULPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VMULPD_RN_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULPD.RN_SAE.Z zmm zmm k zmm -func VMULPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMULPD_RU_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULPD.RU_SAE zmm zmm k zmm -// VMULPD.RU_SAE zmm zmm zmm -func VMULPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VMULPD_RU_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPD.RU_SAE.Z zmm zmm k zmm -func VMULPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMULPD_RZ_SAE: Multiply Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULPD.RZ_SAE zmm zmm k zmm -// VMULPD.RZ_SAE zmm zmm zmm -func VMULPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VMULPD_RZ_SAE_Z: Multiply Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULPD.RZ_SAE.Z zmm zmm k zmm -func VMULPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMULPD_Z: Multiply Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULPD.Z m128 xmm k xmm -// VMULPD.Z m256 ymm k ymm -// VMULPD.Z xmm xmm k xmm -// VMULPD.Z ymm ymm k ymm -// VMULPD.Z m512 zmm k zmm -// VMULPD.Z zmm zmm k zmm -func VMULPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VMULPS: Multiply Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VMULPS m128 xmm xmm -// VMULPS m256 ymm ymm -// VMULPS xmm xmm xmm -// VMULPS ymm ymm ymm -// VMULPS m128 xmm k xmm -// VMULPS m256 ymm k ymm -// VMULPS xmm xmm k xmm -// VMULPS ymm ymm k ymm -// VMULPS m512 zmm k zmm -// VMULPS m512 zmm zmm -// VMULPS zmm zmm k zmm -// VMULPS zmm zmm zmm -func VMULPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{}, ops) -} - -// VMULPS_BCST: Multiply Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VMULPS.BCST m32 xmm k xmm -// VMULPS.BCST m32 xmm xmm -// VMULPS.BCST m32 ymm k ymm -// VMULPS.BCST m32 ymm ymm -// VMULPS.BCST m32 zmm k zmm -// VMULPS.BCST m32 zmm zmm -func VMULPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VMULPS_BCST_Z: Multiply Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VMULPS.BCST.Z m32 xmm k xmm -// VMULPS.BCST.Z m32 ymm k ymm -// VMULPS.BCST.Z m32 zmm k zmm -func VMULPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VMULPS_RD_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULPS.RD_SAE zmm zmm k zmm -// VMULPS.RD_SAE zmm zmm zmm -func VMULPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VMULPS_RD_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPS.RD_SAE.Z zmm zmm k zmm -func VMULPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMULPS_RN_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULPS.RN_SAE zmm zmm k zmm -// VMULPS.RN_SAE zmm zmm zmm -func VMULPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VMULPS_RN_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULPS.RN_SAE.Z zmm zmm k zmm -func VMULPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMULPS_RU_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULPS.RU_SAE zmm zmm k zmm -// VMULPS.RU_SAE zmm zmm zmm -func VMULPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VMULPS_RU_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULPS.RU_SAE.Z zmm zmm k zmm -func VMULPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMULPS_RZ_SAE: Multiply Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULPS.RZ_SAE zmm zmm k zmm -// VMULPS.RZ_SAE zmm zmm zmm -func VMULPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VMULPS_RZ_SAE_Z: Multiply Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULPS.RZ_SAE.Z zmm zmm k zmm -func VMULPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VMULPS_Z: Multiply Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULPS.Z m128 xmm k xmm -// VMULPS.Z m256 ymm k ymm -// VMULPS.Z xmm xmm k xmm -// VMULPS.Z ymm ymm k ymm -// VMULPS.Z m512 zmm k zmm -// VMULPS.Z zmm zmm k zmm -func VMULPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VMULSD: Multiply Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VMULSD m64 xmm xmm -// VMULSD xmm xmm xmm -// VMULSD m64 xmm k xmm -// VMULSD xmm xmm k xmm -func VMULSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{}, ops) -} - -// VMULSD_RD_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULSD.RD_SAE xmm xmm k xmm -// VMULSD.RD_SAE xmm xmm xmm -func VMULSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VMULSD_RD_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSD.RD_SAE.Z xmm xmm k xmm -func VMULSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMULSD_RN_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULSD.RN_SAE xmm xmm k xmm -// VMULSD.RN_SAE xmm xmm xmm -func VMULSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VMULSD_RN_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULSD.RN_SAE.Z xmm xmm k xmm -func VMULSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMULSD_RU_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULSD.RU_SAE xmm xmm k xmm -// VMULSD.RU_SAE xmm xmm xmm -func VMULSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VMULSD_RU_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSD.RU_SAE.Z xmm xmm k xmm -func VMULSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMULSD_RZ_SAE: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULSD.RZ_SAE xmm xmm k xmm -// VMULSD.RZ_SAE xmm xmm xmm -func VMULSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VMULSD_RZ_SAE_Z: Multiply Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULSD.RZ_SAE.Z xmm xmm k xmm -func VMULSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMULSD_Z: Multiply Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULSD.Z m64 xmm k xmm -// VMULSD.Z xmm xmm k xmm -func VMULSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VMULSS: Multiply Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VMULSS m32 xmm xmm -// VMULSS xmm xmm xmm -// VMULSS m32 xmm k xmm -// VMULSS xmm xmm k xmm -func VMULSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{}, ops) -} - -// VMULSS_RD_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VMULSS.RD_SAE xmm xmm k xmm -// VMULSS.RD_SAE xmm xmm xmm -func VMULSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VMULSS_RD_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSS.RD_SAE.Z xmm xmm k xmm -func VMULSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMULSS_RN_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VMULSS.RN_SAE xmm xmm k xmm -// VMULSS.RN_SAE xmm xmm xmm -func VMULSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VMULSS_RN_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VMULSS.RN_SAE.Z xmm xmm k xmm -func VMULSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMULSS_RU_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VMULSS.RU_SAE xmm xmm k xmm -// VMULSS.RU_SAE xmm xmm xmm -func VMULSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VMULSS_RU_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VMULSS.RU_SAE.Z xmm xmm k xmm -func VMULSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMULSS_RZ_SAE: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VMULSS.RZ_SAE xmm xmm k xmm -// VMULSS.RZ_SAE xmm xmm xmm -func VMULSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VMULSS_RZ_SAE_Z: Multiply Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VMULSS.RZ_SAE.Z xmm xmm k xmm -func VMULSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VMULSS_Z: Multiply Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VMULSS.Z m32 xmm k xmm -// VMULSS.Z xmm xmm k xmm -func VMULSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVMULSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VORPD: Bitwise Logical OR of Double-Precision Floating-Point Values. -// -// Forms: -// -// VORPD m128 xmm xmm -// VORPD m256 ymm ymm -// VORPD xmm xmm xmm -// VORPD ymm ymm ymm -// VORPD m128 xmm k xmm -// VORPD m256 ymm k ymm -// VORPD xmm xmm k xmm -// VORPD ymm ymm k ymm -// VORPD m512 zmm k zmm -// VORPD m512 zmm zmm -// VORPD zmm zmm k zmm -// VORPD zmm zmm zmm -func VORPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVORPD.Forms(), sffxs{}, ops) -} - -// VORPD_BCST: Bitwise Logical OR of Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VORPD.BCST m64 xmm k xmm -// VORPD.BCST m64 xmm xmm -// VORPD.BCST m64 ymm k ymm -// VORPD.BCST m64 ymm ymm -// VORPD.BCST m64 zmm k zmm -// VORPD.BCST m64 zmm zmm -func VORPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVORPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VORPD_BCST_Z: Bitwise Logical OR of Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VORPD.BCST.Z m64 xmm k xmm -// VORPD.BCST.Z m64 ymm k ymm -// VORPD.BCST.Z m64 zmm k zmm -func VORPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVORPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VORPD_Z: Bitwise Logical OR of Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VORPD.Z m128 xmm k xmm -// VORPD.Z m256 ymm k ymm -// VORPD.Z xmm xmm k xmm -// VORPD.Z ymm ymm k ymm -// VORPD.Z m512 zmm k zmm -// VORPD.Z zmm zmm k zmm -func VORPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVORPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VORPS: Bitwise Logical OR of Single-Precision Floating-Point Values. -// -// Forms: -// -// VORPS m128 xmm xmm -// VORPS m256 ymm ymm -// VORPS xmm xmm xmm -// VORPS ymm ymm ymm -// VORPS m128 xmm k xmm -// VORPS m256 ymm k ymm -// VORPS xmm xmm k xmm -// VORPS ymm ymm k ymm -// VORPS m512 zmm k zmm -// VORPS m512 zmm zmm -// VORPS zmm zmm k zmm -// VORPS zmm zmm zmm -func VORPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVORPS.Forms(), sffxs{}, ops) -} - -// VORPS_BCST: Bitwise Logical OR of Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VORPS.BCST m32 xmm k xmm -// VORPS.BCST m32 xmm xmm -// VORPS.BCST m32 ymm k ymm -// VORPS.BCST m32 ymm ymm -// VORPS.BCST m32 zmm k zmm -// VORPS.BCST m32 zmm zmm -func VORPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVORPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VORPS_BCST_Z: Bitwise Logical OR of Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VORPS.BCST.Z m32 xmm k xmm -// VORPS.BCST.Z m32 ymm k ymm -// VORPS.BCST.Z m32 zmm k zmm -func VORPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVORPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VORPS_Z: Bitwise Logical OR of Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VORPS.Z m128 xmm k xmm -// VORPS.Z m256 ymm k ymm -// VORPS.Z xmm xmm k xmm -// VORPS.Z ymm ymm k ymm -// VORPS.Z m512 zmm k zmm -// VORPS.Z zmm zmm k zmm -func VORPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVORPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPABSB: Packed Absolute Value of Byte Integers. -// -// Forms: -// -// VPABSB m256 ymm -// VPABSB ymm ymm -// VPABSB m128 xmm -// VPABSB xmm xmm -// VPABSB m128 k xmm -// VPABSB m256 k ymm -// VPABSB xmm k xmm -// VPABSB ymm k ymm -// VPABSB m512 k zmm -// VPABSB m512 zmm -// VPABSB zmm k zmm -// VPABSB zmm zmm -func VPABSB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSB.Forms(), sffxs{}, ops) -} - -// VPABSB_Z: Packed Absolute Value of Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPABSB.Z m128 k xmm -// VPABSB.Z m256 k ymm -// VPABSB.Z xmm k xmm -// VPABSB.Z ymm k ymm -// VPABSB.Z m512 k zmm -// VPABSB.Z zmm k zmm -func VPABSB_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPABSD: Packed Absolute Value of Doubleword Integers. -// -// Forms: -// -// VPABSD m256 ymm -// VPABSD ymm ymm -// VPABSD m128 xmm -// VPABSD xmm xmm -// VPABSD m128 k xmm -// VPABSD m256 k ymm -// VPABSD xmm k xmm -// VPABSD ymm k ymm -// VPABSD m512 k zmm -// VPABSD m512 zmm -// VPABSD zmm k zmm -// VPABSD zmm zmm -func VPABSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSD.Forms(), sffxs{}, ops) -} - -// VPABSD_BCST: Packed Absolute Value of Doubleword Integers (Broadcast). -// -// Forms: -// -// VPABSD.BCST m32 k xmm -// VPABSD.BCST m32 k ymm -// VPABSD.BCST m32 xmm -// VPABSD.BCST m32 ymm -// VPABSD.BCST m32 k zmm -// VPABSD.BCST m32 zmm -func VPABSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPABSD_BCST_Z: Packed Absolute Value of Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPABSD.BCST.Z m32 k xmm -// VPABSD.BCST.Z m32 k ymm -// VPABSD.BCST.Z m32 k zmm -func VPABSD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VPABSD_Z: Packed Absolute Value of Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPABSD.Z m128 k xmm -// VPABSD.Z m256 k ymm -// VPABSD.Z xmm k xmm -// VPABSD.Z ymm k ymm -// VPABSD.Z m512 k zmm -// VPABSD.Z zmm k zmm -func VPABSD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPABSQ: Packed Absolute Value of Quadword Integers. -// -// Forms: -// -// VPABSQ m128 k xmm -// VPABSQ m128 xmm -// VPABSQ m256 k ymm -// VPABSQ m256 ymm -// VPABSQ xmm k xmm -// VPABSQ xmm xmm -// VPABSQ ymm k ymm -// VPABSQ ymm ymm -// VPABSQ m512 k zmm -// VPABSQ m512 zmm -// VPABSQ zmm k zmm -// VPABSQ zmm zmm -func VPABSQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSQ.Forms(), sffxs{}, ops) -} - -// VPABSQ_BCST: Packed Absolute Value of Quadword Integers (Broadcast). -// -// Forms: -// -// VPABSQ.BCST m64 k xmm -// VPABSQ.BCST m64 k ymm -// VPABSQ.BCST m64 xmm -// VPABSQ.BCST m64 ymm -// VPABSQ.BCST m64 k zmm -// VPABSQ.BCST m64 zmm -func VPABSQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPABSQ_BCST_Z: Packed Absolute Value of Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPABSQ.BCST.Z m64 k xmm -// VPABSQ.BCST.Z m64 k ymm -// VPABSQ.BCST.Z m64 k zmm -func VPABSQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VPABSQ_Z: Packed Absolute Value of Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPABSQ.Z m128 k xmm -// VPABSQ.Z m256 k ymm -// VPABSQ.Z xmm k xmm -// VPABSQ.Z ymm k ymm -// VPABSQ.Z m512 k zmm -// VPABSQ.Z zmm k zmm -func VPABSQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPABSW: Packed Absolute Value of Word Integers. -// -// Forms: -// -// VPABSW m256 ymm -// VPABSW ymm ymm -// VPABSW m128 xmm -// VPABSW xmm xmm -// VPABSW m128 k xmm -// VPABSW m256 k ymm -// VPABSW xmm k xmm -// VPABSW ymm k ymm -// VPABSW m512 k zmm -// VPABSW m512 zmm -// VPABSW zmm k zmm -// VPABSW zmm zmm -func VPABSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSW.Forms(), sffxs{}, ops) -} - -// VPABSW_Z: Packed Absolute Value of Word Integers (Zeroing Masking). -// -// Forms: -// -// VPABSW.Z m128 k xmm -// VPABSW.Z m256 k ymm -// VPABSW.Z xmm k xmm -// VPABSW.Z ymm k ymm -// VPABSW.Z m512 k zmm -// VPABSW.Z zmm k zmm -func VPABSW_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPABSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPACKSSDW: Pack Doublewords into Words with Signed Saturation. -// -// Forms: -// -// VPACKSSDW m256 ymm ymm -// VPACKSSDW ymm ymm ymm -// VPACKSSDW m128 xmm xmm -// VPACKSSDW xmm xmm xmm -// VPACKSSDW m128 xmm k xmm -// VPACKSSDW m256 ymm k ymm -// VPACKSSDW xmm xmm k xmm -// VPACKSSDW ymm ymm k ymm -// VPACKSSDW m512 zmm k zmm -// VPACKSSDW m512 zmm zmm -// VPACKSSDW zmm zmm k zmm -// VPACKSSDW zmm zmm zmm -func VPACKSSDW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKSSDW.Forms(), sffxs{}, ops) -} - -// VPACKSSDW_BCST: Pack Doublewords into Words with Signed Saturation (Broadcast). -// -// Forms: -// -// VPACKSSDW.BCST m32 xmm k xmm -// VPACKSSDW.BCST m32 xmm xmm -// VPACKSSDW.BCST m32 ymm k ymm -// VPACKSSDW.BCST m32 ymm ymm -// VPACKSSDW.BCST m32 zmm k zmm -// VPACKSSDW.BCST m32 zmm zmm -func VPACKSSDW_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKSSDW.Forms(), sffxs{sffxBCST}, ops) -} - -// VPACKSSDW_BCST_Z: Pack Doublewords into Words with Signed Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPACKSSDW.BCST.Z m32 xmm k xmm -// VPACKSSDW.BCST.Z m32 ymm k ymm -// VPACKSSDW.BCST.Z m32 zmm k zmm -func VPACKSSDW_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKSSDW.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPACKSSDW_Z: Pack Doublewords into Words with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKSSDW.Z m128 xmm k xmm -// VPACKSSDW.Z m256 ymm k ymm -// VPACKSSDW.Z xmm xmm k xmm -// VPACKSSDW.Z ymm ymm k ymm -// VPACKSSDW.Z m512 zmm k zmm -// VPACKSSDW.Z zmm zmm k zmm -func VPACKSSDW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKSSDW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPACKSSWB: Pack Words into Bytes with Signed Saturation. -// -// Forms: -// -// VPACKSSWB m256 ymm ymm -// VPACKSSWB ymm ymm ymm -// VPACKSSWB m128 xmm xmm -// VPACKSSWB xmm xmm xmm -// VPACKSSWB m128 xmm k xmm -// VPACKSSWB m256 ymm k ymm -// VPACKSSWB xmm xmm k xmm -// VPACKSSWB ymm ymm k ymm -// VPACKSSWB m512 zmm k zmm -// VPACKSSWB m512 zmm zmm -// VPACKSSWB zmm zmm k zmm -// VPACKSSWB zmm zmm zmm -func VPACKSSWB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKSSWB.Forms(), sffxs{}, ops) -} - -// VPACKSSWB_Z: Pack Words into Bytes with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKSSWB.Z m128 xmm k xmm -// VPACKSSWB.Z m256 ymm k ymm -// VPACKSSWB.Z xmm xmm k xmm -// VPACKSSWB.Z ymm ymm k ymm -// VPACKSSWB.Z m512 zmm k zmm -// VPACKSSWB.Z zmm zmm k zmm -func VPACKSSWB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKSSWB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPACKUSDW: Pack Doublewords into Words with Unsigned Saturation. -// -// Forms: -// -// VPACKUSDW m256 ymm ymm -// VPACKUSDW ymm ymm ymm -// VPACKUSDW m128 xmm xmm -// VPACKUSDW xmm xmm xmm -// VPACKUSDW m128 xmm k xmm -// VPACKUSDW m256 ymm k ymm -// VPACKUSDW xmm xmm k xmm -// VPACKUSDW ymm ymm k ymm -// VPACKUSDW m512 zmm k zmm -// VPACKUSDW m512 zmm zmm -// VPACKUSDW zmm zmm k zmm -// VPACKUSDW zmm zmm zmm -func VPACKUSDW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKUSDW.Forms(), sffxs{}, ops) -} - -// VPACKUSDW_BCST: Pack Doublewords into Words with Unsigned Saturation (Broadcast). -// -// Forms: -// -// VPACKUSDW.BCST m32 xmm k xmm -// VPACKUSDW.BCST m32 xmm xmm -// VPACKUSDW.BCST m32 ymm k ymm -// VPACKUSDW.BCST m32 ymm ymm -// VPACKUSDW.BCST m32 zmm k zmm -// VPACKUSDW.BCST m32 zmm zmm -func VPACKUSDW_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKUSDW.Forms(), sffxs{sffxBCST}, ops) -} - -// VPACKUSDW_BCST_Z: Pack Doublewords into Words with Unsigned Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPACKUSDW.BCST.Z m32 xmm k xmm -// VPACKUSDW.BCST.Z m32 ymm k ymm -// VPACKUSDW.BCST.Z m32 zmm k zmm -func VPACKUSDW_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKUSDW.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPACKUSDW_Z: Pack Doublewords into Words with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKUSDW.Z m128 xmm k xmm -// VPACKUSDW.Z m256 ymm k ymm -// VPACKUSDW.Z xmm xmm k xmm -// VPACKUSDW.Z ymm ymm k ymm -// VPACKUSDW.Z m512 zmm k zmm -// VPACKUSDW.Z zmm zmm k zmm -func VPACKUSDW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKUSDW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPACKUSWB: Pack Words into Bytes with Unsigned Saturation. -// -// Forms: -// -// VPACKUSWB m256 ymm ymm -// VPACKUSWB ymm ymm ymm -// VPACKUSWB m128 xmm xmm -// VPACKUSWB xmm xmm xmm -// VPACKUSWB m128 xmm k xmm -// VPACKUSWB m256 ymm k ymm -// VPACKUSWB xmm xmm k xmm -// VPACKUSWB ymm ymm k ymm -// VPACKUSWB m512 zmm k zmm -// VPACKUSWB m512 zmm zmm -// VPACKUSWB zmm zmm k zmm -// VPACKUSWB zmm zmm zmm -func VPACKUSWB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKUSWB.Forms(), sffxs{}, ops) -} - -// VPACKUSWB_Z: Pack Words into Bytes with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPACKUSWB.Z m128 xmm k xmm -// VPACKUSWB.Z m256 ymm k ymm -// VPACKUSWB.Z xmm xmm k xmm -// VPACKUSWB.Z ymm ymm k ymm -// VPACKUSWB.Z m512 zmm k zmm -// VPACKUSWB.Z zmm zmm k zmm -func VPACKUSWB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPACKUSWB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPADDB: Add Packed Byte Integers. -// -// Forms: -// -// VPADDB m256 ymm ymm -// VPADDB ymm ymm ymm -// VPADDB m128 xmm xmm -// VPADDB xmm xmm xmm -// VPADDB m128 xmm k xmm -// VPADDB m256 ymm k ymm -// VPADDB xmm xmm k xmm -// VPADDB ymm ymm k ymm -// VPADDB m512 zmm k zmm -// VPADDB m512 zmm zmm -// VPADDB zmm zmm k zmm -// VPADDB zmm zmm zmm -func VPADDB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDB.Forms(), sffxs{}, ops) -} - -// VPADDB_Z: Add Packed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPADDB.Z m128 xmm k xmm -// VPADDB.Z m256 ymm k ymm -// VPADDB.Z xmm xmm k xmm -// VPADDB.Z ymm ymm k ymm -// VPADDB.Z m512 zmm k zmm -// VPADDB.Z zmm zmm k zmm -func VPADDB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPADDD: Add Packed Doubleword Integers. -// -// Forms: -// -// VPADDD m256 ymm ymm -// VPADDD ymm ymm ymm -// VPADDD m128 xmm xmm -// VPADDD xmm xmm xmm -// VPADDD m128 xmm k xmm -// VPADDD m256 ymm k ymm -// VPADDD xmm xmm k xmm -// VPADDD ymm ymm k ymm -// VPADDD m512 zmm k zmm -// VPADDD m512 zmm zmm -// VPADDD zmm zmm k zmm -// VPADDD zmm zmm zmm -func VPADDD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDD.Forms(), sffxs{}, ops) -} - -// VPADDD_BCST: Add Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPADDD.BCST m32 xmm k xmm -// VPADDD.BCST m32 xmm xmm -// VPADDD.BCST m32 ymm k ymm -// VPADDD.BCST m32 ymm ymm -// VPADDD.BCST m32 zmm k zmm -// VPADDD.BCST m32 zmm zmm -func VPADDD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPADDD_BCST_Z: Add Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPADDD.BCST.Z m32 xmm k xmm -// VPADDD.BCST.Z m32 ymm k ymm -// VPADDD.BCST.Z m32 zmm k zmm -func VPADDD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPADDD_Z: Add Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPADDD.Z m128 xmm k xmm -// VPADDD.Z m256 ymm k ymm -// VPADDD.Z xmm xmm k xmm -// VPADDD.Z ymm ymm k ymm -// VPADDD.Z m512 zmm k zmm -// VPADDD.Z zmm zmm k zmm -func VPADDD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPADDQ: Add Packed Quadword Integers. -// -// Forms: -// -// VPADDQ m256 ymm ymm -// VPADDQ ymm ymm ymm -// VPADDQ m128 xmm xmm -// VPADDQ xmm xmm xmm -// VPADDQ m128 xmm k xmm -// VPADDQ m256 ymm k ymm -// VPADDQ xmm xmm k xmm -// VPADDQ ymm ymm k ymm -// VPADDQ m512 zmm k zmm -// VPADDQ m512 zmm zmm -// VPADDQ zmm zmm k zmm -// VPADDQ zmm zmm zmm -func VPADDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDQ.Forms(), sffxs{}, ops) -} - -// VPADDQ_BCST: Add Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPADDQ.BCST m64 xmm k xmm -// VPADDQ.BCST m64 xmm xmm -// VPADDQ.BCST m64 ymm k ymm -// VPADDQ.BCST m64 ymm ymm -// VPADDQ.BCST m64 zmm k zmm -// VPADDQ.BCST m64 zmm zmm -func VPADDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPADDQ_BCST_Z: Add Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPADDQ.BCST.Z m64 xmm k xmm -// VPADDQ.BCST.Z m64 ymm k ymm -// VPADDQ.BCST.Z m64 zmm k zmm -func VPADDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPADDQ_Z: Add Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPADDQ.Z m128 xmm k xmm -// VPADDQ.Z m256 ymm k ymm -// VPADDQ.Z xmm xmm k xmm -// VPADDQ.Z ymm ymm k ymm -// VPADDQ.Z m512 zmm k zmm -// VPADDQ.Z zmm zmm k zmm -func VPADDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPADDSB: Add Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// VPADDSB m256 ymm ymm -// VPADDSB ymm ymm ymm -// VPADDSB m128 xmm xmm -// VPADDSB xmm xmm xmm -// VPADDSB m128 xmm k xmm -// VPADDSB m256 ymm k ymm -// VPADDSB xmm xmm k xmm -// VPADDSB ymm ymm k ymm -// VPADDSB m512 zmm k zmm -// VPADDSB m512 zmm zmm -// VPADDSB zmm zmm k zmm -// VPADDSB zmm zmm zmm -func VPADDSB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDSB.Forms(), sffxs{}, ops) -} - -// VPADDSB_Z: Add Packed Signed Byte Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDSB.Z m128 xmm k xmm -// VPADDSB.Z m256 ymm k ymm -// VPADDSB.Z xmm xmm k xmm -// VPADDSB.Z ymm ymm k ymm -// VPADDSB.Z m512 zmm k zmm -// VPADDSB.Z zmm zmm k zmm -func VPADDSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPADDSW: Add Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPADDSW m256 ymm ymm -// VPADDSW ymm ymm ymm -// VPADDSW m128 xmm xmm -// VPADDSW xmm xmm xmm -// VPADDSW m128 xmm k xmm -// VPADDSW m256 ymm k ymm -// VPADDSW xmm xmm k xmm -// VPADDSW ymm ymm k ymm -// VPADDSW m512 zmm k zmm -// VPADDSW m512 zmm zmm -// VPADDSW zmm zmm k zmm -// VPADDSW zmm zmm zmm -func VPADDSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDSW.Forms(), sffxs{}, ops) -} - -// VPADDSW_Z: Add Packed Signed Word Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDSW.Z m128 xmm k xmm -// VPADDSW.Z m256 ymm k ymm -// VPADDSW.Z xmm xmm k xmm -// VPADDSW.Z ymm ymm k ymm -// VPADDSW.Z m512 zmm k zmm -// VPADDSW.Z zmm zmm k zmm -func VPADDSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPADDUSB: Add Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// VPADDUSB m256 ymm ymm -// VPADDUSB ymm ymm ymm -// VPADDUSB m128 xmm xmm -// VPADDUSB xmm xmm xmm -// VPADDUSB m128 xmm k xmm -// VPADDUSB m256 ymm k ymm -// VPADDUSB xmm xmm k xmm -// VPADDUSB ymm ymm k ymm -// VPADDUSB m512 zmm k zmm -// VPADDUSB m512 zmm zmm -// VPADDUSB zmm zmm k zmm -// VPADDUSB zmm zmm zmm -func VPADDUSB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDUSB.Forms(), sffxs{}, ops) -} - -// VPADDUSB_Z: Add Packed Unsigned Byte Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDUSB.Z m128 xmm k xmm -// VPADDUSB.Z m256 ymm k ymm -// VPADDUSB.Z xmm xmm k xmm -// VPADDUSB.Z ymm ymm k ymm -// VPADDUSB.Z m512 zmm k zmm -// VPADDUSB.Z zmm zmm k zmm -func VPADDUSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDUSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPADDUSW: Add Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// VPADDUSW m256 ymm ymm -// VPADDUSW ymm ymm ymm -// VPADDUSW m128 xmm xmm -// VPADDUSW xmm xmm xmm -// VPADDUSW m128 xmm k xmm -// VPADDUSW m256 ymm k ymm -// VPADDUSW xmm xmm k xmm -// VPADDUSW ymm ymm k ymm -// VPADDUSW m512 zmm k zmm -// VPADDUSW m512 zmm zmm -// VPADDUSW zmm zmm k zmm -// VPADDUSW zmm zmm zmm -func VPADDUSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDUSW.Forms(), sffxs{}, ops) -} - -// VPADDUSW_Z: Add Packed Unsigned Word Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPADDUSW.Z m128 xmm k xmm -// VPADDUSW.Z m256 ymm k ymm -// VPADDUSW.Z xmm xmm k xmm -// VPADDUSW.Z ymm ymm k ymm -// VPADDUSW.Z m512 zmm k zmm -// VPADDUSW.Z zmm zmm k zmm -func VPADDUSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDUSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPADDW: Add Packed Word Integers. -// -// Forms: -// -// VPADDW m256 ymm ymm -// VPADDW ymm ymm ymm -// VPADDW m128 xmm xmm -// VPADDW xmm xmm xmm -// VPADDW m128 xmm k xmm -// VPADDW m256 ymm k ymm -// VPADDW xmm xmm k xmm -// VPADDW ymm ymm k ymm -// VPADDW m512 zmm k zmm -// VPADDW m512 zmm zmm -// VPADDW zmm zmm k zmm -// VPADDW zmm zmm zmm -func VPADDW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDW.Forms(), sffxs{}, ops) -} - -// VPADDW_Z: Add Packed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPADDW.Z m128 xmm k xmm -// VPADDW.Z m256 ymm k ymm -// VPADDW.Z xmm xmm k xmm -// VPADDW.Z ymm ymm k ymm -// VPADDW.Z m512 zmm k zmm -// VPADDW.Z zmm zmm k zmm -func VPADDW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPADDW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPALIGNR: Packed Align Right. -// -// Forms: -// -// VPALIGNR imm8 m256 ymm ymm -// VPALIGNR imm8 ymm ymm ymm -// VPALIGNR imm8 m128 xmm xmm -// VPALIGNR imm8 xmm xmm xmm -// VPALIGNR imm8 m128 xmm k xmm -// VPALIGNR imm8 m256 ymm k ymm -// VPALIGNR imm8 xmm xmm k xmm -// VPALIGNR imm8 ymm ymm k ymm -// VPALIGNR imm8 m512 zmm k zmm -// VPALIGNR imm8 m512 zmm zmm -// VPALIGNR imm8 zmm zmm k zmm -// VPALIGNR imm8 zmm zmm zmm -func VPALIGNR(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPALIGNR.Forms(), sffxs{}, ops) -} - -// VPALIGNR_Z: Packed Align Right (Zeroing Masking). -// -// Forms: -// -// VPALIGNR.Z imm8 m128 xmm k xmm -// VPALIGNR.Z imm8 m256 ymm k ymm -// VPALIGNR.Z imm8 xmm xmm k xmm -// VPALIGNR.Z imm8 ymm ymm k ymm -// VPALIGNR.Z imm8 m512 zmm k zmm -// VPALIGNR.Z imm8 zmm zmm k zmm -func VPALIGNR_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPALIGNR.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VPAND: Packed Bitwise Logical AND. -// -// Forms: -// -// VPAND m256 ymm ymm -// VPAND ymm ymm ymm -// VPAND m128 xmm xmm -// VPAND xmm xmm xmm -func VPAND(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPAND.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPANDD: Bitwise Logical AND of Packed Doubleword Integers. -// -// Forms: -// -// VPANDD m128 xmm k xmm -// VPANDD m128 xmm xmm -// VPANDD m256 ymm k ymm -// VPANDD m256 ymm ymm -// VPANDD xmm xmm k xmm -// VPANDD xmm xmm xmm -// VPANDD ymm ymm k ymm -// VPANDD ymm ymm ymm -// VPANDD m512 zmm k zmm -// VPANDD m512 zmm zmm -// VPANDD zmm zmm k zmm -// VPANDD zmm zmm zmm -func VPANDD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDD.Forms(), sffxs{}, ops) -} - -// VPANDD_BCST: Bitwise Logical AND of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPANDD.BCST m32 xmm k xmm -// VPANDD.BCST m32 xmm xmm -// VPANDD.BCST m32 ymm k ymm -// VPANDD.BCST m32 ymm ymm -// VPANDD.BCST m32 zmm k zmm -// VPANDD.BCST m32 zmm zmm -func VPANDD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPANDD_BCST_Z: Bitwise Logical AND of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDD.BCST.Z m32 xmm k xmm -// VPANDD.BCST.Z m32 ymm k ymm -// VPANDD.BCST.Z m32 zmm k zmm -func VPANDD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPANDD_Z: Bitwise Logical AND of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDD.Z m128 xmm k xmm -// VPANDD.Z m256 ymm k ymm -// VPANDD.Z xmm xmm k xmm -// VPANDD.Z ymm ymm k ymm -// VPANDD.Z m512 zmm k zmm -// VPANDD.Z zmm zmm k zmm -func VPANDD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPANDN: Packed Bitwise Logical AND NOT. -// -// Forms: -// -// VPANDN m256 ymm ymm -// VPANDN ymm ymm ymm -// VPANDN m128 xmm xmm -// VPANDN xmm xmm xmm -func VPANDN(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDN.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPANDND: Bitwise Logical AND NOT of Packed Doubleword Integers. -// -// Forms: -// -// VPANDND m128 xmm k xmm -// VPANDND m128 xmm xmm -// VPANDND m256 ymm k ymm -// VPANDND m256 ymm ymm -// VPANDND xmm xmm k xmm -// VPANDND xmm xmm xmm -// VPANDND ymm ymm k ymm -// VPANDND ymm ymm ymm -// VPANDND m512 zmm k zmm -// VPANDND m512 zmm zmm -// VPANDND zmm zmm k zmm -// VPANDND zmm zmm zmm -func VPANDND(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDND.Forms(), sffxs{}, ops) -} - -// VPANDND_BCST: Bitwise Logical AND NOT of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPANDND.BCST m32 xmm k xmm -// VPANDND.BCST m32 xmm xmm -// VPANDND.BCST m32 ymm k ymm -// VPANDND.BCST m32 ymm ymm -// VPANDND.BCST m32 zmm k zmm -// VPANDND.BCST m32 zmm zmm -func VPANDND_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDND.Forms(), sffxs{sffxBCST}, ops) -} - -// VPANDND_BCST_Z: Bitwise Logical AND NOT of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDND.BCST.Z m32 xmm k xmm -// VPANDND.BCST.Z m32 ymm k ymm -// VPANDND.BCST.Z m32 zmm k zmm -func VPANDND_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDND.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPANDND_Z: Bitwise Logical AND NOT of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDND.Z m128 xmm k xmm -// VPANDND.Z m256 ymm k ymm -// VPANDND.Z xmm xmm k xmm -// VPANDND.Z ymm ymm k ymm -// VPANDND.Z m512 zmm k zmm -// VPANDND.Z zmm zmm k zmm -func VPANDND_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDND.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPANDNQ: Bitwise Logical AND NOT of Packed Quadword Integers. -// -// Forms: -// -// VPANDNQ m128 xmm k xmm -// VPANDNQ m128 xmm xmm -// VPANDNQ m256 ymm k ymm -// VPANDNQ m256 ymm ymm -// VPANDNQ xmm xmm k xmm -// VPANDNQ xmm xmm xmm -// VPANDNQ ymm ymm k ymm -// VPANDNQ ymm ymm ymm -// VPANDNQ m512 zmm k zmm -// VPANDNQ m512 zmm zmm -// VPANDNQ zmm zmm k zmm -// VPANDNQ zmm zmm zmm -func VPANDNQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDNQ.Forms(), sffxs{}, ops) -} - -// VPANDNQ_BCST: Bitwise Logical AND NOT of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPANDNQ.BCST m64 xmm k xmm -// VPANDNQ.BCST m64 xmm xmm -// VPANDNQ.BCST m64 ymm k ymm -// VPANDNQ.BCST m64 ymm ymm -// VPANDNQ.BCST m64 zmm k zmm -// VPANDNQ.BCST m64 zmm zmm -func VPANDNQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDNQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPANDNQ_BCST_Z: Bitwise Logical AND NOT of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDNQ.BCST.Z m64 xmm k xmm -// VPANDNQ.BCST.Z m64 ymm k ymm -// VPANDNQ.BCST.Z m64 zmm k zmm -func VPANDNQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDNQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPANDNQ_Z: Bitwise Logical AND NOT of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDNQ.Z m128 xmm k xmm -// VPANDNQ.Z m256 ymm k ymm -// VPANDNQ.Z xmm xmm k xmm -// VPANDNQ.Z ymm ymm k ymm -// VPANDNQ.Z m512 zmm k zmm -// VPANDNQ.Z zmm zmm k zmm -func VPANDNQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDNQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPANDQ: Bitwise Logical AND of Packed Quadword Integers. -// -// Forms: -// -// VPANDQ m128 xmm k xmm -// VPANDQ m128 xmm xmm -// VPANDQ m256 ymm k ymm -// VPANDQ m256 ymm ymm -// VPANDQ xmm xmm k xmm -// VPANDQ xmm xmm xmm -// VPANDQ ymm ymm k ymm -// VPANDQ ymm ymm ymm -// VPANDQ m512 zmm k zmm -// VPANDQ m512 zmm zmm -// VPANDQ zmm zmm k zmm -// VPANDQ zmm zmm zmm -func VPANDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDQ.Forms(), sffxs{}, ops) -} - -// VPANDQ_BCST: Bitwise Logical AND of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPANDQ.BCST m64 xmm k xmm -// VPANDQ.BCST m64 xmm xmm -// VPANDQ.BCST m64 ymm k ymm -// VPANDQ.BCST m64 ymm ymm -// VPANDQ.BCST m64 zmm k zmm -// VPANDQ.BCST m64 zmm zmm -func VPANDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPANDQ_BCST_Z: Bitwise Logical AND of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPANDQ.BCST.Z m64 xmm k xmm -// VPANDQ.BCST.Z m64 ymm k ymm -// VPANDQ.BCST.Z m64 zmm k zmm -func VPANDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPANDQ_Z: Bitwise Logical AND of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPANDQ.Z m128 xmm k xmm -// VPANDQ.Z m256 ymm k ymm -// VPANDQ.Z xmm xmm k xmm -// VPANDQ.Z ymm ymm k ymm -// VPANDQ.Z m512 zmm k zmm -// VPANDQ.Z zmm zmm k zmm -func VPANDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPANDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPAVGB: Average Packed Byte Integers. -// -// Forms: -// -// VPAVGB m256 ymm ymm -// VPAVGB ymm ymm ymm -// VPAVGB m128 xmm xmm -// VPAVGB xmm xmm xmm -// VPAVGB m128 xmm k xmm -// VPAVGB m256 ymm k ymm -// VPAVGB xmm xmm k xmm -// VPAVGB ymm ymm k ymm -// VPAVGB m512 zmm k zmm -// VPAVGB m512 zmm zmm -// VPAVGB zmm zmm k zmm -// VPAVGB zmm zmm zmm -func VPAVGB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPAVGB.Forms(), sffxs{}, ops) -} - -// VPAVGB_Z: Average Packed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPAVGB.Z m128 xmm k xmm -// VPAVGB.Z m256 ymm k ymm -// VPAVGB.Z xmm xmm k xmm -// VPAVGB.Z ymm ymm k ymm -// VPAVGB.Z m512 zmm k zmm -// VPAVGB.Z zmm zmm k zmm -func VPAVGB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPAVGB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPAVGW: Average Packed Word Integers. -// -// Forms: -// -// VPAVGW m256 ymm ymm -// VPAVGW ymm ymm ymm -// VPAVGW m128 xmm xmm -// VPAVGW xmm xmm xmm -// VPAVGW m128 xmm k xmm -// VPAVGW m256 ymm k ymm -// VPAVGW xmm xmm k xmm -// VPAVGW ymm ymm k ymm -// VPAVGW m512 zmm k zmm -// VPAVGW m512 zmm zmm -// VPAVGW zmm zmm k zmm -// VPAVGW zmm zmm zmm -func VPAVGW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPAVGW.Forms(), sffxs{}, ops) -} - -// VPAVGW_Z: Average Packed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPAVGW.Z m128 xmm k xmm -// VPAVGW.Z m256 ymm k ymm -// VPAVGW.Z xmm xmm k xmm -// VPAVGW.Z ymm ymm k ymm -// VPAVGW.Z m512 zmm k zmm -// VPAVGW.Z zmm zmm k zmm -func VPAVGW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPAVGW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPBLENDD: Blend Packed Doublewords. -// -// Forms: -// -// VPBLENDD imm8 m128 xmm xmm -// VPBLENDD imm8 m256 ymm ymm -// VPBLENDD imm8 xmm xmm xmm -// VPBLENDD imm8 ymm ymm ymm -func VPBLENDD(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDD.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1}) -} - -// VPBLENDMB: Blend Byte Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMB m128 xmm k xmm -// VPBLENDMB m128 xmm xmm -// VPBLENDMB m256 ymm k ymm -// VPBLENDMB m256 ymm ymm -// VPBLENDMB xmm xmm k xmm -// VPBLENDMB xmm xmm xmm -// VPBLENDMB ymm ymm k ymm -// VPBLENDMB ymm ymm ymm -// VPBLENDMB m512 zmm k zmm -// VPBLENDMB m512 zmm zmm -// VPBLENDMB zmm zmm k zmm -// VPBLENDMB zmm zmm zmm -func VPBLENDMB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMB.Forms(), sffxs{}, ops) -} - -// VPBLENDMB_Z: Blend Byte Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMB.Z m128 xmm k xmm -// VPBLENDMB.Z m256 ymm k ymm -// VPBLENDMB.Z xmm xmm k xmm -// VPBLENDMB.Z ymm ymm k ymm -// VPBLENDMB.Z m512 zmm k zmm -// VPBLENDMB.Z zmm zmm k zmm -func VPBLENDMB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPBLENDMD: Blend Doubleword Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMD m128 xmm k xmm -// VPBLENDMD m128 xmm xmm -// VPBLENDMD m256 ymm k ymm -// VPBLENDMD m256 ymm ymm -// VPBLENDMD xmm xmm k xmm -// VPBLENDMD xmm xmm xmm -// VPBLENDMD ymm ymm k ymm -// VPBLENDMD ymm ymm ymm -// VPBLENDMD m512 zmm k zmm -// VPBLENDMD m512 zmm zmm -// VPBLENDMD zmm zmm k zmm -// VPBLENDMD zmm zmm zmm -func VPBLENDMD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMD.Forms(), sffxs{}, ops) -} - -// VPBLENDMD_BCST: Blend Doubleword Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VPBLENDMD.BCST m32 xmm k xmm -// VPBLENDMD.BCST m32 xmm xmm -// VPBLENDMD.BCST m32 ymm k ymm -// VPBLENDMD.BCST m32 ymm ymm -// VPBLENDMD.BCST m32 zmm k zmm -// VPBLENDMD.BCST m32 zmm zmm -func VPBLENDMD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPBLENDMD_BCST_Z: Blend Doubleword Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPBLENDMD.BCST.Z m32 xmm k xmm -// VPBLENDMD.BCST.Z m32 ymm k ymm -// VPBLENDMD.BCST.Z m32 zmm k zmm -func VPBLENDMD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPBLENDMD_Z: Blend Doubleword Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMD.Z m128 xmm k xmm -// VPBLENDMD.Z m256 ymm k ymm -// VPBLENDMD.Z xmm xmm k xmm -// VPBLENDMD.Z ymm ymm k ymm -// VPBLENDMD.Z m512 zmm k zmm -// VPBLENDMD.Z zmm zmm k zmm -func VPBLENDMD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPBLENDMQ: Blend Quadword Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMQ m128 xmm k xmm -// VPBLENDMQ m128 xmm xmm -// VPBLENDMQ m256 ymm k ymm -// VPBLENDMQ m256 ymm ymm -// VPBLENDMQ xmm xmm k xmm -// VPBLENDMQ xmm xmm xmm -// VPBLENDMQ ymm ymm k ymm -// VPBLENDMQ ymm ymm ymm -// VPBLENDMQ m512 zmm k zmm -// VPBLENDMQ m512 zmm zmm -// VPBLENDMQ zmm zmm k zmm -// VPBLENDMQ zmm zmm zmm -func VPBLENDMQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMQ.Forms(), sffxs{}, ops) -} - -// VPBLENDMQ_BCST: Blend Quadword Vectors Using an OpMask Control (Broadcast). -// -// Forms: -// -// VPBLENDMQ.BCST m64 xmm k xmm -// VPBLENDMQ.BCST m64 xmm xmm -// VPBLENDMQ.BCST m64 ymm k ymm -// VPBLENDMQ.BCST m64 ymm ymm -// VPBLENDMQ.BCST m64 zmm k zmm -// VPBLENDMQ.BCST m64 zmm zmm -func VPBLENDMQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPBLENDMQ_BCST_Z: Blend Quadword Vectors Using an OpMask Control (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPBLENDMQ.BCST.Z m64 xmm k xmm -// VPBLENDMQ.BCST.Z m64 ymm k ymm -// VPBLENDMQ.BCST.Z m64 zmm k zmm -func VPBLENDMQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPBLENDMQ_Z: Blend Quadword Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMQ.Z m128 xmm k xmm -// VPBLENDMQ.Z m256 ymm k ymm -// VPBLENDMQ.Z xmm xmm k xmm -// VPBLENDMQ.Z ymm ymm k ymm -// VPBLENDMQ.Z m512 zmm k zmm -// VPBLENDMQ.Z zmm zmm k zmm -func VPBLENDMQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPBLENDMW: Blend Word Vectors Using an OpMask Control. -// -// Forms: -// -// VPBLENDMW m128 xmm k xmm -// VPBLENDMW m128 xmm xmm -// VPBLENDMW m256 ymm k ymm -// VPBLENDMW m256 ymm ymm -// VPBLENDMW xmm xmm k xmm -// VPBLENDMW xmm xmm xmm -// VPBLENDMW ymm ymm k ymm -// VPBLENDMW ymm ymm ymm -// VPBLENDMW m512 zmm k zmm -// VPBLENDMW m512 zmm zmm -// VPBLENDMW zmm zmm k zmm -// VPBLENDMW zmm zmm zmm -func VPBLENDMW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMW.Forms(), sffxs{}, ops) -} - -// VPBLENDMW_Z: Blend Word Vectors Using an OpMask Control (Zeroing Masking). -// -// Forms: -// -// VPBLENDMW.Z m128 xmm k xmm -// VPBLENDMW.Z m256 ymm k ymm -// VPBLENDMW.Z xmm xmm k xmm -// VPBLENDMW.Z ymm ymm k ymm -// VPBLENDMW.Z m512 zmm k zmm -// VPBLENDMW.Z zmm zmm k zmm -func VPBLENDMW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDMW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPBLENDVB: Variable Blend Packed Bytes. -// -// Forms: -// -// VPBLENDVB ymm m256 ymm ymm -// VPBLENDVB ymm ymm ymm ymm -// VPBLENDVB xmm m128 xmm xmm -// VPBLENDVB xmm xmm xmm xmm -func VPBLENDVB(xy, mxy, xy1, xy2 operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDVB.Forms(), sffxs{}, []operand.Op{xy, mxy, xy1, xy2}) -} - -// VPBLENDW: Blend Packed Words. -// -// Forms: -// -// VPBLENDW imm8 m256 ymm ymm -// VPBLENDW imm8 ymm ymm ymm -// VPBLENDW imm8 m128 xmm xmm -// VPBLENDW imm8 xmm xmm xmm -func VPBLENDW(i, mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPBLENDW.Forms(), sffxs{}, []operand.Op{i, mxy, xy, xy1}) -} - -// VPBROADCASTB: Broadcast Byte Integer. -// -// Forms: -// -// VPBROADCASTB m8 xmm -// VPBROADCASTB m8 ymm -// VPBROADCASTB xmm xmm -// VPBROADCASTB xmm ymm -// VPBROADCASTB m8 k xmm -// VPBROADCASTB m8 k ymm -// VPBROADCASTB r32 k xmm -// VPBROADCASTB r32 k ymm -// VPBROADCASTB r32 xmm -// VPBROADCASTB r32 ymm -// VPBROADCASTB xmm k xmm -// VPBROADCASTB xmm k ymm -// VPBROADCASTB m8 k zmm -// VPBROADCASTB m8 zmm -// VPBROADCASTB r32 k zmm -// VPBROADCASTB r32 zmm -// VPBROADCASTB xmm k zmm -// VPBROADCASTB xmm zmm -func VPBROADCASTB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTB.Forms(), sffxs{}, ops) -} - -// VPBROADCASTB_Z: Broadcast Byte Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTB.Z m8 k xmm -// VPBROADCASTB.Z m8 k ymm -// VPBROADCASTB.Z r32 k xmm -// VPBROADCASTB.Z r32 k ymm -// VPBROADCASTB.Z xmm k xmm -// VPBROADCASTB.Z xmm k ymm -// VPBROADCASTB.Z m8 k zmm -// VPBROADCASTB.Z r32 k zmm -// VPBROADCASTB.Z xmm k zmm -func VPBROADCASTB_Z(mrx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTB.Forms(), sffxs{sffxZ}, []operand.Op{mrx, k, xyz}) -} - -// VPBROADCASTD: Broadcast Doubleword Integer. -// -// Forms: -// -// VPBROADCASTD m32 xmm -// VPBROADCASTD m32 ymm -// VPBROADCASTD xmm xmm -// VPBROADCASTD xmm ymm -// VPBROADCASTD m32 k xmm -// VPBROADCASTD m32 k ymm -// VPBROADCASTD r32 k xmm -// VPBROADCASTD r32 k ymm -// VPBROADCASTD r32 xmm -// VPBROADCASTD r32 ymm -// VPBROADCASTD xmm k xmm -// VPBROADCASTD xmm k ymm -// VPBROADCASTD m32 k zmm -// VPBROADCASTD m32 zmm -// VPBROADCASTD r32 k zmm -// VPBROADCASTD r32 zmm -// VPBROADCASTD xmm k zmm -// VPBROADCASTD xmm zmm -func VPBROADCASTD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTD.Forms(), sffxs{}, ops) -} - -// VPBROADCASTD_Z: Broadcast Doubleword Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTD.Z m32 k xmm -// VPBROADCASTD.Z m32 k ymm -// VPBROADCASTD.Z r32 k xmm -// VPBROADCASTD.Z r32 k ymm -// VPBROADCASTD.Z xmm k xmm -// VPBROADCASTD.Z xmm k ymm -// VPBROADCASTD.Z m32 k zmm -// VPBROADCASTD.Z r32 k zmm -// VPBROADCASTD.Z xmm k zmm -func VPBROADCASTD_Z(mrx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTD.Forms(), sffxs{sffxZ}, []operand.Op{mrx, k, xyz}) -} - -// VPBROADCASTMB2Q: Broadcast Low Byte of Mask Register to Packed Quadword Values. -// -// Forms: -// -// VPBROADCASTMB2Q k xmm -// VPBROADCASTMB2Q k ymm -// VPBROADCASTMB2Q k zmm -func VPBROADCASTMB2Q(k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTMB2Q.Forms(), sffxs{}, []operand.Op{k, xyz}) -} - -// VPBROADCASTMW2D: Broadcast Low Word of Mask Register to Packed Doubleword Values. -// -// Forms: -// -// VPBROADCASTMW2D k xmm -// VPBROADCASTMW2D k ymm -// VPBROADCASTMW2D k zmm -func VPBROADCASTMW2D(k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTMW2D.Forms(), sffxs{}, []operand.Op{k, xyz}) -} - -// VPBROADCASTQ: Broadcast Quadword Integer. -// -// Forms: -// -// VPBROADCASTQ m64 xmm -// VPBROADCASTQ m64 ymm -// VPBROADCASTQ xmm xmm -// VPBROADCASTQ xmm ymm -// VPBROADCASTQ m64 k xmm -// VPBROADCASTQ m64 k ymm -// VPBROADCASTQ r64 k xmm -// VPBROADCASTQ r64 k ymm -// VPBROADCASTQ r64 xmm -// VPBROADCASTQ r64 ymm -// VPBROADCASTQ xmm k xmm -// VPBROADCASTQ xmm k ymm -// VPBROADCASTQ m64 k zmm -// VPBROADCASTQ m64 zmm -// VPBROADCASTQ r64 k zmm -// VPBROADCASTQ r64 zmm -// VPBROADCASTQ xmm k zmm -// VPBROADCASTQ xmm zmm -func VPBROADCASTQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTQ.Forms(), sffxs{}, ops) -} - -// VPBROADCASTQ_Z: Broadcast Quadword Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTQ.Z m64 k xmm -// VPBROADCASTQ.Z m64 k ymm -// VPBROADCASTQ.Z r64 k xmm -// VPBROADCASTQ.Z r64 k ymm -// VPBROADCASTQ.Z xmm k xmm -// VPBROADCASTQ.Z xmm k ymm -// VPBROADCASTQ.Z m64 k zmm -// VPBROADCASTQ.Z r64 k zmm -// VPBROADCASTQ.Z xmm k zmm -func VPBROADCASTQ_Z(mrx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTQ.Forms(), sffxs{sffxZ}, []operand.Op{mrx, k, xyz}) -} - -// VPBROADCASTW: Broadcast Word Integer. -// -// Forms: -// -// VPBROADCASTW m16 xmm -// VPBROADCASTW m16 ymm -// VPBROADCASTW xmm xmm -// VPBROADCASTW xmm ymm -// VPBROADCASTW m16 k xmm -// VPBROADCASTW m16 k ymm -// VPBROADCASTW r32 k xmm -// VPBROADCASTW r32 k ymm -// VPBROADCASTW r32 xmm -// VPBROADCASTW r32 ymm -// VPBROADCASTW xmm k xmm -// VPBROADCASTW xmm k ymm -// VPBROADCASTW m16 k zmm -// VPBROADCASTW m16 zmm -// VPBROADCASTW r32 k zmm -// VPBROADCASTW r32 zmm -// VPBROADCASTW xmm k zmm -// VPBROADCASTW xmm zmm -func VPBROADCASTW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTW.Forms(), sffxs{}, ops) -} - -// VPBROADCASTW_Z: Broadcast Word Integer (Zeroing Masking). -// -// Forms: -// -// VPBROADCASTW.Z m16 k xmm -// VPBROADCASTW.Z m16 k ymm -// VPBROADCASTW.Z r32 k xmm -// VPBROADCASTW.Z r32 k ymm -// VPBROADCASTW.Z xmm k xmm -// VPBROADCASTW.Z xmm k ymm -// VPBROADCASTW.Z m16 k zmm -// VPBROADCASTW.Z r32 k zmm -// VPBROADCASTW.Z xmm k zmm -func VPBROADCASTW_Z(mrx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPBROADCASTW.Forms(), sffxs{sffxZ}, []operand.Op{mrx, k, xyz}) -} - -// VPCLMULQDQ: Carry-Less Quadword Multiplication. -// -// Forms: -// -// VPCLMULQDQ imm8 m128 xmm xmm -// VPCLMULQDQ imm8 xmm xmm xmm -// VPCLMULQDQ imm8 m256 ymm ymm -// VPCLMULQDQ imm8 ymm ymm ymm -// VPCLMULQDQ imm8 m512 zmm zmm -// VPCLMULQDQ imm8 zmm zmm zmm -func VPCLMULQDQ(i, mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPCLMULQDQ.Forms(), sffxs{}, []operand.Op{i, mxyz, xyz, xyz1}) -} - -// VPCMPB: Compare Packed Signed Byte Values. -// -// Forms: -// -// VPCMPB imm8 m128 xmm k k -// VPCMPB imm8 m128 xmm k -// VPCMPB imm8 m256 ymm k k -// VPCMPB imm8 m256 ymm k -// VPCMPB imm8 xmm xmm k k -// VPCMPB imm8 xmm xmm k -// VPCMPB imm8 ymm ymm k k -// VPCMPB imm8 ymm ymm k -// VPCMPB imm8 m512 zmm k k -// VPCMPB imm8 m512 zmm k -// VPCMPB imm8 zmm zmm k k -// VPCMPB imm8 zmm zmm k -func VPCMPB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPB.Forms(), sffxs{}, ops) -} - -// VPCMPD: Compare Packed Signed Doubleword Values. -// -// Forms: -// -// VPCMPD imm8 m128 xmm k k -// VPCMPD imm8 m128 xmm k -// VPCMPD imm8 m256 ymm k k -// VPCMPD imm8 m256 ymm k -// VPCMPD imm8 xmm xmm k k -// VPCMPD imm8 xmm xmm k -// VPCMPD imm8 ymm ymm k k -// VPCMPD imm8 ymm ymm k -// VPCMPD imm8 m512 zmm k k -// VPCMPD imm8 m512 zmm k -// VPCMPD imm8 zmm zmm k k -// VPCMPD imm8 zmm zmm k -func VPCMPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPD.Forms(), sffxs{}, ops) -} - -// VPCMPD_BCST: Compare Packed Signed Doubleword Values (Broadcast). -// -// Forms: -// -// VPCMPD.BCST imm8 m32 xmm k k -// VPCMPD.BCST imm8 m32 xmm k -// VPCMPD.BCST imm8 m32 ymm k k -// VPCMPD.BCST imm8 m32 ymm k -// VPCMPD.BCST imm8 m32 zmm k k -// VPCMPD.BCST imm8 m32 zmm k -func VPCMPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCMPEQB: Compare Packed Byte Data for Equality. -// -// Forms: -// -// VPCMPEQB m256 ymm ymm -// VPCMPEQB ymm ymm ymm -// VPCMPEQB m128 xmm xmm -// VPCMPEQB xmm xmm xmm -// VPCMPEQB m128 xmm k k -// VPCMPEQB m128 xmm k -// VPCMPEQB m256 ymm k k -// VPCMPEQB m256 ymm k -// VPCMPEQB xmm xmm k k -// VPCMPEQB xmm xmm k -// VPCMPEQB ymm ymm k k -// VPCMPEQB ymm ymm k -// VPCMPEQB m512 zmm k k -// VPCMPEQB m512 zmm k -// VPCMPEQB zmm zmm k k -// VPCMPEQB zmm zmm k -func VPCMPEQB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPEQB.Forms(), sffxs{}, ops) -} - -// VPCMPEQD: Compare Packed Doubleword Data for Equality. -// -// Forms: -// -// VPCMPEQD m256 ymm ymm -// VPCMPEQD ymm ymm ymm -// VPCMPEQD m128 xmm xmm -// VPCMPEQD xmm xmm xmm -// VPCMPEQD m128 xmm k k -// VPCMPEQD m128 xmm k -// VPCMPEQD m256 ymm k k -// VPCMPEQD m256 ymm k -// VPCMPEQD xmm xmm k k -// VPCMPEQD xmm xmm k -// VPCMPEQD ymm ymm k k -// VPCMPEQD ymm ymm k -// VPCMPEQD m512 zmm k k -// VPCMPEQD m512 zmm k -// VPCMPEQD zmm zmm k k -// VPCMPEQD zmm zmm k -func VPCMPEQD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPEQD.Forms(), sffxs{}, ops) -} - -// VPCMPEQD_BCST: Compare Packed Doubleword Data for Equality (Broadcast). -// -// Forms: -// -// VPCMPEQD.BCST m32 xmm k k -// VPCMPEQD.BCST m32 xmm k -// VPCMPEQD.BCST m32 ymm k k -// VPCMPEQD.BCST m32 ymm k -// VPCMPEQD.BCST m32 zmm k k -// VPCMPEQD.BCST m32 zmm k -func VPCMPEQD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPEQD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCMPEQQ: Compare Packed Quadword Data for Equality. -// -// Forms: -// -// VPCMPEQQ m256 ymm ymm -// VPCMPEQQ ymm ymm ymm -// VPCMPEQQ m128 xmm xmm -// VPCMPEQQ xmm xmm xmm -// VPCMPEQQ m128 xmm k k -// VPCMPEQQ m128 xmm k -// VPCMPEQQ m256 ymm k k -// VPCMPEQQ m256 ymm k -// VPCMPEQQ xmm xmm k k -// VPCMPEQQ xmm xmm k -// VPCMPEQQ ymm ymm k k -// VPCMPEQQ ymm ymm k -// VPCMPEQQ m512 zmm k k -// VPCMPEQQ m512 zmm k -// VPCMPEQQ zmm zmm k k -// VPCMPEQQ zmm zmm k -func VPCMPEQQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPEQQ.Forms(), sffxs{}, ops) -} - -// VPCMPEQQ_BCST: Compare Packed Quadword Data for Equality (Broadcast). -// -// Forms: -// -// VPCMPEQQ.BCST m64 xmm k k -// VPCMPEQQ.BCST m64 xmm k -// VPCMPEQQ.BCST m64 ymm k k -// VPCMPEQQ.BCST m64 ymm k -// VPCMPEQQ.BCST m64 zmm k k -// VPCMPEQQ.BCST m64 zmm k -func VPCMPEQQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPEQQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCMPEQW: Compare Packed Word Data for Equality. -// -// Forms: -// -// VPCMPEQW m256 ymm ymm -// VPCMPEQW ymm ymm ymm -// VPCMPEQW m128 xmm xmm -// VPCMPEQW xmm xmm xmm -// VPCMPEQW m128 xmm k k -// VPCMPEQW m128 xmm k -// VPCMPEQW m256 ymm k k -// VPCMPEQW m256 ymm k -// VPCMPEQW xmm xmm k k -// VPCMPEQW xmm xmm k -// VPCMPEQW ymm ymm k k -// VPCMPEQW ymm ymm k -// VPCMPEQW m512 zmm k k -// VPCMPEQW m512 zmm k -// VPCMPEQW zmm zmm k k -// VPCMPEQW zmm zmm k -func VPCMPEQW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPEQW.Forms(), sffxs{}, ops) -} - -// VPCMPESTRI: Packed Compare Explicit Length Strings, Return Index. -// -// Forms: -// -// VPCMPESTRI imm8 m128 xmm -// VPCMPESTRI imm8 xmm xmm -func VPCMPESTRI(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPESTRI.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// VPCMPESTRM: Packed Compare Explicit Length Strings, Return Mask. -// -// Forms: -// -// VPCMPESTRM imm8 m128 xmm -// VPCMPESTRM imm8 xmm xmm -func VPCMPESTRM(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPESTRM.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// VPCMPGTB: Compare Packed Signed Byte Integers for Greater Than. -// -// Forms: -// -// VPCMPGTB m256 ymm ymm -// VPCMPGTB ymm ymm ymm -// VPCMPGTB m128 xmm xmm -// VPCMPGTB xmm xmm xmm -// VPCMPGTB m128 xmm k k -// VPCMPGTB m128 xmm k -// VPCMPGTB m256 ymm k k -// VPCMPGTB m256 ymm k -// VPCMPGTB xmm xmm k k -// VPCMPGTB xmm xmm k -// VPCMPGTB ymm ymm k k -// VPCMPGTB ymm ymm k -// VPCMPGTB m512 zmm k k -// VPCMPGTB m512 zmm k -// VPCMPGTB zmm zmm k k -// VPCMPGTB zmm zmm k -func VPCMPGTB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPGTB.Forms(), sffxs{}, ops) -} - -// VPCMPGTD: Compare Packed Signed Doubleword Integers for Greater Than. -// -// Forms: -// -// VPCMPGTD m256 ymm ymm -// VPCMPGTD ymm ymm ymm -// VPCMPGTD m128 xmm xmm -// VPCMPGTD xmm xmm xmm -// VPCMPGTD m128 xmm k k -// VPCMPGTD m128 xmm k -// VPCMPGTD m256 ymm k k -// VPCMPGTD m256 ymm k -// VPCMPGTD xmm xmm k k -// VPCMPGTD xmm xmm k -// VPCMPGTD ymm ymm k k -// VPCMPGTD ymm ymm k -// VPCMPGTD m512 zmm k k -// VPCMPGTD m512 zmm k -// VPCMPGTD zmm zmm k k -// VPCMPGTD zmm zmm k -func VPCMPGTD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPGTD.Forms(), sffxs{}, ops) -} - -// VPCMPGTD_BCST: Compare Packed Signed Doubleword Integers for Greater Than (Broadcast). -// -// Forms: -// -// VPCMPGTD.BCST m32 xmm k k -// VPCMPGTD.BCST m32 xmm k -// VPCMPGTD.BCST m32 ymm k k -// VPCMPGTD.BCST m32 ymm k -// VPCMPGTD.BCST m32 zmm k k -// VPCMPGTD.BCST m32 zmm k -func VPCMPGTD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPGTD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCMPGTQ: Compare Packed Data for Greater Than. -// -// Forms: -// -// VPCMPGTQ m256 ymm ymm -// VPCMPGTQ ymm ymm ymm -// VPCMPGTQ m128 xmm xmm -// VPCMPGTQ xmm xmm xmm -// VPCMPGTQ m128 xmm k k -// VPCMPGTQ m128 xmm k -// VPCMPGTQ m256 ymm k k -// VPCMPGTQ m256 ymm k -// VPCMPGTQ xmm xmm k k -// VPCMPGTQ xmm xmm k -// VPCMPGTQ ymm ymm k k -// VPCMPGTQ ymm ymm k -// VPCMPGTQ m512 zmm k k -// VPCMPGTQ m512 zmm k -// VPCMPGTQ zmm zmm k k -// VPCMPGTQ zmm zmm k -func VPCMPGTQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPGTQ.Forms(), sffxs{}, ops) -} - -// VPCMPGTQ_BCST: Compare Packed Data for Greater Than (Broadcast). -// -// Forms: -// -// VPCMPGTQ.BCST m64 xmm k k -// VPCMPGTQ.BCST m64 xmm k -// VPCMPGTQ.BCST m64 ymm k k -// VPCMPGTQ.BCST m64 ymm k -// VPCMPGTQ.BCST m64 zmm k k -// VPCMPGTQ.BCST m64 zmm k -func VPCMPGTQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPGTQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCMPGTW: Compare Packed Signed Word Integers for Greater Than. -// -// Forms: -// -// VPCMPGTW m256 ymm ymm -// VPCMPGTW ymm ymm ymm -// VPCMPGTW m128 xmm xmm -// VPCMPGTW xmm xmm xmm -// VPCMPGTW m128 xmm k k -// VPCMPGTW m128 xmm k -// VPCMPGTW m256 ymm k k -// VPCMPGTW m256 ymm k -// VPCMPGTW xmm xmm k k -// VPCMPGTW xmm xmm k -// VPCMPGTW ymm ymm k k -// VPCMPGTW ymm ymm k -// VPCMPGTW m512 zmm k k -// VPCMPGTW m512 zmm k -// VPCMPGTW zmm zmm k k -// VPCMPGTW zmm zmm k -func VPCMPGTW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPGTW.Forms(), sffxs{}, ops) -} - -// VPCMPISTRI: Packed Compare Implicit Length Strings, Return Index. -// -// Forms: -// -// VPCMPISTRI imm8 m128 xmm -// VPCMPISTRI imm8 xmm xmm -func VPCMPISTRI(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPISTRI.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// VPCMPISTRM: Packed Compare Implicit Length Strings, Return Mask. -// -// Forms: -// -// VPCMPISTRM imm8 m128 xmm -// VPCMPISTRM imm8 xmm xmm -func VPCMPISTRM(i, mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPISTRM.Forms(), sffxs{}, []operand.Op{i, mx, x}) -} - -// VPCMPQ: Compare Packed Signed Quadword Values. -// -// Forms: -// -// VPCMPQ imm8 m128 xmm k k -// VPCMPQ imm8 m128 xmm k -// VPCMPQ imm8 m256 ymm k k -// VPCMPQ imm8 m256 ymm k -// VPCMPQ imm8 xmm xmm k k -// VPCMPQ imm8 xmm xmm k -// VPCMPQ imm8 ymm ymm k k -// VPCMPQ imm8 ymm ymm k -// VPCMPQ imm8 m512 zmm k k -// VPCMPQ imm8 m512 zmm k -// VPCMPQ imm8 zmm zmm k k -// VPCMPQ imm8 zmm zmm k -func VPCMPQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPQ.Forms(), sffxs{}, ops) -} - -// VPCMPQ_BCST: Compare Packed Signed Quadword Values (Broadcast). -// -// Forms: -// -// VPCMPQ.BCST imm8 m64 xmm k k -// VPCMPQ.BCST imm8 m64 xmm k -// VPCMPQ.BCST imm8 m64 ymm k k -// VPCMPQ.BCST imm8 m64 ymm k -// VPCMPQ.BCST imm8 m64 zmm k k -// VPCMPQ.BCST imm8 m64 zmm k -func VPCMPQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCMPUB: Compare Packed Unsigned Byte Values. -// -// Forms: -// -// VPCMPUB imm8 m128 xmm k k -// VPCMPUB imm8 m128 xmm k -// VPCMPUB imm8 m256 ymm k k -// VPCMPUB imm8 m256 ymm k -// VPCMPUB imm8 xmm xmm k k -// VPCMPUB imm8 xmm xmm k -// VPCMPUB imm8 ymm ymm k k -// VPCMPUB imm8 ymm ymm k -// VPCMPUB imm8 m512 zmm k k -// VPCMPUB imm8 m512 zmm k -// VPCMPUB imm8 zmm zmm k k -// VPCMPUB imm8 zmm zmm k -func VPCMPUB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPUB.Forms(), sffxs{}, ops) -} - -// VPCMPUD: Compare Packed Unsigned Doubleword Values. -// -// Forms: -// -// VPCMPUD imm8 m128 xmm k k -// VPCMPUD imm8 m128 xmm k -// VPCMPUD imm8 m256 ymm k k -// VPCMPUD imm8 m256 ymm k -// VPCMPUD imm8 xmm xmm k k -// VPCMPUD imm8 xmm xmm k -// VPCMPUD imm8 ymm ymm k k -// VPCMPUD imm8 ymm ymm k -// VPCMPUD imm8 m512 zmm k k -// VPCMPUD imm8 m512 zmm k -// VPCMPUD imm8 zmm zmm k k -// VPCMPUD imm8 zmm zmm k -func VPCMPUD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPUD.Forms(), sffxs{}, ops) -} - -// VPCMPUD_BCST: Compare Packed Unsigned Doubleword Values (Broadcast). -// -// Forms: -// -// VPCMPUD.BCST imm8 m32 xmm k k -// VPCMPUD.BCST imm8 m32 xmm k -// VPCMPUD.BCST imm8 m32 ymm k k -// VPCMPUD.BCST imm8 m32 ymm k -// VPCMPUD.BCST imm8 m32 zmm k k -// VPCMPUD.BCST imm8 m32 zmm k -func VPCMPUD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPUD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCMPUQ: Compare Packed Unsigned Quadword Values. -// -// Forms: -// -// VPCMPUQ imm8 m128 xmm k k -// VPCMPUQ imm8 m128 xmm k -// VPCMPUQ imm8 m256 ymm k k -// VPCMPUQ imm8 m256 ymm k -// VPCMPUQ imm8 xmm xmm k k -// VPCMPUQ imm8 xmm xmm k -// VPCMPUQ imm8 ymm ymm k k -// VPCMPUQ imm8 ymm ymm k -// VPCMPUQ imm8 m512 zmm k k -// VPCMPUQ imm8 m512 zmm k -// VPCMPUQ imm8 zmm zmm k k -// VPCMPUQ imm8 zmm zmm k -func VPCMPUQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPUQ.Forms(), sffxs{}, ops) -} - -// VPCMPUQ_BCST: Compare Packed Unsigned Quadword Values (Broadcast). -// -// Forms: -// -// VPCMPUQ.BCST imm8 m64 xmm k k -// VPCMPUQ.BCST imm8 m64 xmm k -// VPCMPUQ.BCST imm8 m64 ymm k k -// VPCMPUQ.BCST imm8 m64 ymm k -// VPCMPUQ.BCST imm8 m64 zmm k k -// VPCMPUQ.BCST imm8 m64 zmm k -func VPCMPUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPUQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCMPUW: Compare Packed Unsigned Word Values. -// -// Forms: -// -// VPCMPUW imm8 m128 xmm k k -// VPCMPUW imm8 m128 xmm k -// VPCMPUW imm8 m256 ymm k k -// VPCMPUW imm8 m256 ymm k -// VPCMPUW imm8 xmm xmm k k -// VPCMPUW imm8 xmm xmm k -// VPCMPUW imm8 ymm ymm k k -// VPCMPUW imm8 ymm ymm k -// VPCMPUW imm8 m512 zmm k k -// VPCMPUW imm8 m512 zmm k -// VPCMPUW imm8 zmm zmm k k -// VPCMPUW imm8 zmm zmm k -func VPCMPUW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPUW.Forms(), sffxs{}, ops) -} - -// VPCMPW: Compare Packed Signed Word Values. -// -// Forms: -// -// VPCMPW imm8 m128 xmm k k -// VPCMPW imm8 m128 xmm k -// VPCMPW imm8 m256 ymm k k -// VPCMPW imm8 m256 ymm k -// VPCMPW imm8 xmm xmm k k -// VPCMPW imm8 xmm xmm k -// VPCMPW imm8 ymm ymm k k -// VPCMPW imm8 ymm ymm k -// VPCMPW imm8 m512 zmm k k -// VPCMPW imm8 m512 zmm k -// VPCMPW imm8 zmm zmm k k -// VPCMPW imm8 zmm zmm k -func VPCMPW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCMPW.Forms(), sffxs{}, ops) -} - -// VPCOMPRESSB: Store Sparse Packed Byte Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSB xmm k m128 -// VPCOMPRESSB xmm k xmm -// VPCOMPRESSB xmm m128 -// VPCOMPRESSB xmm xmm -// VPCOMPRESSB ymm k m256 -// VPCOMPRESSB ymm k ymm -// VPCOMPRESSB ymm m256 -// VPCOMPRESSB ymm ymm -// VPCOMPRESSB zmm k m512 -// VPCOMPRESSB zmm k zmm -// VPCOMPRESSB zmm m512 -// VPCOMPRESSB zmm zmm -func VPCOMPRESSB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCOMPRESSB.Forms(), sffxs{}, ops) -} - -// VPCOMPRESSB_Z: Store Sparse Packed Byte Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSB.Z xmm k xmm -// VPCOMPRESSB.Z ymm k ymm -// VPCOMPRESSB.Z zmm k zmm -func VPCOMPRESSB_Z(xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPCOMPRESSB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, xyz1}) -} - -// VPCOMPRESSD: Store Sparse Packed Doubleword Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSD xmm k m128 -// VPCOMPRESSD xmm k xmm -// VPCOMPRESSD xmm m128 -// VPCOMPRESSD xmm xmm -// VPCOMPRESSD ymm k m256 -// VPCOMPRESSD ymm k ymm -// VPCOMPRESSD ymm m256 -// VPCOMPRESSD ymm ymm -// VPCOMPRESSD zmm k m512 -// VPCOMPRESSD zmm k zmm -// VPCOMPRESSD zmm m512 -// VPCOMPRESSD zmm zmm -func VPCOMPRESSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCOMPRESSD.Forms(), sffxs{}, ops) -} - -// VPCOMPRESSD_Z: Store Sparse Packed Doubleword Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSD.Z xmm k m128 -// VPCOMPRESSD.Z xmm k xmm -// VPCOMPRESSD.Z ymm k m256 -// VPCOMPRESSD.Z ymm k ymm -// VPCOMPRESSD.Z zmm k m512 -// VPCOMPRESSD.Z zmm k zmm -func VPCOMPRESSD_Z(xyz, k, mxyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPCOMPRESSD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxyz}) -} - -// VPCOMPRESSQ: Store Sparse Packed Quadword Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSQ xmm k m128 -// VPCOMPRESSQ xmm k xmm -// VPCOMPRESSQ xmm m128 -// VPCOMPRESSQ xmm xmm -// VPCOMPRESSQ ymm k m256 -// VPCOMPRESSQ ymm k ymm -// VPCOMPRESSQ ymm m256 -// VPCOMPRESSQ ymm ymm -// VPCOMPRESSQ zmm k m512 -// VPCOMPRESSQ zmm k zmm -// VPCOMPRESSQ zmm m512 -// VPCOMPRESSQ zmm zmm -func VPCOMPRESSQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCOMPRESSQ.Forms(), sffxs{}, ops) -} - -// VPCOMPRESSQ_Z: Store Sparse Packed Quadword Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSQ.Z xmm k m128 -// VPCOMPRESSQ.Z xmm k xmm -// VPCOMPRESSQ.Z ymm k m256 -// VPCOMPRESSQ.Z ymm k ymm -// VPCOMPRESSQ.Z zmm k m512 -// VPCOMPRESSQ.Z zmm k zmm -func VPCOMPRESSQ_Z(xyz, k, mxyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPCOMPRESSQ.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxyz}) -} - -// VPCOMPRESSW: Store Sparse Packed Word Integer Values into Dense Memory/Register. -// -// Forms: -// -// VPCOMPRESSW xmm k m128 -// VPCOMPRESSW xmm k xmm -// VPCOMPRESSW xmm m128 -// VPCOMPRESSW xmm xmm -// VPCOMPRESSW ymm k m256 -// VPCOMPRESSW ymm k ymm -// VPCOMPRESSW ymm m256 -// VPCOMPRESSW ymm ymm -// VPCOMPRESSW zmm k m512 -// VPCOMPRESSW zmm k zmm -// VPCOMPRESSW zmm m512 -// VPCOMPRESSW zmm zmm -func VPCOMPRESSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCOMPRESSW.Forms(), sffxs{}, ops) -} - -// VPCOMPRESSW_Z: Store Sparse Packed Word Integer Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCOMPRESSW.Z xmm k xmm -// VPCOMPRESSW.Z ymm k ymm -// VPCOMPRESSW.Z zmm k zmm -func VPCOMPRESSW_Z(xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPCOMPRESSW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, xyz1}) -} - -// VPCONFLICTD: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register. -// -// Forms: -// -// VPCONFLICTD m128 k xmm -// VPCONFLICTD m128 xmm -// VPCONFLICTD m256 k ymm -// VPCONFLICTD m256 ymm -// VPCONFLICTD xmm k xmm -// VPCONFLICTD xmm xmm -// VPCONFLICTD ymm k ymm -// VPCONFLICTD ymm ymm -// VPCONFLICTD m512 k zmm -// VPCONFLICTD m512 zmm -// VPCONFLICTD zmm k zmm -// VPCONFLICTD zmm zmm -func VPCONFLICTD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCONFLICTD.Forms(), sffxs{}, ops) -} - -// VPCONFLICTD_BCST: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Broadcast). -// -// Forms: -// -// VPCONFLICTD.BCST m32 k xmm -// VPCONFLICTD.BCST m32 k ymm -// VPCONFLICTD.BCST m32 xmm -// VPCONFLICTD.BCST m32 ymm -// VPCONFLICTD.BCST m32 k zmm -// VPCONFLICTD.BCST m32 zmm -func VPCONFLICTD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCONFLICTD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCONFLICTD_BCST_Z: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPCONFLICTD.BCST.Z m32 k xmm -// VPCONFLICTD.BCST.Z m32 k ymm -// VPCONFLICTD.BCST.Z m32 k zmm -func VPCONFLICTD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPCONFLICTD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VPCONFLICTD_Z: Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCONFLICTD.Z m128 k xmm -// VPCONFLICTD.Z m256 k ymm -// VPCONFLICTD.Z xmm k xmm -// VPCONFLICTD.Z ymm k ymm -// VPCONFLICTD.Z m512 k zmm -// VPCONFLICTD.Z zmm k zmm -func VPCONFLICTD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPCONFLICTD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPCONFLICTQ: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register. -// -// Forms: -// -// VPCONFLICTQ m128 k xmm -// VPCONFLICTQ m128 xmm -// VPCONFLICTQ m256 k ymm -// VPCONFLICTQ m256 ymm -// VPCONFLICTQ xmm k xmm -// VPCONFLICTQ xmm xmm -// VPCONFLICTQ ymm k ymm -// VPCONFLICTQ ymm ymm -// VPCONFLICTQ m512 k zmm -// VPCONFLICTQ m512 zmm -// VPCONFLICTQ zmm k zmm -// VPCONFLICTQ zmm zmm -func VPCONFLICTQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCONFLICTQ.Forms(), sffxs{}, ops) -} - -// VPCONFLICTQ_BCST: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Broadcast). -// -// Forms: -// -// VPCONFLICTQ.BCST m64 k xmm -// VPCONFLICTQ.BCST m64 k ymm -// VPCONFLICTQ.BCST m64 xmm -// VPCONFLICTQ.BCST m64 ymm -// VPCONFLICTQ.BCST m64 k zmm -// VPCONFLICTQ.BCST m64 zmm -func VPCONFLICTQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPCONFLICTQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPCONFLICTQ_BCST_Z: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPCONFLICTQ.BCST.Z m64 k xmm -// VPCONFLICTQ.BCST.Z m64 k ymm -// VPCONFLICTQ.BCST.Z m64 k zmm -func VPCONFLICTQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPCONFLICTQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VPCONFLICTQ_Z: Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPCONFLICTQ.Z m128 k xmm -// VPCONFLICTQ.Z m256 k ymm -// VPCONFLICTQ.Z xmm k xmm -// VPCONFLICTQ.Z ymm k ymm -// VPCONFLICTQ.Z m512 k zmm -// VPCONFLICTQ.Z zmm k zmm -func VPCONFLICTQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPCONFLICTQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPDPBUSD: Multiply and Add Unsigned and Signed Bytes. -// -// Forms: -// -// VPDPBUSD m128 xmm k xmm -// VPDPBUSD m128 xmm xmm -// VPDPBUSD m256 ymm k ymm -// VPDPBUSD m256 ymm ymm -// VPDPBUSD xmm xmm k xmm -// VPDPBUSD xmm xmm xmm -// VPDPBUSD ymm ymm k ymm -// VPDPBUSD ymm ymm ymm -// VPDPBUSD m512 zmm k zmm -// VPDPBUSD m512 zmm zmm -// VPDPBUSD zmm zmm k zmm -// VPDPBUSD zmm zmm zmm -func VPDPBUSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPBUSD.Forms(), sffxs{}, ops) -} - -// VPDPBUSDS: Multiply and Add Unsigned and Signed Bytes with Saturation. -// -// Forms: -// -// VPDPBUSDS m128 xmm k xmm -// VPDPBUSDS m128 xmm xmm -// VPDPBUSDS m256 ymm k ymm -// VPDPBUSDS m256 ymm ymm -// VPDPBUSDS xmm xmm k xmm -// VPDPBUSDS xmm xmm xmm -// VPDPBUSDS ymm ymm k ymm -// VPDPBUSDS ymm ymm ymm -// VPDPBUSDS m512 zmm k zmm -// VPDPBUSDS m512 zmm zmm -// VPDPBUSDS zmm zmm k zmm -// VPDPBUSDS zmm zmm zmm -func VPDPBUSDS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPBUSDS.Forms(), sffxs{}, ops) -} - -// VPDPBUSDS_BCST: Multiply and Add Unsigned and Signed Bytes with Saturation (Broadcast). -// -// Forms: -// -// VPDPBUSDS.BCST m32 xmm k xmm -// VPDPBUSDS.BCST m32 xmm xmm -// VPDPBUSDS.BCST m32 ymm k ymm -// VPDPBUSDS.BCST m32 ymm ymm -// VPDPBUSDS.BCST m32 zmm k zmm -// VPDPBUSDS.BCST m32 zmm zmm -func VPDPBUSDS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPBUSDS.Forms(), sffxs{sffxBCST}, ops) -} - -// VPDPBUSDS_BCST_Z: Multiply and Add Unsigned and Signed Bytes with Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPBUSDS.BCST.Z m32 xmm k xmm -// VPDPBUSDS.BCST.Z m32 ymm k ymm -// VPDPBUSDS.BCST.Z m32 zmm k zmm -func VPDPBUSDS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPBUSDS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPDPBUSDS_Z: Multiply and Add Unsigned and Signed Bytes with Saturation (Zeroing Masking). -// -// Forms: -// -// VPDPBUSDS.Z m128 xmm k xmm -// VPDPBUSDS.Z m256 ymm k ymm -// VPDPBUSDS.Z xmm xmm k xmm -// VPDPBUSDS.Z ymm ymm k ymm -// VPDPBUSDS.Z m512 zmm k zmm -// VPDPBUSDS.Z zmm zmm k zmm -func VPDPBUSDS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPBUSDS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPDPBUSD_BCST: Multiply and Add Unsigned and Signed Bytes (Broadcast). -// -// Forms: -// -// VPDPBUSD.BCST m32 xmm k xmm -// VPDPBUSD.BCST m32 xmm xmm -// VPDPBUSD.BCST m32 ymm k ymm -// VPDPBUSD.BCST m32 ymm ymm -// VPDPBUSD.BCST m32 zmm k zmm -// VPDPBUSD.BCST m32 zmm zmm -func VPDPBUSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPBUSD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPDPBUSD_BCST_Z: Multiply and Add Unsigned and Signed Bytes (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPBUSD.BCST.Z m32 xmm k xmm -// VPDPBUSD.BCST.Z m32 ymm k ymm -// VPDPBUSD.BCST.Z m32 zmm k zmm -func VPDPBUSD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPBUSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPDPBUSD_Z: Multiply and Add Unsigned and Signed Bytes (Zeroing Masking). -// -// Forms: -// -// VPDPBUSD.Z m128 xmm k xmm -// VPDPBUSD.Z m256 ymm k ymm -// VPDPBUSD.Z xmm xmm k xmm -// VPDPBUSD.Z ymm ymm k ymm -// VPDPBUSD.Z m512 zmm k zmm -// VPDPBUSD.Z zmm zmm k zmm -func VPDPBUSD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPBUSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPDPWSSD: Multiply and Add Signed Word Integers. -// -// Forms: -// -// VPDPWSSD m128 xmm k xmm -// VPDPWSSD m128 xmm xmm -// VPDPWSSD m256 ymm k ymm -// VPDPWSSD m256 ymm ymm -// VPDPWSSD xmm xmm k xmm -// VPDPWSSD xmm xmm xmm -// VPDPWSSD ymm ymm k ymm -// VPDPWSSD ymm ymm ymm -// VPDPWSSD m512 zmm k zmm -// VPDPWSSD m512 zmm zmm -// VPDPWSSD zmm zmm k zmm -// VPDPWSSD zmm zmm zmm -func VPDPWSSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPWSSD.Forms(), sffxs{}, ops) -} - -// VPDPWSSDS: Multiply and Add Signed Word Integers with Saturation. -// -// Forms: -// -// VPDPWSSDS m128 xmm k xmm -// VPDPWSSDS m128 xmm xmm -// VPDPWSSDS m256 ymm k ymm -// VPDPWSSDS m256 ymm ymm -// VPDPWSSDS xmm xmm k xmm -// VPDPWSSDS xmm xmm xmm -// VPDPWSSDS ymm ymm k ymm -// VPDPWSSDS ymm ymm ymm -// VPDPWSSDS m512 zmm k zmm -// VPDPWSSDS m512 zmm zmm -// VPDPWSSDS zmm zmm k zmm -// VPDPWSSDS zmm zmm zmm -func VPDPWSSDS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPWSSDS.Forms(), sffxs{}, ops) -} - -// VPDPWSSDS_BCST: Multiply and Add Signed Word Integers with Saturation (Broadcast). -// -// Forms: -// -// VPDPWSSDS.BCST m32 xmm k xmm -// VPDPWSSDS.BCST m32 xmm xmm -// VPDPWSSDS.BCST m32 ymm k ymm -// VPDPWSSDS.BCST m32 ymm ymm -// VPDPWSSDS.BCST m32 zmm k zmm -// VPDPWSSDS.BCST m32 zmm zmm -func VPDPWSSDS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPWSSDS.Forms(), sffxs{sffxBCST}, ops) -} - -// VPDPWSSDS_BCST_Z: Multiply and Add Signed Word Integers with Saturation (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPWSSDS.BCST.Z m32 xmm k xmm -// VPDPWSSDS.BCST.Z m32 ymm k ymm -// VPDPWSSDS.BCST.Z m32 zmm k zmm -func VPDPWSSDS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPWSSDS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPDPWSSDS_Z: Multiply and Add Signed Word Integers with Saturation (Zeroing Masking). -// -// Forms: -// -// VPDPWSSDS.Z m128 xmm k xmm -// VPDPWSSDS.Z m256 ymm k ymm -// VPDPWSSDS.Z xmm xmm k xmm -// VPDPWSSDS.Z ymm ymm k ymm -// VPDPWSSDS.Z m512 zmm k zmm -// VPDPWSSDS.Z zmm zmm k zmm -func VPDPWSSDS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPWSSDS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPDPWSSD_BCST: Multiply and Add Signed Word Integers (Broadcast). -// -// Forms: -// -// VPDPWSSD.BCST m32 xmm k xmm -// VPDPWSSD.BCST m32 xmm xmm -// VPDPWSSD.BCST m32 ymm k ymm -// VPDPWSSD.BCST m32 ymm ymm -// VPDPWSSD.BCST m32 zmm k zmm -// VPDPWSSD.BCST m32 zmm zmm -func VPDPWSSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPWSSD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPDPWSSD_BCST_Z: Multiply and Add Signed Word Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPDPWSSD.BCST.Z m32 xmm k xmm -// VPDPWSSD.BCST.Z m32 ymm k ymm -// VPDPWSSD.BCST.Z m32 zmm k zmm -func VPDPWSSD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPWSSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPDPWSSD_Z: Multiply and Add Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPDPWSSD.Z m128 xmm k xmm -// VPDPWSSD.Z m256 ymm k ymm -// VPDPWSSD.Z xmm xmm k xmm -// VPDPWSSD.Z ymm ymm k ymm -// VPDPWSSD.Z m512 zmm k zmm -// VPDPWSSD.Z zmm zmm k zmm -func VPDPWSSD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPDPWSSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERM2F128: Permute Floating-Point Values. -// -// Forms: -// -// VPERM2F128 imm8 m256 ymm ymm -// VPERM2F128 imm8 ymm ymm ymm -func VPERM2F128(i, my, y, y1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERM2F128.Forms(), sffxs{}, []operand.Op{i, my, y, y1}) -} - -// VPERM2I128: Permute 128-Bit Integer Values. -// -// Forms: -// -// VPERM2I128 imm8 m256 ymm ymm -// VPERM2I128 imm8 ymm ymm ymm -func VPERM2I128(i, my, y, y1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERM2I128.Forms(), sffxs{}, []operand.Op{i, my, y, y1}) -} - -// VPERMB: Permute Byte Integers. -// -// Forms: -// -// VPERMB m128 xmm k xmm -// VPERMB m128 xmm xmm -// VPERMB m256 ymm k ymm -// VPERMB m256 ymm ymm -// VPERMB xmm xmm k xmm -// VPERMB xmm xmm xmm -// VPERMB ymm ymm k ymm -// VPERMB ymm ymm ymm -// VPERMB m512 zmm k zmm -// VPERMB m512 zmm zmm -// VPERMB zmm zmm k zmm -// VPERMB zmm zmm zmm -func VPERMB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMB.Forms(), sffxs{}, ops) -} - -// VPERMB_Z: Permute Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPERMB.Z m128 xmm k xmm -// VPERMB.Z m256 ymm k ymm -// VPERMB.Z xmm xmm k xmm -// VPERMB.Z ymm ymm k ymm -// VPERMB.Z m512 zmm k zmm -// VPERMB.Z zmm zmm k zmm -func VPERMB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMD: Permute Doubleword Integers. -// -// Forms: -// -// VPERMD m256 ymm ymm -// VPERMD ymm ymm ymm -// VPERMD m256 ymm k ymm -// VPERMD ymm ymm k ymm -// VPERMD m512 zmm k zmm -// VPERMD m512 zmm zmm -// VPERMD zmm zmm k zmm -// VPERMD zmm zmm zmm -func VPERMD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMD.Forms(), sffxs{}, ops) -} - -// VPERMD_BCST: Permute Doubleword Integers (Broadcast). -// -// Forms: -// -// VPERMD.BCST m32 ymm k ymm -// VPERMD.BCST m32 ymm ymm -// VPERMD.BCST m32 zmm k zmm -// VPERMD.BCST m32 zmm zmm -func VPERMD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMD_BCST_Z: Permute Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMD.BCST.Z m32 ymm k ymm -// VPERMD.BCST.Z m32 zmm k zmm -func VPERMD_BCST_Z(m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, yz, k, yz1}) -} - -// VPERMD_Z: Permute Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPERMD.Z m256 ymm k ymm -// VPERMD.Z ymm ymm k ymm -// VPERMD.Z m512 zmm k zmm -// VPERMD.Z zmm zmm k zmm -func VPERMD_Z(myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMD.Forms(), sffxs{sffxZ}, []operand.Op{myz, yz, k, yz1}) -} - -// VPERMI2B: Full Permute of Bytes From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2B m128 xmm k xmm -// VPERMI2B m128 xmm xmm -// VPERMI2B m256 ymm k ymm -// VPERMI2B m256 ymm ymm -// VPERMI2B xmm xmm k xmm -// VPERMI2B xmm xmm xmm -// VPERMI2B ymm ymm k ymm -// VPERMI2B ymm ymm ymm -// VPERMI2B m512 zmm k zmm -// VPERMI2B m512 zmm zmm -// VPERMI2B zmm zmm k zmm -// VPERMI2B zmm zmm zmm -func VPERMI2B(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2B.Forms(), sffxs{}, ops) -} - -// VPERMI2B_Z: Full Permute of Bytes From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2B.Z m128 xmm k xmm -// VPERMI2B.Z m256 ymm k ymm -// VPERMI2B.Z xmm xmm k xmm -// VPERMI2B.Z ymm ymm k ymm -// VPERMI2B.Z m512 zmm k zmm -// VPERMI2B.Z zmm zmm k zmm -func VPERMI2B_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2B.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMI2D: Full Permute of Doublewords From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2D m128 xmm k xmm -// VPERMI2D m128 xmm xmm -// VPERMI2D m256 ymm k ymm -// VPERMI2D m256 ymm ymm -// VPERMI2D xmm xmm k xmm -// VPERMI2D xmm xmm xmm -// VPERMI2D ymm ymm k ymm -// VPERMI2D ymm ymm ymm -// VPERMI2D m512 zmm k zmm -// VPERMI2D m512 zmm zmm -// VPERMI2D zmm zmm k zmm -// VPERMI2D zmm zmm zmm -func VPERMI2D(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2D.Forms(), sffxs{}, ops) -} - -// VPERMI2D_BCST: Full Permute of Doublewords From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2D.BCST m32 xmm k xmm -// VPERMI2D.BCST m32 xmm xmm -// VPERMI2D.BCST m32 ymm k ymm -// VPERMI2D.BCST m32 ymm ymm -// VPERMI2D.BCST m32 zmm k zmm -// VPERMI2D.BCST m32 zmm zmm -func VPERMI2D_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2D.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMI2D_BCST_Z: Full Permute of Doublewords From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2D.BCST.Z m32 xmm k xmm -// VPERMI2D.BCST.Z m32 ymm k ymm -// VPERMI2D.BCST.Z m32 zmm k zmm -func VPERMI2D_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2D.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPERMI2D_Z: Full Permute of Doublewords From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2D.Z m128 xmm k xmm -// VPERMI2D.Z m256 ymm k ymm -// VPERMI2D.Z xmm xmm k xmm -// VPERMI2D.Z ymm ymm k ymm -// VPERMI2D.Z m512 zmm k zmm -// VPERMI2D.Z zmm zmm k zmm -func VPERMI2D_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2D.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMI2PD: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2PD m128 xmm k xmm -// VPERMI2PD m128 xmm xmm -// VPERMI2PD m256 ymm k ymm -// VPERMI2PD m256 ymm ymm -// VPERMI2PD xmm xmm k xmm -// VPERMI2PD xmm xmm xmm -// VPERMI2PD ymm ymm k ymm -// VPERMI2PD ymm ymm ymm -// VPERMI2PD m512 zmm k zmm -// VPERMI2PD m512 zmm zmm -// VPERMI2PD zmm zmm k zmm -// VPERMI2PD zmm zmm zmm -func VPERMI2PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2PD.Forms(), sffxs{}, ops) -} - -// VPERMI2PD_BCST: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2PD.BCST m64 xmm k xmm -// VPERMI2PD.BCST m64 xmm xmm -// VPERMI2PD.BCST m64 ymm k ymm -// VPERMI2PD.BCST m64 ymm ymm -// VPERMI2PD.BCST m64 zmm k zmm -// VPERMI2PD.BCST m64 zmm zmm -func VPERMI2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMI2PD_BCST_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2PD.BCST.Z m64 xmm k xmm -// VPERMI2PD.BCST.Z m64 ymm k ymm -// VPERMI2PD.BCST.Z m64 zmm k zmm -func VPERMI2PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPERMI2PD_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2PD.Z m128 xmm k xmm -// VPERMI2PD.Z m256 ymm k ymm -// VPERMI2PD.Z xmm xmm k xmm -// VPERMI2PD.Z ymm ymm k ymm -// VPERMI2PD.Z m512 zmm k zmm -// VPERMI2PD.Z zmm zmm k zmm -func VPERMI2PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMI2PS: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2PS m128 xmm k xmm -// VPERMI2PS m128 xmm xmm -// VPERMI2PS m256 ymm k ymm -// VPERMI2PS m256 ymm ymm -// VPERMI2PS xmm xmm k xmm -// VPERMI2PS xmm xmm xmm -// VPERMI2PS ymm ymm k ymm -// VPERMI2PS ymm ymm ymm -// VPERMI2PS m512 zmm k zmm -// VPERMI2PS m512 zmm zmm -// VPERMI2PS zmm zmm k zmm -// VPERMI2PS zmm zmm zmm -func VPERMI2PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2PS.Forms(), sffxs{}, ops) -} - -// VPERMI2PS_BCST: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2PS.BCST m32 xmm k xmm -// VPERMI2PS.BCST m32 xmm xmm -// VPERMI2PS.BCST m32 ymm k ymm -// VPERMI2PS.BCST m32 ymm ymm -// VPERMI2PS.BCST m32 zmm k zmm -// VPERMI2PS.BCST m32 zmm zmm -func VPERMI2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMI2PS_BCST_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2PS.BCST.Z m32 xmm k xmm -// VPERMI2PS.BCST.Z m32 ymm k ymm -// VPERMI2PS.BCST.Z m32 zmm k zmm -func VPERMI2PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPERMI2PS_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2PS.Z m128 xmm k xmm -// VPERMI2PS.Z m256 ymm k ymm -// VPERMI2PS.Z xmm xmm k xmm -// VPERMI2PS.Z ymm ymm k ymm -// VPERMI2PS.Z m512 zmm k zmm -// VPERMI2PS.Z zmm zmm k zmm -func VPERMI2PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMI2Q: Full Permute of Quadwords From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2Q m128 xmm k xmm -// VPERMI2Q m128 xmm xmm -// VPERMI2Q m256 ymm k ymm -// VPERMI2Q m256 ymm ymm -// VPERMI2Q xmm xmm k xmm -// VPERMI2Q xmm xmm xmm -// VPERMI2Q ymm ymm k ymm -// VPERMI2Q ymm ymm ymm -// VPERMI2Q m512 zmm k zmm -// VPERMI2Q m512 zmm zmm -// VPERMI2Q zmm zmm k zmm -// VPERMI2Q zmm zmm zmm -func VPERMI2Q(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2Q.Forms(), sffxs{}, ops) -} - -// VPERMI2Q_BCST: Full Permute of Quadwords From Two Tables Overwriting the Index (Broadcast). -// -// Forms: -// -// VPERMI2Q.BCST m64 xmm k xmm -// VPERMI2Q.BCST m64 xmm xmm -// VPERMI2Q.BCST m64 ymm k ymm -// VPERMI2Q.BCST m64 ymm ymm -// VPERMI2Q.BCST m64 zmm k zmm -// VPERMI2Q.BCST m64 zmm zmm -func VPERMI2Q_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2Q.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMI2Q_BCST_Z: Full Permute of Quadwords From Two Tables Overwriting the Index (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMI2Q.BCST.Z m64 xmm k xmm -// VPERMI2Q.BCST.Z m64 ymm k ymm -// VPERMI2Q.BCST.Z m64 zmm k zmm -func VPERMI2Q_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2Q.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPERMI2Q_Z: Full Permute of Quadwords From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2Q.Z m128 xmm k xmm -// VPERMI2Q.Z m256 ymm k ymm -// VPERMI2Q.Z xmm xmm k xmm -// VPERMI2Q.Z ymm ymm k ymm -// VPERMI2Q.Z m512 zmm k zmm -// VPERMI2Q.Z zmm zmm k zmm -func VPERMI2Q_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2Q.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMI2W: Full Permute of Words From Two Tables Overwriting the Index. -// -// Forms: -// -// VPERMI2W m128 xmm k xmm -// VPERMI2W m128 xmm xmm -// VPERMI2W m256 ymm k ymm -// VPERMI2W m256 ymm ymm -// VPERMI2W xmm xmm k xmm -// VPERMI2W xmm xmm xmm -// VPERMI2W ymm ymm k ymm -// VPERMI2W ymm ymm ymm -// VPERMI2W m512 zmm k zmm -// VPERMI2W m512 zmm zmm -// VPERMI2W zmm zmm k zmm -// VPERMI2W zmm zmm zmm -func VPERMI2W(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2W.Forms(), sffxs{}, ops) -} - -// VPERMI2W_Z: Full Permute of Words From Two Tables Overwriting the Index (Zeroing Masking). -// -// Forms: -// -// VPERMI2W.Z m128 xmm k xmm -// VPERMI2W.Z m256 ymm k ymm -// VPERMI2W.Z xmm xmm k xmm -// VPERMI2W.Z ymm ymm k ymm -// VPERMI2W.Z m512 zmm k zmm -// VPERMI2W.Z zmm zmm k zmm -func VPERMI2W_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMI2W.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMILPD: Permute Double-Precision Floating-Point Values. -// -// Forms: -// -// VPERMILPD imm8 m128 xmm -// VPERMILPD imm8 m256 ymm -// VPERMILPD imm8 xmm xmm -// VPERMILPD imm8 ymm ymm -// VPERMILPD m128 xmm xmm -// VPERMILPD m256 ymm ymm -// VPERMILPD xmm xmm xmm -// VPERMILPD ymm ymm ymm -// VPERMILPD imm8 m128 k xmm -// VPERMILPD imm8 m256 k ymm -// VPERMILPD imm8 xmm k xmm -// VPERMILPD imm8 ymm k ymm -// VPERMILPD m128 xmm k xmm -// VPERMILPD m256 ymm k ymm -// VPERMILPD xmm xmm k xmm -// VPERMILPD ymm ymm k ymm -// VPERMILPD imm8 m512 k zmm -// VPERMILPD imm8 m512 zmm -// VPERMILPD imm8 zmm k zmm -// VPERMILPD imm8 zmm zmm -// VPERMILPD m512 zmm k zmm -// VPERMILPD m512 zmm zmm -// VPERMILPD zmm zmm k zmm -// VPERMILPD zmm zmm zmm -func VPERMILPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMILPD.Forms(), sffxs{}, ops) -} - -// VPERMILPD_BCST: Permute Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VPERMILPD.BCST imm8 m64 k xmm -// VPERMILPD.BCST imm8 m64 k ymm -// VPERMILPD.BCST imm8 m64 xmm -// VPERMILPD.BCST imm8 m64 ymm -// VPERMILPD.BCST m64 xmm k xmm -// VPERMILPD.BCST m64 xmm xmm -// VPERMILPD.BCST m64 ymm k ymm -// VPERMILPD.BCST m64 ymm ymm -// VPERMILPD.BCST imm8 m64 k zmm -// VPERMILPD.BCST imm8 m64 zmm -// VPERMILPD.BCST m64 zmm k zmm -// VPERMILPD.BCST m64 zmm zmm -func VPERMILPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMILPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMILPD_BCST_Z: Permute Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMILPD.BCST.Z imm8 m64 k xmm -// VPERMILPD.BCST.Z imm8 m64 k ymm -// VPERMILPD.BCST.Z m64 xmm k xmm -// VPERMILPD.BCST.Z m64 ymm k ymm -// VPERMILPD.BCST.Z imm8 m64 k zmm -// VPERMILPD.BCST.Z m64 zmm k zmm -func VPERMILPD_BCST_Z(im, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMILPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{im, mxyz, k, xyz}) -} - -// VPERMILPD_Z: Permute Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VPERMILPD.Z imm8 m128 k xmm -// VPERMILPD.Z imm8 m256 k ymm -// VPERMILPD.Z imm8 xmm k xmm -// VPERMILPD.Z imm8 ymm k ymm -// VPERMILPD.Z m128 xmm k xmm -// VPERMILPD.Z m256 ymm k ymm -// VPERMILPD.Z xmm xmm k xmm -// VPERMILPD.Z ymm ymm k ymm -// VPERMILPD.Z imm8 m512 k zmm -// VPERMILPD.Z imm8 zmm k zmm -// VPERMILPD.Z m512 zmm k zmm -// VPERMILPD.Z zmm zmm k zmm -func VPERMILPD_Z(imxyz, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMILPD.Forms(), sffxs{sffxZ}, []operand.Op{imxyz, mxyz, k, xyz}) -} - -// VPERMILPS: Permute Single-Precision Floating-Point Values. -// -// Forms: -// -// VPERMILPS imm8 m128 xmm -// VPERMILPS imm8 m256 ymm -// VPERMILPS imm8 xmm xmm -// VPERMILPS imm8 ymm ymm -// VPERMILPS m128 xmm xmm -// VPERMILPS m256 ymm ymm -// VPERMILPS xmm xmm xmm -// VPERMILPS ymm ymm ymm -// VPERMILPS imm8 m128 k xmm -// VPERMILPS imm8 m256 k ymm -// VPERMILPS imm8 xmm k xmm -// VPERMILPS imm8 ymm k ymm -// VPERMILPS m128 xmm k xmm -// VPERMILPS m256 ymm k ymm -// VPERMILPS xmm xmm k xmm -// VPERMILPS ymm ymm k ymm -// VPERMILPS imm8 m512 k zmm -// VPERMILPS imm8 m512 zmm -// VPERMILPS imm8 zmm k zmm -// VPERMILPS imm8 zmm zmm -// VPERMILPS m512 zmm k zmm -// VPERMILPS m512 zmm zmm -// VPERMILPS zmm zmm k zmm -// VPERMILPS zmm zmm zmm -func VPERMILPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMILPS.Forms(), sffxs{}, ops) -} - -// VPERMILPS_BCST: Permute Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VPERMILPS.BCST imm8 m32 k xmm -// VPERMILPS.BCST imm8 m32 k ymm -// VPERMILPS.BCST imm8 m32 xmm -// VPERMILPS.BCST imm8 m32 ymm -// VPERMILPS.BCST m32 xmm k xmm -// VPERMILPS.BCST m32 xmm xmm -// VPERMILPS.BCST m32 ymm k ymm -// VPERMILPS.BCST m32 ymm ymm -// VPERMILPS.BCST imm8 m32 k zmm -// VPERMILPS.BCST imm8 m32 zmm -// VPERMILPS.BCST m32 zmm k zmm -// VPERMILPS.BCST m32 zmm zmm -func VPERMILPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMILPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMILPS_BCST_Z: Permute Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMILPS.BCST.Z imm8 m32 k xmm -// VPERMILPS.BCST.Z imm8 m32 k ymm -// VPERMILPS.BCST.Z m32 xmm k xmm -// VPERMILPS.BCST.Z m32 ymm k ymm -// VPERMILPS.BCST.Z imm8 m32 k zmm -// VPERMILPS.BCST.Z m32 zmm k zmm -func VPERMILPS_BCST_Z(im, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMILPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{im, mxyz, k, xyz}) -} - -// VPERMILPS_Z: Permute Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VPERMILPS.Z imm8 m128 k xmm -// VPERMILPS.Z imm8 m256 k ymm -// VPERMILPS.Z imm8 xmm k xmm -// VPERMILPS.Z imm8 ymm k ymm -// VPERMILPS.Z m128 xmm k xmm -// VPERMILPS.Z m256 ymm k ymm -// VPERMILPS.Z xmm xmm k xmm -// VPERMILPS.Z ymm ymm k ymm -// VPERMILPS.Z imm8 m512 k zmm -// VPERMILPS.Z imm8 zmm k zmm -// VPERMILPS.Z m512 zmm k zmm -// VPERMILPS.Z zmm zmm k zmm -func VPERMILPS_Z(imxyz, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMILPS.Forms(), sffxs{sffxZ}, []operand.Op{imxyz, mxyz, k, xyz}) -} - -// VPERMPD: Permute Double-Precision Floating-Point Elements. -// -// Forms: -// -// VPERMPD imm8 m256 ymm -// VPERMPD imm8 ymm ymm -// VPERMPD imm8 m256 k ymm -// VPERMPD imm8 ymm k ymm -// VPERMPD m256 ymm k ymm -// VPERMPD m256 ymm ymm -// VPERMPD ymm ymm k ymm -// VPERMPD ymm ymm ymm -// VPERMPD imm8 m512 k zmm -// VPERMPD imm8 m512 zmm -// VPERMPD imm8 zmm k zmm -// VPERMPD imm8 zmm zmm -// VPERMPD m512 zmm k zmm -// VPERMPD m512 zmm zmm -// VPERMPD zmm zmm k zmm -// VPERMPD zmm zmm zmm -func VPERMPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMPD.Forms(), sffxs{}, ops) -} - -// VPERMPD_BCST: Permute Double-Precision Floating-Point Elements (Broadcast). -// -// Forms: -// -// VPERMPD.BCST imm8 m64 k ymm -// VPERMPD.BCST imm8 m64 ymm -// VPERMPD.BCST m64 ymm k ymm -// VPERMPD.BCST m64 ymm ymm -// VPERMPD.BCST imm8 m64 k zmm -// VPERMPD.BCST imm8 m64 zmm -// VPERMPD.BCST m64 zmm k zmm -// VPERMPD.BCST m64 zmm zmm -func VPERMPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMPD_BCST_Z: Permute Double-Precision Floating-Point Elements (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMPD.BCST.Z imm8 m64 k ymm -// VPERMPD.BCST.Z m64 ymm k ymm -// VPERMPD.BCST.Z imm8 m64 k zmm -// VPERMPD.BCST.Z m64 zmm k zmm -func VPERMPD_BCST_Z(im, myz, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{im, myz, k, yz}) -} - -// VPERMPD_Z: Permute Double-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VPERMPD.Z imm8 m256 k ymm -// VPERMPD.Z imm8 ymm k ymm -// VPERMPD.Z m256 ymm k ymm -// VPERMPD.Z ymm ymm k ymm -// VPERMPD.Z imm8 m512 k zmm -// VPERMPD.Z imm8 zmm k zmm -// VPERMPD.Z m512 zmm k zmm -// VPERMPD.Z zmm zmm k zmm -func VPERMPD_Z(imyz, myz, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMPD.Forms(), sffxs{sffxZ}, []operand.Op{imyz, myz, k, yz}) -} - -// VPERMPS: Permute Single-Precision Floating-Point Elements. -// -// Forms: -// -// VPERMPS m256 ymm ymm -// VPERMPS ymm ymm ymm -// VPERMPS m256 ymm k ymm -// VPERMPS ymm ymm k ymm -// VPERMPS m512 zmm k zmm -// VPERMPS m512 zmm zmm -// VPERMPS zmm zmm k zmm -// VPERMPS zmm zmm zmm -func VPERMPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMPS.Forms(), sffxs{}, ops) -} - -// VPERMPS_BCST: Permute Single-Precision Floating-Point Elements (Broadcast). -// -// Forms: -// -// VPERMPS.BCST m32 ymm k ymm -// VPERMPS.BCST m32 ymm ymm -// VPERMPS.BCST m32 zmm k zmm -// VPERMPS.BCST m32 zmm zmm -func VPERMPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMPS_BCST_Z: Permute Single-Precision Floating-Point Elements (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMPS.BCST.Z m32 ymm k ymm -// VPERMPS.BCST.Z m32 zmm k zmm -func VPERMPS_BCST_Z(m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, yz, k, yz1}) -} - -// VPERMPS_Z: Permute Single-Precision Floating-Point Elements (Zeroing Masking). -// -// Forms: -// -// VPERMPS.Z m256 ymm k ymm -// VPERMPS.Z ymm ymm k ymm -// VPERMPS.Z m512 zmm k zmm -// VPERMPS.Z zmm zmm k zmm -func VPERMPS_Z(myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMPS.Forms(), sffxs{sffxZ}, []operand.Op{myz, yz, k, yz1}) -} - -// VPERMQ: Permute Quadword Integers. -// -// Forms: -// -// VPERMQ imm8 m256 ymm -// VPERMQ imm8 ymm ymm -// VPERMQ imm8 m256 k ymm -// VPERMQ imm8 ymm k ymm -// VPERMQ m256 ymm k ymm -// VPERMQ m256 ymm ymm -// VPERMQ ymm ymm k ymm -// VPERMQ ymm ymm ymm -// VPERMQ imm8 m512 k zmm -// VPERMQ imm8 m512 zmm -// VPERMQ imm8 zmm k zmm -// VPERMQ imm8 zmm zmm -// VPERMQ m512 zmm k zmm -// VPERMQ m512 zmm zmm -// VPERMQ zmm zmm k zmm -// VPERMQ zmm zmm zmm -func VPERMQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMQ.Forms(), sffxs{}, ops) -} - -// VPERMQ_BCST: Permute Quadword Integers (Broadcast). -// -// Forms: -// -// VPERMQ.BCST imm8 m64 k ymm -// VPERMQ.BCST imm8 m64 ymm -// VPERMQ.BCST m64 ymm k ymm -// VPERMQ.BCST m64 ymm ymm -// VPERMQ.BCST imm8 m64 k zmm -// VPERMQ.BCST imm8 m64 zmm -// VPERMQ.BCST m64 zmm k zmm -// VPERMQ.BCST m64 zmm zmm -func VPERMQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMQ_BCST_Z: Permute Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMQ.BCST.Z imm8 m64 k ymm -// VPERMQ.BCST.Z m64 ymm k ymm -// VPERMQ.BCST.Z imm8 m64 k zmm -// VPERMQ.BCST.Z m64 zmm k zmm -func VPERMQ_BCST_Z(im, myz, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{im, myz, k, yz}) -} - -// VPERMQ_Z: Permute Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPERMQ.Z imm8 m256 k ymm -// VPERMQ.Z imm8 ymm k ymm -// VPERMQ.Z m256 ymm k ymm -// VPERMQ.Z ymm ymm k ymm -// VPERMQ.Z imm8 m512 k zmm -// VPERMQ.Z imm8 zmm k zmm -// VPERMQ.Z m512 zmm k zmm -// VPERMQ.Z zmm zmm k zmm -func VPERMQ_Z(imyz, myz, k, yz operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMQ.Forms(), sffxs{sffxZ}, []operand.Op{imyz, myz, k, yz}) -} - -// VPERMT2B: Full Permute of Bytes From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2B m128 xmm k xmm -// VPERMT2B m128 xmm xmm -// VPERMT2B m256 ymm k ymm -// VPERMT2B m256 ymm ymm -// VPERMT2B xmm xmm k xmm -// VPERMT2B xmm xmm xmm -// VPERMT2B ymm ymm k ymm -// VPERMT2B ymm ymm ymm -// VPERMT2B m512 zmm k zmm -// VPERMT2B m512 zmm zmm -// VPERMT2B zmm zmm k zmm -// VPERMT2B zmm zmm zmm -func VPERMT2B(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2B.Forms(), sffxs{}, ops) -} - -// VPERMT2B_Z: Full Permute of Bytes From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2B.Z m128 xmm k xmm -// VPERMT2B.Z m256 ymm k ymm -// VPERMT2B.Z xmm xmm k xmm -// VPERMT2B.Z ymm ymm k ymm -// VPERMT2B.Z m512 zmm k zmm -// VPERMT2B.Z zmm zmm k zmm -func VPERMT2B_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2B.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMT2D: Full Permute of Doublewords From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2D m128 xmm k xmm -// VPERMT2D m128 xmm xmm -// VPERMT2D m256 ymm k ymm -// VPERMT2D m256 ymm ymm -// VPERMT2D xmm xmm k xmm -// VPERMT2D xmm xmm xmm -// VPERMT2D ymm ymm k ymm -// VPERMT2D ymm ymm ymm -// VPERMT2D m512 zmm k zmm -// VPERMT2D m512 zmm zmm -// VPERMT2D zmm zmm k zmm -// VPERMT2D zmm zmm zmm -func VPERMT2D(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2D.Forms(), sffxs{}, ops) -} - -// VPERMT2D_BCST: Full Permute of Doublewords From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2D.BCST m32 xmm k xmm -// VPERMT2D.BCST m32 xmm xmm -// VPERMT2D.BCST m32 ymm k ymm -// VPERMT2D.BCST m32 ymm ymm -// VPERMT2D.BCST m32 zmm k zmm -// VPERMT2D.BCST m32 zmm zmm -func VPERMT2D_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2D.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMT2D_BCST_Z: Full Permute of Doublewords From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2D.BCST.Z m32 xmm k xmm -// VPERMT2D.BCST.Z m32 ymm k ymm -// VPERMT2D.BCST.Z m32 zmm k zmm -func VPERMT2D_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2D.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPERMT2D_Z: Full Permute of Doublewords From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2D.Z m128 xmm k xmm -// VPERMT2D.Z m256 ymm k ymm -// VPERMT2D.Z xmm xmm k xmm -// VPERMT2D.Z ymm ymm k ymm -// VPERMT2D.Z m512 zmm k zmm -// VPERMT2D.Z zmm zmm k zmm -func VPERMT2D_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2D.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMT2PD: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2PD m128 xmm k xmm -// VPERMT2PD m128 xmm xmm -// VPERMT2PD m256 ymm k ymm -// VPERMT2PD m256 ymm ymm -// VPERMT2PD xmm xmm k xmm -// VPERMT2PD xmm xmm xmm -// VPERMT2PD ymm ymm k ymm -// VPERMT2PD ymm ymm ymm -// VPERMT2PD m512 zmm k zmm -// VPERMT2PD m512 zmm zmm -// VPERMT2PD zmm zmm k zmm -// VPERMT2PD zmm zmm zmm -func VPERMT2PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2PD.Forms(), sffxs{}, ops) -} - -// VPERMT2PD_BCST: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2PD.BCST m64 xmm k xmm -// VPERMT2PD.BCST m64 xmm xmm -// VPERMT2PD.BCST m64 ymm k ymm -// VPERMT2PD.BCST m64 ymm ymm -// VPERMT2PD.BCST m64 zmm k zmm -// VPERMT2PD.BCST m64 zmm zmm -func VPERMT2PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMT2PD_BCST_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2PD.BCST.Z m64 xmm k xmm -// VPERMT2PD.BCST.Z m64 ymm k ymm -// VPERMT2PD.BCST.Z m64 zmm k zmm -func VPERMT2PD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPERMT2PD_Z: Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2PD.Z m128 xmm k xmm -// VPERMT2PD.Z m256 ymm k ymm -// VPERMT2PD.Z xmm xmm k xmm -// VPERMT2PD.Z ymm ymm k ymm -// VPERMT2PD.Z m512 zmm k zmm -// VPERMT2PD.Z zmm zmm k zmm -func VPERMT2PD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMT2PS: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2PS m128 xmm k xmm -// VPERMT2PS m128 xmm xmm -// VPERMT2PS m256 ymm k ymm -// VPERMT2PS m256 ymm ymm -// VPERMT2PS xmm xmm k xmm -// VPERMT2PS xmm xmm xmm -// VPERMT2PS ymm ymm k ymm -// VPERMT2PS ymm ymm ymm -// VPERMT2PS m512 zmm k zmm -// VPERMT2PS m512 zmm zmm -// VPERMT2PS zmm zmm k zmm -// VPERMT2PS zmm zmm zmm -func VPERMT2PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2PS.Forms(), sffxs{}, ops) -} - -// VPERMT2PS_BCST: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2PS.BCST m32 xmm k xmm -// VPERMT2PS.BCST m32 xmm xmm -// VPERMT2PS.BCST m32 ymm k ymm -// VPERMT2PS.BCST m32 ymm ymm -// VPERMT2PS.BCST m32 zmm k zmm -// VPERMT2PS.BCST m32 zmm zmm -func VPERMT2PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMT2PS_BCST_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2PS.BCST.Z m32 xmm k xmm -// VPERMT2PS.BCST.Z m32 ymm k ymm -// VPERMT2PS.BCST.Z m32 zmm k zmm -func VPERMT2PS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPERMT2PS_Z: Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2PS.Z m128 xmm k xmm -// VPERMT2PS.Z m256 ymm k ymm -// VPERMT2PS.Z xmm xmm k xmm -// VPERMT2PS.Z ymm ymm k ymm -// VPERMT2PS.Z m512 zmm k zmm -// VPERMT2PS.Z zmm zmm k zmm -func VPERMT2PS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMT2Q: Full Permute of Quadwords From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2Q m128 xmm k xmm -// VPERMT2Q m128 xmm xmm -// VPERMT2Q m256 ymm k ymm -// VPERMT2Q m256 ymm ymm -// VPERMT2Q xmm xmm k xmm -// VPERMT2Q xmm xmm xmm -// VPERMT2Q ymm ymm k ymm -// VPERMT2Q ymm ymm ymm -// VPERMT2Q m512 zmm k zmm -// VPERMT2Q m512 zmm zmm -// VPERMT2Q zmm zmm k zmm -// VPERMT2Q zmm zmm zmm -func VPERMT2Q(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2Q.Forms(), sffxs{}, ops) -} - -// VPERMT2Q_BCST: Full Permute of Quadwords From Two Tables Overwriting a Table (Broadcast). -// -// Forms: -// -// VPERMT2Q.BCST m64 xmm k xmm -// VPERMT2Q.BCST m64 xmm xmm -// VPERMT2Q.BCST m64 ymm k ymm -// VPERMT2Q.BCST m64 ymm ymm -// VPERMT2Q.BCST m64 zmm k zmm -// VPERMT2Q.BCST m64 zmm zmm -func VPERMT2Q_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2Q.Forms(), sffxs{sffxBCST}, ops) -} - -// VPERMT2Q_BCST_Z: Full Permute of Quadwords From Two Tables Overwriting a Table (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPERMT2Q.BCST.Z m64 xmm k xmm -// VPERMT2Q.BCST.Z m64 ymm k ymm -// VPERMT2Q.BCST.Z m64 zmm k zmm -func VPERMT2Q_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2Q.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPERMT2Q_Z: Full Permute of Quadwords From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2Q.Z m128 xmm k xmm -// VPERMT2Q.Z m256 ymm k ymm -// VPERMT2Q.Z xmm xmm k xmm -// VPERMT2Q.Z ymm ymm k ymm -// VPERMT2Q.Z m512 zmm k zmm -// VPERMT2Q.Z zmm zmm k zmm -func VPERMT2Q_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2Q.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMT2W: Full Permute of Words From Two Tables Overwriting a Table. -// -// Forms: -// -// VPERMT2W m128 xmm k xmm -// VPERMT2W m128 xmm xmm -// VPERMT2W m256 ymm k ymm -// VPERMT2W m256 ymm ymm -// VPERMT2W xmm xmm k xmm -// VPERMT2W xmm xmm xmm -// VPERMT2W ymm ymm k ymm -// VPERMT2W ymm ymm ymm -// VPERMT2W m512 zmm k zmm -// VPERMT2W m512 zmm zmm -// VPERMT2W zmm zmm k zmm -// VPERMT2W zmm zmm zmm -func VPERMT2W(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2W.Forms(), sffxs{}, ops) -} - -// VPERMT2W_Z: Full Permute of Words From Two Tables Overwriting a Table (Zeroing Masking). -// -// Forms: -// -// VPERMT2W.Z m128 xmm k xmm -// VPERMT2W.Z m256 ymm k ymm -// VPERMT2W.Z xmm xmm k xmm -// VPERMT2W.Z ymm ymm k ymm -// VPERMT2W.Z m512 zmm k zmm -// VPERMT2W.Z zmm zmm k zmm -func VPERMT2W_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMT2W.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPERMW: Permute Word Integers. -// -// Forms: -// -// VPERMW m128 xmm k xmm -// VPERMW m128 xmm xmm -// VPERMW m256 ymm k ymm -// VPERMW m256 ymm ymm -// VPERMW xmm xmm k xmm -// VPERMW xmm xmm xmm -// VPERMW ymm ymm k ymm -// VPERMW ymm ymm ymm -// VPERMW m512 zmm k zmm -// VPERMW m512 zmm zmm -// VPERMW zmm zmm k zmm -// VPERMW zmm zmm zmm -func VPERMW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMW.Forms(), sffxs{}, ops) -} - -// VPERMW_Z: Permute Word Integers (Zeroing Masking). -// -// Forms: -// -// VPERMW.Z m128 xmm k xmm -// VPERMW.Z m256 ymm k ymm -// VPERMW.Z xmm xmm k xmm -// VPERMW.Z ymm ymm k ymm -// VPERMW.Z m512 zmm k zmm -// VPERMW.Z zmm zmm k zmm -func VPERMW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPERMW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPEXPANDB: Load Sparse Packed Byte Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDB m128 k xmm -// VPEXPANDB m128 xmm -// VPEXPANDB m256 k ymm -// VPEXPANDB m256 ymm -// VPEXPANDB xmm k xmm -// VPEXPANDB xmm xmm -// VPEXPANDB ymm k ymm -// VPEXPANDB ymm ymm -// VPEXPANDB m512 k zmm -// VPEXPANDB m512 zmm -// VPEXPANDB zmm k zmm -// VPEXPANDB zmm zmm -func VPEXPANDB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXPANDB.Forms(), sffxs{}, ops) -} - -// VPEXPANDB_Z: Load Sparse Packed Byte Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDB.Z m128 k xmm -// VPEXPANDB.Z m256 k ymm -// VPEXPANDB.Z xmm k xmm -// VPEXPANDB.Z ymm k ymm -// VPEXPANDB.Z m512 k zmm -// VPEXPANDB.Z zmm k zmm -func VPEXPANDB_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXPANDB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPEXPANDD: Load Sparse Packed Doubleword Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDD m128 k xmm -// VPEXPANDD m128 xmm -// VPEXPANDD m256 k ymm -// VPEXPANDD m256 ymm -// VPEXPANDD xmm k xmm -// VPEXPANDD xmm xmm -// VPEXPANDD ymm k ymm -// VPEXPANDD ymm ymm -// VPEXPANDD m512 k zmm -// VPEXPANDD m512 zmm -// VPEXPANDD zmm k zmm -// VPEXPANDD zmm zmm -func VPEXPANDD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXPANDD.Forms(), sffxs{}, ops) -} - -// VPEXPANDD_Z: Load Sparse Packed Doubleword Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDD.Z m128 k xmm -// VPEXPANDD.Z m256 k ymm -// VPEXPANDD.Z xmm k xmm -// VPEXPANDD.Z ymm k ymm -// VPEXPANDD.Z m512 k zmm -// VPEXPANDD.Z zmm k zmm -func VPEXPANDD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXPANDD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPEXPANDQ: Load Sparse Packed Quadword Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDQ m128 k xmm -// VPEXPANDQ m128 xmm -// VPEXPANDQ m256 k ymm -// VPEXPANDQ m256 ymm -// VPEXPANDQ xmm k xmm -// VPEXPANDQ xmm xmm -// VPEXPANDQ ymm k ymm -// VPEXPANDQ ymm ymm -// VPEXPANDQ m512 k zmm -// VPEXPANDQ m512 zmm -// VPEXPANDQ zmm k zmm -// VPEXPANDQ zmm zmm -func VPEXPANDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXPANDQ.Forms(), sffxs{}, ops) -} - -// VPEXPANDQ_Z: Load Sparse Packed Quadword Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDQ.Z m128 k xmm -// VPEXPANDQ.Z m256 k ymm -// VPEXPANDQ.Z xmm k xmm -// VPEXPANDQ.Z ymm k ymm -// VPEXPANDQ.Z m512 k zmm -// VPEXPANDQ.Z zmm k zmm -func VPEXPANDQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXPANDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPEXPANDW: Load Sparse Packed Word Integer Values from Dense Memory/Register. -// -// Forms: -// -// VPEXPANDW m128 k xmm -// VPEXPANDW m128 xmm -// VPEXPANDW m256 k ymm -// VPEXPANDW m256 ymm -// VPEXPANDW xmm k xmm -// VPEXPANDW xmm xmm -// VPEXPANDW ymm k ymm -// VPEXPANDW ymm ymm -// VPEXPANDW m512 k zmm -// VPEXPANDW m512 zmm -// VPEXPANDW zmm k zmm -// VPEXPANDW zmm zmm -func VPEXPANDW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXPANDW.Forms(), sffxs{}, ops) -} - -// VPEXPANDW_Z: Load Sparse Packed Word Integer Values from Dense Memory/Register (Zeroing Masking). -// -// Forms: -// -// VPEXPANDW.Z m128 k xmm -// VPEXPANDW.Z m256 k ymm -// VPEXPANDW.Z xmm k xmm -// VPEXPANDW.Z ymm k ymm -// VPEXPANDW.Z m512 k zmm -// VPEXPANDW.Z zmm k zmm -func VPEXPANDW_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXPANDW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPEXTRB: Extract Byte. -// -// Forms: -// -// VPEXTRB imm8 xmm m8 -// VPEXTRB imm8 xmm r32 -func VPEXTRB(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXTRB.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// VPEXTRD: Extract Doubleword. -// -// Forms: -// -// VPEXTRD imm8 xmm m32 -// VPEXTRD imm8 xmm r32 -func VPEXTRD(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXTRD.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// VPEXTRQ: Extract Quadword. -// -// Forms: -// -// VPEXTRQ imm8 xmm m64 -// VPEXTRQ imm8 xmm r64 -func VPEXTRQ(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXTRQ.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// VPEXTRW: Extract Word. -// -// Forms: -// -// VPEXTRW imm8 xmm m16 -// VPEXTRW imm8 xmm r32 -func VPEXTRW(i, x, mr operand.Op) (*intrep.Instruction, error) { - return build(opcVPEXTRW.Forms(), sffxs{}, []operand.Op{i, x, mr}) -} - -// VPGATHERDD: Gather Packed Doubleword Values Using Signed Doubleword Indices. -// -// Forms: -// -// VPGATHERDD xmm vm32x xmm -// VPGATHERDD ymm vm32y ymm -// VPGATHERDD vm32x k xmm -// VPGATHERDD vm32y k ymm -// VPGATHERDD vm32z k zmm -func VPGATHERDD(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPGATHERDD.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz}) -} - -// VPGATHERDQ: Gather Packed Quadword Values Using Signed Doubleword Indices. -// -// Forms: -// -// VPGATHERDQ xmm vm32x xmm -// VPGATHERDQ ymm vm32x ymm -// VPGATHERDQ vm32x k xmm -// VPGATHERDQ vm32x k ymm -// VPGATHERDQ vm32y k zmm -func VPGATHERDQ(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPGATHERDQ.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz}) -} - -// VPGATHERQD: Gather Packed Doubleword Values Using Signed Quadword Indices. -// -// Forms: -// -// VPGATHERQD xmm vm64x xmm -// VPGATHERQD xmm vm64y xmm -// VPGATHERQD vm64x k xmm -// VPGATHERQD vm64y k xmm -// VPGATHERQD vm64z k ymm -func VPGATHERQD(vx, kv, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVPGATHERQD.Forms(), sffxs{}, []operand.Op{vx, kv, xy}) -} - -// VPGATHERQQ: Gather Packed Quadword Values Using Signed Quadword Indices. -// -// Forms: -// -// VPGATHERQQ xmm vm64x xmm -// VPGATHERQQ ymm vm64y ymm -// VPGATHERQQ vm64x k xmm -// VPGATHERQQ vm64y k ymm -// VPGATHERQQ vm64z k zmm -func VPGATHERQQ(vxy, kv, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPGATHERQQ.Forms(), sffxs{}, []operand.Op{vxy, kv, xyz}) -} - -// VPHADDD: Packed Horizontal Add Doubleword Integer. -// -// Forms: -// -// VPHADDD m256 ymm ymm -// VPHADDD ymm ymm ymm -// VPHADDD m128 xmm xmm -// VPHADDD xmm xmm xmm -func VPHADDD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPHADDD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPHADDSW: Packed Horizontal Add Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPHADDSW m256 ymm ymm -// VPHADDSW ymm ymm ymm -// VPHADDSW m128 xmm xmm -// VPHADDSW xmm xmm xmm -func VPHADDSW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPHADDSW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPHADDW: Packed Horizontal Add Word Integers. -// -// Forms: -// -// VPHADDW m256 ymm ymm -// VPHADDW ymm ymm ymm -// VPHADDW m128 xmm xmm -// VPHADDW xmm xmm xmm -func VPHADDW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPHADDW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPHMINPOSUW: Packed Horizontal Minimum of Unsigned Word Integers. -// -// Forms: -// -// VPHMINPOSUW m128 xmm -// VPHMINPOSUW xmm xmm -func VPHMINPOSUW(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVPHMINPOSUW.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// VPHSUBD: Packed Horizontal Subtract Doubleword Integers. -// -// Forms: -// -// VPHSUBD m256 ymm ymm -// VPHSUBD ymm ymm ymm -// VPHSUBD m128 xmm xmm -// VPHSUBD xmm xmm xmm -func VPHSUBD(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPHSUBD.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPHSUBSW: Packed Horizontal Subtract Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPHSUBSW m256 ymm ymm -// VPHSUBSW ymm ymm ymm -// VPHSUBSW m128 xmm xmm -// VPHSUBSW xmm xmm xmm -func VPHSUBSW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPHSUBSW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPHSUBW: Packed Horizontal Subtract Word Integers. -// -// Forms: -// -// VPHSUBW m256 ymm ymm -// VPHSUBW ymm ymm ymm -// VPHSUBW m128 xmm xmm -// VPHSUBW xmm xmm xmm -func VPHSUBW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPHSUBW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPINSRB: Insert Byte. -// -// Forms: -// -// VPINSRB imm8 m8 xmm xmm -// VPINSRB imm8 r32 xmm xmm -func VPINSRB(i, mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPINSRB.Forms(), sffxs{}, []operand.Op{i, mr, x, x1}) -} - -// VPINSRD: Insert Doubleword. -// -// Forms: -// -// VPINSRD imm8 m32 xmm xmm -// VPINSRD imm8 r32 xmm xmm -func VPINSRD(i, mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPINSRD.Forms(), sffxs{}, []operand.Op{i, mr, x, x1}) -} - -// VPINSRQ: Insert Quadword. -// -// Forms: -// -// VPINSRQ imm8 m64 xmm xmm -// VPINSRQ imm8 r64 xmm xmm -func VPINSRQ(i, mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPINSRQ.Forms(), sffxs{}, []operand.Op{i, mr, x, x1}) -} - -// VPINSRW: Insert Word. -// -// Forms: -// -// VPINSRW imm8 m16 xmm xmm -// VPINSRW imm8 r32 xmm xmm -func VPINSRW(i, mr, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPINSRW.Forms(), sffxs{}, []operand.Op{i, mr, x, x1}) -} - -// VPLZCNTD: Count the Number of Leading Zero Bits for Packed Doubleword Values. -// -// Forms: -// -// VPLZCNTD m128 k xmm -// VPLZCNTD m128 xmm -// VPLZCNTD m256 k ymm -// VPLZCNTD m256 ymm -// VPLZCNTD xmm k xmm -// VPLZCNTD xmm xmm -// VPLZCNTD ymm k ymm -// VPLZCNTD ymm ymm -// VPLZCNTD m512 k zmm -// VPLZCNTD m512 zmm -// VPLZCNTD zmm k zmm -// VPLZCNTD zmm zmm -func VPLZCNTD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPLZCNTD.Forms(), sffxs{}, ops) -} - -// VPLZCNTD_BCST: Count the Number of Leading Zero Bits for Packed Doubleword Values (Broadcast). -// -// Forms: -// -// VPLZCNTD.BCST m32 k xmm -// VPLZCNTD.BCST m32 k ymm -// VPLZCNTD.BCST m32 xmm -// VPLZCNTD.BCST m32 ymm -// VPLZCNTD.BCST m32 k zmm -// VPLZCNTD.BCST m32 zmm -func VPLZCNTD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPLZCNTD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPLZCNTD_BCST_Z: Count the Number of Leading Zero Bits for Packed Doubleword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPLZCNTD.BCST.Z m32 k xmm -// VPLZCNTD.BCST.Z m32 k ymm -// VPLZCNTD.BCST.Z m32 k zmm -func VPLZCNTD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPLZCNTD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VPLZCNTD_Z: Count the Number of Leading Zero Bits for Packed Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VPLZCNTD.Z m128 k xmm -// VPLZCNTD.Z m256 k ymm -// VPLZCNTD.Z xmm k xmm -// VPLZCNTD.Z ymm k ymm -// VPLZCNTD.Z m512 k zmm -// VPLZCNTD.Z zmm k zmm -func VPLZCNTD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPLZCNTD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPLZCNTQ: Count the Number of Leading Zero Bits for Packed Quadword Values. -// -// Forms: -// -// VPLZCNTQ m128 k xmm -// VPLZCNTQ m128 xmm -// VPLZCNTQ m256 k ymm -// VPLZCNTQ m256 ymm -// VPLZCNTQ xmm k xmm -// VPLZCNTQ xmm xmm -// VPLZCNTQ ymm k ymm -// VPLZCNTQ ymm ymm -// VPLZCNTQ m512 k zmm -// VPLZCNTQ m512 zmm -// VPLZCNTQ zmm k zmm -// VPLZCNTQ zmm zmm -func VPLZCNTQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPLZCNTQ.Forms(), sffxs{}, ops) -} - -// VPLZCNTQ_BCST: Count the Number of Leading Zero Bits for Packed Quadword Values (Broadcast). -// -// Forms: -// -// VPLZCNTQ.BCST m64 k xmm -// VPLZCNTQ.BCST m64 k ymm -// VPLZCNTQ.BCST m64 xmm -// VPLZCNTQ.BCST m64 ymm -// VPLZCNTQ.BCST m64 k zmm -// VPLZCNTQ.BCST m64 zmm -func VPLZCNTQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPLZCNTQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPLZCNTQ_BCST_Z: Count the Number of Leading Zero Bits for Packed Quadword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPLZCNTQ.BCST.Z m64 k xmm -// VPLZCNTQ.BCST.Z m64 k ymm -// VPLZCNTQ.BCST.Z m64 k zmm -func VPLZCNTQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPLZCNTQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VPLZCNTQ_Z: Count the Number of Leading Zero Bits for Packed Quadword Values (Zeroing Masking). -// -// Forms: -// -// VPLZCNTQ.Z m128 k xmm -// VPLZCNTQ.Z m256 k ymm -// VPLZCNTQ.Z xmm k xmm -// VPLZCNTQ.Z ymm k ymm -// VPLZCNTQ.Z m512 k zmm -// VPLZCNTQ.Z zmm k zmm -func VPLZCNTQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPLZCNTQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPMADD52HUQ: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators. -// -// Forms: -// -// VPMADD52HUQ m128 xmm k xmm -// VPMADD52HUQ m128 xmm xmm -// VPMADD52HUQ m256 ymm k ymm -// VPMADD52HUQ m256 ymm ymm -// VPMADD52HUQ xmm xmm k xmm -// VPMADD52HUQ xmm xmm xmm -// VPMADD52HUQ ymm ymm k ymm -// VPMADD52HUQ ymm ymm ymm -// VPMADD52HUQ m512 zmm k zmm -// VPMADD52HUQ m512 zmm zmm -// VPMADD52HUQ zmm zmm k zmm -// VPMADD52HUQ zmm zmm zmm -func VPMADD52HUQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADD52HUQ.Forms(), sffxs{}, ops) -} - -// VPMADD52HUQ_BCST: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Broadcast). -// -// Forms: -// -// VPMADD52HUQ.BCST m64 xmm k xmm -// VPMADD52HUQ.BCST m64 xmm xmm -// VPMADD52HUQ.BCST m64 ymm k ymm -// VPMADD52HUQ.BCST m64 ymm ymm -// VPMADD52HUQ.BCST m64 zmm k zmm -// VPMADD52HUQ.BCST m64 zmm zmm -func VPMADD52HUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADD52HUQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMADD52HUQ_BCST_Z: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMADD52HUQ.BCST.Z m64 xmm k xmm -// VPMADD52HUQ.BCST.Z m64 ymm k ymm -// VPMADD52HUQ.BCST.Z m64 zmm k zmm -func VPMADD52HUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADD52HUQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMADD52HUQ_Z: Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators (Zeroing Masking). -// -// Forms: -// -// VPMADD52HUQ.Z m128 xmm k xmm -// VPMADD52HUQ.Z m256 ymm k ymm -// VPMADD52HUQ.Z xmm xmm k xmm -// VPMADD52HUQ.Z ymm ymm k ymm -// VPMADD52HUQ.Z m512 zmm k zmm -// VPMADD52HUQ.Z zmm zmm k zmm -func VPMADD52HUQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADD52HUQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMADD52LUQ: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators. -// -// Forms: -// -// VPMADD52LUQ m128 xmm k xmm -// VPMADD52LUQ m128 xmm xmm -// VPMADD52LUQ m256 ymm k ymm -// VPMADD52LUQ m256 ymm ymm -// VPMADD52LUQ xmm xmm k xmm -// VPMADD52LUQ xmm xmm xmm -// VPMADD52LUQ ymm ymm k ymm -// VPMADD52LUQ ymm ymm ymm -// VPMADD52LUQ m512 zmm k zmm -// VPMADD52LUQ m512 zmm zmm -// VPMADD52LUQ zmm zmm k zmm -// VPMADD52LUQ zmm zmm zmm -func VPMADD52LUQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADD52LUQ.Forms(), sffxs{}, ops) -} - -// VPMADD52LUQ_BCST: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Broadcast). -// -// Forms: -// -// VPMADD52LUQ.BCST m64 xmm k xmm -// VPMADD52LUQ.BCST m64 xmm xmm -// VPMADD52LUQ.BCST m64 ymm k ymm -// VPMADD52LUQ.BCST m64 ymm ymm -// VPMADD52LUQ.BCST m64 zmm k zmm -// VPMADD52LUQ.BCST m64 zmm zmm -func VPMADD52LUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADD52LUQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMADD52LUQ_BCST_Z: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMADD52LUQ.BCST.Z m64 xmm k xmm -// VPMADD52LUQ.BCST.Z m64 ymm k ymm -// VPMADD52LUQ.BCST.Z m64 zmm k zmm -func VPMADD52LUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADD52LUQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMADD52LUQ_Z: Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators (Zeroing Masking). -// -// Forms: -// -// VPMADD52LUQ.Z m128 xmm k xmm -// VPMADD52LUQ.Z m256 ymm k ymm -// VPMADD52LUQ.Z xmm xmm k xmm -// VPMADD52LUQ.Z ymm ymm k ymm -// VPMADD52LUQ.Z m512 zmm k zmm -// VPMADD52LUQ.Z zmm zmm k zmm -func VPMADD52LUQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADD52LUQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMADDUBSW: Multiply and Add Packed Signed and Unsigned Byte Integers. -// -// Forms: -// -// VPMADDUBSW m256 ymm ymm -// VPMADDUBSW ymm ymm ymm -// VPMADDUBSW m128 xmm xmm -// VPMADDUBSW xmm xmm xmm -// VPMADDUBSW m128 xmm k xmm -// VPMADDUBSW m256 ymm k ymm -// VPMADDUBSW xmm xmm k xmm -// VPMADDUBSW ymm ymm k ymm -// VPMADDUBSW m512 zmm k zmm -// VPMADDUBSW m512 zmm zmm -// VPMADDUBSW zmm zmm k zmm -// VPMADDUBSW zmm zmm zmm -func VPMADDUBSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADDUBSW.Forms(), sffxs{}, ops) -} - -// VPMADDUBSW_Z: Multiply and Add Packed Signed and Unsigned Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMADDUBSW.Z m128 xmm k xmm -// VPMADDUBSW.Z m256 ymm k ymm -// VPMADDUBSW.Z xmm xmm k xmm -// VPMADDUBSW.Z ymm ymm k ymm -// VPMADDUBSW.Z m512 zmm k zmm -// VPMADDUBSW.Z zmm zmm k zmm -func VPMADDUBSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADDUBSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMADDWD: Multiply and Add Packed Signed Word Integers. -// -// Forms: -// -// VPMADDWD m256 ymm ymm -// VPMADDWD ymm ymm ymm -// VPMADDWD m128 xmm xmm -// VPMADDWD xmm xmm xmm -// VPMADDWD m128 xmm k xmm -// VPMADDWD m256 ymm k ymm -// VPMADDWD xmm xmm k xmm -// VPMADDWD ymm ymm k ymm -// VPMADDWD m512 zmm k zmm -// VPMADDWD m512 zmm zmm -// VPMADDWD zmm zmm k zmm -// VPMADDWD zmm zmm zmm -func VPMADDWD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADDWD.Forms(), sffxs{}, ops) -} - -// VPMADDWD_Z: Multiply and Add Packed Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMADDWD.Z m128 xmm k xmm -// VPMADDWD.Z m256 ymm k ymm -// VPMADDWD.Z xmm xmm k xmm -// VPMADDWD.Z ymm ymm k ymm -// VPMADDWD.Z m512 zmm k zmm -// VPMADDWD.Z zmm zmm k zmm -func VPMADDWD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMADDWD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMASKMOVD: Conditional Move Packed Doubleword Integers. -// -// Forms: -// -// VPMASKMOVD m128 xmm xmm -// VPMASKMOVD m256 ymm ymm -// VPMASKMOVD xmm xmm m128 -// VPMASKMOVD ymm ymm m256 -func VPMASKMOVD(mxy, xy, mxy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMASKMOVD.Forms(), sffxs{}, []operand.Op{mxy, xy, mxy1}) -} - -// VPMASKMOVQ: Conditional Move Packed Quadword Integers. -// -// Forms: -// -// VPMASKMOVQ m128 xmm xmm -// VPMASKMOVQ m256 ymm ymm -// VPMASKMOVQ xmm xmm m128 -// VPMASKMOVQ ymm ymm m256 -func VPMASKMOVQ(mxy, xy, mxy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMASKMOVQ.Forms(), sffxs{}, []operand.Op{mxy, xy, mxy1}) -} - -// VPMAXSB: Maximum of Packed Signed Byte Integers. -// -// Forms: -// -// VPMAXSB m256 ymm ymm -// VPMAXSB ymm ymm ymm -// VPMAXSB m128 xmm xmm -// VPMAXSB xmm xmm xmm -// VPMAXSB m128 xmm k xmm -// VPMAXSB m256 ymm k ymm -// VPMAXSB xmm xmm k xmm -// VPMAXSB ymm ymm k ymm -// VPMAXSB m512 zmm k zmm -// VPMAXSB m512 zmm zmm -// VPMAXSB zmm zmm k zmm -// VPMAXSB zmm zmm zmm -func VPMAXSB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSB.Forms(), sffxs{}, ops) -} - -// VPMAXSB_Z: Maximum of Packed Signed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSB.Z m128 xmm k xmm -// VPMAXSB.Z m256 ymm k ymm -// VPMAXSB.Z xmm xmm k xmm -// VPMAXSB.Z ymm ymm k ymm -// VPMAXSB.Z m512 zmm k zmm -// VPMAXSB.Z zmm zmm k zmm -func VPMAXSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMAXSD: Maximum of Packed Signed Doubleword Integers. -// -// Forms: -// -// VPMAXSD m256 ymm ymm -// VPMAXSD ymm ymm ymm -// VPMAXSD m128 xmm xmm -// VPMAXSD xmm xmm xmm -// VPMAXSD m128 xmm k xmm -// VPMAXSD m256 ymm k ymm -// VPMAXSD xmm xmm k xmm -// VPMAXSD ymm ymm k ymm -// VPMAXSD m512 zmm k zmm -// VPMAXSD m512 zmm zmm -// VPMAXSD zmm zmm k zmm -// VPMAXSD zmm zmm zmm -func VPMAXSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSD.Forms(), sffxs{}, ops) -} - -// VPMAXSD_BCST: Maximum of Packed Signed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMAXSD.BCST m32 xmm k xmm -// VPMAXSD.BCST m32 xmm xmm -// VPMAXSD.BCST m32 ymm k ymm -// VPMAXSD.BCST m32 ymm ymm -// VPMAXSD.BCST m32 zmm k zmm -// VPMAXSD.BCST m32 zmm zmm -func VPMAXSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMAXSD_BCST_Z: Maximum of Packed Signed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXSD.BCST.Z m32 xmm k xmm -// VPMAXSD.BCST.Z m32 ymm k ymm -// VPMAXSD.BCST.Z m32 zmm k zmm -func VPMAXSD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMAXSD_Z: Maximum of Packed Signed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSD.Z m128 xmm k xmm -// VPMAXSD.Z m256 ymm k ymm -// VPMAXSD.Z xmm xmm k xmm -// VPMAXSD.Z ymm ymm k ymm -// VPMAXSD.Z m512 zmm k zmm -// VPMAXSD.Z zmm zmm k zmm -func VPMAXSD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMAXSQ: Maximum of Packed Signed Quadword Integers. -// -// Forms: -// -// VPMAXSQ m128 xmm k xmm -// VPMAXSQ m128 xmm xmm -// VPMAXSQ m256 ymm k ymm -// VPMAXSQ m256 ymm ymm -// VPMAXSQ xmm xmm k xmm -// VPMAXSQ xmm xmm xmm -// VPMAXSQ ymm ymm k ymm -// VPMAXSQ ymm ymm ymm -// VPMAXSQ m512 zmm k zmm -// VPMAXSQ m512 zmm zmm -// VPMAXSQ zmm zmm k zmm -// VPMAXSQ zmm zmm zmm -func VPMAXSQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSQ.Forms(), sffxs{}, ops) -} - -// VPMAXSQ_BCST: Maximum of Packed Signed Quadword Integers (Broadcast). -// -// Forms: -// -// VPMAXSQ.BCST m64 xmm k xmm -// VPMAXSQ.BCST m64 xmm xmm -// VPMAXSQ.BCST m64 ymm k ymm -// VPMAXSQ.BCST m64 ymm ymm -// VPMAXSQ.BCST m64 zmm k zmm -// VPMAXSQ.BCST m64 zmm zmm -func VPMAXSQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMAXSQ_BCST_Z: Maximum of Packed Signed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXSQ.BCST.Z m64 xmm k xmm -// VPMAXSQ.BCST.Z m64 ymm k ymm -// VPMAXSQ.BCST.Z m64 zmm k zmm -func VPMAXSQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMAXSQ_Z: Maximum of Packed Signed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSQ.Z m128 xmm k xmm -// VPMAXSQ.Z m256 ymm k ymm -// VPMAXSQ.Z xmm xmm k xmm -// VPMAXSQ.Z ymm ymm k ymm -// VPMAXSQ.Z m512 zmm k zmm -// VPMAXSQ.Z zmm zmm k zmm -func VPMAXSQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMAXSW: Maximum of Packed Signed Word Integers. -// -// Forms: -// -// VPMAXSW m256 ymm ymm -// VPMAXSW ymm ymm ymm -// VPMAXSW m128 xmm xmm -// VPMAXSW xmm xmm xmm -// VPMAXSW m128 xmm k xmm -// VPMAXSW m256 ymm k ymm -// VPMAXSW xmm xmm k xmm -// VPMAXSW ymm ymm k ymm -// VPMAXSW m512 zmm k zmm -// VPMAXSW m512 zmm zmm -// VPMAXSW zmm zmm k zmm -// VPMAXSW zmm zmm zmm -func VPMAXSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSW.Forms(), sffxs{}, ops) -} - -// VPMAXSW_Z: Maximum of Packed Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXSW.Z m128 xmm k xmm -// VPMAXSW.Z m256 ymm k ymm -// VPMAXSW.Z xmm xmm k xmm -// VPMAXSW.Z ymm ymm k ymm -// VPMAXSW.Z m512 zmm k zmm -// VPMAXSW.Z zmm zmm k zmm -func VPMAXSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMAXUB: Maximum of Packed Unsigned Byte Integers. -// -// Forms: -// -// VPMAXUB m256 ymm ymm -// VPMAXUB ymm ymm ymm -// VPMAXUB m128 xmm xmm -// VPMAXUB xmm xmm xmm -// VPMAXUB m128 xmm k xmm -// VPMAXUB m256 ymm k ymm -// VPMAXUB xmm xmm k xmm -// VPMAXUB ymm ymm k ymm -// VPMAXUB m512 zmm k zmm -// VPMAXUB m512 zmm zmm -// VPMAXUB zmm zmm k zmm -// VPMAXUB zmm zmm zmm -func VPMAXUB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUB.Forms(), sffxs{}, ops) -} - -// VPMAXUB_Z: Maximum of Packed Unsigned Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUB.Z m128 xmm k xmm -// VPMAXUB.Z m256 ymm k ymm -// VPMAXUB.Z xmm xmm k xmm -// VPMAXUB.Z ymm ymm k ymm -// VPMAXUB.Z m512 zmm k zmm -// VPMAXUB.Z zmm zmm k zmm -func VPMAXUB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMAXUD: Maximum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VPMAXUD m256 ymm ymm -// VPMAXUD ymm ymm ymm -// VPMAXUD m128 xmm xmm -// VPMAXUD xmm xmm xmm -// VPMAXUD m128 xmm k xmm -// VPMAXUD m256 ymm k ymm -// VPMAXUD xmm xmm k xmm -// VPMAXUD ymm ymm k ymm -// VPMAXUD m512 zmm k zmm -// VPMAXUD m512 zmm zmm -// VPMAXUD zmm zmm k zmm -// VPMAXUD zmm zmm zmm -func VPMAXUD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUD.Forms(), sffxs{}, ops) -} - -// VPMAXUD_BCST: Maximum of Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMAXUD.BCST m32 xmm k xmm -// VPMAXUD.BCST m32 xmm xmm -// VPMAXUD.BCST m32 ymm k ymm -// VPMAXUD.BCST m32 ymm ymm -// VPMAXUD.BCST m32 zmm k zmm -// VPMAXUD.BCST m32 zmm zmm -func VPMAXUD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMAXUD_BCST_Z: Maximum of Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXUD.BCST.Z m32 xmm k xmm -// VPMAXUD.BCST.Z m32 ymm k ymm -// VPMAXUD.BCST.Z m32 zmm k zmm -func VPMAXUD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMAXUD_Z: Maximum of Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUD.Z m128 xmm k xmm -// VPMAXUD.Z m256 ymm k ymm -// VPMAXUD.Z xmm xmm k xmm -// VPMAXUD.Z ymm ymm k ymm -// VPMAXUD.Z m512 zmm k zmm -// VPMAXUD.Z zmm zmm k zmm -func VPMAXUD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMAXUQ: Maximum of Packed Unsigned Quadword Integers. -// -// Forms: -// -// VPMAXUQ m128 xmm k xmm -// VPMAXUQ m128 xmm xmm -// VPMAXUQ m256 ymm k ymm -// VPMAXUQ m256 ymm ymm -// VPMAXUQ xmm xmm k xmm -// VPMAXUQ xmm xmm xmm -// VPMAXUQ ymm ymm k ymm -// VPMAXUQ ymm ymm ymm -// VPMAXUQ m512 zmm k zmm -// VPMAXUQ m512 zmm zmm -// VPMAXUQ zmm zmm k zmm -// VPMAXUQ zmm zmm zmm -func VPMAXUQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUQ.Forms(), sffxs{}, ops) -} - -// VPMAXUQ_BCST: Maximum of Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VPMAXUQ.BCST m64 xmm k xmm -// VPMAXUQ.BCST m64 xmm xmm -// VPMAXUQ.BCST m64 ymm k ymm -// VPMAXUQ.BCST m64 ymm ymm -// VPMAXUQ.BCST m64 zmm k zmm -// VPMAXUQ.BCST m64 zmm zmm -func VPMAXUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMAXUQ_BCST_Z: Maximum of Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMAXUQ.BCST.Z m64 xmm k xmm -// VPMAXUQ.BCST.Z m64 ymm k ymm -// VPMAXUQ.BCST.Z m64 zmm k zmm -func VPMAXUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMAXUQ_Z: Maximum of Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUQ.Z m128 xmm k xmm -// VPMAXUQ.Z m256 ymm k ymm -// VPMAXUQ.Z xmm xmm k xmm -// VPMAXUQ.Z ymm ymm k ymm -// VPMAXUQ.Z m512 zmm k zmm -// VPMAXUQ.Z zmm zmm k zmm -func VPMAXUQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMAXUW: Maximum of Packed Unsigned Word Integers. -// -// Forms: -// -// VPMAXUW m256 ymm ymm -// VPMAXUW ymm ymm ymm -// VPMAXUW m128 xmm xmm -// VPMAXUW xmm xmm xmm -// VPMAXUW m128 xmm k xmm -// VPMAXUW m256 ymm k ymm -// VPMAXUW xmm xmm k xmm -// VPMAXUW ymm ymm k ymm -// VPMAXUW m512 zmm k zmm -// VPMAXUW m512 zmm zmm -// VPMAXUW zmm zmm k zmm -// VPMAXUW zmm zmm zmm -func VPMAXUW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUW.Forms(), sffxs{}, ops) -} - -// VPMAXUW_Z: Maximum of Packed Unsigned Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMAXUW.Z m128 xmm k xmm -// VPMAXUW.Z m256 ymm k ymm -// VPMAXUW.Z xmm xmm k xmm -// VPMAXUW.Z ymm ymm k ymm -// VPMAXUW.Z m512 zmm k zmm -// VPMAXUW.Z zmm zmm k zmm -func VPMAXUW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMAXUW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMINSB: Minimum of Packed Signed Byte Integers. -// -// Forms: -// -// VPMINSB m256 ymm ymm -// VPMINSB ymm ymm ymm -// VPMINSB m128 xmm xmm -// VPMINSB xmm xmm xmm -// VPMINSB m128 xmm k xmm -// VPMINSB m256 ymm k ymm -// VPMINSB xmm xmm k xmm -// VPMINSB ymm ymm k ymm -// VPMINSB m512 zmm k zmm -// VPMINSB m512 zmm zmm -// VPMINSB zmm zmm k zmm -// VPMINSB zmm zmm zmm -func VPMINSB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSB.Forms(), sffxs{}, ops) -} - -// VPMINSB_Z: Minimum of Packed Signed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSB.Z m128 xmm k xmm -// VPMINSB.Z m256 ymm k ymm -// VPMINSB.Z xmm xmm k xmm -// VPMINSB.Z ymm ymm k ymm -// VPMINSB.Z m512 zmm k zmm -// VPMINSB.Z zmm zmm k zmm -func VPMINSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMINSD: Minimum of Packed Signed Doubleword Integers. -// -// Forms: -// -// VPMINSD m256 ymm ymm -// VPMINSD ymm ymm ymm -// VPMINSD m128 xmm xmm -// VPMINSD xmm xmm xmm -// VPMINSD m128 xmm k xmm -// VPMINSD m256 ymm k ymm -// VPMINSD xmm xmm k xmm -// VPMINSD ymm ymm k ymm -// VPMINSD m512 zmm k zmm -// VPMINSD m512 zmm zmm -// VPMINSD zmm zmm k zmm -// VPMINSD zmm zmm zmm -func VPMINSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSD.Forms(), sffxs{}, ops) -} - -// VPMINSD_BCST: Minimum of Packed Signed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMINSD.BCST m32 xmm k xmm -// VPMINSD.BCST m32 xmm xmm -// VPMINSD.BCST m32 ymm k ymm -// VPMINSD.BCST m32 ymm ymm -// VPMINSD.BCST m32 zmm k zmm -// VPMINSD.BCST m32 zmm zmm -func VPMINSD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMINSD_BCST_Z: Minimum of Packed Signed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINSD.BCST.Z m32 xmm k xmm -// VPMINSD.BCST.Z m32 ymm k ymm -// VPMINSD.BCST.Z m32 zmm k zmm -func VPMINSD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMINSD_Z: Minimum of Packed Signed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSD.Z m128 xmm k xmm -// VPMINSD.Z m256 ymm k ymm -// VPMINSD.Z xmm xmm k xmm -// VPMINSD.Z ymm ymm k ymm -// VPMINSD.Z m512 zmm k zmm -// VPMINSD.Z zmm zmm k zmm -func VPMINSD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMINSQ: Minimum of Packed Signed Quadword Integers. -// -// Forms: -// -// VPMINSQ m128 xmm k xmm -// VPMINSQ m128 xmm xmm -// VPMINSQ m256 ymm k ymm -// VPMINSQ m256 ymm ymm -// VPMINSQ xmm xmm k xmm -// VPMINSQ xmm xmm xmm -// VPMINSQ ymm ymm k ymm -// VPMINSQ ymm ymm ymm -// VPMINSQ m512 zmm k zmm -// VPMINSQ m512 zmm zmm -// VPMINSQ zmm zmm k zmm -// VPMINSQ zmm zmm zmm -func VPMINSQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSQ.Forms(), sffxs{}, ops) -} - -// VPMINSQ_BCST: Minimum of Packed Signed Quadword Integers (Broadcast). -// -// Forms: -// -// VPMINSQ.BCST m64 xmm k xmm -// VPMINSQ.BCST m64 xmm xmm -// VPMINSQ.BCST m64 ymm k ymm -// VPMINSQ.BCST m64 ymm ymm -// VPMINSQ.BCST m64 zmm k zmm -// VPMINSQ.BCST m64 zmm zmm -func VPMINSQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMINSQ_BCST_Z: Minimum of Packed Signed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINSQ.BCST.Z m64 xmm k xmm -// VPMINSQ.BCST.Z m64 ymm k ymm -// VPMINSQ.BCST.Z m64 zmm k zmm -func VPMINSQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMINSQ_Z: Minimum of Packed Signed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSQ.Z m128 xmm k xmm -// VPMINSQ.Z m256 ymm k ymm -// VPMINSQ.Z xmm xmm k xmm -// VPMINSQ.Z ymm ymm k ymm -// VPMINSQ.Z m512 zmm k zmm -// VPMINSQ.Z zmm zmm k zmm -func VPMINSQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMINSW: Minimum of Packed Signed Word Integers. -// -// Forms: -// -// VPMINSW m256 ymm ymm -// VPMINSW ymm ymm ymm -// VPMINSW m128 xmm xmm -// VPMINSW xmm xmm xmm -// VPMINSW m128 xmm k xmm -// VPMINSW m256 ymm k ymm -// VPMINSW xmm xmm k xmm -// VPMINSW ymm ymm k ymm -// VPMINSW m512 zmm k zmm -// VPMINSW m512 zmm zmm -// VPMINSW zmm zmm k zmm -// VPMINSW zmm zmm zmm -func VPMINSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSW.Forms(), sffxs{}, ops) -} - -// VPMINSW_Z: Minimum of Packed Signed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMINSW.Z m128 xmm k xmm -// VPMINSW.Z m256 ymm k ymm -// VPMINSW.Z xmm xmm k xmm -// VPMINSW.Z ymm ymm k ymm -// VPMINSW.Z m512 zmm k zmm -// VPMINSW.Z zmm zmm k zmm -func VPMINSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMINUB: Minimum of Packed Unsigned Byte Integers. -// -// Forms: -// -// VPMINUB m256 ymm ymm -// VPMINUB ymm ymm ymm -// VPMINUB m128 xmm xmm -// VPMINUB xmm xmm xmm -// VPMINUB m128 xmm k xmm -// VPMINUB m256 ymm k ymm -// VPMINUB xmm xmm k xmm -// VPMINUB ymm ymm k ymm -// VPMINUB m512 zmm k zmm -// VPMINUB m512 zmm zmm -// VPMINUB zmm zmm k zmm -// VPMINUB zmm zmm zmm -func VPMINUB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUB.Forms(), sffxs{}, ops) -} - -// VPMINUB_Z: Minimum of Packed Unsigned Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUB.Z m128 xmm k xmm -// VPMINUB.Z m256 ymm k ymm -// VPMINUB.Z xmm xmm k xmm -// VPMINUB.Z ymm ymm k ymm -// VPMINUB.Z m512 zmm k zmm -// VPMINUB.Z zmm zmm k zmm -func VPMINUB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMINUD: Minimum of Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VPMINUD m256 ymm ymm -// VPMINUD ymm ymm ymm -// VPMINUD m128 xmm xmm -// VPMINUD xmm xmm xmm -// VPMINUD m128 xmm k xmm -// VPMINUD m256 ymm k ymm -// VPMINUD xmm xmm k xmm -// VPMINUD ymm ymm k ymm -// VPMINUD m512 zmm k zmm -// VPMINUD m512 zmm zmm -// VPMINUD zmm zmm k zmm -// VPMINUD zmm zmm zmm -func VPMINUD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUD.Forms(), sffxs{}, ops) -} - -// VPMINUD_BCST: Minimum of Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMINUD.BCST m32 xmm k xmm -// VPMINUD.BCST m32 xmm xmm -// VPMINUD.BCST m32 ymm k ymm -// VPMINUD.BCST m32 ymm ymm -// VPMINUD.BCST m32 zmm k zmm -// VPMINUD.BCST m32 zmm zmm -func VPMINUD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMINUD_BCST_Z: Minimum of Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINUD.BCST.Z m32 xmm k xmm -// VPMINUD.BCST.Z m32 ymm k ymm -// VPMINUD.BCST.Z m32 zmm k zmm -func VPMINUD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMINUD_Z: Minimum of Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUD.Z m128 xmm k xmm -// VPMINUD.Z m256 ymm k ymm -// VPMINUD.Z xmm xmm k xmm -// VPMINUD.Z ymm ymm k ymm -// VPMINUD.Z m512 zmm k zmm -// VPMINUD.Z zmm zmm k zmm -func VPMINUD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMINUQ: Minimum of Packed Unsigned Quadword Integers. -// -// Forms: -// -// VPMINUQ m128 xmm k xmm -// VPMINUQ m128 xmm xmm -// VPMINUQ m256 ymm k ymm -// VPMINUQ m256 ymm ymm -// VPMINUQ xmm xmm k xmm -// VPMINUQ xmm xmm xmm -// VPMINUQ ymm ymm k ymm -// VPMINUQ ymm ymm ymm -// VPMINUQ m512 zmm k zmm -// VPMINUQ m512 zmm zmm -// VPMINUQ zmm zmm k zmm -// VPMINUQ zmm zmm zmm -func VPMINUQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUQ.Forms(), sffxs{}, ops) -} - -// VPMINUQ_BCST: Minimum of Packed Unsigned Quadword Integers (Broadcast). -// -// Forms: -// -// VPMINUQ.BCST m64 xmm k xmm -// VPMINUQ.BCST m64 xmm xmm -// VPMINUQ.BCST m64 ymm k ymm -// VPMINUQ.BCST m64 ymm ymm -// VPMINUQ.BCST m64 zmm k zmm -// VPMINUQ.BCST m64 zmm zmm -func VPMINUQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMINUQ_BCST_Z: Minimum of Packed Unsigned Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMINUQ.BCST.Z m64 xmm k xmm -// VPMINUQ.BCST.Z m64 ymm k ymm -// VPMINUQ.BCST.Z m64 zmm k zmm -func VPMINUQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMINUQ_Z: Minimum of Packed Unsigned Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUQ.Z m128 xmm k xmm -// VPMINUQ.Z m256 ymm k ymm -// VPMINUQ.Z xmm xmm k xmm -// VPMINUQ.Z ymm ymm k ymm -// VPMINUQ.Z m512 zmm k zmm -// VPMINUQ.Z zmm zmm k zmm -func VPMINUQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMINUW: Minimum of Packed Unsigned Word Integers. -// -// Forms: -// -// VPMINUW m256 ymm ymm -// VPMINUW ymm ymm ymm -// VPMINUW m128 xmm xmm -// VPMINUW xmm xmm xmm -// VPMINUW m128 xmm k xmm -// VPMINUW m256 ymm k ymm -// VPMINUW xmm xmm k xmm -// VPMINUW ymm ymm k ymm -// VPMINUW m512 zmm k zmm -// VPMINUW m512 zmm zmm -// VPMINUW zmm zmm k zmm -// VPMINUW zmm zmm zmm -func VPMINUW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUW.Forms(), sffxs{}, ops) -} - -// VPMINUW_Z: Minimum of Packed Unsigned Word Integers (Zeroing Masking). -// -// Forms: -// -// VPMINUW.Z m128 xmm k xmm -// VPMINUW.Z m256 ymm k ymm -// VPMINUW.Z xmm xmm k xmm -// VPMINUW.Z ymm ymm k ymm -// VPMINUW.Z m512 zmm k zmm -// VPMINUW.Z zmm zmm k zmm -func VPMINUW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMINUW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMOVB2M: Move Signs of Packed Byte Integers to Mask Register. -// -// Forms: -// -// VPMOVB2M xmm k -// VPMOVB2M ymm k -// VPMOVB2M zmm k -func VPMOVB2M(xyz, k operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVB2M.Forms(), sffxs{}, []operand.Op{xyz, k}) -} - -// VPMOVD2M: Move Signs of Packed Doubleword Integers to Mask Register. -// -// Forms: -// -// VPMOVD2M xmm k -// VPMOVD2M ymm k -// VPMOVD2M zmm k -func VPMOVD2M(xyz, k operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVD2M.Forms(), sffxs{}, []operand.Op{xyz, k}) -} - -// VPMOVDB: Down Convert Packed Doubleword Values to Byte Values with Truncation. -// -// Forms: -// -// VPMOVDB xmm k m32 -// VPMOVDB xmm k xmm -// VPMOVDB xmm m32 -// VPMOVDB xmm xmm -// VPMOVDB ymm k m64 -// VPMOVDB ymm k xmm -// VPMOVDB ymm m64 -// VPMOVDB ymm xmm -// VPMOVDB zmm k m128 -// VPMOVDB zmm k xmm -// VPMOVDB zmm m128 -// VPMOVDB zmm xmm -func VPMOVDB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVDB.Forms(), sffxs{}, ops) -} - -// VPMOVDB_Z: Down Convert Packed Doubleword Values to Byte Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVDB.Z xmm k m32 -// VPMOVDB.Z xmm k xmm -// VPMOVDB.Z ymm k m64 -// VPMOVDB.Z ymm k xmm -// VPMOVDB.Z zmm k m128 -// VPMOVDB.Z zmm k xmm -func VPMOVDB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVDB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx}) -} - -// VPMOVDW: Down Convert Packed Doubleword Values to Word Values with Truncation. -// -// Forms: -// -// VPMOVDW xmm k m64 -// VPMOVDW xmm k xmm -// VPMOVDW xmm m64 -// VPMOVDW xmm xmm -// VPMOVDW ymm k m128 -// VPMOVDW ymm k xmm -// VPMOVDW ymm m128 -// VPMOVDW ymm xmm -// VPMOVDW zmm k m256 -// VPMOVDW zmm k ymm -// VPMOVDW zmm m256 -// VPMOVDW zmm ymm -func VPMOVDW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVDW.Forms(), sffxs{}, ops) -} - -// VPMOVDW_Z: Down Convert Packed Doubleword Values to Word Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVDW.Z xmm k m64 -// VPMOVDW.Z xmm k xmm -// VPMOVDW.Z ymm k m128 -// VPMOVDW.Z ymm k xmm -// VPMOVDW.Z zmm k m256 -// VPMOVDW.Z zmm k ymm -func VPMOVDW_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVDW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy}) -} - -// VPMOVM2B: Expand Bits of Mask Register to Packed Byte Integers. -// -// Forms: -// -// VPMOVM2B k xmm -// VPMOVM2B k ymm -// VPMOVM2B k zmm -func VPMOVM2B(k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVM2B.Forms(), sffxs{}, []operand.Op{k, xyz}) -} - -// VPMOVM2D: Expand Bits of Mask Register to Packed Doubleword Integers. -// -// Forms: -// -// VPMOVM2D k xmm -// VPMOVM2D k ymm -// VPMOVM2D k zmm -func VPMOVM2D(k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVM2D.Forms(), sffxs{}, []operand.Op{k, xyz}) -} - -// VPMOVM2Q: Expand Bits of Mask Register to Packed Quadword Integers. -// -// Forms: -// -// VPMOVM2Q k xmm -// VPMOVM2Q k ymm -// VPMOVM2Q k zmm -func VPMOVM2Q(k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVM2Q.Forms(), sffxs{}, []operand.Op{k, xyz}) -} - -// VPMOVM2W: Expand Bits of Mask Register to Packed Word Integers. -// -// Forms: -// -// VPMOVM2W k xmm -// VPMOVM2W k ymm -// VPMOVM2W k zmm -func VPMOVM2W(k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVM2W.Forms(), sffxs{}, []operand.Op{k, xyz}) -} - -// VPMOVMSKB: Move Byte Mask. -// -// Forms: -// -// VPMOVMSKB ymm r32 -// VPMOVMSKB xmm r32 -func VPMOVMSKB(xy, r operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVMSKB.Forms(), sffxs{}, []operand.Op{xy, r}) -} - -// VPMOVQ2M: Move Signs of Packed Quadword Integers to Mask Register. -// -// Forms: -// -// VPMOVQ2M xmm k -// VPMOVQ2M ymm k -// VPMOVQ2M zmm k -func VPMOVQ2M(xyz, k operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVQ2M.Forms(), sffxs{}, []operand.Op{xyz, k}) -} - -// VPMOVQB: Down Convert Packed Quadword Values to Byte Values with Truncation. -// -// Forms: -// -// VPMOVQB xmm k m16 -// VPMOVQB xmm k xmm -// VPMOVQB xmm m16 -// VPMOVQB xmm xmm -// VPMOVQB ymm k m32 -// VPMOVQB ymm k xmm -// VPMOVQB ymm m32 -// VPMOVQB ymm xmm -// VPMOVQB zmm k m64 -// VPMOVQB zmm k xmm -// VPMOVQB zmm m64 -// VPMOVQB zmm xmm -func VPMOVQB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVQB.Forms(), sffxs{}, ops) -} - -// VPMOVQB_Z: Down Convert Packed Quadword Values to Byte Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVQB.Z xmm k m16 -// VPMOVQB.Z xmm k xmm -// VPMOVQB.Z ymm k m32 -// VPMOVQB.Z ymm k xmm -// VPMOVQB.Z zmm k m64 -// VPMOVQB.Z zmm k xmm -func VPMOVQB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVQB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx}) -} - -// VPMOVQD: Down Convert Packed Quadword Values to Doubleword Values with Truncation. -// -// Forms: -// -// VPMOVQD xmm k m64 -// VPMOVQD xmm k xmm -// VPMOVQD xmm m64 -// VPMOVQD xmm xmm -// VPMOVQD ymm k m128 -// VPMOVQD ymm k xmm -// VPMOVQD ymm m128 -// VPMOVQD ymm xmm -// VPMOVQD zmm k m256 -// VPMOVQD zmm k ymm -// VPMOVQD zmm m256 -// VPMOVQD zmm ymm -func VPMOVQD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVQD.Forms(), sffxs{}, ops) -} - -// VPMOVQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVQD.Z xmm k m64 -// VPMOVQD.Z xmm k xmm -// VPMOVQD.Z ymm k m128 -// VPMOVQD.Z ymm k xmm -// VPMOVQD.Z zmm k m256 -// VPMOVQD.Z zmm k ymm -func VPMOVQD_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVQD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy}) -} - -// VPMOVQW: Down Convert Packed Quadword Values to Word Values with Truncation. -// -// Forms: -// -// VPMOVQW xmm k m32 -// VPMOVQW xmm k xmm -// VPMOVQW xmm m32 -// VPMOVQW xmm xmm -// VPMOVQW ymm k m64 -// VPMOVQW ymm k xmm -// VPMOVQW ymm m64 -// VPMOVQW ymm xmm -// VPMOVQW zmm k m128 -// VPMOVQW zmm k xmm -// VPMOVQW zmm m128 -// VPMOVQW zmm xmm -func VPMOVQW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVQW.Forms(), sffxs{}, ops) -} - -// VPMOVQW_Z: Down Convert Packed Quadword Values to Word Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVQW.Z xmm k m32 -// VPMOVQW.Z xmm k xmm -// VPMOVQW.Z ymm k m64 -// VPMOVQW.Z ymm k xmm -// VPMOVQW.Z zmm k m128 -// VPMOVQW.Z zmm k xmm -func VPMOVQW_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVQW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx}) -} - -// VPMOVSDB: Down Convert Packed Doubleword Values to Byte Values with Signed Saturation. -// -// Forms: -// -// VPMOVSDB xmm k m32 -// VPMOVSDB xmm k xmm -// VPMOVSDB xmm m32 -// VPMOVSDB xmm xmm -// VPMOVSDB ymm k m64 -// VPMOVSDB ymm k xmm -// VPMOVSDB ymm m64 -// VPMOVSDB ymm xmm -// VPMOVSDB zmm k m128 -// VPMOVSDB zmm k xmm -// VPMOVSDB zmm m128 -// VPMOVSDB zmm xmm -func VPMOVSDB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSDB.Forms(), sffxs{}, ops) -} - -// VPMOVSDB_Z: Down Convert Packed Doubleword Values to Byte Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSDB.Z xmm k m32 -// VPMOVSDB.Z xmm k xmm -// VPMOVSDB.Z ymm k m64 -// VPMOVSDB.Z ymm k xmm -// VPMOVSDB.Z zmm k m128 -// VPMOVSDB.Z zmm k xmm -func VPMOVSDB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSDB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx}) -} - -// VPMOVSDW: Down Convert Packed Doubleword Values to Word Values with Signed Saturation. -// -// Forms: -// -// VPMOVSDW xmm k m64 -// VPMOVSDW xmm k xmm -// VPMOVSDW xmm m64 -// VPMOVSDW xmm xmm -// VPMOVSDW ymm k m128 -// VPMOVSDW ymm k xmm -// VPMOVSDW ymm m128 -// VPMOVSDW ymm xmm -// VPMOVSDW zmm k m256 -// VPMOVSDW zmm k ymm -// VPMOVSDW zmm m256 -// VPMOVSDW zmm ymm -func VPMOVSDW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSDW.Forms(), sffxs{}, ops) -} - -// VPMOVSDW_Z: Down Convert Packed Doubleword Values to Word Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSDW.Z xmm k m64 -// VPMOVSDW.Z xmm k xmm -// VPMOVSDW.Z ymm k m128 -// VPMOVSDW.Z ymm k xmm -// VPMOVSDW.Z zmm k m256 -// VPMOVSDW.Z zmm k ymm -func VPMOVSDW_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSDW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy}) -} - -// VPMOVSQB: Down Convert Packed Quadword Values to Byte Values with Signed Saturation. -// -// Forms: -// -// VPMOVSQB xmm k m16 -// VPMOVSQB xmm k xmm -// VPMOVSQB xmm m16 -// VPMOVSQB xmm xmm -// VPMOVSQB ymm k m32 -// VPMOVSQB ymm k xmm -// VPMOVSQB ymm m32 -// VPMOVSQB ymm xmm -// VPMOVSQB zmm k m64 -// VPMOVSQB zmm k xmm -// VPMOVSQB zmm m64 -// VPMOVSQB zmm xmm -func VPMOVSQB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSQB.Forms(), sffxs{}, ops) -} - -// VPMOVSQB_Z: Down Convert Packed Quadword Values to Byte Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSQB.Z xmm k m16 -// VPMOVSQB.Z xmm k xmm -// VPMOVSQB.Z ymm k m32 -// VPMOVSQB.Z ymm k xmm -// VPMOVSQB.Z zmm k m64 -// VPMOVSQB.Z zmm k xmm -func VPMOVSQB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSQB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx}) -} - -// VPMOVSQD: Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation. -// -// Forms: -// -// VPMOVSQD xmm k m64 -// VPMOVSQD xmm k xmm -// VPMOVSQD xmm m64 -// VPMOVSQD xmm xmm -// VPMOVSQD ymm k m128 -// VPMOVSQD ymm k xmm -// VPMOVSQD ymm m128 -// VPMOVSQD ymm xmm -// VPMOVSQD zmm k m256 -// VPMOVSQD zmm k ymm -// VPMOVSQD zmm m256 -// VPMOVSQD zmm ymm -func VPMOVSQD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSQD.Forms(), sffxs{}, ops) -} - -// VPMOVSQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSQD.Z xmm k m64 -// VPMOVSQD.Z xmm k xmm -// VPMOVSQD.Z ymm k m128 -// VPMOVSQD.Z ymm k xmm -// VPMOVSQD.Z zmm k m256 -// VPMOVSQD.Z zmm k ymm -func VPMOVSQD_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSQD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy}) -} - -// VPMOVSQW: Down Convert Packed Quadword Values to Word Values with Signed Saturation. -// -// Forms: -// -// VPMOVSQW xmm k m32 -// VPMOVSQW xmm k xmm -// VPMOVSQW xmm m32 -// VPMOVSQW xmm xmm -// VPMOVSQW ymm k m64 -// VPMOVSQW ymm k xmm -// VPMOVSQW ymm m64 -// VPMOVSQW ymm xmm -// VPMOVSQW zmm k m128 -// VPMOVSQW zmm k xmm -// VPMOVSQW zmm m128 -// VPMOVSQW zmm xmm -func VPMOVSQW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSQW.Forms(), sffxs{}, ops) -} - -// VPMOVSQW_Z: Down Convert Packed Quadword Values to Word Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSQW.Z xmm k m32 -// VPMOVSQW.Z xmm k xmm -// VPMOVSQW.Z ymm k m64 -// VPMOVSQW.Z ymm k xmm -// VPMOVSQW.Z zmm k m128 -// VPMOVSQW.Z zmm k xmm -func VPMOVSQW_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSQW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx}) -} - -// VPMOVSWB: Down Convert Packed Word Values to Byte Values with Signed Saturation. -// -// Forms: -// -// VPMOVSWB xmm k m64 -// VPMOVSWB xmm k xmm -// VPMOVSWB xmm m64 -// VPMOVSWB xmm xmm -// VPMOVSWB ymm k m128 -// VPMOVSWB ymm k xmm -// VPMOVSWB ymm m128 -// VPMOVSWB ymm xmm -// VPMOVSWB zmm k m256 -// VPMOVSWB zmm k ymm -// VPMOVSWB zmm m256 -// VPMOVSWB zmm ymm -func VPMOVSWB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSWB.Forms(), sffxs{}, ops) -} - -// VPMOVSWB_Z: Down Convert Packed Word Values to Byte Values with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVSWB.Z xmm k m64 -// VPMOVSWB.Z xmm k xmm -// VPMOVSWB.Z ymm k m128 -// VPMOVSWB.Z ymm k xmm -// VPMOVSWB.Z zmm k m256 -// VPMOVSWB.Z zmm k ymm -func VPMOVSWB_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSWB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy}) -} - -// VPMOVSXBD: Move Packed Byte Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXBD m64 ymm -// VPMOVSXBD xmm ymm -// VPMOVSXBD m32 xmm -// VPMOVSXBD xmm xmm -// VPMOVSXBD m32 k xmm -// VPMOVSXBD m64 k ymm -// VPMOVSXBD xmm k xmm -// VPMOVSXBD xmm k ymm -// VPMOVSXBD m128 k zmm -// VPMOVSXBD m128 zmm -// VPMOVSXBD xmm k zmm -// VPMOVSXBD xmm zmm -func VPMOVSXBD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXBD.Forms(), sffxs{}, ops) -} - -// VPMOVSXBD_Z: Move Packed Byte Integers to Doubleword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXBD.Z m32 k xmm -// VPMOVSXBD.Z m64 k ymm -// VPMOVSXBD.Z xmm k xmm -// VPMOVSXBD.Z xmm k ymm -// VPMOVSXBD.Z m128 k zmm -// VPMOVSXBD.Z xmm k zmm -func VPMOVSXBD_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXBD.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz}) -} - -// VPMOVSXBQ: Move Packed Byte Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXBQ m32 ymm -// VPMOVSXBQ xmm ymm -// VPMOVSXBQ m16 xmm -// VPMOVSXBQ xmm xmm -// VPMOVSXBQ m16 k xmm -// VPMOVSXBQ m32 k ymm -// VPMOVSXBQ xmm k xmm -// VPMOVSXBQ xmm k ymm -// VPMOVSXBQ m64 k zmm -// VPMOVSXBQ m64 zmm -// VPMOVSXBQ xmm k zmm -// VPMOVSXBQ xmm zmm -func VPMOVSXBQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXBQ.Forms(), sffxs{}, ops) -} - -// VPMOVSXBQ_Z: Move Packed Byte Integers to Quadword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXBQ.Z m16 k xmm -// VPMOVSXBQ.Z m32 k ymm -// VPMOVSXBQ.Z xmm k xmm -// VPMOVSXBQ.Z xmm k ymm -// VPMOVSXBQ.Z m64 k zmm -// VPMOVSXBQ.Z xmm k zmm -func VPMOVSXBQ_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXBQ.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz}) -} - -// VPMOVSXBW: Move Packed Byte Integers to Word Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXBW m128 ymm -// VPMOVSXBW xmm ymm -// VPMOVSXBW m64 xmm -// VPMOVSXBW xmm xmm -// VPMOVSXBW m128 k ymm -// VPMOVSXBW m64 k xmm -// VPMOVSXBW xmm k xmm -// VPMOVSXBW xmm k ymm -// VPMOVSXBW m256 k zmm -// VPMOVSXBW m256 zmm -// VPMOVSXBW ymm k zmm -// VPMOVSXBW ymm zmm -func VPMOVSXBW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXBW.Forms(), sffxs{}, ops) -} - -// VPMOVSXBW_Z: Move Packed Byte Integers to Word Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXBW.Z m128 k ymm -// VPMOVSXBW.Z m64 k xmm -// VPMOVSXBW.Z xmm k xmm -// VPMOVSXBW.Z xmm k ymm -// VPMOVSXBW.Z m256 k zmm -// VPMOVSXBW.Z ymm k zmm -func VPMOVSXBW_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXBW.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VPMOVSXDQ: Move Packed Doubleword Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXDQ m128 ymm -// VPMOVSXDQ xmm ymm -// VPMOVSXDQ m64 xmm -// VPMOVSXDQ xmm xmm -// VPMOVSXDQ m128 k ymm -// VPMOVSXDQ m64 k xmm -// VPMOVSXDQ xmm k xmm -// VPMOVSXDQ xmm k ymm -// VPMOVSXDQ m256 k zmm -// VPMOVSXDQ m256 zmm -// VPMOVSXDQ ymm k zmm -// VPMOVSXDQ ymm zmm -func VPMOVSXDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXDQ.Forms(), sffxs{}, ops) -} - -// VPMOVSXDQ_Z: Move Packed Doubleword Integers to Quadword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXDQ.Z m128 k ymm -// VPMOVSXDQ.Z m64 k xmm -// VPMOVSXDQ.Z xmm k xmm -// VPMOVSXDQ.Z xmm k ymm -// VPMOVSXDQ.Z m256 k zmm -// VPMOVSXDQ.Z ymm k zmm -func VPMOVSXDQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VPMOVSXWD: Move Packed Word Integers to Doubleword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXWD m128 ymm -// VPMOVSXWD xmm ymm -// VPMOVSXWD m64 xmm -// VPMOVSXWD xmm xmm -// VPMOVSXWD m128 k ymm -// VPMOVSXWD m64 k xmm -// VPMOVSXWD xmm k xmm -// VPMOVSXWD xmm k ymm -// VPMOVSXWD m256 k zmm -// VPMOVSXWD m256 zmm -// VPMOVSXWD ymm k zmm -// VPMOVSXWD ymm zmm -func VPMOVSXWD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXWD.Forms(), sffxs{}, ops) -} - -// VPMOVSXWD_Z: Move Packed Word Integers to Doubleword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXWD.Z m128 k ymm -// VPMOVSXWD.Z m64 k xmm -// VPMOVSXWD.Z xmm k xmm -// VPMOVSXWD.Z xmm k ymm -// VPMOVSXWD.Z m256 k zmm -// VPMOVSXWD.Z ymm k zmm -func VPMOVSXWD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXWD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VPMOVSXWQ: Move Packed Word Integers to Quadword Integers with Sign Extension. -// -// Forms: -// -// VPMOVSXWQ m64 ymm -// VPMOVSXWQ xmm ymm -// VPMOVSXWQ m32 xmm -// VPMOVSXWQ xmm xmm -// VPMOVSXWQ m32 k xmm -// VPMOVSXWQ m64 k ymm -// VPMOVSXWQ xmm k xmm -// VPMOVSXWQ xmm k ymm -// VPMOVSXWQ m128 k zmm -// VPMOVSXWQ m128 zmm -// VPMOVSXWQ xmm k zmm -// VPMOVSXWQ xmm zmm -func VPMOVSXWQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXWQ.Forms(), sffxs{}, ops) -} - -// VPMOVSXWQ_Z: Move Packed Word Integers to Quadword Integers with Sign Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVSXWQ.Z m32 k xmm -// VPMOVSXWQ.Z m64 k ymm -// VPMOVSXWQ.Z xmm k xmm -// VPMOVSXWQ.Z xmm k ymm -// VPMOVSXWQ.Z m128 k zmm -// VPMOVSXWQ.Z xmm k zmm -func VPMOVSXWQ_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVSXWQ.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz}) -} - -// VPMOVUSDB: Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSDB xmm k m32 -// VPMOVUSDB xmm k xmm -// VPMOVUSDB xmm m32 -// VPMOVUSDB xmm xmm -// VPMOVUSDB ymm k m64 -// VPMOVUSDB ymm k xmm -// VPMOVUSDB ymm m64 -// VPMOVUSDB ymm xmm -// VPMOVUSDB zmm k m128 -// VPMOVUSDB zmm k xmm -// VPMOVUSDB zmm m128 -// VPMOVUSDB zmm xmm -func VPMOVUSDB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSDB.Forms(), sffxs{}, ops) -} - -// VPMOVUSDB_Z: Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSDB.Z xmm k m32 -// VPMOVUSDB.Z xmm k xmm -// VPMOVUSDB.Z ymm k m64 -// VPMOVUSDB.Z ymm k xmm -// VPMOVUSDB.Z zmm k m128 -// VPMOVUSDB.Z zmm k xmm -func VPMOVUSDB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSDB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx}) -} - -// VPMOVUSDW: Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSDW xmm k m64 -// VPMOVUSDW xmm k xmm -// VPMOVUSDW xmm m64 -// VPMOVUSDW xmm xmm -// VPMOVUSDW ymm k m128 -// VPMOVUSDW ymm k xmm -// VPMOVUSDW ymm m128 -// VPMOVUSDW ymm xmm -// VPMOVUSDW zmm k m256 -// VPMOVUSDW zmm k ymm -// VPMOVUSDW zmm m256 -// VPMOVUSDW zmm ymm -func VPMOVUSDW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSDW.Forms(), sffxs{}, ops) -} - -// VPMOVUSDW_Z: Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSDW.Z xmm k m64 -// VPMOVUSDW.Z xmm k xmm -// VPMOVUSDW.Z ymm k m128 -// VPMOVUSDW.Z ymm k xmm -// VPMOVUSDW.Z zmm k m256 -// VPMOVUSDW.Z zmm k ymm -func VPMOVUSDW_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSDW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy}) -} - -// VPMOVUSQB: Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSQB xmm k m16 -// VPMOVUSQB xmm k xmm -// VPMOVUSQB xmm m16 -// VPMOVUSQB xmm xmm -// VPMOVUSQB ymm k m32 -// VPMOVUSQB ymm k xmm -// VPMOVUSQB ymm m32 -// VPMOVUSQB ymm xmm -// VPMOVUSQB zmm k m64 -// VPMOVUSQB zmm k xmm -// VPMOVUSQB zmm m64 -// VPMOVUSQB zmm xmm -func VPMOVUSQB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSQB.Forms(), sffxs{}, ops) -} - -// VPMOVUSQB_Z: Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSQB.Z xmm k m16 -// VPMOVUSQB.Z xmm k xmm -// VPMOVUSQB.Z ymm k m32 -// VPMOVUSQB.Z ymm k xmm -// VPMOVUSQB.Z zmm k m64 -// VPMOVUSQB.Z zmm k xmm -func VPMOVUSQB_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSQB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx}) -} - -// VPMOVUSQD: Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSQD xmm k m64 -// VPMOVUSQD xmm k xmm -// VPMOVUSQD xmm m64 -// VPMOVUSQD xmm xmm -// VPMOVUSQD ymm k m128 -// VPMOVUSQD ymm k xmm -// VPMOVUSQD ymm m128 -// VPMOVUSQD ymm xmm -// VPMOVUSQD zmm k m256 -// VPMOVUSQD zmm k ymm -// VPMOVUSQD zmm m256 -// VPMOVUSQD zmm ymm -func VPMOVUSQD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSQD.Forms(), sffxs{}, ops) -} - -// VPMOVUSQD_Z: Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSQD.Z xmm k m64 -// VPMOVUSQD.Z xmm k xmm -// VPMOVUSQD.Z ymm k m128 -// VPMOVUSQD.Z ymm k xmm -// VPMOVUSQD.Z zmm k m256 -// VPMOVUSQD.Z zmm k ymm -func VPMOVUSQD_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSQD.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy}) -} - -// VPMOVUSQW: Down Convert Packed Quadword Values to Word Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSQW xmm k m32 -// VPMOVUSQW xmm k xmm -// VPMOVUSQW xmm m32 -// VPMOVUSQW xmm xmm -// VPMOVUSQW ymm k m64 -// VPMOVUSQW ymm k xmm -// VPMOVUSQW ymm m64 -// VPMOVUSQW ymm xmm -// VPMOVUSQW zmm k m128 -// VPMOVUSQW zmm k xmm -// VPMOVUSQW zmm m128 -// VPMOVUSQW zmm xmm -func VPMOVUSQW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSQW.Forms(), sffxs{}, ops) -} - -// VPMOVUSQW_Z: Down Convert Packed Quadword Values to Word Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSQW.Z xmm k m32 -// VPMOVUSQW.Z xmm k xmm -// VPMOVUSQW.Z ymm k m64 -// VPMOVUSQW.Z ymm k xmm -// VPMOVUSQW.Z zmm k m128 -// VPMOVUSQW.Z zmm k xmm -func VPMOVUSQW_Z(xyz, k, mx operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSQW.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mx}) -} - -// VPMOVUSWB: Down Convert Packed Word Values to Byte Values with Unsigned Saturation. -// -// Forms: -// -// VPMOVUSWB xmm k m64 -// VPMOVUSWB xmm k xmm -// VPMOVUSWB xmm m64 -// VPMOVUSWB xmm xmm -// VPMOVUSWB ymm k m128 -// VPMOVUSWB ymm k xmm -// VPMOVUSWB ymm m128 -// VPMOVUSWB ymm xmm -// VPMOVUSWB zmm k m256 -// VPMOVUSWB zmm k ymm -// VPMOVUSWB zmm m256 -// VPMOVUSWB zmm ymm -func VPMOVUSWB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSWB.Forms(), sffxs{}, ops) -} - -// VPMOVUSWB_Z: Down Convert Packed Word Values to Byte Values with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPMOVUSWB.Z xmm k m64 -// VPMOVUSWB.Z xmm k xmm -// VPMOVUSWB.Z ymm k m128 -// VPMOVUSWB.Z ymm k xmm -// VPMOVUSWB.Z zmm k m256 -// VPMOVUSWB.Z zmm k ymm -func VPMOVUSWB_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVUSWB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy}) -} - -// VPMOVW2M: Move Signs of Packed Word Integers to Mask Register. -// -// Forms: -// -// VPMOVW2M xmm k -// VPMOVW2M ymm k -// VPMOVW2M zmm k -func VPMOVW2M(xyz, k operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVW2M.Forms(), sffxs{}, []operand.Op{xyz, k}) -} - -// VPMOVWB: Down Convert Packed Word Values to Byte Values with Truncation. -// -// Forms: -// -// VPMOVWB xmm k m64 -// VPMOVWB xmm k xmm -// VPMOVWB xmm m64 -// VPMOVWB xmm xmm -// VPMOVWB ymm k m128 -// VPMOVWB ymm k xmm -// VPMOVWB ymm m128 -// VPMOVWB ymm xmm -// VPMOVWB zmm k m256 -// VPMOVWB zmm k ymm -// VPMOVWB zmm m256 -// VPMOVWB zmm ymm -func VPMOVWB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVWB.Forms(), sffxs{}, ops) -} - -// VPMOVWB_Z: Down Convert Packed Word Values to Byte Values with Truncation (Zeroing Masking). -// -// Forms: -// -// VPMOVWB.Z xmm k m64 -// VPMOVWB.Z xmm k xmm -// VPMOVWB.Z ymm k m128 -// VPMOVWB.Z ymm k xmm -// VPMOVWB.Z zmm k m256 -// VPMOVWB.Z zmm k ymm -func VPMOVWB_Z(xyz, k, mxy operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVWB.Forms(), sffxs{sffxZ}, []operand.Op{xyz, k, mxy}) -} - -// VPMOVZXBD: Move Packed Byte Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXBD m64 ymm -// VPMOVZXBD xmm ymm -// VPMOVZXBD m32 xmm -// VPMOVZXBD xmm xmm -// VPMOVZXBD m32 k xmm -// VPMOVZXBD m64 k ymm -// VPMOVZXBD xmm k xmm -// VPMOVZXBD xmm k ymm -// VPMOVZXBD m128 k zmm -// VPMOVZXBD m128 zmm -// VPMOVZXBD xmm k zmm -// VPMOVZXBD xmm zmm -func VPMOVZXBD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXBD.Forms(), sffxs{}, ops) -} - -// VPMOVZXBD_Z: Move Packed Byte Integers to Doubleword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXBD.Z m32 k xmm -// VPMOVZXBD.Z m64 k ymm -// VPMOVZXBD.Z xmm k xmm -// VPMOVZXBD.Z xmm k ymm -// VPMOVZXBD.Z m128 k zmm -// VPMOVZXBD.Z xmm k zmm -func VPMOVZXBD_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXBD.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz}) -} - -// VPMOVZXBQ: Move Packed Byte Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXBQ m32 ymm -// VPMOVZXBQ xmm ymm -// VPMOVZXBQ m16 xmm -// VPMOVZXBQ xmm xmm -// VPMOVZXBQ m16 k xmm -// VPMOVZXBQ m32 k ymm -// VPMOVZXBQ xmm k xmm -// VPMOVZXBQ xmm k ymm -// VPMOVZXBQ m64 k zmm -// VPMOVZXBQ m64 zmm -// VPMOVZXBQ xmm k zmm -// VPMOVZXBQ xmm zmm -func VPMOVZXBQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXBQ.Forms(), sffxs{}, ops) -} - -// VPMOVZXBQ_Z: Move Packed Byte Integers to Quadword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXBQ.Z m16 k xmm -// VPMOVZXBQ.Z m32 k ymm -// VPMOVZXBQ.Z xmm k xmm -// VPMOVZXBQ.Z xmm k ymm -// VPMOVZXBQ.Z m64 k zmm -// VPMOVZXBQ.Z xmm k zmm -func VPMOVZXBQ_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXBQ.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz}) -} - -// VPMOVZXBW: Move Packed Byte Integers to Word Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXBW m128 ymm -// VPMOVZXBW xmm ymm -// VPMOVZXBW m64 xmm -// VPMOVZXBW xmm xmm -// VPMOVZXBW m128 k ymm -// VPMOVZXBW m64 k xmm -// VPMOVZXBW xmm k xmm -// VPMOVZXBW xmm k ymm -// VPMOVZXBW m256 k zmm -// VPMOVZXBW m256 zmm -// VPMOVZXBW ymm k zmm -// VPMOVZXBW ymm zmm -func VPMOVZXBW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXBW.Forms(), sffxs{}, ops) -} - -// VPMOVZXBW_Z: Move Packed Byte Integers to Word Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXBW.Z m128 k ymm -// VPMOVZXBW.Z m64 k xmm -// VPMOVZXBW.Z xmm k xmm -// VPMOVZXBW.Z xmm k ymm -// VPMOVZXBW.Z m256 k zmm -// VPMOVZXBW.Z ymm k zmm -func VPMOVZXBW_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXBW.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VPMOVZXDQ: Move Packed Doubleword Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXDQ m128 ymm -// VPMOVZXDQ xmm ymm -// VPMOVZXDQ m64 xmm -// VPMOVZXDQ xmm xmm -// VPMOVZXDQ m128 k ymm -// VPMOVZXDQ m64 k xmm -// VPMOVZXDQ xmm k xmm -// VPMOVZXDQ xmm k ymm -// VPMOVZXDQ m256 k zmm -// VPMOVZXDQ m256 zmm -// VPMOVZXDQ ymm k zmm -// VPMOVZXDQ ymm zmm -func VPMOVZXDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXDQ.Forms(), sffxs{}, ops) -} - -// VPMOVZXDQ_Z: Move Packed Doubleword Integers to Quadword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXDQ.Z m128 k ymm -// VPMOVZXDQ.Z m64 k xmm -// VPMOVZXDQ.Z xmm k xmm -// VPMOVZXDQ.Z xmm k ymm -// VPMOVZXDQ.Z m256 k zmm -// VPMOVZXDQ.Z ymm k zmm -func VPMOVZXDQ_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VPMOVZXWD: Move Packed Word Integers to Doubleword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXWD m128 ymm -// VPMOVZXWD xmm ymm -// VPMOVZXWD m64 xmm -// VPMOVZXWD xmm xmm -// VPMOVZXWD m128 k ymm -// VPMOVZXWD m64 k xmm -// VPMOVZXWD xmm k xmm -// VPMOVZXWD xmm k ymm -// VPMOVZXWD m256 k zmm -// VPMOVZXWD m256 zmm -// VPMOVZXWD ymm k zmm -// VPMOVZXWD ymm zmm -func VPMOVZXWD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXWD.Forms(), sffxs{}, ops) -} - -// VPMOVZXWD_Z: Move Packed Word Integers to Doubleword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXWD.Z m128 k ymm -// VPMOVZXWD.Z m64 k xmm -// VPMOVZXWD.Z xmm k xmm -// VPMOVZXWD.Z xmm k ymm -// VPMOVZXWD.Z m256 k zmm -// VPMOVZXWD.Z ymm k zmm -func VPMOVZXWD_Z(mxy, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXWD.Forms(), sffxs{sffxZ}, []operand.Op{mxy, k, xyz}) -} - -// VPMOVZXWQ: Move Packed Word Integers to Quadword Integers with Zero Extension. -// -// Forms: -// -// VPMOVZXWQ m64 ymm -// VPMOVZXWQ xmm ymm -// VPMOVZXWQ m32 xmm -// VPMOVZXWQ xmm xmm -// VPMOVZXWQ m32 k xmm -// VPMOVZXWQ m64 k ymm -// VPMOVZXWQ xmm k xmm -// VPMOVZXWQ xmm k ymm -// VPMOVZXWQ m128 k zmm -// VPMOVZXWQ m128 zmm -// VPMOVZXWQ xmm k zmm -// VPMOVZXWQ xmm zmm -func VPMOVZXWQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXWQ.Forms(), sffxs{}, ops) -} - -// VPMOVZXWQ_Z: Move Packed Word Integers to Quadword Integers with Zero Extension (Zeroing Masking). -// -// Forms: -// -// VPMOVZXWQ.Z m32 k xmm -// VPMOVZXWQ.Z m64 k ymm -// VPMOVZXWQ.Z xmm k xmm -// VPMOVZXWQ.Z xmm k ymm -// VPMOVZXWQ.Z m128 k zmm -// VPMOVZXWQ.Z xmm k zmm -func VPMOVZXWQ_Z(mx, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPMOVZXWQ.Forms(), sffxs{sffxZ}, []operand.Op{mx, k, xyz}) -} - -// VPMULDQ: Multiply Packed Signed Doubleword Integers and Store Quadword Result. -// -// Forms: -// -// VPMULDQ m256 ymm ymm -// VPMULDQ ymm ymm ymm -// VPMULDQ m128 xmm xmm -// VPMULDQ xmm xmm xmm -// VPMULDQ m128 xmm k xmm -// VPMULDQ m256 ymm k ymm -// VPMULDQ xmm xmm k xmm -// VPMULDQ ymm ymm k ymm -// VPMULDQ m512 zmm k zmm -// VPMULDQ m512 zmm zmm -// VPMULDQ zmm zmm k zmm -// VPMULDQ zmm zmm zmm -func VPMULDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULDQ.Forms(), sffxs{}, ops) -} - -// VPMULDQ_BCST: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Broadcast). -// -// Forms: -// -// VPMULDQ.BCST m64 xmm k xmm -// VPMULDQ.BCST m64 xmm xmm -// VPMULDQ.BCST m64 ymm k ymm -// VPMULDQ.BCST m64 ymm ymm -// VPMULDQ.BCST m64 zmm k zmm -// VPMULDQ.BCST m64 zmm zmm -func VPMULDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMULDQ_BCST_Z: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULDQ.BCST.Z m64 xmm k xmm -// VPMULDQ.BCST.Z m64 ymm k ymm -// VPMULDQ.BCST.Z m64 zmm k zmm -func VPMULDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMULDQ_Z: Multiply Packed Signed Doubleword Integers and Store Quadword Result (Zeroing Masking). -// -// Forms: -// -// VPMULDQ.Z m128 xmm k xmm -// VPMULDQ.Z m256 ymm k ymm -// VPMULDQ.Z xmm xmm k xmm -// VPMULDQ.Z ymm ymm k ymm -// VPMULDQ.Z m512 zmm k zmm -// VPMULDQ.Z zmm zmm k zmm -func VPMULDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMULHRSW: Packed Multiply Signed Word Integers and Store High Result with Round and Scale. -// -// Forms: -// -// VPMULHRSW m256 ymm ymm -// VPMULHRSW ymm ymm ymm -// VPMULHRSW m128 xmm xmm -// VPMULHRSW xmm xmm xmm -// VPMULHRSW m128 xmm k xmm -// VPMULHRSW m256 ymm k ymm -// VPMULHRSW xmm xmm k xmm -// VPMULHRSW ymm ymm k ymm -// VPMULHRSW m512 zmm k zmm -// VPMULHRSW m512 zmm zmm -// VPMULHRSW zmm zmm k zmm -// VPMULHRSW zmm zmm zmm -func VPMULHRSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULHRSW.Forms(), sffxs{}, ops) -} - -// VPMULHRSW_Z: Packed Multiply Signed Word Integers and Store High Result with Round and Scale (Zeroing Masking). -// -// Forms: -// -// VPMULHRSW.Z m128 xmm k xmm -// VPMULHRSW.Z m256 ymm k ymm -// VPMULHRSW.Z xmm xmm k xmm -// VPMULHRSW.Z ymm ymm k ymm -// VPMULHRSW.Z m512 zmm k zmm -// VPMULHRSW.Z zmm zmm k zmm -func VPMULHRSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULHRSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMULHUW: Multiply Packed Unsigned Word Integers and Store High Result. -// -// Forms: -// -// VPMULHUW m256 ymm ymm -// VPMULHUW ymm ymm ymm -// VPMULHUW m128 xmm xmm -// VPMULHUW xmm xmm xmm -// VPMULHUW m128 xmm k xmm -// VPMULHUW m256 ymm k ymm -// VPMULHUW xmm xmm k xmm -// VPMULHUW ymm ymm k ymm -// VPMULHUW m512 zmm k zmm -// VPMULHUW m512 zmm zmm -// VPMULHUW zmm zmm k zmm -// VPMULHUW zmm zmm zmm -func VPMULHUW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULHUW.Forms(), sffxs{}, ops) -} - -// VPMULHUW_Z: Multiply Packed Unsigned Word Integers and Store High Result (Zeroing Masking). -// -// Forms: -// -// VPMULHUW.Z m128 xmm k xmm -// VPMULHUW.Z m256 ymm k ymm -// VPMULHUW.Z xmm xmm k xmm -// VPMULHUW.Z ymm ymm k ymm -// VPMULHUW.Z m512 zmm k zmm -// VPMULHUW.Z zmm zmm k zmm -func VPMULHUW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULHUW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMULHW: Multiply Packed Signed Word Integers and Store High Result. -// -// Forms: -// -// VPMULHW m256 ymm ymm -// VPMULHW ymm ymm ymm -// VPMULHW m128 xmm xmm -// VPMULHW xmm xmm xmm -// VPMULHW m128 xmm k xmm -// VPMULHW m256 ymm k ymm -// VPMULHW xmm xmm k xmm -// VPMULHW ymm ymm k ymm -// VPMULHW m512 zmm k zmm -// VPMULHW m512 zmm zmm -// VPMULHW zmm zmm k zmm -// VPMULHW zmm zmm zmm -func VPMULHW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULHW.Forms(), sffxs{}, ops) -} - -// VPMULHW_Z: Multiply Packed Signed Word Integers and Store High Result (Zeroing Masking). -// -// Forms: -// -// VPMULHW.Z m128 xmm k xmm -// VPMULHW.Z m256 ymm k ymm -// VPMULHW.Z xmm xmm k xmm -// VPMULHW.Z ymm ymm k ymm -// VPMULHW.Z m512 zmm k zmm -// VPMULHW.Z zmm zmm k zmm -func VPMULHW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULHW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMULLD: Multiply Packed Signed Doubleword Integers and Store Low Result. -// -// Forms: -// -// VPMULLD m256 ymm ymm -// VPMULLD ymm ymm ymm -// VPMULLD m128 xmm xmm -// VPMULLD xmm xmm xmm -// VPMULLD m128 xmm k xmm -// VPMULLD m256 ymm k ymm -// VPMULLD xmm xmm k xmm -// VPMULLD ymm ymm k ymm -// VPMULLD m512 zmm k zmm -// VPMULLD m512 zmm zmm -// VPMULLD zmm zmm k zmm -// VPMULLD zmm zmm zmm -func VPMULLD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLD.Forms(), sffxs{}, ops) -} - -// VPMULLD_BCST: Multiply Packed Signed Doubleword Integers and Store Low Result (Broadcast). -// -// Forms: -// -// VPMULLD.BCST m32 xmm k xmm -// VPMULLD.BCST m32 xmm xmm -// VPMULLD.BCST m32 ymm k ymm -// VPMULLD.BCST m32 ymm ymm -// VPMULLD.BCST m32 zmm k zmm -// VPMULLD.BCST m32 zmm zmm -func VPMULLD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMULLD_BCST_Z: Multiply Packed Signed Doubleword Integers and Store Low Result (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULLD.BCST.Z m32 xmm k xmm -// VPMULLD.BCST.Z m32 ymm k ymm -// VPMULLD.BCST.Z m32 zmm k zmm -func VPMULLD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMULLD_Z: Multiply Packed Signed Doubleword Integers and Store Low Result (Zeroing Masking). -// -// Forms: -// -// VPMULLD.Z m128 xmm k xmm -// VPMULLD.Z m256 ymm k ymm -// VPMULLD.Z xmm xmm k xmm -// VPMULLD.Z ymm ymm k ymm -// VPMULLD.Z m512 zmm k zmm -// VPMULLD.Z zmm zmm k zmm -func VPMULLD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMULLQ: Multiply Packed Signed Quadword Integers and Store Low Result. -// -// Forms: -// -// VPMULLQ m128 xmm k xmm -// VPMULLQ m128 xmm xmm -// VPMULLQ m256 ymm k ymm -// VPMULLQ m256 ymm ymm -// VPMULLQ xmm xmm k xmm -// VPMULLQ xmm xmm xmm -// VPMULLQ ymm ymm k ymm -// VPMULLQ ymm ymm ymm -// VPMULLQ m512 zmm k zmm -// VPMULLQ m512 zmm zmm -// VPMULLQ zmm zmm k zmm -// VPMULLQ zmm zmm zmm -func VPMULLQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLQ.Forms(), sffxs{}, ops) -} - -// VPMULLQ_BCST: Multiply Packed Signed Quadword Integers and Store Low Result (Broadcast). -// -// Forms: -// -// VPMULLQ.BCST m64 xmm k xmm -// VPMULLQ.BCST m64 xmm xmm -// VPMULLQ.BCST m64 ymm k ymm -// VPMULLQ.BCST m64 ymm ymm -// VPMULLQ.BCST m64 zmm k zmm -// VPMULLQ.BCST m64 zmm zmm -func VPMULLQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMULLQ_BCST_Z: Multiply Packed Signed Quadword Integers and Store Low Result (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULLQ.BCST.Z m64 xmm k xmm -// VPMULLQ.BCST.Z m64 ymm k ymm -// VPMULLQ.BCST.Z m64 zmm k zmm -func VPMULLQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMULLQ_Z: Multiply Packed Signed Quadword Integers and Store Low Result (Zeroing Masking). -// -// Forms: -// -// VPMULLQ.Z m128 xmm k xmm -// VPMULLQ.Z m256 ymm k ymm -// VPMULLQ.Z xmm xmm k xmm -// VPMULLQ.Z ymm ymm k ymm -// VPMULLQ.Z m512 zmm k zmm -// VPMULLQ.Z zmm zmm k zmm -func VPMULLQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMULLW: Multiply Packed Signed Word Integers and Store Low Result. -// -// Forms: -// -// VPMULLW m256 ymm ymm -// VPMULLW ymm ymm ymm -// VPMULLW m128 xmm xmm -// VPMULLW xmm xmm xmm -// VPMULLW m128 xmm k xmm -// VPMULLW m256 ymm k ymm -// VPMULLW xmm xmm k xmm -// VPMULLW ymm ymm k ymm -// VPMULLW m512 zmm k zmm -// VPMULLW m512 zmm zmm -// VPMULLW zmm zmm k zmm -// VPMULLW zmm zmm zmm -func VPMULLW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLW.Forms(), sffxs{}, ops) -} - -// VPMULLW_Z: Multiply Packed Signed Word Integers and Store Low Result (Zeroing Masking). -// -// Forms: -// -// VPMULLW.Z m128 xmm k xmm -// VPMULLW.Z m256 ymm k ymm -// VPMULLW.Z xmm xmm k xmm -// VPMULLW.Z ymm ymm k ymm -// VPMULLW.Z m512 zmm k zmm -// VPMULLW.Z zmm zmm k zmm -func VPMULLW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULLW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMULTISHIFTQB: Select Packed Unaligned Bytes from Quadword Sources. -// -// Forms: -// -// VPMULTISHIFTQB m128 xmm k xmm -// VPMULTISHIFTQB m128 xmm xmm -// VPMULTISHIFTQB m256 ymm k ymm -// VPMULTISHIFTQB m256 ymm ymm -// VPMULTISHIFTQB xmm xmm k xmm -// VPMULTISHIFTQB xmm xmm xmm -// VPMULTISHIFTQB ymm ymm k ymm -// VPMULTISHIFTQB ymm ymm ymm -// VPMULTISHIFTQB m512 zmm k zmm -// VPMULTISHIFTQB m512 zmm zmm -// VPMULTISHIFTQB zmm zmm k zmm -// VPMULTISHIFTQB zmm zmm zmm -func VPMULTISHIFTQB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULTISHIFTQB.Forms(), sffxs{}, ops) -} - -// VPMULTISHIFTQB_BCST: Select Packed Unaligned Bytes from Quadword Sources (Broadcast). -// -// Forms: -// -// VPMULTISHIFTQB.BCST m64 xmm k xmm -// VPMULTISHIFTQB.BCST m64 xmm xmm -// VPMULTISHIFTQB.BCST m64 ymm k ymm -// VPMULTISHIFTQB.BCST m64 ymm ymm -// VPMULTISHIFTQB.BCST m64 zmm k zmm -// VPMULTISHIFTQB.BCST m64 zmm zmm -func VPMULTISHIFTQB_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULTISHIFTQB.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMULTISHIFTQB_BCST_Z: Select Packed Unaligned Bytes from Quadword Sources (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULTISHIFTQB.BCST.Z m64 xmm k xmm -// VPMULTISHIFTQB.BCST.Z m64 ymm k ymm -// VPMULTISHIFTQB.BCST.Z m64 zmm k zmm -func VPMULTISHIFTQB_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULTISHIFTQB.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMULTISHIFTQB_Z: Select Packed Unaligned Bytes from Quadword Sources (Zeroing Masking). -// -// Forms: -// -// VPMULTISHIFTQB.Z m128 xmm k xmm -// VPMULTISHIFTQB.Z m256 ymm k ymm -// VPMULTISHIFTQB.Z xmm xmm k xmm -// VPMULTISHIFTQB.Z ymm ymm k ymm -// VPMULTISHIFTQB.Z m512 zmm k zmm -// VPMULTISHIFTQB.Z zmm zmm k zmm -func VPMULTISHIFTQB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULTISHIFTQB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPMULUDQ: Multiply Packed Unsigned Doubleword Integers. -// -// Forms: -// -// VPMULUDQ m256 ymm ymm -// VPMULUDQ ymm ymm ymm -// VPMULUDQ m128 xmm xmm -// VPMULUDQ xmm xmm xmm -// VPMULUDQ m128 xmm k xmm -// VPMULUDQ m256 ymm k ymm -// VPMULUDQ xmm xmm k xmm -// VPMULUDQ ymm ymm k ymm -// VPMULUDQ m512 zmm k zmm -// VPMULUDQ m512 zmm zmm -// VPMULUDQ zmm zmm k zmm -// VPMULUDQ zmm zmm zmm -func VPMULUDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULUDQ.Forms(), sffxs{}, ops) -} - -// VPMULUDQ_BCST: Multiply Packed Unsigned Doubleword Integers (Broadcast). -// -// Forms: -// -// VPMULUDQ.BCST m64 xmm k xmm -// VPMULUDQ.BCST m64 xmm xmm -// VPMULUDQ.BCST m64 ymm k ymm -// VPMULUDQ.BCST m64 ymm ymm -// VPMULUDQ.BCST m64 zmm k zmm -// VPMULUDQ.BCST m64 zmm zmm -func VPMULUDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULUDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPMULUDQ_BCST_Z: Multiply Packed Unsigned Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPMULUDQ.BCST.Z m64 xmm k xmm -// VPMULUDQ.BCST.Z m64 ymm k ymm -// VPMULUDQ.BCST.Z m64 zmm k zmm -func VPMULUDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULUDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPMULUDQ_Z: Multiply Packed Unsigned Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPMULUDQ.Z m128 xmm k xmm -// VPMULUDQ.Z m256 ymm k ymm -// VPMULUDQ.Z xmm xmm k xmm -// VPMULUDQ.Z ymm ymm k ymm -// VPMULUDQ.Z m512 zmm k zmm -// VPMULUDQ.Z zmm zmm k zmm -func VPMULUDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPMULUDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPOPCNTB: Packed Population Count for Byte Integers. -// -// Forms: -// -// VPOPCNTB m128 k xmm -// VPOPCNTB m128 xmm -// VPOPCNTB m256 k ymm -// VPOPCNTB m256 ymm -// VPOPCNTB xmm k xmm -// VPOPCNTB xmm xmm -// VPOPCNTB ymm k ymm -// VPOPCNTB ymm ymm -// VPOPCNTB m512 k zmm -// VPOPCNTB m512 zmm -// VPOPCNTB zmm k zmm -// VPOPCNTB zmm zmm -func VPOPCNTB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTB.Forms(), sffxs{}, ops) -} - -// VPOPCNTB_Z: Packed Population Count for Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTB.Z m128 k xmm -// VPOPCNTB.Z m256 k ymm -// VPOPCNTB.Z xmm k xmm -// VPOPCNTB.Z ymm k ymm -// VPOPCNTB.Z m512 k zmm -// VPOPCNTB.Z zmm k zmm -func VPOPCNTB_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPOPCNTD: Packed Population Count for Doubleword Integers. -// -// Forms: -// -// VPOPCNTD m128 k xmm -// VPOPCNTD m128 xmm -// VPOPCNTD m256 k ymm -// VPOPCNTD m256 ymm -// VPOPCNTD xmm k xmm -// VPOPCNTD xmm xmm -// VPOPCNTD ymm k ymm -// VPOPCNTD ymm ymm -// VPOPCNTD m512 k zmm -// VPOPCNTD m512 zmm -// VPOPCNTD zmm k zmm -// VPOPCNTD zmm zmm -func VPOPCNTD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTD.Forms(), sffxs{}, ops) -} - -// VPOPCNTD_BCST: Packed Population Count for Doubleword Integers (Broadcast). -// -// Forms: -// -// VPOPCNTD.BCST m32 k xmm -// VPOPCNTD.BCST m32 k ymm -// VPOPCNTD.BCST m32 xmm -// VPOPCNTD.BCST m32 ymm -// VPOPCNTD.BCST m32 k zmm -// VPOPCNTD.BCST m32 zmm -func VPOPCNTD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPOPCNTD_BCST_Z: Packed Population Count for Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPOPCNTD.BCST.Z m32 k xmm -// VPOPCNTD.BCST.Z m32 k ymm -// VPOPCNTD.BCST.Z m32 k zmm -func VPOPCNTD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VPOPCNTD_Z: Packed Population Count for Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTD.Z m128 k xmm -// VPOPCNTD.Z m256 k ymm -// VPOPCNTD.Z xmm k xmm -// VPOPCNTD.Z ymm k ymm -// VPOPCNTD.Z m512 k zmm -// VPOPCNTD.Z zmm k zmm -func VPOPCNTD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPOPCNTQ: Packed Population Count for Quadword Integers. -// -// Forms: -// -// VPOPCNTQ m128 k xmm -// VPOPCNTQ m128 xmm -// VPOPCNTQ m256 k ymm -// VPOPCNTQ m256 ymm -// VPOPCNTQ xmm k xmm -// VPOPCNTQ xmm xmm -// VPOPCNTQ ymm k ymm -// VPOPCNTQ ymm ymm -// VPOPCNTQ m512 k zmm -// VPOPCNTQ m512 zmm -// VPOPCNTQ zmm k zmm -// VPOPCNTQ zmm zmm -func VPOPCNTQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTQ.Forms(), sffxs{}, ops) -} - -// VPOPCNTQ_BCST: Packed Population Count for Quadword Integers (Broadcast). -// -// Forms: -// -// VPOPCNTQ.BCST m64 k xmm -// VPOPCNTQ.BCST m64 k ymm -// VPOPCNTQ.BCST m64 xmm -// VPOPCNTQ.BCST m64 ymm -// VPOPCNTQ.BCST m64 k zmm -// VPOPCNTQ.BCST m64 zmm -func VPOPCNTQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPOPCNTQ_BCST_Z: Packed Population Count for Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPOPCNTQ.BCST.Z m64 k xmm -// VPOPCNTQ.BCST.Z m64 k ymm -// VPOPCNTQ.BCST.Z m64 k zmm -func VPOPCNTQ_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VPOPCNTQ_Z: Packed Population Count for Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTQ.Z m128 k xmm -// VPOPCNTQ.Z m256 k ymm -// VPOPCNTQ.Z xmm k xmm -// VPOPCNTQ.Z ymm k ymm -// VPOPCNTQ.Z m512 k zmm -// VPOPCNTQ.Z zmm k zmm -func VPOPCNTQ_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPOPCNTW: Packed Population Count for Word Integers. -// -// Forms: -// -// VPOPCNTW m128 k xmm -// VPOPCNTW m128 xmm -// VPOPCNTW m256 k ymm -// VPOPCNTW m256 ymm -// VPOPCNTW xmm k xmm -// VPOPCNTW xmm xmm -// VPOPCNTW ymm k ymm -// VPOPCNTW ymm ymm -// VPOPCNTW m512 k zmm -// VPOPCNTW m512 zmm -// VPOPCNTW zmm k zmm -// VPOPCNTW zmm zmm -func VPOPCNTW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTW.Forms(), sffxs{}, ops) -} - -// VPOPCNTW_Z: Packed Population Count for Word Integers (Zeroing Masking). -// -// Forms: -// -// VPOPCNTW.Z m128 k xmm -// VPOPCNTW.Z m256 k ymm -// VPOPCNTW.Z xmm k xmm -// VPOPCNTW.Z ymm k ymm -// VPOPCNTW.Z m512 k zmm -// VPOPCNTW.Z zmm k zmm -func VPOPCNTW_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPOPCNTW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VPOR: Packed Bitwise Logical OR. -// -// Forms: -// -// VPOR m256 ymm ymm -// VPOR ymm ymm ymm -// VPOR m128 xmm xmm -// VPOR xmm xmm xmm -func VPOR(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPOR.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPORD: Bitwise Logical OR of Packed Doubleword Integers. -// -// Forms: -// -// VPORD m128 xmm k xmm -// VPORD m128 xmm xmm -// VPORD m256 ymm k ymm -// VPORD m256 ymm ymm -// VPORD xmm xmm k xmm -// VPORD xmm xmm xmm -// VPORD ymm ymm k ymm -// VPORD ymm ymm ymm -// VPORD m512 zmm k zmm -// VPORD m512 zmm zmm -// VPORD zmm zmm k zmm -// VPORD zmm zmm zmm -func VPORD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPORD.Forms(), sffxs{}, ops) -} - -// VPORD_BCST: Bitwise Logical OR of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPORD.BCST m32 xmm k xmm -// VPORD.BCST m32 xmm xmm -// VPORD.BCST m32 ymm k ymm -// VPORD.BCST m32 ymm ymm -// VPORD.BCST m32 zmm k zmm -// VPORD.BCST m32 zmm zmm -func VPORD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPORD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPORD_BCST_Z: Bitwise Logical OR of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPORD.BCST.Z m32 xmm k xmm -// VPORD.BCST.Z m32 ymm k ymm -// VPORD.BCST.Z m32 zmm k zmm -func VPORD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPORD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPORD_Z: Bitwise Logical OR of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPORD.Z m128 xmm k xmm -// VPORD.Z m256 ymm k ymm -// VPORD.Z xmm xmm k xmm -// VPORD.Z ymm ymm k ymm -// VPORD.Z m512 zmm k zmm -// VPORD.Z zmm zmm k zmm -func VPORD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPORD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPORQ: Bitwise Logical OR of Packed Quadword Integers. -// -// Forms: -// -// VPORQ m128 xmm k xmm -// VPORQ m128 xmm xmm -// VPORQ m256 ymm k ymm -// VPORQ m256 ymm ymm -// VPORQ xmm xmm k xmm -// VPORQ xmm xmm xmm -// VPORQ ymm ymm k ymm -// VPORQ ymm ymm ymm -// VPORQ m512 zmm k zmm -// VPORQ m512 zmm zmm -// VPORQ zmm zmm k zmm -// VPORQ zmm zmm zmm -func VPORQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPORQ.Forms(), sffxs{}, ops) -} - -// VPORQ_BCST: Bitwise Logical OR of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPORQ.BCST m64 xmm k xmm -// VPORQ.BCST m64 xmm xmm -// VPORQ.BCST m64 ymm k ymm -// VPORQ.BCST m64 ymm ymm -// VPORQ.BCST m64 zmm k zmm -// VPORQ.BCST m64 zmm zmm -func VPORQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPORQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPORQ_BCST_Z: Bitwise Logical OR of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPORQ.BCST.Z m64 xmm k xmm -// VPORQ.BCST.Z m64 ymm k ymm -// VPORQ.BCST.Z m64 zmm k zmm -func VPORQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPORQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPORQ_Z: Bitwise Logical OR of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPORQ.Z m128 xmm k xmm -// VPORQ.Z m256 ymm k ymm -// VPORQ.Z xmm xmm k xmm -// VPORQ.Z ymm ymm k ymm -// VPORQ.Z m512 zmm k zmm -// VPORQ.Z zmm zmm k zmm -func VPORQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPORQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPROLD: Rotate Packed Doubleword Left. -// -// Forms: -// -// VPROLD imm8 m128 k xmm -// VPROLD imm8 m128 xmm -// VPROLD imm8 m256 k ymm -// VPROLD imm8 m256 ymm -// VPROLD imm8 xmm k xmm -// VPROLD imm8 xmm xmm -// VPROLD imm8 ymm k ymm -// VPROLD imm8 ymm ymm -// VPROLD imm8 m512 k zmm -// VPROLD imm8 m512 zmm -// VPROLD imm8 zmm k zmm -// VPROLD imm8 zmm zmm -func VPROLD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLD.Forms(), sffxs{}, ops) -} - -// VPROLD_BCST: Rotate Packed Doubleword Left (Broadcast). -// -// Forms: -// -// VPROLD.BCST imm8 m32 k xmm -// VPROLD.BCST imm8 m32 k ymm -// VPROLD.BCST imm8 m32 xmm -// VPROLD.BCST imm8 m32 ymm -// VPROLD.BCST imm8 m32 k zmm -// VPROLD.BCST imm8 m32 zmm -func VPROLD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPROLD_BCST_Z: Rotate Packed Doubleword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLD.BCST.Z imm8 m32 k xmm -// VPROLD.BCST.Z imm8 m32 k ymm -// VPROLD.BCST.Z imm8 m32 k zmm -func VPROLD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPROLD_Z: Rotate Packed Doubleword Left (Zeroing Masking). -// -// Forms: -// -// VPROLD.Z imm8 m128 k xmm -// VPROLD.Z imm8 m256 k ymm -// VPROLD.Z imm8 xmm k xmm -// VPROLD.Z imm8 ymm k ymm -// VPROLD.Z imm8 m512 k zmm -// VPROLD.Z imm8 zmm k zmm -func VPROLD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VPROLQ: Rotate Packed Quadword Left. -// -// Forms: -// -// VPROLQ imm8 m128 k xmm -// VPROLQ imm8 m128 xmm -// VPROLQ imm8 m256 k ymm -// VPROLQ imm8 m256 ymm -// VPROLQ imm8 xmm k xmm -// VPROLQ imm8 xmm xmm -// VPROLQ imm8 ymm k ymm -// VPROLQ imm8 ymm ymm -// VPROLQ imm8 m512 k zmm -// VPROLQ imm8 m512 zmm -// VPROLQ imm8 zmm k zmm -// VPROLQ imm8 zmm zmm -func VPROLQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLQ.Forms(), sffxs{}, ops) -} - -// VPROLQ_BCST: Rotate Packed Quadword Left (Broadcast). -// -// Forms: -// -// VPROLQ.BCST imm8 m64 k xmm -// VPROLQ.BCST imm8 m64 k ymm -// VPROLQ.BCST imm8 m64 xmm -// VPROLQ.BCST imm8 m64 ymm -// VPROLQ.BCST imm8 m64 k zmm -// VPROLQ.BCST imm8 m64 zmm -func VPROLQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPROLQ_BCST_Z: Rotate Packed Quadword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLQ.BCST.Z imm8 m64 k xmm -// VPROLQ.BCST.Z imm8 m64 k ymm -// VPROLQ.BCST.Z imm8 m64 k zmm -func VPROLQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPROLQ_Z: Rotate Packed Quadword Left (Zeroing Masking). -// -// Forms: -// -// VPROLQ.Z imm8 m128 k xmm -// VPROLQ.Z imm8 m256 k ymm -// VPROLQ.Z imm8 xmm k xmm -// VPROLQ.Z imm8 ymm k ymm -// VPROLQ.Z imm8 m512 k zmm -// VPROLQ.Z imm8 zmm k zmm -func VPROLQ_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VPROLVD: Variable Rotate Packed Doubleword Left. -// -// Forms: -// -// VPROLVD m128 xmm k xmm -// VPROLVD m128 xmm xmm -// VPROLVD m256 ymm k ymm -// VPROLVD m256 ymm ymm -// VPROLVD xmm xmm k xmm -// VPROLVD xmm xmm xmm -// VPROLVD ymm ymm k ymm -// VPROLVD ymm ymm ymm -// VPROLVD m512 zmm k zmm -// VPROLVD m512 zmm zmm -// VPROLVD zmm zmm k zmm -// VPROLVD zmm zmm zmm -func VPROLVD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLVD.Forms(), sffxs{}, ops) -} - -// VPROLVD_BCST: Variable Rotate Packed Doubleword Left (Broadcast). -// -// Forms: -// -// VPROLVD.BCST m32 xmm k xmm -// VPROLVD.BCST m32 xmm xmm -// VPROLVD.BCST m32 ymm k ymm -// VPROLVD.BCST m32 ymm ymm -// VPROLVD.BCST m32 zmm k zmm -// VPROLVD.BCST m32 zmm zmm -func VPROLVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLVD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPROLVD_BCST_Z: Variable Rotate Packed Doubleword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLVD.BCST.Z m32 xmm k xmm -// VPROLVD.BCST.Z m32 ymm k ymm -// VPROLVD.BCST.Z m32 zmm k zmm -func VPROLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPROLVD_Z: Variable Rotate Packed Doubleword Left (Zeroing Masking). -// -// Forms: -// -// VPROLVD.Z m128 xmm k xmm -// VPROLVD.Z m256 ymm k ymm -// VPROLVD.Z xmm xmm k xmm -// VPROLVD.Z ymm ymm k ymm -// VPROLVD.Z m512 zmm k zmm -// VPROLVD.Z zmm zmm k zmm -func VPROLVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPROLVQ: Variable Rotate Packed Quadword Left. -// -// Forms: -// -// VPROLVQ m128 xmm k xmm -// VPROLVQ m128 xmm xmm -// VPROLVQ m256 ymm k ymm -// VPROLVQ m256 ymm ymm -// VPROLVQ xmm xmm k xmm -// VPROLVQ xmm xmm xmm -// VPROLVQ ymm ymm k ymm -// VPROLVQ ymm ymm ymm -// VPROLVQ m512 zmm k zmm -// VPROLVQ m512 zmm zmm -// VPROLVQ zmm zmm k zmm -// VPROLVQ zmm zmm zmm -func VPROLVQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLVQ.Forms(), sffxs{}, ops) -} - -// VPROLVQ_BCST: Variable Rotate Packed Quadword Left (Broadcast). -// -// Forms: -// -// VPROLVQ.BCST m64 xmm k xmm -// VPROLVQ.BCST m64 xmm xmm -// VPROLVQ.BCST m64 ymm k ymm -// VPROLVQ.BCST m64 ymm ymm -// VPROLVQ.BCST m64 zmm k zmm -// VPROLVQ.BCST m64 zmm zmm -func VPROLVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLVQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPROLVQ_BCST_Z: Variable Rotate Packed Quadword Left (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPROLVQ.BCST.Z m64 xmm k xmm -// VPROLVQ.BCST.Z m64 ymm k ymm -// VPROLVQ.BCST.Z m64 zmm k zmm -func VPROLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPROLVQ_Z: Variable Rotate Packed Quadword Left (Zeroing Masking). -// -// Forms: -// -// VPROLVQ.Z m128 xmm k xmm -// VPROLVQ.Z m256 ymm k ymm -// VPROLVQ.Z xmm xmm k xmm -// VPROLVQ.Z ymm ymm k ymm -// VPROLVQ.Z m512 zmm k zmm -// VPROLVQ.Z zmm zmm k zmm -func VPROLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPROLVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPRORD: Rotate Packed Doubleword Right. -// -// Forms: -// -// VPRORD imm8 m128 k xmm -// VPRORD imm8 m128 xmm -// VPRORD imm8 m256 k ymm -// VPRORD imm8 m256 ymm -// VPRORD imm8 xmm k xmm -// VPRORD imm8 xmm xmm -// VPRORD imm8 ymm k ymm -// VPRORD imm8 ymm ymm -// VPRORD imm8 m512 k zmm -// VPRORD imm8 m512 zmm -// VPRORD imm8 zmm k zmm -// VPRORD imm8 zmm zmm -func VPRORD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORD.Forms(), sffxs{}, ops) -} - -// VPRORD_BCST: Rotate Packed Doubleword Right (Broadcast). -// -// Forms: -// -// VPRORD.BCST imm8 m32 k xmm -// VPRORD.BCST imm8 m32 k ymm -// VPRORD.BCST imm8 m32 xmm -// VPRORD.BCST imm8 m32 ymm -// VPRORD.BCST imm8 m32 k zmm -// VPRORD.BCST imm8 m32 zmm -func VPRORD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPRORD_BCST_Z: Rotate Packed Doubleword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORD.BCST.Z imm8 m32 k xmm -// VPRORD.BCST.Z imm8 m32 k ymm -// VPRORD.BCST.Z imm8 m32 k zmm -func VPRORD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPRORD_Z: Rotate Packed Doubleword Right (Zeroing Masking). -// -// Forms: -// -// VPRORD.Z imm8 m128 k xmm -// VPRORD.Z imm8 m256 k ymm -// VPRORD.Z imm8 xmm k xmm -// VPRORD.Z imm8 ymm k ymm -// VPRORD.Z imm8 m512 k zmm -// VPRORD.Z imm8 zmm k zmm -func VPRORD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VPRORQ: Rotate Packed Quadword Right. -// -// Forms: -// -// VPRORQ imm8 m128 k xmm -// VPRORQ imm8 m128 xmm -// VPRORQ imm8 m256 k ymm -// VPRORQ imm8 m256 ymm -// VPRORQ imm8 xmm k xmm -// VPRORQ imm8 xmm xmm -// VPRORQ imm8 ymm k ymm -// VPRORQ imm8 ymm ymm -// VPRORQ imm8 m512 k zmm -// VPRORQ imm8 m512 zmm -// VPRORQ imm8 zmm k zmm -// VPRORQ imm8 zmm zmm -func VPRORQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORQ.Forms(), sffxs{}, ops) -} - -// VPRORQ_BCST: Rotate Packed Quadword Right (Broadcast). -// -// Forms: -// -// VPRORQ.BCST imm8 m64 k xmm -// VPRORQ.BCST imm8 m64 k ymm -// VPRORQ.BCST imm8 m64 xmm -// VPRORQ.BCST imm8 m64 ymm -// VPRORQ.BCST imm8 m64 k zmm -// VPRORQ.BCST imm8 m64 zmm -func VPRORQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPRORQ_BCST_Z: Rotate Packed Quadword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORQ.BCST.Z imm8 m64 k xmm -// VPRORQ.BCST.Z imm8 m64 k ymm -// VPRORQ.BCST.Z imm8 m64 k zmm -func VPRORQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPRORQ_Z: Rotate Packed Quadword Right (Zeroing Masking). -// -// Forms: -// -// VPRORQ.Z imm8 m128 k xmm -// VPRORQ.Z imm8 m256 k ymm -// VPRORQ.Z imm8 xmm k xmm -// VPRORQ.Z imm8 ymm k ymm -// VPRORQ.Z imm8 m512 k zmm -// VPRORQ.Z imm8 zmm k zmm -func VPRORQ_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VPRORVD: Variable Rotate Packed Doubleword Right. -// -// Forms: -// -// VPRORVD m128 xmm k xmm -// VPRORVD m128 xmm xmm -// VPRORVD m256 ymm k ymm -// VPRORVD m256 ymm ymm -// VPRORVD xmm xmm k xmm -// VPRORVD xmm xmm xmm -// VPRORVD ymm ymm k ymm -// VPRORVD ymm ymm ymm -// VPRORVD m512 zmm k zmm -// VPRORVD m512 zmm zmm -// VPRORVD zmm zmm k zmm -// VPRORVD zmm zmm zmm -func VPRORVD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORVD.Forms(), sffxs{}, ops) -} - -// VPRORVD_BCST: Variable Rotate Packed Doubleword Right (Broadcast). -// -// Forms: -// -// VPRORVD.BCST m32 xmm k xmm -// VPRORVD.BCST m32 xmm xmm -// VPRORVD.BCST m32 ymm k ymm -// VPRORVD.BCST m32 ymm ymm -// VPRORVD.BCST m32 zmm k zmm -// VPRORVD.BCST m32 zmm zmm -func VPRORVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORVD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPRORVD_BCST_Z: Variable Rotate Packed Doubleword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORVD.BCST.Z m32 xmm k xmm -// VPRORVD.BCST.Z m32 ymm k ymm -// VPRORVD.BCST.Z m32 zmm k zmm -func VPRORVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPRORVD_Z: Variable Rotate Packed Doubleword Right (Zeroing Masking). -// -// Forms: -// -// VPRORVD.Z m128 xmm k xmm -// VPRORVD.Z m256 ymm k ymm -// VPRORVD.Z xmm xmm k xmm -// VPRORVD.Z ymm ymm k ymm -// VPRORVD.Z m512 zmm k zmm -// VPRORVD.Z zmm zmm k zmm -func VPRORVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPRORVQ: Variable Rotate Packed Quadword Right. -// -// Forms: -// -// VPRORVQ m128 xmm k xmm -// VPRORVQ m128 xmm xmm -// VPRORVQ m256 ymm k ymm -// VPRORVQ m256 ymm ymm -// VPRORVQ xmm xmm k xmm -// VPRORVQ xmm xmm xmm -// VPRORVQ ymm ymm k ymm -// VPRORVQ ymm ymm ymm -// VPRORVQ m512 zmm k zmm -// VPRORVQ m512 zmm zmm -// VPRORVQ zmm zmm k zmm -// VPRORVQ zmm zmm zmm -func VPRORVQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORVQ.Forms(), sffxs{}, ops) -} - -// VPRORVQ_BCST: Variable Rotate Packed Quadword Right (Broadcast). -// -// Forms: -// -// VPRORVQ.BCST m64 xmm k xmm -// VPRORVQ.BCST m64 xmm xmm -// VPRORVQ.BCST m64 ymm k ymm -// VPRORVQ.BCST m64 ymm ymm -// VPRORVQ.BCST m64 zmm k zmm -// VPRORVQ.BCST m64 zmm zmm -func VPRORVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORVQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPRORVQ_BCST_Z: Variable Rotate Packed Quadword Right (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPRORVQ.BCST.Z m64 xmm k xmm -// VPRORVQ.BCST.Z m64 ymm k ymm -// VPRORVQ.BCST.Z m64 zmm k zmm -func VPRORVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPRORVQ_Z: Variable Rotate Packed Quadword Right (Zeroing Masking). -// -// Forms: -// -// VPRORVQ.Z m128 xmm k xmm -// VPRORVQ.Z m256 ymm k ymm -// VPRORVQ.Z xmm xmm k xmm -// VPRORVQ.Z ymm ymm k ymm -// VPRORVQ.Z m512 zmm k zmm -// VPRORVQ.Z zmm zmm k zmm -func VPRORVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPRORVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSADBW: Compute Sum of Absolute Differences. -// -// Forms: -// -// VPSADBW m256 ymm ymm -// VPSADBW ymm ymm ymm -// VPSADBW m128 xmm xmm -// VPSADBW xmm xmm xmm -// VPSADBW m512 zmm zmm -// VPSADBW zmm zmm zmm -func VPSADBW(mxyz, xyz, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSADBW.Forms(), sffxs{}, []operand.Op{mxyz, xyz, xyz1}) -} - -// VPSCATTERDD: Scatter Packed Doubleword Values with Signed Doubleword Indices. -// -// Forms: -// -// VPSCATTERDD xmm k vm32x -// VPSCATTERDD ymm k vm32y -// VPSCATTERDD zmm k vm32z -func VPSCATTERDD(xyz, k, v operand.Op) (*intrep.Instruction, error) { - return build(opcVPSCATTERDD.Forms(), sffxs{}, []operand.Op{xyz, k, v}) -} - -// VPSCATTERDQ: Scatter Packed Quadword Values with Signed Doubleword Indices. -// -// Forms: -// -// VPSCATTERDQ xmm k vm32x -// VPSCATTERDQ ymm k vm32x -// VPSCATTERDQ zmm k vm32y -func VPSCATTERDQ(xyz, k, v operand.Op) (*intrep.Instruction, error) { - return build(opcVPSCATTERDQ.Forms(), sffxs{}, []operand.Op{xyz, k, v}) -} - -// VPSCATTERQD: Scatter Packed Doubleword Values with Signed Quadword Indices. -// -// Forms: -// -// VPSCATTERQD xmm k vm64x -// VPSCATTERQD xmm k vm64y -// VPSCATTERQD ymm k vm64z -func VPSCATTERQD(xy, k, v operand.Op) (*intrep.Instruction, error) { - return build(opcVPSCATTERQD.Forms(), sffxs{}, []operand.Op{xy, k, v}) -} - -// VPSCATTERQQ: Scatter Packed Quadword Values with Signed Quadword Indices. -// -// Forms: -// -// VPSCATTERQQ xmm k vm64x -// VPSCATTERQQ ymm k vm64y -// VPSCATTERQQ zmm k vm64z -func VPSCATTERQQ(xyz, k, v operand.Op) (*intrep.Instruction, error) { - return build(opcVPSCATTERQQ.Forms(), sffxs{}, []operand.Op{xyz, k, v}) -} - -// VPSHLDD: Concatenate Dwords and Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDD imm8 m128 xmm k xmm -// VPSHLDD imm8 m128 xmm xmm -// VPSHLDD imm8 m256 ymm k ymm -// VPSHLDD imm8 m256 ymm ymm -// VPSHLDD imm8 xmm xmm k xmm -// VPSHLDD imm8 xmm xmm xmm -// VPSHLDD imm8 ymm ymm k ymm -// VPSHLDD imm8 ymm ymm ymm -// VPSHLDD imm8 m512 zmm k zmm -// VPSHLDD imm8 m512 zmm zmm -// VPSHLDD imm8 zmm zmm k zmm -// VPSHLDD imm8 zmm zmm zmm -func VPSHLDD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDD.Forms(), sffxs{}, ops) -} - -// VPSHLDD_BCST: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDD.BCST imm8 m32 xmm k xmm -// VPSHLDD.BCST imm8 m32 xmm xmm -// VPSHLDD.BCST imm8 m32 ymm k ymm -// VPSHLDD.BCST imm8 m32 ymm ymm -// VPSHLDD.BCST imm8 m32 zmm k zmm -// VPSHLDD.BCST imm8 m32 zmm zmm -func VPSHLDD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSHLDD_BCST_Z: Concatenate Dwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDD.BCST.Z imm8 m32 xmm k xmm -// VPSHLDD.BCST.Z imm8 m32 ymm k ymm -// VPSHLDD.BCST.Z imm8 m32 zmm k zmm -func VPSHLDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VPSHLDD_Z: Concatenate Dwords and Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDD.Z imm8 m128 xmm k xmm -// VPSHLDD.Z imm8 m256 ymm k ymm -// VPSHLDD.Z imm8 xmm xmm k xmm -// VPSHLDD.Z imm8 ymm ymm k ymm -// VPSHLDD.Z imm8 m512 zmm k zmm -// VPSHLDD.Z imm8 zmm zmm k zmm -func VPSHLDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VPSHLDQ: Concatenate Quadwords and Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDQ imm8 m128 xmm k xmm -// VPSHLDQ imm8 m128 xmm xmm -// VPSHLDQ imm8 m256 ymm k ymm -// VPSHLDQ imm8 m256 ymm ymm -// VPSHLDQ imm8 xmm xmm k xmm -// VPSHLDQ imm8 xmm xmm xmm -// VPSHLDQ imm8 ymm ymm k ymm -// VPSHLDQ imm8 ymm ymm ymm -// VPSHLDQ imm8 m512 zmm k zmm -// VPSHLDQ imm8 m512 zmm zmm -// VPSHLDQ imm8 zmm zmm k zmm -// VPSHLDQ imm8 zmm zmm zmm -func VPSHLDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDQ.Forms(), sffxs{}, ops) -} - -// VPSHLDQ_BCST: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDQ.BCST imm8 m64 xmm k xmm -// VPSHLDQ.BCST imm8 m64 xmm xmm -// VPSHLDQ.BCST imm8 m64 ymm k ymm -// VPSHLDQ.BCST imm8 m64 ymm ymm -// VPSHLDQ.BCST imm8 m64 zmm k zmm -// VPSHLDQ.BCST imm8 m64 zmm zmm -func VPSHLDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSHLDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDQ.BCST.Z imm8 m64 xmm k xmm -// VPSHLDQ.BCST.Z imm8 m64 ymm k ymm -// VPSHLDQ.BCST.Z imm8 m64 zmm k zmm -func VPSHLDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VPSHLDQ_Z: Concatenate Quadwords and Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDQ.Z imm8 m128 xmm k xmm -// VPSHLDQ.Z imm8 m256 ymm k ymm -// VPSHLDQ.Z imm8 xmm xmm k xmm -// VPSHLDQ.Z imm8 ymm ymm k ymm -// VPSHLDQ.Z imm8 m512 zmm k zmm -// VPSHLDQ.Z imm8 zmm zmm k zmm -func VPSHLDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VPSHLDVD: Concatenate Dwords and Variable Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDVD m128 xmm k xmm -// VPSHLDVD m128 xmm xmm -// VPSHLDVD m256 ymm k ymm -// VPSHLDVD m256 ymm ymm -// VPSHLDVD xmm xmm k xmm -// VPSHLDVD xmm xmm xmm -// VPSHLDVD ymm ymm k ymm -// VPSHLDVD ymm ymm ymm -// VPSHLDVD m512 zmm k zmm -// VPSHLDVD m512 zmm zmm -// VPSHLDVD zmm zmm k zmm -// VPSHLDVD zmm zmm zmm -func VPSHLDVD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVD.Forms(), sffxs{}, ops) -} - -// VPSHLDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDVD.BCST m32 xmm k xmm -// VPSHLDVD.BCST m32 xmm xmm -// VPSHLDVD.BCST m32 ymm k ymm -// VPSHLDVD.BCST m32 ymm ymm -// VPSHLDVD.BCST m32 zmm k zmm -// VPSHLDVD.BCST m32 zmm zmm -func VPSHLDVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSHLDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDVD.BCST.Z m32 xmm k xmm -// VPSHLDVD.BCST.Z m32 ymm k ymm -// VPSHLDVD.BCST.Z m32 zmm k zmm -func VPSHLDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSHLDVD_Z: Concatenate Dwords and Variable Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDVD.Z m128 xmm k xmm -// VPSHLDVD.Z m256 ymm k ymm -// VPSHLDVD.Z xmm xmm k xmm -// VPSHLDVD.Z ymm ymm k ymm -// VPSHLDVD.Z m512 zmm k zmm -// VPSHLDVD.Z zmm zmm k zmm -func VPSHLDVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSHLDVQ: Concatenate Quadwords and Variable Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDVQ m128 xmm k xmm -// VPSHLDVQ m128 xmm xmm -// VPSHLDVQ m256 ymm k ymm -// VPSHLDVQ m256 ymm ymm -// VPSHLDVQ xmm xmm k xmm -// VPSHLDVQ xmm xmm xmm -// VPSHLDVQ ymm ymm k ymm -// VPSHLDVQ ymm ymm ymm -// VPSHLDVQ m512 zmm k zmm -// VPSHLDVQ m512 zmm zmm -// VPSHLDVQ zmm zmm k zmm -// VPSHLDVQ zmm zmm zmm -func VPSHLDVQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVQ.Forms(), sffxs{}, ops) -} - -// VPSHLDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast). -// -// Forms: -// -// VPSHLDVQ.BCST m64 xmm k xmm -// VPSHLDVQ.BCST m64 xmm xmm -// VPSHLDVQ.BCST m64 ymm k ymm -// VPSHLDVQ.BCST m64 ymm ymm -// VPSHLDVQ.BCST m64 zmm k zmm -// VPSHLDVQ.BCST m64 zmm zmm -func VPSHLDVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSHLDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHLDVQ.BCST.Z m64 xmm k xmm -// VPSHLDVQ.BCST.Z m64 ymm k ymm -// VPSHLDVQ.BCST.Z m64 zmm k zmm -func VPSHLDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSHLDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDVQ.Z m128 xmm k xmm -// VPSHLDVQ.Z m256 ymm k ymm -// VPSHLDVQ.Z xmm xmm k xmm -// VPSHLDVQ.Z ymm ymm k ymm -// VPSHLDVQ.Z m512 zmm k zmm -// VPSHLDVQ.Z zmm zmm k zmm -func VPSHLDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSHLDVW: Concatenate Words and Variable Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDVW m128 xmm k xmm -// VPSHLDVW m128 xmm xmm -// VPSHLDVW m256 ymm k ymm -// VPSHLDVW m256 ymm ymm -// VPSHLDVW xmm xmm k xmm -// VPSHLDVW xmm xmm xmm -// VPSHLDVW ymm ymm k ymm -// VPSHLDVW ymm ymm ymm -// VPSHLDVW m512 zmm k zmm -// VPSHLDVW m512 zmm zmm -// VPSHLDVW zmm zmm k zmm -// VPSHLDVW zmm zmm zmm -func VPSHLDVW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVW.Forms(), sffxs{}, ops) -} - -// VPSHLDVW_Z: Concatenate Words and Variable Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDVW.Z m128 xmm k xmm -// VPSHLDVW.Z m256 ymm k ymm -// VPSHLDVW.Z xmm xmm k xmm -// VPSHLDVW.Z ymm ymm k ymm -// VPSHLDVW.Z m512 zmm k zmm -// VPSHLDVW.Z zmm zmm k zmm -func VPSHLDVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSHLDW: Concatenate Words and Shift Packed Data Left Logical. -// -// Forms: -// -// VPSHLDW imm8 m128 xmm k xmm -// VPSHLDW imm8 m128 xmm xmm -// VPSHLDW imm8 m256 ymm k ymm -// VPSHLDW imm8 m256 ymm ymm -// VPSHLDW imm8 xmm xmm k xmm -// VPSHLDW imm8 xmm xmm xmm -// VPSHLDW imm8 ymm ymm k ymm -// VPSHLDW imm8 ymm ymm ymm -// VPSHLDW imm8 m512 zmm k zmm -// VPSHLDW imm8 m512 zmm zmm -// VPSHLDW imm8 zmm zmm k zmm -// VPSHLDW imm8 zmm zmm zmm -func VPSHLDW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDW.Forms(), sffxs{}, ops) -} - -// VPSHLDW_Z: Concatenate Words and Shift Packed Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSHLDW.Z imm8 m128 xmm k xmm -// VPSHLDW.Z imm8 m256 ymm k ymm -// VPSHLDW.Z imm8 xmm xmm k xmm -// VPSHLDW.Z imm8 ymm ymm k ymm -// VPSHLDW.Z imm8 m512 zmm k zmm -// VPSHLDW.Z imm8 zmm zmm k zmm -func VPSHLDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHLDW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VPSHRDD: Concatenate Dwords and Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDD imm8 m128 xmm k xmm -// VPSHRDD imm8 m128 xmm xmm -// VPSHRDD imm8 m256 ymm k ymm -// VPSHRDD imm8 m256 ymm ymm -// VPSHRDD imm8 xmm xmm k xmm -// VPSHRDD imm8 xmm xmm xmm -// VPSHRDD imm8 ymm ymm k ymm -// VPSHRDD imm8 ymm ymm ymm -// VPSHRDD imm8 m512 zmm k zmm -// VPSHRDD imm8 m512 zmm zmm -// VPSHRDD imm8 zmm zmm k zmm -// VPSHRDD imm8 zmm zmm zmm -func VPSHRDD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDD.Forms(), sffxs{}, ops) -} - -// VPSHRDD_BCST: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDD.BCST imm8 m32 xmm k xmm -// VPSHRDD.BCST imm8 m32 xmm xmm -// VPSHRDD.BCST imm8 m32 ymm k ymm -// VPSHRDD.BCST imm8 m32 ymm ymm -// VPSHRDD.BCST imm8 m32 zmm k zmm -// VPSHRDD.BCST imm8 m32 zmm zmm -func VPSHRDD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSHRDD_BCST_Z: Concatenate Dwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDD.BCST.Z imm8 m32 xmm k xmm -// VPSHRDD.BCST.Z imm8 m32 ymm k ymm -// VPSHRDD.BCST.Z imm8 m32 zmm k zmm -func VPSHRDD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VPSHRDD_Z: Concatenate Dwords and Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDD.Z imm8 m128 xmm k xmm -// VPSHRDD.Z imm8 m256 ymm k ymm -// VPSHRDD.Z imm8 xmm xmm k xmm -// VPSHRDD.Z imm8 ymm ymm k ymm -// VPSHRDD.Z imm8 m512 zmm k zmm -// VPSHRDD.Z imm8 zmm zmm k zmm -func VPSHRDD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VPSHRDQ: Concatenate Quadwords and Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDQ imm8 m128 xmm k xmm -// VPSHRDQ imm8 m128 xmm xmm -// VPSHRDQ imm8 m256 ymm k ymm -// VPSHRDQ imm8 m256 ymm ymm -// VPSHRDQ imm8 xmm xmm k xmm -// VPSHRDQ imm8 xmm xmm xmm -// VPSHRDQ imm8 ymm ymm k ymm -// VPSHRDQ imm8 ymm ymm ymm -// VPSHRDQ imm8 m512 zmm k zmm -// VPSHRDQ imm8 m512 zmm zmm -// VPSHRDQ imm8 zmm zmm k zmm -// VPSHRDQ imm8 zmm zmm zmm -func VPSHRDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDQ.Forms(), sffxs{}, ops) -} - -// VPSHRDQ_BCST: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDQ.BCST imm8 m64 xmm k xmm -// VPSHRDQ.BCST imm8 m64 xmm xmm -// VPSHRDQ.BCST imm8 m64 ymm k ymm -// VPSHRDQ.BCST imm8 m64 ymm ymm -// VPSHRDQ.BCST imm8 m64 zmm k zmm -// VPSHRDQ.BCST imm8 m64 zmm zmm -func VPSHRDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSHRDQ_BCST_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDQ.BCST.Z imm8 m64 xmm k xmm -// VPSHRDQ.BCST.Z imm8 m64 ymm k ymm -// VPSHRDQ.BCST.Z imm8 m64 zmm k zmm -func VPSHRDQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VPSHRDQ_Z: Concatenate Quadwords and Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDQ.Z imm8 m128 xmm k xmm -// VPSHRDQ.Z imm8 m256 ymm k ymm -// VPSHRDQ.Z imm8 xmm xmm k xmm -// VPSHRDQ.Z imm8 ymm ymm k ymm -// VPSHRDQ.Z imm8 m512 zmm k zmm -// VPSHRDQ.Z imm8 zmm zmm k zmm -func VPSHRDQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VPSHRDVD: Concatenate Dwords and Variable Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDVD m128 xmm k xmm -// VPSHRDVD m128 xmm xmm -// VPSHRDVD m256 ymm k ymm -// VPSHRDVD m256 ymm ymm -// VPSHRDVD xmm xmm k xmm -// VPSHRDVD xmm xmm xmm -// VPSHRDVD ymm ymm k ymm -// VPSHRDVD ymm ymm ymm -// VPSHRDVD m512 zmm k zmm -// VPSHRDVD m512 zmm zmm -// VPSHRDVD zmm zmm k zmm -// VPSHRDVD zmm zmm zmm -func VPSHRDVD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVD.Forms(), sffxs{}, ops) -} - -// VPSHRDVD_BCST: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDVD.BCST m32 xmm k xmm -// VPSHRDVD.BCST m32 xmm xmm -// VPSHRDVD.BCST m32 ymm k ymm -// VPSHRDVD.BCST m32 ymm ymm -// VPSHRDVD.BCST m32 zmm k zmm -// VPSHRDVD.BCST m32 zmm zmm -func VPSHRDVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSHRDVD_BCST_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDVD.BCST.Z m32 xmm k xmm -// VPSHRDVD.BCST.Z m32 ymm k ymm -// VPSHRDVD.BCST.Z m32 zmm k zmm -func VPSHRDVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSHRDVD_Z: Concatenate Dwords and Variable Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDVD.Z m128 xmm k xmm -// VPSHRDVD.Z m256 ymm k ymm -// VPSHRDVD.Z xmm xmm k xmm -// VPSHRDVD.Z ymm ymm k ymm -// VPSHRDVD.Z m512 zmm k zmm -// VPSHRDVD.Z zmm zmm k zmm -func VPSHRDVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSHRDVQ: Concatenate Quadwords and Variable Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDVQ m128 xmm k xmm -// VPSHRDVQ m128 xmm xmm -// VPSHRDVQ m256 ymm k ymm -// VPSHRDVQ m256 ymm ymm -// VPSHRDVQ xmm xmm k xmm -// VPSHRDVQ xmm xmm xmm -// VPSHRDVQ ymm ymm k ymm -// VPSHRDVQ ymm ymm ymm -// VPSHRDVQ m512 zmm k zmm -// VPSHRDVQ m512 zmm zmm -// VPSHRDVQ zmm zmm k zmm -// VPSHRDVQ zmm zmm zmm -func VPSHRDVQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVQ.Forms(), sffxs{}, ops) -} - -// VPSHRDVQ_BCST: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast). -// -// Forms: -// -// VPSHRDVQ.BCST m64 xmm k xmm -// VPSHRDVQ.BCST m64 xmm xmm -// VPSHRDVQ.BCST m64 ymm k ymm -// VPSHRDVQ.BCST m64 ymm ymm -// VPSHRDVQ.BCST m64 zmm k zmm -// VPSHRDVQ.BCST m64 zmm zmm -func VPSHRDVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSHRDVQ_BCST_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHRDVQ.BCST.Z m64 xmm k xmm -// VPSHRDVQ.BCST.Z m64 ymm k ymm -// VPSHRDVQ.BCST.Z m64 zmm k zmm -func VPSHRDVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSHRDVQ_Z: Concatenate Quadwords and Variable Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDVQ.Z m128 xmm k xmm -// VPSHRDVQ.Z m256 ymm k ymm -// VPSHRDVQ.Z xmm xmm k xmm -// VPSHRDVQ.Z ymm ymm k ymm -// VPSHRDVQ.Z m512 zmm k zmm -// VPSHRDVQ.Z zmm zmm k zmm -func VPSHRDVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSHRDVW: Concatenate Words and Variable Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDVW m128 xmm k xmm -// VPSHRDVW m128 xmm xmm -// VPSHRDVW m256 ymm k ymm -// VPSHRDVW m256 ymm ymm -// VPSHRDVW xmm xmm k xmm -// VPSHRDVW xmm xmm xmm -// VPSHRDVW ymm ymm k ymm -// VPSHRDVW ymm ymm ymm -// VPSHRDVW m512 zmm k zmm -// VPSHRDVW m512 zmm zmm -// VPSHRDVW zmm zmm k zmm -// VPSHRDVW zmm zmm zmm -func VPSHRDVW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVW.Forms(), sffxs{}, ops) -} - -// VPSHRDVW_Z: Concatenate Words and Variable Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDVW.Z m128 xmm k xmm -// VPSHRDVW.Z m256 ymm k ymm -// VPSHRDVW.Z xmm xmm k xmm -// VPSHRDVW.Z ymm ymm k ymm -// VPSHRDVW.Z m512 zmm k zmm -// VPSHRDVW.Z zmm zmm k zmm -func VPSHRDVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSHRDW: Concatenate Words and Shift Packed Data Right Logical. -// -// Forms: -// -// VPSHRDW imm8 m128 xmm k xmm -// VPSHRDW imm8 m128 xmm xmm -// VPSHRDW imm8 m256 ymm k ymm -// VPSHRDW imm8 m256 ymm ymm -// VPSHRDW imm8 xmm xmm k xmm -// VPSHRDW imm8 xmm xmm xmm -// VPSHRDW imm8 ymm ymm k ymm -// VPSHRDW imm8 ymm ymm ymm -// VPSHRDW imm8 m512 zmm k zmm -// VPSHRDW imm8 m512 zmm zmm -// VPSHRDW imm8 zmm zmm k zmm -// VPSHRDW imm8 zmm zmm zmm -func VPSHRDW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDW.Forms(), sffxs{}, ops) -} - -// VPSHRDW_Z: Concatenate Words and Shift Packed Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSHRDW.Z imm8 m128 xmm k xmm -// VPSHRDW.Z imm8 m256 ymm k ymm -// VPSHRDW.Z imm8 xmm xmm k xmm -// VPSHRDW.Z imm8 ymm ymm k ymm -// VPSHRDW.Z imm8 m512 zmm k zmm -// VPSHRDW.Z imm8 zmm zmm k zmm -func VPSHRDW_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHRDW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VPSHUFB: Packed Shuffle Bytes. -// -// Forms: -// -// VPSHUFB m256 ymm ymm -// VPSHUFB ymm ymm ymm -// VPSHUFB m128 xmm xmm -// VPSHUFB xmm xmm xmm -// VPSHUFB m128 xmm k xmm -// VPSHUFB m256 ymm k ymm -// VPSHUFB xmm xmm k xmm -// VPSHUFB ymm ymm k ymm -// VPSHUFB m512 zmm k zmm -// VPSHUFB m512 zmm zmm -// VPSHUFB zmm zmm k zmm -// VPSHUFB zmm zmm zmm -func VPSHUFB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFB.Forms(), sffxs{}, ops) -} - -// VPSHUFBITQMB: Shuffle Bits from Quadword Elements Using Byte Indexes into Mask. -// -// Forms: -// -// VPSHUFBITQMB m128 xmm k k -// VPSHUFBITQMB m128 xmm k -// VPSHUFBITQMB m256 ymm k k -// VPSHUFBITQMB m256 ymm k -// VPSHUFBITQMB xmm xmm k k -// VPSHUFBITQMB xmm xmm k -// VPSHUFBITQMB ymm ymm k k -// VPSHUFBITQMB ymm ymm k -// VPSHUFBITQMB zmm zmm k k -// VPSHUFBITQMB zmm zmm k -// VPSHUFBITQMB m512 zmm k k -// VPSHUFBITQMB m512 zmm k -func VPSHUFBITQMB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFBITQMB.Forms(), sffxs{}, ops) -} - -// VPSHUFB_Z: Packed Shuffle Bytes (Zeroing Masking). -// -// Forms: -// -// VPSHUFB.Z m128 xmm k xmm -// VPSHUFB.Z m256 ymm k ymm -// VPSHUFB.Z xmm xmm k xmm -// VPSHUFB.Z ymm ymm k ymm -// VPSHUFB.Z m512 zmm k zmm -// VPSHUFB.Z zmm zmm k zmm -func VPSHUFB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSHUFD: Shuffle Packed Doublewords. -// -// Forms: -// -// VPSHUFD imm8 m256 ymm -// VPSHUFD imm8 ymm ymm -// VPSHUFD imm8 m128 xmm -// VPSHUFD imm8 xmm xmm -// VPSHUFD imm8 m128 k xmm -// VPSHUFD imm8 m256 k ymm -// VPSHUFD imm8 xmm k xmm -// VPSHUFD imm8 ymm k ymm -// VPSHUFD imm8 m512 k zmm -// VPSHUFD imm8 m512 zmm -// VPSHUFD imm8 zmm k zmm -// VPSHUFD imm8 zmm zmm -func VPSHUFD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFD.Forms(), sffxs{}, ops) -} - -// VPSHUFD_BCST: Shuffle Packed Doublewords (Broadcast). -// -// Forms: -// -// VPSHUFD.BCST imm8 m32 k xmm -// VPSHUFD.BCST imm8 m32 k ymm -// VPSHUFD.BCST imm8 m32 xmm -// VPSHUFD.BCST imm8 m32 ymm -// VPSHUFD.BCST imm8 m32 k zmm -// VPSHUFD.BCST imm8 m32 zmm -func VPSHUFD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSHUFD_BCST_Z: Shuffle Packed Doublewords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSHUFD.BCST.Z imm8 m32 k xmm -// VPSHUFD.BCST.Z imm8 m32 k ymm -// VPSHUFD.BCST.Z imm8 m32 k zmm -func VPSHUFD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPSHUFD_Z: Shuffle Packed Doublewords (Zeroing Masking). -// -// Forms: -// -// VPSHUFD.Z imm8 m128 k xmm -// VPSHUFD.Z imm8 m256 k ymm -// VPSHUFD.Z imm8 xmm k xmm -// VPSHUFD.Z imm8 ymm k ymm -// VPSHUFD.Z imm8 m512 k zmm -// VPSHUFD.Z imm8 zmm k zmm -func VPSHUFD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VPSHUFHW: Shuffle Packed High Words. -// -// Forms: -// -// VPSHUFHW imm8 m256 ymm -// VPSHUFHW imm8 ymm ymm -// VPSHUFHW imm8 m128 xmm -// VPSHUFHW imm8 xmm xmm -// VPSHUFHW imm8 m128 k xmm -// VPSHUFHW imm8 m256 k ymm -// VPSHUFHW imm8 xmm k xmm -// VPSHUFHW imm8 ymm k ymm -// VPSHUFHW imm8 m512 k zmm -// VPSHUFHW imm8 m512 zmm -// VPSHUFHW imm8 zmm k zmm -// VPSHUFHW imm8 zmm zmm -func VPSHUFHW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFHW.Forms(), sffxs{}, ops) -} - -// VPSHUFHW_Z: Shuffle Packed High Words (Zeroing Masking). -// -// Forms: -// -// VPSHUFHW.Z imm8 m128 k xmm -// VPSHUFHW.Z imm8 m256 k ymm -// VPSHUFHW.Z imm8 xmm k xmm -// VPSHUFHW.Z imm8 ymm k ymm -// VPSHUFHW.Z imm8 m512 k zmm -// VPSHUFHW.Z imm8 zmm k zmm -func VPSHUFHW_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFHW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VPSHUFLW: Shuffle Packed Low Words. -// -// Forms: -// -// VPSHUFLW imm8 m256 ymm -// VPSHUFLW imm8 ymm ymm -// VPSHUFLW imm8 m128 xmm -// VPSHUFLW imm8 xmm xmm -// VPSHUFLW imm8 m128 k xmm -// VPSHUFLW imm8 m256 k ymm -// VPSHUFLW imm8 xmm k xmm -// VPSHUFLW imm8 ymm k ymm -// VPSHUFLW imm8 m512 k zmm -// VPSHUFLW imm8 m512 zmm -// VPSHUFLW imm8 zmm k zmm -// VPSHUFLW imm8 zmm zmm -func VPSHUFLW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFLW.Forms(), sffxs{}, ops) -} - -// VPSHUFLW_Z: Shuffle Packed Low Words (Zeroing Masking). -// -// Forms: -// -// VPSHUFLW.Z imm8 m128 k xmm -// VPSHUFLW.Z imm8 m256 k ymm -// VPSHUFLW.Z imm8 xmm k xmm -// VPSHUFLW.Z imm8 ymm k ymm -// VPSHUFLW.Z imm8 m512 k zmm -// VPSHUFLW.Z imm8 zmm k zmm -func VPSHUFLW_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSHUFLW.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VPSIGNB: Packed Sign of Byte Integers. -// -// Forms: -// -// VPSIGNB m256 ymm ymm -// VPSIGNB ymm ymm ymm -// VPSIGNB m128 xmm xmm -// VPSIGNB xmm xmm xmm -func VPSIGNB(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSIGNB.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPSIGND: Packed Sign of Doubleword Integers. -// -// Forms: -// -// VPSIGND m256 ymm ymm -// VPSIGND ymm ymm ymm -// VPSIGND m128 xmm xmm -// VPSIGND xmm xmm xmm -func VPSIGND(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSIGND.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPSIGNW: Packed Sign of Word Integers. -// -// Forms: -// -// VPSIGNW m256 ymm ymm -// VPSIGNW ymm ymm ymm -// VPSIGNW m128 xmm xmm -// VPSIGNW xmm xmm xmm -func VPSIGNW(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSIGNW.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPSLLD: Shift Packed Doubleword Data Left Logical. -// -// Forms: -// -// VPSLLD imm8 ymm ymm -// VPSLLD m128 ymm ymm -// VPSLLD xmm ymm ymm -// VPSLLD imm8 xmm xmm -// VPSLLD m128 xmm xmm -// VPSLLD xmm xmm xmm -// VPSLLD imm8 m128 k xmm -// VPSLLD imm8 m128 xmm -// VPSLLD imm8 m256 k ymm -// VPSLLD imm8 m256 ymm -// VPSLLD imm8 xmm k xmm -// VPSLLD imm8 ymm k ymm -// VPSLLD m128 xmm k xmm -// VPSLLD m128 ymm k ymm -// VPSLLD xmm xmm k xmm -// VPSLLD xmm ymm k ymm -// VPSLLD imm8 m512 k zmm -// VPSLLD imm8 m512 zmm -// VPSLLD imm8 zmm k zmm -// VPSLLD imm8 zmm zmm -// VPSLLD m128 zmm k zmm -// VPSLLD m128 zmm zmm -// VPSLLD xmm zmm k zmm -// VPSLLD xmm zmm zmm -func VPSLLD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLD.Forms(), sffxs{}, ops) -} - -// VPSLLDQ: Shift Packed Double Quadword Left Logical. -// -// Forms: -// -// VPSLLDQ imm8 ymm ymm -// VPSLLDQ imm8 xmm xmm -// VPSLLDQ imm8 m128 xmm -// VPSLLDQ imm8 m256 ymm -// VPSLLDQ imm8 m512 zmm -// VPSLLDQ imm8 zmm zmm -func VPSLLDQ(i, mxyz, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLDQ.Forms(), sffxs{}, []operand.Op{i, mxyz, xyz}) -} - -// VPSLLD_BCST: Shift Packed Doubleword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLD.BCST imm8 m32 k xmm -// VPSLLD.BCST imm8 m32 k ymm -// VPSLLD.BCST imm8 m32 xmm -// VPSLLD.BCST imm8 m32 ymm -// VPSLLD.BCST imm8 m32 k zmm -// VPSLLD.BCST imm8 m32 zmm -func VPSLLD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSLLD_BCST_Z: Shift Packed Doubleword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLD.BCST.Z imm8 m32 k xmm -// VPSLLD.BCST.Z imm8 m32 k ymm -// VPSLLD.BCST.Z imm8 m32 k zmm -func VPSLLD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPSLLD_Z: Shift Packed Doubleword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLD.Z imm8 m128 k xmm -// VPSLLD.Z imm8 m256 k ymm -// VPSLLD.Z imm8 xmm k xmm -// VPSLLD.Z imm8 ymm k ymm -// VPSLLD.Z m128 xmm k xmm -// VPSLLD.Z m128 ymm k ymm -// VPSLLD.Z xmm xmm k xmm -// VPSLLD.Z xmm ymm k ymm -// VPSLLD.Z imm8 m512 k zmm -// VPSLLD.Z imm8 zmm k zmm -// VPSLLD.Z m128 zmm k zmm -// VPSLLD.Z xmm zmm k zmm -func VPSLLD_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLD.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz}) -} - -// VPSLLQ: Shift Packed Quadword Data Left Logical. -// -// Forms: -// -// VPSLLQ imm8 ymm ymm -// VPSLLQ m128 ymm ymm -// VPSLLQ xmm ymm ymm -// VPSLLQ imm8 xmm xmm -// VPSLLQ m128 xmm xmm -// VPSLLQ xmm xmm xmm -// VPSLLQ imm8 m128 k xmm -// VPSLLQ imm8 m128 xmm -// VPSLLQ imm8 m256 k ymm -// VPSLLQ imm8 m256 ymm -// VPSLLQ imm8 xmm k xmm -// VPSLLQ imm8 ymm k ymm -// VPSLLQ m128 xmm k xmm -// VPSLLQ m128 ymm k ymm -// VPSLLQ xmm xmm k xmm -// VPSLLQ xmm ymm k ymm -// VPSLLQ imm8 m512 k zmm -// VPSLLQ imm8 m512 zmm -// VPSLLQ imm8 zmm k zmm -// VPSLLQ imm8 zmm zmm -// VPSLLQ m128 zmm k zmm -// VPSLLQ m128 zmm zmm -// VPSLLQ xmm zmm k zmm -// VPSLLQ xmm zmm zmm -func VPSLLQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLQ.Forms(), sffxs{}, ops) -} - -// VPSLLQ_BCST: Shift Packed Quadword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLQ.BCST imm8 m64 k xmm -// VPSLLQ.BCST imm8 m64 k ymm -// VPSLLQ.BCST imm8 m64 xmm -// VPSLLQ.BCST imm8 m64 ymm -// VPSLLQ.BCST imm8 m64 k zmm -// VPSLLQ.BCST imm8 m64 zmm -func VPSLLQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSLLQ_BCST_Z: Shift Packed Quadword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLQ.BCST.Z imm8 m64 k xmm -// VPSLLQ.BCST.Z imm8 m64 k ymm -// VPSLLQ.BCST.Z imm8 m64 k zmm -func VPSLLQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPSLLQ_Z: Shift Packed Quadword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLQ.Z imm8 m128 k xmm -// VPSLLQ.Z imm8 m256 k ymm -// VPSLLQ.Z imm8 xmm k xmm -// VPSLLQ.Z imm8 ymm k ymm -// VPSLLQ.Z m128 xmm k xmm -// VPSLLQ.Z m128 ymm k ymm -// VPSLLQ.Z xmm xmm k xmm -// VPSLLQ.Z xmm ymm k ymm -// VPSLLQ.Z imm8 m512 k zmm -// VPSLLQ.Z imm8 zmm k zmm -// VPSLLQ.Z m128 zmm k zmm -// VPSLLQ.Z xmm zmm k zmm -func VPSLLQ_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLQ.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz}) -} - -// VPSLLVD: Variable Shift Packed Doubleword Data Left Logical. -// -// Forms: -// -// VPSLLVD m128 xmm xmm -// VPSLLVD m256 ymm ymm -// VPSLLVD xmm xmm xmm -// VPSLLVD ymm ymm ymm -// VPSLLVD m128 xmm k xmm -// VPSLLVD m256 ymm k ymm -// VPSLLVD xmm xmm k xmm -// VPSLLVD ymm ymm k ymm -// VPSLLVD m512 zmm k zmm -// VPSLLVD m512 zmm zmm -// VPSLLVD zmm zmm k zmm -// VPSLLVD zmm zmm zmm -func VPSLLVD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVD.Forms(), sffxs{}, ops) -} - -// VPSLLVD_BCST: Variable Shift Packed Doubleword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLVD.BCST m32 xmm k xmm -// VPSLLVD.BCST m32 xmm xmm -// VPSLLVD.BCST m32 ymm k ymm -// VPSLLVD.BCST m32 ymm ymm -// VPSLLVD.BCST m32 zmm k zmm -// VPSLLVD.BCST m32 zmm zmm -func VPSLLVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSLLVD_BCST_Z: Variable Shift Packed Doubleword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLVD.BCST.Z m32 xmm k xmm -// VPSLLVD.BCST.Z m32 ymm k ymm -// VPSLLVD.BCST.Z m32 zmm k zmm -func VPSLLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSLLVD_Z: Variable Shift Packed Doubleword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLVD.Z m128 xmm k xmm -// VPSLLVD.Z m256 ymm k ymm -// VPSLLVD.Z xmm xmm k xmm -// VPSLLVD.Z ymm ymm k ymm -// VPSLLVD.Z m512 zmm k zmm -// VPSLLVD.Z zmm zmm k zmm -func VPSLLVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSLLVQ: Variable Shift Packed Quadword Data Left Logical. -// -// Forms: -// -// VPSLLVQ m128 xmm xmm -// VPSLLVQ m256 ymm ymm -// VPSLLVQ xmm xmm xmm -// VPSLLVQ ymm ymm ymm -// VPSLLVQ m128 xmm k xmm -// VPSLLVQ m256 ymm k ymm -// VPSLLVQ xmm xmm k xmm -// VPSLLVQ ymm ymm k ymm -// VPSLLVQ m512 zmm k zmm -// VPSLLVQ m512 zmm zmm -// VPSLLVQ zmm zmm k zmm -// VPSLLVQ zmm zmm zmm -func VPSLLVQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVQ.Forms(), sffxs{}, ops) -} - -// VPSLLVQ_BCST: Variable Shift Packed Quadword Data Left Logical (Broadcast). -// -// Forms: -// -// VPSLLVQ.BCST m64 xmm k xmm -// VPSLLVQ.BCST m64 xmm xmm -// VPSLLVQ.BCST m64 ymm k ymm -// VPSLLVQ.BCST m64 ymm ymm -// VPSLLVQ.BCST m64 zmm k zmm -// VPSLLVQ.BCST m64 zmm zmm -func VPSLLVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSLLVQ_BCST_Z: Variable Shift Packed Quadword Data Left Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSLLVQ.BCST.Z m64 xmm k xmm -// VPSLLVQ.BCST.Z m64 ymm k ymm -// VPSLLVQ.BCST.Z m64 zmm k zmm -func VPSLLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSLLVQ_Z: Variable Shift Packed Quadword Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLVQ.Z m128 xmm k xmm -// VPSLLVQ.Z m256 ymm k ymm -// VPSLLVQ.Z xmm xmm k xmm -// VPSLLVQ.Z ymm ymm k ymm -// VPSLLVQ.Z m512 zmm k zmm -// VPSLLVQ.Z zmm zmm k zmm -func VPSLLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSLLVW: Variable Shift Packed Word Data Left Logical. -// -// Forms: -// -// VPSLLVW m128 xmm k xmm -// VPSLLVW m128 xmm xmm -// VPSLLVW m256 ymm k ymm -// VPSLLVW m256 ymm ymm -// VPSLLVW xmm xmm k xmm -// VPSLLVW xmm xmm xmm -// VPSLLVW ymm ymm k ymm -// VPSLLVW ymm ymm ymm -// VPSLLVW m512 zmm k zmm -// VPSLLVW m512 zmm zmm -// VPSLLVW zmm zmm k zmm -// VPSLLVW zmm zmm zmm -func VPSLLVW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVW.Forms(), sffxs{}, ops) -} - -// VPSLLVW_Z: Variable Shift Packed Word Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLVW.Z m128 xmm k xmm -// VPSLLVW.Z m256 ymm k ymm -// VPSLLVW.Z xmm xmm k xmm -// VPSLLVW.Z ymm ymm k ymm -// VPSLLVW.Z m512 zmm k zmm -// VPSLLVW.Z zmm zmm k zmm -func VPSLLVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSLLW: Shift Packed Word Data Left Logical. -// -// Forms: -// -// VPSLLW imm8 ymm ymm -// VPSLLW m128 ymm ymm -// VPSLLW xmm ymm ymm -// VPSLLW imm8 xmm xmm -// VPSLLW m128 xmm xmm -// VPSLLW xmm xmm xmm -// VPSLLW imm8 m128 k xmm -// VPSLLW imm8 m128 xmm -// VPSLLW imm8 m256 k ymm -// VPSLLW imm8 m256 ymm -// VPSLLW imm8 xmm k xmm -// VPSLLW imm8 ymm k ymm -// VPSLLW m128 xmm k xmm -// VPSLLW m128 ymm k ymm -// VPSLLW xmm xmm k xmm -// VPSLLW xmm ymm k ymm -// VPSLLW imm8 m512 k zmm -// VPSLLW imm8 m512 zmm -// VPSLLW imm8 zmm k zmm -// VPSLLW imm8 zmm zmm -// VPSLLW m128 zmm k zmm -// VPSLLW m128 zmm zmm -// VPSLLW xmm zmm k zmm -// VPSLLW xmm zmm zmm -func VPSLLW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLW.Forms(), sffxs{}, ops) -} - -// VPSLLW_Z: Shift Packed Word Data Left Logical (Zeroing Masking). -// -// Forms: -// -// VPSLLW.Z imm8 m128 k xmm -// VPSLLW.Z imm8 m256 k ymm -// VPSLLW.Z imm8 xmm k xmm -// VPSLLW.Z imm8 ymm k ymm -// VPSLLW.Z m128 xmm k xmm -// VPSLLW.Z m128 ymm k ymm -// VPSLLW.Z xmm xmm k xmm -// VPSLLW.Z xmm ymm k ymm -// VPSLLW.Z imm8 m512 k zmm -// VPSLLW.Z imm8 zmm k zmm -// VPSLLW.Z m128 zmm k zmm -// VPSLLW.Z xmm zmm k zmm -func VPSLLW_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSLLW.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz}) -} - -// VPSRAD: Shift Packed Doubleword Data Right Arithmetic. -// -// Forms: -// -// VPSRAD imm8 ymm ymm -// VPSRAD m128 ymm ymm -// VPSRAD xmm ymm ymm -// VPSRAD imm8 xmm xmm -// VPSRAD m128 xmm xmm -// VPSRAD xmm xmm xmm -// VPSRAD imm8 m128 k xmm -// VPSRAD imm8 m128 xmm -// VPSRAD imm8 m256 k ymm -// VPSRAD imm8 m256 ymm -// VPSRAD imm8 xmm k xmm -// VPSRAD imm8 ymm k ymm -// VPSRAD m128 xmm k xmm -// VPSRAD m128 ymm k ymm -// VPSRAD xmm xmm k xmm -// VPSRAD xmm ymm k ymm -// VPSRAD imm8 m512 k zmm -// VPSRAD imm8 m512 zmm -// VPSRAD imm8 zmm k zmm -// VPSRAD imm8 zmm zmm -// VPSRAD m128 zmm k zmm -// VPSRAD m128 zmm zmm -// VPSRAD xmm zmm k zmm -// VPSRAD xmm zmm zmm -func VPSRAD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAD.Forms(), sffxs{}, ops) -} - -// VPSRAD_BCST: Shift Packed Doubleword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAD.BCST imm8 m32 k xmm -// VPSRAD.BCST imm8 m32 k ymm -// VPSRAD.BCST imm8 m32 xmm -// VPSRAD.BCST imm8 m32 ymm -// VPSRAD.BCST imm8 m32 k zmm -// VPSRAD.BCST imm8 m32 zmm -func VPSRAD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSRAD_BCST_Z: Shift Packed Doubleword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAD.BCST.Z imm8 m32 k xmm -// VPSRAD.BCST.Z imm8 m32 k ymm -// VPSRAD.BCST.Z imm8 m32 k zmm -func VPSRAD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPSRAD_Z: Shift Packed Doubleword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAD.Z imm8 m128 k xmm -// VPSRAD.Z imm8 m256 k ymm -// VPSRAD.Z imm8 xmm k xmm -// VPSRAD.Z imm8 ymm k ymm -// VPSRAD.Z m128 xmm k xmm -// VPSRAD.Z m128 ymm k ymm -// VPSRAD.Z xmm xmm k xmm -// VPSRAD.Z xmm ymm k ymm -// VPSRAD.Z imm8 m512 k zmm -// VPSRAD.Z imm8 zmm k zmm -// VPSRAD.Z m128 zmm k zmm -// VPSRAD.Z xmm zmm k zmm -func VPSRAD_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAD.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz}) -} - -// VPSRAQ: Shift Packed Quadword Data Right Arithmetic. -// -// Forms: -// -// VPSRAQ imm8 m128 k xmm -// VPSRAQ imm8 m128 xmm -// VPSRAQ imm8 m256 k ymm -// VPSRAQ imm8 m256 ymm -// VPSRAQ imm8 xmm k xmm -// VPSRAQ imm8 xmm xmm -// VPSRAQ imm8 ymm k ymm -// VPSRAQ imm8 ymm ymm -// VPSRAQ m128 xmm k xmm -// VPSRAQ m128 xmm xmm -// VPSRAQ m128 ymm k ymm -// VPSRAQ m128 ymm ymm -// VPSRAQ xmm xmm k xmm -// VPSRAQ xmm xmm xmm -// VPSRAQ xmm ymm k ymm -// VPSRAQ xmm ymm ymm -// VPSRAQ imm8 m512 k zmm -// VPSRAQ imm8 m512 zmm -// VPSRAQ imm8 zmm k zmm -// VPSRAQ imm8 zmm zmm -// VPSRAQ m128 zmm k zmm -// VPSRAQ m128 zmm zmm -// VPSRAQ xmm zmm k zmm -// VPSRAQ xmm zmm zmm -func VPSRAQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAQ.Forms(), sffxs{}, ops) -} - -// VPSRAQ_BCST: Shift Packed Quadword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAQ.BCST imm8 m64 k xmm -// VPSRAQ.BCST imm8 m64 k ymm -// VPSRAQ.BCST imm8 m64 xmm -// VPSRAQ.BCST imm8 m64 ymm -// VPSRAQ.BCST imm8 m64 k zmm -// VPSRAQ.BCST imm8 m64 zmm -func VPSRAQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSRAQ_BCST_Z: Shift Packed Quadword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAQ.BCST.Z imm8 m64 k xmm -// VPSRAQ.BCST.Z imm8 m64 k ymm -// VPSRAQ.BCST.Z imm8 m64 k zmm -func VPSRAQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPSRAQ_Z: Shift Packed Quadword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAQ.Z imm8 m128 k xmm -// VPSRAQ.Z imm8 m256 k ymm -// VPSRAQ.Z imm8 xmm k xmm -// VPSRAQ.Z imm8 ymm k ymm -// VPSRAQ.Z m128 xmm k xmm -// VPSRAQ.Z m128 ymm k ymm -// VPSRAQ.Z xmm xmm k xmm -// VPSRAQ.Z xmm ymm k ymm -// VPSRAQ.Z imm8 m512 k zmm -// VPSRAQ.Z imm8 zmm k zmm -// VPSRAQ.Z m128 zmm k zmm -// VPSRAQ.Z xmm zmm k zmm -func VPSRAQ_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAQ.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz}) -} - -// VPSRAVD: Variable Shift Packed Doubleword Data Right Arithmetic. -// -// Forms: -// -// VPSRAVD m128 xmm xmm -// VPSRAVD m256 ymm ymm -// VPSRAVD xmm xmm xmm -// VPSRAVD ymm ymm ymm -// VPSRAVD m128 xmm k xmm -// VPSRAVD m256 ymm k ymm -// VPSRAVD xmm xmm k xmm -// VPSRAVD ymm ymm k ymm -// VPSRAVD m512 zmm k zmm -// VPSRAVD m512 zmm zmm -// VPSRAVD zmm zmm k zmm -// VPSRAVD zmm zmm zmm -func VPSRAVD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVD.Forms(), sffxs{}, ops) -} - -// VPSRAVD_BCST: Variable Shift Packed Doubleword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAVD.BCST m32 xmm k xmm -// VPSRAVD.BCST m32 xmm xmm -// VPSRAVD.BCST m32 ymm k ymm -// VPSRAVD.BCST m32 ymm ymm -// VPSRAVD.BCST m32 zmm k zmm -// VPSRAVD.BCST m32 zmm zmm -func VPSRAVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSRAVD_BCST_Z: Variable Shift Packed Doubleword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAVD.BCST.Z m32 xmm k xmm -// VPSRAVD.BCST.Z m32 ymm k ymm -// VPSRAVD.BCST.Z m32 zmm k zmm -func VPSRAVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSRAVD_Z: Variable Shift Packed Doubleword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAVD.Z m128 xmm k xmm -// VPSRAVD.Z m256 ymm k ymm -// VPSRAVD.Z xmm xmm k xmm -// VPSRAVD.Z ymm ymm k ymm -// VPSRAVD.Z m512 zmm k zmm -// VPSRAVD.Z zmm zmm k zmm -func VPSRAVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSRAVQ: Variable Shift Packed Quadword Data Right Arithmetic. -// -// Forms: -// -// VPSRAVQ m128 xmm k xmm -// VPSRAVQ m128 xmm xmm -// VPSRAVQ m256 ymm k ymm -// VPSRAVQ m256 ymm ymm -// VPSRAVQ xmm xmm k xmm -// VPSRAVQ xmm xmm xmm -// VPSRAVQ ymm ymm k ymm -// VPSRAVQ ymm ymm ymm -// VPSRAVQ m512 zmm k zmm -// VPSRAVQ m512 zmm zmm -// VPSRAVQ zmm zmm k zmm -// VPSRAVQ zmm zmm zmm -func VPSRAVQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVQ.Forms(), sffxs{}, ops) -} - -// VPSRAVQ_BCST: Variable Shift Packed Quadword Data Right Arithmetic (Broadcast). -// -// Forms: -// -// VPSRAVQ.BCST m64 xmm k xmm -// VPSRAVQ.BCST m64 xmm xmm -// VPSRAVQ.BCST m64 ymm k ymm -// VPSRAVQ.BCST m64 ymm ymm -// VPSRAVQ.BCST m64 zmm k zmm -// VPSRAVQ.BCST m64 zmm zmm -func VPSRAVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSRAVQ_BCST_Z: Variable Shift Packed Quadword Data Right Arithmetic (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRAVQ.BCST.Z m64 xmm k xmm -// VPSRAVQ.BCST.Z m64 ymm k ymm -// VPSRAVQ.BCST.Z m64 zmm k zmm -func VPSRAVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSRAVQ_Z: Variable Shift Packed Quadword Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAVQ.Z m128 xmm k xmm -// VPSRAVQ.Z m256 ymm k ymm -// VPSRAVQ.Z xmm xmm k xmm -// VPSRAVQ.Z ymm ymm k ymm -// VPSRAVQ.Z m512 zmm k zmm -// VPSRAVQ.Z zmm zmm k zmm -func VPSRAVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSRAVW: Variable Shift Packed Word Data Right Arithmetic. -// -// Forms: -// -// VPSRAVW m128 xmm k xmm -// VPSRAVW m128 xmm xmm -// VPSRAVW m256 ymm k ymm -// VPSRAVW m256 ymm ymm -// VPSRAVW xmm xmm k xmm -// VPSRAVW xmm xmm xmm -// VPSRAVW ymm ymm k ymm -// VPSRAVW ymm ymm ymm -// VPSRAVW m512 zmm k zmm -// VPSRAVW m512 zmm zmm -// VPSRAVW zmm zmm k zmm -// VPSRAVW zmm zmm zmm -func VPSRAVW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVW.Forms(), sffxs{}, ops) -} - -// VPSRAVW_Z: Variable Shift Packed Word Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAVW.Z m128 xmm k xmm -// VPSRAVW.Z m256 ymm k ymm -// VPSRAVW.Z xmm xmm k xmm -// VPSRAVW.Z ymm ymm k ymm -// VPSRAVW.Z m512 zmm k zmm -// VPSRAVW.Z zmm zmm k zmm -func VPSRAVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSRAW: Shift Packed Word Data Right Arithmetic. -// -// Forms: -// -// VPSRAW imm8 ymm ymm -// VPSRAW m128 ymm ymm -// VPSRAW xmm ymm ymm -// VPSRAW imm8 xmm xmm -// VPSRAW m128 xmm xmm -// VPSRAW xmm xmm xmm -// VPSRAW imm8 m128 k xmm -// VPSRAW imm8 m128 xmm -// VPSRAW imm8 m256 k ymm -// VPSRAW imm8 m256 ymm -// VPSRAW imm8 xmm k xmm -// VPSRAW imm8 ymm k ymm -// VPSRAW m128 xmm k xmm -// VPSRAW m128 ymm k ymm -// VPSRAW xmm xmm k xmm -// VPSRAW xmm ymm k ymm -// VPSRAW imm8 m512 k zmm -// VPSRAW imm8 m512 zmm -// VPSRAW imm8 zmm k zmm -// VPSRAW imm8 zmm zmm -// VPSRAW m128 zmm k zmm -// VPSRAW m128 zmm zmm -// VPSRAW xmm zmm k zmm -// VPSRAW xmm zmm zmm -func VPSRAW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAW.Forms(), sffxs{}, ops) -} - -// VPSRAW_Z: Shift Packed Word Data Right Arithmetic (Zeroing Masking). -// -// Forms: -// -// VPSRAW.Z imm8 m128 k xmm -// VPSRAW.Z imm8 m256 k ymm -// VPSRAW.Z imm8 xmm k xmm -// VPSRAW.Z imm8 ymm k ymm -// VPSRAW.Z m128 xmm k xmm -// VPSRAW.Z m128 ymm k ymm -// VPSRAW.Z xmm xmm k xmm -// VPSRAW.Z xmm ymm k ymm -// VPSRAW.Z imm8 m512 k zmm -// VPSRAW.Z imm8 zmm k zmm -// VPSRAW.Z m128 zmm k zmm -// VPSRAW.Z xmm zmm k zmm -func VPSRAW_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRAW.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz}) -} - -// VPSRLD: Shift Packed Doubleword Data Right Logical. -// -// Forms: -// -// VPSRLD imm8 ymm ymm -// VPSRLD m128 ymm ymm -// VPSRLD xmm ymm ymm -// VPSRLD imm8 xmm xmm -// VPSRLD m128 xmm xmm -// VPSRLD xmm xmm xmm -// VPSRLD imm8 m128 k xmm -// VPSRLD imm8 m128 xmm -// VPSRLD imm8 m256 k ymm -// VPSRLD imm8 m256 ymm -// VPSRLD imm8 xmm k xmm -// VPSRLD imm8 ymm k ymm -// VPSRLD m128 xmm k xmm -// VPSRLD m128 ymm k ymm -// VPSRLD xmm xmm k xmm -// VPSRLD xmm ymm k ymm -// VPSRLD imm8 m512 k zmm -// VPSRLD imm8 m512 zmm -// VPSRLD imm8 zmm k zmm -// VPSRLD imm8 zmm zmm -// VPSRLD m128 zmm k zmm -// VPSRLD m128 zmm zmm -// VPSRLD xmm zmm k zmm -// VPSRLD xmm zmm zmm -func VPSRLD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLD.Forms(), sffxs{}, ops) -} - -// VPSRLDQ: Shift Packed Double Quadword Right Logical. -// -// Forms: -// -// VPSRLDQ imm8 ymm ymm -// VPSRLDQ imm8 xmm xmm -// VPSRLDQ imm8 m128 xmm -// VPSRLDQ imm8 m256 ymm -// VPSRLDQ imm8 m512 zmm -// VPSRLDQ imm8 zmm zmm -func VPSRLDQ(i, mxyz, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLDQ.Forms(), sffxs{}, []operand.Op{i, mxyz, xyz}) -} - -// VPSRLD_BCST: Shift Packed Doubleword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLD.BCST imm8 m32 k xmm -// VPSRLD.BCST imm8 m32 k ymm -// VPSRLD.BCST imm8 m32 xmm -// VPSRLD.BCST imm8 m32 ymm -// VPSRLD.BCST imm8 m32 k zmm -// VPSRLD.BCST imm8 m32 zmm -func VPSRLD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSRLD_BCST_Z: Shift Packed Doubleword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLD.BCST.Z imm8 m32 k xmm -// VPSRLD.BCST.Z imm8 m32 k ymm -// VPSRLD.BCST.Z imm8 m32 k zmm -func VPSRLD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPSRLD_Z: Shift Packed Doubleword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLD.Z imm8 m128 k xmm -// VPSRLD.Z imm8 m256 k ymm -// VPSRLD.Z imm8 xmm k xmm -// VPSRLD.Z imm8 ymm k ymm -// VPSRLD.Z m128 xmm k xmm -// VPSRLD.Z m128 ymm k ymm -// VPSRLD.Z xmm xmm k xmm -// VPSRLD.Z xmm ymm k ymm -// VPSRLD.Z imm8 m512 k zmm -// VPSRLD.Z imm8 zmm k zmm -// VPSRLD.Z m128 zmm k zmm -// VPSRLD.Z xmm zmm k zmm -func VPSRLD_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLD.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz}) -} - -// VPSRLQ: Shift Packed Quadword Data Right Logical. -// -// Forms: -// -// VPSRLQ imm8 ymm ymm -// VPSRLQ m128 ymm ymm -// VPSRLQ xmm ymm ymm -// VPSRLQ imm8 xmm xmm -// VPSRLQ m128 xmm xmm -// VPSRLQ xmm xmm xmm -// VPSRLQ imm8 m128 k xmm -// VPSRLQ imm8 m128 xmm -// VPSRLQ imm8 m256 k ymm -// VPSRLQ imm8 m256 ymm -// VPSRLQ imm8 xmm k xmm -// VPSRLQ imm8 ymm k ymm -// VPSRLQ m128 xmm k xmm -// VPSRLQ m128 ymm k ymm -// VPSRLQ xmm xmm k xmm -// VPSRLQ xmm ymm k ymm -// VPSRLQ imm8 m512 k zmm -// VPSRLQ imm8 m512 zmm -// VPSRLQ imm8 zmm k zmm -// VPSRLQ imm8 zmm zmm -// VPSRLQ m128 zmm k zmm -// VPSRLQ m128 zmm zmm -// VPSRLQ xmm zmm k zmm -// VPSRLQ xmm zmm zmm -func VPSRLQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLQ.Forms(), sffxs{}, ops) -} - -// VPSRLQ_BCST: Shift Packed Quadword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLQ.BCST imm8 m64 k xmm -// VPSRLQ.BCST imm8 m64 k ymm -// VPSRLQ.BCST imm8 m64 xmm -// VPSRLQ.BCST imm8 m64 ymm -// VPSRLQ.BCST imm8 m64 k zmm -// VPSRLQ.BCST imm8 m64 zmm -func VPSRLQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSRLQ_BCST_Z: Shift Packed Quadword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLQ.BCST.Z imm8 m64 k xmm -// VPSRLQ.BCST.Z imm8 m64 k ymm -// VPSRLQ.BCST.Z imm8 m64 k zmm -func VPSRLQ_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VPSRLQ_Z: Shift Packed Quadword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLQ.Z imm8 m128 k xmm -// VPSRLQ.Z imm8 m256 k ymm -// VPSRLQ.Z imm8 xmm k xmm -// VPSRLQ.Z imm8 ymm k ymm -// VPSRLQ.Z m128 xmm k xmm -// VPSRLQ.Z m128 ymm k ymm -// VPSRLQ.Z xmm xmm k xmm -// VPSRLQ.Z xmm ymm k ymm -// VPSRLQ.Z imm8 m512 k zmm -// VPSRLQ.Z imm8 zmm k zmm -// VPSRLQ.Z m128 zmm k zmm -// VPSRLQ.Z xmm zmm k zmm -func VPSRLQ_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLQ.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz}) -} - -// VPSRLVD: Variable Shift Packed Doubleword Data Right Logical. -// -// Forms: -// -// VPSRLVD m128 xmm xmm -// VPSRLVD m256 ymm ymm -// VPSRLVD xmm xmm xmm -// VPSRLVD ymm ymm ymm -// VPSRLVD m128 xmm k xmm -// VPSRLVD m256 ymm k ymm -// VPSRLVD xmm xmm k xmm -// VPSRLVD ymm ymm k ymm -// VPSRLVD m512 zmm k zmm -// VPSRLVD m512 zmm zmm -// VPSRLVD zmm zmm k zmm -// VPSRLVD zmm zmm zmm -func VPSRLVD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVD.Forms(), sffxs{}, ops) -} - -// VPSRLVD_BCST: Variable Shift Packed Doubleword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLVD.BCST m32 xmm k xmm -// VPSRLVD.BCST m32 xmm xmm -// VPSRLVD.BCST m32 ymm k ymm -// VPSRLVD.BCST m32 ymm ymm -// VPSRLVD.BCST m32 zmm k zmm -// VPSRLVD.BCST m32 zmm zmm -func VPSRLVD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSRLVD_BCST_Z: Variable Shift Packed Doubleword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLVD.BCST.Z m32 xmm k xmm -// VPSRLVD.BCST.Z m32 ymm k ymm -// VPSRLVD.BCST.Z m32 zmm k zmm -func VPSRLVD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSRLVD_Z: Variable Shift Packed Doubleword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLVD.Z m128 xmm k xmm -// VPSRLVD.Z m256 ymm k ymm -// VPSRLVD.Z xmm xmm k xmm -// VPSRLVD.Z ymm ymm k ymm -// VPSRLVD.Z m512 zmm k zmm -// VPSRLVD.Z zmm zmm k zmm -func VPSRLVD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSRLVQ: Variable Shift Packed Quadword Data Right Logical. -// -// Forms: -// -// VPSRLVQ m128 xmm xmm -// VPSRLVQ m256 ymm ymm -// VPSRLVQ xmm xmm xmm -// VPSRLVQ ymm ymm ymm -// VPSRLVQ m128 xmm k xmm -// VPSRLVQ m256 ymm k ymm -// VPSRLVQ xmm xmm k xmm -// VPSRLVQ ymm ymm k ymm -// VPSRLVQ m512 zmm k zmm -// VPSRLVQ m512 zmm zmm -// VPSRLVQ zmm zmm k zmm -// VPSRLVQ zmm zmm zmm -func VPSRLVQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVQ.Forms(), sffxs{}, ops) -} - -// VPSRLVQ_BCST: Variable Shift Packed Quadword Data Right Logical (Broadcast). -// -// Forms: -// -// VPSRLVQ.BCST m64 xmm k xmm -// VPSRLVQ.BCST m64 xmm xmm -// VPSRLVQ.BCST m64 ymm k ymm -// VPSRLVQ.BCST m64 ymm ymm -// VPSRLVQ.BCST m64 zmm k zmm -// VPSRLVQ.BCST m64 zmm zmm -func VPSRLVQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSRLVQ_BCST_Z: Variable Shift Packed Quadword Data Right Logical (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSRLVQ.BCST.Z m64 xmm k xmm -// VPSRLVQ.BCST.Z m64 ymm k ymm -// VPSRLVQ.BCST.Z m64 zmm k zmm -func VPSRLVQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSRLVQ_Z: Variable Shift Packed Quadword Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLVQ.Z m128 xmm k xmm -// VPSRLVQ.Z m256 ymm k ymm -// VPSRLVQ.Z xmm xmm k xmm -// VPSRLVQ.Z ymm ymm k ymm -// VPSRLVQ.Z m512 zmm k zmm -// VPSRLVQ.Z zmm zmm k zmm -func VPSRLVQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSRLVW: Variable Shift Packed Word Data Right Logical. -// -// Forms: -// -// VPSRLVW m128 xmm k xmm -// VPSRLVW m128 xmm xmm -// VPSRLVW m256 ymm k ymm -// VPSRLVW m256 ymm ymm -// VPSRLVW xmm xmm k xmm -// VPSRLVW xmm xmm xmm -// VPSRLVW ymm ymm k ymm -// VPSRLVW ymm ymm ymm -// VPSRLVW m512 zmm k zmm -// VPSRLVW m512 zmm zmm -// VPSRLVW zmm zmm k zmm -// VPSRLVW zmm zmm zmm -func VPSRLVW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVW.Forms(), sffxs{}, ops) -} - -// VPSRLVW_Z: Variable Shift Packed Word Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLVW.Z m128 xmm k xmm -// VPSRLVW.Z m256 ymm k ymm -// VPSRLVW.Z xmm xmm k xmm -// VPSRLVW.Z ymm ymm k ymm -// VPSRLVW.Z m512 zmm k zmm -// VPSRLVW.Z zmm zmm k zmm -func VPSRLVW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLVW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSRLW: Shift Packed Word Data Right Logical. -// -// Forms: -// -// VPSRLW imm8 ymm ymm -// VPSRLW m128 ymm ymm -// VPSRLW xmm ymm ymm -// VPSRLW imm8 xmm xmm -// VPSRLW m128 xmm xmm -// VPSRLW xmm xmm xmm -// VPSRLW imm8 m128 k xmm -// VPSRLW imm8 m128 xmm -// VPSRLW imm8 m256 k ymm -// VPSRLW imm8 m256 ymm -// VPSRLW imm8 xmm k xmm -// VPSRLW imm8 ymm k ymm -// VPSRLW m128 xmm k xmm -// VPSRLW m128 ymm k ymm -// VPSRLW xmm xmm k xmm -// VPSRLW xmm ymm k ymm -// VPSRLW imm8 m512 k zmm -// VPSRLW imm8 m512 zmm -// VPSRLW imm8 zmm k zmm -// VPSRLW imm8 zmm zmm -// VPSRLW m128 zmm k zmm -// VPSRLW m128 zmm zmm -// VPSRLW xmm zmm k zmm -// VPSRLW xmm zmm zmm -func VPSRLW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLW.Forms(), sffxs{}, ops) -} - -// VPSRLW_Z: Shift Packed Word Data Right Logical (Zeroing Masking). -// -// Forms: -// -// VPSRLW.Z imm8 m128 k xmm -// VPSRLW.Z imm8 m256 k ymm -// VPSRLW.Z imm8 xmm k xmm -// VPSRLW.Z imm8 ymm k ymm -// VPSRLW.Z m128 xmm k xmm -// VPSRLW.Z m128 ymm k ymm -// VPSRLW.Z xmm xmm k xmm -// VPSRLW.Z xmm ymm k ymm -// VPSRLW.Z imm8 m512 k zmm -// VPSRLW.Z imm8 zmm k zmm -// VPSRLW.Z m128 zmm k zmm -// VPSRLW.Z xmm zmm k zmm -func VPSRLW_Z(imx, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVPSRLW.Forms(), sffxs{sffxZ}, []operand.Op{imx, mxyz, k, xyz}) -} - -// VPSUBB: Subtract Packed Byte Integers. -// -// Forms: -// -// VPSUBB m256 ymm ymm -// VPSUBB ymm ymm ymm -// VPSUBB m128 xmm xmm -// VPSUBB xmm xmm xmm -// VPSUBB m128 xmm k xmm -// VPSUBB m256 ymm k ymm -// VPSUBB xmm xmm k xmm -// VPSUBB ymm ymm k ymm -// VPSUBB m512 zmm k zmm -// VPSUBB m512 zmm zmm -// VPSUBB zmm zmm k zmm -// VPSUBB zmm zmm zmm -func VPSUBB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBB.Forms(), sffxs{}, ops) -} - -// VPSUBB_Z: Subtract Packed Byte Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBB.Z m128 xmm k xmm -// VPSUBB.Z m256 ymm k ymm -// VPSUBB.Z xmm xmm k xmm -// VPSUBB.Z ymm ymm k ymm -// VPSUBB.Z m512 zmm k zmm -// VPSUBB.Z zmm zmm k zmm -func VPSUBB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSUBD: Subtract Packed Doubleword Integers. -// -// Forms: -// -// VPSUBD m256 ymm ymm -// VPSUBD ymm ymm ymm -// VPSUBD m128 xmm xmm -// VPSUBD xmm xmm xmm -// VPSUBD m128 xmm k xmm -// VPSUBD m256 ymm k ymm -// VPSUBD xmm xmm k xmm -// VPSUBD ymm ymm k ymm -// VPSUBD m512 zmm k zmm -// VPSUBD m512 zmm zmm -// VPSUBD zmm zmm k zmm -// VPSUBD zmm zmm zmm -func VPSUBD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBD.Forms(), sffxs{}, ops) -} - -// VPSUBD_BCST: Subtract Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPSUBD.BCST m32 xmm k xmm -// VPSUBD.BCST m32 xmm xmm -// VPSUBD.BCST m32 ymm k ymm -// VPSUBD.BCST m32 ymm ymm -// VPSUBD.BCST m32 zmm k zmm -// VPSUBD.BCST m32 zmm zmm -func VPSUBD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSUBD_BCST_Z: Subtract Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSUBD.BCST.Z m32 xmm k xmm -// VPSUBD.BCST.Z m32 ymm k ymm -// VPSUBD.BCST.Z m32 zmm k zmm -func VPSUBD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSUBD_Z: Subtract Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBD.Z m128 xmm k xmm -// VPSUBD.Z m256 ymm k ymm -// VPSUBD.Z xmm xmm k xmm -// VPSUBD.Z ymm ymm k ymm -// VPSUBD.Z m512 zmm k zmm -// VPSUBD.Z zmm zmm k zmm -func VPSUBD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSUBQ: Subtract Packed Quadword Integers. -// -// Forms: -// -// VPSUBQ m256 ymm ymm -// VPSUBQ ymm ymm ymm -// VPSUBQ m128 xmm xmm -// VPSUBQ xmm xmm xmm -// VPSUBQ m128 xmm k xmm -// VPSUBQ m256 ymm k ymm -// VPSUBQ xmm xmm k xmm -// VPSUBQ ymm ymm k ymm -// VPSUBQ m512 zmm k zmm -// VPSUBQ m512 zmm zmm -// VPSUBQ zmm zmm k zmm -// VPSUBQ zmm zmm zmm -func VPSUBQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBQ.Forms(), sffxs{}, ops) -} - -// VPSUBQ_BCST: Subtract Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPSUBQ.BCST m64 xmm k xmm -// VPSUBQ.BCST m64 xmm xmm -// VPSUBQ.BCST m64 ymm k ymm -// VPSUBQ.BCST m64 ymm ymm -// VPSUBQ.BCST m64 zmm k zmm -// VPSUBQ.BCST m64 zmm zmm -func VPSUBQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPSUBQ_BCST_Z: Subtract Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPSUBQ.BCST.Z m64 xmm k xmm -// VPSUBQ.BCST.Z m64 ymm k ymm -// VPSUBQ.BCST.Z m64 zmm k zmm -func VPSUBQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPSUBQ_Z: Subtract Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBQ.Z m128 xmm k xmm -// VPSUBQ.Z m256 ymm k ymm -// VPSUBQ.Z xmm xmm k xmm -// VPSUBQ.Z ymm ymm k ymm -// VPSUBQ.Z m512 zmm k zmm -// VPSUBQ.Z zmm zmm k zmm -func VPSUBQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSUBSB: Subtract Packed Signed Byte Integers with Signed Saturation. -// -// Forms: -// -// VPSUBSB m256 ymm ymm -// VPSUBSB ymm ymm ymm -// VPSUBSB m128 xmm xmm -// VPSUBSB xmm xmm xmm -// VPSUBSB m128 xmm k xmm -// VPSUBSB m256 ymm k ymm -// VPSUBSB xmm xmm k xmm -// VPSUBSB ymm ymm k ymm -// VPSUBSB m512 zmm k zmm -// VPSUBSB m512 zmm zmm -// VPSUBSB zmm zmm k zmm -// VPSUBSB zmm zmm zmm -func VPSUBSB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBSB.Forms(), sffxs{}, ops) -} - -// VPSUBSB_Z: Subtract Packed Signed Byte Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBSB.Z m128 xmm k xmm -// VPSUBSB.Z m256 ymm k ymm -// VPSUBSB.Z xmm xmm k xmm -// VPSUBSB.Z ymm ymm k ymm -// VPSUBSB.Z m512 zmm k zmm -// VPSUBSB.Z zmm zmm k zmm -func VPSUBSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSUBSW: Subtract Packed Signed Word Integers with Signed Saturation. -// -// Forms: -// -// VPSUBSW m256 ymm ymm -// VPSUBSW ymm ymm ymm -// VPSUBSW m128 xmm xmm -// VPSUBSW xmm xmm xmm -// VPSUBSW m128 xmm k xmm -// VPSUBSW m256 ymm k ymm -// VPSUBSW xmm xmm k xmm -// VPSUBSW ymm ymm k ymm -// VPSUBSW m512 zmm k zmm -// VPSUBSW m512 zmm zmm -// VPSUBSW zmm zmm k zmm -// VPSUBSW zmm zmm zmm -func VPSUBSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBSW.Forms(), sffxs{}, ops) -} - -// VPSUBSW_Z: Subtract Packed Signed Word Integers with Signed Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBSW.Z m128 xmm k xmm -// VPSUBSW.Z m256 ymm k ymm -// VPSUBSW.Z xmm xmm k xmm -// VPSUBSW.Z ymm ymm k ymm -// VPSUBSW.Z m512 zmm k zmm -// VPSUBSW.Z zmm zmm k zmm -func VPSUBSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSUBUSB: Subtract Packed Unsigned Byte Integers with Unsigned Saturation. -// -// Forms: -// -// VPSUBUSB m256 ymm ymm -// VPSUBUSB ymm ymm ymm -// VPSUBUSB m128 xmm xmm -// VPSUBUSB xmm xmm xmm -// VPSUBUSB m128 xmm k xmm -// VPSUBUSB m256 ymm k ymm -// VPSUBUSB xmm xmm k xmm -// VPSUBUSB ymm ymm k ymm -// VPSUBUSB m512 zmm k zmm -// VPSUBUSB m512 zmm zmm -// VPSUBUSB zmm zmm k zmm -// VPSUBUSB zmm zmm zmm -func VPSUBUSB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBUSB.Forms(), sffxs{}, ops) -} - -// VPSUBUSB_Z: Subtract Packed Unsigned Byte Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBUSB.Z m128 xmm k xmm -// VPSUBUSB.Z m256 ymm k ymm -// VPSUBUSB.Z xmm xmm k xmm -// VPSUBUSB.Z ymm ymm k ymm -// VPSUBUSB.Z m512 zmm k zmm -// VPSUBUSB.Z zmm zmm k zmm -func VPSUBUSB_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBUSB.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSUBUSW: Subtract Packed Unsigned Word Integers with Unsigned Saturation. -// -// Forms: -// -// VPSUBUSW m256 ymm ymm -// VPSUBUSW ymm ymm ymm -// VPSUBUSW m128 xmm xmm -// VPSUBUSW xmm xmm xmm -// VPSUBUSW m128 xmm k xmm -// VPSUBUSW m256 ymm k ymm -// VPSUBUSW xmm xmm k xmm -// VPSUBUSW ymm ymm k ymm -// VPSUBUSW m512 zmm k zmm -// VPSUBUSW m512 zmm zmm -// VPSUBUSW zmm zmm k zmm -// VPSUBUSW zmm zmm zmm -func VPSUBUSW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBUSW.Forms(), sffxs{}, ops) -} - -// VPSUBUSW_Z: Subtract Packed Unsigned Word Integers with Unsigned Saturation (Zeroing Masking). -// -// Forms: -// -// VPSUBUSW.Z m128 xmm k xmm -// VPSUBUSW.Z m256 ymm k ymm -// VPSUBUSW.Z xmm xmm k xmm -// VPSUBUSW.Z ymm ymm k ymm -// VPSUBUSW.Z m512 zmm k zmm -// VPSUBUSW.Z zmm zmm k zmm -func VPSUBUSW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBUSW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPSUBW: Subtract Packed Word Integers. -// -// Forms: -// -// VPSUBW m256 ymm ymm -// VPSUBW ymm ymm ymm -// VPSUBW m128 xmm xmm -// VPSUBW xmm xmm xmm -// VPSUBW m128 xmm k xmm -// VPSUBW m256 ymm k ymm -// VPSUBW xmm xmm k xmm -// VPSUBW ymm ymm k ymm -// VPSUBW m512 zmm k zmm -// VPSUBW m512 zmm zmm -// VPSUBW zmm zmm k zmm -// VPSUBW zmm zmm zmm -func VPSUBW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBW.Forms(), sffxs{}, ops) -} - -// VPSUBW_Z: Subtract Packed Word Integers (Zeroing Masking). -// -// Forms: -// -// VPSUBW.Z m128 xmm k xmm -// VPSUBW.Z m256 ymm k ymm -// VPSUBW.Z xmm xmm k xmm -// VPSUBW.Z ymm ymm k ymm -// VPSUBW.Z m512 zmm k zmm -// VPSUBW.Z zmm zmm k zmm -func VPSUBW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPSUBW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPTERNLOGD: Bitwise Ternary Logical Operation on Doubleword Values. -// -// Forms: -// -// VPTERNLOGD imm8 m128 xmm k xmm -// VPTERNLOGD imm8 m128 xmm xmm -// VPTERNLOGD imm8 m256 ymm k ymm -// VPTERNLOGD imm8 m256 ymm ymm -// VPTERNLOGD imm8 xmm xmm k xmm -// VPTERNLOGD imm8 xmm xmm xmm -// VPTERNLOGD imm8 ymm ymm k ymm -// VPTERNLOGD imm8 ymm ymm ymm -// VPTERNLOGD imm8 m512 zmm k zmm -// VPTERNLOGD imm8 m512 zmm zmm -// VPTERNLOGD imm8 zmm zmm k zmm -// VPTERNLOGD imm8 zmm zmm zmm -func VPTERNLOGD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTERNLOGD.Forms(), sffxs{}, ops) -} - -// VPTERNLOGD_BCST: Bitwise Ternary Logical Operation on Doubleword Values (Broadcast). -// -// Forms: -// -// VPTERNLOGD.BCST imm8 m32 xmm k xmm -// VPTERNLOGD.BCST imm8 m32 xmm xmm -// VPTERNLOGD.BCST imm8 m32 ymm k ymm -// VPTERNLOGD.BCST imm8 m32 ymm ymm -// VPTERNLOGD.BCST imm8 m32 zmm k zmm -// VPTERNLOGD.BCST imm8 m32 zmm zmm -func VPTERNLOGD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTERNLOGD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPTERNLOGD_BCST_Z: Bitwise Ternary Logical Operation on Doubleword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPTERNLOGD.BCST.Z imm8 m32 xmm k xmm -// VPTERNLOGD.BCST.Z imm8 m32 ymm k ymm -// VPTERNLOGD.BCST.Z imm8 m32 zmm k zmm -func VPTERNLOGD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPTERNLOGD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VPTERNLOGD_Z: Bitwise Ternary Logical Operation on Doubleword Values (Zeroing Masking). -// -// Forms: -// -// VPTERNLOGD.Z imm8 m128 xmm k xmm -// VPTERNLOGD.Z imm8 m256 ymm k ymm -// VPTERNLOGD.Z imm8 xmm xmm k xmm -// VPTERNLOGD.Z imm8 ymm ymm k ymm -// VPTERNLOGD.Z imm8 m512 zmm k zmm -// VPTERNLOGD.Z imm8 zmm zmm k zmm -func VPTERNLOGD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPTERNLOGD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VPTERNLOGQ: Bitwise Ternary Logical Operation on Quadword Values. -// -// Forms: -// -// VPTERNLOGQ imm8 m128 xmm k xmm -// VPTERNLOGQ imm8 m128 xmm xmm -// VPTERNLOGQ imm8 m256 ymm k ymm -// VPTERNLOGQ imm8 m256 ymm ymm -// VPTERNLOGQ imm8 xmm xmm k xmm -// VPTERNLOGQ imm8 xmm xmm xmm -// VPTERNLOGQ imm8 ymm ymm k ymm -// VPTERNLOGQ imm8 ymm ymm ymm -// VPTERNLOGQ imm8 m512 zmm k zmm -// VPTERNLOGQ imm8 m512 zmm zmm -// VPTERNLOGQ imm8 zmm zmm k zmm -// VPTERNLOGQ imm8 zmm zmm zmm -func VPTERNLOGQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTERNLOGQ.Forms(), sffxs{}, ops) -} - -// VPTERNLOGQ_BCST: Bitwise Ternary Logical Operation on Quadword Values (Broadcast). -// -// Forms: -// -// VPTERNLOGQ.BCST imm8 m64 xmm k xmm -// VPTERNLOGQ.BCST imm8 m64 xmm xmm -// VPTERNLOGQ.BCST imm8 m64 ymm k ymm -// VPTERNLOGQ.BCST imm8 m64 ymm ymm -// VPTERNLOGQ.BCST imm8 m64 zmm k zmm -// VPTERNLOGQ.BCST imm8 m64 zmm zmm -func VPTERNLOGQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTERNLOGQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPTERNLOGQ_BCST_Z: Bitwise Ternary Logical Operation on Quadword Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPTERNLOGQ.BCST.Z imm8 m64 xmm k xmm -// VPTERNLOGQ.BCST.Z imm8 m64 ymm k ymm -// VPTERNLOGQ.BCST.Z imm8 m64 zmm k zmm -func VPTERNLOGQ_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPTERNLOGQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VPTERNLOGQ_Z: Bitwise Ternary Logical Operation on Quadword Values (Zeroing Masking). -// -// Forms: -// -// VPTERNLOGQ.Z imm8 m128 xmm k xmm -// VPTERNLOGQ.Z imm8 m256 ymm k ymm -// VPTERNLOGQ.Z imm8 xmm xmm k xmm -// VPTERNLOGQ.Z imm8 ymm ymm k ymm -// VPTERNLOGQ.Z imm8 m512 zmm k zmm -// VPTERNLOGQ.Z imm8 zmm zmm k zmm -func VPTERNLOGQ_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPTERNLOGQ.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VPTEST: Packed Logical Compare. -// -// Forms: -// -// VPTEST m128 xmm -// VPTEST m256 ymm -// VPTEST xmm xmm -// VPTEST ymm ymm -func VPTEST(mxy, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVPTEST.Forms(), sffxs{}, []operand.Op{mxy, xy}) -} - -// VPTESTMB: Logical AND of Packed Byte Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMB m128 xmm k k -// VPTESTMB m128 xmm k -// VPTESTMB m256 ymm k k -// VPTESTMB m256 ymm k -// VPTESTMB xmm xmm k k -// VPTESTMB xmm xmm k -// VPTESTMB ymm ymm k k -// VPTESTMB ymm ymm k -// VPTESTMB m512 zmm k k -// VPTESTMB m512 zmm k -// VPTESTMB zmm zmm k k -// VPTESTMB zmm zmm k -func VPTESTMB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTMB.Forms(), sffxs{}, ops) -} - -// VPTESTMD: Logical AND of Packed Doubleword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMD m128 xmm k k -// VPTESTMD m128 xmm k -// VPTESTMD m256 ymm k k -// VPTESTMD m256 ymm k -// VPTESTMD xmm xmm k k -// VPTESTMD xmm xmm k -// VPTESTMD ymm ymm k k -// VPTESTMD ymm ymm k -// VPTESTMD m512 zmm k k -// VPTESTMD m512 zmm k -// VPTESTMD zmm zmm k k -// VPTESTMD zmm zmm k -func VPTESTMD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTMD.Forms(), sffxs{}, ops) -} - -// VPTESTMD_BCST: Logical AND of Packed Doubleword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTMD.BCST m32 xmm k k -// VPTESTMD.BCST m32 xmm k -// VPTESTMD.BCST m32 ymm k k -// VPTESTMD.BCST m32 ymm k -// VPTESTMD.BCST m32 zmm k k -// VPTESTMD.BCST m32 zmm k -func VPTESTMD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTMD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPTESTMQ: Logical AND of Packed Quadword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMQ m128 xmm k k -// VPTESTMQ m128 xmm k -// VPTESTMQ m256 ymm k k -// VPTESTMQ m256 ymm k -// VPTESTMQ xmm xmm k k -// VPTESTMQ xmm xmm k -// VPTESTMQ ymm ymm k k -// VPTESTMQ ymm ymm k -// VPTESTMQ m512 zmm k k -// VPTESTMQ m512 zmm k -// VPTESTMQ zmm zmm k k -// VPTESTMQ zmm zmm k -func VPTESTMQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTMQ.Forms(), sffxs{}, ops) -} - -// VPTESTMQ_BCST: Logical AND of Packed Quadword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTMQ.BCST m64 xmm k k -// VPTESTMQ.BCST m64 xmm k -// VPTESTMQ.BCST m64 ymm k k -// VPTESTMQ.BCST m64 ymm k -// VPTESTMQ.BCST m64 zmm k k -// VPTESTMQ.BCST m64 zmm k -func VPTESTMQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTMQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPTESTMW: Logical AND of Packed Word Integer Values and Set Mask. -// -// Forms: -// -// VPTESTMW m128 xmm k k -// VPTESTMW m128 xmm k -// VPTESTMW m256 ymm k k -// VPTESTMW m256 ymm k -// VPTESTMW xmm xmm k k -// VPTESTMW xmm xmm k -// VPTESTMW ymm ymm k k -// VPTESTMW ymm ymm k -// VPTESTMW m512 zmm k k -// VPTESTMW m512 zmm k -// VPTESTMW zmm zmm k k -// VPTESTMW zmm zmm k -func VPTESTMW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTMW.Forms(), sffxs{}, ops) -} - -// VPTESTNMB: Logical NAND of Packed Byte Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMB m512 zmm k k -// VPTESTNMB m512 zmm k -// VPTESTNMB zmm zmm k k -// VPTESTNMB zmm zmm k -// VPTESTNMB m128 xmm k k -// VPTESTNMB m128 xmm k -// VPTESTNMB m256 ymm k k -// VPTESTNMB m256 ymm k -// VPTESTNMB xmm xmm k k -// VPTESTNMB xmm xmm k -// VPTESTNMB ymm ymm k k -// VPTESTNMB ymm ymm k -func VPTESTNMB(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTNMB.Forms(), sffxs{}, ops) -} - -// VPTESTNMD: Logical NAND of Packed Doubleword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMD m128 xmm k k -// VPTESTNMD m128 xmm k -// VPTESTNMD m256 ymm k k -// VPTESTNMD m256 ymm k -// VPTESTNMD xmm xmm k k -// VPTESTNMD xmm xmm k -// VPTESTNMD ymm ymm k k -// VPTESTNMD ymm ymm k -// VPTESTNMD m512 zmm k k -// VPTESTNMD m512 zmm k -// VPTESTNMD zmm zmm k k -// VPTESTNMD zmm zmm k -func VPTESTNMD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTNMD.Forms(), sffxs{}, ops) -} - -// VPTESTNMD_BCST: Logical NAND of Packed Doubleword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTNMD.BCST m32 xmm k k -// VPTESTNMD.BCST m32 xmm k -// VPTESTNMD.BCST m32 ymm k k -// VPTESTNMD.BCST m32 ymm k -// VPTESTNMD.BCST m32 zmm k k -// VPTESTNMD.BCST m32 zmm k -func VPTESTNMD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTNMD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPTESTNMQ: Logical NAND of Packed Quadword Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMQ m128 xmm k k -// VPTESTNMQ m128 xmm k -// VPTESTNMQ m256 ymm k k -// VPTESTNMQ m256 ymm k -// VPTESTNMQ xmm xmm k k -// VPTESTNMQ xmm xmm k -// VPTESTNMQ ymm ymm k k -// VPTESTNMQ ymm ymm k -// VPTESTNMQ m512 zmm k k -// VPTESTNMQ m512 zmm k -// VPTESTNMQ zmm zmm k k -// VPTESTNMQ zmm zmm k -func VPTESTNMQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTNMQ.Forms(), sffxs{}, ops) -} - -// VPTESTNMQ_BCST: Logical NAND of Packed Quadword Integer Values and Set Mask (Broadcast). -// -// Forms: -// -// VPTESTNMQ.BCST m64 xmm k k -// VPTESTNMQ.BCST m64 xmm k -// VPTESTNMQ.BCST m64 ymm k k -// VPTESTNMQ.BCST m64 ymm k -// VPTESTNMQ.BCST m64 zmm k k -// VPTESTNMQ.BCST m64 zmm k -func VPTESTNMQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTNMQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPTESTNMW: Logical NAND of Packed Word Integer Values and Set Mask. -// -// Forms: -// -// VPTESTNMW m512 zmm k k -// VPTESTNMW m512 zmm k -// VPTESTNMW zmm zmm k k -// VPTESTNMW zmm zmm k -// VPTESTNMW m128 xmm k k -// VPTESTNMW m128 xmm k -// VPTESTNMW m256 ymm k k -// VPTESTNMW m256 ymm k -// VPTESTNMW xmm xmm k k -// VPTESTNMW xmm xmm k -// VPTESTNMW ymm ymm k k -// VPTESTNMW ymm ymm k -func VPTESTNMW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPTESTNMW.Forms(), sffxs{}, ops) -} - -// VPUNPCKHBW: Unpack and Interleave High-Order Bytes into Words. -// -// Forms: -// -// VPUNPCKHBW m256 ymm ymm -// VPUNPCKHBW ymm ymm ymm -// VPUNPCKHBW m128 xmm xmm -// VPUNPCKHBW xmm xmm xmm -// VPUNPCKHBW m128 xmm k xmm -// VPUNPCKHBW m256 ymm k ymm -// VPUNPCKHBW xmm xmm k xmm -// VPUNPCKHBW ymm ymm k ymm -// VPUNPCKHBW m512 zmm k zmm -// VPUNPCKHBW m512 zmm zmm -// VPUNPCKHBW zmm zmm k zmm -// VPUNPCKHBW zmm zmm zmm -func VPUNPCKHBW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHBW.Forms(), sffxs{}, ops) -} - -// VPUNPCKHBW_Z: Unpack and Interleave High-Order Bytes into Words (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHBW.Z m128 xmm k xmm -// VPUNPCKHBW.Z m256 ymm k ymm -// VPUNPCKHBW.Z xmm xmm k xmm -// VPUNPCKHBW.Z ymm ymm k ymm -// VPUNPCKHBW.Z m512 zmm k zmm -// VPUNPCKHBW.Z zmm zmm k zmm -func VPUNPCKHBW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHBW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPUNPCKHDQ: Unpack and Interleave High-Order Doublewords into Quadwords. -// -// Forms: -// -// VPUNPCKHDQ m256 ymm ymm -// VPUNPCKHDQ ymm ymm ymm -// VPUNPCKHDQ m128 xmm xmm -// VPUNPCKHDQ xmm xmm xmm -// VPUNPCKHDQ m128 xmm k xmm -// VPUNPCKHDQ m256 ymm k ymm -// VPUNPCKHDQ xmm xmm k xmm -// VPUNPCKHDQ ymm ymm k ymm -// VPUNPCKHDQ m512 zmm k zmm -// VPUNPCKHDQ m512 zmm zmm -// VPUNPCKHDQ zmm zmm k zmm -// VPUNPCKHDQ zmm zmm zmm -func VPUNPCKHDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHDQ.Forms(), sffxs{}, ops) -} - -// VPUNPCKHDQ_BCST: Unpack and Interleave High-Order Doublewords into Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKHDQ.BCST m32 xmm k xmm -// VPUNPCKHDQ.BCST m32 xmm xmm -// VPUNPCKHDQ.BCST m32 ymm k ymm -// VPUNPCKHDQ.BCST m32 ymm ymm -// VPUNPCKHDQ.BCST m32 zmm k zmm -// VPUNPCKHDQ.BCST m32 zmm zmm -func VPUNPCKHDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPUNPCKHDQ_BCST_Z: Unpack and Interleave High-Order Doublewords into Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKHDQ.BCST.Z m32 xmm k xmm -// VPUNPCKHDQ.BCST.Z m32 ymm k ymm -// VPUNPCKHDQ.BCST.Z m32 zmm k zmm -func VPUNPCKHDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPUNPCKHDQ_Z: Unpack and Interleave High-Order Doublewords into Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHDQ.Z m128 xmm k xmm -// VPUNPCKHDQ.Z m256 ymm k ymm -// VPUNPCKHDQ.Z xmm xmm k xmm -// VPUNPCKHDQ.Z ymm ymm k ymm -// VPUNPCKHDQ.Z m512 zmm k zmm -// VPUNPCKHDQ.Z zmm zmm k zmm -func VPUNPCKHDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPUNPCKHQDQ: Unpack and Interleave High-Order Quadwords into Double Quadwords. -// -// Forms: -// -// VPUNPCKHQDQ m256 ymm ymm -// VPUNPCKHQDQ ymm ymm ymm -// VPUNPCKHQDQ m128 xmm xmm -// VPUNPCKHQDQ xmm xmm xmm -// VPUNPCKHQDQ m128 xmm k xmm -// VPUNPCKHQDQ m256 ymm k ymm -// VPUNPCKHQDQ xmm xmm k xmm -// VPUNPCKHQDQ ymm ymm k ymm -// VPUNPCKHQDQ m512 zmm k zmm -// VPUNPCKHQDQ m512 zmm zmm -// VPUNPCKHQDQ zmm zmm k zmm -// VPUNPCKHQDQ zmm zmm zmm -func VPUNPCKHQDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHQDQ.Forms(), sffxs{}, ops) -} - -// VPUNPCKHQDQ_BCST: Unpack and Interleave High-Order Quadwords into Double Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKHQDQ.BCST m64 xmm k xmm -// VPUNPCKHQDQ.BCST m64 xmm xmm -// VPUNPCKHQDQ.BCST m64 ymm k ymm -// VPUNPCKHQDQ.BCST m64 ymm ymm -// VPUNPCKHQDQ.BCST m64 zmm k zmm -// VPUNPCKHQDQ.BCST m64 zmm zmm -func VPUNPCKHQDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHQDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPUNPCKHQDQ_BCST_Z: Unpack and Interleave High-Order Quadwords into Double Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKHQDQ.BCST.Z m64 xmm k xmm -// VPUNPCKHQDQ.BCST.Z m64 ymm k ymm -// VPUNPCKHQDQ.BCST.Z m64 zmm k zmm -func VPUNPCKHQDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHQDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPUNPCKHQDQ_Z: Unpack and Interleave High-Order Quadwords into Double Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHQDQ.Z m128 xmm k xmm -// VPUNPCKHQDQ.Z m256 ymm k ymm -// VPUNPCKHQDQ.Z xmm xmm k xmm -// VPUNPCKHQDQ.Z ymm ymm k ymm -// VPUNPCKHQDQ.Z m512 zmm k zmm -// VPUNPCKHQDQ.Z zmm zmm k zmm -func VPUNPCKHQDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHQDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPUNPCKHWD: Unpack and Interleave High-Order Words into Doublewords. -// -// Forms: -// -// VPUNPCKHWD m256 ymm ymm -// VPUNPCKHWD ymm ymm ymm -// VPUNPCKHWD m128 xmm xmm -// VPUNPCKHWD xmm xmm xmm -// VPUNPCKHWD m128 xmm k xmm -// VPUNPCKHWD m256 ymm k ymm -// VPUNPCKHWD xmm xmm k xmm -// VPUNPCKHWD ymm ymm k ymm -// VPUNPCKHWD m512 zmm k zmm -// VPUNPCKHWD m512 zmm zmm -// VPUNPCKHWD zmm zmm k zmm -// VPUNPCKHWD zmm zmm zmm -func VPUNPCKHWD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHWD.Forms(), sffxs{}, ops) -} - -// VPUNPCKHWD_Z: Unpack and Interleave High-Order Words into Doublewords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKHWD.Z m128 xmm k xmm -// VPUNPCKHWD.Z m256 ymm k ymm -// VPUNPCKHWD.Z xmm xmm k xmm -// VPUNPCKHWD.Z ymm ymm k ymm -// VPUNPCKHWD.Z m512 zmm k zmm -// VPUNPCKHWD.Z zmm zmm k zmm -func VPUNPCKHWD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKHWD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPUNPCKLBW: Unpack and Interleave Low-Order Bytes into Words. -// -// Forms: -// -// VPUNPCKLBW m256 ymm ymm -// VPUNPCKLBW ymm ymm ymm -// VPUNPCKLBW m128 xmm xmm -// VPUNPCKLBW xmm xmm xmm -// VPUNPCKLBW m128 xmm k xmm -// VPUNPCKLBW m256 ymm k ymm -// VPUNPCKLBW xmm xmm k xmm -// VPUNPCKLBW ymm ymm k ymm -// VPUNPCKLBW m512 zmm k zmm -// VPUNPCKLBW m512 zmm zmm -// VPUNPCKLBW zmm zmm k zmm -// VPUNPCKLBW zmm zmm zmm -func VPUNPCKLBW(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLBW.Forms(), sffxs{}, ops) -} - -// VPUNPCKLBW_Z: Unpack and Interleave Low-Order Bytes into Words (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLBW.Z m128 xmm k xmm -// VPUNPCKLBW.Z m256 ymm k ymm -// VPUNPCKLBW.Z xmm xmm k xmm -// VPUNPCKLBW.Z ymm ymm k ymm -// VPUNPCKLBW.Z m512 zmm k zmm -// VPUNPCKLBW.Z zmm zmm k zmm -func VPUNPCKLBW_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLBW.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPUNPCKLDQ: Unpack and Interleave Low-Order Doublewords into Quadwords. -// -// Forms: -// -// VPUNPCKLDQ m256 ymm ymm -// VPUNPCKLDQ ymm ymm ymm -// VPUNPCKLDQ m128 xmm xmm -// VPUNPCKLDQ xmm xmm xmm -// VPUNPCKLDQ m128 xmm k xmm -// VPUNPCKLDQ m256 ymm k ymm -// VPUNPCKLDQ xmm xmm k xmm -// VPUNPCKLDQ ymm ymm k ymm -// VPUNPCKLDQ m512 zmm k zmm -// VPUNPCKLDQ m512 zmm zmm -// VPUNPCKLDQ zmm zmm k zmm -// VPUNPCKLDQ zmm zmm zmm -func VPUNPCKLDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLDQ.Forms(), sffxs{}, ops) -} - -// VPUNPCKLDQ_BCST: Unpack and Interleave Low-Order Doublewords into Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKLDQ.BCST m32 xmm k xmm -// VPUNPCKLDQ.BCST m32 xmm xmm -// VPUNPCKLDQ.BCST m32 ymm k ymm -// VPUNPCKLDQ.BCST m32 ymm ymm -// VPUNPCKLDQ.BCST m32 zmm k zmm -// VPUNPCKLDQ.BCST m32 zmm zmm -func VPUNPCKLDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPUNPCKLDQ_BCST_Z: Unpack and Interleave Low-Order Doublewords into Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKLDQ.BCST.Z m32 xmm k xmm -// VPUNPCKLDQ.BCST.Z m32 ymm k ymm -// VPUNPCKLDQ.BCST.Z m32 zmm k zmm -func VPUNPCKLDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPUNPCKLDQ_Z: Unpack and Interleave Low-Order Doublewords into Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLDQ.Z m128 xmm k xmm -// VPUNPCKLDQ.Z m256 ymm k ymm -// VPUNPCKLDQ.Z xmm xmm k xmm -// VPUNPCKLDQ.Z ymm ymm k ymm -// VPUNPCKLDQ.Z m512 zmm k zmm -// VPUNPCKLDQ.Z zmm zmm k zmm -func VPUNPCKLDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPUNPCKLQDQ: Unpack and Interleave Low-Order Quadwords into Double Quadwords. -// -// Forms: -// -// VPUNPCKLQDQ m256 ymm ymm -// VPUNPCKLQDQ ymm ymm ymm -// VPUNPCKLQDQ m128 xmm xmm -// VPUNPCKLQDQ xmm xmm xmm -// VPUNPCKLQDQ m128 xmm k xmm -// VPUNPCKLQDQ m256 ymm k ymm -// VPUNPCKLQDQ xmm xmm k xmm -// VPUNPCKLQDQ ymm ymm k ymm -// VPUNPCKLQDQ m512 zmm k zmm -// VPUNPCKLQDQ m512 zmm zmm -// VPUNPCKLQDQ zmm zmm k zmm -// VPUNPCKLQDQ zmm zmm zmm -func VPUNPCKLQDQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLQDQ.Forms(), sffxs{}, ops) -} - -// VPUNPCKLQDQ_BCST: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Broadcast). -// -// Forms: -// -// VPUNPCKLQDQ.BCST m64 xmm k xmm -// VPUNPCKLQDQ.BCST m64 xmm xmm -// VPUNPCKLQDQ.BCST m64 ymm k ymm -// VPUNPCKLQDQ.BCST m64 ymm ymm -// VPUNPCKLQDQ.BCST m64 zmm k zmm -// VPUNPCKLQDQ.BCST m64 zmm zmm -func VPUNPCKLQDQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLQDQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPUNPCKLQDQ_BCST_Z: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPUNPCKLQDQ.BCST.Z m64 xmm k xmm -// VPUNPCKLQDQ.BCST.Z m64 ymm k ymm -// VPUNPCKLQDQ.BCST.Z m64 zmm k zmm -func VPUNPCKLQDQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLQDQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPUNPCKLQDQ_Z: Unpack and Interleave Low-Order Quadwords into Double Quadwords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLQDQ.Z m128 xmm k xmm -// VPUNPCKLQDQ.Z m256 ymm k ymm -// VPUNPCKLQDQ.Z xmm xmm k xmm -// VPUNPCKLQDQ.Z ymm ymm k ymm -// VPUNPCKLQDQ.Z m512 zmm k zmm -// VPUNPCKLQDQ.Z zmm zmm k zmm -func VPUNPCKLQDQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLQDQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPUNPCKLWD: Unpack and Interleave Low-Order Words into Doublewords. -// -// Forms: -// -// VPUNPCKLWD m256 ymm ymm -// VPUNPCKLWD ymm ymm ymm -// VPUNPCKLWD m128 xmm xmm -// VPUNPCKLWD xmm xmm xmm -// VPUNPCKLWD m128 xmm k xmm -// VPUNPCKLWD m256 ymm k ymm -// VPUNPCKLWD xmm xmm k xmm -// VPUNPCKLWD ymm ymm k ymm -// VPUNPCKLWD m512 zmm k zmm -// VPUNPCKLWD m512 zmm zmm -// VPUNPCKLWD zmm zmm k zmm -// VPUNPCKLWD zmm zmm zmm -func VPUNPCKLWD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLWD.Forms(), sffxs{}, ops) -} - -// VPUNPCKLWD_Z: Unpack and Interleave Low-Order Words into Doublewords (Zeroing Masking). -// -// Forms: -// -// VPUNPCKLWD.Z m128 xmm k xmm -// VPUNPCKLWD.Z m256 ymm k ymm -// VPUNPCKLWD.Z xmm xmm k xmm -// VPUNPCKLWD.Z ymm ymm k ymm -// VPUNPCKLWD.Z m512 zmm k zmm -// VPUNPCKLWD.Z zmm zmm k zmm -func VPUNPCKLWD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPUNPCKLWD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPXOR: Packed Bitwise Logical Exclusive OR. -// -// Forms: -// -// VPXOR m256 ymm ymm -// VPXOR ymm ymm ymm -// VPXOR m128 xmm xmm -// VPXOR xmm xmm xmm -func VPXOR(mxy, xy, xy1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPXOR.Forms(), sffxs{}, []operand.Op{mxy, xy, xy1}) -} - -// VPXORD: Bitwise Logical Exclusive OR of Packed Doubleword Integers. -// -// Forms: -// -// VPXORD m128 xmm k xmm -// VPXORD m128 xmm xmm -// VPXORD m256 ymm k ymm -// VPXORD m256 ymm ymm -// VPXORD xmm xmm k xmm -// VPXORD xmm xmm xmm -// VPXORD ymm ymm k ymm -// VPXORD ymm ymm ymm -// VPXORD m512 zmm k zmm -// VPXORD m512 zmm zmm -// VPXORD zmm zmm k zmm -// VPXORD zmm zmm zmm -func VPXORD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPXORD.Forms(), sffxs{}, ops) -} - -// VPXORD_BCST: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Broadcast). -// -// Forms: -// -// VPXORD.BCST m32 xmm k xmm -// VPXORD.BCST m32 xmm xmm -// VPXORD.BCST m32 ymm k ymm -// VPXORD.BCST m32 ymm ymm -// VPXORD.BCST m32 zmm k zmm -// VPXORD.BCST m32 zmm zmm -func VPXORD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPXORD.Forms(), sffxs{sffxBCST}, ops) -} - -// VPXORD_BCST_Z: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPXORD.BCST.Z m32 xmm k xmm -// VPXORD.BCST.Z m32 ymm k ymm -// VPXORD.BCST.Z m32 zmm k zmm -func VPXORD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPXORD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPXORD_Z: Bitwise Logical Exclusive OR of Packed Doubleword Integers (Zeroing Masking). -// -// Forms: -// -// VPXORD.Z m128 xmm k xmm -// VPXORD.Z m256 ymm k ymm -// VPXORD.Z xmm xmm k xmm -// VPXORD.Z ymm ymm k ymm -// VPXORD.Z m512 zmm k zmm -// VPXORD.Z zmm zmm k zmm -func VPXORD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPXORD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VPXORQ: Bitwise Logical Exclusive OR of Packed Quadword Integers. -// -// Forms: -// -// VPXORQ m128 xmm k xmm -// VPXORQ m128 xmm xmm -// VPXORQ m256 ymm k ymm -// VPXORQ m256 ymm ymm -// VPXORQ xmm xmm k xmm -// VPXORQ xmm xmm xmm -// VPXORQ ymm ymm k ymm -// VPXORQ ymm ymm ymm -// VPXORQ m512 zmm k zmm -// VPXORQ m512 zmm zmm -// VPXORQ zmm zmm k zmm -// VPXORQ zmm zmm zmm -func VPXORQ(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPXORQ.Forms(), sffxs{}, ops) -} - -// VPXORQ_BCST: Bitwise Logical Exclusive OR of Packed Quadword Integers (Broadcast). -// -// Forms: -// -// VPXORQ.BCST m64 xmm k xmm -// VPXORQ.BCST m64 xmm xmm -// VPXORQ.BCST m64 ymm k ymm -// VPXORQ.BCST m64 ymm ymm -// VPXORQ.BCST m64 zmm k zmm -// VPXORQ.BCST m64 zmm zmm -func VPXORQ_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVPXORQ.Forms(), sffxs{sffxBCST}, ops) -} - -// VPXORQ_BCST_Z: Bitwise Logical Exclusive OR of Packed Quadword Integers (Broadcast, Zeroing Masking). -// -// Forms: -// -// VPXORQ.BCST.Z m64 xmm k xmm -// VPXORQ.BCST.Z m64 ymm k ymm -// VPXORQ.BCST.Z m64 zmm k zmm -func VPXORQ_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPXORQ.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VPXORQ_Z: Bitwise Logical Exclusive OR of Packed Quadword Integers (Zeroing Masking). -// -// Forms: -// -// VPXORQ.Z m128 xmm k xmm -// VPXORQ.Z m256 ymm k ymm -// VPXORQ.Z xmm xmm k xmm -// VPXORQ.Z ymm ymm k ymm -// VPXORQ.Z m512 zmm k zmm -// VPXORQ.Z zmm zmm k zmm -func VPXORQ_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVPXORQ.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VRANGEPD: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values. -// -// Forms: -// -// VRANGEPD imm8 m128 xmm k xmm -// VRANGEPD imm8 m128 xmm xmm -// VRANGEPD imm8 m256 ymm k ymm -// VRANGEPD imm8 m256 ymm ymm -// VRANGEPD imm8 xmm xmm k xmm -// VRANGEPD imm8 xmm xmm xmm -// VRANGEPD imm8 ymm ymm k ymm -// VRANGEPD imm8 ymm ymm ymm -// VRANGEPD imm8 m512 zmm k zmm -// VRANGEPD imm8 m512 zmm zmm -// VRANGEPD imm8 zmm zmm k zmm -// VRANGEPD imm8 zmm zmm zmm -func VRANGEPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPD.Forms(), sffxs{}, ops) -} - -// VRANGEPD_BCST: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRANGEPD.BCST imm8 m64 xmm k xmm -// VRANGEPD.BCST imm8 m64 xmm xmm -// VRANGEPD.BCST imm8 m64 ymm k ymm -// VRANGEPD.BCST imm8 m64 ymm ymm -// VRANGEPD.BCST imm8 m64 zmm k zmm -// VRANGEPD.BCST imm8 m64 zmm zmm -func VRANGEPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VRANGEPD_BCST_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRANGEPD.BCST.Z imm8 m64 xmm k xmm -// VRANGEPD.BCST.Z imm8 m64 ymm k ymm -// VRANGEPD.BCST.Z imm8 m64 zmm k zmm -func VRANGEPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VRANGEPD_SAE: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGEPD.SAE imm8 zmm zmm k zmm -// VRANGEPD.SAE imm8 zmm zmm zmm -func VRANGEPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPD.Forms(), sffxs{sffxSAE}, ops) -} - -// VRANGEPD_SAE_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGEPD.SAE.Z imm8 zmm zmm k zmm -func VRANGEPD_SAE_Z(i, z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, z1, k, z2}) -} - -// VRANGEPD_Z: Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGEPD.Z imm8 m128 xmm k xmm -// VRANGEPD.Z imm8 m256 ymm k ymm -// VRANGEPD.Z imm8 xmm xmm k xmm -// VRANGEPD.Z imm8 ymm ymm k ymm -// VRANGEPD.Z imm8 m512 zmm k zmm -// VRANGEPD.Z imm8 zmm zmm k zmm -func VRANGEPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VRANGEPS: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values. -// -// Forms: -// -// VRANGEPS imm8 m128 xmm k xmm -// VRANGEPS imm8 m128 xmm xmm -// VRANGEPS imm8 m256 ymm k ymm -// VRANGEPS imm8 m256 ymm ymm -// VRANGEPS imm8 xmm xmm k xmm -// VRANGEPS imm8 xmm xmm xmm -// VRANGEPS imm8 ymm ymm k ymm -// VRANGEPS imm8 ymm ymm ymm -// VRANGEPS imm8 m512 zmm k zmm -// VRANGEPS imm8 m512 zmm zmm -// VRANGEPS imm8 zmm zmm k zmm -// VRANGEPS imm8 zmm zmm zmm -func VRANGEPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPS.Forms(), sffxs{}, ops) -} - -// VRANGEPS_BCST: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRANGEPS.BCST imm8 m32 xmm k xmm -// VRANGEPS.BCST imm8 m32 xmm xmm -// VRANGEPS.BCST imm8 m32 ymm k ymm -// VRANGEPS.BCST imm8 m32 ymm ymm -// VRANGEPS.BCST imm8 m32 zmm k zmm -// VRANGEPS.BCST imm8 m32 zmm zmm -func VRANGEPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VRANGEPS_BCST_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRANGEPS.BCST.Z imm8 m32 xmm k xmm -// VRANGEPS.BCST.Z imm8 m32 ymm k ymm -// VRANGEPS.BCST.Z imm8 m32 zmm k zmm -func VRANGEPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VRANGEPS_SAE: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGEPS.SAE imm8 zmm zmm k zmm -// VRANGEPS.SAE imm8 zmm zmm zmm -func VRANGEPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPS.Forms(), sffxs{sffxSAE}, ops) -} - -// VRANGEPS_SAE_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGEPS.SAE.Z imm8 zmm zmm k zmm -func VRANGEPS_SAE_Z(i, z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, z1, k, z2}) -} - -// VRANGEPS_Z: Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGEPS.Z imm8 m128 xmm k xmm -// VRANGEPS.Z imm8 m256 ymm k ymm -// VRANGEPS.Z imm8 xmm xmm k xmm -// VRANGEPS.Z imm8 ymm ymm k ymm -// VRANGEPS.Z imm8 m512 zmm k zmm -// VRANGEPS.Z imm8 zmm zmm k zmm -func VRANGEPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGEPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VRANGESD: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VRANGESD imm8 m64 xmm k xmm -// VRANGESD imm8 m64 xmm xmm -// VRANGESD imm8 xmm xmm k xmm -// VRANGESD imm8 xmm xmm xmm -func VRANGESD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGESD.Forms(), sffxs{}, ops) -} - -// VRANGESD_SAE: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGESD.SAE imm8 xmm xmm k xmm -// VRANGESD.SAE imm8 xmm xmm xmm -func VRANGESD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGESD.Forms(), sffxs{sffxSAE}, ops) -} - -// VRANGESD_SAE_Z: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGESD.SAE.Z imm8 xmm xmm k xmm -func VRANGESD_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGESD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2}) -} - -// VRANGESD_Z: Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGESD.Z imm8 m64 xmm k xmm -// VRANGESD.Z imm8 xmm xmm k xmm -func VRANGESD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGESD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VRANGESS: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VRANGESS imm8 m32 xmm k xmm -// VRANGESS imm8 m32 xmm xmm -// VRANGESS imm8 xmm xmm k xmm -// VRANGESS imm8 xmm xmm xmm -func VRANGESS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGESS.Forms(), sffxs{}, ops) -} - -// VRANGESS_SAE: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Suppress All Exceptions). -// -// Forms: -// -// VRANGESS.SAE imm8 xmm xmm k xmm -// VRANGESS.SAE imm8 xmm xmm xmm -func VRANGESS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGESS.Forms(), sffxs{sffxSAE}, ops) -} - -// VRANGESS_SAE_Z: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRANGESS.SAE.Z imm8 xmm xmm k xmm -func VRANGESS_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGESS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2}) -} - -// VRANGESS_Z: Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRANGESS.Z imm8 m32 xmm k xmm -// VRANGESS.Z imm8 xmm xmm k xmm -func VRANGESS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRANGESS.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VRCP14PD: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VRCP14PD m128 k xmm -// VRCP14PD m128 xmm -// VRCP14PD m256 k ymm -// VRCP14PD m256 ymm -// VRCP14PD xmm k xmm -// VRCP14PD xmm xmm -// VRCP14PD ymm k ymm -// VRCP14PD ymm ymm -// VRCP14PD m512 k zmm -// VRCP14PD m512 zmm -// VRCP14PD zmm k zmm -// VRCP14PD zmm zmm -func VRCP14PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14PD.Forms(), sffxs{}, ops) -} - -// VRCP14PD_BCST: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRCP14PD.BCST m64 k xmm -// VRCP14PD.BCST m64 k ymm -// VRCP14PD.BCST m64 xmm -// VRCP14PD.BCST m64 ymm -// VRCP14PD.BCST m64 k zmm -// VRCP14PD.BCST m64 zmm -func VRCP14PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VRCP14PD_BCST_Z: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP14PD.BCST.Z m64 k xmm -// VRCP14PD.BCST.Z m64 k ymm -// VRCP14PD.BCST.Z m64 k zmm -func VRCP14PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VRCP14PD_Z: Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRCP14PD.Z m128 k xmm -// VRCP14PD.Z m256 k ymm -// VRCP14PD.Z xmm k xmm -// VRCP14PD.Z ymm k ymm -// VRCP14PD.Z m512 k zmm -// VRCP14PD.Z zmm k zmm -func VRCP14PD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VRCP14PS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRCP14PS m128 k xmm -// VRCP14PS m128 xmm -// VRCP14PS m256 k ymm -// VRCP14PS m256 ymm -// VRCP14PS xmm k xmm -// VRCP14PS xmm xmm -// VRCP14PS ymm k ymm -// VRCP14PS ymm ymm -// VRCP14PS m512 k zmm -// VRCP14PS m512 zmm -// VRCP14PS zmm k zmm -// VRCP14PS zmm zmm -func VRCP14PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14PS.Forms(), sffxs{}, ops) -} - -// VRCP14PS_BCST: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRCP14PS.BCST m32 k xmm -// VRCP14PS.BCST m32 k ymm -// VRCP14PS.BCST m32 xmm -// VRCP14PS.BCST m32 ymm -// VRCP14PS.BCST m32 k zmm -// VRCP14PS.BCST m32 zmm -func VRCP14PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VRCP14PS_BCST_Z: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP14PS.BCST.Z m32 k xmm -// VRCP14PS.BCST.Z m32 k ymm -// VRCP14PS.BCST.Z m32 k zmm -func VRCP14PS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VRCP14PS_Z: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRCP14PS.Z m128 k xmm -// VRCP14PS.Z m256 k ymm -// VRCP14PS.Z xmm k xmm -// VRCP14PS.Z ymm k ymm -// VRCP14PS.Z m512 k zmm -// VRCP14PS.Z zmm k zmm -func VRCP14PS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VRCP14SD: Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VRCP14SD m64 xmm k xmm -// VRCP14SD m64 xmm xmm -// VRCP14SD xmm xmm k xmm -// VRCP14SD xmm xmm xmm -func VRCP14SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14SD.Forms(), sffxs{}, ops) -} - -// VRCP14SD_Z: Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRCP14SD.Z m64 xmm k xmm -// VRCP14SD.Z xmm xmm k xmm -func VRCP14SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VRCP14SS: Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VRCP14SS m32 xmm k xmm -// VRCP14SS m32 xmm xmm -// VRCP14SS xmm xmm k xmm -// VRCP14SS xmm xmm xmm -func VRCP14SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14SS.Forms(), sffxs{}, ops) -} - -// VRCP14SS_Z: Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRCP14SS.Z m32 xmm k xmm -// VRCP14SS.Z xmm xmm k xmm -func VRCP14SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP14SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VRCP28PD: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28PD m512 k zmm -// VRCP28PD m512 zmm -// VRCP28PD zmm k zmm -// VRCP28PD zmm zmm -func VRCP28PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PD.Forms(), sffxs{}, ops) -} - -// VRCP28PD_BCST: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRCP28PD.BCST m64 k zmm -// VRCP28PD.BCST m64 zmm -func VRCP28PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VRCP28PD_BCST_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP28PD.BCST.Z m64 k zmm -func VRCP28PD_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z}) -} - -// VRCP28PD_SAE: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28PD.SAE zmm k zmm -// VRCP28PD.SAE zmm zmm -func VRCP28PD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PD.Forms(), sffxs{sffxSAE}, ops) -} - -// VRCP28PD_SAE_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28PD.SAE.Z zmm k zmm -func VRCP28PD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VRCP28PD_Z: Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28PD.Z m512 k zmm -// VRCP28PD.Z zmm k zmm -func VRCP28PD_Z(mz, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PD.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z}) -} - -// VRCP28PS: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28PS m512 k zmm -// VRCP28PS m512 zmm -// VRCP28PS zmm k zmm -// VRCP28PS zmm zmm -func VRCP28PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PS.Forms(), sffxs{}, ops) -} - -// VRCP28PS_BCST: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRCP28PS.BCST m32 k zmm -// VRCP28PS.BCST m32 zmm -func VRCP28PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VRCP28PS_BCST_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRCP28PS.BCST.Z m32 k zmm -func VRCP28PS_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z}) -} - -// VRCP28PS_SAE: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28PS.SAE zmm k zmm -// VRCP28PS.SAE zmm zmm -func VRCP28PS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PS.Forms(), sffxs{sffxSAE}, ops) -} - -// VRCP28PS_SAE_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28PS.SAE.Z zmm k zmm -func VRCP28PS_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VRCP28PS_Z: Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28PS.Z m512 k zmm -// VRCP28PS.Z zmm k zmm -func VRCP28PS_Z(mz, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z}) -} - -// VRCP28SD: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28SD m64 xmm k xmm -// VRCP28SD m64 xmm xmm -// VRCP28SD xmm xmm k xmm -// VRCP28SD xmm xmm xmm -func VRCP28SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28SD.Forms(), sffxs{}, ops) -} - -// VRCP28SD_SAE: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28SD.SAE xmm xmm k xmm -// VRCP28SD.SAE xmm xmm xmm -func VRCP28SD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28SD.Forms(), sffxs{sffxSAE}, ops) -} - -// VRCP28SD_SAE_Z: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28SD.SAE.Z xmm xmm k xmm -func VRCP28SD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28SD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VRCP28SD_Z: Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28SD.Z m64 xmm k xmm -// VRCP28SD.Z xmm xmm k xmm -func VRCP28SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VRCP28SS: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRCP28SS m32 xmm k xmm -// VRCP28SS m32 xmm xmm -// VRCP28SS xmm xmm k xmm -// VRCP28SS xmm xmm xmm -func VRCP28SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28SS.Forms(), sffxs{}, ops) -} - -// VRCP28SS_SAE: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRCP28SS.SAE xmm xmm k xmm -// VRCP28SS.SAE xmm xmm xmm -func VRCP28SS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28SS.Forms(), sffxs{sffxSAE}, ops) -} - -// VRCP28SS_SAE_Z: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRCP28SS.SAE.Z xmm xmm k xmm -func VRCP28SS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28SS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VRCP28SS_Z: Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRCP28SS.Z m32 xmm k xmm -// VRCP28SS.Z xmm xmm k xmm -func VRCP28SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRCP28SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VRCPPS: Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRCPPS m128 xmm -// VRCPPS m256 ymm -// VRCPPS xmm xmm -// VRCPPS ymm ymm -func VRCPPS(mxy, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVRCPPS.Forms(), sffxs{}, []operand.Op{mxy, xy}) -} - -// VRCPSS: Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VRCPSS m32 xmm xmm -// VRCPSS xmm xmm xmm -func VRCPSS(mx, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRCPSS.Forms(), sffxs{}, []operand.Op{mx, x, x1}) -} - -// VREDUCEPD: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VREDUCEPD imm8 m128 k xmm -// VREDUCEPD imm8 m128 xmm -// VREDUCEPD imm8 m256 k ymm -// VREDUCEPD imm8 m256 ymm -// VREDUCEPD imm8 xmm k xmm -// VREDUCEPD imm8 xmm xmm -// VREDUCEPD imm8 ymm k ymm -// VREDUCEPD imm8 ymm ymm -// VREDUCEPD imm8 m512 k zmm -// VREDUCEPD imm8 m512 zmm -// VREDUCEPD imm8 zmm k zmm -// VREDUCEPD imm8 zmm zmm -func VREDUCEPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCEPD.Forms(), sffxs{}, ops) -} - -// VREDUCEPD_BCST: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VREDUCEPD.BCST imm8 m64 k xmm -// VREDUCEPD.BCST imm8 m64 k ymm -// VREDUCEPD.BCST imm8 m64 xmm -// VREDUCEPD.BCST imm8 m64 ymm -// VREDUCEPD.BCST imm8 m64 k zmm -// VREDUCEPD.BCST imm8 m64 zmm -func VREDUCEPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCEPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VREDUCEPD_BCST_Z: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VREDUCEPD.BCST.Z imm8 m64 k xmm -// VREDUCEPD.BCST.Z imm8 m64 k ymm -// VREDUCEPD.BCST.Z imm8 m64 k zmm -func VREDUCEPD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCEPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VREDUCEPD_Z: Perform Reduction Transformation on Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VREDUCEPD.Z imm8 m128 k xmm -// VREDUCEPD.Z imm8 m256 k ymm -// VREDUCEPD.Z imm8 xmm k xmm -// VREDUCEPD.Z imm8 ymm k ymm -// VREDUCEPD.Z imm8 m512 k zmm -// VREDUCEPD.Z imm8 zmm k zmm -func VREDUCEPD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCEPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VREDUCEPS: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VREDUCEPS imm8 m128 k xmm -// VREDUCEPS imm8 m128 xmm -// VREDUCEPS imm8 m256 k ymm -// VREDUCEPS imm8 m256 ymm -// VREDUCEPS imm8 xmm k xmm -// VREDUCEPS imm8 xmm xmm -// VREDUCEPS imm8 ymm k ymm -// VREDUCEPS imm8 ymm ymm -// VREDUCEPS imm8 m512 k zmm -// VREDUCEPS imm8 m512 zmm -// VREDUCEPS imm8 zmm k zmm -// VREDUCEPS imm8 zmm zmm -func VREDUCEPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCEPS.Forms(), sffxs{}, ops) -} - -// VREDUCEPS_BCST: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VREDUCEPS.BCST imm8 m32 k xmm -// VREDUCEPS.BCST imm8 m32 k ymm -// VREDUCEPS.BCST imm8 m32 xmm -// VREDUCEPS.BCST imm8 m32 ymm -// VREDUCEPS.BCST imm8 m32 k zmm -// VREDUCEPS.BCST imm8 m32 zmm -func VREDUCEPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCEPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VREDUCEPS_BCST_Z: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VREDUCEPS.BCST.Z imm8 m32 k xmm -// VREDUCEPS.BCST.Z imm8 m32 k ymm -// VREDUCEPS.BCST.Z imm8 m32 k zmm -func VREDUCEPS_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCEPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VREDUCEPS_Z: Perform Reduction Transformation on Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VREDUCEPS.Z imm8 m128 k xmm -// VREDUCEPS.Z imm8 m256 k ymm -// VREDUCEPS.Z imm8 xmm k xmm -// VREDUCEPS.Z imm8 ymm k ymm -// VREDUCEPS.Z imm8 m512 k zmm -// VREDUCEPS.Z imm8 zmm k zmm -func VREDUCEPS_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCEPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VREDUCESD: Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VREDUCESD imm8 m64 xmm k xmm -// VREDUCESD imm8 m64 xmm xmm -// VREDUCESD imm8 xmm xmm k xmm -// VREDUCESD imm8 xmm xmm xmm -func VREDUCESD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCESD.Forms(), sffxs{}, ops) -} - -// VREDUCESD_Z: Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VREDUCESD.Z imm8 m64 xmm k xmm -// VREDUCESD.Z imm8 xmm xmm k xmm -func VREDUCESD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCESD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VREDUCESS: Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VREDUCESS imm8 m32 xmm k xmm -// VREDUCESS imm8 m32 xmm xmm -// VREDUCESS imm8 xmm xmm k xmm -// VREDUCESS imm8 xmm xmm xmm -func VREDUCESS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCESS.Forms(), sffxs{}, ops) -} - -// VREDUCESS_Z: Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VREDUCESS.Z imm8 m32 xmm k xmm -// VREDUCESS.Z imm8 xmm xmm k xmm -func VREDUCESS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVREDUCESS.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VRNDSCALEPD: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALEPD imm8 m128 k xmm -// VRNDSCALEPD imm8 m128 xmm -// VRNDSCALEPD imm8 m256 k ymm -// VRNDSCALEPD imm8 m256 ymm -// VRNDSCALEPD imm8 xmm k xmm -// VRNDSCALEPD imm8 xmm xmm -// VRNDSCALEPD imm8 ymm k ymm -// VRNDSCALEPD imm8 ymm ymm -// VRNDSCALEPD imm8 m512 k zmm -// VRNDSCALEPD imm8 m512 zmm -// VRNDSCALEPD imm8 zmm k zmm -// VRNDSCALEPD imm8 zmm zmm -func VRNDSCALEPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPD.Forms(), sffxs{}, ops) -} - -// VRNDSCALEPD_BCST: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast). -// -// Forms: -// -// VRNDSCALEPD.BCST imm8 m64 k xmm -// VRNDSCALEPD.BCST imm8 m64 k ymm -// VRNDSCALEPD.BCST imm8 m64 xmm -// VRNDSCALEPD.BCST imm8 m64 ymm -// VRNDSCALEPD.BCST imm8 m64 k zmm -// VRNDSCALEPD.BCST imm8 m64 zmm -func VRNDSCALEPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VRNDSCALEPD_BCST_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPD.BCST.Z imm8 m64 k xmm -// VRNDSCALEPD.BCST.Z imm8 m64 k ymm -// VRNDSCALEPD.BCST.Z imm8 m64 k zmm -func VRNDSCALEPD_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VRNDSCALEPD_SAE: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALEPD.SAE imm8 zmm k zmm -// VRNDSCALEPD.SAE imm8 zmm zmm -func VRNDSCALEPD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPD.Forms(), sffxs{sffxSAE}, ops) -} - -// VRNDSCALEPD_SAE_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPD.SAE.Z imm8 zmm k zmm -func VRNDSCALEPD_SAE_Z(i, z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, z1}) -} - -// VRNDSCALEPD_Z: Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPD.Z imm8 m128 k xmm -// VRNDSCALEPD.Z imm8 m256 k ymm -// VRNDSCALEPD.Z imm8 xmm k xmm -// VRNDSCALEPD.Z imm8 ymm k ymm -// VRNDSCALEPD.Z imm8 m512 k zmm -// VRNDSCALEPD.Z imm8 zmm k zmm -func VRNDSCALEPD_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VRNDSCALEPS: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALEPS imm8 m128 k xmm -// VRNDSCALEPS imm8 m128 xmm -// VRNDSCALEPS imm8 m256 k ymm -// VRNDSCALEPS imm8 m256 ymm -// VRNDSCALEPS imm8 xmm k xmm -// VRNDSCALEPS imm8 xmm xmm -// VRNDSCALEPS imm8 ymm k ymm -// VRNDSCALEPS imm8 ymm ymm -// VRNDSCALEPS imm8 m512 k zmm -// VRNDSCALEPS imm8 m512 zmm -// VRNDSCALEPS imm8 zmm k zmm -// VRNDSCALEPS imm8 zmm zmm -func VRNDSCALEPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPS.Forms(), sffxs{}, ops) -} - -// VRNDSCALEPS_BCST: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast). -// -// Forms: -// -// VRNDSCALEPS.BCST imm8 m32 k xmm -// VRNDSCALEPS.BCST imm8 m32 k ymm -// VRNDSCALEPS.BCST imm8 m32 xmm -// VRNDSCALEPS.BCST imm8 m32 ymm -// VRNDSCALEPS.BCST imm8 m32 k zmm -// VRNDSCALEPS.BCST imm8 m32 zmm -func VRNDSCALEPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VRNDSCALEPS_BCST_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPS.BCST.Z imm8 m32 k xmm -// VRNDSCALEPS.BCST.Z imm8 m32 k ymm -// VRNDSCALEPS.BCST.Z imm8 m32 k zmm -func VRNDSCALEPS_BCST_Z(i, m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, k, xyz}) -} - -// VRNDSCALEPS_SAE: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALEPS.SAE imm8 zmm k zmm -// VRNDSCALEPS.SAE imm8 zmm zmm -func VRNDSCALEPS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPS.Forms(), sffxs{sffxSAE}, ops) -} - -// VRNDSCALEPS_SAE_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPS.SAE.Z imm8 zmm k zmm -func VRNDSCALEPS_SAE_Z(i, z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, z, k, z1}) -} - -// VRNDSCALEPS_Z: Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALEPS.Z imm8 m128 k xmm -// VRNDSCALEPS.Z imm8 m256 k ymm -// VRNDSCALEPS.Z imm8 xmm k xmm -// VRNDSCALEPS.Z imm8 ymm k ymm -// VRNDSCALEPS.Z imm8 m512 k zmm -// VRNDSCALEPS.Z imm8 zmm k zmm -func VRNDSCALEPS_Z(i, mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALEPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, k, xyz}) -} - -// VRNDSCALESD: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALESD imm8 m64 xmm k xmm -// VRNDSCALESD imm8 m64 xmm xmm -// VRNDSCALESD imm8 xmm xmm k xmm -// VRNDSCALESD imm8 xmm xmm xmm -func VRNDSCALESD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALESD.Forms(), sffxs{}, ops) -} - -// VRNDSCALESD_SAE: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALESD.SAE imm8 xmm xmm k xmm -// VRNDSCALESD.SAE imm8 xmm xmm xmm -func VRNDSCALESD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALESD.Forms(), sffxs{sffxSAE}, ops) -} - -// VRNDSCALESD_SAE_Z: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALESD.SAE.Z imm8 xmm xmm k xmm -func VRNDSCALESD_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALESD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2}) -} - -// VRNDSCALESD_Z: Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALESD.Z imm8 m64 xmm k xmm -// VRNDSCALESD.Z imm8 xmm xmm k xmm -func VRNDSCALESD_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALESD.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VRNDSCALESS: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits. -// -// Forms: -// -// VRNDSCALESS imm8 m32 xmm k xmm -// VRNDSCALESS imm8 m32 xmm xmm -// VRNDSCALESS imm8 xmm xmm k xmm -// VRNDSCALESS imm8 xmm xmm xmm -func VRNDSCALESS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALESS.Forms(), sffxs{}, ops) -} - -// VRNDSCALESS_SAE: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions). -// -// Forms: -// -// VRNDSCALESS.SAE imm8 xmm xmm k xmm -// VRNDSCALESS.SAE imm8 xmm xmm xmm -func VRNDSCALESS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALESS.Forms(), sffxs{sffxSAE}, ops) -} - -// VRNDSCALESS_SAE_Z: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRNDSCALESS.SAE.Z imm8 xmm xmm k xmm -func VRNDSCALESS_SAE_Z(i, x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALESS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{i, x, x1, k, x2}) -} - -// VRNDSCALESS_Z: Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits (Zeroing Masking). -// -// Forms: -// -// VRNDSCALESS.Z imm8 m32 xmm k xmm -// VRNDSCALESS.Z imm8 xmm xmm k xmm -func VRNDSCALESS_Z(i, mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRNDSCALESS.Forms(), sffxs{sffxZ}, []operand.Op{i, mx, x, k, x1}) -} - -// VROUNDPD: Round Packed Double Precision Floating-Point Values. -// -// Forms: -// -// VROUNDPD imm8 m128 xmm -// VROUNDPD imm8 m256 ymm -// VROUNDPD imm8 xmm xmm -// VROUNDPD imm8 ymm ymm -func VROUNDPD(i, mxy, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVROUNDPD.Forms(), sffxs{}, []operand.Op{i, mxy, xy}) -} - -// VROUNDPS: Round Packed Single Precision Floating-Point Values. -// -// Forms: -// -// VROUNDPS imm8 m128 xmm -// VROUNDPS imm8 m256 ymm -// VROUNDPS imm8 xmm xmm -// VROUNDPS imm8 ymm ymm -func VROUNDPS(i, mxy, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVROUNDPS.Forms(), sffxs{}, []operand.Op{i, mxy, xy}) -} - -// VROUNDSD: Round Scalar Double Precision Floating-Point Values. -// -// Forms: -// -// VROUNDSD imm8 m64 xmm xmm -// VROUNDSD imm8 xmm xmm xmm -func VROUNDSD(i, mx, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVROUNDSD.Forms(), sffxs{}, []operand.Op{i, mx, x, x1}) -} - -// VROUNDSS: Round Scalar Single Precision Floating-Point Values. -// -// Forms: -// -// VROUNDSS imm8 m32 xmm xmm -// VROUNDSS imm8 xmm xmm xmm -func VROUNDSS(i, mx, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVROUNDSS.Forms(), sffxs{}, []operand.Op{i, mx, x, x1}) -} - -// VRSQRT14PD: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VRSQRT14PD m128 k xmm -// VRSQRT14PD m128 xmm -// VRSQRT14PD m256 k ymm -// VRSQRT14PD m256 ymm -// VRSQRT14PD xmm k xmm -// VRSQRT14PD xmm xmm -// VRSQRT14PD ymm k ymm -// VRSQRT14PD ymm ymm -// VRSQRT14PD m512 k zmm -// VRSQRT14PD m512 zmm -// VRSQRT14PD zmm k zmm -// VRSQRT14PD zmm zmm -func VRSQRT14PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14PD.Forms(), sffxs{}, ops) -} - -// VRSQRT14PD_BCST: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRSQRT14PD.BCST m64 k xmm -// VRSQRT14PD.BCST m64 k ymm -// VRSQRT14PD.BCST m64 xmm -// VRSQRT14PD.BCST m64 ymm -// VRSQRT14PD.BCST m64 k zmm -// VRSQRT14PD.BCST m64 zmm -func VRSQRT14PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VRSQRT14PD_BCST_Z: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT14PD.BCST.Z m64 k xmm -// VRSQRT14PD.BCST.Z m64 k ymm -// VRSQRT14PD.BCST.Z m64 k zmm -func VRSQRT14PD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VRSQRT14PD_Z: Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRSQRT14PD.Z m128 k xmm -// VRSQRT14PD.Z m256 k ymm -// VRSQRT14PD.Z xmm k xmm -// VRSQRT14PD.Z ymm k ymm -// VRSQRT14PD.Z m512 k zmm -// VRSQRT14PD.Z zmm k zmm -func VRSQRT14PD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14PD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VRSQRT14PS: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRSQRT14PS m128 k xmm -// VRSQRT14PS m128 xmm -// VRSQRT14PS m256 k ymm -// VRSQRT14PS m256 ymm -// VRSQRT14PS xmm k xmm -// VRSQRT14PS xmm xmm -// VRSQRT14PS ymm k ymm -// VRSQRT14PS ymm ymm -// VRSQRT14PS m512 k zmm -// VRSQRT14PS m512 zmm -// VRSQRT14PS zmm k zmm -// VRSQRT14PS zmm zmm -func VRSQRT14PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14PS.Forms(), sffxs{}, ops) -} - -// VRSQRT14PS_BCST: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VRSQRT14PS.BCST m32 k xmm -// VRSQRT14PS.BCST m32 k ymm -// VRSQRT14PS.BCST m32 xmm -// VRSQRT14PS.BCST m32 ymm -// VRSQRT14PS.BCST m32 k zmm -// VRSQRT14PS.BCST m32 zmm -func VRSQRT14PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VRSQRT14PS_BCST_Z: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT14PS.BCST.Z m32 k xmm -// VRSQRT14PS.BCST.Z m32 k ymm -// VRSQRT14PS.BCST.Z m32 k zmm -func VRSQRT14PS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VRSQRT14PS_Z: Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VRSQRT14PS.Z m128 k xmm -// VRSQRT14PS.Z m256 k ymm -// VRSQRT14PS.Z xmm k xmm -// VRSQRT14PS.Z ymm k ymm -// VRSQRT14PS.Z m512 k zmm -// VRSQRT14PS.Z zmm k zmm -func VRSQRT14PS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14PS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VRSQRT14SD: Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VRSQRT14SD m64 xmm k xmm -// VRSQRT14SD m64 xmm xmm -// VRSQRT14SD xmm xmm k xmm -// VRSQRT14SD xmm xmm xmm -func VRSQRT14SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14SD.Forms(), sffxs{}, ops) -} - -// VRSQRT14SD_Z: Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRSQRT14SD.Z m64 xmm k xmm -// VRSQRT14SD.Z xmm xmm k xmm -func VRSQRT14SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VRSQRT14SS: Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VRSQRT14SS m32 xmm k xmm -// VRSQRT14SS m32 xmm xmm -// VRSQRT14SS xmm xmm k xmm -// VRSQRT14SS xmm xmm xmm -func VRSQRT14SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14SS.Forms(), sffxs{}, ops) -} - -// VRSQRT14SS_Z: Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VRSQRT14SS.Z m32 xmm k xmm -// VRSQRT14SS.Z xmm xmm k xmm -func VRSQRT14SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT14SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VRSQRT28PD: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28PD m512 k zmm -// VRSQRT28PD m512 zmm -// VRSQRT28PD zmm k zmm -// VRSQRT28PD zmm zmm -func VRSQRT28PD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PD.Forms(), sffxs{}, ops) -} - -// VRSQRT28PD_BCST: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRSQRT28PD.BCST m64 k zmm -// VRSQRT28PD.BCST m64 zmm -func VRSQRT28PD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PD.Forms(), sffxs{sffxBCST}, ops) -} - -// VRSQRT28PD_BCST_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PD.BCST.Z m64 k zmm -func VRSQRT28PD_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z}) -} - -// VRSQRT28PD_SAE: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28PD.SAE zmm k zmm -// VRSQRT28PD.SAE zmm zmm -func VRSQRT28PD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PD.Forms(), sffxs{sffxSAE}, ops) -} - -// VRSQRT28PD_SAE_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PD.SAE.Z zmm k zmm -func VRSQRT28PD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VRSQRT28PD_Z: Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28PD.Z m512 k zmm -// VRSQRT28PD.Z zmm k zmm -func VRSQRT28PD_Z(mz, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PD.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z}) -} - -// VRSQRT28PS: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28PS m512 k zmm -// VRSQRT28PS m512 zmm -// VRSQRT28PS zmm k zmm -// VRSQRT28PS zmm zmm -func VRSQRT28PS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PS.Forms(), sffxs{}, ops) -} - -// VRSQRT28PS_BCST: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast). -// -// Forms: -// -// VRSQRT28PS.BCST m32 k zmm -// VRSQRT28PS.BCST m32 zmm -func VRSQRT28PS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PS.Forms(), sffxs{sffxBCST}, ops) -} - -// VRSQRT28PS_BCST_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Broadcast, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PS.BCST.Z m32 k zmm -func VRSQRT28PS_BCST_Z(m, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, z}) -} - -// VRSQRT28PS_SAE: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28PS.SAE zmm k zmm -// VRSQRT28PS.SAE zmm zmm -func VRSQRT28PS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PS.Forms(), sffxs{sffxSAE}, ops) -} - -// VRSQRT28PS_SAE_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28PS.SAE.Z zmm k zmm -func VRSQRT28PS_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VRSQRT28PS_Z: Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28PS.Z m512 k zmm -// VRSQRT28PS.Z zmm k zmm -func VRSQRT28PS_Z(mz, k, z operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28PS.Forms(), sffxs{sffxZ}, []operand.Op{mz, k, z}) -} - -// VRSQRT28SD: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28SD m64 xmm k xmm -// VRSQRT28SD m64 xmm xmm -// VRSQRT28SD xmm xmm k xmm -// VRSQRT28SD xmm xmm xmm -func VRSQRT28SD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28SD.Forms(), sffxs{}, ops) -} - -// VRSQRT28SD_SAE: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28SD.SAE xmm xmm k xmm -// VRSQRT28SD.SAE xmm xmm xmm -func VRSQRT28SD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28SD.Forms(), sffxs{sffxSAE}, ops) -} - -// VRSQRT28SD_SAE_Z: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28SD.SAE.Z xmm xmm k xmm -func VRSQRT28SD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28SD.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VRSQRT28SD_Z: Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28SD.Z m64 xmm k xmm -// VRSQRT28SD.Z xmm xmm k xmm -func VRSQRT28SD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28SD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VRSQRT28SS: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error. -// -// Forms: -// -// VRSQRT28SS m32 xmm k xmm -// VRSQRT28SS m32 xmm xmm -// VRSQRT28SS xmm xmm k xmm -// VRSQRT28SS xmm xmm xmm -func VRSQRT28SS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28SS.Forms(), sffxs{}, ops) -} - -// VRSQRT28SS_SAE: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions). -// -// Forms: -// -// VRSQRT28SS.SAE xmm xmm k xmm -// VRSQRT28SS.SAE xmm xmm xmm -func VRSQRT28SS_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28SS.Forms(), sffxs{sffxSAE}, ops) -} - -// VRSQRT28SS_SAE_Z: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Suppress All Exceptions, Zeroing Masking). -// -// Forms: -// -// VRSQRT28SS.SAE.Z xmm xmm k xmm -func VRSQRT28SS_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28SS.Forms(), sffxs{sffxSAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VRSQRT28SS_Z: Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error (Zeroing Masking). -// -// Forms: -// -// VRSQRT28SS.Z m32 xmm k xmm -// VRSQRT28SS.Z xmm xmm k xmm -func VRSQRT28SS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRT28SS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VRSQRTPS: Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VRSQRTPS m128 xmm -// VRSQRTPS m256 ymm -// VRSQRTPS xmm xmm -// VRSQRTPS ymm ymm -func VRSQRTPS(mxy, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRTPS.Forms(), sffxs{}, []operand.Op{mxy, xy}) -} - -// VRSQRTSS: Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VRSQRTSS m32 xmm xmm -// VRSQRTSS xmm xmm xmm -func VRSQRTSS(mx, x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVRSQRTSS.Forms(), sffxs{}, []operand.Op{mx, x, x1}) -} - -// VSCALEFPD: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values. -// -// Forms: -// -// VSCALEFPD m128 xmm k xmm -// VSCALEFPD m128 xmm xmm -// VSCALEFPD m256 ymm k ymm -// VSCALEFPD m256 ymm ymm -// VSCALEFPD xmm xmm k xmm -// VSCALEFPD xmm xmm xmm -// VSCALEFPD ymm ymm k ymm -// VSCALEFPD ymm ymm ymm -// VSCALEFPD m512 zmm k zmm -// VSCALEFPD m512 zmm zmm -// VSCALEFPD zmm zmm k zmm -// VSCALEFPD zmm zmm zmm -func VSCALEFPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{}, ops) -} - -// VSCALEFPD_BCST: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSCALEFPD.BCST m64 xmm k xmm -// VSCALEFPD.BCST m64 xmm xmm -// VSCALEFPD.BCST m64 ymm k ymm -// VSCALEFPD.BCST m64 ymm ymm -// VSCALEFPD.BCST m64 zmm k zmm -// VSCALEFPD.BCST m64 zmm zmm -func VSCALEFPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VSCALEFPD_BCST_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.BCST.Z m64 xmm k xmm -// VSCALEFPD.BCST.Z m64 ymm k ymm -// VSCALEFPD.BCST.Z m64 zmm k zmm -func VSCALEFPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VSCALEFPD_RD_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFPD.RD_SAE zmm zmm k zmm -// VSCALEFPD.RD_SAE zmm zmm zmm -func VSCALEFPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSCALEFPD_RD_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RD_SAE.Z zmm zmm k zmm -func VSCALEFPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSCALEFPD_RN_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSCALEFPD.RN_SAE zmm zmm k zmm -// VSCALEFPD.RN_SAE zmm zmm zmm -func VSCALEFPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSCALEFPD_RN_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RN_SAE.Z zmm zmm k zmm -func VSCALEFPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSCALEFPD_RU_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFPD.RU_SAE zmm zmm k zmm -// VSCALEFPD.RU_SAE zmm zmm zmm -func VSCALEFPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSCALEFPD_RU_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RU_SAE.Z zmm zmm k zmm -func VSCALEFPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSCALEFPD_RZ_SAE: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSCALEFPD.RZ_SAE zmm zmm k zmm -// VSCALEFPD.RZ_SAE zmm zmm zmm -func VSCALEFPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSCALEFPD_RZ_SAE_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.RZ_SAE.Z zmm zmm k zmm -func VSCALEFPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSCALEFPD_Z: Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSCALEFPD.Z m128 xmm k xmm -// VSCALEFPD.Z m256 ymm k ymm -// VSCALEFPD.Z xmm xmm k xmm -// VSCALEFPD.Z ymm ymm k ymm -// VSCALEFPD.Z m512 zmm k zmm -// VSCALEFPD.Z zmm zmm k zmm -func VSCALEFPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VSCALEFPS: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values. -// -// Forms: -// -// VSCALEFPS m128 xmm k xmm -// VSCALEFPS m128 xmm xmm -// VSCALEFPS m256 ymm k ymm -// VSCALEFPS m256 ymm ymm -// VSCALEFPS xmm xmm k xmm -// VSCALEFPS xmm xmm xmm -// VSCALEFPS ymm ymm k ymm -// VSCALEFPS ymm ymm ymm -// VSCALEFPS m512 zmm k zmm -// VSCALEFPS m512 zmm zmm -// VSCALEFPS zmm zmm k zmm -// VSCALEFPS zmm zmm zmm -func VSCALEFPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{}, ops) -} - -// VSCALEFPS_BCST: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSCALEFPS.BCST m32 xmm k xmm -// VSCALEFPS.BCST m32 xmm xmm -// VSCALEFPS.BCST m32 ymm k ymm -// VSCALEFPS.BCST m32 ymm ymm -// VSCALEFPS.BCST m32 zmm k zmm -// VSCALEFPS.BCST m32 zmm zmm -func VSCALEFPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VSCALEFPS_BCST_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.BCST.Z m32 xmm k xmm -// VSCALEFPS.BCST.Z m32 ymm k ymm -// VSCALEFPS.BCST.Z m32 zmm k zmm -func VSCALEFPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VSCALEFPS_RD_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFPS.RD_SAE zmm zmm k zmm -// VSCALEFPS.RD_SAE zmm zmm zmm -func VSCALEFPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSCALEFPS_RD_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RD_SAE.Z zmm zmm k zmm -func VSCALEFPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSCALEFPS_RN_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSCALEFPS.RN_SAE zmm zmm k zmm -// VSCALEFPS.RN_SAE zmm zmm zmm -func VSCALEFPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSCALEFPS_RN_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RN_SAE.Z zmm zmm k zmm -func VSCALEFPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSCALEFPS_RU_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFPS.RU_SAE zmm zmm k zmm -// VSCALEFPS.RU_SAE zmm zmm zmm -func VSCALEFPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSCALEFPS_RU_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RU_SAE.Z zmm zmm k zmm -func VSCALEFPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSCALEFPS_RZ_SAE: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSCALEFPS.RZ_SAE zmm zmm k zmm -// VSCALEFPS.RZ_SAE zmm zmm zmm -func VSCALEFPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSCALEFPS_RZ_SAE_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.RZ_SAE.Z zmm zmm k zmm -func VSCALEFPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSCALEFPS_Z: Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSCALEFPS.Z m128 xmm k xmm -// VSCALEFPS.Z m256 ymm k ymm -// VSCALEFPS.Z xmm xmm k xmm -// VSCALEFPS.Z ymm ymm k ymm -// VSCALEFPS.Z m512 zmm k zmm -// VSCALEFPS.Z zmm zmm k zmm -func VSCALEFPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VSCALEFSD: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value. -// -// Forms: -// -// VSCALEFSD m64 xmm k xmm -// VSCALEFSD m64 xmm xmm -// VSCALEFSD xmm xmm k xmm -// VSCALEFSD xmm xmm xmm -func VSCALEFSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{}, ops) -} - -// VSCALEFSD_RD_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFSD.RD_SAE xmm xmm k xmm -// VSCALEFSD.RD_SAE xmm xmm xmm -func VSCALEFSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSCALEFSD_RD_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RD_SAE.Z xmm xmm k xmm -func VSCALEFSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSCALEFSD_RN_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSCALEFSD.RN_SAE xmm xmm k xmm -// VSCALEFSD.RN_SAE xmm xmm xmm -func VSCALEFSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSCALEFSD_RN_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RN_SAE.Z xmm xmm k xmm -func VSCALEFSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSCALEFSD_RU_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFSD.RU_SAE xmm xmm k xmm -// VSCALEFSD.RU_SAE xmm xmm xmm -func VSCALEFSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSCALEFSD_RU_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RU_SAE.Z xmm xmm k xmm -func VSCALEFSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSCALEFSD_RZ_SAE: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSCALEFSD.RZ_SAE xmm xmm k xmm -// VSCALEFSD.RZ_SAE xmm xmm xmm -func VSCALEFSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSCALEFSD_RZ_SAE_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.RZ_SAE.Z xmm xmm k xmm -func VSCALEFSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSCALEFSD_Z: Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSCALEFSD.Z m64 xmm k xmm -// VSCALEFSD.Z xmm xmm k xmm -func VSCALEFSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VSCALEFSS: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value. -// -// Forms: -// -// VSCALEFSS m32 xmm k xmm -// VSCALEFSS m32 xmm xmm -// VSCALEFSS xmm xmm k xmm -// VSCALEFSS xmm xmm xmm -func VSCALEFSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{}, ops) -} - -// VSCALEFSS_RD_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSCALEFSS.RD_SAE xmm xmm k xmm -// VSCALEFSS.RD_SAE xmm xmm xmm -func VSCALEFSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSCALEFSS_RD_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RD_SAE.Z xmm xmm k xmm -func VSCALEFSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSCALEFSS_RN_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSCALEFSS.RN_SAE xmm xmm k xmm -// VSCALEFSS.RN_SAE xmm xmm xmm -func VSCALEFSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSCALEFSS_RN_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RN_SAE.Z xmm xmm k xmm -func VSCALEFSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSCALEFSS_RU_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSCALEFSS.RU_SAE xmm xmm k xmm -// VSCALEFSS.RU_SAE xmm xmm xmm -func VSCALEFSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSCALEFSS_RU_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RU_SAE.Z xmm xmm k xmm -func VSCALEFSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSCALEFSS_RZ_SAE: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSCALEFSS.RZ_SAE xmm xmm k xmm -// VSCALEFSS.RZ_SAE xmm xmm xmm -func VSCALEFSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSCALEFSS_RZ_SAE_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.RZ_SAE.Z xmm xmm k xmm -func VSCALEFSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSCALEFSS_Z: Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSCALEFSS.Z m32 xmm k xmm -// VSCALEFSS.Z xmm xmm k xmm -func VSCALEFSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSCALEFSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VSCATTERDPD: Scatter Packed Double-Precision Floating-Point Values with Signed Doubleword Indices. -// -// Forms: -// -// VSCATTERDPD xmm k vm32x -// VSCATTERDPD ymm k vm32x -// VSCATTERDPD zmm k vm32y -func VSCATTERDPD(xyz, k, v operand.Op) (*intrep.Instruction, error) { - return build(opcVSCATTERDPD.Forms(), sffxs{}, []operand.Op{xyz, k, v}) -} - -// VSCATTERDPS: Scatter Packed Single-Precision Floating-Point Values with Signed Doubleword Indices. -// -// Forms: -// -// VSCATTERDPS xmm k vm32x -// VSCATTERDPS ymm k vm32y -// VSCATTERDPS zmm k vm32z -func VSCATTERDPS(xyz, k, v operand.Op) (*intrep.Instruction, error) { - return build(opcVSCATTERDPS.Forms(), sffxs{}, []operand.Op{xyz, k, v}) -} - -// VSCATTERQPD: Scatter Packed Double-Precision Floating-Point Values with Signed Quadword Indices. -// -// Forms: -// -// VSCATTERQPD xmm k vm64x -// VSCATTERQPD ymm k vm64y -// VSCATTERQPD zmm k vm64z -func VSCATTERQPD(xyz, k, v operand.Op) (*intrep.Instruction, error) { - return build(opcVSCATTERQPD.Forms(), sffxs{}, []operand.Op{xyz, k, v}) -} - -// VSCATTERQPS: Scatter Packed Single-Precision Floating-Point Values with Signed Quadword Indices. -// -// Forms: -// -// VSCATTERQPS xmm k vm64x -// VSCATTERQPS xmm k vm64y -// VSCATTERQPS ymm k vm64z -func VSCATTERQPS(xy, k, v operand.Op) (*intrep.Instruction, error) { - return build(opcVSCATTERQPS.Forms(), sffxs{}, []operand.Op{xy, k, v}) -} - -// VSHUFF32X4: Shuffle 128-Bit Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFF32X4 imm8 m256 ymm k ymm -// VSHUFF32X4 imm8 m256 ymm ymm -// VSHUFF32X4 imm8 ymm ymm k ymm -// VSHUFF32X4 imm8 ymm ymm ymm -// VSHUFF32X4 imm8 m512 zmm k zmm -// VSHUFF32X4 imm8 m512 zmm zmm -// VSHUFF32X4 imm8 zmm zmm k zmm -// VSHUFF32X4 imm8 zmm zmm zmm -func VSHUFF32X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFF32X4.Forms(), sffxs{}, ops) -} - -// VSHUFF32X4_BCST: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFF32X4.BCST imm8 m32 ymm k ymm -// VSHUFF32X4.BCST imm8 m32 ymm ymm -// VSHUFF32X4.BCST imm8 m32 zmm k zmm -// VSHUFF32X4.BCST imm8 m32 zmm zmm -func VSHUFF32X4_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFF32X4.Forms(), sffxs{sffxBCST}, ops) -} - -// VSHUFF32X4_BCST_Z: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFF32X4.BCST.Z imm8 m32 ymm k ymm -// VSHUFF32X4.BCST.Z imm8 m32 zmm k zmm -func VSHUFF32X4_BCST_Z(i, m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFF32X4.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, yz, k, yz1}) -} - -// VSHUFF32X4_Z: Shuffle 128-Bit Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFF32X4.Z imm8 m256 ymm k ymm -// VSHUFF32X4.Z imm8 ymm ymm k ymm -// VSHUFF32X4.Z imm8 m512 zmm k zmm -// VSHUFF32X4.Z imm8 zmm zmm k zmm -func VSHUFF32X4_Z(i, myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFF32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, myz, yz, k, yz1}) -} - -// VSHUFF64X2: Shuffle 128-Bit Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFF64X2 imm8 m256 ymm k ymm -// VSHUFF64X2 imm8 m256 ymm ymm -// VSHUFF64X2 imm8 ymm ymm k ymm -// VSHUFF64X2 imm8 ymm ymm ymm -// VSHUFF64X2 imm8 m512 zmm k zmm -// VSHUFF64X2 imm8 m512 zmm zmm -// VSHUFF64X2 imm8 zmm zmm k zmm -// VSHUFF64X2 imm8 zmm zmm zmm -func VSHUFF64X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFF64X2.Forms(), sffxs{}, ops) -} - -// VSHUFF64X2_BCST: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFF64X2.BCST imm8 m64 ymm k ymm -// VSHUFF64X2.BCST imm8 m64 ymm ymm -// VSHUFF64X2.BCST imm8 m64 zmm k zmm -// VSHUFF64X2.BCST imm8 m64 zmm zmm -func VSHUFF64X2_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFF64X2.Forms(), sffxs{sffxBCST}, ops) -} - -// VSHUFF64X2_BCST_Z: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFF64X2.BCST.Z imm8 m64 ymm k ymm -// VSHUFF64X2.BCST.Z imm8 m64 zmm k zmm -func VSHUFF64X2_BCST_Z(i, m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFF64X2.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, yz, k, yz1}) -} - -// VSHUFF64X2_Z: Shuffle 128-Bit Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFF64X2.Z imm8 m256 ymm k ymm -// VSHUFF64X2.Z imm8 ymm ymm k ymm -// VSHUFF64X2.Z imm8 m512 zmm k zmm -// VSHUFF64X2.Z imm8 zmm zmm k zmm -func VSHUFF64X2_Z(i, myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFF64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, myz, yz, k, yz1}) -} - -// VSHUFI32X4: Shuffle 128-Bit Packed Doubleword Integer Values. -// -// Forms: -// -// VSHUFI32X4 imm8 m256 ymm k ymm -// VSHUFI32X4 imm8 m256 ymm ymm -// VSHUFI32X4 imm8 ymm ymm k ymm -// VSHUFI32X4 imm8 ymm ymm ymm -// VSHUFI32X4 imm8 m512 zmm k zmm -// VSHUFI32X4 imm8 m512 zmm zmm -// VSHUFI32X4 imm8 zmm zmm k zmm -// VSHUFI32X4 imm8 zmm zmm zmm -func VSHUFI32X4(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFI32X4.Forms(), sffxs{}, ops) -} - -// VSHUFI32X4_BCST: Shuffle 128-Bit Packed Doubleword Integer Values (Broadcast). -// -// Forms: -// -// VSHUFI32X4.BCST imm8 m32 ymm k ymm -// VSHUFI32X4.BCST imm8 m32 ymm ymm -// VSHUFI32X4.BCST imm8 m32 zmm k zmm -// VSHUFI32X4.BCST imm8 m32 zmm zmm -func VSHUFI32X4_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFI32X4.Forms(), sffxs{sffxBCST}, ops) -} - -// VSHUFI32X4_BCST_Z: Shuffle 128-Bit Packed Doubleword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFI32X4.BCST.Z imm8 m32 ymm k ymm -// VSHUFI32X4.BCST.Z imm8 m32 zmm k zmm -func VSHUFI32X4_BCST_Z(i, m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFI32X4.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, yz, k, yz1}) -} - -// VSHUFI32X4_Z: Shuffle 128-Bit Packed Doubleword Integer Values (Zeroing Masking). -// -// Forms: -// -// VSHUFI32X4.Z imm8 m256 ymm k ymm -// VSHUFI32X4.Z imm8 ymm ymm k ymm -// VSHUFI32X4.Z imm8 m512 zmm k zmm -// VSHUFI32X4.Z imm8 zmm zmm k zmm -func VSHUFI32X4_Z(i, myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFI32X4.Forms(), sffxs{sffxZ}, []operand.Op{i, myz, yz, k, yz1}) -} - -// VSHUFI64X2: Shuffle 128-Bit Packed Quadword Integer Values. -// -// Forms: -// -// VSHUFI64X2 imm8 m256 ymm k ymm -// VSHUFI64X2 imm8 m256 ymm ymm -// VSHUFI64X2 imm8 ymm ymm k ymm -// VSHUFI64X2 imm8 ymm ymm ymm -// VSHUFI64X2 imm8 m512 zmm k zmm -// VSHUFI64X2 imm8 m512 zmm zmm -// VSHUFI64X2 imm8 zmm zmm k zmm -// VSHUFI64X2 imm8 zmm zmm zmm -func VSHUFI64X2(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFI64X2.Forms(), sffxs{}, ops) -} - -// VSHUFI64X2_BCST: Shuffle 128-Bit Packed Quadword Integer Values (Broadcast). -// -// Forms: -// -// VSHUFI64X2.BCST imm8 m64 ymm k ymm -// VSHUFI64X2.BCST imm8 m64 ymm ymm -// VSHUFI64X2.BCST imm8 m64 zmm k zmm -// VSHUFI64X2.BCST imm8 m64 zmm zmm -func VSHUFI64X2_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFI64X2.Forms(), sffxs{sffxBCST}, ops) -} - -// VSHUFI64X2_BCST_Z: Shuffle 128-Bit Packed Quadword Integer Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFI64X2.BCST.Z imm8 m64 ymm k ymm -// VSHUFI64X2.BCST.Z imm8 m64 zmm k zmm -func VSHUFI64X2_BCST_Z(i, m, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFI64X2.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, yz, k, yz1}) -} - -// VSHUFI64X2_Z: Shuffle 128-Bit Packed Quadword Integer Values (Zeroing Masking). -// -// Forms: -// -// VSHUFI64X2.Z imm8 m256 ymm k ymm -// VSHUFI64X2.Z imm8 ymm ymm k ymm -// VSHUFI64X2.Z imm8 m512 zmm k zmm -// VSHUFI64X2.Z imm8 zmm zmm k zmm -func VSHUFI64X2_Z(i, myz, yz, k, yz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFI64X2.Forms(), sffxs{sffxZ}, []operand.Op{i, myz, yz, k, yz1}) -} - -// VSHUFPD: Shuffle Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFPD imm8 m128 xmm xmm -// VSHUFPD imm8 m256 ymm ymm -// VSHUFPD imm8 xmm xmm xmm -// VSHUFPD imm8 ymm ymm ymm -// VSHUFPD imm8 m128 xmm k xmm -// VSHUFPD imm8 m256 ymm k ymm -// VSHUFPD imm8 xmm xmm k xmm -// VSHUFPD imm8 ymm ymm k ymm -// VSHUFPD imm8 m512 zmm k zmm -// VSHUFPD imm8 m512 zmm zmm -// VSHUFPD imm8 zmm zmm k zmm -// VSHUFPD imm8 zmm zmm zmm -func VSHUFPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFPD.Forms(), sffxs{}, ops) -} - -// VSHUFPD_BCST: Shuffle Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFPD.BCST imm8 m64 xmm k xmm -// VSHUFPD.BCST imm8 m64 xmm xmm -// VSHUFPD.BCST imm8 m64 ymm k ymm -// VSHUFPD.BCST imm8 m64 ymm ymm -// VSHUFPD.BCST imm8 m64 zmm k zmm -// VSHUFPD.BCST imm8 m64 zmm zmm -func VSHUFPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VSHUFPD_BCST_Z: Shuffle Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFPD.BCST.Z imm8 m64 xmm k xmm -// VSHUFPD.BCST.Z imm8 m64 ymm k ymm -// VSHUFPD.BCST.Z imm8 m64 zmm k zmm -func VSHUFPD_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VSHUFPD_Z: Shuffle Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFPD.Z imm8 m128 xmm k xmm -// VSHUFPD.Z imm8 m256 ymm k ymm -// VSHUFPD.Z imm8 xmm xmm k xmm -// VSHUFPD.Z imm8 ymm ymm k ymm -// VSHUFPD.Z imm8 m512 zmm k zmm -// VSHUFPD.Z imm8 zmm zmm k zmm -func VSHUFPD_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFPD.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VSHUFPS: Shuffle Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSHUFPS imm8 m128 xmm xmm -// VSHUFPS imm8 m256 ymm ymm -// VSHUFPS imm8 xmm xmm xmm -// VSHUFPS imm8 ymm ymm ymm -// VSHUFPS imm8 m128 xmm k xmm -// VSHUFPS imm8 m256 ymm k ymm -// VSHUFPS imm8 xmm xmm k xmm -// VSHUFPS imm8 ymm ymm k ymm -// VSHUFPS imm8 m512 zmm k zmm -// VSHUFPS imm8 m512 zmm zmm -// VSHUFPS imm8 zmm zmm k zmm -// VSHUFPS imm8 zmm zmm zmm -func VSHUFPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFPS.Forms(), sffxs{}, ops) -} - -// VSHUFPS_BCST: Shuffle Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSHUFPS.BCST imm8 m32 xmm k xmm -// VSHUFPS.BCST imm8 m32 xmm xmm -// VSHUFPS.BCST imm8 m32 ymm k ymm -// VSHUFPS.BCST imm8 m32 ymm ymm -// VSHUFPS.BCST imm8 m32 zmm k zmm -// VSHUFPS.BCST imm8 m32 zmm zmm -func VSHUFPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VSHUFPS_BCST_Z: Shuffle Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSHUFPS.BCST.Z imm8 m32 xmm k xmm -// VSHUFPS.BCST.Z imm8 m32 ymm k ymm -// VSHUFPS.BCST.Z imm8 m32 zmm k zmm -func VSHUFPS_BCST_Z(i, m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{i, m, xyz, k, xyz1}) -} - -// VSHUFPS_Z: Shuffle Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSHUFPS.Z imm8 m128 xmm k xmm -// VSHUFPS.Z imm8 m256 ymm k ymm -// VSHUFPS.Z imm8 xmm xmm k xmm -// VSHUFPS.Z imm8 ymm ymm k ymm -// VSHUFPS.Z imm8 m512 zmm k zmm -// VSHUFPS.Z imm8 zmm zmm k zmm -func VSHUFPS_Z(i, mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSHUFPS.Forms(), sffxs{sffxZ}, []operand.Op{i, mxyz, xyz, k, xyz1}) -} - -// VSQRTPD: Compute Square Roots of Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSQRTPD m128 xmm -// VSQRTPD m256 ymm -// VSQRTPD xmm xmm -// VSQRTPD ymm ymm -// VSQRTPD m128 k xmm -// VSQRTPD m256 k ymm -// VSQRTPD xmm k xmm -// VSQRTPD ymm k ymm -// VSQRTPD m512 k zmm -// VSQRTPD m512 zmm -// VSQRTPD zmm k zmm -// VSQRTPD zmm zmm -func VSQRTPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{}, ops) -} - -// VSQRTPD_BCST: Compute Square Roots of Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSQRTPD.BCST m32 k xmm -// VSQRTPD.BCST m32 k ymm -// VSQRTPD.BCST m32 xmm -// VSQRTPD.BCST m32 ymm -// VSQRTPD.BCST m64 k zmm -// VSQRTPD.BCST m64 zmm -func VSQRTPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VSQRTPD_BCST_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.BCST.Z m32 k xmm -// VSQRTPD.BCST.Z m32 k ymm -// VSQRTPD.BCST.Z m64 k zmm -func VSQRTPD_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VSQRTPD_RD_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTPD.RD_SAE zmm k zmm -// VSQRTPD.RD_SAE zmm zmm -func VSQRTPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSQRTPD_RD_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RD_SAE.Z zmm k zmm -func VSQRTPD_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VSQRTPD_RN_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSQRTPD.RN_SAE zmm k zmm -// VSQRTPD.RN_SAE zmm zmm -func VSQRTPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSQRTPD_RN_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RN_SAE.Z zmm k zmm -func VSQRTPD_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VSQRTPD_RU_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTPD.RU_SAE zmm k zmm -// VSQRTPD.RU_SAE zmm zmm -func VSQRTPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSQRTPD_RU_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RU_SAE.Z zmm k zmm -func VSQRTPD_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VSQRTPD_RZ_SAE: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSQRTPD.RZ_SAE zmm k zmm -// VSQRTPD.RZ_SAE zmm zmm -func VSQRTPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSQRTPD_RZ_SAE_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTPD.RZ_SAE.Z zmm k zmm -func VSQRTPD_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VSQRTPD_Z: Compute Square Roots of Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSQRTPD.Z m128 k xmm -// VSQRTPD.Z m256 k ymm -// VSQRTPD.Z xmm k xmm -// VSQRTPD.Z ymm k ymm -// VSQRTPD.Z m512 k zmm -// VSQRTPD.Z zmm k zmm -func VSQRTPD_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VSQRTPS: Compute Square Roots of Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSQRTPS m128 xmm -// VSQRTPS m256 ymm -// VSQRTPS xmm xmm -// VSQRTPS ymm ymm -// VSQRTPS m128 k xmm -// VSQRTPS m256 k ymm -// VSQRTPS xmm k xmm -// VSQRTPS ymm k ymm -// VSQRTPS m512 k zmm -// VSQRTPS m512 zmm -// VSQRTPS zmm k zmm -// VSQRTPS zmm zmm -func VSQRTPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{}, ops) -} - -// VSQRTPS_BCST: Compute Square Roots of Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSQRTPS.BCST m32 k xmm -// VSQRTPS.BCST m32 k ymm -// VSQRTPS.BCST m32 xmm -// VSQRTPS.BCST m32 ymm -// VSQRTPS.BCST m32 k zmm -// VSQRTPS.BCST m32 zmm -func VSQRTPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VSQRTPS_BCST_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.BCST.Z m32 k xmm -// VSQRTPS.BCST.Z m32 k ymm -// VSQRTPS.BCST.Z m32 k zmm -func VSQRTPS_BCST_Z(m, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, k, xyz}) -} - -// VSQRTPS_RD_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTPS.RD_SAE zmm k zmm -// VSQRTPS.RD_SAE zmm zmm -func VSQRTPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSQRTPS_RD_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RD_SAE.Z zmm k zmm -func VSQRTPS_RD_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VSQRTPS_RN_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSQRTPS.RN_SAE zmm k zmm -// VSQRTPS.RN_SAE zmm zmm -func VSQRTPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSQRTPS_RN_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RN_SAE.Z zmm k zmm -func VSQRTPS_RN_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VSQRTPS_RU_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTPS.RU_SAE zmm k zmm -// VSQRTPS.RU_SAE zmm zmm -func VSQRTPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSQRTPS_RU_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RU_SAE.Z zmm k zmm -func VSQRTPS_RU_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VSQRTPS_RZ_SAE: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSQRTPS.RZ_SAE zmm k zmm -// VSQRTPS.RZ_SAE zmm zmm -func VSQRTPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSQRTPS_RZ_SAE_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTPS.RZ_SAE.Z zmm k zmm -func VSQRTPS_RZ_SAE_Z(z, k, z1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, k, z1}) -} - -// VSQRTPS_Z: Compute Square Roots of Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSQRTPS.Z m128 k xmm -// VSQRTPS.Z m256 k ymm -// VSQRTPS.Z xmm k xmm -// VSQRTPS.Z ymm k ymm -// VSQRTPS.Z m512 k zmm -// VSQRTPS.Z zmm k zmm -func VSQRTPS_Z(mxyz, k, xyz operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, k, xyz}) -} - -// VSQRTSD: Compute Square Root of Scalar Double-Precision Floating-Point Value. -// -// Forms: -// -// VSQRTSD m64 xmm xmm -// VSQRTSD xmm xmm xmm -// VSQRTSD m64 xmm k xmm -// VSQRTSD xmm xmm k xmm -func VSQRTSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{}, ops) -} - -// VSQRTSD_RD_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTSD.RD_SAE xmm xmm k xmm -// VSQRTSD.RD_SAE xmm xmm xmm -func VSQRTSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSQRTSD_RD_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RD_SAE.Z xmm xmm k xmm -func VSQRTSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSQRTSD_RN_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSQRTSD.RN_SAE xmm xmm k xmm -// VSQRTSD.RN_SAE xmm xmm xmm -func VSQRTSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSQRTSD_RN_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RN_SAE.Z xmm xmm k xmm -func VSQRTSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSQRTSD_RU_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTSD.RU_SAE xmm xmm k xmm -// VSQRTSD.RU_SAE xmm xmm xmm -func VSQRTSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSQRTSD_RU_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RU_SAE.Z xmm xmm k xmm -func VSQRTSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSQRTSD_RZ_SAE: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSQRTSD.RZ_SAE xmm xmm k xmm -// VSQRTSD.RZ_SAE xmm xmm xmm -func VSQRTSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSQRTSD_RZ_SAE_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTSD.RZ_SAE.Z xmm xmm k xmm -func VSQRTSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSQRTSD_Z: Compute Square Root of Scalar Double-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSQRTSD.Z m64 xmm k xmm -// VSQRTSD.Z xmm xmm k xmm -func VSQRTSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VSQRTSS: Compute Square Root of Scalar Single-Precision Floating-Point Value. -// -// Forms: -// -// VSQRTSS m32 xmm xmm -// VSQRTSS xmm xmm xmm -// VSQRTSS m32 xmm k xmm -// VSQRTSS xmm xmm k xmm -func VSQRTSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{}, ops) -} - -// VSQRTSS_RD_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity). -// -// Forms: -// -// VSQRTSS.RD_SAE xmm xmm k xmm -// VSQRTSS.RD_SAE xmm xmm xmm -func VSQRTSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSQRTSS_RD_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RD_SAE.Z xmm xmm k xmm -func VSQRTSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSQRTSS_RN_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Nearest). -// -// Forms: -// -// VSQRTSS.RN_SAE xmm xmm k xmm -// VSQRTSS.RN_SAE xmm xmm xmm -func VSQRTSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSQRTSS_RN_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RN_SAE.Z xmm xmm k xmm -func VSQRTSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSQRTSS_RU_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity). -// -// Forms: -// -// VSQRTSS.RU_SAE xmm xmm k xmm -// VSQRTSS.RU_SAE xmm xmm xmm -func VSQRTSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSQRTSS_RU_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RU_SAE.Z xmm xmm k xmm -func VSQRTSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSQRTSS_RZ_SAE: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Zero). -// -// Forms: -// -// VSQRTSS.RZ_SAE xmm xmm k xmm -// VSQRTSS.RZ_SAE xmm xmm xmm -func VSQRTSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSQRTSS_RZ_SAE_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSQRTSS.RZ_SAE.Z xmm xmm k xmm -func VSQRTSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSQRTSS_Z: Compute Square Root of Scalar Single-Precision Floating-Point Value (Zeroing Masking). -// -// Forms: -// -// VSQRTSS.Z m32 xmm k xmm -// VSQRTSS.Z xmm xmm k xmm -func VSQRTSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSQRTSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VSTMXCSR: Store MXCSR Register State. -// -// Forms: -// -// VSTMXCSR m32 -func VSTMXCSR(m operand.Op) (*intrep.Instruction, error) { - return build(opcVSTMXCSR.Forms(), sffxs{}, []operand.Op{m}) -} - -// VSUBPD: Subtract Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VSUBPD m128 xmm xmm -// VSUBPD m256 ymm ymm -// VSUBPD xmm xmm xmm -// VSUBPD ymm ymm ymm -// VSUBPD m128 xmm k xmm -// VSUBPD m256 ymm k ymm -// VSUBPD xmm xmm k xmm -// VSUBPD ymm ymm k ymm -// VSUBPD m512 zmm k zmm -// VSUBPD m512 zmm zmm -// VSUBPD zmm zmm k zmm -// VSUBPD zmm zmm zmm -func VSUBPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{}, ops) -} - -// VSUBPD_BCST: Subtract Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSUBPD.BCST m64 xmm k xmm -// VSUBPD.BCST m64 xmm xmm -// VSUBPD.BCST m64 ymm k ymm -// VSUBPD.BCST m64 ymm ymm -// VSUBPD.BCST m64 zmm k zmm -// VSUBPD.BCST m64 zmm zmm -func VSUBPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VSUBPD_BCST_Z: Subtract Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSUBPD.BCST.Z m64 xmm k xmm -// VSUBPD.BCST.Z m64 ymm k ymm -// VSUBPD.BCST.Z m64 zmm k zmm -func VSUBPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VSUBPD_RD_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBPD.RD_SAE zmm zmm k zmm -// VSUBPD.RD_SAE zmm zmm zmm -func VSUBPD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSUBPD_RD_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RD_SAE.Z zmm zmm k zmm -func VSUBPD_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSUBPD_RN_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBPD.RN_SAE zmm zmm k zmm -// VSUBPD.RN_SAE zmm zmm zmm -func VSUBPD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSUBPD_RN_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RN_SAE.Z zmm zmm k zmm -func VSUBPD_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSUBPD_RU_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBPD.RU_SAE zmm zmm k zmm -// VSUBPD.RU_SAE zmm zmm zmm -func VSUBPD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSUBPD_RU_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RU_SAE.Z zmm zmm k zmm -func VSUBPD_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSUBPD_RZ_SAE: Subtract Packed Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBPD.RZ_SAE zmm zmm k zmm -// VSUBPD.RZ_SAE zmm zmm zmm -func VSUBPD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSUBPD_RZ_SAE_Z: Subtract Packed Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBPD.RZ_SAE.Z zmm zmm k zmm -func VSUBPD_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSUBPD_Z: Subtract Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBPD.Z m128 xmm k xmm -// VSUBPD.Z m256 ymm k ymm -// VSUBPD.Z xmm xmm k xmm -// VSUBPD.Z ymm ymm k ymm -// VSUBPD.Z m512 zmm k zmm -// VSUBPD.Z zmm zmm k zmm -func VSUBPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VSUBPS: Subtract Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VSUBPS m128 xmm xmm -// VSUBPS m256 ymm ymm -// VSUBPS xmm xmm xmm -// VSUBPS ymm ymm ymm -// VSUBPS m128 xmm k xmm -// VSUBPS m256 ymm k ymm -// VSUBPS xmm xmm k xmm -// VSUBPS ymm ymm k ymm -// VSUBPS m512 zmm k zmm -// VSUBPS m512 zmm zmm -// VSUBPS zmm zmm k zmm -// VSUBPS zmm zmm zmm -func VSUBPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{}, ops) -} - -// VSUBPS_BCST: Subtract Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VSUBPS.BCST m32 xmm k xmm -// VSUBPS.BCST m32 xmm xmm -// VSUBPS.BCST m32 ymm k ymm -// VSUBPS.BCST m32 ymm ymm -// VSUBPS.BCST m32 zmm k zmm -// VSUBPS.BCST m32 zmm zmm -func VSUBPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VSUBPS_BCST_Z: Subtract Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VSUBPS.BCST.Z m32 xmm k xmm -// VSUBPS.BCST.Z m32 ymm k ymm -// VSUBPS.BCST.Z m32 zmm k zmm -func VSUBPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VSUBPS_RD_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBPS.RD_SAE zmm zmm k zmm -// VSUBPS.RD_SAE zmm zmm zmm -func VSUBPS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSUBPS_RD_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RD_SAE.Z zmm zmm k zmm -func VSUBPS_RD_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSUBPS_RN_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBPS.RN_SAE zmm zmm k zmm -// VSUBPS.RN_SAE zmm zmm zmm -func VSUBPS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSUBPS_RN_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RN_SAE.Z zmm zmm k zmm -func VSUBPS_RN_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSUBPS_RU_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBPS.RU_SAE zmm zmm k zmm -// VSUBPS.RU_SAE zmm zmm zmm -func VSUBPS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSUBPS_RU_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RU_SAE.Z zmm zmm k zmm -func VSUBPS_RU_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSUBPS_RZ_SAE: Subtract Packed Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBPS.RZ_SAE zmm zmm k zmm -// VSUBPS.RZ_SAE zmm zmm zmm -func VSUBPS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSUBPS_RZ_SAE_Z: Subtract Packed Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBPS.RZ_SAE.Z zmm zmm k zmm -func VSUBPS_RZ_SAE_Z(z, z1, k, z2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{z, z1, k, z2}) -} - -// VSUBPS_Z: Subtract Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBPS.Z m128 xmm k xmm -// VSUBPS.Z m256 ymm k ymm -// VSUBPS.Z xmm xmm k xmm -// VSUBPS.Z ymm ymm k ymm -// VSUBPS.Z m512 zmm k zmm -// VSUBPS.Z zmm zmm k zmm -func VSUBPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VSUBSD: Subtract Scalar Double-Precision Floating-Point Values. -// -// Forms: -// -// VSUBSD m64 xmm xmm -// VSUBSD xmm xmm xmm -// VSUBSD m64 xmm k xmm -// VSUBSD xmm xmm k xmm -func VSUBSD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{}, ops) -} - -// VSUBSD_RD_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBSD.RD_SAE xmm xmm k xmm -// VSUBSD.RD_SAE xmm xmm xmm -func VSUBSD_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSUBSD_RD_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RD_SAE.Z xmm xmm k xmm -func VSUBSD_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSUBSD_RN_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBSD.RN_SAE xmm xmm k xmm -// VSUBSD.RN_SAE xmm xmm xmm -func VSUBSD_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSUBSD_RN_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RN_SAE.Z xmm xmm k xmm -func VSUBSD_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSUBSD_RU_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBSD.RU_SAE xmm xmm k xmm -// VSUBSD.RU_SAE xmm xmm xmm -func VSUBSD_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSUBSD_RU_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RU_SAE.Z xmm xmm k xmm -func VSUBSD_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSUBSD_RZ_SAE: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBSD.RZ_SAE xmm xmm k xmm -// VSUBSD.RZ_SAE xmm xmm xmm -func VSUBSD_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSUBSD_RZ_SAE_Z: Subtract Scalar Double-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBSD.RZ_SAE.Z xmm xmm k xmm -func VSUBSD_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSUBSD_Z: Subtract Scalar Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBSD.Z m64 xmm k xmm -// VSUBSD.Z xmm xmm k xmm -func VSUBSD_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSD.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VSUBSS: Subtract Scalar Single-Precision Floating-Point Values. -// -// Forms: -// -// VSUBSS m32 xmm xmm -// VSUBSS xmm xmm xmm -// VSUBSS m32 xmm k xmm -// VSUBSS xmm xmm k xmm -func VSUBSS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{}, ops) -} - -// VSUBSS_RD_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity). -// -// Forms: -// -// VSUBSS.RD_SAE xmm xmm k xmm -// VSUBSS.RD_SAE xmm xmm xmm -func VSUBSS_RD_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{sffxRD_SAE}, ops) -} - -// VSUBSS_RD_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Negative Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RD_SAE.Z xmm xmm k xmm -func VSUBSS_RD_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{sffxRD_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSUBSS_RN_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Nearest). -// -// Forms: -// -// VSUBSS.RN_SAE xmm xmm k xmm -// VSUBSS.RN_SAE xmm xmm xmm -func VSUBSS_RN_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{sffxRN_SAE}, ops) -} - -// VSUBSS_RN_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Nearest, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RN_SAE.Z xmm xmm k xmm -func VSUBSS_RN_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{sffxRN_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSUBSS_RU_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity). -// -// Forms: -// -// VSUBSS.RU_SAE xmm xmm k xmm -// VSUBSS.RU_SAE xmm xmm xmm -func VSUBSS_RU_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{sffxRU_SAE}, ops) -} - -// VSUBSS_RU_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Positive Infinity, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RU_SAE.Z xmm xmm k xmm -func VSUBSS_RU_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{sffxRU_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSUBSS_RZ_SAE: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Zero). -// -// Forms: -// -// VSUBSS.RZ_SAE xmm xmm k xmm -// VSUBSS.RZ_SAE xmm xmm xmm -func VSUBSS_RZ_SAE(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{sffxRZ_SAE}, ops) -} - -// VSUBSS_RZ_SAE_Z: Subtract Scalar Single-Precision Floating-Point Values (Round Towards Zero, Zeroing Masking). -// -// Forms: -// -// VSUBSS.RZ_SAE.Z xmm xmm k xmm -func VSUBSS_RZ_SAE_Z(x, x1, k, x2 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{sffxRZ_SAE, sffxZ}, []operand.Op{x, x1, k, x2}) -} - -// VSUBSS_Z: Subtract Scalar Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VSUBSS.Z m32 xmm k xmm -// VSUBSS.Z xmm xmm k xmm -func VSUBSS_Z(mx, x, k, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVSUBSS.Forms(), sffxs{sffxZ}, []operand.Op{mx, x, k, x1}) -} - -// VTESTPD: Packed Double-Precision Floating-Point Bit Test. -// -// Forms: -// -// VTESTPD m128 xmm -// VTESTPD m256 ymm -// VTESTPD xmm xmm -// VTESTPD ymm ymm -func VTESTPD(mxy, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVTESTPD.Forms(), sffxs{}, []operand.Op{mxy, xy}) -} - -// VTESTPS: Packed Single-Precision Floating-Point Bit Test. -// -// Forms: -// -// VTESTPS m128 xmm -// VTESTPS m256 ymm -// VTESTPS xmm xmm -// VTESTPS ymm ymm -func VTESTPS(mxy, xy operand.Op) (*intrep.Instruction, error) { - return build(opcVTESTPS.Forms(), sffxs{}, []operand.Op{mxy, xy}) -} - -// VUCOMISD: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VUCOMISD m64 xmm -// VUCOMISD xmm xmm -func VUCOMISD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVUCOMISD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// VUCOMISD_SAE: Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VUCOMISD.SAE xmm xmm -func VUCOMISD_SAE(x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUCOMISD.Forms(), sffxs{sffxSAE}, []operand.Op{x, x1}) -} - -// VUCOMISS: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS. -// -// Forms: -// -// VUCOMISS m32 xmm -// VUCOMISS xmm xmm -func VUCOMISS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcVUCOMISS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// VUCOMISS_SAE: Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS (Suppress All Exceptions). -// -// Forms: -// -// VUCOMISS.SAE xmm xmm -func VUCOMISS_SAE(x, x1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUCOMISS.Forms(), sffxs{sffxSAE}, []operand.Op{x, x1}) -} - -// VUNPCKHPD: Unpack and Interleave High Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKHPD m128 xmm xmm -// VUNPCKHPD m256 ymm ymm -// VUNPCKHPD xmm xmm xmm -// VUNPCKHPD ymm ymm ymm -// VUNPCKHPD m128 xmm k xmm -// VUNPCKHPD m256 ymm k ymm -// VUNPCKHPD xmm xmm k xmm -// VUNPCKHPD ymm ymm k ymm -// VUNPCKHPD m512 zmm k zmm -// VUNPCKHPD m512 zmm zmm -// VUNPCKHPD zmm zmm k zmm -// VUNPCKHPD zmm zmm zmm -func VUNPCKHPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKHPD.Forms(), sffxs{}, ops) -} - -// VUNPCKHPD_BCST: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKHPD.BCST m64 xmm k xmm -// VUNPCKHPD.BCST m64 xmm xmm -// VUNPCKHPD.BCST m64 ymm k ymm -// VUNPCKHPD.BCST m64 ymm ymm -// VUNPCKHPD.BCST m64 zmm k zmm -// VUNPCKHPD.BCST m64 zmm zmm -func VUNPCKHPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKHPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VUNPCKHPD_BCST_Z: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKHPD.BCST.Z m64 xmm k xmm -// VUNPCKHPD.BCST.Z m64 ymm k ymm -// VUNPCKHPD.BCST.Z m64 zmm k zmm -func VUNPCKHPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKHPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VUNPCKHPD_Z: Unpack and Interleave High Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKHPD.Z m128 xmm k xmm -// VUNPCKHPD.Z m256 ymm k ymm -// VUNPCKHPD.Z xmm xmm k xmm -// VUNPCKHPD.Z ymm ymm k ymm -// VUNPCKHPD.Z m512 zmm k zmm -// VUNPCKHPD.Z zmm zmm k zmm -func VUNPCKHPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKHPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VUNPCKHPS: Unpack and Interleave High Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKHPS m128 xmm xmm -// VUNPCKHPS m256 ymm ymm -// VUNPCKHPS xmm xmm xmm -// VUNPCKHPS ymm ymm ymm -// VUNPCKHPS m128 xmm k xmm -// VUNPCKHPS m256 ymm k ymm -// VUNPCKHPS xmm xmm k xmm -// VUNPCKHPS ymm ymm k ymm -// VUNPCKHPS m512 zmm k zmm -// VUNPCKHPS m512 zmm zmm -// VUNPCKHPS zmm zmm k zmm -// VUNPCKHPS zmm zmm zmm -func VUNPCKHPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKHPS.Forms(), sffxs{}, ops) -} - -// VUNPCKHPS_BCST: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKHPS.BCST m32 xmm k xmm -// VUNPCKHPS.BCST m32 xmm xmm -// VUNPCKHPS.BCST m32 ymm k ymm -// VUNPCKHPS.BCST m32 ymm ymm -// VUNPCKHPS.BCST m32 zmm k zmm -// VUNPCKHPS.BCST m32 zmm zmm -func VUNPCKHPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKHPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VUNPCKHPS_BCST_Z: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKHPS.BCST.Z m32 xmm k xmm -// VUNPCKHPS.BCST.Z m32 ymm k ymm -// VUNPCKHPS.BCST.Z m32 zmm k zmm -func VUNPCKHPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKHPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VUNPCKHPS_Z: Unpack and Interleave High Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKHPS.Z m128 xmm k xmm -// VUNPCKHPS.Z m256 ymm k ymm -// VUNPCKHPS.Z xmm xmm k xmm -// VUNPCKHPS.Z ymm ymm k ymm -// VUNPCKHPS.Z m512 zmm k zmm -// VUNPCKHPS.Z zmm zmm k zmm -func VUNPCKHPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKHPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VUNPCKLPD: Unpack and Interleave Low Packed Double-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKLPD m128 xmm xmm -// VUNPCKLPD m256 ymm ymm -// VUNPCKLPD xmm xmm xmm -// VUNPCKLPD ymm ymm ymm -// VUNPCKLPD m128 xmm k xmm -// VUNPCKLPD m256 ymm k ymm -// VUNPCKLPD xmm xmm k xmm -// VUNPCKLPD ymm ymm k ymm -// VUNPCKLPD m512 zmm k zmm -// VUNPCKLPD m512 zmm zmm -// VUNPCKLPD zmm zmm k zmm -// VUNPCKLPD zmm zmm zmm -func VUNPCKLPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKLPD.Forms(), sffxs{}, ops) -} - -// VUNPCKLPD_BCST: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKLPD.BCST m64 xmm k xmm -// VUNPCKLPD.BCST m64 xmm xmm -// VUNPCKLPD.BCST m64 ymm k ymm -// VUNPCKLPD.BCST m64 ymm ymm -// VUNPCKLPD.BCST m64 zmm k zmm -// VUNPCKLPD.BCST m64 zmm zmm -func VUNPCKLPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKLPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VUNPCKLPD_BCST_Z: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKLPD.BCST.Z m64 xmm k xmm -// VUNPCKLPD.BCST.Z m64 ymm k ymm -// VUNPCKLPD.BCST.Z m64 zmm k zmm -func VUNPCKLPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKLPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VUNPCKLPD_Z: Unpack and Interleave Low Packed Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKLPD.Z m128 xmm k xmm -// VUNPCKLPD.Z m256 ymm k ymm -// VUNPCKLPD.Z xmm xmm k xmm -// VUNPCKLPD.Z ymm ymm k ymm -// VUNPCKLPD.Z m512 zmm k zmm -// VUNPCKLPD.Z zmm zmm k zmm -func VUNPCKLPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKLPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VUNPCKLPS: Unpack and Interleave Low Packed Single-Precision Floating-Point Values. -// -// Forms: -// -// VUNPCKLPS m128 xmm xmm -// VUNPCKLPS m256 ymm ymm -// VUNPCKLPS xmm xmm xmm -// VUNPCKLPS ymm ymm ymm -// VUNPCKLPS m128 xmm k xmm -// VUNPCKLPS m256 ymm k ymm -// VUNPCKLPS xmm xmm k xmm -// VUNPCKLPS ymm ymm k ymm -// VUNPCKLPS m512 zmm k zmm -// VUNPCKLPS m512 zmm zmm -// VUNPCKLPS zmm zmm k zmm -// VUNPCKLPS zmm zmm zmm -func VUNPCKLPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKLPS.Forms(), sffxs{}, ops) -} - -// VUNPCKLPS_BCST: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VUNPCKLPS.BCST m32 xmm k xmm -// VUNPCKLPS.BCST m32 xmm xmm -// VUNPCKLPS.BCST m32 ymm k ymm -// VUNPCKLPS.BCST m32 ymm ymm -// VUNPCKLPS.BCST m32 zmm k zmm -// VUNPCKLPS.BCST m32 zmm zmm -func VUNPCKLPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKLPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VUNPCKLPS_BCST_Z: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VUNPCKLPS.BCST.Z m32 xmm k xmm -// VUNPCKLPS.BCST.Z m32 ymm k ymm -// VUNPCKLPS.BCST.Z m32 zmm k zmm -func VUNPCKLPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKLPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VUNPCKLPS_Z: Unpack and Interleave Low Packed Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VUNPCKLPS.Z m128 xmm k xmm -// VUNPCKLPS.Z m256 ymm k ymm -// VUNPCKLPS.Z xmm xmm k xmm -// VUNPCKLPS.Z ymm ymm k ymm -// VUNPCKLPS.Z m512 zmm k zmm -// VUNPCKLPS.Z zmm zmm k zmm -func VUNPCKLPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVUNPCKLPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VXORPD: Bitwise Logical XOR for Double-Precision Floating-Point Values. -// -// Forms: -// -// VXORPD m128 xmm xmm -// VXORPD m256 ymm ymm -// VXORPD xmm xmm xmm -// VXORPD ymm ymm ymm -// VXORPD m128 xmm k xmm -// VXORPD m256 ymm k ymm -// VXORPD xmm xmm k xmm -// VXORPD ymm ymm k ymm -// VXORPD m512 zmm k zmm -// VXORPD m512 zmm zmm -// VXORPD zmm zmm k zmm -// VXORPD zmm zmm zmm -func VXORPD(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVXORPD.Forms(), sffxs{}, ops) -} - -// VXORPD_BCST: Bitwise Logical XOR for Double-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VXORPD.BCST m64 xmm k xmm -// VXORPD.BCST m64 xmm xmm -// VXORPD.BCST m64 ymm k ymm -// VXORPD.BCST m64 ymm ymm -// VXORPD.BCST m64 zmm k zmm -// VXORPD.BCST m64 zmm zmm -func VXORPD_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVXORPD.Forms(), sffxs{sffxBCST}, ops) -} - -// VXORPD_BCST_Z: Bitwise Logical XOR for Double-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VXORPD.BCST.Z m64 xmm k xmm -// VXORPD.BCST.Z m64 ymm k ymm -// VXORPD.BCST.Z m64 zmm k zmm -func VXORPD_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVXORPD.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VXORPD_Z: Bitwise Logical XOR for Double-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VXORPD.Z m128 xmm k xmm -// VXORPD.Z m256 ymm k ymm -// VXORPD.Z xmm xmm k xmm -// VXORPD.Z ymm ymm k ymm -// VXORPD.Z m512 zmm k zmm -// VXORPD.Z zmm zmm k zmm -func VXORPD_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVXORPD.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VXORPS: Bitwise Logical XOR for Single-Precision Floating-Point Values. -// -// Forms: -// -// VXORPS m128 xmm xmm -// VXORPS m256 ymm ymm -// VXORPS xmm xmm xmm -// VXORPS ymm ymm ymm -// VXORPS m128 xmm k xmm -// VXORPS m256 ymm k ymm -// VXORPS xmm xmm k xmm -// VXORPS ymm ymm k ymm -// VXORPS m512 zmm k zmm -// VXORPS m512 zmm zmm -// VXORPS zmm zmm k zmm -// VXORPS zmm zmm zmm -func VXORPS(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVXORPS.Forms(), sffxs{}, ops) -} - -// VXORPS_BCST: Bitwise Logical XOR for Single-Precision Floating-Point Values (Broadcast). -// -// Forms: -// -// VXORPS.BCST m32 xmm k xmm -// VXORPS.BCST m32 xmm xmm -// VXORPS.BCST m32 ymm k ymm -// VXORPS.BCST m32 ymm ymm -// VXORPS.BCST m32 zmm k zmm -// VXORPS.BCST m32 zmm zmm -func VXORPS_BCST(ops ...operand.Op) (*intrep.Instruction, error) { - return build(opcVXORPS.Forms(), sffxs{sffxBCST}, ops) -} - -// VXORPS_BCST_Z: Bitwise Logical XOR for Single-Precision Floating-Point Values (Broadcast, Zeroing Masking). -// -// Forms: -// -// VXORPS.BCST.Z m32 xmm k xmm -// VXORPS.BCST.Z m32 ymm k ymm -// VXORPS.BCST.Z m32 zmm k zmm -func VXORPS_BCST_Z(m, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVXORPS.Forms(), sffxs{sffxBCST, sffxZ}, []operand.Op{m, xyz, k, xyz1}) -} - -// VXORPS_Z: Bitwise Logical XOR for Single-Precision Floating-Point Values (Zeroing Masking). -// -// Forms: -// -// VXORPS.Z m128 xmm k xmm -// VXORPS.Z m256 ymm k ymm -// VXORPS.Z xmm xmm k xmm -// VXORPS.Z ymm ymm k ymm -// VXORPS.Z m512 zmm k zmm -// VXORPS.Z zmm zmm k zmm -func VXORPS_Z(mxyz, xyz, k, xyz1 operand.Op) (*intrep.Instruction, error) { - return build(opcVXORPS.Forms(), sffxs{sffxZ}, []operand.Op{mxyz, xyz, k, xyz1}) -} - -// VZEROALL: Zero All YMM Registers. -// -// Forms: -// -// VZEROALL -func VZEROALL() (*intrep.Instruction, error) { - return build(opcVZEROALL.Forms(), sffxs{}, []operand.Op{}) -} - -// VZEROUPPER: Zero Upper Bits of YMM Registers. -// -// Forms: -// -// VZEROUPPER -func VZEROUPPER() (*intrep.Instruction, error) { - return build(opcVZEROUPPER.Forms(), sffxs{}, []operand.Op{}) -} - -// XADDB: Exchange and Add. -// -// Forms: -// -// XADDB r8 m8 -// XADDB r8 r8 -func XADDB(r, mr operand.Op) (*intrep.Instruction, error) { - return build(opcXADDB.Forms(), sffxs{}, []operand.Op{r, mr}) -} - -// XADDL: Exchange and Add. -// -// Forms: -// -// XADDL r32 m32 -// XADDL r32 r32 -func XADDL(r, mr operand.Op) (*intrep.Instruction, error) { - return build(opcXADDL.Forms(), sffxs{}, []operand.Op{r, mr}) -} - -// XADDQ: Exchange and Add. -// -// Forms: -// -// XADDQ r64 m64 -// XADDQ r64 r64 -func XADDQ(r, mr operand.Op) (*intrep.Instruction, error) { - return build(opcXADDQ.Forms(), sffxs{}, []operand.Op{r, mr}) -} - -// XADDW: Exchange and Add. -// -// Forms: -// -// XADDW r16 m16 -// XADDW r16 r16 -func XADDW(r, mr operand.Op) (*intrep.Instruction, error) { - return build(opcXADDW.Forms(), sffxs{}, []operand.Op{r, mr}) -} - -// XCHGB: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGB m8 r8 -// XCHGB r8 m8 -// XCHGB r8 r8 -func XCHGB(mr, mr1 operand.Op) (*intrep.Instruction, error) { - return build(opcXCHGB.Forms(), sffxs{}, []operand.Op{mr, mr1}) -} - -// XCHGL: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGL eax r32 -// XCHGL m32 r32 -// XCHGL r32 eax -// XCHGL r32 m32 -// XCHGL r32 r32 -func XCHGL(emr, emr1 operand.Op) (*intrep.Instruction, error) { - return build(opcXCHGL.Forms(), sffxs{}, []operand.Op{emr, emr1}) -} - -// XCHGQ: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGQ m64 r64 -// XCHGQ r64 m64 -// XCHGQ r64 r64 -// XCHGQ r64 rax -// XCHGQ rax r64 -func XCHGQ(mr, mr1 operand.Op) (*intrep.Instruction, error) { - return build(opcXCHGQ.Forms(), sffxs{}, []operand.Op{mr, mr1}) -} - -// XCHGW: Exchange Register/Memory with Register. -// -// Forms: -// -// XCHGW ax r16 -// XCHGW m16 r16 -// XCHGW r16 ax -// XCHGW r16 m16 -// XCHGW r16 r16 -func XCHGW(amr, amr1 operand.Op) (*intrep.Instruction, error) { - return build(opcXCHGW.Forms(), sffxs{}, []operand.Op{amr, amr1}) -} - -// XGETBV: Get Value of Extended Control Register. -// -// Forms: -// -// XGETBV -func XGETBV() (*intrep.Instruction, error) { - return build(opcXGETBV.Forms(), sffxs{}, []operand.Op{}) -} - -// XLAT: Table Look-up Translation. -// -// Forms: -// -// XLAT -func XLAT() (*intrep.Instruction, error) { - return build(opcXLAT.Forms(), sffxs{}, []operand.Op{}) -} - -// XORB: Logical Exclusive OR. -// -// Forms: -// -// XORB imm8 al -// XORB imm8 m8 -// XORB imm8 r8 -// XORB m8 r8 -// XORB r8 m8 -// XORB r8 r8 -func XORB(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcXORB.Forms(), sffxs{}, []operand.Op{imr, amr}) -} - -// XORL: Logical Exclusive OR. -// -// Forms: -// -// XORL imm32 eax -// XORL imm32 m32 -// XORL imm32 r32 -// XORL imm8 m32 -// XORL imm8 r32 -// XORL m32 r32 -// XORL r32 m32 -// XORL r32 r32 -func XORL(imr, emr operand.Op) (*intrep.Instruction, error) { - return build(opcXORL.Forms(), sffxs{}, []operand.Op{imr, emr}) -} - -// XORPD: Bitwise Logical XOR for Double-Precision Floating-Point Values. -// -// Forms: -// -// XORPD m128 xmm -// XORPD xmm xmm -func XORPD(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcXORPD.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// XORPS: Bitwise Logical XOR for Single-Precision Floating-Point Values. -// -// Forms: -// -// XORPS m128 xmm -// XORPS xmm xmm -func XORPS(mx, x operand.Op) (*intrep.Instruction, error) { - return build(opcXORPS.Forms(), sffxs{}, []operand.Op{mx, x}) -} - -// XORQ: Logical Exclusive OR. -// -// Forms: -// -// XORQ imm32 m64 -// XORQ imm32 r64 -// XORQ imm32 rax -// XORQ imm8 m64 -// XORQ imm8 r64 -// XORQ m64 r64 -// XORQ r64 m64 -// XORQ r64 r64 -func XORQ(imr, mr operand.Op) (*intrep.Instruction, error) { - return build(opcXORQ.Forms(), sffxs{}, []operand.Op{imr, mr}) -} - -// XORW: Logical Exclusive OR. -// -// Forms: -// -// XORW imm16 ax -// XORW imm16 m16 -// XORW imm16 r16 -// XORW imm8 m16 -// XORW imm8 r16 -// XORW m16 r16 -// XORW r16 m16 -// XORW r16 r16 -func XORW(imr, amr operand.Op) (*intrep.Instruction, error) { - return build(opcXORW.Forms(), sffxs{}, []operand.Op{imr, amr}) -} diff --git a/vendor/github.com/mmcloughlin/avo/x86/zoptab.go b/vendor/github.com/mmcloughlin/avo/x86/zoptab.go deleted file mode 100644 index ff6108b8..00000000 --- a/vendor/github.com/mmcloughlin/avo/x86/zoptab.go +++ /dev/null @@ -1,16385 +0,0 @@ -// Code generated by command: avogen -output zoptab.go optab. DO NOT EDIT. - -package x86 - -import ( - "github.com/mmcloughlin/avo/operand" - "github.com/mmcloughlin/avo/reg" -) - -// maxoperands is the maximum number of operands in an instruction form, including implicit operands. -const maxoperands = 6 - -type oprndtype uint8 - -const ( - oprndtypeNone oprndtype = iota - oprndtype1 - oprndtype3 - oprndtypeAL - oprndtypeAX - oprndtypeCL - oprndtypeEAX - oprndtypeIMM16 - oprndtypeIMM2U - oprndtypeIMM32 - oprndtypeIMM64 - oprndtypeIMM8 - oprndtypeK - oprndtypeM - oprndtypeM128 - oprndtypeM16 - oprndtypeM256 - oprndtypeM32 - oprndtypeM512 - oprndtypeM64 - oprndtypeM8 - oprndtypeR16 - oprndtypeR32 - oprndtypeR64 - oprndtypeR8 - oprndtypeRAX - oprndtypeREL32 - oprndtypeREL8 - oprndtypeVM32X - oprndtypeVM32Y - oprndtypeVM32Z - oprndtypeVM64X - oprndtypeVM64Y - oprndtypeVM64Z - oprndtypeXMM - oprndtypeXMM0 - oprndtypeYMM - oprndtypeZMM - oprndtypemax -) - -func (o oprndtype) Match(op operand.Op) bool { - switch o { - default: - return false - case oprndtype1: - return operand.Is1(op) - case oprndtype3: - return operand.Is3(op) - case oprndtypeAL: - return operand.IsAL(op) - case oprndtypeAX: - return operand.IsAX(op) - case oprndtypeCL: - return operand.IsCL(op) - case oprndtypeEAX: - return operand.IsEAX(op) - case oprndtypeIMM16: - return operand.IsIMM16(op) - case oprndtypeIMM2U: - return operand.IsIMM2U(op) - case oprndtypeIMM32: - return operand.IsIMM32(op) - case oprndtypeIMM64: - return operand.IsIMM64(op) - case oprndtypeIMM8: - return operand.IsIMM8(op) - case oprndtypeK: - return operand.IsK(op) - case oprndtypeM: - return operand.IsM(op) - case oprndtypeM128: - return operand.IsM128(op) - case oprndtypeM16: - return operand.IsM16(op) - case oprndtypeM256: - return operand.IsM256(op) - case oprndtypeM32: - return operand.IsM32(op) - case oprndtypeM512: - return operand.IsM512(op) - case oprndtypeM64: - return operand.IsM64(op) - case oprndtypeM8: - return operand.IsM8(op) - case oprndtypeR16: - return operand.IsR16(op) - case oprndtypeR32: - return operand.IsR32(op) - case oprndtypeR64: - return operand.IsR64(op) - case oprndtypeR8: - return operand.IsR8(op) - case oprndtypeRAX: - return operand.IsRAX(op) - case oprndtypeREL32: - return operand.IsREL32(op) - case oprndtypeREL8: - return operand.IsREL8(op) - case oprndtypeVM32X: - return operand.IsVM32X(op) - case oprndtypeVM32Y: - return operand.IsVM32Y(op) - case oprndtypeVM32Z: - return operand.IsVM32Z(op) - case oprndtypeVM64X: - return operand.IsVM64X(op) - case oprndtypeVM64Y: - return operand.IsVM64Y(op) - case oprndtypeVM64Z: - return operand.IsVM64Z(op) - case oprndtypeXMM: - return operand.IsXMM(op) - case oprndtypeXMM0: - return operand.IsXMM0(op) - case oprndtypeYMM: - return operand.IsYMM(op) - case oprndtypeZMM: - return operand.IsZMM(op) - } -} - -type implreg uint8 - -const ( - implregNone implreg = iota - implregAL - implregAX - implregDX - implregEAX - implregEBX - implregECX - implregEDX - implregR11 - implregRAX - implregRBX - implregRCX - implregRDI - implregRDX - implregX0 - implregmax -) - -func (i implreg) Register() reg.Register { - switch i { - default: - panic("unexpected implicit register type") - case implregAL: - return reg.AL - case implregAX: - return reg.AX - case implregDX: - return reg.DX - case implregEAX: - return reg.EAX - case implregEBX: - return reg.EBX - case implregECX: - return reg.ECX - case implregEDX: - return reg.EDX - case implregR11: - return reg.R11 - case implregRAX: - return reg.RAX - case implregRBX: - return reg.RBX - case implregRCX: - return reg.RCX - case implregRDI: - return reg.RDI - case implregRDX: - return reg.RDX - case implregX0: - return reg.X0 - } -} - -type sffx uint8 - -const ( - sffxNone sffx = iota - sffxBCST - sffxRD_SAE - sffxRN_SAE - sffxRU_SAE - sffxRZ_SAE - sffxSAE - sffxZ - sffxmax -) - -// maxsuffixes is the maximum number of suffixes an instruction can have. -const maxsuffixes = 2 - -type sffxs [maxsuffixes]sffx - -func (s sffxs) Strings() []string { - return sffxsstringsmap[s] -} - -var sffxsstringsmap = map[sffxs][]string{ - {sffxBCST, sffxZ}: {"BCST", "Z"}, - {sffxBCST}: {"BCST"}, - {sffxRD_SAE, sffxZ}: {"RD_SAE", "Z"}, - {sffxRD_SAE}: {"RD_SAE"}, - {sffxRN_SAE, sffxZ}: {"RN_SAE", "Z"}, - {sffxRN_SAE}: {"RN_SAE"}, - {sffxRU_SAE, sffxZ}: {"RU_SAE", "Z"}, - {sffxRU_SAE}: {"RU_SAE"}, - {sffxRZ_SAE, sffxZ}: {"RZ_SAE", "Z"}, - {sffxRZ_SAE}: {"RZ_SAE"}, - {sffxSAE, sffxZ}: {"SAE", "Z"}, - {sffxSAE}: {"SAE"}, - {sffxZ}: {"Z"}, - {}: nil, -} - -type sffxscls uint8 - -const ( - sffxsclsNone sffxscls = iota - sffxsclsBCST - sffxsclsBCST_Z - sffxsclsER - sffxsclsER_Z - sffxsclsNIL - sffxsclsSAE - sffxsclsSAE_Z - sffxsclsZ - sffxsclsmax -) - -func (s sffxscls) SuffixesSet() map[sffxs]bool { - if sffxsclsNone < s && s < sffxsclsmax { - return sffxsclssuffixessettable[s-1] - } - return nil -} - -var sffxsclssuffixessettable = []map[sffxs]bool{ - {sffxs{sffxBCST}: true}, - {sffxs{sffxBCST, sffxZ}: true}, - {sffxs{sffxRD_SAE}: true, sffxs{sffxRN_SAE}: true, sffxs{sffxRU_SAE}: true, sffxs{sffxRZ_SAE}: true}, - {sffxs{sffxRD_SAE, sffxZ}: true, sffxs{sffxRN_SAE, sffxZ}: true, sffxs{sffxRU_SAE, sffxZ}: true, sffxs{sffxRZ_SAE, sffxZ}: true}, - {sffxs{}: true}, - {sffxs{sffxSAE}: true}, - {sffxs{sffxSAE, sffxZ}: true}, - {sffxs{sffxZ}: true}, -} - -type isas uint8 - -const ( - isasNone isas = iota - isasBase - isasADX - isasSSE2 - isasSSE - isasSSE3 - isasAES - isasBMI - isasSSE41 - isasBMI2 - isasCLFLUSH - isasCLFLUSHOPT - isasCMOV - isasCPUID - isasSSE42 - isasAVX512DQ - isasAVX512BW - isasAVX512F - isasLZCNT - isasMONITOR - isasMOVBE - isasSSSE3 - isasPCLMULQDQ - isasPOPCNT - isasMMX - isasRDRAND - isasRDSEED - isasRDTSC - isasRDTSCP - isasSHA - isasAVX - isasAVX512F_AVX512VL - isasAES_AVX - isasVAES - isasAVX512F_VAES - isasAVX512DQ_AVX512VL - isasAVX2 - isasF16C - isasAVX512VL - isasAVX512BW_AVX512VL - isasAVX512ER - isasFMA3 - isasAVX_GFNI - isasAVX512F_GFNI - isasAVX512VL_GFNI - isasAVX512CD_AVX512VL - isasAVX512CD - isasAVX_PCLMULQDQ - isasVPCLMULQDQ - isasAVX512F_VPCLMULQDQ - isasAVX512VBMI2_AVX512VL - isasAVX512VBMI2 - isasAVX512VL_AVX512VNNI - isasAVX512VNNI - isasAVX512VBMI_AVX512VL - isasAVX512VBMI - isasAVX512IFMA_AVX512VL - isasAVX512IFMA - isasAVX512BITALG_AVX512VL - isasAVX512BITALG - isasAVX512VL_AVX512VPOPCNTDQ - isasAVX512VPOPCNTDQ - isasAVX512BW_AVX512F - isasmax -) - -func (i isas) List() []string { - if isasNone < i && i < isasmax { - return isaslisttable[i-1] - } - return nil -} - -var isaslisttable = [][]string{ - nil, - {"ADX"}, - {"SSE2"}, - {"SSE"}, - {"SSE3"}, - {"AES"}, - {"BMI"}, - {"SSE4.1"}, - {"BMI2"}, - {"CLFLUSH"}, - {"CLFLUSHOPT"}, - {"CMOV"}, - {"CPUID"}, - {"SSE4.2"}, - {"AVX512DQ"}, - {"AVX512BW"}, - {"AVX512F"}, - {"LZCNT"}, - {"MONITOR"}, - {"MOVBE"}, - {"SSSE3"}, - {"PCLMULQDQ"}, - {"POPCNT"}, - {"MMX+"}, - {"RDRAND"}, - {"RDSEED"}, - {"RDTSC"}, - {"RDTSCP"}, - {"SHA"}, - {"AVX"}, - {"AVX512F", "AVX512VL"}, - {"AES", "AVX"}, - {"VAES"}, - {"AVX512F", "VAES"}, - {"AVX512DQ", "AVX512VL"}, - {"AVX2"}, - {"F16C"}, - {"AVX512VL"}, - {"AVX512BW", "AVX512VL"}, - {"AVX512ER"}, - {"FMA3"}, - {"AVX", "GFNI"}, - {"AVX512F", "GFNI"}, - {"AVX512VL", "GFNI"}, - {"AVX512CD", "AVX512VL"}, - {"AVX512CD"}, - {"AVX", "PCLMULQDQ"}, - {"VPCLMULQDQ"}, - {"AVX512F", "VPCLMULQDQ"}, - {"AVX512VBMI2", "AVX512VL"}, - {"AVX512VBMI2"}, - {"AVX512VL", "AVX512VNNI"}, - {"AVX512VNNI"}, - {"AVX512VBMI", "AVX512VL"}, - {"AVX512VBMI"}, - {"AVX512IFMA", "AVX512VL"}, - {"AVX512IFMA"}, - {"AVX512BITALG", "AVX512VL"}, - {"AVX512BITALG"}, - {"AVX512VL", "AVX512VPOPCNTDQ"}, - {"AVX512VPOPCNTDQ"}, - {"AVX512BW", "AVX512F"}, -} - -type opc uint16 - -const ( - opcNone opc = iota - opcADCB - opcADCL - opcADCQ - opcADCW - opcADCXL - opcADCXQ - opcADDB - opcADDL - opcADDPD - opcADDPS - opcADDQ - opcADDSD - opcADDSS - opcADDSUBPD - opcADDSUBPS - opcADDW - opcADOXL - opcADOXQ - opcAESDEC - opcAESDECLAST - opcAESENC - opcAESENCLAST - opcAESIMC - opcAESKEYGENASSIST - opcANDB - opcANDL - opcANDNL - opcANDNPD - opcANDNPS - opcANDNQ - opcANDPD - opcANDPS - opcANDQ - opcANDW - opcBEXTRL - opcBEXTRQ - opcBLENDPD - opcBLENDPS - opcBLENDVPD - opcBLENDVPS - opcBLSIL - opcBLSIQ - opcBLSMSKL - opcBLSMSKQ - opcBLSRL - opcBLSRQ - opcBSFL - opcBSFQ - opcBSFW - opcBSRL - opcBSRQ - opcBSRW - opcBSWAPL - opcBSWAPQ - opcBTCL - opcBTCQ - opcBTCW - opcBTL - opcBTQ - opcBTRL - opcBTRQ - opcBTRW - opcBTSL - opcBTSQ - opcBTSW - opcBTW - opcBZHIL - opcBZHIQ - opcCALL - opcCBW - opcCDQ - opcCDQE - opcCLC - opcCLD - opcCLFLUSH - opcCLFLUSHOPT - opcCMC - opcCMOVLCC - opcCMOVLCS - opcCMOVLEQ - opcCMOVLGE - opcCMOVLGT - opcCMOVLHI - opcCMOVLLE - opcCMOVLLS - opcCMOVLLT - opcCMOVLMI - opcCMOVLNE - opcCMOVLOC - opcCMOVLOS - opcCMOVLPC - opcCMOVLPL - opcCMOVLPS - opcCMOVQCC - opcCMOVQCS - opcCMOVQEQ - opcCMOVQGE - opcCMOVQGT - opcCMOVQHI - opcCMOVQLE - opcCMOVQLS - opcCMOVQLT - opcCMOVQMI - opcCMOVQNE - opcCMOVQOC - opcCMOVQOS - opcCMOVQPC - opcCMOVQPL - opcCMOVQPS - opcCMOVWCC - opcCMOVWCS - opcCMOVWEQ - opcCMOVWGE - opcCMOVWGT - opcCMOVWHI - opcCMOVWLE - opcCMOVWLS - opcCMOVWLT - opcCMOVWMI - opcCMOVWNE - opcCMOVWOC - opcCMOVWOS - opcCMOVWPC - opcCMOVWPL - opcCMOVWPS - opcCMPB - opcCMPL - opcCMPPD - opcCMPPS - opcCMPQ - opcCMPSD - opcCMPSS - opcCMPW - opcCMPXCHG16B - opcCMPXCHG8B - opcCMPXCHGB - opcCMPXCHGL - opcCMPXCHGQ - opcCMPXCHGW - opcCOMISD - opcCOMISS - opcCPUID - opcCQO - opcCRC32B - opcCRC32L - opcCRC32Q - opcCRC32W - opcCVTPD2PL - opcCVTPD2PS - opcCVTPL2PD - opcCVTPL2PS - opcCVTPS2PD - opcCVTPS2PL - opcCVTSD2SL - opcCVTSD2SS - opcCVTSL2SD - opcCVTSL2SS - opcCVTSQ2SD - opcCVTSQ2SS - opcCVTSS2SD - opcCVTSS2SL - opcCVTTPD2PL - opcCVTTPS2PL - opcCVTTSD2SL - opcCVTTSD2SQ - opcCVTTSS2SL - opcCWD - opcCWDE - opcDECB - opcDECL - opcDECQ - opcDECW - opcDIVB - opcDIVL - opcDIVPD - opcDIVPS - opcDIVQ - opcDIVSD - opcDIVSS - opcDIVW - opcDPPD - opcDPPS - opcEXTRACTPS - opcHADDPD - opcHADDPS - opcHSUBPD - opcHSUBPS - opcIDIVB - opcIDIVL - opcIDIVQ - opcIDIVW - opcIMUL3L - opcIMUL3Q - opcIMUL3W - opcIMULB - opcIMULL - opcIMULQ - opcIMULW - opcINCB - opcINCL - opcINCQ - opcINCW - opcINSERTPS - opcINT - opcJA - opcJAE - opcJB - opcJBE - opcJC - opcJCC - opcJCS - opcJCXZL - opcJCXZQ - opcJE - opcJEQ - opcJG - opcJGE - opcJGT - opcJHI - opcJHS - opcJL - opcJLE - opcJLO - opcJLS - opcJLT - opcJMI - opcJMP - opcJNA - opcJNAE - opcJNB - opcJNBE - opcJNC - opcJNE - opcJNG - opcJNGE - opcJNL - opcJNLE - opcJNO - opcJNP - opcJNS - opcJNZ - opcJO - opcJOC - opcJOS - opcJP - opcJPC - opcJPE - opcJPL - opcJPO - opcJPS - opcJS - opcJZ - opcKADDB - opcKADDD - opcKADDQ - opcKADDW - opcKANDB - opcKANDD - opcKANDNB - opcKANDND - opcKANDNQ - opcKANDNW - opcKANDQ - opcKANDW - opcKMOVB - opcKMOVD - opcKMOVQ - opcKMOVW - opcKNOTB - opcKNOTD - opcKNOTQ - opcKNOTW - opcKORB - opcKORD - opcKORQ - opcKORTESTB - opcKORTESTD - opcKORTESTQ - opcKORTESTW - opcKORW - opcKSHIFTLB - opcKSHIFTLD - opcKSHIFTLQ - opcKSHIFTLW - opcKSHIFTRB - opcKSHIFTRD - opcKSHIFTRQ - opcKSHIFTRW - opcKTESTB - opcKTESTD - opcKTESTQ - opcKTESTW - opcKUNPCKBW - opcKUNPCKDQ - opcKUNPCKWD - opcKXNORB - opcKXNORD - opcKXNORQ - opcKXNORW - opcKXORB - opcKXORD - opcKXORQ - opcKXORW - opcLDDQU - opcLDMXCSR - opcLEAL - opcLEAQ - opcLEAW - opcLFENCE - opcLZCNTL - opcLZCNTQ - opcLZCNTW - opcMASKMOVDQU - opcMASKMOVOU - opcMAXPD - opcMAXPS - opcMAXSD - opcMAXSS - opcMFENCE - opcMINPD - opcMINPS - opcMINSD - opcMINSS - opcMONITOR - opcMOVAPD - opcMOVAPS - opcMOVB - opcMOVBELL - opcMOVBEQQ - opcMOVBEWW - opcMOVBLSX - opcMOVBLZX - opcMOVBQSX - opcMOVBQZX - opcMOVBWSX - opcMOVBWZX - opcMOVD - opcMOVDDUP - opcMOVDQ2Q - opcMOVHLPS - opcMOVHPD - opcMOVHPS - opcMOVL - opcMOVLHPS - opcMOVLPD - opcMOVLPS - opcMOVLQSX - opcMOVLQZX - opcMOVMSKPD - opcMOVMSKPS - opcMOVNTDQ - opcMOVNTDQA - opcMOVNTIL - opcMOVNTIQ - opcMOVNTO - opcMOVNTPD - opcMOVNTPS - opcMOVO - opcMOVOA - opcMOVOU - opcMOVQ - opcMOVSD - opcMOVSHDUP - opcMOVSLDUP - opcMOVSS - opcMOVUPD - opcMOVUPS - opcMOVW - opcMOVWLSX - opcMOVWLZX - opcMOVWQSX - opcMOVWQZX - opcMPSADBW - opcMULB - opcMULL - opcMULPD - opcMULPS - opcMULQ - opcMULSD - opcMULSS - opcMULW - opcMULXL - opcMULXQ - opcMWAIT - opcNEGB - opcNEGL - opcNEGQ - opcNEGW - opcNOP - opcNOTB - opcNOTL - opcNOTQ - opcNOTW - opcORB - opcORL - opcORPD - opcORPS - opcORQ - opcORW - opcPABSB - opcPABSD - opcPABSW - opcPACKSSLW - opcPACKSSWB - opcPACKUSDW - opcPACKUSWB - opcPADDB - opcPADDD - opcPADDL - opcPADDQ - opcPADDSB - opcPADDSW - opcPADDUSB - opcPADDUSW - opcPADDW - opcPALIGNR - opcPAND - opcPANDN - opcPAUSE - opcPAVGB - opcPAVGW - opcPBLENDVB - opcPBLENDW - opcPCLMULQDQ - opcPCMPEQB - opcPCMPEQL - opcPCMPEQQ - opcPCMPEQW - opcPCMPESTRI - opcPCMPESTRM - opcPCMPGTB - opcPCMPGTL - opcPCMPGTQ - opcPCMPGTW - opcPCMPISTRI - opcPCMPISTRM - opcPDEPL - opcPDEPQ - opcPEXTL - opcPEXTQ - opcPEXTRB - opcPEXTRD - opcPEXTRQ - opcPEXTRW - opcPHADDD - opcPHADDSW - opcPHADDW - opcPHMINPOSUW - opcPHSUBD - opcPHSUBSW - opcPHSUBW - opcPINSRB - opcPINSRD - opcPINSRQ - opcPINSRW - opcPMADDUBSW - opcPMADDWL - opcPMAXSB - opcPMAXSD - opcPMAXSW - opcPMAXUB - opcPMAXUD - opcPMAXUW - opcPMINSB - opcPMINSD - opcPMINSW - opcPMINUB - opcPMINUD - opcPMINUW - opcPMOVMSKB - opcPMOVSXBD - opcPMOVSXBQ - opcPMOVSXBW - opcPMOVSXDQ - opcPMOVSXWD - opcPMOVSXWQ - opcPMOVZXBD - opcPMOVZXBQ - opcPMOVZXBW - opcPMOVZXDQ - opcPMOVZXWD - opcPMOVZXWQ - opcPMULDQ - opcPMULHRSW - opcPMULHUW - opcPMULHW - opcPMULLD - opcPMULLW - opcPMULULQ - opcPOPCNTL - opcPOPCNTQ - opcPOPCNTW - opcPOPQ - opcPOPW - opcPOR - opcPREFETCHNTA - opcPREFETCHT0 - opcPREFETCHT1 - opcPREFETCHT2 - opcPSADBW - opcPSHUFB - opcPSHUFD - opcPSHUFHW - opcPSHUFL - opcPSHUFLW - opcPSIGNB - opcPSIGND - opcPSIGNW - opcPSLLDQ - opcPSLLL - opcPSLLO - opcPSLLQ - opcPSLLW - opcPSRAL - opcPSRAW - opcPSRLDQ - opcPSRLL - opcPSRLO - opcPSRLQ - opcPSRLW - opcPSUBB - opcPSUBL - opcPSUBQ - opcPSUBSB - opcPSUBSW - opcPSUBUSB - opcPSUBUSW - opcPSUBW - opcPTEST - opcPUNPCKHBW - opcPUNPCKHLQ - opcPUNPCKHQDQ - opcPUNPCKHWL - opcPUNPCKLBW - opcPUNPCKLLQ - opcPUNPCKLQDQ - opcPUNPCKLWL - opcPUSHQ - opcPUSHW - opcPXOR - opcRCLB - opcRCLL - opcRCLQ - opcRCLW - opcRCPPS - opcRCPSS - opcRCRB - opcRCRL - opcRCRQ - opcRCRW - opcRDRANDL - opcRDSEEDL - opcRDTSC - opcRDTSCP - opcRET - opcRETFL - opcRETFQ - opcRETFW - opcROLB - opcROLL - opcROLQ - opcROLW - opcRORB - opcRORL - opcRORQ - opcRORW - opcRORXL - opcRORXQ - opcROUNDPD - opcROUNDPS - opcROUNDSD - opcROUNDSS - opcRSQRTPS - opcRSQRTSS - opcSALB - opcSALL - opcSALQ - opcSALW - opcSARB - opcSARL - opcSARQ - opcSARW - opcSARXL - opcSARXQ - opcSBBB - opcSBBL - opcSBBQ - opcSBBW - opcSETCC - opcSETCS - opcSETEQ - opcSETGE - opcSETGT - opcSETHI - opcSETLE - opcSETLS - opcSETLT - opcSETMI - opcSETNE - opcSETOC - opcSETOS - opcSETPC - opcSETPL - opcSETPS - opcSFENCE - opcSHA1MSG1 - opcSHA1MSG2 - opcSHA1NEXTE - opcSHA1RNDS4 - opcSHA256MSG1 - opcSHA256MSG2 - opcSHA256RNDS2 - opcSHLB - opcSHLL - opcSHLQ - opcSHLW - opcSHLXL - opcSHLXQ - opcSHRB - opcSHRL - opcSHRQ - opcSHRW - opcSHRXL - opcSHRXQ - opcSHUFPD - opcSHUFPS - opcSQRTPD - opcSQRTPS - opcSQRTSD - opcSQRTSS - opcSTC - opcSTD - opcSTMXCSR - opcSUBB - opcSUBL - opcSUBPD - opcSUBPS - opcSUBQ - opcSUBSD - opcSUBSS - opcSUBW - opcSYSCALL - opcTESTB - opcTESTL - opcTESTQ - opcTESTW - opcTZCNTL - opcTZCNTQ - opcTZCNTW - opcUCOMISD - opcUCOMISS - opcUD2 - opcUNPCKHPD - opcUNPCKHPS - opcUNPCKLPD - opcUNPCKLPS - opcVADDPD - opcVADDPS - opcVADDSD - opcVADDSS - opcVADDSUBPD - opcVADDSUBPS - opcVAESDEC - opcVAESDECLAST - opcVAESENC - opcVAESENCLAST - opcVAESIMC - opcVAESKEYGENASSIST - opcVALIGND - opcVALIGNQ - opcVANDNPD - opcVANDNPS - opcVANDPD - opcVANDPS - opcVBLENDMPD - opcVBLENDMPS - opcVBLENDPD - opcVBLENDPS - opcVBLENDVPD - opcVBLENDVPS - opcVBROADCASTF128 - opcVBROADCASTF32X2 - opcVBROADCASTF32X4 - opcVBROADCASTF32X8 - opcVBROADCASTF64X2 - opcVBROADCASTF64X4 - opcVBROADCASTI128 - opcVBROADCASTI32X2 - opcVBROADCASTI32X4 - opcVBROADCASTI32X8 - opcVBROADCASTI64X2 - opcVBROADCASTI64X4 - opcVBROADCASTSD - opcVBROADCASTSS - opcVCMPPD - opcVCMPPS - opcVCMPSD - opcVCMPSS - opcVCOMISD - opcVCOMISS - opcVCOMPRESSPD - opcVCOMPRESSPS - opcVCVTDQ2PD - opcVCVTDQ2PS - opcVCVTPD2DQ - opcVCVTPD2DQX - opcVCVTPD2DQY - opcVCVTPD2PS - opcVCVTPD2PSX - opcVCVTPD2PSY - opcVCVTPD2QQ - opcVCVTPD2UDQ - opcVCVTPD2UDQX - opcVCVTPD2UDQY - opcVCVTPD2UQQ - opcVCVTPH2PS - opcVCVTPS2DQ - opcVCVTPS2PD - opcVCVTPS2PH - opcVCVTPS2QQ - opcVCVTPS2UDQ - opcVCVTPS2UQQ - opcVCVTQQ2PD - opcVCVTQQ2PS - opcVCVTQQ2PSX - opcVCVTQQ2PSY - opcVCVTSD2SI - opcVCVTSD2SIQ - opcVCVTSD2SS - opcVCVTSD2USIL - opcVCVTSD2USIQ - opcVCVTSI2SDL - opcVCVTSI2SDQ - opcVCVTSI2SSL - opcVCVTSI2SSQ - opcVCVTSS2SD - opcVCVTSS2SI - opcVCVTSS2SIQ - opcVCVTSS2USIL - opcVCVTSS2USIQ - opcVCVTTPD2DQ - opcVCVTTPD2DQX - opcVCVTTPD2DQY - opcVCVTTPD2QQ - opcVCVTTPD2UDQ - opcVCVTTPD2UDQX - opcVCVTTPD2UDQY - opcVCVTTPD2UQQ - opcVCVTTPS2DQ - opcVCVTTPS2QQ - opcVCVTTPS2UDQ - opcVCVTTPS2UQQ - opcVCVTTSD2SI - opcVCVTTSD2SIQ - opcVCVTTSD2USIL - opcVCVTTSD2USIQ - opcVCVTTSS2SI - opcVCVTTSS2SIQ - opcVCVTTSS2USIL - opcVCVTTSS2USIQ - opcVCVTUDQ2PD - opcVCVTUDQ2PS - opcVCVTUQQ2PD - opcVCVTUQQ2PS - opcVCVTUQQ2PSX - opcVCVTUQQ2PSY - opcVCVTUSI2SDL - opcVCVTUSI2SDQ - opcVCVTUSI2SSL - opcVCVTUSI2SSQ - opcVDBPSADBW - opcVDIVPD - opcVDIVPS - opcVDIVSD - opcVDIVSS - opcVDPPD - opcVDPPS - opcVEXP2PD - opcVEXP2PS - opcVEXPANDPD - opcVEXPANDPS - opcVEXTRACTF128 - opcVEXTRACTF32X4 - opcVEXTRACTF32X8 - opcVEXTRACTF64X2 - opcVEXTRACTF64X4 - opcVEXTRACTI128 - opcVEXTRACTI32X4 - opcVEXTRACTI32X8 - opcVEXTRACTI64X2 - opcVEXTRACTI64X4 - opcVEXTRACTPS - opcVFIXUPIMMPD - opcVFIXUPIMMPS - opcVFIXUPIMMSD - opcVFIXUPIMMSS - opcVFMADD132PD - opcVFMADD132PS - opcVFMADD132SD - opcVFMADD132SS - opcVFMADD213PD - opcVFMADD213PS - opcVFMADD213SD - opcVFMADD213SS - opcVFMADD231PD - opcVFMADD231PS - opcVFMADD231SD - opcVFMADD231SS - opcVFMADDSUB132PD - opcVFMADDSUB132PS - opcVFMADDSUB213PD - opcVFMADDSUB213PS - opcVFMADDSUB231PD - opcVFMADDSUB231PS - opcVFMSUB132PD - opcVFMSUB132PS - opcVFMSUB132SD - opcVFMSUB132SS - opcVFMSUB213PD - opcVFMSUB213PS - opcVFMSUB213SD - opcVFMSUB213SS - opcVFMSUB231PD - opcVFMSUB231PS - opcVFMSUB231SD - opcVFMSUB231SS - opcVFMSUBADD132PD - opcVFMSUBADD132PS - opcVFMSUBADD213PD - opcVFMSUBADD213PS - opcVFMSUBADD231PD - opcVFMSUBADD231PS - opcVFNMADD132PD - opcVFNMADD132PS - opcVFNMADD132SD - opcVFNMADD132SS - opcVFNMADD213PD - opcVFNMADD213PS - opcVFNMADD213SD - opcVFNMADD213SS - opcVFNMADD231PD - opcVFNMADD231PS - opcVFNMADD231SD - opcVFNMADD231SS - opcVFNMSUB132PD - opcVFNMSUB132PS - opcVFNMSUB132SD - opcVFNMSUB132SS - opcVFNMSUB213PD - opcVFNMSUB213PS - opcVFNMSUB213SD - opcVFNMSUB213SS - opcVFNMSUB231PD - opcVFNMSUB231PS - opcVFNMSUB231SD - opcVFNMSUB231SS - opcVFPCLASSPDX - opcVFPCLASSPDY - opcVFPCLASSPDZ - opcVFPCLASSPSX - opcVFPCLASSPSY - opcVFPCLASSPSZ - opcVFPCLASSSD - opcVFPCLASSSS - opcVGATHERDPD - opcVGATHERDPS - opcVGATHERQPD - opcVGATHERQPS - opcVGETEXPPD - opcVGETEXPPS - opcVGETEXPSD - opcVGETEXPSS - opcVGETMANTPD - opcVGETMANTPS - opcVGETMANTSD - opcVGETMANTSS - opcVGF2P8AFFINEINVQB - opcVGF2P8AFFINEQB - opcVGF2P8MULB - opcVHADDPD - opcVHADDPS - opcVHSUBPD - opcVHSUBPS - opcVINSERTF128 - opcVINSERTF32X4 - opcVINSERTF32X8 - opcVINSERTF64X2 - opcVINSERTF64X4 - opcVINSERTI128 - opcVINSERTI32X4 - opcVINSERTI32X8 - opcVINSERTI64X2 - opcVINSERTI64X4 - opcVINSERTPS - opcVLDDQU - opcVLDMXCSR - opcVMASKMOVDQU - opcVMASKMOVPD - opcVMASKMOVPS - opcVMAXPD - opcVMAXPS - opcVMAXSD - opcVMAXSS - opcVMINPD - opcVMINPS - opcVMINSD - opcVMINSS - opcVMOVAPD - opcVMOVAPS - opcVMOVD - opcVMOVDDUP - opcVMOVDQA - opcVMOVDQA32 - opcVMOVDQA64 - opcVMOVDQU - opcVMOVDQU16 - opcVMOVDQU32 - opcVMOVDQU64 - opcVMOVDQU8 - opcVMOVHLPS - opcVMOVHPD - opcVMOVHPS - opcVMOVLHPS - opcVMOVLPD - opcVMOVLPS - opcVMOVMSKPD - opcVMOVMSKPS - opcVMOVNTDQ - opcVMOVNTDQA - opcVMOVNTPD - opcVMOVNTPS - opcVMOVQ - opcVMOVSD - opcVMOVSHDUP - opcVMOVSLDUP - opcVMOVSS - opcVMOVUPD - opcVMOVUPS - opcVMPSADBW - opcVMULPD - opcVMULPS - opcVMULSD - opcVMULSS - opcVORPD - opcVORPS - opcVPABSB - opcVPABSD - opcVPABSQ - opcVPABSW - opcVPACKSSDW - opcVPACKSSWB - opcVPACKUSDW - opcVPACKUSWB - opcVPADDB - opcVPADDD - opcVPADDQ - opcVPADDSB - opcVPADDSW - opcVPADDUSB - opcVPADDUSW - opcVPADDW - opcVPALIGNR - opcVPAND - opcVPANDD - opcVPANDN - opcVPANDND - opcVPANDNQ - opcVPANDQ - opcVPAVGB - opcVPAVGW - opcVPBLENDD - opcVPBLENDMB - opcVPBLENDMD - opcVPBLENDMQ - opcVPBLENDMW - opcVPBLENDVB - opcVPBLENDW - opcVPBROADCASTB - opcVPBROADCASTD - opcVPBROADCASTMB2Q - opcVPBROADCASTMW2D - opcVPBROADCASTQ - opcVPBROADCASTW - opcVPCLMULQDQ - opcVPCMPB - opcVPCMPD - opcVPCMPEQB - opcVPCMPEQD - opcVPCMPEQQ - opcVPCMPEQW - opcVPCMPESTRI - opcVPCMPESTRM - opcVPCMPGTB - opcVPCMPGTD - opcVPCMPGTQ - opcVPCMPGTW - opcVPCMPISTRI - opcVPCMPISTRM - opcVPCMPQ - opcVPCMPUB - opcVPCMPUD - opcVPCMPUQ - opcVPCMPUW - opcVPCMPW - opcVPCOMPRESSB - opcVPCOMPRESSD - opcVPCOMPRESSQ - opcVPCOMPRESSW - opcVPCONFLICTD - opcVPCONFLICTQ - opcVPDPBUSD - opcVPDPBUSDS - opcVPDPWSSD - opcVPDPWSSDS - opcVPERM2F128 - opcVPERM2I128 - opcVPERMB - opcVPERMD - opcVPERMI2B - opcVPERMI2D - opcVPERMI2PD - opcVPERMI2PS - opcVPERMI2Q - opcVPERMI2W - opcVPERMILPD - opcVPERMILPS - opcVPERMPD - opcVPERMPS - opcVPERMQ - opcVPERMT2B - opcVPERMT2D - opcVPERMT2PD - opcVPERMT2PS - opcVPERMT2Q - opcVPERMT2W - opcVPERMW - opcVPEXPANDB - opcVPEXPANDD - opcVPEXPANDQ - opcVPEXPANDW - opcVPEXTRB - opcVPEXTRD - opcVPEXTRQ - opcVPEXTRW - opcVPGATHERDD - opcVPGATHERDQ - opcVPGATHERQD - opcVPGATHERQQ - opcVPHADDD - opcVPHADDSW - opcVPHADDW - opcVPHMINPOSUW - opcVPHSUBD - opcVPHSUBSW - opcVPHSUBW - opcVPINSRB - opcVPINSRD - opcVPINSRQ - opcVPINSRW - opcVPLZCNTD - opcVPLZCNTQ - opcVPMADD52HUQ - opcVPMADD52LUQ - opcVPMADDUBSW - opcVPMADDWD - opcVPMASKMOVD - opcVPMASKMOVQ - opcVPMAXSB - opcVPMAXSD - opcVPMAXSQ - opcVPMAXSW - opcVPMAXUB - opcVPMAXUD - opcVPMAXUQ - opcVPMAXUW - opcVPMINSB - opcVPMINSD - opcVPMINSQ - opcVPMINSW - opcVPMINUB - opcVPMINUD - opcVPMINUQ - opcVPMINUW - opcVPMOVB2M - opcVPMOVD2M - opcVPMOVDB - opcVPMOVDW - opcVPMOVM2B - opcVPMOVM2D - opcVPMOVM2Q - opcVPMOVM2W - opcVPMOVMSKB - opcVPMOVQ2M - opcVPMOVQB - opcVPMOVQD - opcVPMOVQW - opcVPMOVSDB - opcVPMOVSDW - opcVPMOVSQB - opcVPMOVSQD - opcVPMOVSQW - opcVPMOVSWB - opcVPMOVSXBD - opcVPMOVSXBQ - opcVPMOVSXBW - opcVPMOVSXDQ - opcVPMOVSXWD - opcVPMOVSXWQ - opcVPMOVUSDB - opcVPMOVUSDW - opcVPMOVUSQB - opcVPMOVUSQD - opcVPMOVUSQW - opcVPMOVUSWB - opcVPMOVW2M - opcVPMOVWB - opcVPMOVZXBD - opcVPMOVZXBQ - opcVPMOVZXBW - opcVPMOVZXDQ - opcVPMOVZXWD - opcVPMOVZXWQ - opcVPMULDQ - opcVPMULHRSW - opcVPMULHUW - opcVPMULHW - opcVPMULLD - opcVPMULLQ - opcVPMULLW - opcVPMULTISHIFTQB - opcVPMULUDQ - opcVPOPCNTB - opcVPOPCNTD - opcVPOPCNTQ - opcVPOPCNTW - opcVPOR - opcVPORD - opcVPORQ - opcVPROLD - opcVPROLQ - opcVPROLVD - opcVPROLVQ - opcVPRORD - opcVPRORQ - opcVPRORVD - opcVPRORVQ - opcVPSADBW - opcVPSCATTERDD - opcVPSCATTERDQ - opcVPSCATTERQD - opcVPSCATTERQQ - opcVPSHLDD - opcVPSHLDQ - opcVPSHLDVD - opcVPSHLDVQ - opcVPSHLDVW - opcVPSHLDW - opcVPSHRDD - opcVPSHRDQ - opcVPSHRDVD - opcVPSHRDVQ - opcVPSHRDVW - opcVPSHRDW - opcVPSHUFB - opcVPSHUFBITQMB - opcVPSHUFD - opcVPSHUFHW - opcVPSHUFLW - opcVPSIGNB - opcVPSIGND - opcVPSIGNW - opcVPSLLD - opcVPSLLDQ - opcVPSLLQ - opcVPSLLVD - opcVPSLLVQ - opcVPSLLVW - opcVPSLLW - opcVPSRAD - opcVPSRAQ - opcVPSRAVD - opcVPSRAVQ - opcVPSRAVW - opcVPSRAW - opcVPSRLD - opcVPSRLDQ - opcVPSRLQ - opcVPSRLVD - opcVPSRLVQ - opcVPSRLVW - opcVPSRLW - opcVPSUBB - opcVPSUBD - opcVPSUBQ - opcVPSUBSB - opcVPSUBSW - opcVPSUBUSB - opcVPSUBUSW - opcVPSUBW - opcVPTERNLOGD - opcVPTERNLOGQ - opcVPTEST - opcVPTESTMB - opcVPTESTMD - opcVPTESTMQ - opcVPTESTMW - opcVPTESTNMB - opcVPTESTNMD - opcVPTESTNMQ - opcVPTESTNMW - opcVPUNPCKHBW - opcVPUNPCKHDQ - opcVPUNPCKHQDQ - opcVPUNPCKHWD - opcVPUNPCKLBW - opcVPUNPCKLDQ - opcVPUNPCKLQDQ - opcVPUNPCKLWD - opcVPXOR - opcVPXORD - opcVPXORQ - opcVRANGEPD - opcVRANGEPS - opcVRANGESD - opcVRANGESS - opcVRCP14PD - opcVRCP14PS - opcVRCP14SD - opcVRCP14SS - opcVRCP28PD - opcVRCP28PS - opcVRCP28SD - opcVRCP28SS - opcVRCPPS - opcVRCPSS - opcVREDUCEPD - opcVREDUCEPS - opcVREDUCESD - opcVREDUCESS - opcVRNDSCALEPD - opcVRNDSCALEPS - opcVRNDSCALESD - opcVRNDSCALESS - opcVROUNDPD - opcVROUNDPS - opcVROUNDSD - opcVROUNDSS - opcVRSQRT14PD - opcVRSQRT14PS - opcVRSQRT14SD - opcVRSQRT14SS - opcVRSQRT28PD - opcVRSQRT28PS - opcVRSQRT28SD - opcVRSQRT28SS - opcVRSQRTPS - opcVRSQRTSS - opcVSCALEFPD - opcVSCALEFPS - opcVSCALEFSD - opcVSCALEFSS - opcVSCATTERDPD - opcVSCATTERDPS - opcVSCATTERQPD - opcVSCATTERQPS - opcVSHUFF32X4 - opcVSHUFF64X2 - opcVSHUFI32X4 - opcVSHUFI64X2 - opcVSHUFPD - opcVSHUFPS - opcVSQRTPD - opcVSQRTPS - opcVSQRTSD - opcVSQRTSS - opcVSTMXCSR - opcVSUBPD - opcVSUBPS - opcVSUBSD - opcVSUBSS - opcVTESTPD - opcVTESTPS - opcVUCOMISD - opcVUCOMISS - opcVUNPCKHPD - opcVUNPCKHPS - opcVUNPCKLPD - opcVUNPCKLPS - opcVXORPD - opcVXORPS - opcVZEROALL - opcVZEROUPPER - opcXADDB - opcXADDL - opcXADDQ - opcXADDW - opcXCHGB - opcXCHGL - opcXCHGQ - opcXCHGW - opcXGETBV - opcXLAT - opcXORB - opcXORL - opcXORPD - opcXORPS - opcXORQ - opcXORW - opcmax -) - -func (o opc) String() string { - if opcNone < o && o < opcmax { - return opcstringtable[o-1] - } - return "" -} - -var opcstringtable = []string{ - "ADCB", - "ADCL", - "ADCQ", - "ADCW", - "ADCXL", - "ADCXQ", - "ADDB", - "ADDL", - "ADDPD", - "ADDPS", - "ADDQ", - "ADDSD", - "ADDSS", - "ADDSUBPD", - "ADDSUBPS", - "ADDW", - "ADOXL", - "ADOXQ", - "AESDEC", - "AESDECLAST", - "AESENC", - "AESENCLAST", - "AESIMC", - "AESKEYGENASSIST", - "ANDB", - "ANDL", - "ANDNL", - "ANDNPD", - "ANDNPS", - "ANDNQ", - "ANDPD", - "ANDPS", - "ANDQ", - "ANDW", - "BEXTRL", - "BEXTRQ", - "BLENDPD", - "BLENDPS", - "BLENDVPD", - "BLENDVPS", - "BLSIL", - "BLSIQ", - "BLSMSKL", - "BLSMSKQ", - "BLSRL", - "BLSRQ", - "BSFL", - "BSFQ", - "BSFW", - "BSRL", - "BSRQ", - "BSRW", - "BSWAPL", - "BSWAPQ", - "BTCL", - "BTCQ", - "BTCW", - "BTL", - "BTQ", - "BTRL", - "BTRQ", - "BTRW", - "BTSL", - "BTSQ", - "BTSW", - "BTW", - "BZHIL", - "BZHIQ", - "CALL", - "CBW", - "CDQ", - "CDQE", - "CLC", - "CLD", - "CLFLUSH", - "CLFLUSHOPT", - "CMC", - "CMOVLCC", - "CMOVLCS", - "CMOVLEQ", - "CMOVLGE", - "CMOVLGT", - "CMOVLHI", - "CMOVLLE", - "CMOVLLS", - "CMOVLLT", - "CMOVLMI", - "CMOVLNE", - "CMOVLOC", - "CMOVLOS", - "CMOVLPC", - "CMOVLPL", - "CMOVLPS", - "CMOVQCC", - "CMOVQCS", - "CMOVQEQ", - "CMOVQGE", - "CMOVQGT", - "CMOVQHI", - "CMOVQLE", - "CMOVQLS", - "CMOVQLT", - "CMOVQMI", - "CMOVQNE", - "CMOVQOC", - "CMOVQOS", - "CMOVQPC", - "CMOVQPL", - "CMOVQPS", - "CMOVWCC", - "CMOVWCS", - "CMOVWEQ", - "CMOVWGE", - "CMOVWGT", - "CMOVWHI", - "CMOVWLE", - "CMOVWLS", - "CMOVWLT", - "CMOVWMI", - "CMOVWNE", - "CMOVWOC", - "CMOVWOS", - "CMOVWPC", - "CMOVWPL", - "CMOVWPS", - "CMPB", - "CMPL", - "CMPPD", - "CMPPS", - "CMPQ", - "CMPSD", - "CMPSS", - "CMPW", - "CMPXCHG16B", - "CMPXCHG8B", - "CMPXCHGB", - "CMPXCHGL", - "CMPXCHGQ", - "CMPXCHGW", - "COMISD", - "COMISS", - "CPUID", - "CQO", - "CRC32B", - "CRC32L", - "CRC32Q", - "CRC32W", - "CVTPD2PL", - "CVTPD2PS", - "CVTPL2PD", - "CVTPL2PS", - "CVTPS2PD", - "CVTPS2PL", - "CVTSD2SL", - "CVTSD2SS", - "CVTSL2SD", - "CVTSL2SS", - "CVTSQ2SD", - "CVTSQ2SS", - "CVTSS2SD", - "CVTSS2SL", - "CVTTPD2PL", - "CVTTPS2PL", - "CVTTSD2SL", - "CVTTSD2SQ", - "CVTTSS2SL", - "CWD", - "CWDE", - "DECB", - "DECL", - "DECQ", - "DECW", - "DIVB", - "DIVL", - "DIVPD", - "DIVPS", - "DIVQ", - "DIVSD", - "DIVSS", - "DIVW", - "DPPD", - "DPPS", - "EXTRACTPS", - "HADDPD", - "HADDPS", - "HSUBPD", - "HSUBPS", - "IDIVB", - "IDIVL", - "IDIVQ", - "IDIVW", - "IMUL3L", - "IMUL3Q", - "IMUL3W", - "IMULB", - "IMULL", - "IMULQ", - "IMULW", - "INCB", - "INCL", - "INCQ", - "INCW", - "INSERTPS", - "INT", - "JA", - "JAE", - "JB", - "JBE", - "JC", - "JCC", - "JCS", - "JCXZL", - "JCXZQ", - "JE", - "JEQ", - "JG", - "JGE", - "JGT", - "JHI", - "JHS", - "JL", - "JLE", - "JLO", - "JLS", - "JLT", - "JMI", - "JMP", - "JNA", - "JNAE", - "JNB", - "JNBE", - "JNC", - "JNE", - "JNG", - "JNGE", - "JNL", - "JNLE", - "JNO", - "JNP", - "JNS", - "JNZ", - "JO", - "JOC", - "JOS", - "JP", - "JPC", - "JPE", - "JPL", - "JPO", - "JPS", - "JS", - "JZ", - "KADDB", - "KADDD", - "KADDQ", - "KADDW", - "KANDB", - "KANDD", - "KANDNB", - "KANDND", - "KANDNQ", - "KANDNW", - "KANDQ", - "KANDW", - "KMOVB", - "KMOVD", - "KMOVQ", - "KMOVW", - "KNOTB", - "KNOTD", - "KNOTQ", - "KNOTW", - "KORB", - "KORD", - "KORQ", - "KORTESTB", - "KORTESTD", - "KORTESTQ", - "KORTESTW", - "KORW", - "KSHIFTLB", - "KSHIFTLD", - "KSHIFTLQ", - "KSHIFTLW", - "KSHIFTRB", - "KSHIFTRD", - "KSHIFTRQ", - "KSHIFTRW", - "KTESTB", - "KTESTD", - "KTESTQ", - "KTESTW", - "KUNPCKBW", - "KUNPCKDQ", - "KUNPCKWD", - "KXNORB", - "KXNORD", - "KXNORQ", - "KXNORW", - "KXORB", - "KXORD", - "KXORQ", - "KXORW", - "LDDQU", - "LDMXCSR", - "LEAL", - "LEAQ", - "LEAW", - "LFENCE", - "LZCNTL", - "LZCNTQ", - "LZCNTW", - "MASKMOVDQU", - "MASKMOVOU", - "MAXPD", - "MAXPS", - "MAXSD", - "MAXSS", - "MFENCE", - "MINPD", - "MINPS", - "MINSD", - "MINSS", - "MONITOR", - "MOVAPD", - "MOVAPS", - "MOVB", - "MOVBELL", - "MOVBEQQ", - "MOVBEWW", - "MOVBLSX", - "MOVBLZX", - "MOVBQSX", - "MOVBQZX", - "MOVBWSX", - "MOVBWZX", - "MOVD", - "MOVDDUP", - "MOVDQ2Q", - "MOVHLPS", - "MOVHPD", - "MOVHPS", - "MOVL", - "MOVLHPS", - "MOVLPD", - "MOVLPS", - "MOVLQSX", - "MOVLQZX", - "MOVMSKPD", - "MOVMSKPS", - "MOVNTDQ", - "MOVNTDQA", - "MOVNTIL", - "MOVNTIQ", - "MOVNTO", - "MOVNTPD", - "MOVNTPS", - "MOVO", - "MOVOA", - "MOVOU", - "MOVQ", - "MOVSD", - "MOVSHDUP", - "MOVSLDUP", - "MOVSS", - "MOVUPD", - "MOVUPS", - "MOVW", - "MOVWLSX", - "MOVWLZX", - "MOVWQSX", - "MOVWQZX", - "MPSADBW", - "MULB", - "MULL", - "MULPD", - "MULPS", - "MULQ", - "MULSD", - "MULSS", - "MULW", - "MULXL", - "MULXQ", - "MWAIT", - "NEGB", - "NEGL", - "NEGQ", - "NEGW", - "NOP", - "NOTB", - "NOTL", - "NOTQ", - "NOTW", - "ORB", - "ORL", - "ORPD", - "ORPS", - "ORQ", - "ORW", - "PABSB", - "PABSD", - "PABSW", - "PACKSSLW", - "PACKSSWB", - "PACKUSDW", - "PACKUSWB", - "PADDB", - "PADDD", - "PADDL", - "PADDQ", - "PADDSB", - "PADDSW", - "PADDUSB", - "PADDUSW", - "PADDW", - "PALIGNR", - "PAND", - "PANDN", - "PAUSE", - "PAVGB", - "PAVGW", - "PBLENDVB", - "PBLENDW", - "PCLMULQDQ", - "PCMPEQB", - "PCMPEQL", - "PCMPEQQ", - "PCMPEQW", - "PCMPESTRI", - "PCMPESTRM", - "PCMPGTB", - "PCMPGTL", - "PCMPGTQ", - "PCMPGTW", - "PCMPISTRI", - "PCMPISTRM", - "PDEPL", - "PDEPQ", - "PEXTL", - "PEXTQ", - "PEXTRB", - "PEXTRD", - "PEXTRQ", - "PEXTRW", - "PHADDD", - "PHADDSW", - "PHADDW", - "PHMINPOSUW", - "PHSUBD", - "PHSUBSW", - "PHSUBW", - "PINSRB", - "PINSRD", - "PINSRQ", - "PINSRW", - "PMADDUBSW", - "PMADDWL", - "PMAXSB", - "PMAXSD", - "PMAXSW", - "PMAXUB", - "PMAXUD", - "PMAXUW", - "PMINSB", - "PMINSD", - "PMINSW", - "PMINUB", - "PMINUD", - "PMINUW", - "PMOVMSKB", - "PMOVSXBD", - "PMOVSXBQ", - "PMOVSXBW", - "PMOVSXDQ", - "PMOVSXWD", - "PMOVSXWQ", - "PMOVZXBD", - "PMOVZXBQ", - "PMOVZXBW", - "PMOVZXDQ", - "PMOVZXWD", - "PMOVZXWQ", - "PMULDQ", - "PMULHRSW", - "PMULHUW", - "PMULHW", - "PMULLD", - "PMULLW", - "PMULULQ", - "POPCNTL", - "POPCNTQ", - "POPCNTW", - "POPQ", - "POPW", - "POR", - "PREFETCHNTA", - "PREFETCHT0", - "PREFETCHT1", - "PREFETCHT2", - "PSADBW", - "PSHUFB", - "PSHUFD", - "PSHUFHW", - "PSHUFL", - "PSHUFLW", - "PSIGNB", - "PSIGND", - "PSIGNW", - "PSLLDQ", - "PSLLL", - "PSLLO", - "PSLLQ", - "PSLLW", - "PSRAL", - "PSRAW", - "PSRLDQ", - "PSRLL", - "PSRLO", - "PSRLQ", - "PSRLW", - "PSUBB", - "PSUBL", - "PSUBQ", - "PSUBSB", - "PSUBSW", - "PSUBUSB", - "PSUBUSW", - "PSUBW", - "PTEST", - "PUNPCKHBW", - "PUNPCKHLQ", - "PUNPCKHQDQ", - "PUNPCKHWL", - "PUNPCKLBW", - "PUNPCKLLQ", - "PUNPCKLQDQ", - "PUNPCKLWL", - "PUSHQ", - "PUSHW", - "PXOR", - "RCLB", - "RCLL", - "RCLQ", - "RCLW", - "RCPPS", - "RCPSS", - "RCRB", - "RCRL", - "RCRQ", - "RCRW", - "RDRANDL", - "RDSEEDL", - "RDTSC", - "RDTSCP", - "RET", - "RETFL", - "RETFQ", - "RETFW", - "ROLB", - "ROLL", - "ROLQ", - "ROLW", - "RORB", - "RORL", - "RORQ", - "RORW", - "RORXL", - "RORXQ", - "ROUNDPD", - "ROUNDPS", - "ROUNDSD", - "ROUNDSS", - "RSQRTPS", - "RSQRTSS", - "SALB", - "SALL", - "SALQ", - "SALW", - "SARB", - "SARL", - "SARQ", - "SARW", - "SARXL", - "SARXQ", - "SBBB", - "SBBL", - "SBBQ", - "SBBW", - "SETCC", - "SETCS", - "SETEQ", - "SETGE", - "SETGT", - "SETHI", - "SETLE", - "SETLS", - "SETLT", - "SETMI", - "SETNE", - "SETOC", - "SETOS", - "SETPC", - "SETPL", - "SETPS", - "SFENCE", - "SHA1MSG1", - "SHA1MSG2", - "SHA1NEXTE", - "SHA1RNDS4", - "SHA256MSG1", - "SHA256MSG2", - "SHA256RNDS2", - "SHLB", - "SHLL", - "SHLQ", - "SHLW", - "SHLXL", - "SHLXQ", - "SHRB", - "SHRL", - "SHRQ", - "SHRW", - "SHRXL", - "SHRXQ", - "SHUFPD", - "SHUFPS", - "SQRTPD", - "SQRTPS", - "SQRTSD", - "SQRTSS", - "STC", - "STD", - "STMXCSR", - "SUBB", - "SUBL", - "SUBPD", - "SUBPS", - "SUBQ", - "SUBSD", - "SUBSS", - "SUBW", - "SYSCALL", - "TESTB", - "TESTL", - "TESTQ", - "TESTW", - "TZCNTL", - "TZCNTQ", - "TZCNTW", - "UCOMISD", - "UCOMISS", - "UD2", - "UNPCKHPD", - "UNPCKHPS", - "UNPCKLPD", - "UNPCKLPS", - "VADDPD", - "VADDPS", - "VADDSD", - "VADDSS", - "VADDSUBPD", - "VADDSUBPS", - "VAESDEC", - "VAESDECLAST", - "VAESENC", - "VAESENCLAST", - "VAESIMC", - "VAESKEYGENASSIST", - "VALIGND", - "VALIGNQ", - "VANDNPD", - "VANDNPS", - "VANDPD", - "VANDPS", - "VBLENDMPD", - "VBLENDMPS", - "VBLENDPD", - "VBLENDPS", - "VBLENDVPD", - "VBLENDVPS", - "VBROADCASTF128", - "VBROADCASTF32X2", - "VBROADCASTF32X4", - "VBROADCASTF32X8", - "VBROADCASTF64X2", - "VBROADCASTF64X4", - "VBROADCASTI128", - "VBROADCASTI32X2", - "VBROADCASTI32X4", - "VBROADCASTI32X8", - "VBROADCASTI64X2", - "VBROADCASTI64X4", - "VBROADCASTSD", - "VBROADCASTSS", - "VCMPPD", - "VCMPPS", - "VCMPSD", - "VCMPSS", - "VCOMISD", - "VCOMISS", - "VCOMPRESSPD", - "VCOMPRESSPS", - "VCVTDQ2PD", - "VCVTDQ2PS", - "VCVTPD2DQ", - "VCVTPD2DQX", - "VCVTPD2DQY", - "VCVTPD2PS", - "VCVTPD2PSX", - "VCVTPD2PSY", - "VCVTPD2QQ", - "VCVTPD2UDQ", - "VCVTPD2UDQX", - "VCVTPD2UDQY", - "VCVTPD2UQQ", - "VCVTPH2PS", - "VCVTPS2DQ", - "VCVTPS2PD", - "VCVTPS2PH", - "VCVTPS2QQ", - "VCVTPS2UDQ", - "VCVTPS2UQQ", - "VCVTQQ2PD", - "VCVTQQ2PS", - "VCVTQQ2PSX", - "VCVTQQ2PSY", - "VCVTSD2SI", - "VCVTSD2SIQ", - "VCVTSD2SS", - "VCVTSD2USIL", - "VCVTSD2USIQ", - "VCVTSI2SDL", - "VCVTSI2SDQ", - "VCVTSI2SSL", - "VCVTSI2SSQ", - "VCVTSS2SD", - "VCVTSS2SI", - "VCVTSS2SIQ", - "VCVTSS2USIL", - "VCVTSS2USIQ", - "VCVTTPD2DQ", - "VCVTTPD2DQX", - "VCVTTPD2DQY", - "VCVTTPD2QQ", - "VCVTTPD2UDQ", - "VCVTTPD2UDQX", - "VCVTTPD2UDQY", - "VCVTTPD2UQQ", - "VCVTTPS2DQ", - "VCVTTPS2QQ", - "VCVTTPS2UDQ", - "VCVTTPS2UQQ", - "VCVTTSD2SI", - "VCVTTSD2SIQ", - "VCVTTSD2USIL", - "VCVTTSD2USIQ", - "VCVTTSS2SI", - "VCVTTSS2SIQ", - "VCVTTSS2USIL", - "VCVTTSS2USIQ", - "VCVTUDQ2PD", - "VCVTUDQ2PS", - "VCVTUQQ2PD", - "VCVTUQQ2PS", - "VCVTUQQ2PSX", - "VCVTUQQ2PSY", - "VCVTUSI2SDL", - "VCVTUSI2SDQ", - "VCVTUSI2SSL", - "VCVTUSI2SSQ", - "VDBPSADBW", - "VDIVPD", - "VDIVPS", - "VDIVSD", - "VDIVSS", - "VDPPD", - "VDPPS", - "VEXP2PD", - "VEXP2PS", - "VEXPANDPD", - "VEXPANDPS", - "VEXTRACTF128", - "VEXTRACTF32X4", - "VEXTRACTF32X8", - "VEXTRACTF64X2", - "VEXTRACTF64X4", - "VEXTRACTI128", - "VEXTRACTI32X4", - "VEXTRACTI32X8", - "VEXTRACTI64X2", - "VEXTRACTI64X4", - "VEXTRACTPS", - "VFIXUPIMMPD", - "VFIXUPIMMPS", - "VFIXUPIMMSD", - "VFIXUPIMMSS", - "VFMADD132PD", - "VFMADD132PS", - "VFMADD132SD", - "VFMADD132SS", - "VFMADD213PD", - "VFMADD213PS", - "VFMADD213SD", - "VFMADD213SS", - "VFMADD231PD", - "VFMADD231PS", - "VFMADD231SD", - "VFMADD231SS", - "VFMADDSUB132PD", - "VFMADDSUB132PS", - "VFMADDSUB213PD", - "VFMADDSUB213PS", - "VFMADDSUB231PD", - "VFMADDSUB231PS", - "VFMSUB132PD", - "VFMSUB132PS", - "VFMSUB132SD", - "VFMSUB132SS", - "VFMSUB213PD", - "VFMSUB213PS", - "VFMSUB213SD", - "VFMSUB213SS", - "VFMSUB231PD", - "VFMSUB231PS", - "VFMSUB231SD", - "VFMSUB231SS", - "VFMSUBADD132PD", - "VFMSUBADD132PS", - "VFMSUBADD213PD", - "VFMSUBADD213PS", - "VFMSUBADD231PD", - "VFMSUBADD231PS", - "VFNMADD132PD", - "VFNMADD132PS", - "VFNMADD132SD", - "VFNMADD132SS", - "VFNMADD213PD", - "VFNMADD213PS", - "VFNMADD213SD", - "VFNMADD213SS", - "VFNMADD231PD", - "VFNMADD231PS", - "VFNMADD231SD", - "VFNMADD231SS", - "VFNMSUB132PD", - "VFNMSUB132PS", - "VFNMSUB132SD", - "VFNMSUB132SS", - "VFNMSUB213PD", - "VFNMSUB213PS", - "VFNMSUB213SD", - "VFNMSUB213SS", - "VFNMSUB231PD", - "VFNMSUB231PS", - "VFNMSUB231SD", - "VFNMSUB231SS", - "VFPCLASSPDX", - "VFPCLASSPDY", - "VFPCLASSPDZ", - "VFPCLASSPSX", - "VFPCLASSPSY", - "VFPCLASSPSZ", - "VFPCLASSSD", - "VFPCLASSSS", - "VGATHERDPD", - "VGATHERDPS", - "VGATHERQPD", - "VGATHERQPS", - "VGETEXPPD", - "VGETEXPPS", - "VGETEXPSD", - "VGETEXPSS", - "VGETMANTPD", - "VGETMANTPS", - "VGETMANTSD", - "VGETMANTSS", - "VGF2P8AFFINEINVQB", - "VGF2P8AFFINEQB", - "VGF2P8MULB", - "VHADDPD", - "VHADDPS", - "VHSUBPD", - "VHSUBPS", - "VINSERTF128", - "VINSERTF32X4", - "VINSERTF32X8", - "VINSERTF64X2", - "VINSERTF64X4", - "VINSERTI128", - "VINSERTI32X4", - "VINSERTI32X8", - "VINSERTI64X2", - "VINSERTI64X4", - "VINSERTPS", - "VLDDQU", - "VLDMXCSR", - "VMASKMOVDQU", - "VMASKMOVPD", - "VMASKMOVPS", - "VMAXPD", - "VMAXPS", - "VMAXSD", - "VMAXSS", - "VMINPD", - "VMINPS", - "VMINSD", - "VMINSS", - "VMOVAPD", - "VMOVAPS", - "VMOVD", - "VMOVDDUP", - "VMOVDQA", - "VMOVDQA32", - "VMOVDQA64", - "VMOVDQU", - "VMOVDQU16", - "VMOVDQU32", - "VMOVDQU64", - "VMOVDQU8", - "VMOVHLPS", - "VMOVHPD", - "VMOVHPS", - "VMOVLHPS", - "VMOVLPD", - "VMOVLPS", - "VMOVMSKPD", - "VMOVMSKPS", - "VMOVNTDQ", - "VMOVNTDQA", - "VMOVNTPD", - "VMOVNTPS", - "VMOVQ", - "VMOVSD", - "VMOVSHDUP", - "VMOVSLDUP", - "VMOVSS", - "VMOVUPD", - "VMOVUPS", - "VMPSADBW", - "VMULPD", - "VMULPS", - "VMULSD", - "VMULSS", - "VORPD", - "VORPS", - "VPABSB", - "VPABSD", - "VPABSQ", - "VPABSW", - "VPACKSSDW", - "VPACKSSWB", - "VPACKUSDW", - "VPACKUSWB", - "VPADDB", - "VPADDD", - "VPADDQ", - "VPADDSB", - "VPADDSW", - "VPADDUSB", - "VPADDUSW", - "VPADDW", - "VPALIGNR", - "VPAND", - "VPANDD", - "VPANDN", - "VPANDND", - "VPANDNQ", - "VPANDQ", - "VPAVGB", - "VPAVGW", - "VPBLENDD", - "VPBLENDMB", - "VPBLENDMD", - "VPBLENDMQ", - "VPBLENDMW", - "VPBLENDVB", - "VPBLENDW", - "VPBROADCASTB", - "VPBROADCASTD", - "VPBROADCASTMB2Q", - "VPBROADCASTMW2D", - "VPBROADCASTQ", - "VPBROADCASTW", - "VPCLMULQDQ", - "VPCMPB", - "VPCMPD", - "VPCMPEQB", - "VPCMPEQD", - "VPCMPEQQ", - "VPCMPEQW", - "VPCMPESTRI", - "VPCMPESTRM", - "VPCMPGTB", - "VPCMPGTD", - "VPCMPGTQ", - "VPCMPGTW", - "VPCMPISTRI", - "VPCMPISTRM", - "VPCMPQ", - "VPCMPUB", - "VPCMPUD", - "VPCMPUQ", - "VPCMPUW", - "VPCMPW", - "VPCOMPRESSB", - "VPCOMPRESSD", - "VPCOMPRESSQ", - "VPCOMPRESSW", - "VPCONFLICTD", - "VPCONFLICTQ", - "VPDPBUSD", - "VPDPBUSDS", - "VPDPWSSD", - "VPDPWSSDS", - "VPERM2F128", - "VPERM2I128", - "VPERMB", - "VPERMD", - "VPERMI2B", - "VPERMI2D", - "VPERMI2PD", - "VPERMI2PS", - "VPERMI2Q", - "VPERMI2W", - "VPERMILPD", - "VPERMILPS", - "VPERMPD", - "VPERMPS", - "VPERMQ", - "VPERMT2B", - "VPERMT2D", - "VPERMT2PD", - "VPERMT2PS", - "VPERMT2Q", - "VPERMT2W", - "VPERMW", - "VPEXPANDB", - "VPEXPANDD", - "VPEXPANDQ", - "VPEXPANDW", - "VPEXTRB", - "VPEXTRD", - "VPEXTRQ", - "VPEXTRW", - "VPGATHERDD", - "VPGATHERDQ", - "VPGATHERQD", - "VPGATHERQQ", - "VPHADDD", - "VPHADDSW", - "VPHADDW", - "VPHMINPOSUW", - "VPHSUBD", - "VPHSUBSW", - "VPHSUBW", - "VPINSRB", - "VPINSRD", - "VPINSRQ", - "VPINSRW", - "VPLZCNTD", - "VPLZCNTQ", - "VPMADD52HUQ", - "VPMADD52LUQ", - "VPMADDUBSW", - "VPMADDWD", - "VPMASKMOVD", - "VPMASKMOVQ", - "VPMAXSB", - "VPMAXSD", - "VPMAXSQ", - "VPMAXSW", - "VPMAXUB", - "VPMAXUD", - "VPMAXUQ", - "VPMAXUW", - "VPMINSB", - "VPMINSD", - "VPMINSQ", - "VPMINSW", - "VPMINUB", - "VPMINUD", - "VPMINUQ", - "VPMINUW", - "VPMOVB2M", - "VPMOVD2M", - "VPMOVDB", - "VPMOVDW", - "VPMOVM2B", - "VPMOVM2D", - "VPMOVM2Q", - "VPMOVM2W", - "VPMOVMSKB", - "VPMOVQ2M", - "VPMOVQB", - "VPMOVQD", - "VPMOVQW", - "VPMOVSDB", - "VPMOVSDW", - "VPMOVSQB", - "VPMOVSQD", - "VPMOVSQW", - "VPMOVSWB", - "VPMOVSXBD", - "VPMOVSXBQ", - "VPMOVSXBW", - "VPMOVSXDQ", - "VPMOVSXWD", - "VPMOVSXWQ", - "VPMOVUSDB", - "VPMOVUSDW", - "VPMOVUSQB", - "VPMOVUSQD", - "VPMOVUSQW", - "VPMOVUSWB", - "VPMOVW2M", - "VPMOVWB", - "VPMOVZXBD", - "VPMOVZXBQ", - "VPMOVZXBW", - "VPMOVZXDQ", - "VPMOVZXWD", - "VPMOVZXWQ", - "VPMULDQ", - "VPMULHRSW", - "VPMULHUW", - "VPMULHW", - "VPMULLD", - "VPMULLQ", - "VPMULLW", - "VPMULTISHIFTQB", - "VPMULUDQ", - "VPOPCNTB", - "VPOPCNTD", - "VPOPCNTQ", - "VPOPCNTW", - "VPOR", - "VPORD", - "VPORQ", - "VPROLD", - "VPROLQ", - "VPROLVD", - "VPROLVQ", - "VPRORD", - "VPRORQ", - "VPRORVD", - "VPRORVQ", - "VPSADBW", - "VPSCATTERDD", - "VPSCATTERDQ", - "VPSCATTERQD", - "VPSCATTERQQ", - "VPSHLDD", - "VPSHLDQ", - "VPSHLDVD", - "VPSHLDVQ", - "VPSHLDVW", - "VPSHLDW", - "VPSHRDD", - "VPSHRDQ", - "VPSHRDVD", - "VPSHRDVQ", - "VPSHRDVW", - "VPSHRDW", - "VPSHUFB", - "VPSHUFBITQMB", - "VPSHUFD", - "VPSHUFHW", - "VPSHUFLW", - "VPSIGNB", - "VPSIGND", - "VPSIGNW", - "VPSLLD", - "VPSLLDQ", - "VPSLLQ", - "VPSLLVD", - "VPSLLVQ", - "VPSLLVW", - "VPSLLW", - "VPSRAD", - "VPSRAQ", - "VPSRAVD", - "VPSRAVQ", - "VPSRAVW", - "VPSRAW", - "VPSRLD", - "VPSRLDQ", - "VPSRLQ", - "VPSRLVD", - "VPSRLVQ", - "VPSRLVW", - "VPSRLW", - "VPSUBB", - "VPSUBD", - "VPSUBQ", - "VPSUBSB", - "VPSUBSW", - "VPSUBUSB", - "VPSUBUSW", - "VPSUBW", - "VPTERNLOGD", - "VPTERNLOGQ", - "VPTEST", - "VPTESTMB", - "VPTESTMD", - "VPTESTMQ", - "VPTESTMW", - "VPTESTNMB", - "VPTESTNMD", - "VPTESTNMQ", - "VPTESTNMW", - "VPUNPCKHBW", - "VPUNPCKHDQ", - "VPUNPCKHQDQ", - "VPUNPCKHWD", - "VPUNPCKLBW", - "VPUNPCKLDQ", - "VPUNPCKLQDQ", - "VPUNPCKLWD", - "VPXOR", - "VPXORD", - "VPXORQ", - "VRANGEPD", - "VRANGEPS", - "VRANGESD", - "VRANGESS", - "VRCP14PD", - "VRCP14PS", - "VRCP14SD", - "VRCP14SS", - "VRCP28PD", - "VRCP28PS", - "VRCP28SD", - "VRCP28SS", - "VRCPPS", - "VRCPSS", - "VREDUCEPD", - "VREDUCEPS", - "VREDUCESD", - "VREDUCESS", - "VRNDSCALEPD", - "VRNDSCALEPS", - "VRNDSCALESD", - "VRNDSCALESS", - "VROUNDPD", - "VROUNDPS", - "VROUNDSD", - "VROUNDSS", - "VRSQRT14PD", - "VRSQRT14PS", - "VRSQRT14SD", - "VRSQRT14SS", - "VRSQRT28PD", - "VRSQRT28PS", - "VRSQRT28SD", - "VRSQRT28SS", - "VRSQRTPS", - "VRSQRTSS", - "VSCALEFPD", - "VSCALEFPS", - "VSCALEFSD", - "VSCALEFSS", - "VSCATTERDPD", - "VSCATTERDPS", - "VSCATTERQPD", - "VSCATTERQPS", - "VSHUFF32X4", - "VSHUFF64X2", - "VSHUFI32X4", - "VSHUFI64X2", - "VSHUFPD", - "VSHUFPS", - "VSQRTPD", - "VSQRTPS", - "VSQRTSD", - "VSQRTSS", - "VSTMXCSR", - "VSUBPD", - "VSUBPS", - "VSUBSD", - "VSUBSS", - "VTESTPD", - "VTESTPS", - "VUCOMISD", - "VUCOMISS", - "VUNPCKHPD", - "VUNPCKHPS", - "VUNPCKLPD", - "VUNPCKLPS", - "VXORPD", - "VXORPS", - "VZEROALL", - "VZEROUPPER", - "XADDB", - "XADDL", - "XADDQ", - "XADDW", - "XCHGB", - "XCHGL", - "XCHGQ", - "XCHGW", - "XGETBV", - "XLAT", - "XORB", - "XORL", - "XORPD", - "XORPS", - "XORQ", - "XORW", -} - -var forms = []form{ - {opcADCB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeAL), false, actionRW}}}, - {opcADCB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcADCB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcADCB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcADCB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcADCB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcADCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeEAX), false, actionRW}}}, - {opcADCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcADCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcADCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcADCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcADCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeRAX), false, actionRW}}}, - {opcADCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcADCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcADCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeAX), false, actionRW}}}, - {opcADCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcADCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcADCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcADCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcADCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcADCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcADCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcADCXL, sffxsclsNIL, 0, isasADX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADCXL, sffxsclsNIL, 0, isasADX, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADCXQ, sffxsclsNIL, 0, isasADX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADCXQ, sffxsclsNIL, 0, isasADX, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeAL), false, actionRW}}}, - {opcADDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcADDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcADDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcADDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcADDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeEAX), false, actionRW}}}, - {opcADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADDPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeRAX), false, actionRW}}}, - {opcADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADDSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDSUBPD, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDSUBPD, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDSUBPS, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDSUBPS, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeAX), false, actionRW}}}, - {opcADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcADOXL, sffxsclsNIL, 0, isasADX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADOXL, sffxsclsNIL, 0, isasADX, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcADOXQ, sffxsclsNIL, 0, isasADX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcADOXQ, sffxsclsNIL, 0, isasADX, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcAESDEC, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcAESDEC, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcAESDECLAST, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcAESDECLAST, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcAESENC, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcAESENC, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcAESENCLAST, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcAESENCLAST, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcAESIMC, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcAESIMC, sffxsclsNIL, 0, isasAES, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcAESKEYGENASSIST, sffxsclsNIL, 0, isasAES, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcAESKEYGENASSIST, sffxsclsNIL, 0, isasAES, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcANDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeAL), false, actionRW}}}, - {opcANDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcANDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcANDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcANDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcANDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcANDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeEAX), false, actionRW}}}, - {opcANDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcANDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcANDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcANDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcANDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcANDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcANDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcANDNL, sffxsclsNIL, 0, isasBMI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcANDNL, sffxsclsNIL, featureCancellingInputs, isasBMI, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcANDNPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcANDNPD, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcANDNPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcANDNPS, sffxsclsNIL, featureCancellingInputs, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcANDNQ, sffxsclsNIL, 0, isasBMI, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcANDNQ, sffxsclsNIL, featureCancellingInputs, isasBMI, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcANDPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcANDPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcANDPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcANDPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcANDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcANDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcANDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeRAX), false, actionRW}}}, - {opcANDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcANDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcANDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcANDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcANDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcANDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeAX), false, actionRW}}}, - {opcANDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcANDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcANDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcANDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcANDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcANDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcANDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBEXTRL, sffxsclsNIL, 0, isasBMI, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBEXTRL, sffxsclsNIL, 0, isasBMI, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBEXTRQ, sffxsclsNIL, 0, isasBMI, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcBEXTRQ, sffxsclsNIL, 0, isasBMI, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcBLENDPD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcBLENDPD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcBLENDPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcBLENDPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcBLENDVPD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeXMM0), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcBLENDVPD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeXMM0), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcBLENDVPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeXMM0), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcBLENDVPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeXMM0), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcBLSIL, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBLSIL, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBLSIQ, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcBLSIQ, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcBLSMSKL, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBLSMSKL, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBLSMSKQ, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcBLSMSKQ, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcBLSRL, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBLSRL, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBLSRQ, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcBLSRQ, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcBSFL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBSFL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBSFQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBSFQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBSFW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBSFW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBSRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBSRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBSRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBSRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBSRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBSRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBSWAPL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR32), false, actionRW}}}, - {opcBSWAPQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionRW}}}, - {opcBTCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcBTCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBTCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcBTCL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBTCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcBTCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBTCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcBTCQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBTCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcBTCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBTCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcBTCW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBTL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}}}, - {opcBTL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}}}, - {opcBTL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionR}}}, - {opcBTL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}}}, - {opcBTQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}}}, - {opcBTQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionR}}}, - {opcBTQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionR}}}, - {opcBTQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}}}, - {opcBTRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcBTRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBTRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcBTRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBTRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcBTRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBTRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcBTRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBTRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcBTRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBTRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcBTRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBTSL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcBTSL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBTSL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcBTSL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcBTSQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcBTSQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBTSQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcBTSQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcBTSW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcBTSW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBTSW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcBTSW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcBTW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionR}}}, - {opcBTW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionR}}}, - {opcBTW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionR}}}, - {opcBTW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionR}}}, - {opcBZHIL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBZHIL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcBZHIQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcBZHIQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcCALL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcCBW, sffxsclsNIL, 0, isasBase, 0, oprnds{{uint8(implregAX), true, actionW}, {uint8(implregAL), true, actionR}}}, - {opcCDQ, sffxsclsNIL, 0, isasBase, 0, oprnds{{uint8(implregEAX), true, actionR}, {uint8(implregEDX), true, actionW}}}, - {opcCDQE, sffxsclsNIL, 0, isasBase, 0, oprnds{{uint8(implregEAX), true, actionR}, {uint8(implregRAX), true, actionW}}}, - {opcCLC, sffxsclsNIL, 0, isasBase, 0, oprnds{}}, - {opcCLD, sffxsclsNIL, 0, isasBase, 0, oprnds{}}, - {opcCLFLUSH, sffxsclsNIL, 0, isasCLFLUSH, 1, oprnds{{uint8(oprndtypeM8), false, actionR}}}, - {opcCLFLUSHOPT, sffxsclsNIL, 0, isasCLFLUSHOPT, 1, oprnds{{uint8(oprndtypeM8), false, actionR}}}, - {opcCMC, sffxsclsNIL, 0, isasBase, 0, oprnds{}}, - {opcCMOVLCC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLCC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLCS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLCS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLEQ, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLEQ, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLGE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLGE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLGT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLGT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLHI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLHI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLLE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLLE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLLS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLLS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLLT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLLT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLMI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLMI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLNE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLNE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLOC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLOC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLOS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLOS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLPC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLPC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLPL, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLPL, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLPS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVLPS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMOVQCC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQCC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQCS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQCS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQEQ, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQEQ, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQGE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQGE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQGT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQGT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQHI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQHI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQLE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQLE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQLS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQLS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQLT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQLT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQMI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQMI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQNE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQNE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQOC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQOC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQOS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQOS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQPC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQPC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQPL, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQPL, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQPS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVQPS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMOVWCC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWCC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWCS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWCS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWEQ, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWEQ, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWGE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWGE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWGT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWGT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWHI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWHI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWLE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWLE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWLS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWLS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWLT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWLT, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWMI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWMI, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWNE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWNE, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWOC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWOC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWOS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWOS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWPC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWPC, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWPL, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWPL, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWPS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMOVWPS, sffxsclsNIL, 0, isasCMOV, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCMPB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeAL), false, actionR}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR8), false, actionR}}}, - {opcCMPB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionR}}}, - {opcCMPB, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionR}}}, - {opcCMPL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeEAX), false, actionR}, {uint8(oprndtypeIMM32), false, actionN}}}, - {opcCMPL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeIMM32), false, actionN}}}, - {opcCMPL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionR}}}, - {opcCMPL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeIMM32), false, actionN}}}, - {opcCMPL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionR}}}, - {opcCMPL, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}}}, - {opcCMPPD, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPPD, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPPS, sffxsclsNIL, 0, isasSSE, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPPS, sffxsclsNIL, 0, isasSSE, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeIMM32), false, actionN}}}, - {opcCMPQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionR}}}, - {opcCMPQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeIMM32), false, actionN}}}, - {opcCMPQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionR}}}, - {opcCMPQ, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}}}, - {opcCMPQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeRAX), false, actionR}, {uint8(oprndtypeIMM32), false, actionN}}}, - {opcCMPSD, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPSD, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPSS, sffxsclsNIL, 0, isasSSE, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPSS, sffxsclsNIL, 0, isasSSE, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeAX), false, actionR}, {uint8(oprndtypeIMM16), false, actionN}}}, - {opcCMPW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeIMM16), false, actionN}}}, - {opcCMPW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionR}}}, - {opcCMPW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeIMM16), false, actionN}}}, - {opcCMPW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeIMM8), false, actionN}}}, - {opcCMPW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionR}}}, - {opcCMPW, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionR}}}, - {opcCMPXCHG16B, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(implregRAX), true, actionRW}, {uint8(implregRBX), true, actionR}, {uint8(implregRCX), true, actionR}, {uint8(implregRDX), true, actionRW}}}, - {opcCMPXCHG8B, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(implregEAX), true, actionRW}, {uint8(implregEBX), true, actionR}, {uint8(implregECX), true, actionR}, {uint8(implregEDX), true, actionRW}}}, - {opcCMPXCHGB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcCMPXCHGB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcCMPXCHGL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcCMPXCHGL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCMPXCHGQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcCMPXCHGQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCMPXCHGW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcCMPXCHGW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcCOMISD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcCOMISD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcCOMISS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcCOMISS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcCPUID, sffxsclsNIL, 0, isasCPUID, 0, oprnds{{uint8(implregEAX), true, actionRW}, {uint8(implregEBX), true, actionW}, {uint8(implregECX), true, actionRW}, {uint8(implregEDX), true, actionW}}}, - {opcCQO, sffxsclsNIL, 0, isasBase, 0, oprnds{{uint8(implregRAX), true, actionR}, {uint8(implregRDX), true, actionW}}}, - {opcCRC32B, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCRC32B, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCRC32B, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCRC32B, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCRC32L, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCRC32L, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCRC32Q, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCRC32Q, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcCRC32W, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCRC32W, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcCVTPD2PL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPD2PL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPD2PS, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPD2PS, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPL2PD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPL2PD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPL2PS, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPL2PS, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPS2PD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPS2PD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPS2PL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTPS2PL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTSD2SL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcCVTSD2SL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcCVTSD2SL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcCVTSD2SL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcCVTSD2SS, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSD2SS, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSL2SD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSL2SD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSL2SS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSL2SS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSQ2SD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSQ2SD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSQ2SS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSQ2SS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSS2SD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSS2SD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcCVTSS2SL, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcCVTSS2SL, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcCVTSS2SL, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcCVTSS2SL, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcCVTTPD2PL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTTPD2PL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTTPS2PL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTTPS2PL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcCVTTSD2SL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcCVTTSD2SL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcCVTTSD2SQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcCVTTSD2SQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcCVTTSS2SL, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcCVTTSS2SL, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcCVTTSS2SL, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcCVTTSS2SL, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcCWD, sffxsclsNIL, 0, isasBase, 0, oprnds{{uint8(implregAX), true, actionR}, {uint8(implregDX), true, actionW}}}, - {opcCWDE, sffxsclsNIL, 0, isasBase, 0, oprnds{{uint8(implregAX), true, actionR}, {uint8(implregEAX), true, actionW}}}, - {opcDECB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionRW}}}, - {opcDECB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionRW}}}, - {opcDECL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM32), false, actionRW}}}, - {opcDECL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR32), false, actionRW}}}, - {opcDECQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionRW}}}, - {opcDECQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionRW}}}, - {opcDECW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionRW}}}, - {opcDECW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionRW}}}, - {opcDIVB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(implregAX), true, actionRW}}}, - {opcDIVB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(implregAX), true, actionRW}}}, - {opcDIVL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(implregEAX), true, actionRW}, {uint8(implregEDX), true, actionRW}}}, - {opcDIVL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(implregEAX), true, actionRW}, {uint8(implregEDX), true, actionRW}}}, - {opcDIVPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDIVPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDIVPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDIVPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDIVQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(implregRAX), true, actionRW}, {uint8(implregRDX), true, actionRW}}}, - {opcDIVQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(implregRAX), true, actionRW}, {uint8(implregRDX), true, actionRW}}}, - {opcDIVSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDIVSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDIVSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDIVSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDIVW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(implregAX), true, actionRW}, {uint8(implregDX), true, actionRW}}}, - {opcDIVW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(implregAX), true, actionRW}, {uint8(implregDX), true, actionRW}}}, - {opcDPPD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDPPD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDPPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcDPPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcEXTRACTPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM2U), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcEXTRACTPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM2U), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcHADDPD, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcHADDPD, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcHADDPS, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcHADDPS, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcHSUBPD, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcHSUBPD, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcHSUBPS, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcHSUBPS, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcIDIVB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(implregAX), true, actionRW}}}, - {opcIDIVB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(implregAX), true, actionRW}}}, - {opcIDIVL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(implregEAX), true, actionRW}, {uint8(implregEDX), true, actionRW}}}, - {opcIDIVL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(implregEAX), true, actionRW}, {uint8(implregEDX), true, actionRW}}}, - {opcIDIVQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(implregRAX), true, actionRW}, {uint8(implregRDX), true, actionRW}}}, - {opcIDIVQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(implregRAX), true, actionRW}, {uint8(implregRDX), true, actionRW}}}, - {opcIDIVW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(implregAX), true, actionRW}, {uint8(implregDX), true, actionRW}}}, - {opcIDIVW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(implregAX), true, actionRW}, {uint8(implregDX), true, actionRW}}}, - {opcIMUL3L, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcIMUL3L, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcIMUL3L, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcIMUL3L, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcIMUL3Q, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcIMUL3Q, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcIMUL3Q, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcIMUL3Q, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcIMUL3W, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcIMUL3W, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcIMUL3W, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcIMUL3W, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcIMULB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(implregAX), true, actionW}, {uint8(implregAL), true, actionR}}}, - {opcIMULB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(implregAX), true, actionW}, {uint8(implregAL), true, actionR}}}, - {opcIMULL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcIMULL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(implregEAX), true, actionRW}, {uint8(implregEDX), true, actionW}}}, - {opcIMULL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcIMULL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(implregEAX), true, actionRW}, {uint8(implregEDX), true, actionW}}}, - {opcIMULQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcIMULQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(implregRAX), true, actionRW}, {uint8(implregRDX), true, actionW}}}, - {opcIMULQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcIMULQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(implregRAX), true, actionRW}, {uint8(implregRDX), true, actionW}}}, - {opcIMULW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcIMULW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(implregAX), true, actionRW}, {uint8(implregDX), true, actionW}}}, - {opcIMULW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcIMULW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(implregAX), true, actionRW}, {uint8(implregDX), true, actionW}}}, - {opcINCB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionRW}}}, - {opcINCB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionRW}}}, - {opcINCL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM32), false, actionRW}}}, - {opcINCL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR32), false, actionRW}}}, - {opcINCQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionRW}}}, - {opcINCQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionRW}}}, - {opcINCW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionRW}}}, - {opcINCW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionRW}}}, - {opcINSERTPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcINSERTPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcINT, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtype3), false, actionN}}}, - {opcINT, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeIMM8), false, actionN}}}, - {opcJA, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJA, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJAE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJAE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJB, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJB, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJBE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJBE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJCC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJCC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJCS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJCS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJCXZL, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}, {uint8(implregECX), true, actionR}}}, - {opcJCXZQ, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}, {uint8(implregRCX), true, actionR}}}, - {opcJE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJEQ, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJEQ, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJG, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJG, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJGE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJGE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJGT, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJGT, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJHI, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJHI, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJHS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJHS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJL, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJL, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJLE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJLE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJLO, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJLO, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJLS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJLS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJLT, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJLT, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJMI, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJMI, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJMP, sffxsclsNIL, featureBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJMP, sffxsclsNIL, featureBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJMP, sffxsclsNIL, featureBranch, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionR}}}, - {opcJMP, sffxsclsNIL, featureBranch, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionR}}}, - {opcJNA, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNA, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNAE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNAE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNB, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNB, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNBE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNBE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNG, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNG, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNGE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNGE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNL, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNL, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNLE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNLE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNO, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNO, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNP, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNP, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJNZ, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJNZ, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJO, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJO, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJOC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJOC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJOS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJOS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJP, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJP, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJPC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJPC, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJPE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJPE, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJPL, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJPL, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJPO, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJPO, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJPS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJPS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJS, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcJZ, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL32), false, actionN}}}, - {opcJZ, sffxsclsNIL, featureBranch | featureConditionalBranch, isasBase, 1, oprnds{{uint8(oprndtypeREL8), false, actionN}}}, - {opcKADDB, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKADDD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKADDQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKADDW, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKANDB, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKANDD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKANDNB, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKANDND, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKANDNQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKANDNW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKANDQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKANDW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVB, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVB, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM8), false, actionW}}}, - {opcKMOVB, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcKMOVB, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVB, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVD, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVD, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcKMOVD, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcKMOVD, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVD, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVQ, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVQ, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcKMOVQ, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcKMOVQ, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVQ, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcKMOVW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcKMOVW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKMOVW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKNOTB, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKNOTD, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKNOTQ, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKNOTW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKORB, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKORD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKORQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKORTESTB, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}}}, - {opcKORTESTD, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}}}, - {opcKORTESTQ, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}}}, - {opcKORTESTW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}}}, - {opcKORW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKSHIFTLB, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKSHIFTLD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKSHIFTLQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKSHIFTLW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKSHIFTRB, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKSHIFTRD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKSHIFTRQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKSHIFTRW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKTESTB, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}}}, - {opcKTESTD, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}}}, - {opcKTESTQ, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}}}, - {opcKTESTW, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}}}, - {opcKUNPCKBW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKUNPCKDQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKUNPCKWD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKXNORB, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKXNORD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKXNORQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKXNORW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKXORB, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKXORD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKXORQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcKXORW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcLDDQU, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcLDMXCSR, sffxsclsNIL, 0, isasSSE, 1, oprnds{{uint8(oprndtypeM32), false, actionR}}}, - {opcLEAL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcLEAQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcLEAW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcLFENCE, sffxsclsNIL, 0, isasSSE2, 0, oprnds{}}, - {opcLZCNTL, sffxsclsNIL, 0, isasLZCNT, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcLZCNTL, sffxsclsNIL, 0, isasLZCNT, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcLZCNTQ, sffxsclsNIL, 0, isasLZCNT, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcLZCNTQ, sffxsclsNIL, 0, isasLZCNT, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcLZCNTW, sffxsclsNIL, 0, isasLZCNT, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcLZCNTW, sffxsclsNIL, 0, isasLZCNT, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcMASKMOVDQU, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregRDI), true, actionR}}}, - {opcMASKMOVOU, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregRDI), true, actionR}}}, - {opcMAXPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMAXPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMAXPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMAXPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMAXSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMAXSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMAXSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMAXSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMFENCE, sffxsclsNIL, 0, isasSSE2, 0, oprnds{}}, - {opcMINPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMINPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMINPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMINPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMINSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMINSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMINSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMINSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMONITOR, sffxsclsNIL, 0, isasMONITOR, 0, oprnds{{uint8(implregRAX), true, actionR}, {uint8(implregECX), true, actionR}, {uint8(implregEDX), true, actionR}}}, - {opcMOVAPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVAPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVAPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVAPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVAPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVAPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionW}}}, - {opcMOVB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionW}}}, - {opcMOVB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR8), false, actionW}}}, - {opcMOVB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionW}}}, - {opcMOVB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionW}}}, - {opcMOVBELL, sffxsclsNIL, 0, isasMOVBE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVBELL, sffxsclsNIL, 0, isasMOVBE, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcMOVBEQQ, sffxsclsNIL, 0, isasMOVBE, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVBEQQ, sffxsclsNIL, 0, isasMOVBE, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVBEWW, sffxsclsNIL, 0, isasMOVBE, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcMOVBEWW, sffxsclsNIL, 0, isasMOVBE, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcMOVBLSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVBLSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVBLZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVBLZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVBQSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVBQSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVBQZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVBQZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVBWSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcMOVBWSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcMOVBWZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcMOVBWZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM64), false, actionN}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVD, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVDDUP, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVDDUP, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM64), false, actionN}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVDQ2Q, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVHLPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMOVHPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMOVHPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVHPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMOVHPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionW}}}, - {opcMOVL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcMOVL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVLHPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMOVLPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMOVLPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVLPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMOVLPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVLQSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVLQSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVLQZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVMSKPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVMSKPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVNTDQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVNTDQA, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVNTIL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcMOVNTIQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVNTO, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVNTPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVNTPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVO, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVO, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVO, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVOA, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVOA, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVOA, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVOU, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVOU, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVOU, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM64), false, actionN}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcMOVSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMOVSHDUP, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVSHDUP, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVSLDUP, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVSLDUP, sffxsclsNIL, 0, isasSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcMOVSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMOVUPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVUPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVUPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVUPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVUPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcMOVUPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcMOVW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionW}}}, - {opcMOVW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionW}}}, - {opcMOVW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcMOVW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcMOVW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcMOVWLSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVWLSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVWLZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVWLZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcMOVWQSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVWQSX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVWQZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMOVWQZX, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcMPSADBW, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMPSADBW, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMULB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(implregAX), true, actionW}, {uint8(implregAL), true, actionR}}}, - {opcMULB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(implregAX), true, actionW}, {uint8(implregAL), true, actionR}}}, - {opcMULL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(implregEAX), true, actionRW}, {uint8(implregEDX), true, actionW}}}, - {opcMULL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(implregEAX), true, actionRW}, {uint8(implregEDX), true, actionW}}}, - {opcMULPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMULPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMULPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMULPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMULQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(implregRAX), true, actionRW}, {uint8(implregRDX), true, actionW}}}, - {opcMULQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(implregRAX), true, actionRW}, {uint8(implregRDX), true, actionW}}}, - {opcMULSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMULSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMULSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMULSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcMULW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(implregAX), true, actionRW}, {uint8(implregDX), true, actionW}}}, - {opcMULW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(implregAX), true, actionRW}, {uint8(implregDX), true, actionW}}}, - {opcMULXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}, {uint8(oprndtypeR32), false, actionW}, {uint8(implregEDX), true, actionR}}}, - {opcMULXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}, {uint8(oprndtypeR32), false, actionW}, {uint8(implregEDX), true, actionR}}}, - {opcMULXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}, {uint8(oprndtypeR64), false, actionW}, {uint8(implregRDX), true, actionR}}}, - {opcMULXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}, {uint8(oprndtypeR64), false, actionW}, {uint8(implregRDX), true, actionR}}}, - {opcMWAIT, sffxsclsNIL, 0, isasMONITOR, 0, oprnds{{uint8(implregEAX), true, actionR}, {uint8(implregECX), true, actionR}}}, - {opcNEGB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionRW}}}, - {opcNEGB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionRW}}}, - {opcNEGL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM32), false, actionRW}}}, - {opcNEGL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR32), false, actionRW}}}, - {opcNEGQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionRW}}}, - {opcNEGQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionRW}}}, - {opcNEGW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionRW}}}, - {opcNEGW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionRW}}}, - {opcNOP, sffxsclsNIL, 0, isasBase, 0, oprnds{}}, - {opcNOTB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionRW}}}, - {opcNOTB, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionRW}}}, - {opcNOTL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM32), false, actionRW}}}, - {opcNOTL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR32), false, actionRW}}}, - {opcNOTQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionRW}}}, - {opcNOTQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionRW}}}, - {opcNOTW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionRW}}}, - {opcNOTW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionRW}}}, - {opcORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeAL), false, actionRW}}}, - {opcORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeEAX), false, actionRW}}}, - {opcORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcORPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcORPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcORPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcORPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeRAX), false, actionRW}}}, - {opcORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeAX), false, actionRW}}}, - {opcORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcPABSB, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPABSB, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPABSD, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPABSD, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPABSW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPABSW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPACKSSLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPACKSSLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPACKSSWB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPACKSSWB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPACKUSDW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPACKUSDW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPACKUSWB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPACKUSWB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDSB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDSB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDUSB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDUSB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDUSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDUSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPADDW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPALIGNR, sffxsclsNIL, 0, isasSSSE3, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPALIGNR, sffxsclsNIL, 0, isasSSSE3, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPAND, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPAND, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPANDN, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPANDN, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPAUSE, sffxsclsNIL, 0, isasBase, 0, oprnds{}}, - {opcPAVGB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPAVGB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPAVGW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPAVGW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPBLENDVB, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeXMM0), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPBLENDVB, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeXMM0), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPBLENDW, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPBLENDW, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCLMULQDQ, sffxsclsNIL, 0, isasPCLMULQDQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCLMULQDQ, sffxsclsNIL, 0, isasPCLMULQDQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPEQB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPEQB, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPEQL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPEQL, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPEQQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPEQQ, sffxsclsNIL, featureCancellingInputs, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPEQW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPEQW, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPESTRI, sffxsclsNIL, 0, isasSSE42, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregEAX), true, actionR}, {uint8(implregECX), true, actionW}, {uint8(implregEDX), true, actionR}}}, - {opcPCMPESTRI, sffxsclsNIL, 0, isasSSE42, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregEAX), true, actionR}, {uint8(implregECX), true, actionW}, {uint8(implregEDX), true, actionR}}}, - {opcPCMPESTRM, sffxsclsNIL, 0, isasSSE42, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregEAX), true, actionR}, {uint8(implregEDX), true, actionR}, {uint8(implregX0), true, actionW}}}, - {opcPCMPESTRM, sffxsclsNIL, 0, isasSSE42, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregEAX), true, actionR}, {uint8(implregEDX), true, actionR}, {uint8(implregX0), true, actionW}}}, - {opcPCMPGTB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPGTB, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPGTL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPGTL, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPGTQ, sffxsclsNIL, 0, isasSSE42, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPGTQ, sffxsclsNIL, featureCancellingInputs, isasSSE42, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPGTW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPGTW, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPCMPISTRI, sffxsclsNIL, 0, isasSSE42, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregECX), true, actionW}}}, - {opcPCMPISTRI, sffxsclsNIL, 0, isasSSE42, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregECX), true, actionW}}}, - {opcPCMPISTRM, sffxsclsNIL, 0, isasSSE42, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregX0), true, actionW}}}, - {opcPCMPISTRM, sffxsclsNIL, 0, isasSSE42, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregX0), true, actionW}}}, - {opcPDEPL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPDEPL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPDEPQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcPDEPQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcPEXTL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPEXTL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPEXTQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcPEXTQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcPEXTRB, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM8), false, actionW}}}, - {opcPEXTRB, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPEXTRD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcPEXTRD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPEXTRQ, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcPEXTRQ, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcPEXTRW, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcPEXTRW, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPHADDD, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHADDD, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHADDSW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHADDSW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHADDW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHADDW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHMINPOSUW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPHMINPOSUW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPHSUBD, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHSUBD, sffxsclsNIL, featureCancellingInputs, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHSUBSW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHSUBSW, sffxsclsNIL, featureCancellingInputs, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHSUBW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPHSUBW, sffxsclsNIL, featureCancellingInputs, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPINSRB, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPINSRB, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPINSRD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPINSRD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPINSRQ, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPINSRQ, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPINSRW, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPINSRW, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMADDUBSW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMADDUBSW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMADDWL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMADDWL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXSB, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXSB, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXSD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXSD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXUB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXUB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXUD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXUD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXUW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMAXUW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINSB, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINSB, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINSD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINSD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINUB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINUB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINUD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINUD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINUW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMINUW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMOVMSKB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPMOVSXBD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXBD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXBQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXBQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXBW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXBW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXDQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXDQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXWD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXWD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXWQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVSXWQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXBD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXBD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXBQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXBQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXBW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXBW, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXDQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXDQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXWD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXWD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXWQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMOVZXWQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPMULDQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULDQ, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULHRSW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULHRSW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULHUW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULHUW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULHW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULHW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULLD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULLD, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULULQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPMULULQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPOPCNTL, sffxsclsNIL, 0, isasPOPCNT, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPOPCNTL, sffxsclsNIL, 0, isasPOPCNT, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcPOPCNTQ, sffxsclsNIL, 0, isasPOPCNT, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcPOPCNTQ, sffxsclsNIL, 0, isasPOPCNT, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcPOPCNTW, sffxsclsNIL, 0, isasPOPCNT, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcPOPCNTW, sffxsclsNIL, 0, isasPOPCNT, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcPOPQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionW}}}, - {opcPOPQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionW}}}, - {opcPOPW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionW}}}, - {opcPOPW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionW}}}, - {opcPOR, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPOR, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPREFETCHNTA, sffxsclsNIL, 0, isasMMX, 1, oprnds{{uint8(oprndtypeM8), false, actionR}}}, - {opcPREFETCHT0, sffxsclsNIL, 0, isasMMX, 1, oprnds{{uint8(oprndtypeM8), false, actionR}}}, - {opcPREFETCHT1, sffxsclsNIL, 0, isasMMX, 1, oprnds{{uint8(oprndtypeM8), false, actionR}}}, - {opcPREFETCHT2, sffxsclsNIL, 0, isasMMX, 1, oprnds{{uint8(oprndtypeM8), false, actionR}}}, - {opcPSADBW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSADBW, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSHUFB, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSHUFB, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSHUFD, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSHUFD, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSHUFHW, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSHUFHW, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSHUFL, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSHUFL, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSHUFLW, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSHUFLW, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSIGNB, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSIGNB, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSIGND, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSIGND, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSIGNW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSIGNW, sffxsclsNIL, 0, isasSSSE3, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcPSLLDQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLO, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSLLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRAL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRAL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRAL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRAW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRAW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRAW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLDQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLO, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSRLW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBB, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBL, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBQ, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBSB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBSB, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBSW, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBUSB, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBUSB, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBUSW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBUSW, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPSUBW, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPTEST, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcPTEST, sffxsclsNIL, 0, isasSSE41, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcPUNPCKHBW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKHBW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKHLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKHLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKHQDQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKHQDQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKHWL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKHWL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKLBW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKLBW, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKLLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKLLQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKLQDQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKLQDQ, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKLWL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUNPCKLWL, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPUSHQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeIMM32), false, actionN}}}, - {opcPUSHQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeIMM8), false, actionN}}}, - {opcPUSHQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM64), false, actionR}}}, - {opcPUSHQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR64), false, actionR}}}, - {opcPUSHW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM16), false, actionR}}}, - {opcPUSHW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR16), false, actionR}}}, - {opcPXOR, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcPXOR, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcRCLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcRCLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcRCLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcRCLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcRCLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcRCLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcRCLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcRCLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcRCLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcRCLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcRCLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcRCLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcRCLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcRCLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcRCLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcRCLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcRCLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcRCLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcRCLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcRCLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRCLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcRCLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRCLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcRCLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRCPPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcRCPPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcRCPSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcRCPSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcRCRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcRCRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcRCRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcRCRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcRCRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcRCRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcRCRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcRCRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcRCRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcRCRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcRCRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcRCRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcRCRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcRCRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcRCRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcRCRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcRCRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcRCRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcRCRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcRCRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRCRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcRCRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRCRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcRCRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRDRANDL, sffxsclsNIL, 0, isasRDRAND, 1, oprnds{{uint8(oprndtypeR16), false, actionW}}}, - {opcRDRANDL, sffxsclsNIL, 0, isasRDRAND, 1, oprnds{{uint8(oprndtypeR32), false, actionW}}}, - {opcRDRANDL, sffxsclsNIL, 0, isasRDRAND, 1, oprnds{{uint8(oprndtypeR64), false, actionW}}}, - {opcRDSEEDL, sffxsclsNIL, 0, isasRDSEED, 1, oprnds{{uint8(oprndtypeR16), false, actionW}}}, - {opcRDSEEDL, sffxsclsNIL, 0, isasRDSEED, 1, oprnds{{uint8(oprndtypeR32), false, actionW}}}, - {opcRDSEEDL, sffxsclsNIL, 0, isasRDSEED, 1, oprnds{{uint8(oprndtypeR64), false, actionW}}}, - {opcRDTSC, sffxsclsNIL, 0, isasRDTSC, 0, oprnds{{uint8(implregEAX), true, actionW}, {uint8(implregEDX), true, actionW}}}, - {opcRDTSCP, sffxsclsNIL, 0, isasRDTSCP, 0, oprnds{{uint8(implregEAX), true, actionW}, {uint8(implregECX), true, actionW}, {uint8(implregEDX), true, actionW}}}, - {opcRET, sffxsclsNIL, featureTerminal, isasBase, 0, oprnds{}}, - {opcRETFL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeIMM16), false, actionN}}}, - {opcRETFQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeIMM16), false, actionN}}}, - {opcRETFW, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeIMM16), false, actionN}}}, - {opcROLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcROLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcROLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcROLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcROLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcROLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcROLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcROLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcROLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcROLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcROLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcROLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcROLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcROLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcROLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcROLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcROLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcROLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcROLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcROLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcROLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcROLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcROLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcROLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcRORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcRORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcRORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcRORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcRORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcRORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcRORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcRORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcRORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcRORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcRORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcRORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcRORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcRORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcRORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcRORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcRORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcRORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcRORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcRORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcRORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcRORXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcRORXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcRORXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcRORXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcROUNDPD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcROUNDPD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcROUNDPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcROUNDPS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcROUNDSD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcROUNDSD, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcROUNDSS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcROUNDSS, sffxsclsNIL, 0, isasSSE41, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcRSQRTPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcRSQRTPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcRSQRTSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcRSQRTSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSALB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSALB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSALB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSALB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSALB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSALB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSALL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSALL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSALL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSALL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSALL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSALL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSALQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSALQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSALQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSALQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSALQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSALQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSALW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSALW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSALW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSALW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSALW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSALW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSARB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSARB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSARB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSARB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSARB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSARB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSARL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSARL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSARL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSARL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSARL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSARL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSARQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSARQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSARQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSARQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSARQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSARQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSARW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSARW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSARW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSARW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSARW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSARW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSARXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcSARXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcSARXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcSARXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcSBBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeAL), false, actionRW}}}, - {opcSBBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSBBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSBBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSBBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSBBB, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSBBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeEAX), false, actionRW}}}, - {opcSBBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSBBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSBBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSBBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSBBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSBBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSBBL, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSBBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSBBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSBBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeRAX), false, actionRW}}}, - {opcSBBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSBBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSBBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSBBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSBBQ, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSBBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeAX), false, actionRW}}}, - {opcSBBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSBBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSBBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSBBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSBBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSBBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSBBW, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSETCC, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETCC, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETCS, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETCS, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETEQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETEQ, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETGE, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETGE, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETGT, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETGT, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETHI, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETHI, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETLE, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETLE, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETLS, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETLS, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETLT, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETLT, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETMI, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETMI, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETNE, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETNE, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETOC, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETOC, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETOS, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETOS, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETPC, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETPC, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETPL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETPL, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSETPS, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeM8), false, actionW}}}, - {opcSETPS, sffxsclsNIL, 0, isasBase, 1, oprnds{{uint8(oprndtypeR8), false, actionW}}}, - {opcSFENCE, sffxsclsNIL, 0, isasMMX, 0, oprnds{}}, - {opcSHA1MSG1, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA1MSG1, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA1MSG2, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA1MSG2, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA1NEXTE, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA1NEXTE, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA1RNDS4, sffxsclsNIL, 0, isasSHA, 3, oprnds{{uint8(oprndtypeIMM2U), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA1RNDS4, sffxsclsNIL, 0, isasSHA, 3, oprnds{{uint8(oprndtypeIMM2U), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA256MSG1, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA256MSG1, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA256MSG2, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA256MSG2, sffxsclsNIL, 0, isasSHA, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA256RNDS2, sffxsclsNIL, 0, isasSHA, 3, oprnds{{uint8(oprndtypeXMM0), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHA256RNDS2, sffxsclsNIL, 0, isasSHA, 3, oprnds{{uint8(oprndtypeXMM0), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSHLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSHLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSHLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSHLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSHLB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHLL, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHLQ, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHLW, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHLXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcSHLXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcSHLXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcSHLXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcSHRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSHRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSHRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSHRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSHRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSHRB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSHRL, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSHRQ, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtype1), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeCL), false, actionR}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSHRW, sffxsclsNIL, 0, isasBase, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSHRXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcSHRXL, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcSHRXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcSHRXQ, sffxsclsNIL, 0, isasBMI2, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcSHUFPD, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHUFPD, sffxsclsNIL, 0, isasSSE2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHUFPS, sffxsclsNIL, 0, isasSSE, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSHUFPS, sffxsclsNIL, 0, isasSSE, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSQRTPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcSQRTPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcSQRTPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcSQRTPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcSQRTSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSQRTSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSQRTSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSQRTSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSTC, sffxsclsNIL, 0, isasBase, 0, oprnds{}}, - {opcSTD, sffxsclsNIL, 0, isasBase, 0, oprnds{}}, - {opcSTMXCSR, sffxsclsNIL, 0, isasSSE, 1, oprnds{{uint8(oprndtypeM32), false, actionW}}}, - {opcSUBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeAL), false, actionRW}}}, - {opcSUBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSUBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSUBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSUBB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcSUBB, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcSUBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeEAX), false, actionRW}}}, - {opcSUBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSUBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSUBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSUBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSUBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSUBL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcSUBL, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcSUBPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSUBPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSUBPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSUBPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSUBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSUBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSUBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeRAX), false, actionRW}}}, - {opcSUBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSUBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSUBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSUBQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcSUBQ, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcSUBSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSUBSD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSUBSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSUBSS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcSUBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeAX), false, actionRW}}}, - {opcSUBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSUBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSUBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSUBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSUBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSUBW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcSUBW, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcSYSCALL, sffxsclsNIL, 0, isasBase, 0, oprnds{{uint8(implregR11), true, actionW}, {uint8(implregRCX), true, actionW}}}, - {opcTESTB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeAL), false, actionR}}}, - {opcTESTB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionR}}}, - {opcTESTB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionR}}}, - {opcTESTB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionR}}}, - {opcTESTB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionR}}}, - {opcTESTL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeEAX), false, actionR}}}, - {opcTESTL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionR}}}, - {opcTESTL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionR}}}, - {opcTESTL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionR}}}, - {opcTESTL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionR}}}, - {opcTESTQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionR}}}, - {opcTESTQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionR}}}, - {opcTESTQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeRAX), false, actionR}}}, - {opcTESTQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionR}}}, - {opcTESTQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionR}}}, - {opcTESTW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeAX), false, actionR}}}, - {opcTESTW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionR}}}, - {opcTESTW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionR}}}, - {opcTESTW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionR}}}, - {opcTESTW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionR}}}, - {opcTZCNTL, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcTZCNTL, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcTZCNTQ, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcTZCNTQ, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcTZCNTW, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcTZCNTW, sffxsclsNIL, 0, isasBMI, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionW}}}, - {opcUCOMISD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcUCOMISD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcUCOMISS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcUCOMISS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcUD2, sffxsclsNIL, 0, isasBase, 0, oprnds{}}, - {opcUNPCKHPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcUNPCKHPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcUNPCKHPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcUNPCKHPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcUNPCKLPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcUNPCKLPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcUNPCKLPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcUNPCKLPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVADDPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVADDPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVADDPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVADDPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVADDPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVADDPD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVADDPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVADDPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVADDPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVADDPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVADDPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVADDPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVADDPS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVADDPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDPS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVADDSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDSD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDSS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVADDSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVADDSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVADDSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVAESDEC, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESDEC, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESDEC, sffxsclsNIL, 0, isasVAES, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVAESDEC, sffxsclsNIL, 0, isasVAES, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVAESDEC, sffxsclsNIL, 0, isasAVX512F_VAES, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVAESDEC, sffxsclsNIL, 0, isasAVX512F_VAES, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVAESDECLAST, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESDECLAST, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESDECLAST, sffxsclsNIL, 0, isasVAES, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVAESDECLAST, sffxsclsNIL, 0, isasVAES, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVAESDECLAST, sffxsclsNIL, 0, isasAVX512F_VAES, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVAESDECLAST, sffxsclsNIL, 0, isasAVX512F_VAES, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVAESENC, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESENC, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESENC, sffxsclsNIL, 0, isasVAES, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVAESENC, sffxsclsNIL, 0, isasVAES, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVAESENC, sffxsclsNIL, 0, isasAVX512F_VAES, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVAESENC, sffxsclsNIL, 0, isasAVX512F_VAES, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVAESENCLAST, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESENCLAST, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESENCLAST, sffxsclsNIL, 0, isasVAES, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVAESENCLAST, sffxsclsNIL, 0, isasVAES, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVAESENCLAST, sffxsclsNIL, 0, isasAVX512F_VAES, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVAESENCLAST, sffxsclsNIL, 0, isasAVX512F_VAES, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVAESIMC, sffxsclsNIL, 0, isasAES_AVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESIMC, sffxsclsNIL, 0, isasAES_AVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESKEYGENASSIST, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVAESKEYGENASSIST, sffxsclsNIL, 0, isasAES_AVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVALIGND, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVALIGND, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGND, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVALIGND, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGND, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGND, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVALIGND, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGND, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVALIGND, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVALIGND, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGND, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVALIGND, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGND, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVALIGND, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVALIGND, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGND, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVALIGNQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVALIGNQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVALIGNQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVALIGNQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVALIGNQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVALIGNQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVALIGNQ, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVALIGNQ, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVALIGNQ, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVALIGNQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDNPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDNPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDNPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDNPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDNPD, sffxsclsZ, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDNPD, sffxsclsZ, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDNPD, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPD, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDNPD, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPD, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDNPD, sffxsclsZ, featureCancellingInputs, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPD, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDNPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDNPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDNPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDNPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDNPS, sffxsclsZ, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDNPS, sffxsclsZ, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDNPS, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDNPS, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPS, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDNPS, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDNPS, sffxsclsZ, featureCancellingInputs, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDNPS, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDPD, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPD, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDPD, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPD, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDPD, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVANDPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVANDPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVANDPS, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDPS, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPS, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDPS, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVANDPS, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVANDPS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVBLENDMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBLENDMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVBLENDMPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBLENDMPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVBLENDMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBLENDMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBLENDMPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBLENDMPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBLENDMPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVBLENDMPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBLENDMPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVBLENDMPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBLENDMPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVBLENDMPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBLENDMPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBLENDMPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBLENDMPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBLENDMPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDMPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBLENDPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDVPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDVPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDVPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDVPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDVPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDVPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBLENDVPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBLENDVPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF128, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTF32X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTF32X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF32X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTF32X2, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF32X2, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF32X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTF32X2, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF32X2, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTF32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF32X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTF32X4, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF32X4, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTF32X8, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTF64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTF64X2, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF64X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTF64X4, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTF64X4, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI128, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVBROADCASTI32X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTI32X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVBROADCASTI32X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTI32X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTI32X2, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTI32X2, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI32X2, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTI32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTI32X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTI32X4, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI32X4, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTI32X8, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTI64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTI64X2, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI64X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTI64X4, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTI64X4, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTSD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTSD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTSD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTSD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTSD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTSD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTSS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVBROADCASTSS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTSS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVBROADCASTSS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVBROADCASTSS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPPS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCMPSD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCMPSD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSD, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCMPSS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCMPSS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSS, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCMPSS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVCOMISD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVCOMISD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVCOMISD, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVCOMISS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVCOMISS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVCOMISS, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVCOMPRESSPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCOMPRESSPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVCOMPRESSPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCOMPRESSPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVCOMPRESSPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCOMPRESSPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVCOMPRESSPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVCOMPRESSPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCOMPRESSPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVCOMPRESSPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCOMPRESSPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVCOMPRESSPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCOMPRESSPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVCOMPRESSPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTDQ2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTDQ2PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTDQ2PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTDQ2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTDQ2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTDQ2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTDQ2PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTDQ2PD, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTDQ2PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTDQ2PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsER_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTDQ2PS, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2DQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2DQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2DQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2DQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2DQ, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2DQ, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2DQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2DQ, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2DQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2DQ, sffxsclsER_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2DQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2DQ, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2DQX, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQX, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2DQX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2DQX, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2DQX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQY, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQY, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2DQY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2DQY, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2DQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2DQY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2PS, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2PS, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2PS, sffxsclsER_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2PS, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2PSX, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSX, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2PSX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2PSX, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2PSX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSY, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSY, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2PSY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2PSY, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2PSY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2PSY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsER, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPD2QQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsER_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2QQ, sffxsclsER, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2UDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2UDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2UDQ, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UDQ, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2UDQ, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2UDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UDQ, sffxsclsER_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UDQ, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UDQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2UDQX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2UDQX, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2UDQX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2UDQY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2UDQY, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2UDQY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UDQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsER, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsER_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPD2UQQ, sffxsclsER, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasF16C, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasF16C, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasF16C, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasF16C, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPH2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPH2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPH2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPH2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPH2PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPH2PS, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPH2PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsSAE_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPH2PS, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2DQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsER_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2DQ, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsSAE_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsZ, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsBCST, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsBCST_Z, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsBCST, 0, isasAVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2PD, sffxsclsNIL, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2PD, sffxsclsZ, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasF16C, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasF16C, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasF16C, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasF16C, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVCVTPS2PH, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2PH, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVCVTPS2PH, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2PH, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVCVTPS2PH, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2PH, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2PH, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2PH, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsER, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2QQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsER_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2QQ, sffxsclsER, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2UDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsER_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UDQ, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsER, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsER_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTPS2UQQ, sffxsclsER, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsER, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTQQ2PD, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsER_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTQQ2PD, sffxsclsER, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTQQ2PS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTQQ2PS, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PS, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PS, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTQQ2PS, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PS, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTQQ2PS, sffxsclsER, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTQQ2PS, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PS, sffxsclsER_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PS, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PS, sffxsclsER, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTQQ2PSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTQQ2PSX, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSX, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTQQ2PSX, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSX, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTQQ2PSX, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTQQ2PSY, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSY, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTQQ2PSY, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSY, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTQQ2PSY, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTQQ2PSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSD2SI, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSD2SI, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSD2SI, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSD2SIQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSD2SIQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSD2SIQ, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSD2SS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSD2SS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSD2SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTSD2SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSD2SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTSD2SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTSD2SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSD2SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSD2SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSD2USIL, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSD2USIL, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSD2USIL, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSD2USIQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSD2USIQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSD2USIQ, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSI2SDL, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SDL, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SDQ, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SSL, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SSL, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SSL, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SSQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SSQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSI2SSQ, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSS2SD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSS2SD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSS2SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTSS2SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSS2SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTSS2SD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTSS2SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSS2SD, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSS2SD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTSS2SI, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSS2SI, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSS2SI, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSS2SIQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSS2SIQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSS2SIQ, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSS2USIL, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSS2USIL, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSS2USIL, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTSS2USIQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSS2USIQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTSS2USIQ, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTPD2DQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2DQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2DQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2DQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2DQ, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2DQ, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2DQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2DQ, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2DQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2DQ, sffxsclsSAE_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2DQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2DQ, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2DQX, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQX, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2DQX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2DQX, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2DQX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQY, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQY, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2DQY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2DQY, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2DQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2DQY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsSAE, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPD2QQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsSAE_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2QQ, sffxsclsSAE, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2UDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2UDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2UDQ, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UDQ, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2UDQ, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2UDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UDQ, sffxsclsSAE_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UDQ, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UDQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2UDQX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2UDQX, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQX, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2UDQX, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQX, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2UDQY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2UDQY, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQY, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2UDQY, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UDQY, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsSAE, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPD2UQQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsSAE_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPD2UQQ, sffxsclsSAE, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2DQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsSAE_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2DQ, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsSAE, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2QQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsSAE_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2QQ, sffxsclsSAE, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2UDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsSAE_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UDQ, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsSAE, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTTPS2UQQ, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsSAE_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTPS2UQQ, sffxsclsSAE, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTTSD2SI, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSD2SI, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSD2SI, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSD2SIQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSD2SIQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSD2SIQ, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSD2USIL, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSD2USIL, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSD2USIL, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSD2USIQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSD2USIQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSD2USIQ, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSS2SI, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSS2SI, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSS2SI, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSS2SIQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSS2SIQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSS2SIQ, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSS2USIL, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSS2USIL, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSS2USIL, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVCVTTSS2USIQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSS2USIQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTTSS2USIQ, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUDQ2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUDQ2PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUDQ2PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUDQ2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUDQ2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUDQ2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUDQ2PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUDQ2PD, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUDQ2PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUDQ2PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsER_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUDQ2PS, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsER, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVCVTUQQ2PD, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsER_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUQQ2PD, sffxsclsER, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVCVTUQQ2PS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUQQ2PS, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PS, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PS, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUQQ2PS, sffxsclsBCST_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PS, sffxsclsBCST, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUQQ2PS, sffxsclsER, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVCVTUQQ2PS, sffxsclsZ, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PS, sffxsclsER_Z, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PS, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PS, sffxsclsER, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVCVTUQQ2PSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUQQ2PSX, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSX, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUQQ2PSX, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSX, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUQQ2PSX, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUQQ2PSY, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSY, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUQQ2PSY, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSY, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVCVTUQQ2PSY, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUQQ2PSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SDL, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SDL, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SDQ, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SSL, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SSL, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SSL, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVCVTUSI2SSQ, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDBPSADBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVDBPSADBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDBPSADBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVDBPSADBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDBPSADBW, sffxsclsZ, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDBPSADBW, sffxsclsZ, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDBPSADBW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDIVPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDIVPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVDIVPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVPS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVDIVSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVSD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVSS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVDIVSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDIVSS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDPPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDPPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDPPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDPPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVDPPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVDPPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXP2PD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXP2PD, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PD, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PD, sffxsclsBCST, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXP2PD, sffxsclsBCST_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PD, sffxsclsBCST, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXP2PD, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXP2PD, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PD, sffxsclsSAE_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PD, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PD, sffxsclsSAE, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PS, sffxsclsBCST, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXP2PS, sffxsclsBCST_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PS, sffxsclsBCST, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXP2PS, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PS, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXP2PS, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXP2PS, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PS, sffxsclsSAE_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PS, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXP2PS, sffxsclsSAE, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVEXPANDPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVEXPANDPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXPANDPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXPANDPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXPANDPD, sffxsclsZ, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXPANDPD, sffxsclsZ, 0, isasAVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXPANDPD, sffxsclsNIL, 0, isasAVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXPANDPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVEXPANDPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXPANDPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVEXPANDPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXPANDPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVEXPANDPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXPANDPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVEXTRACTF128, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTF128, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVEXTRACTF32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXTRACTF32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTF32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVEXTRACTF32X4, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTF32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXTRACTF32X4, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTF32X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTF32X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVEXTRACTF32X8, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVEXTRACTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVEXTRACTF32X8, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXTRACTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVEXTRACTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXTRACTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVEXTRACTF64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXTRACTF64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVEXTRACTF64X2, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXTRACTF64X2, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTF64X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVEXTRACTF64X4, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVEXTRACTF64X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVEXTRACTF64X4, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXTRACTF64X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVEXTRACTF64X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXTRACTI128, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTI128, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVEXTRACTI32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXTRACTI32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTI32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVEXTRACTI32X4, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTI32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXTRACTI32X4, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTI32X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTI32X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVEXTRACTI32X8, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVEXTRACTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVEXTRACTI32X8, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXTRACTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVEXTRACTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXTRACTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVEXTRACTI64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXTRACTI64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVEXTRACTI64X2, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVEXTRACTI64X2, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVEXTRACTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVEXTRACTI64X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVEXTRACTI64X4, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVEXTRACTI64X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVEXTRACTI64X4, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXTRACTI64X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVEXTRACTI64X4, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVEXTRACTPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVEXTRACTPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsSAE_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsSAE_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsZ, 0, isasAVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsBCST, 0, isasAVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsBCST_Z, 0, isasAVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsBCST, 0, isasAVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsZ, 0, isasAVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMPS, sffxsclsNIL, 0, isasAVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSD, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSD, sffxsclsSAE_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSS, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSS, sffxsclsSAE_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFIXUPIMMSS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD132SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD132SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD213SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD213SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADD231SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADD231SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB132PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB213PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMADDSUB231PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB132SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB132SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB213SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB213SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUB231SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUB231SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD132PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD213PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFMSUBADD231PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD132SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD132SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD213SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD213SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMADD231SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMADD231SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB132SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB132SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB213SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB213SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231PS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVFNMSUB231SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SD, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SS, sffxsclsNIL, 0, isasFMA3, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFNMSUB231SS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVFPCLASSPDX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDX, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDX, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDY, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDY, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDZ, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDZ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDZ, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDZ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDZ, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPDZ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSX, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSX, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSX, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSY, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSY, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSY, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSZ, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSZ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSZ, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSZ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSZ, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSPSZ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSSD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSSD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSSD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSSD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSSS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSSS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSSS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVFPCLASSSS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVGATHERDPD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERDPD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionRW}, {uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGATHERDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGATHERDPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeVM32Y), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGATHERDPS, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERDPS, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionRW}, {uint8(oprndtypeVM32Y), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGATHERDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM32Y), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGATHERDPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeVM32Z), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGATHERQPD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM64X), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERQPD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionRW}, {uint8(oprndtypeVM64Y), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGATHERQPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM64X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERQPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM64Y), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGATHERQPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeVM64Z), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGATHERQPS, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM64X), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERQPS, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM64Y), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERQPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM64X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERQPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM64Y), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGATHERQPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeVM64Z), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETEXPPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsSAE_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPD, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETEXPPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsSAE_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPPS, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETEXPSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPSD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSD, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPSS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETEXPSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSS, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETEXPSS, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETMANTPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGETMANTPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTPS, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGETMANTSD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTSD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTSD, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTSD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSD, sffxsclsSAE_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTSS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTSS, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGETMANTSS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSS, sffxsclsSAE_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGETMANTSS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsZ, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsBCST, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsBCST_Z, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsBCST, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsZ, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsZ, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsZ, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsBCST, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsBCST_Z, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsBCST, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsBCST, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsBCST_Z, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsBCST, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsZ, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGF2P8AFFINEINVQB, sffxsclsZ, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGF2P8AFFINEQB, sffxsclsZ, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsBCST, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGF2P8AFFINEQB, sffxsclsBCST_Z, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsBCST, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGF2P8AFFINEQB, sffxsclsZ, 0, isasAVX512F_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGF2P8AFFINEQB, sffxsclsZ, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGF2P8AFFINEQB, sffxsclsZ, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsBCST, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGF2P8AFFINEQB, sffxsclsBCST_Z, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsBCST, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsBCST, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGF2P8AFFINEQB, sffxsclsBCST_Z, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsBCST, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGF2P8AFFINEQB, sffxsclsZ, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8AFFINEQB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGF2P8AFFINEQB, sffxsclsZ, 0, isasAVX512VL_GFNI, 5, oprnds{{uint8(oprndtypeIMM8), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX_GFNI, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX_GFNI, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX_GFNI, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX_GFNI, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGF2P8MULB, sffxsclsZ, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX512F_GFNI, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVGF2P8MULB, sffxsclsZ, 0, isasAVX512F_GFNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX512F_GFNI, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGF2P8MULB, sffxsclsZ, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGF2P8MULB, sffxsclsZ, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVGF2P8MULB, sffxsclsZ, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVGF2P8MULB, sffxsclsNIL, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVGF2P8MULB, sffxsclsZ, 0, isasAVX512VL_GFNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVHADDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVHADDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVHADDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVHADDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVHADDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVHADDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVHADDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVHADDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVHSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVHSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVHSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVHSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVHSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVHSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVHSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVHSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF128, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF128, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVINSERTF32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVINSERTF32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF32X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTF32X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF32X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTF32X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTF32X8, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTF32X8, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF32X8, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVINSERTF64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVINSERTF64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTF64X2, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTF64X2, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF64X2, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF64X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTF64X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF64X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF64X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTF64X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTF64X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI128, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI128, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVINSERTI32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVINSERTI32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI32X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTI32X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI32X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTI32X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTI32X8, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTI32X8, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI32X8, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVINSERTI64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVINSERTI64X2, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI64X2, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVINSERTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTI64X2, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTI64X2, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI64X2, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI64X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTI64X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI64X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI64X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVINSERTI64X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTI64X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVINSERTPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVINSERTPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVLDDQU, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVLDDQU, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVLDMXCSR, sffxsclsNIL, 0, isasAVX, 1, oprnds{{uint8(oprndtypeM32), false, actionR}}}, - {opcVMASKMOVDQU, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregRDI), true, actionR}}}, - {opcVMASKMOVPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMASKMOVPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMASKMOVPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMASKMOVPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMASKMOVPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMASKMOVPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMASKMOVPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMASKMOVPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMAXPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPD, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMAXPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMAXPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPS, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXPS, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMAXSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXSD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSD, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXSS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMAXSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSS, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMAXSS, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMINPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMINPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMINPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMINPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMINPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMINPD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMINPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPD, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMINPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMINPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMINPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMINPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMINPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMINPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMINPS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMINPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPS, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINPS, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMINSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINSD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSD, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINSS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMINSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSS, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMINSS, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVAPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVAPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVAPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVAPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVAPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVAPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVAPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVAPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVAPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVAPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVAPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVAPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVAPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVAPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVAPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVAPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVAPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVAPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVAPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVAPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVMOVD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDDUP, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDDUP, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDDUP, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQA, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQA, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQA, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQA32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQA32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVDQA32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQA32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVDQA32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQA32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQA32, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVDQA32, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQA32, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQA32, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQA64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQA64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVDQA64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQA64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVDQA64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQA64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQA64, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVDQA64, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQA64, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQA64, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQU, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQU, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQU16, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQU16, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVDQU16, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQU16, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVDQU16, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQU16, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQU16, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVDQU16, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQU16, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQU16, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQU32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQU32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVDQU32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQU32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVDQU32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQU32, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQU32, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVDQU32, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQU32, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQU32, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQU64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQU64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVDQU64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQU64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVDQU64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQU64, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQU64, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVDQU64, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQU64, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQU64, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQU8, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQU8, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVDQU8, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVDQU8, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVDQU8, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVDQU8, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQU8, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVDQU8, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVDQU8, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVDQU8, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVHLPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVHPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVHPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVMOVHPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVHPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVMOVLHPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVLPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVLPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVMOVLPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVLPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVMOVMSKPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVMOVMSKPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVMOVMSKPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVMOVMSKPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVMOVNTDQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVNTDQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVNTDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVNTDQA, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVNTDQA, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVNTDQA, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVNTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVNTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVNTPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVNTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVNTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVNTPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVMOVQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVMOVQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVMOVSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVSD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVMOVSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVSHDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVSHDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVSHDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVSHDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVSHDUP, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVSHDUP, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVSHDUP, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVSLDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVSLDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVSLDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVSLDUP, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVSLDUP, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVSLDUP, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVSLDUP, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVSS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVMOVSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVSS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVSS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVMOVSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVUPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVUPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVUPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVUPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVUPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVUPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVUPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVUPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVUPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVUPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVUPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVUPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVMOVUPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMOVUPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVMOVUPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMOVUPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVUPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVMOVUPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMOVUPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVMOVUPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMPSADBW, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMPSADBW, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMPSADBW, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMPSADBW, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMULPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMULPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMULPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMULPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMULPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMULPD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMULPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMULPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMULPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVMULPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVMULPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMULPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMULPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMULPS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVMULPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULPS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVMULSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULSD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULSS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVMULSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVMULSS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVORPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVORPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVORPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVORPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVORPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVORPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVORPD, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPD, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVORPD, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPD, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVORPD, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVORPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVORPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVORPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVORPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVORPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVORPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVORPS, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVORPS, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPS, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVORPS, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVORPS, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVORPS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSD, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSD, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSQ, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSQ, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPABSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPABSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSW, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPABSW, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPABSW, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKSSDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKSSDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsBCST, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKSSDW, sffxsclsBCST_Z, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsBCST, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsBCST, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKSSDW, sffxsclsBCST_Z, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsBCST, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKSSDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKSSDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsBCST, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKSSDW, sffxsclsBCST_Z, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsBCST, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKSSDW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKSSDW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSDW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKSSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKSSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKSSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKSSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKSSWB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKSSWB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKSSWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKUSDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKUSDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsBCST, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKUSDW, sffxsclsBCST_Z, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsBCST, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsBCST, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKUSDW, sffxsclsBCST_Z, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsBCST, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKUSDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKUSDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsBCST, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKUSDW, sffxsclsBCST_Z, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsBCST, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKUSDW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKUSDW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSDW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKUSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKUSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPACKUSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPACKUSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKUSWB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPACKUSWB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPACKUSWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDUSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDUSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDUSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDUSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDUSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDUSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDUSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDUSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDUSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDUSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDUSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDUSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDUSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDUSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPADDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPADDW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPADDW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPADDW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPALIGNR, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPALIGNR, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPALIGNR, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPALIGNR, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPALIGNR, sffxsclsZ, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPALIGNR, sffxsclsZ, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPALIGNR, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPAND, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAND, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAND, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPAND, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDN, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDN, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDN, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDN, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDND, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDND, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDND, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDND, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDND, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDND, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDND, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDND, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDND, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDND, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDND, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDND, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDND, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDND, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDND, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDND, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDNQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDNQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDNQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDNQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDNQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDNQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDNQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDNQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDNQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDNQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPANDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPANDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPANDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPANDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPAVGB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPAVGB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPAVGB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPAVGB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPAVGB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPAVGB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPAVGB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPAVGW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPAVGW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPAVGW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPAVGW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPAVGW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPAVGW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPAVGW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDD, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDD, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDD, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDD, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBLENDMW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBLENDMW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBLENDMW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDMW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBLENDVB, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDVB, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDVB, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDVB, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDW, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDW, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBLENDW, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBLENDW, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTMB2Q, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTMB2Q, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTMB2Q, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTMW2D, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTMW2D, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTMW2D, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPBROADCASTW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPBROADCASTW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTW, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTW, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPBROADCASTW, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPBROADCASTW, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCLMULQDQ, sffxsclsNIL, 0, isasAVX_PCLMULQDQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCLMULQDQ, sffxsclsNIL, 0, isasAVX_PCLMULQDQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCLMULQDQ, sffxsclsNIL, 0, isasVPCLMULQDQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCLMULQDQ, sffxsclsNIL, 0, isasVPCLMULQDQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCLMULQDQ, sffxsclsNIL, 0, isasAVX512F_VPCLMULQDQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCLMULQDQ, sffxsclsNIL, 0, isasAVX512F_VPCLMULQDQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQD, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPEQW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPESTRI, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregEAX), true, actionR}, {uint8(implregECX), true, actionW}, {uint8(implregEDX), true, actionR}}}, - {opcVPCMPESTRI, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregEAX), true, actionR}, {uint8(implregECX), true, actionW}, {uint8(implregEDX), true, actionR}}}, - {opcVPCMPESTRM, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregEAX), true, actionR}, {uint8(implregEDX), true, actionR}, {uint8(implregX0), true, actionW}}}, - {opcVPCMPESTRM, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregEAX), true, actionR}, {uint8(implregEDX), true, actionR}, {uint8(implregX0), true, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTD, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPGTW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPISTRI, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregECX), true, actionW}}}, - {opcVPCMPISTRI, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregECX), true, actionW}}}, - {opcVPCMPISTRM, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregX0), true, actionW}}}, - {opcVPCMPISTRM, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(implregX0), true, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPUW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCMPW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCOMPRESSB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCOMPRESSB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCOMPRESSB, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVPCOMPRESSB, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPCOMPRESSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCOMPRESSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPCOMPRESSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCOMPRESSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVPCOMPRESSD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCOMPRESSD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVPCOMPRESSD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPCOMPRESSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCOMPRESSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPCOMPRESSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCOMPRESSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionRW}}}, - {opcVPCOMPRESSQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCOMPRESSQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVPCOMPRESSQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCOMPRESSW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCOMPRESSW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCOMPRESSW, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM512), false, actionW}}}, - {opcVPCOMPRESSW, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCONFLICTD, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCONFLICTD, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCONFLICTD, sffxsclsBCST_Z, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCONFLICTD, sffxsclsBCST_Z, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCONFLICTD, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCONFLICTD, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsBCST, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCONFLICTD, sffxsclsBCST_Z, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsBCST, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCONFLICTD, sffxsclsZ, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCONFLICTD, sffxsclsZ, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTD, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCONFLICTQ, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCONFLICTQ, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCONFLICTQ, sffxsclsBCST_Z, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCONFLICTQ, sffxsclsBCST_Z, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPCONFLICTQ, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPCONFLICTQ, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCONFLICTQ, sffxsclsZ, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsBCST, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCONFLICTQ, sffxsclsBCST_Z, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsBCST, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPCONFLICTQ, sffxsclsZ, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPCONFLICTQ, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsBCST, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsBCST_Z, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsBCST, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsZ, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsZ, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSD, sffxsclsNIL, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsBCST, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsBCST_Z, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsBCST, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsZ, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsZ, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPBUSDS, sffxsclsNIL, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsBCST, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsBCST_Z, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsBCST, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsZ, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsZ, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSD, sffxsclsNIL, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsBCST, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsZ, 0, isasAVX512VL_AVX512VNNI, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VL_AVX512VNNI, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsBCST, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsBCST_Z, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsBCST, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsZ, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsZ, 0, isasAVX512VNNI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPDPWSSDS, sffxsclsNIL, 0, isasAVX512VNNI, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERM2F128, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERM2F128, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERM2I128, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERM2I128, sffxsclsNIL, 0, isasAVX2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMB, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMB, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMB, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMB, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMB, sffxsclsZ, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMB, sffxsclsZ, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMB, sffxsclsNIL, 0, isasAVX512VBMI, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsZ, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsZ, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2B, sffxsclsNIL, 0, isasAVX512VBMI, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2D, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2Q, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMI2W, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMILPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMILPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPS, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPS, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsZ, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsZ, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2B, sffxsclsNIL, 0, isasAVX512VBMI, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2D, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2Q, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMT2W, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPERMW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPERMW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPERMW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPERMW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPEXPANDB, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDB, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPEXPANDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPEXPANDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPEXPANDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPEXPANDD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPEXPANDD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPEXPANDD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPEXPANDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPEXPANDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPEXPANDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPEXPANDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPEXPANDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPEXPANDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPEXPANDW, sffxsclsZ, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXPANDW, sffxsclsNIL, 0, isasAVX512VBMI2, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPEXTRB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM8), false, actionW}}}, - {opcVPEXTRB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVPEXTRD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPEXTRD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVPEXTRQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPEXTRQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR64), false, actionW}}}, - {opcVPEXTRW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcVPEXTRW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVPGATHERDD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERDD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionRW}, {uint8(oprndtypeVM32Y), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPGATHERDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM32Y), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPGATHERDD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeVM32Z), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPGATHERDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionRW}, {uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPGATHERDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM32X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPGATHERDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeVM32Y), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPGATHERQD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM64X), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERQD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM64Y), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM64X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM64Y), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERQD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeVM64Z), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPGATHERQQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionRW}, {uint8(oprndtypeVM64X), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERQQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionRW}, {uint8(oprndtypeVM64Y), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPGATHERQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM64X), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPGATHERQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeVM64Y), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPGATHERQQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeVM64Z), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPHADDD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHADDD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHADDD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHADDD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHADDSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHADDSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHADDSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHADDSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHADDW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHADDW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHADDW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHADDW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHMINPOSUW, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHMINPOSUW, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHSUBD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHSUBD, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHSUBD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHSUBD, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHSUBSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHSUBSW, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHSUBSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHSUBSW, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHSUBW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHSUBW, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPHSUBW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPHSUBW, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPINSRB, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPINSRB, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPINSRD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPINSRD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPINSRQ, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPINSRQ, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPINSRW, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPINSRW, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPLZCNTD, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPLZCNTD, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPLZCNTD, sffxsclsBCST_Z, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPLZCNTD, sffxsclsBCST_Z, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPLZCNTD, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPLZCNTD, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsBCST, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPLZCNTD, sffxsclsBCST_Z, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsBCST, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPLZCNTD, sffxsclsZ, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPLZCNTD, sffxsclsZ, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTD, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPLZCNTQ, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPLZCNTQ, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPLZCNTQ, sffxsclsBCST_Z, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPLZCNTQ, sffxsclsBCST_Z, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsBCST, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPLZCNTQ, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPLZCNTQ, sffxsclsZ, 0, isasAVX512CD_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPLZCNTQ, sffxsclsZ, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsBCST, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPLZCNTQ, sffxsclsBCST_Z, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsBCST, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPLZCNTQ, sffxsclsZ, 0, isasAVX512CD, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPLZCNTQ, sffxsclsNIL, 0, isasAVX512CD, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsZ, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsZ, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsBCST, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsBCST_Z, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsBCST, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsBCST, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsBCST_Z, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsBCST, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsZ, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsZ, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsZ, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsBCST, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsBCST_Z, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsBCST, 0, isasAVX512IFMA, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsZ, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52HUQ, sffxsclsNIL, 0, isasAVX512IFMA, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsZ, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsZ, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsBCST, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsBCST_Z, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsBCST, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsBCST, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsBCST_Z, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsBCST, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsZ, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsZ, 0, isasAVX512IFMA_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsZ, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsBCST, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsBCST_Z, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsBCST, 0, isasAVX512IFMA, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsZ, 0, isasAVX512IFMA, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADD52LUQ, sffxsclsNIL, 0, isasAVX512IFMA, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADDUBSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADDUBSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADDUBSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADDUBSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADDUBSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADDUBSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMADDUBSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADDWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADDWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMADDWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMADDWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADDWD, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMADDWD, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMADDWD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMASKMOVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMASKMOVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMASKMOVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMASKMOVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMASKMOVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMASKMOVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMASKMOVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMASKMOVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMAXUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMAXUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMAXUW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMAXUW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMINUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMINUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMINUW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMINUW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVB2M, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVB2M, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVB2M, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVD2M, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVD2M, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVD2M, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcVPMOVDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVDB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVDB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVDB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPMOVDW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVDW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVDW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVM2B, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVM2B, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVM2B, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVM2D, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVM2D, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVM2D, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVM2Q, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVM2Q, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVM2Q, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVM2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVM2W, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVM2W, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVMSKB, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVPMOVMSKB, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeR32), false, actionW}}}, - {opcVPMOVQ2M, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVQ2M, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVQ2M, sffxsclsNIL, 0, isasAVX512DQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcVPMOVQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcVPMOVQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVQB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVQB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVQB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPMOVQD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVQD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVQD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcVPMOVQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVQW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVQW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVQW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcVPMOVSDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVSDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVSDB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSDB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSDB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVSDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVSDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPMOVSDW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSDW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVSDW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcVPMOVSQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcVPMOVSQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVSQB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSQB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSQB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVSQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVSQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPMOVSQD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSQD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVSQD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcVPMOVSQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVSQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVSQW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSQW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSQW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPMOVSWB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSWB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVSWB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXBD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXBD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXBQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXBQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXBW, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXBW, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXBW, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXWD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXWD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXWD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXWD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXWD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXWD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXWD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXWQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXWQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVSXWQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVSXWQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXWQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVSXWQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVSXWQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcVPMOVUSDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVUSDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSDB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVUSDB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSDB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSDB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVUSDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVUSDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSDW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPMOVUSDW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVUSDW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVUSDW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcVPMOVUSQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM16), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcVPMOVUSQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSQB, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVUSQB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSQB, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSQB, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVUSQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVUSQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSQD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPMOVUSQD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVUSQD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVUSQD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcVPMOVUSQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM32), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVUSQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSQW, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVUSQW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSQW, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSQW, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVUSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVUSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVUSWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPMOVUSWB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVUSWB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVUSWB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVW2M, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVW2M, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVW2M, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcVPMOVWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeM64), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionRW}}}, - {opcVPMOVWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVWB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeM128), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionRW}}}, - {opcVPMOVWB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVWB, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeM256), false, actionW}}}, - {opcVPMOVWB, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXBD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXBD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXBQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXBQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXBW, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXBW, sffxsclsZ, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXBW, sffxsclsNIL, 0, isasAVX512BW, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXDQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXDQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXWD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXWD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXWD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXWD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXWD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXWD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXWD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXWQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXWQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMOVZXWQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMOVZXWQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXWQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMOVZXWQ, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMOVZXWQ, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULDQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULHRSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULHRSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULHRSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULHRSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULHRSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULHRSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHRSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULHUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULHUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULHUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULHUW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULHUW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULHUW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHUW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULHW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULHW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULHW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULHW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULHW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULHW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULHW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULLD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULLD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULLD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULLQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULLQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULLQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULLQ, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULLQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULLQ, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULLQ, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULLQ, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULLQ, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLQ, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULTISHIFTQB, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULTISHIFTQB, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsBCST, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULTISHIFTQB, sffxsclsBCST_Z, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsBCST, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsBCST, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULTISHIFTQB, sffxsclsBCST_Z, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsBCST, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULTISHIFTQB, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULTISHIFTQB, sffxsclsZ, 0, isasAVX512VBMI_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULTISHIFTQB, sffxsclsZ, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsBCST, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULTISHIFTQB, sffxsclsBCST_Z, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsBCST, 0, isasAVX512VBMI, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULTISHIFTQB, sffxsclsZ, 0, isasAVX512VBMI, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULTISHIFTQB, sffxsclsNIL, 0, isasAVX512VBMI, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULUDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULUDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULUDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULUDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPMULUDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPMULUDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULUDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULUDQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPMULUDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPMULUDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTB, sffxsclsZ, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTB, sffxsclsZ, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTB, sffxsclsZ, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTB, sffxsclsZ, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTB, sffxsclsZ, 0, isasAVX512BITALG, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTB, sffxsclsZ, 0, isasAVX512BITALG, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTB, sffxsclsNIL, 0, isasAVX512BITALG, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTD, sffxsclsZ, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTD, sffxsclsZ, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsBCST, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTD, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsBCST, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTD, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsBCST, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsBCST, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTD, sffxsclsZ, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTD, sffxsclsZ, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsBCST, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTD, sffxsclsBCST_Z, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsBCST, 0, isasAVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTD, sffxsclsZ, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTD, sffxsclsZ, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTD, sffxsclsNIL, 0, isasAVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTQ, sffxsclsZ, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTQ, sffxsclsZ, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsBCST, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTQ, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsBCST, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTQ, sffxsclsBCST_Z, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsBCST, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsBCST, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTQ, sffxsclsZ, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTQ, sffxsclsZ, 0, isasAVX512VL_AVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VL_AVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTQ, sffxsclsZ, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsBCST, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTQ, sffxsclsBCST_Z, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsBCST, 0, isasAVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTQ, sffxsclsZ, 0, isasAVX512VPOPCNTDQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTQ, sffxsclsNIL, 0, isasAVX512VPOPCNTDQ, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTW, sffxsclsZ, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTW, sffxsclsZ, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPOPCNTW, sffxsclsZ, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPOPCNTW, sffxsclsZ, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTW, sffxsclsZ, 0, isasAVX512BITALG, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPOPCNTW, sffxsclsZ, 0, isasAVX512BITALG, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOPCNTW, sffxsclsNIL, 0, isasAVX512BITALG, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPOR, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOR, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPOR, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPOR, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPORD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPORD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPORD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPORD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPORD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPORQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPORQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPORQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPORQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPORQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPORQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLVD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPROLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPROLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLVQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPROLVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPROLVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORVD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPRORVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPRORVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORVQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPRORVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPRORVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSADBW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSADBW, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSADBW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSADBW, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSADBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSADBW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSCATTERDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32X), false, actionW}}}, - {opcVPSCATTERDD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32Y), false, actionW}}}, - {opcVPSCATTERDD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32Z), false, actionW}}}, - {opcVPSCATTERDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32X), false, actionW}}}, - {opcVPSCATTERDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32X), false, actionW}}}, - {opcVPSCATTERDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32Y), false, actionW}}}, - {opcVPSCATTERQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64X), false, actionW}}}, - {opcVPSCATTERQD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Y), false, actionW}}}, - {opcVPSCATTERQD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Z), false, actionW}}}, - {opcVPSCATTERQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64X), false, actionW}}}, - {opcVPSCATTERQQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Y), false, actionW}}}, - {opcVPSCATTERQQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Z), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDD, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDQ, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsBCST, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsBCST, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHLDW, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHLDW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDD, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDD, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDQ, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsBCST, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVD, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsBCST_Z, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsBCST, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVQ, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsZ, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDVW, sffxsclsNIL, 0, isasAVX512VBMI2, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHRDW, sffxsclsZ, 0, isasAVX512VBMI2, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHRDW, sffxsclsNIL, 0, isasAVX512VBMI2, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHUFB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHUFB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHUFB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHUFB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHUFB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHUFB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG_AVX512VL, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFBITQMB, sffxsclsNIL, 0, isasAVX512BITALG, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHUFD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHUFD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHUFD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHUFD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHUFD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHUFD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHUFD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHUFD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHUFD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHUFHW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHUFHW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHUFHW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHUFHW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHUFHW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHUFHW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFHW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHUFLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHUFLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSHUFLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSHUFLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHUFLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSHUFLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSHUFLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSIGNB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSIGNB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSIGNB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSIGNB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSIGND, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSIGND, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSIGND, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSIGND, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSIGNW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSIGNW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSIGNW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSIGNW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLDQ, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLDQ, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLDQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLDQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLVD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLVQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLVW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLVW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLVW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSLLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSLLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAVD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAVQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAVW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAVW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAVW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRAW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRAW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLDQ, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLDQ, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLDQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLDQ, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLVD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLVD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLVD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLVD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLVQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLVQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLVQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLVQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLVW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLVW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLVW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLVW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSRLW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSRLW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBB, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBB, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBB, sffxsclsZ, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBD, sffxsclsZ, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBD, sffxsclsZ, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBD, sffxsclsZ, featureCancellingInputs, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBD, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBQ, sffxsclsZ, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBQ, sffxsclsZ, featureCancellingInputs, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBQ, sffxsclsZ, featureCancellingInputs, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBQ, sffxsclsNIL, featureCancellingInputs, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBSB, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBSB, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBSB, sffxsclsZ, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBSB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBSW, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBSW, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBSW, sffxsclsZ, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBSW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBUSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBUSB, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBUSB, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBUSB, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBUSB, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBUSB, sffxsclsZ, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBUSB, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBUSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBUSW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBUSW, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBUSW, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBUSW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBUSW, sffxsclsZ, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBUSW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPSUBW, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPSUBW, sffxsclsZ, featureCancellingInputs, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPSUBW, sffxsclsZ, featureCancellingInputs, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPSUBW, sffxsclsNIL, featureCancellingInputs, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTERNLOGQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPTEST, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVPTEST, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}}}, - {opcVPTEST, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVPTEST, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMB, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTMW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMB, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPTESTNMW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHBW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHBW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHDQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHQDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHQDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHQDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHQDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHQDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHQDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHQDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHQDQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHQDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHQDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKHWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKHWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHWD, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKHWD, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKHWD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLBW, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLBW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLBW, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLBW, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLDQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLQDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLQDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLQDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLQDQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLQDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLQDQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLQDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLQDQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLQDQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLQDQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPUNPCKLWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPUNPCKLWD, sffxsclsZ, 0, isasAVX512BW_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLWD, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPUNPCKLWD, sffxsclsZ, 0, isasAVX512BW, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPUNPCKLWD, sffxsclsNIL, 0, isasAVX512BW, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXOR, sffxsclsNIL, 0, isasAVX2, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXOR, sffxsclsNIL, featureCancellingInputs, isasAVX2, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXOR, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXOR, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPXORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPXORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPXORD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPXORD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPXORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPXORD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPXORD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPXORD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPXORD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPXORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPXORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPXORQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPXORQ, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORQ, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVPXORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVPXORQ, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPXORQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORQ, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPXORQ, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORQ, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVPXORQ, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVPXORQ, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsBCST, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsBCST_Z, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsSAE, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRANGEPD, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsSAE_Z, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPD, sffxsclsSAE, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsBCST, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsBCST_Z, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsSAE, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRANGEPS, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsSAE_Z, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGEPS, sffxsclsSAE, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRANGESD, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGESD, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESD, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGESD, sffxsclsSAE, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGESD, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESD, sffxsclsSAE_Z, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESD, sffxsclsSAE, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESS, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGESS, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESS, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGESS, sffxsclsSAE, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRANGESS, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESS, sffxsclsSAE_Z, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRANGESS, sffxsclsSAE, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRCP14PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRCP14PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRCP14PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP14PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP14PD, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP14PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRCP14PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRCP14PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRCP14PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP14PS, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP14PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP14PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP14SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14SD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14SD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14SS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP14SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP14SS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28PD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP28PD, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PD, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PD, sffxsclsBCST, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP28PD, sffxsclsBCST_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PD, sffxsclsBCST, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP28PD, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP28PD, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PD, sffxsclsSAE_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PD, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PD, sffxsclsSAE, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PS, sffxsclsBCST, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP28PS, sffxsclsBCST_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PS, sffxsclsBCST, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP28PS, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PS, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP28PS, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRCP28PS, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PS, sffxsclsSAE_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PS, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28PS, sffxsclsSAE, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRCP28SD, sffxsclsNIL, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP28SD, sffxsclsZ, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SD, sffxsclsNIL, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP28SD, sffxsclsSAE, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP28SD, sffxsclsZ, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SD, sffxsclsSAE_Z, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SD, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SS, sffxsclsNIL, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP28SS, sffxsclsZ, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SS, sffxsclsNIL, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP28SS, sffxsclsSAE, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRCP28SS, sffxsclsZ, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SS, sffxsclsSAE_Z, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCP28SS, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCPPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCPPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCPPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCPPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRCPSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRCPSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCEPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVREDUCEPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCEPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVREDUCEPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCEPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVREDUCEPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVREDUCEPD, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVREDUCEPD, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVREDUCEPD, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCEPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVREDUCEPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCEPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVREDUCEPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCEPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVREDUCEPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVREDUCEPS, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVREDUCEPS, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVREDUCEPS, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCEPS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVREDUCESD, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCESD, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCESD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCESD, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCESD, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCESD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCESS, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCESS, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCESS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCESS, sffxsclsNIL, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVREDUCESS, sffxsclsZ, 0, isasAVX512DQ, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVREDUCESS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRNDSCALEPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPD, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRNDSCALEPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsSAE_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALEPS, sffxsclsSAE, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRNDSCALESD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALESD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALESD, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALESD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESD, sffxsclsSAE_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESD, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALESS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALESS, sffxsclsSAE, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRNDSCALESS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESS, sffxsclsSAE_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRNDSCALESS, sffxsclsSAE, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVROUNDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVROUNDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVROUNDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVROUNDPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVROUNDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVROUNDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVROUNDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVROUNDPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVROUNDSD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVROUNDSD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVROUNDSS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVROUNDSS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRSQRT14PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRSQRT14PD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRSQRT14PD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT14PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT14PD, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT14PD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRSQRT14PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRSQRT14PS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVRSQRT14PS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT14PS, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT14PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT14PS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14PS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT14SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14SD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14SD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14SD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14SD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14SS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14SS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT14SS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT14SS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28PD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT28PD, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PD, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PD, sffxsclsBCST, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT28PD, sffxsclsBCST_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PD, sffxsclsBCST, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT28PD, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT28PD, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PD, sffxsclsSAE_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PD, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PD, sffxsclsSAE, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PS, sffxsclsBCST, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT28PS, sffxsclsBCST_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PS, sffxsclsBCST, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT28PS, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PS, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT28PS, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVRSQRT28PS, sffxsclsZ, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PS, sffxsclsSAE_Z, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PS, sffxsclsNIL, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28PS, sffxsclsSAE, 0, isasAVX512ER, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVRSQRT28SD, sffxsclsNIL, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT28SD, sffxsclsZ, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SD, sffxsclsNIL, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT28SD, sffxsclsSAE, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT28SD, sffxsclsZ, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SD, sffxsclsSAE_Z, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SD, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SD, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SS, sffxsclsNIL, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT28SS, sffxsclsZ, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SS, sffxsclsNIL, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT28SS, sffxsclsSAE, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVRSQRT28SS, sffxsclsZ, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SS, sffxsclsSAE_Z, 0, isasAVX512ER, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SS, sffxsclsNIL, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRT28SS, sffxsclsSAE, 0, isasAVX512ER, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVRSQRTSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVRSQRTSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSCALEFPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSCALEFPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFPS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSCALEFSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFSD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFSS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSCALEFSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCALEFSS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSCATTERDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32X), false, actionW}}}, - {opcVSCATTERDPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32X), false, actionW}}}, - {opcVSCATTERDPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32Y), false, actionW}}}, - {opcVSCATTERDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32X), false, actionW}}}, - {opcVSCATTERDPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32Y), false, actionW}}}, - {opcVSCATTERDPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM32Z), false, actionW}}}, - {opcVSCATTERQPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64X), false, actionW}}}, - {opcVSCATTERQPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Y), false, actionW}}}, - {opcVSCATTERQPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Z), false, actionW}}}, - {opcVSCATTERQPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64X), false, actionW}}}, - {opcVSCATTERQPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Y), false, actionW}}}, - {opcVSCATTERQPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeVM64Z), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFF32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFF32X4, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFF32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFF32X4, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFF32X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFF32X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFF64X2, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFF64X2, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFF64X2, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFF64X2, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFF64X2, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFF64X2, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFF64X2, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFI32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFI32X4, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFI32X4, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFI32X4, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFI32X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFI32X4, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI32X4, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFI64X2, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFI64X2, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFI64X2, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFI64X2, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFI64X2, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFI64X2, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFI64X2, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSHUFPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSHUFPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSHUFPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFPD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFPD, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFPD, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSHUFPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSHUFPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSHUFPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSHUFPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsBCST, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFPS, sffxsclsBCST_Z, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFPS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSHUFPS, sffxsclsZ, 0, isasAVX512F, 5, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSHUFPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSQRTPD, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsER_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPD, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsBCST_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsBCST, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSQRTPS, sffxsclsZ, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsER_Z, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsNIL, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTPS, sffxsclsER, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSQRTSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTSD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTSS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSQRTSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSQRTSS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSTMXCSR, sffxsclsNIL, 0, isasAVX, 1, oprnds{{uint8(oprndtypeM32), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSUBPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVSUBPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVSUBPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBPS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVSUBSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBSD, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBSD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSD, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSD, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBSS, sffxsclsER, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVSUBSS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSS, sffxsclsER_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVSUBSS, sffxsclsER, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVTESTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVTESTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}}}, - {opcVTESTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVTESTPD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}}}, - {opcVTESTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVTESTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}}}, - {opcVTESTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVTESTPS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}}}, - {opcVUCOMISD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVUCOMISD, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVUCOMISD, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVUCOMISS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVUCOMISS, sffxsclsNIL, 0, isasAVX, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVUCOMISS, sffxsclsSAE, 0, isasAVX512F, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKHPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKHPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKHPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKHPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKHPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKHPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKHPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKHPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKHPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKHPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKHPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKHPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKHPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKHPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKHPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKHPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKHPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKHPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKHPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKLPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKLPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKLPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKLPD, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKLPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKLPD, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKLPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKLPD, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKLPD, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPD, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKLPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKLPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKLPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKLPS, sffxsclsBCST_Z, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsBCST, 0, isasAVX512F_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVUNPCKLPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVUNPCKLPS, sffxsclsZ, 0, isasAVX512F_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsBCST, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKLPS, sffxsclsBCST_Z, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsBCST, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKLPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVUNPCKLPS, sffxsclsZ, 0, isasAVX512F, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVUNPCKLPS, sffxsclsNIL, 0, isasAVX512F, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVXORPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVXORPD, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVXORPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVXORPD, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPD, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVXORPD, sffxsclsZ, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVXORPD, sffxsclsZ, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVXORPD, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPD, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVXORPD, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPD, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVXORPD, sffxsclsZ, featureCancellingInputs, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPD, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, 0, isasAVX, 3, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, featureCancellingInputs, isasAVX, 3, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVXORPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVXORPS, sffxsclsZ, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM256), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVXORPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVXORPS, sffxsclsBCST_Z, 0, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPS, sffxsclsBCST, 0, isasAVX512DQ_AVX512VL, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcVXORPS, sffxsclsZ, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeXMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionRW}}}, - {opcVXORPS, sffxsclsZ, featureCancellingInputs, isasAVX512DQ_AVX512VL, 4, oprnds{{uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeYMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeYMM), false, actionW}}}, - {opcVXORPS, sffxsclsBCST, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVXORPS, sffxsclsBCST_Z, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPS, sffxsclsBCST, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVXORPS, sffxsclsZ, 0, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, 0, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeM512), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionRW}}}, - {opcVXORPS, sffxsclsZ, featureCancellingInputs, isasAVX512DQ, 4, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeK), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVXORPS, sffxsclsNIL, featureCancellingInputs, isasAVX512DQ, 3, oprnds{{uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionR}, {uint8(oprndtypeZMM), false, actionW}}}, - {opcVZEROALL, sffxsclsNIL, 0, isasAVX, 0, oprnds{}}, - {opcVZEROUPPER, sffxsclsNIL, 0, isasAVX, 0, oprnds{}}, - {opcXADDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionRW}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcXADDB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionRW}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcXADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionRW}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcXADDL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionRW}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcXADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionRW}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcXADDQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionRW}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcXADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionRW}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcXADDW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionRW}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcXCHGB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionRW}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcXCHGB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionRW}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcXCHGB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionRW}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcXCHGL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeEAX), false, actionRW}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcXCHGL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionRW}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcXCHGL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionRW}, {uint8(oprndtypeEAX), false, actionRW}}}, - {opcXCHGL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionRW}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcXCHGL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionRW}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcXCHGQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionRW}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcXCHGQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionRW}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcXCHGQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionRW}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcXCHGQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionRW}, {uint8(oprndtypeRAX), false, actionRW}}}, - {opcXCHGQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeRAX), false, actionRW}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcXCHGW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeAX), false, actionRW}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcXCHGW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionRW}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcXCHGW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionRW}, {uint8(oprndtypeAX), false, actionRW}}}, - {opcXCHGW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionRW}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcXCHGW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionRW}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcXGETBV, sffxsclsNIL, 0, isasBase, 0, oprnds{{uint8(implregEAX), true, actionW}, {uint8(implregECX), true, actionR}, {uint8(implregEDX), true, actionW}}}, - {opcXLAT, sffxsclsNIL, 0, isasBase, 0, oprnds{{uint8(implregAL), true, actionRW}, {uint8(implregEBX), true, actionR}}}, - {opcXORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeAL), false, actionRW}}}, - {opcXORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcXORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcXORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcXORB, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeM8), false, actionRW}}}, - {opcXORB, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR8), false, actionR}, {uint8(oprndtypeR8), false, actionRW}}}, - {opcXORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeEAX), false, actionRW}}}, - {opcXORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcXORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcXORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcXORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcXORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcXORL, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeM32), false, actionRW}}}, - {opcXORL, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR32), false, actionR}, {uint8(oprndtypeR32), false, actionRW}}}, - {opcXORPD, sffxsclsNIL, 0, isasSSE2, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcXORPD, sffxsclsNIL, featureCancellingInputs, isasSSE2, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcXORPS, sffxsclsNIL, 0, isasSSE, 2, oprnds{{uint8(oprndtypeM128), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcXORPS, sffxsclsNIL, featureCancellingInputs, isasSSE, 2, oprnds{{uint8(oprndtypeXMM), false, actionR}, {uint8(oprndtypeXMM), false, actionRW}}}, - {opcXORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcXORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcXORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM32), false, actionN}, {uint8(oprndtypeRAX), false, actionRW}}}, - {opcXORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcXORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcXORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcXORQ, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeM64), false, actionRW}}}, - {opcXORQ, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR64), false, actionR}, {uint8(oprndtypeR64), false, actionRW}}}, - {opcXORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeAX), false, actionRW}}}, - {opcXORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcXORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM16), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcXORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcXORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeIMM8), false, actionN}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcXORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeM16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, - {opcXORW, sffxsclsNIL, 0, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeM16), false, actionRW}}}, - {opcXORW, sffxsclsNIL, featureCancellingInputs, isasBase, 2, oprnds{{uint8(oprndtypeR16), false, actionR}, {uint8(oprndtypeR16), false, actionRW}}}, -} - -func (o opc) Forms() []form { - if opcNone < o && o < opcmax { - return opcformstable[o-1] - } - return nil -} - -var opcformstable = [][]form{ - forms[0:6], - forms[6:14], - forms[14:22], - forms[22:30], - forms[30:32], - forms[32:34], - forms[34:40], - forms[40:48], - forms[48:50], - forms[50:52], - forms[52:60], - forms[60:62], - forms[62:64], - forms[64:66], - forms[66:68], - forms[68:76], - forms[76:78], - forms[78:80], - forms[80:82], - forms[82:84], - forms[84:86], - forms[86:88], - forms[88:90], - forms[90:92], - forms[92:98], - forms[98:106], - forms[106:108], - forms[108:110], - forms[110:112], - forms[112:114], - forms[114:116], - forms[116:118], - forms[118:126], - forms[126:134], - forms[134:136], - forms[136:138], - forms[138:140], - forms[140:142], - forms[142:144], - forms[144:146], - forms[146:148], - forms[148:150], - forms[150:152], - forms[152:154], - forms[154:156], - forms[156:158], - forms[158:160], - forms[160:162], - forms[162:164], - forms[164:166], - forms[166:168], - forms[168:170], - forms[170:171], - forms[171:172], - forms[172:176], - forms[176:180], - forms[180:184], - forms[184:188], - forms[188:192], - forms[192:196], - forms[196:200], - forms[200:204], - forms[204:208], - forms[208:212], - forms[212:216], - forms[216:220], - forms[220:222], - forms[222:224], - forms[224:225], - forms[225:226], - forms[226:227], - forms[227:228], - forms[228:229], - forms[229:230], - forms[230:231], - forms[231:232], - forms[232:233], - forms[233:235], - forms[235:237], - forms[237:239], - forms[239:241], - forms[241:243], - forms[243:245], - forms[245:247], - forms[247:249], - forms[249:251], - forms[251:253], - forms[253:255], - forms[255:257], - forms[257:259], - forms[259:261], - forms[261:263], - forms[263:265], - forms[265:267], - forms[267:269], - forms[269:271], - forms[271:273], - forms[273:275], - forms[275:277], - forms[277:279], - forms[279:281], - forms[281:283], - forms[283:285], - forms[285:287], - forms[287:289], - forms[289:291], - forms[291:293], - forms[293:295], - forms[295:297], - forms[297:299], - forms[299:301], - forms[301:303], - forms[303:305], - forms[305:307], - forms[307:309], - forms[309:311], - forms[311:313], - forms[313:315], - forms[315:317], - forms[317:319], - forms[319:321], - forms[321:323], - forms[323:325], - forms[325:327], - forms[327:329], - forms[329:335], - forms[335:343], - forms[343:345], - forms[345:347], - forms[347:355], - forms[355:357], - forms[357:359], - forms[359:367], - forms[367:368], - forms[368:369], - forms[369:371], - forms[371:373], - forms[373:375], - forms[375:377], - forms[377:379], - forms[379:381], - forms[381:382], - forms[382:383], - forms[383:387], - forms[387:389], - forms[389:391], - forms[391:393], - forms[393:395], - forms[395:397], - forms[397:399], - forms[399:401], - forms[401:403], - forms[403:405], - forms[405:409], - forms[409:411], - forms[411:413], - forms[413:415], - forms[415:417], - forms[417:419], - forms[419:421], - forms[421:425], - forms[425:427], - forms[427:429], - forms[429:431], - forms[431:433], - forms[433:437], - forms[437:438], - forms[438:439], - forms[439:441], - forms[441:443], - forms[443:445], - forms[445:447], - forms[447:449], - forms[449:451], - forms[451:453], - forms[453:455], - forms[455:457], - forms[457:459], - forms[459:461], - forms[461:463], - forms[463:465], - forms[465:467], - forms[467:469], - forms[469:471], - forms[471:473], - forms[473:475], - forms[475:477], - forms[477:479], - forms[479:481], - forms[481:483], - forms[483:485], - forms[485:489], - forms[489:493], - forms[493:497], - forms[497:499], - forms[499:503], - forms[503:507], - forms[507:511], - forms[511:513], - forms[513:515], - forms[515:517], - forms[517:519], - forms[519:521], - forms[521:523], - forms[523:525], - forms[525:527], - forms[527:529], - forms[529:531], - forms[531:533], - forms[533:535], - forms[535:537], - forms[537:538], - forms[538:539], - forms[539:541], - forms[541:543], - forms[543:545], - forms[545:547], - forms[547:549], - forms[549:551], - forms[551:553], - forms[553:555], - forms[555:557], - forms[557:559], - forms[559:561], - forms[561:563], - forms[563:565], - forms[565:569], - forms[569:571], - forms[571:573], - forms[573:575], - forms[575:577], - forms[577:579], - forms[579:581], - forms[581:583], - forms[583:585], - forms[585:587], - forms[587:589], - forms[589:591], - forms[591:593], - forms[593:595], - forms[595:597], - forms[597:599], - forms[599:601], - forms[601:603], - forms[603:605], - forms[605:607], - forms[607:609], - forms[609:611], - forms[611:613], - forms[613:615], - forms[615:617], - forms[617:619], - forms[619:620], - forms[620:621], - forms[621:622], - forms[622:623], - forms[623:624], - forms[624:625], - forms[625:626], - forms[626:627], - forms[627:628], - forms[628:629], - forms[629:630], - forms[630:631], - forms[631:636], - forms[636:641], - forms[641:646], - forms[646:651], - forms[651:652], - forms[652:653], - forms[653:654], - forms[654:655], - forms[655:656], - forms[656:657], - forms[657:658], - forms[658:659], - forms[659:660], - forms[660:661], - forms[661:662], - forms[662:663], - forms[663:664], - forms[664:665], - forms[665:666], - forms[666:667], - forms[667:668], - forms[668:669], - forms[669:670], - forms[670:671], - forms[671:672], - forms[672:673], - forms[673:674], - forms[674:675], - forms[675:676], - forms[676:677], - forms[677:678], - forms[678:679], - forms[679:680], - forms[680:681], - forms[681:682], - forms[682:683], - forms[683:684], - forms[684:685], - forms[685:686], - forms[686:687], - forms[687:688], - forms[688:689], - forms[689:690], - forms[690:691], - forms[691:692], - forms[692:694], - forms[694:696], - forms[696:698], - forms[698:699], - forms[699:700], - forms[700:702], - forms[702:704], - forms[704:706], - forms[706:708], - forms[708:709], - forms[709:711], - forms[711:713], - forms[713:715], - forms[715:717], - forms[717:718], - forms[718:721], - forms[721:724], - forms[724:729], - forms[729:731], - forms[731:733], - forms[733:735], - forms[735:737], - forms[737:739], - forms[739:741], - forms[741:743], - forms[743:745], - forms[745:747], - forms[747:762], - forms[762:764], - forms[764:779], - forms[779:780], - forms[780:782], - forms[782:784], - forms[784:789], - forms[789:790], - forms[790:792], - forms[792:794], - forms[794:796], - forms[796:797], - forms[797:798], - forms[798:799], - forms[799:800], - forms[800:801], - forms[801:802], - forms[802:803], - forms[803:804], - forms[804:805], - forms[805:806], - forms[806:809], - forms[809:812], - forms[812:815], - forms[815:830], - forms[830:833], - forms[833:835], - forms[835:837], - forms[837:840], - forms[840:843], - forms[843:846], - forms[846:851], - forms[851:853], - forms[853:855], - forms[855:857], - forms[857:859], - forms[859:861], - forms[861:863], - forms[863:865], - forms[865:867], - forms[867:869], - forms[869:871], - forms[871:873], - forms[873:875], - forms[875:877], - forms[877:879], - forms[879:881], - forms[881:882], - forms[882:884], - forms[884:886], - forms[886:888], - forms[888:890], - forms[890:891], - forms[891:893], - forms[893:895], - forms[895:897], - forms[897:899], - forms[899:905], - forms[905:913], - forms[913:915], - forms[915:917], - forms[917:925], - forms[925:933], - forms[933:935], - forms[935:937], - forms[937:939], - forms[939:941], - forms[941:943], - forms[943:945], - forms[945:947], - forms[947:949], - forms[949:951], - forms[951:953], - forms[953:955], - forms[955:957], - forms[957:959], - forms[959:961], - forms[961:963], - forms[963:965], - forms[965:967], - forms[967:969], - forms[969:971], - forms[971:972], - forms[972:974], - forms[974:976], - forms[976:978], - forms[978:980], - forms[980:982], - forms[982:984], - forms[984:986], - forms[986:988], - forms[988:990], - forms[990:992], - forms[992:994], - forms[994:996], - forms[996:998], - forms[998:1000], - forms[1000:1002], - forms[1002:1004], - forms[1004:1006], - forms[1006:1008], - forms[1008:1010], - forms[1010:1012], - forms[1012:1014], - forms[1014:1016], - forms[1016:1018], - forms[1018:1020], - forms[1020:1022], - forms[1022:1024], - forms[1024:1026], - forms[1026:1028], - forms[1028:1030], - forms[1030:1032], - forms[1032:1034], - forms[1034:1036], - forms[1036:1038], - forms[1038:1040], - forms[1040:1042], - forms[1042:1044], - forms[1044:1046], - forms[1046:1048], - forms[1048:1050], - forms[1050:1052], - forms[1052:1054], - forms[1054:1056], - forms[1056:1058], - forms[1058:1060], - forms[1060:1062], - forms[1062:1064], - forms[1064:1066], - forms[1066:1068], - forms[1068:1070], - forms[1070:1072], - forms[1072:1073], - forms[1073:1075], - forms[1075:1077], - forms[1077:1079], - forms[1079:1081], - forms[1081:1083], - forms[1083:1085], - forms[1085:1087], - forms[1087:1089], - forms[1089:1091], - forms[1091:1093], - forms[1093:1095], - forms[1095:1097], - forms[1097:1099], - forms[1099:1101], - forms[1101:1103], - forms[1103:1105], - forms[1105:1107], - forms[1107:1109], - forms[1109:1111], - forms[1111:1113], - forms[1113:1115], - forms[1115:1117], - forms[1117:1119], - forms[1119:1121], - forms[1121:1123], - forms[1123:1124], - forms[1124:1125], - forms[1125:1126], - forms[1126:1127], - forms[1127:1129], - forms[1129:1131], - forms[1131:1133], - forms[1133:1135], - forms[1135:1137], - forms[1137:1139], - forms[1139:1141], - forms[1141:1143], - forms[1143:1145], - forms[1145:1146], - forms[1146:1149], - forms[1149:1150], - forms[1150:1153], - forms[1153:1156], - forms[1156:1159], - forms[1159:1162], - forms[1162:1163], - forms[1163:1166], - forms[1166:1167], - forms[1167:1170], - forms[1170:1173], - forms[1173:1175], - forms[1175:1177], - forms[1177:1179], - forms[1179:1181], - forms[1181:1183], - forms[1183:1185], - forms[1185:1187], - forms[1187:1189], - forms[1189:1191], - forms[1191:1193], - forms[1193:1195], - forms[1195:1197], - forms[1197:1199], - forms[1199:1201], - forms[1201:1203], - forms[1203:1205], - forms[1205:1207], - forms[1207:1211], - forms[1211:1213], - forms[1213:1215], - forms[1215:1221], - forms[1221:1227], - forms[1227:1233], - forms[1233:1239], - forms[1239:1241], - forms[1241:1243], - forms[1243:1249], - forms[1249:1255], - forms[1255:1261], - forms[1261:1267], - forms[1267:1270], - forms[1270:1273], - forms[1273:1274], - forms[1274:1275], - forms[1275:1276], - forms[1276:1277], - forms[1277:1278], - forms[1278:1279], - forms[1279:1285], - forms[1285:1291], - forms[1291:1297], - forms[1297:1303], - forms[1303:1309], - forms[1309:1315], - forms[1315:1321], - forms[1321:1327], - forms[1327:1329], - forms[1329:1331], - forms[1331:1333], - forms[1333:1335], - forms[1335:1337], - forms[1337:1339], - forms[1339:1341], - forms[1341:1343], - forms[1343:1349], - forms[1349:1355], - forms[1355:1361], - forms[1361:1367], - forms[1367:1373], - forms[1373:1379], - forms[1379:1385], - forms[1385:1391], - forms[1391:1393], - forms[1393:1395], - forms[1395:1401], - forms[1401:1409], - forms[1409:1417], - forms[1417:1425], - forms[1425:1427], - forms[1427:1429], - forms[1429:1431], - forms[1431:1433], - forms[1433:1435], - forms[1435:1437], - forms[1437:1439], - forms[1439:1441], - forms[1441:1443], - forms[1443:1445], - forms[1445:1447], - forms[1447:1449], - forms[1449:1451], - forms[1451:1453], - forms[1453:1455], - forms[1455:1457], - forms[1457:1458], - forms[1458:1460], - forms[1460:1462], - forms[1462:1464], - forms[1464:1466], - forms[1466:1468], - forms[1468:1470], - forms[1470:1472], - forms[1472:1478], - forms[1478:1488], - forms[1488:1498], - forms[1498:1508], - forms[1508:1510], - forms[1510:1512], - forms[1512:1518], - forms[1518:1528], - forms[1528:1538], - forms[1538:1548], - forms[1548:1550], - forms[1550:1552], - forms[1552:1554], - forms[1554:1556], - forms[1556:1558], - forms[1558:1560], - forms[1560:1562], - forms[1562:1564], - forms[1564:1565], - forms[1565:1566], - forms[1566:1567], - forms[1567:1573], - forms[1573:1581], - forms[1581:1583], - forms[1583:1585], - forms[1585:1593], - forms[1593:1595], - forms[1595:1597], - forms[1597:1605], - forms[1605:1606], - forms[1606:1611], - forms[1611:1616], - forms[1616:1621], - forms[1621:1626], - forms[1626:1628], - forms[1628:1630], - forms[1630:1632], - forms[1632:1634], - forms[1634:1636], - forms[1636:1637], - forms[1637:1639], - forms[1639:1641], - forms[1641:1643], - forms[1643:1645], - forms[1645:1675], - forms[1675:1705], - forms[1705:1714], - forms[1714:1723], - forms[1723:1727], - forms[1727:1731], - forms[1731:1737], - forms[1737:1743], - forms[1743:1749], - forms[1749:1755], - forms[1755:1757], - forms[1757:1759], - forms[1759:1786], - forms[1786:1813], - forms[1813:1840], - forms[1840:1867], - forms[1867:1894], - forms[1894:1921], - forms[1921:1948], - forms[1948:1975], - forms[1975:1979], - forms[1979:1983], - forms[1983:1987], - forms[1987:1991], - forms[1991:1992], - forms[1992:2004], - forms[2004:2010], - forms[2010:2013], - forms[2013:2019], - forms[2019:2022], - forms[2022:2023], - forms[2023:2041], - forms[2041:2047], - forms[2047:2050], - forms[2050:2056], - forms[2056:2059], - forms[2059:2071], - forms[2071:2085], - forms[2085:2109], - forms[2109:2133], - forms[2133:2141], - forms[2141:2149], - forms[2149:2152], - forms[2152:2155], - forms[2155:2173], - forms[2173:2191], - forms[2191:2218], - forms[2218:2248], - forms[2248:2260], - forms[2260:2269], - forms[2269:2278], - forms[2278:2290], - forms[2290:2299], - forms[2299:2308], - forms[2308:2338], - forms[2338:2350], - forms[2350:2359], - forms[2359:2368], - forms[2368:2398], - forms[2398:2419], - forms[2419:2449], - forms[2449:2479], - forms[2479:2500], - forms[2500:2530], - forms[2530:2560], - forms[2560:2590], - forms[2590:2620], - forms[2620:2632], - forms[2632:2641], - forms[2641:2650], - forms[2650:2653], - forms[2653:2656], - forms[2656:2665], - forms[2665:2668], - forms[2668:2671], - forms[2671:2673], - forms[2673:2676], - forms[2676:2679], - forms[2679:2682], - forms[2682:2691], - forms[2691:2694], - forms[2694:2697], - forms[2697:2700], - forms[2700:2703], - forms[2703:2715], - forms[2715:2724], - forms[2724:2733], - forms[2733:2763], - forms[2763:2775], - forms[2775:2784], - forms[2784:2793], - forms[2793:2823], - forms[2823:2853], - forms[2853:2883], - forms[2883:2913], - forms[2913:2943], - forms[2943:2946], - forms[2946:2949], - forms[2949:2952], - forms[2952:2955], - forms[2955:2958], - forms[2958:2961], - forms[2961:2964], - forms[2964:2967], - forms[2967:2994], - forms[2994:3024], - forms[3024:3054], - forms[3054:3066], - forms[3066:3075], - forms[3075:3084], - forms[3084:3086], - forms[3086:3089], - forms[3089:3092], - forms[3092:3095], - forms[3095:3113], - forms[3113:3143], - forms[3143:3173], - forms[3173:3182], - forms[3182:3191], - forms[3191:3193], - forms[3193:3197], - forms[3197:3209], - forms[3209:3221], - forms[3221:3239], - forms[3239:3257], - forms[3257:3259], - forms[3259:3271], - forms[3271:3277], - forms[3277:3289], - forms[3289:3295], - forms[3295:3297], - forms[3297:3309], - forms[3309:3315], - forms[3315:3327], - forms[3327:3333], - forms[3333:3335], - forms[3335:3365], - forms[3365:3395], - forms[3395:3404], - forms[3404:3413], - forms[3413:3443], - forms[3443:3473], - forms[3473:3482], - forms[3482:3491], - forms[3491:3521], - forms[3521:3551], - forms[3551:3560], - forms[3560:3569], - forms[3569:3599], - forms[3599:3629], - forms[3629:3638], - forms[3638:3647], - forms[3647:3677], - forms[3677:3707], - forms[3707:3737], - forms[3737:3767], - forms[3767:3797], - forms[3797:3827], - forms[3827:3857], - forms[3857:3887], - forms[3887:3896], - forms[3896:3905], - forms[3905:3935], - forms[3935:3965], - forms[3965:3974], - forms[3974:3983], - forms[3983:4013], - forms[4013:4043], - forms[4043:4052], - forms[4052:4061], - forms[4061:4091], - forms[4091:4121], - forms[4121:4151], - forms[4151:4181], - forms[4181:4211], - forms[4211:4241], - forms[4241:4271], - forms[4271:4301], - forms[4301:4310], - forms[4310:4319], - forms[4319:4349], - forms[4349:4379], - forms[4379:4388], - forms[4388:4397], - forms[4397:4427], - forms[4427:4457], - forms[4457:4466], - forms[4466:4475], - forms[4475:4505], - forms[4505:4535], - forms[4535:4544], - forms[4544:4553], - forms[4553:4583], - forms[4583:4613], - forms[4613:4622], - forms[4622:4631], - forms[4631:4661], - forms[4661:4691], - forms[4691:4700], - forms[4700:4709], - forms[4709:4715], - forms[4715:4721], - forms[4721:4727], - forms[4727:4733], - forms[4733:4739], - forms[4739:4745], - forms[4745:4749], - forms[4749:4753], - forms[4753:4758], - forms[4758:4763], - forms[4763:4768], - forms[4768:4773], - forms[4773:4803], - forms[4803:4833], - forms[4833:4842], - forms[4842:4851], - forms[4851:4881], - forms[4881:4911], - forms[4911:4920], - forms[4920:4929], - forms[4929:4956], - forms[4956:4983], - forms[4983:5001], - forms[5001:5005], - forms[5005:5009], - forms[5009:5013], - forms[5013:5017], - forms[5017:5019], - forms[5019:5031], - forms[5031:5037], - forms[5037:5049], - forms[5049:5055], - forms[5055:5057], - forms[5057:5069], - forms[5069:5075], - forms[5075:5087], - forms[5087:5093], - forms[5093:5095], - forms[5095:5097], - forms[5097:5098], - forms[5098:5099], - forms[5099:5103], - forms[5103:5107], - forms[5107:5137], - forms[5137:5167], - forms[5167:5176], - forms[5176:5185], - forms[5185:5215], - forms[5215:5245], - forms[5245:5254], - forms[5254:5263], - forms[5263:5290], - forms[5290:5317], - forms[5317:5321], - forms[5321:5339], - forms[5339:5345], - forms[5345:5372], - forms[5372:5399], - forms[5399:5405], - forms[5405:5432], - forms[5432:5459], - forms[5459:5486], - forms[5486:5513], - forms[5513:5514], - forms[5514:5516], - forms[5516:5518], - forms[5518:5519], - forms[5519:5521], - forms[5521:5523], - forms[5523:5525], - forms[5525:5527], - forms[5527:5530], - forms[5530:5533], - forms[5533:5536], - forms[5536:5539], - forms[5539:5544], - forms[5544:5552], - forms[5552:5570], - forms[5570:5588], - forms[5588:5596], - forms[5596:5623], - forms[5623:5650], - forms[5650:5654], - forms[5654:5684], - forms[5684:5714], - forms[5714:5723], - forms[5723:5732], - forms[5732:5759], - forms[5759:5786], - forms[5786:5804], - forms[5804:5831], - forms[5831:5858], - forms[5858:5876], - forms[5876:5903], - forms[5903:5921], - forms[5921:5948], - forms[5948:5966], - forms[5966:5984], - forms[5984:6011], - forms[6011:6038], - forms[6038:6056], - forms[6056:6074], - forms[6074:6092], - forms[6092:6110], - forms[6110:6128], - forms[6128:6146], - forms[6146:6150], - forms[6150:6177], - forms[6177:6181], - forms[6181:6208], - forms[6208:6235], - forms[6235:6262], - forms[6262:6280], - forms[6280:6298], - forms[6298:6302], - forms[6302:6320], - forms[6320:6347], - forms[6347:6374], - forms[6374:6392], - forms[6392:6396], - forms[6396:6400], - forms[6400:6427], - forms[6427:6454], - forms[6454:6457], - forms[6457:6460], - forms[6460:6487], - forms[6487:6514], - forms[6514:6520], - forms[6520:6532], - forms[6532:6550], - forms[6550:6566], - forms[6566:6588], - forms[6588:6610], - forms[6610:6626], - forms[6626:6628], - forms[6628:6630], - forms[6630:6646], - forms[6646:6668], - forms[6668:6690], - forms[6690:6706], - forms[6706:6708], - forms[6708:6710], - forms[6710:6728], - forms[6728:6740], - forms[6740:6758], - forms[6758:6776], - forms[6776:6788], - forms[6788:6800], - forms[6800:6815], - forms[6815:6833], - forms[6833:6851], - forms[6851:6866], - forms[6866:6893], - forms[6893:6920], - forms[6920:6947], - forms[6947:6974], - forms[6974:7001], - forms[7001:7028], - forms[7028:7030], - forms[7030:7032], - forms[7032:7050], - forms[7050:7068], - forms[7068:7086], - forms[7086:7113], - forms[7113:7140], - forms[7140:7167], - forms[7167:7194], - forms[7194:7212], - forms[7212:7266], - forms[7266:7320], - forms[7320:7356], - forms[7356:7374], - forms[7374:7410], - forms[7410:7428], - forms[7428:7455], - forms[7455:7482], - forms[7482:7509], - forms[7509:7536], - forms[7536:7554], - forms[7554:7572], - forms[7572:7590], - forms[7590:7608], - forms[7608:7626], - forms[7626:7644], - forms[7644:7646], - forms[7646:7648], - forms[7648:7650], - forms[7650:7652], - forms[7652:7657], - forms[7657:7662], - forms[7662:7667], - forms[7667:7672], - forms[7672:7676], - forms[7676:7680], - forms[7680:7684], - forms[7684:7686], - forms[7686:7690], - forms[7690:7694], - forms[7694:7698], - forms[7698:7700], - forms[7700:7702], - forms[7702:7704], - forms[7704:7706], - forms[7706:7733], - forms[7733:7760], - forms[7760:7787], - forms[7787:7814], - forms[7814:7832], - forms[7832:7850], - forms[7850:7854], - forms[7854:7858], - forms[7858:7876], - forms[7876:7903], - forms[7903:7930], - forms[7930:7948], - forms[7948:7966], - forms[7966:7993], - forms[7993:8020], - forms[8020:8038], - forms[8038:8056], - forms[8056:8083], - forms[8083:8110], - forms[8110:8128], - forms[8128:8146], - forms[8146:8173], - forms[8173:8200], - forms[8200:8218], - forms[8218:8221], - forms[8221:8224], - forms[8224:8242], - forms[8242:8260], - forms[8260:8263], - forms[8263:8266], - forms[8266:8269], - forms[8269:8272], - forms[8272:8274], - forms[8274:8277], - forms[8277:8295], - forms[8295:8313], - forms[8313:8331], - forms[8331:8349], - forms[8349:8367], - forms[8367:8385], - forms[8385:8403], - forms[8403:8421], - forms[8421:8439], - forms[8439:8457], - forms[8457:8475], - forms[8475:8493], - forms[8493:8511], - forms[8511:8529], - forms[8529:8547], - forms[8547:8565], - forms[8565:8583], - forms[8583:8601], - forms[8601:8619], - forms[8619:8637], - forms[8637:8655], - forms[8655:8658], - forms[8658:8676], - forms[8676:8694], - forms[8694:8712], - forms[8712:8730], - forms[8730:8748], - forms[8748:8766], - forms[8766:8784], - forms[8784:8811], - forms[8811:8829], - forms[8829:8847], - forms[8847:8865], - forms[8865:8892], - forms[8892:8919], - forms[8919:8937], - forms[8937:8964], - forms[8964:8991], - forms[8991:9009], - forms[9009:9036], - forms[9036:9063], - forms[9063:9081], - forms[9081:9085], - forms[9085:9112], - forms[9112:9139], - forms[9139:9166], - forms[9166:9193], - forms[9193:9220], - forms[9220:9247], - forms[9247:9274], - forms[9274:9301], - forms[9301:9328], - forms[9328:9355], - forms[9355:9361], - forms[9361:9364], - forms[9364:9367], - forms[9367:9370], - forms[9370:9373], - forms[9373:9400], - forms[9400:9427], - forms[9427:9454], - forms[9454:9481], - forms[9481:9499], - forms[9499:9517], - forms[9517:9544], - forms[9544:9571], - forms[9571:9598], - forms[9598:9625], - forms[9625:9643], - forms[9643:9661], - forms[9661:9679], - forms[9679:9691], - forms[9691:9718], - forms[9718:9736], - forms[9736:9754], - forms[9754:9758], - forms[9758:9762], - forms[9762:9766], - forms[9766:9811], - forms[9811:9817], - forms[9817:9862], - forms[9862:9889], - forms[9889:9916], - forms[9916:9934], - forms[9934:9970], - forms[9970:10015], - forms[10015:10060], - forms[10060:10087], - forms[10087:10114], - forms[10114:10132], - forms[10132:10168], - forms[10168:10213], - forms[10213:10219], - forms[10219:10264], - forms[10264:10291], - forms[10291:10318], - forms[10318:10336], - forms[10336:10372], - forms[10372:10390], - forms[10390:10417], - forms[10417:10444], - forms[10444:10462], - forms[10462:10480], - forms[10480:10498], - forms[10498:10516], - forms[10516:10534], - forms[10534:10561], - forms[10561:10588], - forms[10588:10592], - forms[10592:10604], - forms[10604:10622], - forms[10622:10640], - forms[10640:10652], - forms[10652:10664], - forms[10664:10682], - forms[10682:10700], - forms[10700:10712], - forms[10712:10730], - forms[10730:10757], - forms[10757:10784], - forms[10784:10802], - forms[10802:10820], - forms[10820:10847], - forms[10847:10874], - forms[10874:10892], - forms[10892:10896], - forms[10896:10923], - forms[10923:10950], - forms[10950:10980], - forms[10980:11010], - forms[11010:11019], - forms[11019:11028], - forms[11028:11055], - forms[11055:11082], - forms[11082:11088], - forms[11088:11094], - forms[11094:11106], - forms[11106:11118], - forms[11118:11127], - forms[11127:11136], - forms[11136:11140], - forms[11140:11142], - forms[11142:11169], - forms[11169:11196], - forms[11196:11202], - forms[11202:11208], - forms[11208:11238], - forms[11238:11268], - forms[11268:11277], - forms[11277:11286], - forms[11286:11290], - forms[11290:11294], - forms[11294:11296], - forms[11296:11298], - forms[11298:11325], - forms[11325:11352], - forms[11352:11358], - forms[11358:11364], - forms[11364:11376], - forms[11376:11388], - forms[11388:11397], - forms[11397:11406], - forms[11406:11410], - forms[11410:11412], - forms[11412:11442], - forms[11442:11472], - forms[11472:11481], - forms[11481:11490], - forms[11490:11493], - forms[11493:11496], - forms[11496:11499], - forms[11499:11502], - forms[11502:11520], - forms[11520:11538], - forms[11538:11556], - forms[11556:11574], - forms[11574:11601], - forms[11601:11628], - forms[11628:11658], - forms[11658:11688], - forms[11688:11697], - forms[11697:11706], - forms[11706:11707], - forms[11707:11737], - forms[11737:11767], - forms[11767:11776], - forms[11776:11785], - forms[11785:11789], - forms[11789:11793], - forms[11793:11796], - forms[11796:11799], - forms[11799:11826], - forms[11826:11853], - forms[11853:11880], - forms[11880:11907], - forms[11907:11934], - forms[11934:11961], - forms[11961:11962], - forms[11962:11963], - forms[11963:11965], - forms[11965:11967], - forms[11967:11969], - forms[11969:11971], - forms[11971:11974], - forms[11974:11979], - forms[11979:11984], - forms[11984:11989], - forms[11989:11990], - forms[11990:11991], - forms[11991:11997], - forms[11997:12005], - forms[12005:12007], - forms[12007:12009], - forms[12009:12017], - forms[12017:12025], -} diff --git a/vendor/github.com/muesli/termenv/.golangci-soft.yml b/vendor/github.com/muesli/termenv/.golangci-soft.yml index ef456e06..84e3d41d 100644 --- a/vendor/github.com/muesli/termenv/.golangci-soft.yml +++ b/vendor/github.com/muesli/termenv/.golangci-soft.yml @@ -20,10 +20,9 @@ linters: - goconst - godot - godox - - gomnd + - mnd - gomoddirectives - goprintffuncname - - ifshort # - lll - misspell - nakedret @@ -35,13 +34,10 @@ linters: # disable default linters, they are already enabled in .golangci.yml disable: - - deadcode - errcheck - gosimple - govet - ineffassign - staticcheck - - structcheck - typecheck - unused - - varcheck diff --git a/vendor/github.com/muesli/termenv/.golangci.yml b/vendor/github.com/muesli/termenv/.golangci.yml index a5a91d0d..684d54bf 100644 --- a/vendor/github.com/muesli/termenv/.golangci.yml +++ b/vendor/github.com/muesli/termenv/.golangci.yml @@ -15,7 +15,6 @@ issues: linters: enable: - bodyclose - - exportloopref - goimports - gosec - nilerr diff --git a/vendor/github.com/muesli/termenv/README.md b/vendor/github.com/muesli/termenv/README.md index 29dcf017..fa7929d4 100644 --- a/vendor/github.com/muesli/termenv/README.md +++ b/vendor/github.com/muesli/termenv/README.md @@ -307,7 +307,7 @@ termenv.DisableBracketedPaste() ### Color Support -- 24-bit (RGB): alacritty, foot, iTerm, kitty, Konsole, st, tmux, vte-based, wezterm, Windows Terminal +- 24-bit (RGB): alacritty, foot, iTerm, kitty, Konsole, st, tmux, vte-based, wezterm, Ghostty, Windows Terminal - 8-bit (256): rxvt, screen, xterm, Apple Terminal - 4-bit (16): Linux Console @@ -350,7 +350,7 @@ You can help improve this list! Check out [how to](ansi_compat.md) and open an i | Terminal | Copy to Clipboard (OSC52) | Hyperlinks (OSC8) | Notifications (OSC777) | | ---------------- | :-----------------------: | :---------------: | :--------------------: | -| alacritty | ✅ | ❌[^alacritty] | ❌ | +| alacritty | ✅ | ✅[^alacritty] | ❌ | | foot | ✅ | ✅ | ✅ | | kitty | ✅ | ✅ | ✅ | | Konsole | ❌[^konsole] | ✅ | ❌ | @@ -374,7 +374,7 @@ You can help improve this list! Check out [how to](ansi_compat.md) and open an i [^apple]: OSC52 works with a [workaround](https://github.com/roy2220/osc52pty). [^tmux]: OSC8 is not supported, for more info see [issue#911](https://github.com/tmux/tmux/issues/911). [^screen]: OSC8 is not supported, for more info see [bug#50952](https://savannah.gnu.org/bugs/index.php?50952). -[^alacritty]: OSC8 is not supported, for more info see [issue#922](https://github.com/alacritty/alacritty/issues/922). +[^alacritty]: OSC8 is supported since [v0.11.0](https://github.com/alacritty/alacritty/releases/tag/v0.11.0) diff --git a/vendor/github.com/muesli/termenv/ansicolors.go b/vendor/github.com/muesli/termenv/ansicolors.go index ee303e22..1a301b0f 100644 --- a/vendor/github.com/muesli/termenv/ansicolors.go +++ b/vendor/github.com/muesli/termenv/ansicolors.go @@ -1,6 +1,6 @@ package termenv -// ANSI color codes +// ANSI color codes. const ( ANSIBlack ANSIColor = iota ANSIRed diff --git a/vendor/github.com/muesli/termenv/color.go b/vendor/github.com/muesli/termenv/color.go index 1a216e93..59e639b1 100644 --- a/vendor/github.com/muesli/termenv/color.go +++ b/vendor/github.com/muesli/termenv/color.go @@ -9,12 +9,10 @@ import ( "github.com/lucasb-eyer/go-colorful" ) -var ( - // ErrInvalidColor gets returned when a color is invalid. - ErrInvalidColor = errors.New("invalid color") -) +// ErrInvalidColor gets returned when a color is invalid. +var ErrInvalidColor = errors.New("invalid color") -// Foreground and Background sequence codes +// Foreground and Background sequence codes. const ( Foreground = "38" Background = "48" @@ -73,6 +71,8 @@ func (c NoColor) Sequence(_ bool) string { } // Sequence returns the ANSI Sequence for the color. +// +//nolint:mnd func (c ANSIColor) Sequence(bg bool) string { col := int(c) bgMod := func(c int) int { @@ -83,9 +83,9 @@ func (c ANSIColor) Sequence(bg bool) string { } if col < 8 { - return fmt.Sprintf("%d", bgMod(col)+30) + return fmt.Sprintf("%d", bgMod(col)+30) //nolint:mnd } - return fmt.Sprintf("%d", bgMod(col-8)+90) + return fmt.Sprintf("%d", bgMod(col-8)+90) //nolint:mnd } // Sequence returns the ANSI Sequence for the color. @@ -108,7 +108,7 @@ func (c RGBColor) Sequence(bg bool) string { if bg { prefix = Background } - return fmt.Sprintf("%s;2;%d;%d;%d", prefix, uint8(f.R*255), uint8(f.G*255), uint8(f.B*255)) + return fmt.Sprintf("%s;2;%d;%d;%d", prefix, uint8(f.R*255), uint8(f.G*255), uint8(f.B*255)) //nolint:mnd } func xTermColor(s string) (RGBColor, error) { @@ -158,6 +158,7 @@ func ansi256ToANSIColor(c ANSI256Color) ANSIColor { return ANSIColor(r) } +//nolint:mnd func hexToANSI256Color(c colorful.Color) ANSI256Color { v2ci := func(v float64) int { if v < 48 { diff --git a/vendor/github.com/muesli/termenv/constants_zos.go b/vendor/github.com/muesli/termenv/constants_zos.go new file mode 100644 index 00000000..4262f03b --- /dev/null +++ b/vendor/github.com/muesli/termenv/constants_zos.go @@ -0,0 +1,8 @@ +package termenv + +import "golang.org/x/sys/unix" + +const ( + tcgetattr = unix.TCGETS + tcsetattr = unix.TCSETS +) diff --git a/vendor/github.com/muesli/termenv/output.go b/vendor/github.com/muesli/termenv/output.go index e22d369c..e4434de0 100644 --- a/vendor/github.com/muesli/termenv/output.go +++ b/vendor/github.com/muesli/termenv/output.go @@ -6,12 +6,12 @@ import ( "sync" ) -var ( - // output is the default global output. - output = NewOutput(os.Stdout) -) +// output is the default global output. +var output = NewOutput(os.Stdout) // File represents a file descriptor. +// +// Deprecated: Use *os.File instead. type File interface { io.ReadWriter Fd() uintptr @@ -23,7 +23,7 @@ type OutputOption = func(*Output) // Output is a terminal output. type Output struct { Profile - tty io.Writer + w io.Writer environ Environ assumeTTY bool @@ -61,10 +61,10 @@ func SetDefaultOutput(o *Output) { output = o } -// NewOutput returns a new Output for the given file descriptor. -func NewOutput(tty io.Writer, opts ...OutputOption) *Output { +// NewOutput returns a new Output for the given writer. +func NewOutput(w io.Writer, opts ...OutputOption) *Output { o := &Output{ - tty: tty, + w: w, environ: &osEnviron{}, Profile: -1, fgSync: &sync.Once{}, @@ -73,8 +73,8 @@ func NewOutput(tty io.Writer, opts ...OutputOption) *Output { bgColor: NoColor{}, } - if o.tty == nil { - o.tty = os.Stdout + if o.w == nil { + o.w = os.Stdout } for _, opt := range opts { opt(o) @@ -175,20 +175,28 @@ func (o *Output) BackgroundColor() Color { func (o *Output) HasDarkBackground() bool { c := ConvertToRGB(o.BackgroundColor()) _, _, l := c.Hsl() - return l < 0.5 + return l < 0.5 //nolint:mnd } // TTY returns the terminal's file descriptor. This may be nil if the output is // not a terminal. +// +// Deprecated: Use Writer() instead. func (o Output) TTY() File { - if f, ok := o.tty.(File); ok { + if f, ok := o.w.(File); ok { return f } return nil } +// Writer returns the underlying writer. This may be of type io.Writer, +// io.ReadWriter, or *os.File. +func (o Output) Writer() io.Writer { + return o.w +} + func (o Output) Write(p []byte) (int, error) { - return o.tty.Write(p) + return o.w.Write(p) //nolint:wrapcheck } // WriteString writes the given string to the output. diff --git a/vendor/github.com/muesli/termenv/profile.go b/vendor/github.com/muesli/termenv/profile.go index fa128e20..7d38f5fb 100644 --- a/vendor/github.com/muesli/termenv/profile.go +++ b/vendor/github.com/muesli/termenv/profile.go @@ -12,16 +12,31 @@ import ( type Profile int const ( - // TrueColor, 24-bit color profile + // TrueColor, 24-bit color profile. TrueColor = Profile(iota) - // ANSI256, 8-bit color profile + // ANSI256, 8-bit color profile. ANSI256 - // ANSI, 4-bit color profile + // ANSI, 4-bit color profile. ANSI - // Ascii, uncolored profile + // Ascii, uncolored profile. Ascii //nolint:revive ) +// Name returns the profile name as a string. +func (p Profile) Name() string { + switch p { + case Ascii: + return "Ascii" + case ANSI: + return "ANSI" + case ANSI256: + return "ANSI256" + case TrueColor: + return "TrueColor" + } + return "Unknown" +} + // String returns a new Style. func (p Profile) String(s ...string) Style { return Style{ @@ -80,7 +95,7 @@ func (p Profile) Color(s string) Color { return nil } - if i < 16 { + if i < 16 { //nolint:mnd c = ANSIColor(i) } else { c = ANSI256Color(i) diff --git a/vendor/github.com/muesli/termenv/screen.go b/vendor/github.com/muesli/termenv/screen.go index a71181b6..75c11d01 100644 --- a/vendor/github.com/muesli/termenv/screen.go +++ b/vendor/github.com/muesli/termenv/screen.go @@ -71,234 +71,234 @@ const ( // Reset the terminal to its default style, removing any active styles. func (o Output) Reset() { - fmt.Fprint(o.tty, CSI+ResetSeq+"m") + fmt.Fprint(o.w, CSI+ResetSeq+"m") //nolint:errcheck } // SetForegroundColor sets the default foreground color. func (o Output) SetForegroundColor(color Color) { - fmt.Fprintf(o.tty, OSC+SetForegroundColorSeq, color) + fmt.Fprintf(o.w, OSC+SetForegroundColorSeq, color) //nolint:errcheck } // SetBackgroundColor sets the default background color. func (o Output) SetBackgroundColor(color Color) { - fmt.Fprintf(o.tty, OSC+SetBackgroundColorSeq, color) + fmt.Fprintf(o.w, OSC+SetBackgroundColorSeq, color) //nolint:errcheck } // SetCursorColor sets the cursor color. func (o Output) SetCursorColor(color Color) { - fmt.Fprintf(o.tty, OSC+SetCursorColorSeq, color) + fmt.Fprintf(o.w, OSC+SetCursorColorSeq, color) //nolint:errcheck } // RestoreScreen restores a previously saved screen state. func (o Output) RestoreScreen() { - fmt.Fprint(o.tty, CSI+RestoreScreenSeq) + fmt.Fprint(o.w, CSI+RestoreScreenSeq) //nolint:errcheck } // SaveScreen saves the screen state. func (o Output) SaveScreen() { - fmt.Fprint(o.tty, CSI+SaveScreenSeq) + fmt.Fprint(o.w, CSI+SaveScreenSeq) //nolint:errcheck } // AltScreen switches to the alternate screen buffer. The former view can be // restored with ExitAltScreen(). func (o Output) AltScreen() { - fmt.Fprint(o.tty, CSI+AltScreenSeq) + fmt.Fprint(o.w, CSI+AltScreenSeq) //nolint:errcheck } // ExitAltScreen exits the alternate screen buffer and returns to the former // terminal view. func (o Output) ExitAltScreen() { - fmt.Fprint(o.tty, CSI+ExitAltScreenSeq) + fmt.Fprint(o.w, CSI+ExitAltScreenSeq) //nolint:errcheck } // ClearScreen clears the visible portion of the terminal. func (o Output) ClearScreen() { - fmt.Fprintf(o.tty, CSI+EraseDisplaySeq, 2) + fmt.Fprintf(o.w, CSI+EraseDisplaySeq, 2) //nolint:errcheck,mnd o.MoveCursor(1, 1) } // MoveCursor moves the cursor to a given position. func (o Output) MoveCursor(row int, column int) { - fmt.Fprintf(o.tty, CSI+CursorPositionSeq, row, column) + fmt.Fprintf(o.w, CSI+CursorPositionSeq, row, column) //nolint:errcheck } // HideCursor hides the cursor. func (o Output) HideCursor() { - fmt.Fprint(o.tty, CSI+HideCursorSeq) + fmt.Fprint(o.w, CSI+HideCursorSeq) //nolint:errcheck } // ShowCursor shows the cursor. func (o Output) ShowCursor() { - fmt.Fprint(o.tty, CSI+ShowCursorSeq) + fmt.Fprint(o.w, CSI+ShowCursorSeq) //nolint:errcheck } // SaveCursorPosition saves the cursor position. func (o Output) SaveCursorPosition() { - fmt.Fprint(o.tty, CSI+SaveCursorPositionSeq) + fmt.Fprint(o.w, CSI+SaveCursorPositionSeq) //nolint:errcheck } // RestoreCursorPosition restores a saved cursor position. func (o Output) RestoreCursorPosition() { - fmt.Fprint(o.tty, CSI+RestoreCursorPositionSeq) + fmt.Fprint(o.w, CSI+RestoreCursorPositionSeq) //nolint:errcheck } // CursorUp moves the cursor up a given number of lines. func (o Output) CursorUp(n int) { - fmt.Fprintf(o.tty, CSI+CursorUpSeq, n) + fmt.Fprintf(o.w, CSI+CursorUpSeq, n) //nolint:errcheck } // CursorDown moves the cursor down a given number of lines. func (o Output) CursorDown(n int) { - fmt.Fprintf(o.tty, CSI+CursorDownSeq, n) + fmt.Fprintf(o.w, CSI+CursorDownSeq, n) //nolint:errcheck } // CursorForward moves the cursor up a given number of lines. func (o Output) CursorForward(n int) { - fmt.Fprintf(o.tty, CSI+CursorForwardSeq, n) + fmt.Fprintf(o.w, CSI+CursorForwardSeq, n) //nolint:errcheck } // CursorBack moves the cursor backwards a given number of cells. func (o Output) CursorBack(n int) { - fmt.Fprintf(o.tty, CSI+CursorBackSeq, n) + fmt.Fprintf(o.w, CSI+CursorBackSeq, n) //nolint:errcheck } // CursorNextLine moves the cursor down a given number of lines and places it at // the beginning of the line. func (o Output) CursorNextLine(n int) { - fmt.Fprintf(o.tty, CSI+CursorNextLineSeq, n) + fmt.Fprintf(o.w, CSI+CursorNextLineSeq, n) //nolint:errcheck } // CursorPrevLine moves the cursor up a given number of lines and places it at // the beginning of the line. func (o Output) CursorPrevLine(n int) { - fmt.Fprintf(o.tty, CSI+CursorPreviousLineSeq, n) + fmt.Fprintf(o.w, CSI+CursorPreviousLineSeq, n) //nolint:errcheck } // ClearLine clears the current line. func (o Output) ClearLine() { - fmt.Fprint(o.tty, CSI+EraseEntireLineSeq) + fmt.Fprint(o.w, CSI+EraseEntireLineSeq) //nolint:errcheck } // ClearLineLeft clears the line to the left of the cursor. func (o Output) ClearLineLeft() { - fmt.Fprint(o.tty, CSI+EraseLineLeftSeq) + fmt.Fprint(o.w, CSI+EraseLineLeftSeq) //nolint:errcheck } // ClearLineRight clears the line to the right of the cursor. func (o Output) ClearLineRight() { - fmt.Fprint(o.tty, CSI+EraseLineRightSeq) + fmt.Fprint(o.w, CSI+EraseLineRightSeq) //nolint:errcheck } // ClearLines clears a given number of lines. func (o Output) ClearLines(n int) { - clearLine := fmt.Sprintf(CSI+EraseLineSeq, 2) + clearLine := fmt.Sprintf(CSI+EraseLineSeq, 2) //nolint:mnd cursorUp := fmt.Sprintf(CSI+CursorUpSeq, 1) - fmt.Fprint(o.tty, clearLine+strings.Repeat(cursorUp+clearLine, n)) + fmt.Fprint(o.w, clearLine+strings.Repeat(cursorUp+clearLine, n)) //nolint:errcheck } // ChangeScrollingRegion sets the scrolling region of the terminal. func (o Output) ChangeScrollingRegion(top, bottom int) { - fmt.Fprintf(o.tty, CSI+ChangeScrollingRegionSeq, top, bottom) + fmt.Fprintf(o.w, CSI+ChangeScrollingRegionSeq, top, bottom) //nolint:errcheck } // InsertLines inserts the given number of lines at the top of the scrollable // region, pushing lines below down. func (o Output) InsertLines(n int) { - fmt.Fprintf(o.tty, CSI+InsertLineSeq, n) + fmt.Fprintf(o.w, CSI+InsertLineSeq, n) //nolint:errcheck } // DeleteLines deletes the given number of lines, pulling any lines in // the scrollable region below up. func (o Output) DeleteLines(n int) { - fmt.Fprintf(o.tty, CSI+DeleteLineSeq, n) + fmt.Fprintf(o.w, CSI+DeleteLineSeq, n) //nolint:errcheck } // EnableMousePress enables X10 mouse mode. Button press events are sent only. func (o Output) EnableMousePress() { - fmt.Fprint(o.tty, CSI+EnableMousePressSeq) + fmt.Fprint(o.w, CSI+EnableMousePressSeq) //nolint:errcheck } // DisableMousePress disables X10 mouse mode. func (o Output) DisableMousePress() { - fmt.Fprint(o.tty, CSI+DisableMousePressSeq) + fmt.Fprint(o.w, CSI+DisableMousePressSeq) //nolint:errcheck } // EnableMouse enables Mouse Tracking mode. func (o Output) EnableMouse() { - fmt.Fprint(o.tty, CSI+EnableMouseSeq) + fmt.Fprint(o.w, CSI+EnableMouseSeq) //nolint:errcheck } // DisableMouse disables Mouse Tracking mode. func (o Output) DisableMouse() { - fmt.Fprint(o.tty, CSI+DisableMouseSeq) + fmt.Fprint(o.w, CSI+DisableMouseSeq) //nolint:errcheck } // EnableMouseHilite enables Hilite Mouse Tracking mode. func (o Output) EnableMouseHilite() { - fmt.Fprint(o.tty, CSI+EnableMouseHiliteSeq) + fmt.Fprint(o.w, CSI+EnableMouseHiliteSeq) //nolint:errcheck } // DisableMouseHilite disables Hilite Mouse Tracking mode. func (o Output) DisableMouseHilite() { - fmt.Fprint(o.tty, CSI+DisableMouseHiliteSeq) + fmt.Fprint(o.w, CSI+DisableMouseHiliteSeq) //nolint:errcheck } // EnableMouseCellMotion enables Cell Motion Mouse Tracking mode. func (o Output) EnableMouseCellMotion() { - fmt.Fprint(o.tty, CSI+EnableMouseCellMotionSeq) + fmt.Fprint(o.w, CSI+EnableMouseCellMotionSeq) //nolint:errcheck } // DisableMouseCellMotion disables Cell Motion Mouse Tracking mode. func (o Output) DisableMouseCellMotion() { - fmt.Fprint(o.tty, CSI+DisableMouseCellMotionSeq) + fmt.Fprint(o.w, CSI+DisableMouseCellMotionSeq) //nolint:errcheck } // EnableMouseAllMotion enables All Motion Mouse mode. func (o Output) EnableMouseAllMotion() { - fmt.Fprint(o.tty, CSI+EnableMouseAllMotionSeq) + fmt.Fprint(o.w, CSI+EnableMouseAllMotionSeq) //nolint:errcheck } // DisableMouseAllMotion disables All Motion Mouse mode. func (o Output) DisableMouseAllMotion() { - fmt.Fprint(o.tty, CSI+DisableMouseAllMotionSeq) + fmt.Fprint(o.w, CSI+DisableMouseAllMotionSeq) //nolint:errcheck } // EnableMouseExtendedMotion enables Extended Mouse mode (SGR). This should be // enabled in conjunction with EnableMouseCellMotion, and EnableMouseAllMotion. func (o Output) EnableMouseExtendedMode() { - fmt.Fprint(o.tty, CSI+EnableMouseExtendedModeSeq) + fmt.Fprint(o.w, CSI+EnableMouseExtendedModeSeq) //nolint:errcheck } // DisableMouseExtendedMotion disables Extended Mouse mode (SGR). func (o Output) DisableMouseExtendedMode() { - fmt.Fprint(o.tty, CSI+DisableMouseExtendedModeSeq) + fmt.Fprint(o.w, CSI+DisableMouseExtendedModeSeq) //nolint:errcheck } // EnableMousePixelsMotion enables Pixel Motion Mouse mode (SGR-Pixels). This // should be enabled in conjunction with EnableMouseCellMotion, and // EnableMouseAllMotion. func (o Output) EnableMousePixelsMode() { - fmt.Fprint(o.tty, CSI+EnableMousePixelsModeSeq) + fmt.Fprint(o.w, CSI+EnableMousePixelsModeSeq) //nolint:errcheck } // DisableMousePixelsMotion disables Pixel Motion Mouse mode (SGR-Pixels). func (o Output) DisableMousePixelsMode() { - fmt.Fprint(o.tty, CSI+DisableMousePixelsModeSeq) + fmt.Fprint(o.w, CSI+DisableMousePixelsModeSeq) //nolint:errcheck } // SetWindowTitle sets the terminal window title. func (o Output) SetWindowTitle(title string) { - fmt.Fprintf(o.tty, OSC+SetWindowTitleSeq, title) + fmt.Fprintf(o.w, OSC+SetWindowTitleSeq, title) //nolint:errcheck } // EnableBracketedPaste enables bracketed paste. func (o Output) EnableBracketedPaste() { - fmt.Fprintf(o.tty, CSI+EnableBracketedPasteSeq) + fmt.Fprintf(o.w, CSI+EnableBracketedPasteSeq) //nolint:errcheck } // DisableBracketedPaste disables bracketed paste. func (o Output) DisableBracketedPaste() { - fmt.Fprintf(o.tty, CSI+DisableBracketedPasteSeq) + fmt.Fprintf(o.w, CSI+DisableBracketedPasteSeq) //nolint:errcheck } // Legacy functions. diff --git a/vendor/github.com/muesli/termenv/style.go b/vendor/github.com/muesli/termenv/style.go index 83b0b4d7..dedc1f9f 100644 --- a/vendor/github.com/muesli/termenv/style.go +++ b/vendor/github.com/muesli/termenv/style.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/mattn/go-runewidth" + "github.com/rivo/uniseg" ) // Sequence definitions. @@ -122,5 +122,5 @@ func (t Style) CrossOut() Style { // Width returns the width required to print all runes in Style. func (t Style) Width() int { - return runewidth.StringWidth(t.string) + return uniseg.StringWidth(t.string) } diff --git a/vendor/github.com/muesli/termenv/templatehelper.go b/vendor/github.com/muesli/termenv/templatehelper.go index d75b0796..4c7c80f5 100644 --- a/vendor/github.com/muesli/termenv/templatehelper.go +++ b/vendor/github.com/muesli/termenv/templatehelper.go @@ -10,6 +10,8 @@ func (o Output) TemplateFuncs() template.FuncMap { } // TemplateFuncs contains a few useful template helpers. +// +//nolint:mnd func TemplateFuncs(p Profile) template.FuncMap { if p == Ascii { return noopTemplateFuncs diff --git a/vendor/github.com/muesli/termenv/termenv.go b/vendor/github.com/muesli/termenv/termenv.go index 4ceb2717..d702cd55 100644 --- a/vendor/github.com/muesli/termenv/termenv.go +++ b/vendor/github.com/muesli/termenv/termenv.go @@ -2,6 +2,7 @@ package termenv import ( "errors" + "os" "github.com/mattn/go-isatty" ) @@ -12,15 +13,15 @@ var ( ) const ( - // Escape character + // Escape character. ESC = '\x1b' - // Bell + // Bell. BEL = '\a' - // Control Sequence Introducer + // Control Sequence Introducer. CSI = string(ESC) + "[" - // Operating System Command + // Operating System Command. OSC = string(ESC) + "]" - // String Terminator + // String Terminator. ST = string(ESC) + `\` ) @@ -31,11 +32,11 @@ func (o *Output) isTTY() bool { if len(o.environ.Getenv("CI")) > 0 { return false } - if o.TTY() == nil { - return false + if f, ok := o.Writer().(*os.File); ok { + return isatty.IsTerminal(f.Fd()) } - return isatty.IsTerminal(o.TTY().Fd()) + return false } // ColorProfile returns the supported color profile: diff --git a/vendor/github.com/muesli/termenv/termenv_posix.go b/vendor/github.com/muesli/termenv/termenv_posix.go index b2109b74..c971dd99 100644 --- a/vendor/github.com/muesli/termenv/termenv_posix.go +++ b/vendor/github.com/muesli/termenv/termenv_posix.go @@ -1,5 +1,5 @@ -//go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd -// +build darwin dragonfly freebsd linux netbsd openbsd +//go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || zos +// +build darwin dragonfly freebsd linux netbsd openbsd zos package termenv diff --git a/vendor/github.com/muesli/termenv/termenv_unix.go b/vendor/github.com/muesli/termenv/termenv_unix.go index 24d519a5..bef49ca3 100644 --- a/vendor/github.com/muesli/termenv/termenv_unix.go +++ b/vendor/github.com/muesli/termenv/termenv_unix.go @@ -1,5 +1,5 @@ -//go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris -// +build darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build darwin dragonfly freebsd linux netbsd openbsd solaris zos package termenv @@ -14,7 +14,7 @@ import ( ) const ( - // timeout for OSC queries + // timeout for OSC queries. OSCTimeout = 5 * time.Second ) @@ -50,9 +50,15 @@ func (o *Output) ColorProfile() Profile { } switch term { - case "xterm-kitty", "wezterm": + case + "alacritty", + "contour", + "rio", + "wezterm", + "xterm-ghostty", + "xterm-kitty": return TrueColor - case "linux": + case "linux", "xterm": return ANSI } @@ -69,6 +75,7 @@ func (o *Output) ColorProfile() Profile { return Ascii } +//nolint:mnd func (o Output) foregroundColor() Color { s, err := o.termStatusReport(10) if err == nil { @@ -91,6 +98,7 @@ func (o Output) foregroundColor() Color { return ANSIColor(7) } +//nolint:mnd func (o Output) backgroundColor() Color { s, err := o.termStatusReport(11) if err == nil { @@ -117,15 +125,15 @@ func (o *Output) waitForData(timeout time.Duration) error { fd := o.TTY().Fd() tv := unix.NsecToTimeval(int64(timeout)) var readfds unix.FdSet - readfds.Set(int(fd)) + readfds.Set(int(fd)) //nolint:gosec for { - n, err := unix.Select(int(fd)+1, &readfds, nil, nil, &tv) + n, err := unix.Select(int(fd)+1, &readfds, nil, nil, &tv) //nolint:gosec if err == unix.EINTR { continue } if err != nil { - return err + return err //nolint:wrapcheck } if n == 0 { return fmt.Errorf("timeout") @@ -147,7 +155,7 @@ func (o *Output) readNextByte() (byte, error) { var b [1]byte n, err := o.TTY().Read(b[:]) if err != nil { - return 0, err + return 0, err //nolint:wrapcheck } if n == 0 { @@ -215,7 +223,7 @@ func (o *Output) readNextResponse() (response string, isOSC bool, err error) { } // both responses have less than 25 bytes, so if we read more, that's an error - if len(response) > 25 { + if len(response) > 25 { //nolint:mnd break } } @@ -227,7 +235,7 @@ func (o Output) termStatusReport(sequence int) (string, error) { // screen/tmux can't support OSC, because they can be connected to multiple // terminals concurrently. term := o.environ.Getenv("TERM") - if strings.HasPrefix(term, "screen") || strings.HasPrefix(term, "tmux") { + if strings.HasPrefix(term, "screen") || strings.HasPrefix(term, "tmux") || strings.HasPrefix(term, "dumb") { return "", ErrStatusReport } @@ -237,7 +245,7 @@ func (o Output) termStatusReport(sequence int) (string, error) { } if !o.unsafe { - fd := int(tty.Fd()) + fd := int(tty.Fd()) //nolint:gosec // if in background, we can't control the terminal if !isForeground(fd) { return "", ErrStatusReport @@ -258,10 +266,10 @@ func (o Output) termStatusReport(sequence int) (string, error) { } // first, send OSC query, which is ignored by terminal which do not support it - fmt.Fprintf(tty, OSC+"%d;?"+ST, sequence) + fmt.Fprintf(tty, OSC+"%d;?"+ST, sequence) //nolint:errcheck // then, query cursor position, should be supported by all terminals - fmt.Fprintf(tty, CSI+"6n") + fmt.Fprintf(tty, CSI+"6n") //nolint:errcheck // read the next response res, isOSC, err := o.readNextResponse() diff --git a/vendor/github.com/muesli/termenv/termenv_windows.go b/vendor/github.com/muesli/termenv/termenv_windows.go index 1d9c6187..f9b1def0 100644 --- a/vendor/github.com/muesli/termenv/termenv_windows.go +++ b/vendor/github.com/muesli/termenv/termenv_windows.go @@ -5,6 +5,7 @@ package termenv import ( "fmt" + "os" "strconv" "golang.org/x/sys/windows" @@ -103,8 +104,8 @@ func EnableVirtualTerminalProcessing(o *Output) (restoreFunc func() error, err e } // If o is not a tty, then there is nothing to do. - tty := o.TTY() - if tty == nil { + tty, ok := o.Writer().(*os.File) + if tty == nil || !ok { return } diff --git a/vendor/github.com/opencontainers/image-spec/specs-go/version.go b/vendor/github.com/opencontainers/image-spec/specs-go/version.go index 7069ae44..c3897c7c 100644 --- a/vendor/github.com/opencontainers/image-spec/specs-go/version.go +++ b/vendor/github.com/opencontainers/image-spec/specs-go/version.go @@ -22,7 +22,7 @@ const ( // VersionMinor is for functionality in a backwards-compatible manner VersionMinor = 1 // VersionPatch is for backwards-compatible bug fixes - VersionPatch = 0 + VersionPatch = 1 // VersionDev indicates development branch. Releases will be empty string. VersionDev = "" diff --git a/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm b/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm index dfcfac3c..4230fba0 100644 --- a/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm +++ b/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm @@ -1,4 +1,4 @@ -FROM golang:1.23@sha256:a7f2fc9834049c1f5df787690026a53738e55fc097cd8a4a93faa3e06c67ee32 +FROM golang:1.23@sha256:51a6466e8dbf3e00e422eb0f7a97ac450b2d57b33617bbe8d2ee0bddcd9d0d37 ENV GOOS=linux ENV GOARCH=arm diff --git a/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64 b/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64 index a2c74b90..59928252 100644 --- a/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64 +++ b/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64 @@ -1,4 +1,4 @@ -FROM golang:1.23@sha256:a7f2fc9834049c1f5df787690026a53738e55fc097cd8a4a93faa3e06c67ee32 +FROM golang:1.23@sha256:51a6466e8dbf3e00e422eb0f7a97ac450b2d57b33617bbe8d2ee0bddcd9d0d37 ENV GOOS=linux ENV GOARCH=arm64 diff --git a/vendor/github.com/pjbgf/sha1cd/Makefile b/vendor/github.com/pjbgf/sha1cd/Makefile index e591308f..278a109d 100644 --- a/vendor/github.com/pjbgf/sha1cd/Makefile +++ b/vendor/github.com/pjbgf/sha1cd/Makefile @@ -32,11 +32,7 @@ build-nocgo: cross-build: build-arm build-arm64 build-nocgo generate: - go run sha1cdblock_amd64_asm.go -out sha1cdblock_amd64.s - sed -i 's;&\samd64;&\n// +build !noasm,gc,amd64;g' sha1cdblock_amd64.s - - cd ubc && go run ubc_amd64_asm.go -out ubc_amd64.s - sed -i 's;&\samd64;&\n// +build !noasm,gc,amd64;g' ubc/ubc_amd64.s + go generate -x ./... verify: generate git diff --exit-code diff --git a/vendor/github.com/pjbgf/sha1cd/sha1cd.go b/vendor/github.com/pjbgf/sha1cd/sha1cd.go index 17f6f84c..509569f6 100644 --- a/vendor/github.com/pjbgf/sha1cd/sha1cd.go +++ b/vendor/github.com/pjbgf/sha1cd/sha1cd.go @@ -17,10 +17,11 @@ import ( "errors" "hash" - _ "github.com/mmcloughlin/avo/build" shared "github.com/pjbgf/sha1cd/internal" ) +//go:generate go run -C asm . -out ../sha1cdblock_amd64.s -pkg $GOPACKAGE + func init() { crypto.RegisterHash(crypto.SHA1, New) } diff --git a/vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.s b/vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.s index 86f9821c..e5e213a5 100644 --- a/vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.s +++ b/vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.s @@ -1,7 +1,6 @@ -// Code generated by command: go run sha1cdblock_amd64_asm.go -out sha1cdblock_amd64.s. DO NOT EDIT. +// Code generated by command: go run asm.go -out ../sha1cdblock_amd64.s -pkg sha1cd. DO NOT EDIT. //go:build !noasm && gc && amd64 -// +build !noasm,gc,amd64 #include "textflag.h" diff --git a/vendor/github.com/pjbgf/sha1cd/ubc/doc.go b/vendor/github.com/pjbgf/sha1cd/ubc/ubc.go similarity index 68% rename from vendor/github.com/pjbgf/sha1cd/ubc/doc.go rename to vendor/github.com/pjbgf/sha1cd/ubc/ubc.go index 0090e36b..b0b4d76e 100644 --- a/vendor/github.com/pjbgf/sha1cd/ubc/doc.go +++ b/vendor/github.com/pjbgf/sha1cd/ubc/ubc.go @@ -1,3 +1,5 @@ // ubc package provides ways for SHA1 blocks to be checked for // Unavoidable Bit Conditions that arise from crypto analysis attacks. package ubc + +//go:generate go run -C asm . -out ../ubc_amd64.s -pkg $GOPACKAGE diff --git a/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.s b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.s index 0c0f4e47..c77ea77e 100644 --- a/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.s +++ b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.s @@ -1,7 +1,6 @@ -// Code generated by command: go run ubc_amd64_asm.go -out ubc_amd64.s. DO NOT EDIT. +// Code generated by command: go run asm.go -out ../ubc_amd64.s -pkg ubc. DO NOT EDIT. //go:build !noasm && gc && amd64 -// +build !noasm,gc,amd64 #include "textflag.h" diff --git a/vendor/github.com/prometheus/client_golang/prometheus/desc.go b/vendor/github.com/prometheus/client_golang/prometheus/desc.go index 68ffe3c2..ad347113 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/desc.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/desc.go @@ -189,12 +189,15 @@ func (d *Desc) String() string { fmt.Sprintf("%s=%q", lp.GetName(), lp.GetValue()), ) } - vlStrings := make([]string, 0, len(d.variableLabels.names)) - for _, vl := range d.variableLabels.names { - if fn, ok := d.variableLabels.labelConstraints[vl]; ok && fn != nil { - vlStrings = append(vlStrings, fmt.Sprintf("c(%s)", vl)) - } else { - vlStrings = append(vlStrings, vl) + vlStrings := []string{} + if d.variableLabels != nil { + vlStrings = make([]string, 0, len(d.variableLabels.names)) + for _, vl := range d.variableLabels.names { + if fn, ok := d.variableLabels.labelConstraints[vl]; ok && fn != nil { + vlStrings = append(vlStrings, fmt.Sprintf("c(%s)", vl)) + } else { + vlStrings = append(vlStrings, vl) + } } } return fmt.Sprintf( diff --git a/vendor/github.com/prometheus/client_golang/prometheus/go_collector_latest.go b/vendor/github.com/prometheus/client_golang/prometheus/go_collector_latest.go index 51174641..6b868473 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/go_collector_latest.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/go_collector_latest.go @@ -288,7 +288,7 @@ func NewGoCollector(opts ...func(o *internal.GoCollectorOptions)) Collector { } func attachOriginalName(desc, origName string) string { - return fmt.Sprintf("%s Sourced from %s", desc, origName) + return fmt.Sprintf("%s Sourced from %s.", desc, origName) } // Describe returns all descriptions of the collector. diff --git a/vendor/github.com/prometheus/client_golang/prometheus/histogram.go b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go index 519db348..c453b754 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/histogram.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/histogram.go @@ -14,6 +14,7 @@ package prometheus import ( + "errors" "fmt" "math" "runtime" @@ -28,6 +29,11 @@ import ( "google.golang.org/protobuf/types/known/timestamppb" ) +const ( + nativeHistogramSchemaMaximum = 8 + nativeHistogramSchemaMinimum = -4 +) + // nativeHistogramBounds for the frac of observed values. Only relevant for // schema > 0. The position in the slice is the schema. (0 is never used, just // here for convenience of using the schema directly as the index.) @@ -330,11 +336,11 @@ func ExponentialBuckets(start, factor float64, count int) []float64 { // used for the Buckets field of HistogramOpts. // // The function panics if 'count' is 0 or negative, if 'min' is 0 or negative. -func ExponentialBucketsRange(min, max float64, count int) []float64 { +func ExponentialBucketsRange(minBucket, maxBucket float64, count int) []float64 { if count < 1 { panic("ExponentialBucketsRange count needs a positive count") } - if min <= 0 { + if minBucket <= 0 { panic("ExponentialBucketsRange min needs to be greater than 0") } @@ -342,12 +348,12 @@ func ExponentialBucketsRange(min, max float64, count int) []float64 { // max = min*growthFactor^(bucketCount-1) // We know max/min and highest bucket. Solve for growthFactor. - growthFactor := math.Pow(max/min, 1.0/float64(count-1)) + growthFactor := math.Pow(maxBucket/minBucket, 1.0/float64(count-1)) // Now that we know growthFactor, solve for each bucket. buckets := make([]float64, count) for i := 1; i <= count; i++ { - buckets[i-1] = min * math.Pow(growthFactor, float64(i-1)) + buckets[i-1] = minBucket * math.Pow(growthFactor, float64(i-1)) } return buckets } @@ -858,15 +864,35 @@ func (h *histogram) Write(out *dto.Metric) error { // findBucket returns the index of the bucket for the provided value, or // len(h.upperBounds) for the +Inf bucket. func (h *histogram) findBucket(v float64) int { - // TODO(beorn7): For small numbers of buckets (<30), a linear search is - // slightly faster than the binary search. If we really care, we could - // switch from one search strategy to the other depending on the number - // of buckets. - // - // Microbenchmarks (BenchmarkHistogramNoLabels): - // 11 buckets: 38.3 ns/op linear - binary 48.7 ns/op - // 100 buckets: 78.1 ns/op linear - binary 54.9 ns/op - // 300 buckets: 154 ns/op linear - binary 61.6 ns/op + n := len(h.upperBounds) + if n == 0 { + return 0 + } + + // Early exit: if v is less than or equal to the first upper bound, return 0 + if v <= h.upperBounds[0] { + return 0 + } + + // Early exit: if v is greater than the last upper bound, return len(h.upperBounds) + if v > h.upperBounds[n-1] { + return n + } + + // For small arrays, use simple linear search + // "magic number" 35 is result of tests on couple different (AWS and baremetal) servers + // see more details here: https://github.com/prometheus/client_golang/pull/1662 + if n < 35 { + for i, bound := range h.upperBounds { + if v <= bound { + return i + } + } + // If v is greater than all upper bounds, return len(h.upperBounds) + return n + } + + // For larger arrays, use stdlib's binary search return sort.SearchFloat64s(h.upperBounds, v) } @@ -1440,9 +1466,9 @@ func pickSchema(bucketFactor float64) int32 { floor := math.Floor(math.Log2(math.Log2(bucketFactor))) switch { case floor <= -8: - return 8 + return nativeHistogramSchemaMaximum case floor >= 4: - return -4 + return nativeHistogramSchemaMinimum default: return -int32(floor) } @@ -1835,3 +1861,196 @@ func (n *nativeExemplars) addExemplar(e *dto.Exemplar) { n.exemplars = append(n.exemplars[:nIdx], append([]*dto.Exemplar{e}, append(n.exemplars[nIdx:rIdx], n.exemplars[rIdx+1:]...)...)...) } } + +type constNativeHistogram struct { + desc *Desc + dto.Histogram + labelPairs []*dto.LabelPair +} + +func validateCount(sum float64, count uint64, negativeBuckets, positiveBuckets map[int]int64, zeroBucket uint64) error { + var bucketPopulationSum int64 + for _, v := range positiveBuckets { + bucketPopulationSum += v + } + for _, v := range negativeBuckets { + bucketPopulationSum += v + } + bucketPopulationSum += int64(zeroBucket) + + // If the sum of observations is NaN, the number of observations must be greater or equal to the sum of all bucket counts. + // Otherwise, the number of observations must be equal to the sum of all bucket counts . + + if math.IsNaN(sum) && bucketPopulationSum > int64(count) || + !math.IsNaN(sum) && bucketPopulationSum != int64(count) { + return errors.New("the sum of all bucket populations exceeds the count of observations") + } + return nil +} + +// NewConstNativeHistogram returns a metric representing a Prometheus native histogram with +// fixed values for the count, sum, and positive/negative/zero bucket counts. As those parameters +// cannot be changed, the returned value does not implement the Histogram +// interface (but only the Metric interface). Users of this package will not +// have much use for it in regular operations. However, when implementing custom +// OpenTelemetry Collectors, it is useful as a throw-away metric that is generated on the fly +// to send it to Prometheus in the Collect method. +// +// zeroBucket counts all (positive and negative) +// observations in the zero bucket (with an absolute value less or equal +// the current threshold). +// positiveBuckets and negativeBuckets are separate maps for negative and positive +// observations. The map's value is an int64, counting observations in +// that bucket. The map's key is the +// index of the bucket according to the used +// Schema. Index 0 is for an upper bound of 1 in positive buckets and for a lower bound of -1 in negative buckets. +// NewConstNativeHistogram returns an error if +// - the length of labelValues is not consistent with the variable labels in Desc or if Desc is invalid. +// - the schema passed is not between 8 and -4 +// - the sum of counts in all buckets including the zero bucket does not equal the count if sum is not NaN (or exceeds the count if sum is NaN) +// +// See https://opentelemetry.io/docs/specs/otel/compatibility/prometheus_and_openmetrics/#exponential-histograms for more details about the conversion from OTel to Prometheus. +func NewConstNativeHistogram( + desc *Desc, + count uint64, + sum float64, + positiveBuckets, negativeBuckets map[int]int64, + zeroBucket uint64, + schema int32, + zeroThreshold float64, + createdTimestamp time.Time, + labelValues ...string, +) (Metric, error) { + if desc.err != nil { + return nil, desc.err + } + if err := validateLabelValues(labelValues, len(desc.variableLabels.names)); err != nil { + return nil, err + } + if schema > nativeHistogramSchemaMaximum || schema < nativeHistogramSchemaMinimum { + return nil, errors.New("invalid native histogram schema") + } + if err := validateCount(sum, count, negativeBuckets, positiveBuckets, zeroBucket); err != nil { + return nil, err + } + + NegativeSpan, NegativeDelta := makeBucketsFromMap(negativeBuckets) + PositiveSpan, PositiveDelta := makeBucketsFromMap(positiveBuckets) + ret := &constNativeHistogram{ + desc: desc, + Histogram: dto.Histogram{ + CreatedTimestamp: timestamppb.New(createdTimestamp), + Schema: &schema, + ZeroThreshold: &zeroThreshold, + SampleCount: &count, + SampleSum: &sum, + + NegativeSpan: NegativeSpan, + NegativeDelta: NegativeDelta, + + PositiveSpan: PositiveSpan, + PositiveDelta: PositiveDelta, + + ZeroCount: proto.Uint64(zeroBucket), + }, + labelPairs: MakeLabelPairs(desc, labelValues), + } + if *ret.ZeroThreshold == 0 && *ret.ZeroCount == 0 && len(ret.PositiveSpan) == 0 && len(ret.NegativeSpan) == 0 { + ret.PositiveSpan = []*dto.BucketSpan{{ + Offset: proto.Int32(0), + Length: proto.Uint32(0), + }} + } + return ret, nil +} + +// MustNewConstNativeHistogram is a version of NewConstNativeHistogram that panics where +// NewConstNativeHistogram would have returned an error. +func MustNewConstNativeHistogram( + desc *Desc, + count uint64, + sum float64, + positiveBuckets, negativeBuckets map[int]int64, + zeroBucket uint64, + nativeHistogramSchema int32, + nativeHistogramZeroThreshold float64, + createdTimestamp time.Time, + labelValues ...string, +) Metric { + nativehistogram, err := NewConstNativeHistogram(desc, + count, + sum, + positiveBuckets, + negativeBuckets, + zeroBucket, + nativeHistogramSchema, + nativeHistogramZeroThreshold, + createdTimestamp, + labelValues...) + if err != nil { + panic(err) + } + return nativehistogram +} + +func (h *constNativeHistogram) Desc() *Desc { + return h.desc +} + +func (h *constNativeHistogram) Write(out *dto.Metric) error { + out.Histogram = &h.Histogram + out.Label = h.labelPairs + return nil +} + +func makeBucketsFromMap(buckets map[int]int64) ([]*dto.BucketSpan, []int64) { + if len(buckets) == 0 { + return nil, nil + } + var ii []int + for k := range buckets { + ii = append(ii, k) + } + sort.Ints(ii) + + var ( + spans []*dto.BucketSpan + deltas []int64 + prevCount int64 + nextI int + ) + + appendDelta := func(count int64) { + *spans[len(spans)-1].Length++ + deltas = append(deltas, count-prevCount) + prevCount = count + } + + for n, i := range ii { + count := buckets[i] + // Multiple spans with only small gaps in between are probably + // encoded more efficiently as one larger span with a few empty + // buckets. Needs some research to find the sweet spot. For now, + // we assume that gaps of one or two buckets should not create + // a new span. + iDelta := int32(i - nextI) + if n == 0 || iDelta > 2 { + // We have to create a new span, either because we are + // at the very beginning, or because we have found a gap + // of more than two buckets. + spans = append(spans, &dto.BucketSpan{ + Offset: proto.Int32(iDelta), + Length: proto.Uint32(0), + }) + } else { + // We have found a small gap (or no gap at all). + // Insert empty buckets as needed. + for j := int32(0); j < iDelta; j++ { + appendDelta(0) + } + } + appendDelta(count) + nextI = i + 1 + } + return spans, deltas +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go b/vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go index a595a203..8b016355 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go @@ -22,17 +22,18 @@ import ( "bytes" "fmt" "io" + "strconv" "strings" ) -func min(a, b int) int { +func minInt(a, b int) int { if a < b { return a } return b } -func max(a, b int) int { +func maxInt(a, b int) int { if a > b { return a } @@ -427,12 +428,12 @@ func (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode { if codes[0].Tag == 'e' { c := codes[0] i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2} + codes[0] = OpCode{c.Tag, maxInt(i1, i2-n), i2, maxInt(j1, j2-n), j2} } if codes[len(codes)-1].Tag == 'e' { c := codes[len(codes)-1] i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)} + codes[len(codes)-1] = OpCode{c.Tag, i1, minInt(i2, i1+n), j1, minInt(j2, j1+n)} } nn := n + n groups := [][]OpCode{} @@ -443,12 +444,12 @@ func (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode { // there is a large range with no changes. if c.Tag == 'e' && i2-i1 > nn { group = append(group, OpCode{ - c.Tag, i1, min(i2, i1+n), - j1, min(j2, j1+n), + c.Tag, i1, minInt(i2, i1+n), + j1, minInt(j2, j1+n), }) groups = append(groups, group) group = []OpCode{} - i1, j1 = max(i1, i2-n), max(j1, j2-n) + i1, j1 = maxInt(i1, i2-n), maxInt(j1, j2-n) } group = append(group, OpCode{c.Tag, i1, i2, j1, j2}) } @@ -515,7 +516,7 @@ func (m *SequenceMatcher) QuickRatio() float64 { // is faster to compute than either .Ratio() or .QuickRatio(). func (m *SequenceMatcher) RealQuickRatio() float64 { la, lb := len(m.a), len(m.b) - return calculateRatio(min(la, lb), la+lb) + return calculateRatio(minInt(la, lb), la+lb) } // Convert range to the "ed" format @@ -524,7 +525,7 @@ func formatRangeUnified(start, stop int) string { beginning := start + 1 // lines start numbering with one length := stop - start if length == 1 { - return fmt.Sprintf("%d", beginning) + return strconv.Itoa(beginning) } if length == 0 { beginning-- // empty ranges begin at line just before the range diff --git a/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go b/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go index 97d17d6c..f7f97ef9 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go @@ -66,7 +66,8 @@ func RuntimeMetricsToProm(d *metrics.Description) (string, string, string, bool) name += "_total" } - valid := model.IsValidMetricName(model.LabelValue(namespace + "_" + subsystem + "_" + name)) + // Our current conversion moves to legacy naming, so use legacy validation. + valid := model.IsValidLegacyMetricName(namespace + "_" + subsystem + "_" + name) switch d.Kind { case metrics.KindUint64: case metrics.KindFloat64: diff --git a/vendor/github.com/prometheus/client_golang/prometheus/metric.go b/vendor/github.com/prometheus/client_golang/prometheus/metric.go index 9d9b81ab..592eec3e 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/metric.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/metric.go @@ -108,15 +108,23 @@ func BuildFQName(namespace, subsystem, name string) string { if name == "" { return "" } - switch { - case namespace != "" && subsystem != "": - return strings.Join([]string{namespace, subsystem, name}, "_") - case namespace != "": - return strings.Join([]string{namespace, name}, "_") - case subsystem != "": - return strings.Join([]string{subsystem, name}, "_") + + sb := strings.Builder{} + sb.Grow(len(namespace) + len(subsystem) + len(name) + 2) + + if namespace != "" { + sb.WriteString(namespace) + sb.WriteString("_") } - return name + + if subsystem != "" { + sb.WriteString(subsystem) + sb.WriteString("_") + } + + sb.WriteString(name) + + return sb.String() } type invalidMetric struct { diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go index 62a4e7ad..e7bce8b5 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector.go @@ -23,6 +23,7 @@ import ( type processCollector struct { collectFn func(chan<- Metric) + describeFn func(chan<- *Desc) pidFn func() (int, error) reportErrors bool cpuTotal *Desc @@ -122,26 +123,23 @@ func NewProcessCollector(opts ProcessCollectorOpts) Collector { // Set up process metric collection if supported by the runtime. if canCollectProcess() { c.collectFn = c.processCollect + c.describeFn = c.describe } else { - c.collectFn = func(ch chan<- Metric) { - c.reportError(ch, nil, errors.New("process metrics not supported on this platform")) - } + c.collectFn = c.errorCollectFn + c.describeFn = c.errorDescribeFn } return c } -// Describe returns all descriptions of the collector. -func (c *processCollector) Describe(ch chan<- *Desc) { - ch <- c.cpuTotal - ch <- c.openFDs - ch <- c.maxFDs - ch <- c.vsize - ch <- c.maxVsize - ch <- c.rss - ch <- c.startTime - ch <- c.inBytes - ch <- c.outBytes +func (c *processCollector) errorCollectFn(ch chan<- Metric) { + c.reportError(ch, nil, errors.New("process metrics not supported on this platform")) +} + +func (c *processCollector) errorDescribeFn(ch chan<- *Desc) { + if c.reportErrors { + ch <- NewInvalidDesc(errors.New("process metrics not supported on this platform")) + } } // Collect returns the current state of all metrics of the collector. @@ -149,6 +147,11 @@ func (c *processCollector) Collect(ch chan<- Metric) { c.collectFn(ch) } +// Describe returns all descriptions of the collector. +func (c *processCollector) Describe(ch chan<- *Desc) { + c.describeFn(ch) +} + func (c *processCollector) reportError(ch chan<- Metric, desc *Desc, err error) { if !c.reportErrors { return diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_darwin.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_darwin.go new file mode 100644 index 00000000..0a61b984 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_darwin.go @@ -0,0 +1,130 @@ +// Copyright 2024 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build darwin && !ios + +package prometheus + +import ( + "errors" + "fmt" + "os" + "syscall" + "time" + + "golang.org/x/sys/unix" +) + +// notImplementedErr is returned by stub functions that replace cgo functions, when cgo +// isn't available. +var notImplementedErr = errors.New("not implemented") + +type memoryInfo struct { + vsize uint64 // Virtual memory size in bytes + rss uint64 // Resident memory size in bytes +} + +func canCollectProcess() bool { + return true +} + +func getSoftLimit(which int) (uint64, error) { + rlimit := syscall.Rlimit{} + + if err := syscall.Getrlimit(which, &rlimit); err != nil { + return 0, err + } + + return rlimit.Cur, nil +} + +func getOpenFileCount() (float64, error) { + // Alternately, the undocumented proc_pidinfo(PROC_PIDLISTFDS) can be used to + // return a list of open fds, but that requires a way to call C APIs. The + // benefits, however, include fewer system calls and not failing when at the + // open file soft limit. + + if dir, err := os.Open("/dev/fd"); err != nil { + return 0.0, err + } else { + defer dir.Close() + + // Avoid ReadDir(), as it calls stat(2) on each descriptor. Not only is + // that info not used, but KQUEUE descriptors fail stat(2), which causes + // the whole method to fail. + if names, err := dir.Readdirnames(0); err != nil { + return 0.0, err + } else { + // Subtract 1 to ignore the open /dev/fd descriptor above. + return float64(len(names) - 1), nil + } + } +} + +func (c *processCollector) processCollect(ch chan<- Metric) { + if procs, err := unix.SysctlKinfoProcSlice("kern.proc.pid", os.Getpid()); err == nil { + if len(procs) == 1 { + startTime := float64(procs[0].Proc.P_starttime.Nano() / 1e9) + ch <- MustNewConstMetric(c.startTime, GaugeValue, startTime) + } else { + err = fmt.Errorf("sysctl() returned %d proc structs (expected 1)", len(procs)) + c.reportError(ch, c.startTime, err) + } + } else { + c.reportError(ch, c.startTime, err) + } + + // The proc structure returned by kern.proc.pid above has an Rusage member, + // but it is not filled in, so it needs to be fetched by getrusage(2). For + // that call, the UTime, STime, and Maxrss members are filled out, but not + // Ixrss, Idrss, or Isrss for the memory usage. Memory stats will require + // access to the C API to call task_info(TASK_BASIC_INFO). + rusage := unix.Rusage{} + + if err := unix.Getrusage(syscall.RUSAGE_SELF, &rusage); err == nil { + cpuTime := time.Duration(rusage.Stime.Nano() + rusage.Utime.Nano()).Seconds() + ch <- MustNewConstMetric(c.cpuTotal, CounterValue, cpuTime) + } else { + c.reportError(ch, c.cpuTotal, err) + } + + if memInfo, err := getMemory(); err == nil { + ch <- MustNewConstMetric(c.rss, GaugeValue, float64(memInfo.rss)) + ch <- MustNewConstMetric(c.vsize, GaugeValue, float64(memInfo.vsize)) + } else if !errors.Is(err, notImplementedErr) { + // Don't report an error when support is not compiled in. + c.reportError(ch, c.rss, err) + c.reportError(ch, c.vsize, err) + } + + if fds, err := getOpenFileCount(); err == nil { + ch <- MustNewConstMetric(c.openFDs, GaugeValue, fds) + } else { + c.reportError(ch, c.openFDs, err) + } + + if openFiles, err := getSoftLimit(syscall.RLIMIT_NOFILE); err == nil { + ch <- MustNewConstMetric(c.maxFDs, GaugeValue, float64(openFiles)) + } else { + c.reportError(ch, c.maxFDs, err) + } + + if addressSpace, err := getSoftLimit(syscall.RLIMIT_AS); err == nil { + ch <- MustNewConstMetric(c.maxVsize, GaugeValue, float64(addressSpace)) + } else { + c.reportError(ch, c.maxVsize, err) + } + + // TODO: socket(PF_SYSTEM) to fetch "com.apple.network.statistics" might + // be able to get the per-process network send/receive counts. +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_cgo_darwin.c b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_cgo_darwin.c new file mode 100644 index 00000000..d00a2431 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_cgo_darwin.c @@ -0,0 +1,84 @@ +// Copyright 2024 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build darwin && !ios && cgo + +#include +#include +#include + +// The compiler warns that mach/shared_memory_server.h is deprecated, and to use +// mach/shared_region.h instead. But that doesn't define +// SHARED_DATA_REGION_SIZE or SHARED_TEXT_REGION_SIZE, so redefine them here and +// avoid a warning message when running tests. +#define GLOBAL_SHARED_TEXT_SEGMENT 0x90000000U +#define SHARED_DATA_REGION_SIZE 0x10000000 +#define SHARED_TEXT_REGION_SIZE 0x10000000 + + +int get_memory_info(unsigned long long *rss, unsigned long long *vsize) +{ + // This is lightly adapted from how ps(1) obtains its memory info. + // https://github.com/apple-oss-distributions/adv_cmds/blob/8744084ea0ff41ca4bb96b0f9c22407d0e48e9b7/ps/tasks.c#L109 + + kern_return_t error; + task_t task = MACH_PORT_NULL; + mach_task_basic_info_data_t info; + mach_msg_type_number_t info_count = MACH_TASK_BASIC_INFO_COUNT; + + error = task_info( + mach_task_self(), + MACH_TASK_BASIC_INFO, + (task_info_t) &info, + &info_count ); + + if( error != KERN_SUCCESS ) + { + return error; + } + + *rss = info.resident_size; + *vsize = info.virtual_size; + + { + vm_region_basic_info_data_64_t b_info; + mach_vm_address_t address = GLOBAL_SHARED_TEXT_SEGMENT; + mach_vm_size_t size; + mach_port_t object_name; + + /* + * try to determine if this task has the split libraries + * mapped in... if so, adjust its virtual size down by + * the 2 segments that are used for split libraries + */ + info_count = VM_REGION_BASIC_INFO_COUNT_64; + + error = mach_vm_region( + mach_task_self(), + &address, + &size, + VM_REGION_BASIC_INFO_64, + (vm_region_info_t) &b_info, + &info_count, + &object_name); + + if (error == KERN_SUCCESS) { + if (b_info.reserved && size == (SHARED_TEXT_REGION_SIZE) && + *vsize > (SHARED_TEXT_REGION_SIZE + SHARED_DATA_REGION_SIZE)) { + *vsize -= (SHARED_TEXT_REGION_SIZE + SHARED_DATA_REGION_SIZE); + } + } + } + + return 0; +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_cgo_darwin.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_cgo_darwin.go new file mode 100644 index 00000000..9ac53f99 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_cgo_darwin.go @@ -0,0 +1,51 @@ +// Copyright 2024 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build darwin && !ios && cgo + +package prometheus + +/* +int get_memory_info(unsigned long long *rss, unsigned long long *vs); +*/ +import "C" +import "fmt" + +func getMemory() (*memoryInfo, error) { + var rss, vsize C.ulonglong + + if err := C.get_memory_info(&rss, &vsize); err != 0 { + return nil, fmt.Errorf("task_info() failed with 0x%x", int(err)) + } + + return &memoryInfo{vsize: uint64(vsize), rss: uint64(rss)}, nil +} + +// describe returns all descriptions of the collector for Darwin. +// Ensure that this list of descriptors is kept in sync with the metrics collected +// in the processCollect method. Any changes to the metrics in processCollect +// (such as adding or removing metrics) should be reflected in this list of descriptors. +func (c *processCollector) describe(ch chan<- *Desc) { + ch <- c.cpuTotal + ch <- c.openFDs + ch <- c.maxFDs + ch <- c.maxVsize + ch <- c.startTime + ch <- c.rss + ch <- c.vsize + + /* the process could be collected but not implemented yet + ch <- c.inBytes + ch <- c.outBytes + */ +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_nocgo_darwin.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_nocgo_darwin.go new file mode 100644 index 00000000..8ddb0995 --- /dev/null +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_nocgo_darwin.go @@ -0,0 +1,39 @@ +// Copyright 2024 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build darwin && !ios && !cgo + +package prometheus + +func getMemory() (*memoryInfo, error) { + return nil, notImplementedErr +} + +// describe returns all descriptions of the collector for Darwin. +// Ensure that this list of descriptors is kept in sync with the metrics collected +// in the processCollect method. Any changes to the metrics in processCollect +// (such as adding or removing metrics) should be reflected in this list of descriptors. +func (c *processCollector) describe(ch chan<- *Desc) { + ch <- c.cpuTotal + ch <- c.openFDs + ch <- c.maxFDs + ch <- c.maxVsize + ch <- c.startTime + + /* the process could be collected but not implemented yet + ch <- c.rss + ch <- c.vsize + ch <- c.inBytes + ch <- c.outBytes + */ +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_js.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_not_supported.go similarity index 56% rename from vendor/github.com/prometheus/client_golang/prometheus/process_collector_js.go rename to vendor/github.com/prometheus/client_golang/prometheus/process_collector_not_supported.go index b1e363d6..7732b7f3 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_js.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_not_supported.go @@ -1,4 +1,4 @@ -// Copyright 2019 The Prometheus Authors +// Copyright 2023 The Prometheus Authors // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at @@ -11,8 +11,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:build js -// +build js +//go:build wasip1 || js || ios +// +build wasip1 js ios package prometheus @@ -21,6 +21,13 @@ func canCollectProcess() bool { } func (c *processCollector) processCollect(ch chan<- Metric) { - // noop on this platform - return + c.errorCollectFn(ch) +} + +// describe returns all descriptions of the collector for wasip1 and js. +// Ensure that this list of descriptors is kept in sync with the metrics collected +// in the processCollect method. Any changes to the metrics in processCollect +// (such as adding or removing metrics) should be reflected in this list of descriptors. +func (c *processCollector) describe(ch chan<- *Desc) { + c.errorDescribeFn(ch) } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_other.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_procfsenabled.go similarity index 77% rename from vendor/github.com/prometheus/client_golang/prometheus/process_collector_other.go rename to vendor/github.com/prometheus/client_golang/prometheus/process_collector_procfsenabled.go index 14d56d2d..9f4b130b 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_other.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_procfsenabled.go @@ -11,8 +11,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:build !windows && !js && !wasip1 -// +build !windows,!js,!wasip1 +//go:build !windows && !js && !wasip1 && !darwin +// +build !windows,!js,!wasip1,!darwin package prometheus @@ -78,3 +78,19 @@ func (c *processCollector) processCollect(ch chan<- Metric) { c.reportError(ch, nil, err) } } + +// describe returns all descriptions of the collector for others than windows, js, wasip1 and darwin. +// Ensure that this list of descriptors is kept in sync with the metrics collected +// in the processCollect method. Any changes to the metrics in processCollect +// (such as adding or removing metrics) should be reflected in this list of descriptors. +func (c *processCollector) describe(ch chan<- *Desc) { + ch <- c.cpuTotal + ch <- c.openFDs + ch <- c.maxFDs + ch <- c.vsize + ch <- c.maxVsize + ch <- c.rss + ch <- c.startTime + ch <- c.inBytes + ch <- c.outBytes +} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_wasip1.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_wasip1.go deleted file mode 100644 index d8d9a6d7..00000000 --- a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_wasip1.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2023 The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build wasip1 -// +build wasip1 - -package prometheus - -func canCollectProcess() bool { - return false -} - -func (*processCollector) processCollect(chan<- Metric) { - // noop on this platform - return -} diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go index f973398d..fa474289 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go @@ -79,14 +79,10 @@ func getProcessHandleCount(handle windows.Handle) (uint32, error) { } func (c *processCollector) processCollect(ch chan<- Metric) { - h, err := windows.GetCurrentProcess() - if err != nil { - c.reportError(ch, nil, err) - return - } + h := windows.CurrentProcess() var startTime, exitTime, kernelTime, userTime windows.Filetime - err = windows.GetProcessTimes(h, &startTime, &exitTime, &kernelTime, &userTime) + err := windows.GetProcessTimes(h, &startTime, &exitTime, &kernelTime, &userTime) if err != nil { c.reportError(ch, nil, err) return @@ -111,6 +107,19 @@ func (c *processCollector) processCollect(ch chan<- Metric) { ch <- MustNewConstMetric(c.maxFDs, GaugeValue, float64(16*1024*1024)) // Windows has a hard-coded max limit, not per-process. } +// describe returns all descriptions of the collector for windows. +// Ensure that this list of descriptors is kept in sync with the metrics collected +// in the processCollect method. Any changes to the metrics in processCollect +// (such as adding or removing metrics) should be reflected in this list of descriptors. +func (c *processCollector) describe(ch chan<- *Desc) { + ch <- c.cpuTotal + ch <- c.openFDs + ch <- c.maxFDs + ch <- c.vsize + ch <- c.rss + ch <- c.startTime +} + func fileTimeToSeconds(ft windows.Filetime) float64 { return float64(uint64(ft.HighDateTime)<<32+uint64(ft.LowDateTime)) / 1e7 } diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go index e598e66e..28eed267 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go @@ -207,7 +207,13 @@ func HandlerForTransactional(reg prometheus.TransactionalGatherer, opts HandlerO if encodingHeader != string(Identity) { rsp.Header().Set(contentEncodingHeader, encodingHeader) } - enc := expfmt.NewEncoder(w, contentType) + + var enc expfmt.Encoder + if opts.EnableOpenMetricsTextCreatedSamples { + enc = expfmt.NewEncoder(w, contentType, expfmt.WithCreatedLines()) + } else { + enc = expfmt.NewEncoder(w, contentType) + } // handleError handles the error according to opts.ErrorHandling // and returns true if we have to abort after the handling. @@ -408,6 +414,21 @@ type HandlerOpts struct { // (which changes the identity of the resulting series on the Prometheus // server). EnableOpenMetrics bool + // EnableOpenMetricsTextCreatedSamples specifies if this handler should add, extra, synthetic + // Created Timestamps for counters, histograms and summaries, which for the current + // version of OpenMetrics are defined as extra series with the same name and "_created" + // suffix. See also the OpenMetrics specification for more details + // https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#counter-1 + // + // Created timestamps are used to improve the accuracy of reset detection, + // but the way it's designed in OpenMetrics 1.0 it also dramatically increases cardinality + // if the scraper does not handle those metrics correctly (converting to created timestamp + // instead of leaving those series as-is). New OpenMetrics versions might improve + // this situation. + // + // Prometheus introduced the feature flag 'created-timestamp-zero-ingestion' + // in version 2.50.0 to handle this situation. + EnableOpenMetricsTextCreatedSamples bool // ProcessStartTime allows setting process start timevalue that will be exposed // with "Process-Start-Time-Unix" response header along with the metrics // payload. This allow callers to have efficient transformations to cumulative diff --git a/vendor/github.com/prometheus/client_golang/prometheus/summary.go b/vendor/github.com/prometheus/client_golang/prometheus/summary.go index 1ab0e479..ac5203c6 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/summary.go +++ b/vendor/github.com/prometheus/client_golang/prometheus/summary.go @@ -243,6 +243,7 @@ func newSummary(desc *Desc, opts SummaryOpts, labelValues ...string) Summary { s := &summary{ desc: desc, + now: opts.now, objectives: opts.Objectives, sortedObjectives: make([]float64, 0, len(opts.Objectives)), @@ -280,6 +281,8 @@ type summary struct { desc *Desc + now func() time.Time + objectives map[float64]float64 sortedObjectives []float64 @@ -307,7 +310,7 @@ func (s *summary) Observe(v float64) { s.bufMtx.Lock() defer s.bufMtx.Unlock() - now := time.Now() + now := s.now() if now.After(s.hotBufExpTime) { s.asyncFlush(now) } @@ -326,7 +329,7 @@ func (s *summary) Write(out *dto.Metric) error { s.bufMtx.Lock() s.mtx.Lock() // Swap bufs even if hotBuf is empty to set new hotBufExpTime. - s.swapBufs(time.Now()) + s.swapBufs(s.now()) s.bufMtx.Unlock() s.flushColdBuf() diff --git a/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go index f1c495dd..a21ed4ec 100644 --- a/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go +++ b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go @@ -38,7 +38,7 @@ type EncoderOption func(*encoderOption) // WithCreatedLines is an EncoderOption that configures the OpenMetrics encoder // to include _created lines (See -// https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#counter-1). +// https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#counter-1). // Created timestamps can improve the accuracy of series reset detection, but // come with a bandwidth cost. // @@ -102,7 +102,7 @@ func WithUnit() EncoderOption { // // - According to the OM specs, the `# UNIT` line is optional, but if populated, // the unit has to be present in the metric name as its suffix: -// (see https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#unit). +// (see https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#unit). // However, in order to accommodate any potential scenario where such a change in the // metric name is not desirable, the users are here given the choice of either explicitly // opt in, in case they wish for the unit to be included in the output AND in the metric name diff --git a/vendor/github.com/prometheus/common/model/alert.go b/vendor/github.com/prometheus/common/model/alert.go index bd3a39e3..460f554f 100644 --- a/vendor/github.com/prometheus/common/model/alert.go +++ b/vendor/github.com/prometheus/common/model/alert.go @@ -65,7 +65,7 @@ func (a *Alert) Resolved() bool { return a.ResolvedAt(time.Now()) } -// ResolvedAt returns true off the activity interval ended before +// ResolvedAt returns true iff the activity interval ended before // the given timestamp. func (a *Alert) ResolvedAt(ts time.Time) bool { if a.EndsAt.IsZero() { diff --git a/vendor/github.com/prometheus/common/model/labels.go b/vendor/github.com/prometheus/common/model/labels.go index 73b7aa3e..f4a38760 100644 --- a/vendor/github.com/prometheus/common/model/labels.go +++ b/vendor/github.com/prometheus/common/model/labels.go @@ -22,7 +22,7 @@ import ( ) const ( - // AlertNameLabel is the name of the label containing the an alert's name. + // AlertNameLabel is the name of the label containing the alert's name. AlertNameLabel = "alertname" // ExportedLabelPrefix is the prefix to prepend to the label names present in diff --git a/vendor/github.com/prometheus/common/model/metric.go b/vendor/github.com/prometheus/common/model/metric.go index 0daca836..a6b01755 100644 --- a/vendor/github.com/prometheus/common/model/metric.go +++ b/vendor/github.com/prometheus/common/model/metric.go @@ -27,14 +27,26 @@ import ( ) var ( - // NameValidationScheme determines the method of name validation to be used by - // all calls to IsValidMetricName() and LabelName IsValid(). Setting UTF-8 mode - // in isolation from other components that don't support UTF-8 may result in - // bugs or other undefined behavior. This value is intended to be set by - // UTF-8-aware binaries as part of their startup. To avoid need for locking, - // this value should be set once, ideally in an init(), before multiple - // goroutines are started. - NameValidationScheme = LegacyValidation + // NameValidationScheme determines the global default method of the name + // validation to be used by all calls to IsValidMetricName() and LabelName + // IsValid(). + // + // Deprecated: This variable should not be used and might be removed in the + // far future. If you wish to stick to the legacy name validation use + // `IsValidLegacyMetricName()` and `LabelName.IsValidLegacy()` methods + // instead. This variable is here as an escape hatch for emergency cases, + // given the recent change from `LegacyValidation` to `UTF8Validation`, e.g., + // to delay UTF-8 migrations in time or aid in debugging unforeseen results of + // the change. In such a case, a temporary assignment to `LegacyValidation` + // value in the `init()` function in your main.go or so, could be considered. + // + // Historically we opted for a global variable for feature gating different + // validation schemes in operations that were not otherwise easily adjustable + // (e.g. Labels yaml unmarshaling). That could have been a mistake, a separate + // Labels structure or package might have been a better choice. Given the + // change was made and many upgraded the common already, we live this as-is + // with this warning and learning for the future. + NameValidationScheme = UTF8Validation // NameEscapingScheme defines the default way that names will be escaped when // presented to systems that do not support UTF-8 names. If the Content-Type @@ -50,7 +62,7 @@ var ( type ValidationScheme int const ( - // LegacyValidation is a setting that requirets that metric and label names + // LegacyValidation is a setting that requires that all metric and label names // conform to the original Prometheus character requirements described by // MetricNameRE and LabelNameRE. LegacyValidation ValidationScheme = iota diff --git a/vendor/github.com/schollz/progressbar/v3/progressbar.go b/vendor/github.com/schollz/progressbar/v3/progressbar.go index b994d6d0..0ccec7d3 100644 --- a/vendor/github.com/schollz/progressbar/v3/progressbar.go +++ b/vendor/github.com/schollz/progressbar/v3/progressbar.go @@ -2,10 +2,13 @@ package progressbar import ( "bytes" + "encoding/json" "errors" "fmt" "io" + "log" "math" + "net/http" "os" "regexp" "strings" @@ -859,6 +862,37 @@ func (p *ProgressBar) ChangeMax64(newMax int64) { p.Add(0) // re-render } +// AddMax takes in a int +// and adds it to the max +// value of the progress bar +func (p *ProgressBar) AddMax(added int) { + p.AddMax64(int64(added)) +} + +// AddMax64 is basically +// the same as AddMax, +// but takes in a int64 +// to avoid casting +func (p *ProgressBar) AddMax64(added int64) { + p.lock.Lock() + + p.config.max += added + + if p.config.showBytes { + p.config.maxHumanized, p.config.maxHumanizedSuffix = humanizeBytes(float64(p.config.max), + p.config.useIECUnits) + } + + if p.config.max == -1 { + p.lengthUnknown() + } else { + p.lengthKnown(p.config.max) + } + p.lock.Unlock() // so p.Add can lock + + p.Add(0) // re-render +} + // IsFinished returns true if progress bar is completed func (p *ProgressBar) IsFinished() bool { p.lock.Lock() @@ -978,6 +1012,31 @@ func (p *ProgressBar) State() State { return s } +// StartHTTPServer starts an HTTP server dedicated to serving progress bar updates. This allows you to +// display the status in various UI elements, such as an OS status bar with an `xbar` extension. +// It is recommended to run this function in a separate goroutine to avoid blocking the main thread. +// +// hostPort specifies the address and port to bind the server to, for example, "0.0.0.0:19999". +func (p *ProgressBar) StartHTTPServer(hostPort string) { + // for advanced users, we can return the data as json + http.HandleFunc("/state", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/json") + // since the state is a simple struct, we can just ignore the error + bs, _ := json.Marshal(p.State()) + w.Write(bs) + }) + // for others, we just return the description in a plain text format + http.HandleFunc("/desc", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + fmt.Fprintf(w, + "%d/%d, %.2f%%, %s left", + p.State().CurrentNum, p.State().Max, p.State().CurrentPercent*100, + (time.Second * time.Duration(p.State().SecondsLeft)).String(), + ) + }) + log.Fatal(http.ListenAndServe(hostPort, nil)) +} + // regex matching ansi escape codes var ansiRegex = regexp.MustCompile(`\x1b\[[0-9;]*[a-zA-Z]`) diff --git a/vendor/github.com/skeema/knownhosts/NOTICE b/vendor/github.com/skeema/knownhosts/NOTICE index a92cb34d..224b2024 100644 --- a/vendor/github.com/skeema/knownhosts/NOTICE +++ b/vendor/github.com/skeema/knownhosts/NOTICE @@ -1,4 +1,4 @@ -Copyright 2024 Skeema LLC and the Skeema Knownhosts authors +Copyright 2025 Skeema LLC and the Skeema Knownhosts authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/github.com/skeema/knownhosts/README.md b/vendor/github.com/skeema/knownhosts/README.md index 046bc0ed..170e04d1 100644 --- a/vendor/github.com/skeema/knownhosts/README.md +++ b/vendor/github.com/skeema/knownhosts/README.md @@ -116,7 +116,7 @@ config := &ssh.ClientConfig{ ## License -**Source code copyright 2024 Skeema LLC and the Skeema Knownhosts authors** +**Source code copyright 2025 Skeema LLC and the Skeema Knownhosts authors** ```text Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/vendor/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md index 6444f4b7..71757151 100644 --- a/vendor/github.com/spf13/cobra/README.md +++ b/vendor/github.com/spf13/cobra/README.md @@ -1,4 +1,5 @@ -![cobra logo](assets/CobraMain.png) + +![cobra logo](https://github.com/user-attachments/assets/cbc3adf8-0dff-46e9-a88d-5e2d971c169e) Cobra is a library for creating powerful modern CLI applications. @@ -105,7 +106,7 @@ go install github.com/spf13/cobra-cli@latest For complete details on using the Cobra-CLI generator, please read [The Cobra Generator README](https://github.com/spf13/cobra-cli/blob/main/README.md) -For complete details on using the Cobra library, please read the [The Cobra User Guide](site/content/user_guide.md). +For complete details on using the Cobra library, please read [The Cobra User Guide](site/content/user_guide.md). # License diff --git a/vendor/github.com/spf13/cobra/active_help.go b/vendor/github.com/spf13/cobra/active_help.go index 25c30e3c..b3e2dadf 100644 --- a/vendor/github.com/spf13/cobra/active_help.go +++ b/vendor/github.com/spf13/cobra/active_help.go @@ -35,7 +35,7 @@ const ( // This function can be called multiple times before and/or after completions are added to // the array. Each time this function is called with the same array, the new // ActiveHelp line will be shown below the previous ones when completion is triggered. -func AppendActiveHelp(compArray []string, activeHelpStr string) []string { +func AppendActiveHelp(compArray []Completion, activeHelpStr string) []Completion { return append(compArray, fmt.Sprintf("%s%s", activeHelpMarker, activeHelpStr)) } diff --git a/vendor/github.com/spf13/cobra/bash_completionsV2.go b/vendor/github.com/spf13/cobra/bash_completionsV2.go index 1cce5c32..d2397aa3 100644 --- a/vendor/github.com/spf13/cobra/bash_completionsV2.go +++ b/vendor/github.com/spf13/cobra/bash_completionsV2.go @@ -146,7 +146,7 @@ __%[1]s_process_completion_results() { if (((directive & shellCompDirectiveFilterFileExt) != 0)); then # File extension filtering - local fullFilter filter filteringCmd + local fullFilter="" filter filteringCmd # Do not use quotes around the $completions variable or else newline # characters will be kept. @@ -177,20 +177,71 @@ __%[1]s_process_completion_results() { __%[1]s_handle_special_char "$cur" = # Print the activeHelp statements before we finish - if ((${#activeHelp[*]} != 0)); then - printf "\n"; - printf "%%s\n" "${activeHelp[@]}" - printf "\n" + __%[1]s_handle_activeHelp +} - # The prompt format is only available from bash 4.4. - # We test if it is available before using it. - if (x=${PS1@P}) 2> /dev/null; then - printf "%%s" "${PS1@P}${COMP_LINE[@]}" - else - # Can't print the prompt. Just print the - # text the user had typed, it is workable enough. - printf "%%s" "${COMP_LINE[@]}" +__%[1]s_handle_activeHelp() { + # Print the activeHelp statements + if ((${#activeHelp[*]} != 0)); then + if [ -z $COMP_TYPE ]; then + # Bash v3 does not set the COMP_TYPE variable. + printf "\n"; + printf "%%s\n" "${activeHelp[@]}" + printf "\n" + __%[1]s_reprint_commandLine + return fi + + # Only print ActiveHelp on the second TAB press + if [ $COMP_TYPE -eq 63 ]; then + printf "\n" + printf "%%s\n" "${activeHelp[@]}" + + if ((${#COMPREPLY[*]} == 0)); then + # When there are no completion choices from the program, file completion + # may kick in if the program has not disabled it; in such a case, we want + # to know if any files will match what the user typed, so that we know if + # there will be completions presented, so that we know how to handle ActiveHelp. + # To find out, we actually trigger the file completion ourselves; + # the call to _filedir will fill COMPREPLY if files match. + if (((directive & shellCompDirectiveNoFileComp) == 0)); then + __%[1]s_debug "Listing files" + _filedir + fi + fi + + if ((${#COMPREPLY[*]} != 0)); then + # If there are completion choices to be shown, print a delimiter. + # Re-printing the command-line will automatically be done + # by the shell when it prints the completion choices. + printf -- "--" + else + # When there are no completion choices at all, we need + # to re-print the command-line since the shell will + # not be doing it itself. + __%[1]s_reprint_commandLine + fi + elif [ $COMP_TYPE -eq 37 ] || [ $COMP_TYPE -eq 42 ]; then + # For completion type: menu-complete/menu-complete-backward and insert-completions + # the completions are immediately inserted into the command-line, so we first + # print the activeHelp message and reprint the command-line since the shell won't. + printf "\n" + printf "%%s\n" "${activeHelp[@]}" + + __%[1]s_reprint_commandLine + fi + fi +} + +__%[1]s_reprint_commandLine() { + # The prompt format is only available from bash 4.4. + # We test if it is available before using it. + if (x=${PS1@P}) 2> /dev/null; then + printf "%%s" "${PS1@P}${COMP_LINE[@]}" + else + # Can't print the prompt. Just print the + # text the user had typed, it is workable enough. + printf "%%s" "${COMP_LINE[@]}" fi } @@ -201,6 +252,8 @@ __%[1]s_extract_activeHelp() { local endIndex=${#activeHelpMarker} while IFS='' read -r comp; do + [[ -z $comp ]] && continue + if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then comp=${comp:endIndex} __%[1]s_debug "ActiveHelp found: $comp" @@ -223,16 +276,21 @@ __%[1]s_handle_completion_types() { # If the user requested inserting one completion at a time, or all # completions at once on the command-line we must remove the descriptions. # https://github.com/spf13/cobra/issues/1508 - local tab=$'\t' comp - while IFS='' read -r comp; do - [[ -z $comp ]] && continue - # Strip any description - comp=${comp%%%%$tab*} - # Only consider the completions that match - if [[ $comp == "$cur"* ]]; then - COMPREPLY+=("$comp") - fi - done < <(printf "%%s\n" "${completions[@]}") + + # If there are no completions, we don't need to do anything + (( ${#completions[@]} == 0 )) && return 0 + + local tab=$'\t' + + # Strip any description and escape the completion to handled special characters + IFS=$'\n' read -ra completions -d '' < <(printf "%%q\n" "${completions[@]%%%%$tab*}") + + # Only consider the completions that match + IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") + + # compgen looses the escaping so we need to escape all completions again since they will + # all be inserted on the command-line. + IFS=$'\n' read -ra COMPREPLY -d '' < <(printf "%%q\n" "${COMPREPLY[@]}") ;; *) @@ -243,11 +301,25 @@ __%[1]s_handle_completion_types() { } __%[1]s_handle_standard_completion_case() { - local tab=$'\t' comp + local tab=$'\t' + + # If there are no completions, we don't need to do anything + (( ${#completions[@]} == 0 )) && return 0 # Short circuit to optimize if we don't have descriptions if [[ "${completions[*]}" != *$tab* ]]; then - IFS=$'\n' read -ra COMPREPLY -d '' < <(compgen -W "${completions[*]}" -- "$cur") + # First, escape the completions to handle special characters + IFS=$'\n' read -ra completions -d '' < <(printf "%%q\n" "${completions[@]}") + # Only consider the completions that match what the user typed + IFS=$'\n' read -ra COMPREPLY -d '' < <(IFS=$'\n'; compgen -W "${completions[*]}" -- "${cur}") + + # compgen looses the escaping so, if there is only a single completion, we need to + # escape it again because it will be inserted on the command-line. If there are multiple + # completions, we don't want to escape them because they will be printed in a list + # and we don't want to show escape characters in that list. + if (( ${#COMPREPLY[@]} == 1 )); then + COMPREPLY[0]=$(printf "%%q" "${COMPREPLY[0]}") + fi return 0 fi @@ -256,23 +328,39 @@ __%[1]s_handle_standard_completion_case() { # Look for the longest completion so that we can format things nicely while IFS='' read -r compline; do [[ -z $compline ]] && continue - # Strip any description before checking the length - comp=${compline%%%%$tab*} + + # Before checking if the completion matches what the user typed, + # we need to strip any description and escape the completion to handle special + # characters because those escape characters are part of what the user typed. + # Don't call "printf" in a sub-shell because it will be much slower + # since we are in a loop. + printf -v comp "%%q" "${compline%%%%$tab*}" &>/dev/null || comp=$(printf "%%q" "${compline%%%%$tab*}") + # Only consider the completions that match [[ $comp == "$cur"* ]] || continue + + # The completions matches. Add it to the list of full completions including + # its description. We don't escape the completion because it may get printed + # in a list if there are more than one and we don't want show escape characters + # in that list. COMPREPLY+=("$compline") + + # Strip any description before checking the length, and again, don't escape + # the completion because this length is only used when printing the completions + # in a list and we don't want show escape characters in that list. + comp=${compline%%%%$tab*} if ((${#comp}>longest)); then longest=${#comp} fi done < <(printf "%%s\n" "${completions[@]}") - # If there is a single completion left, remove the description text + # If there is a single completion left, remove the description text and escape any special characters if ((${#COMPREPLY[*]} == 1)); then __%[1]s_debug "COMPREPLY[0]: ${COMPREPLY[0]}" - comp="${COMPREPLY[0]%%%%$tab*}" - __%[1]s_debug "Removed description from single completion, which is now: ${comp}" - COMPREPLY[0]=$comp - else # Format the descriptions + COMPREPLY[0]=$(printf "%%q" "${COMPREPLY[0]%%%%$tab*}") + __%[1]s_debug "Removed description from single completion, which is now: ${COMPREPLY[0]}" + else + # Format the descriptions __%[1]s_format_comp_descriptions $longest fi } diff --git a/vendor/github.com/spf13/cobra/cobra.go b/vendor/github.com/spf13/cobra/cobra.go index e0b0947b..d9cd2414 100644 --- a/vendor/github.com/spf13/cobra/cobra.go +++ b/vendor/github.com/spf13/cobra/cobra.go @@ -176,12 +176,16 @@ func rpad(s string, padding int) string { return fmt.Sprintf(formattedString, s) } -// tmpl executes the given template text on data, writing the result to w. -func tmpl(w io.Writer, text string, data interface{}) error { - t := template.New("top") - t.Funcs(templateFuncs) - template.Must(t.Parse(text)) - return t.Execute(w, data) +func tmpl(text string) *tmplFunc { + return &tmplFunc{ + tmpl: text, + fn: func(w io.Writer, data interface{}) error { + t := template.New("top") + t.Funcs(templateFuncs) + template.Must(t.Parse(text)) + return t.Execute(w, data) + }, + } } // ld compares two strings and returns the levenshtein distance between them. diff --git a/vendor/github.com/spf13/cobra/command.go b/vendor/github.com/spf13/cobra/command.go index 54748fc6..dbb2c298 100644 --- a/vendor/github.com/spf13/cobra/command.go +++ b/vendor/github.com/spf13/cobra/command.go @@ -33,6 +33,9 @@ import ( const ( FlagSetByCobraAnnotation = "cobra_annotation_flag_set_by_cobra" CommandDisplayNameAnnotation = "cobra_annotation_command_display_name" + + helpFlagName = "help" + helpCommandName = "help" ) // FParseErrWhitelist configures Flag parse errors to be ignored @@ -80,11 +83,11 @@ type Command struct { Example string // ValidArgs is list of all valid non-flag arguments that are accepted in shell completions - ValidArgs []string + ValidArgs []Completion // ValidArgsFunction is an optional function that provides valid non-flag arguments for shell completion. // It is a dynamic version of using ValidArgs. // Only one of ValidArgs and ValidArgsFunction can be used for a command. - ValidArgsFunction func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) + ValidArgsFunction CompletionFunc // Expected arguments Args PositionalArgs @@ -168,12 +171,12 @@ type Command struct { // usageFunc is usage func defined by user. usageFunc func(*Command) error // usageTemplate is usage template defined by user. - usageTemplate string + usageTemplate *tmplFunc // flagErrorFunc is func defined by user and it's called when the parsing of // flags returns an error. flagErrorFunc func(*Command, error) error // helpTemplate is help template defined by user. - helpTemplate string + helpTemplate *tmplFunc // helpFunc is help func defined by user. helpFunc func(*Command, []string) // helpCommand is command with usage 'help'. If it's not defined by user, @@ -186,7 +189,7 @@ type Command struct { completionCommandGroupID string // versionTemplate is the version template defined by user. - versionTemplate string + versionTemplate *tmplFunc // errPrefix is the error message prefix defined by user. errPrefix string @@ -281,6 +284,7 @@ func (c *Command) SetArgs(a []string) { // SetOutput sets the destination for usage and error messages. // If output is nil, os.Stderr is used. +// // Deprecated: Use SetOut and/or SetErr instead func (c *Command) SetOutput(output io.Writer) { c.outWriter = output @@ -312,7 +316,11 @@ func (c *Command) SetUsageFunc(f func(*Command) error) { // SetUsageTemplate sets usage template. Can be defined by Application. func (c *Command) SetUsageTemplate(s string) { - c.usageTemplate = s + if s == "" { + c.usageTemplate = nil + return + } + c.usageTemplate = tmpl(s) } // SetFlagErrorFunc sets a function to generate an error when flag parsing @@ -348,12 +356,20 @@ func (c *Command) SetCompletionCommandGroupID(groupID string) { // SetHelpTemplate sets help template to be used. Application can use it to set custom template. func (c *Command) SetHelpTemplate(s string) { - c.helpTemplate = s + if s == "" { + c.helpTemplate = nil + return + } + c.helpTemplate = tmpl(s) } // SetVersionTemplate sets version template to be used. Application can use it to set custom template. func (c *Command) SetVersionTemplate(s string) { - c.versionTemplate = s + if s == "" { + c.versionTemplate = nil + return + } + c.versionTemplate = tmpl(s) } // SetErrPrefix sets error message prefix to be used. Application can use it to set custom prefix. @@ -434,7 +450,8 @@ func (c *Command) UsageFunc() (f func(*Command) error) { } return func(c *Command) error { c.mergePersistentFlags() - err := tmpl(c.OutOrStderr(), c.UsageTemplate(), c) + fn := c.getUsageTemplateFunc() + err := fn(c.OutOrStderr(), c) if err != nil { c.PrintErrln(err) } @@ -442,6 +459,19 @@ func (c *Command) UsageFunc() (f func(*Command) error) { } } +// getUsageTemplateFunc returns the usage template function for the command +// going up the command tree if necessary. +func (c *Command) getUsageTemplateFunc() func(w io.Writer, data interface{}) error { + if c.usageTemplate != nil { + return c.usageTemplate.fn + } + + if c.HasParent() { + return c.parent.getUsageTemplateFunc() + } + return defaultUsageFunc +} + // Usage puts out the usage for the command. // Used when a user provides invalid input. // Can be defined by user by overriding UsageFunc. @@ -460,15 +490,30 @@ func (c *Command) HelpFunc() func(*Command, []string) { } return func(c *Command, a []string) { c.mergePersistentFlags() + fn := c.getHelpTemplateFunc() // The help should be sent to stdout // See https://github.com/spf13/cobra/issues/1002 - err := tmpl(c.OutOrStdout(), c.HelpTemplate(), c) + err := fn(c.OutOrStdout(), c) if err != nil { c.PrintErrln(err) } } } +// getHelpTemplateFunc returns the help template function for the command +// going up the command tree if necessary. +func (c *Command) getHelpTemplateFunc() func(w io.Writer, data interface{}) error { + if c.helpTemplate != nil { + return c.helpTemplate.fn + } + + if c.HasParent() { + return c.parent.getHelpTemplateFunc() + } + + return defaultHelpFunc +} + // Help puts out the help for the command. // Used when a user calls help [command]. // Can be defined by user by overriding HelpFunc. @@ -543,71 +588,55 @@ func (c *Command) NamePadding() int { } // UsageTemplate returns usage template for the command. +// This function is kept for backwards-compatibility reasons. func (c *Command) UsageTemplate() string { - if c.usageTemplate != "" { - return c.usageTemplate + if c.usageTemplate != nil { + return c.usageTemplate.tmpl } if c.HasParent() { return c.parent.UsageTemplate() } - return `Usage:{{if .Runnable}} - {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}} - {{.CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}} - -Aliases: - {{.NameAndAliases}}{{end}}{{if .HasExample}} - -Examples: -{{.Example}}{{end}}{{if .HasAvailableSubCommands}}{{$cmds := .Commands}}{{if eq (len .Groups) 0}} - -Available Commands:{{range $cmds}}{{if (or .IsAvailableCommand (eq .Name "help"))}} - {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{else}}{{range $group := .Groups}} - -{{.Title}}{{range $cmds}}{{if (and (eq .GroupID $group.ID) (or .IsAvailableCommand (eq .Name "help")))}} - {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if not .AllChildCommandsHaveGroup}} - -Additional Commands:{{range $cmds}}{{if (and (eq .GroupID "") (or .IsAvailableCommand (eq .Name "help")))}} - {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}} - -Flags: -{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}} - -Global Flags: -{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}} - -Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}} - {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}} - -Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}} -` + return defaultUsageTemplate } // HelpTemplate return help template for the command. +// This function is kept for backwards-compatibility reasons. func (c *Command) HelpTemplate() string { - if c.helpTemplate != "" { - return c.helpTemplate + if c.helpTemplate != nil { + return c.helpTemplate.tmpl } if c.HasParent() { return c.parent.HelpTemplate() } - return `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}} - -{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}` + return defaultHelpTemplate } // VersionTemplate return version template for the command. +// This function is kept for backwards-compatibility reasons. func (c *Command) VersionTemplate() string { - if c.versionTemplate != "" { - return c.versionTemplate + if c.versionTemplate != nil { + return c.versionTemplate.tmpl } if c.HasParent() { return c.parent.VersionTemplate() } - return `{{with .Name}}{{printf "%s " .}}{{end}}{{printf "version %s" .Version}} -` + return defaultVersionTemplate +} + +// getVersionTemplateFunc returns the version template function for the command +// going up the command tree if necessary. +func (c *Command) getVersionTemplateFunc() func(w io.Writer, data interface{}) error { + if c.versionTemplate != nil { + return c.versionTemplate.fn + } + + if c.HasParent() { + return c.parent.getVersionTemplateFunc() + } + return defaultVersionFunc } // ErrPrefix return error message prefix for the command @@ -894,7 +923,7 @@ func (c *Command) execute(a []string) (err error) { // If help is called, regardless of other flags, return we want help. // Also say we need help if the command isn't runnable. - helpVal, err := c.Flags().GetBool("help") + helpVal, err := c.Flags().GetBool(helpFlagName) if err != nil { // should be impossible to get here as we always declare a help // flag in InitDefaultHelpFlag() @@ -914,7 +943,8 @@ func (c *Command) execute(a []string) (err error) { return err } if versionVal { - err := tmpl(c.OutOrStdout(), c.VersionTemplate(), c) + fn := c.getVersionTemplateFunc() + err := fn(c.OutOrStdout(), c) if err != nil { c.Println(err) } @@ -1068,12 +1098,6 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { // initialize help at the last point to allow for user overriding c.InitDefaultHelpCmd() - // initialize completion at the last point to allow for user overriding - c.InitDefaultCompletionCmd() - - // Now that all commands have been created, let's make sure all groups - // are properly created also - c.checkCommandGroups() args := c.args @@ -1082,9 +1106,16 @@ func (c *Command) ExecuteC() (cmd *Command, err error) { args = os.Args[1:] } - // initialize the hidden command to be used for shell completion + // initialize the __complete command to be used for shell completion c.initCompleteCmd(args) + // initialize the default completion command + c.InitDefaultCompletionCmd(args...) + + // Now that all commands have been created, let's make sure all groups + // are properly created also + c.checkCommandGroups() + var flags []string if c.TraverseChildren { cmd, flags, err = c.Traverse(args) @@ -1187,16 +1218,16 @@ func (c *Command) checkCommandGroups() { // If c already has help flag, it will do nothing. func (c *Command) InitDefaultHelpFlag() { c.mergePersistentFlags() - if c.Flags().Lookup("help") == nil { + if c.Flags().Lookup(helpFlagName) == nil { usage := "help for " - name := c.displayName() + name := c.DisplayName() if name == "" { usage += "this command" } else { usage += name } - c.Flags().BoolP("help", "h", false, usage) - _ = c.Flags().SetAnnotation("help", FlagSetByCobraAnnotation, []string{"true"}) + c.Flags().BoolP(helpFlagName, "h", false, usage) + _ = c.Flags().SetAnnotation(helpFlagName, FlagSetByCobraAnnotation, []string{"true"}) } } @@ -1215,7 +1246,7 @@ func (c *Command) InitDefaultVersionFlag() { if c.Name() == "" { usage += "this command" } else { - usage += c.Name() + usage += c.DisplayName() } if c.Flags().ShorthandLookup("v") == nil { c.Flags().BoolP("version", "v", false, usage) @@ -1239,9 +1270,9 @@ func (c *Command) InitDefaultHelpCmd() { Use: "help [command]", Short: "Help about any command", Long: `Help provides help for any command in the application. -Simply type ` + c.displayName() + ` help [path to command] for full details.`, - ValidArgsFunction: func(c *Command, args []string, toComplete string) ([]string, ShellCompDirective) { - var completions []string +Simply type ` + c.DisplayName() + ` help [path to command] for full details.`, + ValidArgsFunction: func(c *Command, args []string, toComplete string) ([]Completion, ShellCompDirective) { + var completions []Completion cmd, _, e := c.Root().Find(args) if e != nil { return nil, ShellCompDirectiveNoFileComp @@ -1253,7 +1284,7 @@ Simply type ` + c.displayName() + ` help [path to command] for full details.`, for _, subCmd := range cmd.Commands() { if subCmd.IsAvailableCommand() || subCmd == cmd.helpCommand { if strings.HasPrefix(subCmd.Name(), toComplete) { - completions = append(completions, fmt.Sprintf("%s\t%s", subCmd.Name(), subCmd.Short)) + completions = append(completions, CompletionWithDesc(subCmd.Name(), subCmd.Short)) } } } @@ -1430,10 +1461,12 @@ func (c *Command) CommandPath() string { if c.HasParent() { return c.Parent().CommandPath() + " " + c.Name() } - return c.displayName() + return c.DisplayName() } -func (c *Command) displayName() string { +// DisplayName returns the name to display in help text. Returns command Name() +// If CommandDisplayNameAnnoation is not set +func (c *Command) DisplayName() string { if displayName, ok := c.Annotations[CommandDisplayNameAnnotation]; ok { return displayName } @@ -1443,7 +1476,7 @@ func (c *Command) displayName() string { // UseLine puts out the full usage for a given command (including parents). func (c *Command) UseLine() string { var useline string - use := strings.Replace(c.Use, c.Name(), c.displayName(), 1) + use := strings.Replace(c.Use, c.Name(), c.DisplayName(), 1) if c.HasParent() { useline = c.parent.CommandPath() + " " + use } else { @@ -1649,7 +1682,7 @@ func (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name string) f // to this command (local and persistent declared here and by all parents). func (c *Command) Flags() *flag.FlagSet { if c.flags == nil { - c.flags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) + c.flags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError) if c.flagErrorBuf == nil { c.flagErrorBuf = new(bytes.Buffer) } @@ -1664,7 +1697,7 @@ func (c *Command) Flags() *flag.FlagSet { func (c *Command) LocalNonPersistentFlags() *flag.FlagSet { persistentFlags := c.PersistentFlags() - out := flag.NewFlagSet(c.displayName(), flag.ContinueOnError) + out := flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError) c.LocalFlags().VisitAll(func(f *flag.Flag) { if persistentFlags.Lookup(f.Name) == nil { out.AddFlag(f) @@ -1679,7 +1712,7 @@ func (c *Command) LocalFlags() *flag.FlagSet { c.mergePersistentFlags() if c.lflags == nil { - c.lflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) + c.lflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError) if c.flagErrorBuf == nil { c.flagErrorBuf = new(bytes.Buffer) } @@ -1707,7 +1740,7 @@ func (c *Command) InheritedFlags() *flag.FlagSet { c.mergePersistentFlags() if c.iflags == nil { - c.iflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) + c.iflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError) if c.flagErrorBuf == nil { c.flagErrorBuf = new(bytes.Buffer) } @@ -1736,7 +1769,7 @@ func (c *Command) NonInheritedFlags() *flag.FlagSet { // PersistentFlags returns the persistent FlagSet specifically set in the current command. func (c *Command) PersistentFlags() *flag.FlagSet { if c.pflags == nil { - c.pflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) + c.pflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError) if c.flagErrorBuf == nil { c.flagErrorBuf = new(bytes.Buffer) } @@ -1749,9 +1782,9 @@ func (c *Command) PersistentFlags() *flag.FlagSet { func (c *Command) ResetFlags() { c.flagErrorBuf = new(bytes.Buffer) c.flagErrorBuf.Reset() - c.flags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) + c.flags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError) c.flags.SetOutput(c.flagErrorBuf) - c.pflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) + c.pflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError) c.pflags.SetOutput(c.flagErrorBuf) c.lflags = nil @@ -1868,7 +1901,7 @@ func (c *Command) mergePersistentFlags() { // If c.parentsPflags == nil, it makes new. func (c *Command) updateParentsPflags() { if c.parentsPflags == nil { - c.parentsPflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError) + c.parentsPflags = flag.NewFlagSet(c.DisplayName(), flag.ContinueOnError) c.parentsPflags.SetOutput(c.flagErrorBuf) c.parentsPflags.SortFlags = false } @@ -1894,3 +1927,141 @@ func commandNameMatches(s string, t string) bool { return s == t } + +// tmplFunc holds a template and a function that will execute said template. +type tmplFunc struct { + tmpl string + fn func(io.Writer, interface{}) error +} + +var defaultUsageTemplate = `Usage:{{if .Runnable}} + {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}} + {{.CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}} + +Aliases: + {{.NameAndAliases}}{{end}}{{if .HasExample}} + +Examples: +{{.Example}}{{end}}{{if .HasAvailableSubCommands}}{{$cmds := .Commands}}{{if eq (len .Groups) 0}} + +Available Commands:{{range $cmds}}{{if (or .IsAvailableCommand (eq .Name "help"))}} + {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{else}}{{range $group := .Groups}} + +{{.Title}}{{range $cmds}}{{if (and (eq .GroupID $group.ID) (or .IsAvailableCommand (eq .Name "help")))}} + {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if not .AllChildCommandsHaveGroup}} + +Additional Commands:{{range $cmds}}{{if (and (eq .GroupID "") (or .IsAvailableCommand (eq .Name "help")))}} + {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}} + +Flags: +{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}} + +Global Flags: +{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}} + +Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}} + {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}} + +Use "{{.CommandPath}} [command] --help" for more information about a command.{{end}} +` + +// defaultUsageFunc is equivalent to executing defaultUsageTemplate. The two should be changed in sync. +func defaultUsageFunc(w io.Writer, in interface{}) error { + c := in.(*Command) + fmt.Fprint(w, "Usage:") + if c.Runnable() { + fmt.Fprintf(w, "\n %s", c.UseLine()) + } + if c.HasAvailableSubCommands() { + fmt.Fprintf(w, "\n %s [command]", c.CommandPath()) + } + if len(c.Aliases) > 0 { + fmt.Fprintf(w, "\n\nAliases:\n") + fmt.Fprintf(w, " %s", c.NameAndAliases()) + } + if c.HasExample() { + fmt.Fprintf(w, "\n\nExamples:\n") + fmt.Fprintf(w, "%s", c.Example) + } + if c.HasAvailableSubCommands() { + cmds := c.Commands() + if len(c.Groups()) == 0 { + fmt.Fprintf(w, "\n\nAvailable Commands:") + for _, subcmd := range cmds { + if subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName { + fmt.Fprintf(w, "\n %s %s", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short) + } + } + } else { + for _, group := range c.Groups() { + fmt.Fprintf(w, "\n\n%s", group.Title) + for _, subcmd := range cmds { + if subcmd.GroupID == group.ID && (subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName) { + fmt.Fprintf(w, "\n %s %s", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short) + } + } + } + if !c.AllChildCommandsHaveGroup() { + fmt.Fprintf(w, "\n\nAdditional Commands:") + for _, subcmd := range cmds { + if subcmd.GroupID == "" && (subcmd.IsAvailableCommand() || subcmd.Name() == helpCommandName) { + fmt.Fprintf(w, "\n %s %s", rpad(subcmd.Name(), subcmd.NamePadding()), subcmd.Short) + } + } + } + } + } + if c.HasAvailableLocalFlags() { + fmt.Fprintf(w, "\n\nFlags:\n") + fmt.Fprint(w, trimRightSpace(c.LocalFlags().FlagUsages())) + } + if c.HasAvailableInheritedFlags() { + fmt.Fprintf(w, "\n\nGlobal Flags:\n") + fmt.Fprint(w, trimRightSpace(c.InheritedFlags().FlagUsages())) + } + if c.HasHelpSubCommands() { + fmt.Fprintf(w, "\n\nAdditional help topcis:") + for _, subcmd := range c.Commands() { + if subcmd.IsAdditionalHelpTopicCommand() { + fmt.Fprintf(w, "\n %s %s", rpad(subcmd.CommandPath(), subcmd.CommandPathPadding()), subcmd.Short) + } + } + } + if c.HasAvailableSubCommands() { + fmt.Fprintf(w, "\n\nUse \"%s [command] --help\" for more information about a command.", c.CommandPath()) + } + fmt.Fprintln(w) + return nil +} + +var defaultHelpTemplate = `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}} + +{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}` + +// defaultHelpFunc is equivalent to executing defaultHelpTemplate. The two should be changed in sync. +func defaultHelpFunc(w io.Writer, in interface{}) error { + c := in.(*Command) + usage := c.Long + if usage == "" { + usage = c.Short + } + usage = trimRightSpace(usage) + if usage != "" { + fmt.Fprintln(w, usage) + fmt.Fprintln(w) + } + if c.Runnable() || c.HasSubCommands() { + fmt.Fprint(w, c.UsageString()) + } + return nil +} + +var defaultVersionTemplate = `{{with .DisplayName}}{{printf "%s " .}}{{end}}{{printf "version %s" .Version}} +` + +// defaultVersionFunc is equivalent to executing defaultVersionTemplate. The two should be changed in sync. +func defaultVersionFunc(w io.Writer, in interface{}) error { + c := in.(*Command) + _, err := fmt.Fprintf(w, "%s version %s\n", c.DisplayName(), c.Version) + return err +} diff --git a/vendor/github.com/spf13/cobra/completions.go b/vendor/github.com/spf13/cobra/completions.go index c0c08b05..a1752f76 100644 --- a/vendor/github.com/spf13/cobra/completions.go +++ b/vendor/github.com/spf13/cobra/completions.go @@ -35,7 +35,7 @@ const ( ) // Global map of flag completion functions. Make sure to use flagCompletionMutex before you try to read and write from it. -var flagCompletionFunctions = map[*pflag.Flag]func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective){} +var flagCompletionFunctions = map[*pflag.Flag]CompletionFunc{} // lock for reading and writing from flagCompletionFunctions var flagCompletionMutex = &sync.RWMutex{} @@ -117,22 +117,50 @@ type CompletionOptions struct { HiddenDefaultCmd bool } +// Completion is a string that can be used for completions +// +// two formats are supported: +// - the completion choice +// - the completion choice with a textual description (separated by a TAB). +// +// [CompletionWithDesc] can be used to create a completion string with a textual description. +// +// Note: Go type alias is used to provide a more descriptive name in the documentation, but any string can be used. +type Completion = string + +// CompletionFunc is a function that provides completion results. +type CompletionFunc = func(cmd *Command, args []string, toComplete string) ([]Completion, ShellCompDirective) + +// CompletionWithDesc returns a [Completion] with a description by using the TAB delimited format. +func CompletionWithDesc(choice string, description string) Completion { + return choice + "\t" + description +} + // NoFileCompletions can be used to disable file completion for commands that should // not trigger file completions. -func NoFileCompletions(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) { +// +// This method satisfies [CompletionFunc]. +// It can be used with [Command.RegisterFlagCompletionFunc] and for [Command.ValidArgsFunction]. +func NoFileCompletions(cmd *Command, args []string, toComplete string) ([]Completion, ShellCompDirective) { return nil, ShellCompDirectiveNoFileComp } // FixedCompletions can be used to create a completion function which always // returns the same results. -func FixedCompletions(choices []string, directive ShellCompDirective) func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) { - return func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) { +// +// This method returns a function that satisfies [CompletionFunc] +// It can be used with [Command.RegisterFlagCompletionFunc] and for [Command.ValidArgsFunction]. +func FixedCompletions(choices []Completion, directive ShellCompDirective) CompletionFunc { + return func(cmd *Command, args []string, toComplete string) ([]Completion, ShellCompDirective) { return choices, directive } } // RegisterFlagCompletionFunc should be called to register a function to provide completion for a flag. -func (c *Command) RegisterFlagCompletionFunc(flagName string, f func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective)) error { +// +// You can use pre-defined completion functions such as [FixedCompletions] or [NoFileCompletions], +// or you can define your own. +func (c *Command) RegisterFlagCompletionFunc(flagName string, f CompletionFunc) error { flag := c.Flag(flagName) if flag == nil { return fmt.Errorf("RegisterFlagCompletionFunc: flag '%s' does not exist", flagName) @@ -148,7 +176,7 @@ func (c *Command) RegisterFlagCompletionFunc(flagName string, f func(cmd *Comman } // GetFlagCompletionFunc returns the completion function for the given flag of the command, if available. -func (c *Command) GetFlagCompletionFunc(flagName string) (func(*Command, []string, string) ([]string, ShellCompDirective), bool) { +func (c *Command) GetFlagCompletionFunc(flagName string) (CompletionFunc, bool) { flag := c.Flag(flagName) if flag == nil { return nil, false @@ -270,7 +298,15 @@ func (c *Command) initCompleteCmd(args []string) { } } -func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDirective, error) { +// SliceValue is a reduced version of [pflag.SliceValue]. It is used to detect +// flags that accept multiple values and therefore can provide completion +// multiple times. +type SliceValue interface { + // GetSlice returns the flag value list as an array of strings. + GetSlice() []string +} + +func (c *Command) getCompletions(args []string) (*Command, []Completion, ShellCompDirective, error) { // The last argument, which is not completely typed by the user, // should not be part of the list of arguments toComplete := args[len(args)-1] @@ -298,7 +334,7 @@ func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDi } if err != nil { // Unable to find the real command. E.g., someInvalidCmd - return c, []string{}, ShellCompDirectiveDefault, fmt.Errorf("unable to find a command for arguments: %v", trimmedArgs) + return c, []Completion{}, ShellCompDirectiveDefault, fmt.Errorf("unable to find a command for arguments: %v", trimmedArgs) } finalCmd.ctx = c.ctx @@ -328,7 +364,7 @@ func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDi // Parse the flags early so we can check if required flags are set if err = finalCmd.ParseFlags(finalArgs); err != nil { - return finalCmd, []string{}, ShellCompDirectiveDefault, fmt.Errorf("Error while parsing flags from args %v: %s", finalArgs, err.Error()) + return finalCmd, []Completion{}, ShellCompDirectiveDefault, fmt.Errorf("Error while parsing flags from args %v: %s", finalArgs, err.Error()) } realArgCount := finalCmd.Flags().NArg() @@ -340,14 +376,14 @@ func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDi if flagErr != nil { // If error type is flagCompError and we don't want flagCompletion we should ignore the error if _, ok := flagErr.(*flagCompError); !(ok && !flagCompletion) { - return finalCmd, []string{}, ShellCompDirectiveDefault, flagErr + return finalCmd, []Completion{}, ShellCompDirectiveDefault, flagErr } } // Look for the --help or --version flags. If they are present, // there should be no further completions. if helpOrVersionFlagPresent(finalCmd) { - return finalCmd, []string{}, ShellCompDirectiveNoFileComp, nil + return finalCmd, []Completion{}, ShellCompDirectiveNoFileComp, nil } // We only remove the flags from the arguments if DisableFlagParsing is not set. @@ -376,11 +412,11 @@ func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDi return finalCmd, subDir, ShellCompDirectiveFilterDirs, nil } // Directory completion - return finalCmd, []string{}, ShellCompDirectiveFilterDirs, nil + return finalCmd, []Completion{}, ShellCompDirectiveFilterDirs, nil } } - var completions []string + var completions []Completion var directive ShellCompDirective // Enforce flag groups before doing flag completions @@ -399,10 +435,14 @@ func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDi // If we have not found any required flags, only then can we show regular flags if len(completions) == 0 { doCompleteFlags := func(flag *pflag.Flag) { - if !flag.Changed || + _, acceptsMultiple := flag.Value.(SliceValue) + acceptsMultiple = acceptsMultiple || strings.Contains(flag.Value.Type(), "Slice") || - strings.Contains(flag.Value.Type(), "Array") { - // If the flag is not already present, or if it can be specified multiple times (Array or Slice) + strings.Contains(flag.Value.Type(), "Array") || + strings.HasPrefix(flag.Value.Type(), "stringTo") + + if !flag.Changed || acceptsMultiple { + // If the flag is not already present, or if it can be specified multiple times (Array, Slice, or stringTo) // we suggest it as a completion completions = append(completions, getFlagNameCompletions(flag, toComplete)...) } @@ -462,7 +502,7 @@ func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDi for _, subCmd := range finalCmd.Commands() { if subCmd.IsAvailableCommand() || subCmd == finalCmd.helpCommand { if strings.HasPrefix(subCmd.Name(), toComplete) { - completions = append(completions, fmt.Sprintf("%s\t%s", subCmd.Name(), subCmd.Short)) + completions = append(completions, CompletionWithDesc(subCmd.Name(), subCmd.Short)) } directive = ShellCompDirectiveNoFileComp } @@ -507,7 +547,7 @@ func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDi } // Find the completion function for the flag or command - var completionFn func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) + var completionFn CompletionFunc if flag != nil && flagCompletion { flagCompletionMutex.RLock() completionFn = flagCompletionFunctions[flag] @@ -518,7 +558,7 @@ func (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDi if completionFn != nil { // Go custom completion defined for this flag or command. // Call the registered completion function to get the completions. - var comps []string + var comps []Completion comps, directive = completionFn(finalCmd, finalArgs, toComplete) completions = append(completions, comps...) } @@ -531,23 +571,23 @@ func helpOrVersionFlagPresent(cmd *Command) bool { len(versionFlag.Annotations[FlagSetByCobraAnnotation]) > 0 && versionFlag.Changed { return true } - if helpFlag := cmd.Flags().Lookup("help"); helpFlag != nil && + if helpFlag := cmd.Flags().Lookup(helpFlagName); helpFlag != nil && len(helpFlag.Annotations[FlagSetByCobraAnnotation]) > 0 && helpFlag.Changed { return true } return false } -func getFlagNameCompletions(flag *pflag.Flag, toComplete string) []string { +func getFlagNameCompletions(flag *pflag.Flag, toComplete string) []Completion { if nonCompletableFlag(flag) { - return []string{} + return []Completion{} } - var completions []string + var completions []Completion flagName := "--" + flag.Name if strings.HasPrefix(flagName, toComplete) { // Flag without the = - completions = append(completions, fmt.Sprintf("%s\t%s", flagName, flag.Usage)) + completions = append(completions, CompletionWithDesc(flagName, flag.Usage)) // Why suggest both long forms: --flag and --flag= ? // This forces the user to *always* have to type either an = or a space after the flag name. @@ -559,20 +599,20 @@ func getFlagNameCompletions(flag *pflag.Flag, toComplete string) []string { // if len(flag.NoOptDefVal) == 0 { // // Flag requires a value, so it can be suffixed with = // flagName += "=" - // completions = append(completions, fmt.Sprintf("%s\t%s", flagName, flag.Usage)) + // completions = append(completions, CompletionWithDesc(flagName, flag.Usage)) // } } flagName = "-" + flag.Shorthand if len(flag.Shorthand) > 0 && strings.HasPrefix(flagName, toComplete) { - completions = append(completions, fmt.Sprintf("%s\t%s", flagName, flag.Usage)) + completions = append(completions, CompletionWithDesc(flagName, flag.Usage)) } return completions } -func completeRequireFlags(finalCmd *Command, toComplete string) []string { - var completions []string +func completeRequireFlags(finalCmd *Command, toComplete string) []Completion { + var completions []Completion doCompleteRequiredFlags := func(flag *pflag.Flag) { if _, present := flag.Annotations[BashCompOneRequiredFlag]; present { @@ -687,8 +727,8 @@ func checkIfFlagCompletion(finalCmd *Command, args []string, lastArg string) (*p // 1- the feature has been explicitly disabled by the program, // 2- c has no subcommands (to avoid creating one), // 3- c already has a 'completion' command provided by the program. -func (c *Command) InitDefaultCompletionCmd() { - if c.CompletionOptions.DisableDefaultCmd || !c.HasSubCommands() { +func (c *Command) InitDefaultCompletionCmd(args ...string) { + if c.CompletionOptions.DisableDefaultCmd { return } @@ -701,6 +741,16 @@ func (c *Command) InitDefaultCompletionCmd() { haveNoDescFlag := !c.CompletionOptions.DisableNoDescFlag && !c.CompletionOptions.DisableDescriptions + // Special case to know if there are sub-commands or not. + hasSubCommands := false + for _, cmd := range c.commands { + if cmd.Name() != ShellCompRequestCmd && cmd.Name() != helpCommandName { + // We found a real sub-command (not 'help' or '__complete') + hasSubCommands = true + break + } + } + completionCmd := &Command{ Use: compCmdName, Short: "Generate the autocompletion script for the specified shell", @@ -714,6 +764,22 @@ See each sub-command's help for details on how to use the generated script. } c.AddCommand(completionCmd) + if !hasSubCommands { + // If the 'completion' command will be the only sub-command, + // we only create it if it is actually being called. + // This avoids breaking programs that would suddenly find themselves with + // a subcommand, which would prevent them from accepting arguments. + // We also create the 'completion' command if the user is triggering + // shell completion for it (prog __complete completion '') + subCmd, cmdArgs, err := c.Find(args) + if err != nil || subCmd.Name() != compCmdName && + !(subCmd.Name() == ShellCompRequestCmd && len(cmdArgs) > 1 && cmdArgs[0] == compCmdName) { + // The completion command is not being called or being completed so we remove it. + c.RemoveCommand(completionCmd) + return + } + } + out := c.OutOrStdout() noDesc := c.CompletionOptions.DisableDescriptions shortDesc := "Generate the autocompletion script for %s" diff --git a/vendor/github.com/spf13/cobra/powershell_completions.go b/vendor/github.com/spf13/cobra/powershell_completions.go index a830b7bc..746dcb92 100644 --- a/vendor/github.com/spf13/cobra/powershell_completions.go +++ b/vendor/github.com/spf13/cobra/powershell_completions.go @@ -162,7 +162,10 @@ filter __%[1]s_escapeStringWithSpecialChars { if (-Not $Description) { $Description = " " } - @{Name="$Name";Description="$Description"} + New-Object -TypeName PSCustomObject -Property @{ + Name = "$Name" + Description = "$Description" + } } @@ -240,7 +243,12 @@ filter __%[1]s_escapeStringWithSpecialChars { __%[1]s_debug "Only one completion left" # insert space after value - [System.Management.Automation.CompletionResult]::new($($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space, "$($comp.Name)", 'ParameterValue', "$($comp.Description)") + $CompletionText = $($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space + if ($ExecutionContext.SessionState.LanguageMode -eq "FullLanguage"){ + [System.Management.Automation.CompletionResult]::new($CompletionText, "$($comp.Name)", 'ParameterValue', "$($comp.Description)") + } else { + $CompletionText + } } else { # Add the proper number of spaces to align the descriptions @@ -255,7 +263,12 @@ filter __%[1]s_escapeStringWithSpecialChars { $Description = " ($($comp.Description))" } - [System.Management.Automation.CompletionResult]::new("$($comp.Name)$Description", "$($comp.Name)$Description", 'ParameterValue', "$($comp.Description)") + $CompletionText = "$($comp.Name)$Description" + if ($ExecutionContext.SessionState.LanguageMode -eq "FullLanguage"){ + [System.Management.Automation.CompletionResult]::new($CompletionText, "$($comp.Name)$Description", 'ParameterValue', "$($comp.Description)") + } else { + $CompletionText + } } } @@ -264,7 +277,13 @@ filter __%[1]s_escapeStringWithSpecialChars { # insert space after value # MenuComplete will automatically show the ToolTip of # the highlighted value at the bottom of the suggestions. - [System.Management.Automation.CompletionResult]::new($($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space, "$($comp.Name)", 'ParameterValue', "$($comp.Description)") + + $CompletionText = $($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space + if ($ExecutionContext.SessionState.LanguageMode -eq "FullLanguage"){ + [System.Management.Automation.CompletionResult]::new($CompletionText, "$($comp.Name)", 'ParameterValue', "$($comp.Description)") + } else { + $CompletionText + } } # TabCompleteNext and in case we get something unknown @@ -272,7 +291,13 @@ filter __%[1]s_escapeStringWithSpecialChars { # Like MenuComplete but we don't want to add a space here because # the user need to press space anyway to get the completion. # Description will not be shown because that's not possible with TabCompleteNext - [System.Management.Automation.CompletionResult]::new($($comp.Name | __%[1]s_escapeStringWithSpecialChars), "$($comp.Name)", 'ParameterValue', "$($comp.Description)") + + $CompletionText = $($comp.Name | __%[1]s_escapeStringWithSpecialChars) + if ($ExecutionContext.SessionState.LanguageMode -eq "FullLanguage"){ + [System.Management.Automation.CompletionResult]::new($CompletionText, "$($comp.Name)", 'ParameterValue', "$($comp.Description)") + } else { + $CompletionText + } } } diff --git a/vendor/github.com/spf13/pflag/.editorconfig b/vendor/github.com/spf13/pflag/.editorconfig new file mode 100644 index 00000000..4492e9f9 --- /dev/null +++ b/vendor/github.com/spf13/pflag/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.go] +indent_style = tab diff --git a/vendor/github.com/spf13/pflag/.golangci.yaml b/vendor/github.com/spf13/pflag/.golangci.yaml new file mode 100644 index 00000000..b274f248 --- /dev/null +++ b/vendor/github.com/spf13/pflag/.golangci.yaml @@ -0,0 +1,4 @@ +linters: + disable-all: true + enable: + - nolintlint diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go index 24a5036e..7c058de3 100644 --- a/vendor/github.com/spf13/pflag/flag.go +++ b/vendor/github.com/spf13/pflag/flag.go @@ -160,7 +160,7 @@ type FlagSet struct { args []string // arguments after flags argsLenAtDash int // len(args) when a '--' was located when parsing, or -1 if no -- errorHandling ErrorHandling - output io.Writer // nil means stderr; use out() accessor + output io.Writer // nil means stderr; use Output() accessor interspersed bool // allow interspersed option/non-option args normalizeNameFunc func(f *FlagSet, name string) NormalizedName @@ -255,13 +255,20 @@ func (f *FlagSet) normalizeFlagName(name string) NormalizedName { return n(f, name) } -func (f *FlagSet) out() io.Writer { +// Output returns the destination for usage and error messages. os.Stderr is returned if +// output was not set or was set to nil. +func (f *FlagSet) Output() io.Writer { if f.output == nil { return os.Stderr } return f.output } +// Name returns the name of the flag set. +func (f *FlagSet) Name() string { + return f.name +} + // SetOutput sets the destination for usage and error messages. // If output is nil, os.Stderr is used. func (f *FlagSet) SetOutput(output io.Writer) { @@ -358,7 +365,7 @@ func (f *FlagSet) ShorthandLookup(name string) *Flag { } if len(name) > 1 { msg := fmt.Sprintf("can not look up shorthand which is more than one ASCII character: %q", name) - fmt.Fprintf(f.out(), msg) + fmt.Fprintf(f.Output(), msg) panic(msg) } c := name[0] @@ -482,7 +489,7 @@ func (f *FlagSet) Set(name, value string) error { } if flag.Deprecated != "" { - fmt.Fprintf(f.out(), "Flag --%s has been deprecated, %s\n", flag.Name, flag.Deprecated) + fmt.Fprintf(f.Output(), "Flag --%s has been deprecated, %s\n", flag.Name, flag.Deprecated) } return nil } @@ -523,7 +530,7 @@ func Set(name, value string) error { // otherwise, the default values of all defined flags in the set. func (f *FlagSet) PrintDefaults() { usages := f.FlagUsages() - fmt.Fprint(f.out(), usages) + fmt.Fprint(f.Output(), usages) } // defaultIsZeroValue returns true if the default value for this flag represents @@ -758,7 +765,7 @@ func PrintDefaults() { // defaultUsage is the default function to print a usage message. func defaultUsage(f *FlagSet) { - fmt.Fprintf(f.out(), "Usage of %s:\n", f.name) + fmt.Fprintf(f.Output(), "Usage of %s:\n", f.name) f.PrintDefaults() } @@ -844,7 +851,7 @@ func (f *FlagSet) AddFlag(flag *Flag) { _, alreadyThere := f.formal[normalizedFlagName] if alreadyThere { msg := fmt.Sprintf("%s flag redefined: %s", f.name, flag.Name) - fmt.Fprintln(f.out(), msg) + fmt.Fprintln(f.Output(), msg) panic(msg) // Happens only if flags are declared with identical names } if f.formal == nil { @@ -860,7 +867,7 @@ func (f *FlagSet) AddFlag(flag *Flag) { } if len(flag.Shorthand) > 1 { msg := fmt.Sprintf("%q shorthand is more than one ASCII character", flag.Shorthand) - fmt.Fprintf(f.out(), msg) + fmt.Fprintf(f.Output(), msg) panic(msg) } if f.shorthands == nil { @@ -870,7 +877,7 @@ func (f *FlagSet) AddFlag(flag *Flag) { used, alreadyThere := f.shorthands[c] if alreadyThere { msg := fmt.Sprintf("unable to redefine %q shorthand in %q flagset: it's already used for %q flag", c, f.name, used.Name) - fmt.Fprintf(f.out(), msg) + fmt.Fprintf(f.Output(), msg) panic(msg) } f.shorthands[c] = flag @@ -909,7 +916,7 @@ func VarP(value Value, name, shorthand, usage string) { func (f *FlagSet) failf(format string, a ...interface{}) error { err := fmt.Errorf(format, a...) if f.errorHandling != ContinueOnError { - fmt.Fprintln(f.out(), err) + fmt.Fprintln(f.Output(), err) f.usage() } return err @@ -1060,7 +1067,7 @@ func (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parse } if flag.ShorthandDeprecated != "" { - fmt.Fprintf(f.out(), "Flag shorthand -%s has been deprecated, %s\n", flag.Shorthand, flag.ShorthandDeprecated) + fmt.Fprintf(f.Output(), "Flag shorthand -%s has been deprecated, %s\n", flag.Shorthand, flag.ShorthandDeprecated) } err = fn(flag, value) diff --git a/vendor/github.com/spf13/pflag/ip.go b/vendor/github.com/spf13/pflag/ip.go index 3d414ba6..06b8bcb5 100644 --- a/vendor/github.com/spf13/pflag/ip.go +++ b/vendor/github.com/spf13/pflag/ip.go @@ -16,6 +16,9 @@ func newIPValue(val net.IP, p *net.IP) *ipValue { func (i *ipValue) String() string { return net.IP(*i).String() } func (i *ipValue) Set(s string) error { + if s == "" { + return nil + } ip := net.ParseIP(strings.TrimSpace(s)) if ip == nil { return fmt.Errorf("failed to parse IP: %q", s) diff --git a/vendor/github.com/spf13/pflag/ipnet_slice.go b/vendor/github.com/spf13/pflag/ipnet_slice.go new file mode 100644 index 00000000..6b541aa8 --- /dev/null +++ b/vendor/github.com/spf13/pflag/ipnet_slice.go @@ -0,0 +1,147 @@ +package pflag + +import ( + "fmt" + "io" + "net" + "strings" +) + +// -- ipNetSlice Value +type ipNetSliceValue struct { + value *[]net.IPNet + changed bool +} + +func newIPNetSliceValue(val []net.IPNet, p *[]net.IPNet) *ipNetSliceValue { + ipnsv := new(ipNetSliceValue) + ipnsv.value = p + *ipnsv.value = val + return ipnsv +} + +// Set converts, and assigns, the comma-separated IPNet argument string representation as the []net.IPNet value of this flag. +// If Set is called on a flag that already has a []net.IPNet assigned, the newly converted values will be appended. +func (s *ipNetSliceValue) Set(val string) error { + + // remove all quote characters + rmQuote := strings.NewReplacer(`"`, "", `'`, "", "`", "") + + // read flag arguments with CSV parser + ipNetStrSlice, err := readAsCSV(rmQuote.Replace(val)) + if err != nil && err != io.EOF { + return err + } + + // parse ip values into slice + out := make([]net.IPNet, 0, len(ipNetStrSlice)) + for _, ipNetStr := range ipNetStrSlice { + _, n, err := net.ParseCIDR(strings.TrimSpace(ipNetStr)) + if err != nil { + return fmt.Errorf("invalid string being converted to CIDR: %s", ipNetStr) + } + out = append(out, *n) + } + + if !s.changed { + *s.value = out + } else { + *s.value = append(*s.value, out...) + } + + s.changed = true + + return nil +} + +// Type returns a string that uniquely represents this flag's type. +func (s *ipNetSliceValue) Type() string { + return "ipNetSlice" +} + +// String defines a "native" format for this net.IPNet slice flag value. +func (s *ipNetSliceValue) String() string { + + ipNetStrSlice := make([]string, len(*s.value)) + for i, n := range *s.value { + ipNetStrSlice[i] = n.String() + } + + out, _ := writeAsCSV(ipNetStrSlice) + return "[" + out + "]" +} + +func ipNetSliceConv(val string) (interface{}, error) { + val = strings.Trim(val, "[]") + // Emtpy string would cause a slice with one (empty) entry + if len(val) == 0 { + return []net.IPNet{}, nil + } + ss := strings.Split(val, ",") + out := make([]net.IPNet, len(ss)) + for i, sval := range ss { + _, n, err := net.ParseCIDR(strings.TrimSpace(sval)) + if err != nil { + return nil, fmt.Errorf("invalid string being converted to CIDR: %s", sval) + } + out[i] = *n + } + return out, nil +} + +// GetIPNetSlice returns the []net.IPNet value of a flag with the given name +func (f *FlagSet) GetIPNetSlice(name string) ([]net.IPNet, error) { + val, err := f.getFlagType(name, "ipNetSlice", ipNetSliceConv) + if err != nil { + return []net.IPNet{}, err + } + return val.([]net.IPNet), nil +} + +// IPNetSliceVar defines a ipNetSlice flag with specified name, default value, and usage string. +// The argument p points to a []net.IPNet variable in which to store the value of the flag. +func (f *FlagSet) IPNetSliceVar(p *[]net.IPNet, name string, value []net.IPNet, usage string) { + f.VarP(newIPNetSliceValue(value, p), name, "", usage) +} + +// IPNetSliceVarP is like IPNetSliceVar, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPNetSliceVarP(p *[]net.IPNet, name, shorthand string, value []net.IPNet, usage string) { + f.VarP(newIPNetSliceValue(value, p), name, shorthand, usage) +} + +// IPNetSliceVar defines a []net.IPNet flag with specified name, default value, and usage string. +// The argument p points to a []net.IPNet variable in which to store the value of the flag. +func IPNetSliceVar(p *[]net.IPNet, name string, value []net.IPNet, usage string) { + CommandLine.VarP(newIPNetSliceValue(value, p), name, "", usage) +} + +// IPNetSliceVarP is like IPNetSliceVar, but accepts a shorthand letter that can be used after a single dash. +func IPNetSliceVarP(p *[]net.IPNet, name, shorthand string, value []net.IPNet, usage string) { + CommandLine.VarP(newIPNetSliceValue(value, p), name, shorthand, usage) +} + +// IPNetSlice defines a []net.IPNet flag with specified name, default value, and usage string. +// The return value is the address of a []net.IPNet variable that stores the value of that flag. +func (f *FlagSet) IPNetSlice(name string, value []net.IPNet, usage string) *[]net.IPNet { + p := []net.IPNet{} + f.IPNetSliceVarP(&p, name, "", value, usage) + return &p +} + +// IPNetSliceP is like IPNetSlice, but accepts a shorthand letter that can be used after a single dash. +func (f *FlagSet) IPNetSliceP(name, shorthand string, value []net.IPNet, usage string) *[]net.IPNet { + p := []net.IPNet{} + f.IPNetSliceVarP(&p, name, shorthand, value, usage) + return &p +} + +// IPNetSlice defines a []net.IPNet flag with specified name, default value, and usage string. +// The return value is the address of a []net.IP variable that stores the value of the flag. +func IPNetSlice(name string, value []net.IPNet, usage string) *[]net.IPNet { + return CommandLine.IPNetSliceP(name, "", value, usage) +} + +// IPNetSliceP is like IPNetSlice, but accepts a shorthand letter that can be used after a single dash. +func IPNetSliceP(name, shorthand string, value []net.IPNet, usage string) *[]net.IPNet { + return CommandLine.IPNetSliceP(name, shorthand, value, usage) +} diff --git a/vendor/github.com/spf13/pflag/string_array.go b/vendor/github.com/spf13/pflag/string_array.go index 4894af81..d1ff0a96 100644 --- a/vendor/github.com/spf13/pflag/string_array.go +++ b/vendor/github.com/spf13/pflag/string_array.go @@ -31,11 +31,7 @@ func (s *stringArrayValue) Append(val string) error { func (s *stringArrayValue) Replace(val []string) error { out := make([]string, len(val)) for i, d := range val { - var err error out[i] = d - if err != nil { - return err - } } *s.value = out return nil diff --git a/vendor/github.com/xo/terminfo/.gitignore b/vendor/github.com/xo/terminfo/.gitignore new file mode 100644 index 00000000..368e0c06 --- /dev/null +++ b/vendor/github.com/xo/terminfo/.gitignore @@ -0,0 +1,9 @@ +/.cache/ + +/cmd/infocmp/infocmp +/cmd/infocmp/.out/ + +/infocmp +/.out/ + +*.txt diff --git a/vendor/github.com/xo/terminfo/LICENSE b/vendor/github.com/xo/terminfo/LICENSE new file mode 100644 index 00000000..197dadb1 --- /dev/null +++ b/vendor/github.com/xo/terminfo/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Anmol Sethi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/xo/terminfo/README.md b/vendor/github.com/xo/terminfo/README.md new file mode 100644 index 00000000..e5002d23 --- /dev/null +++ b/vendor/github.com/xo/terminfo/README.md @@ -0,0 +1,139 @@ +# About terminfo [![GoDoc][1]][2] + +Package `terminfo` provides a pure-Go implementation of reading information +from the terminfo database. + +`terminfo` is meant as a replacement for `ncurses` in simple Go programs. + +## Installing + +Install in the usual Go way: + +```sh +$ go get -u github.com/xo/terminfo +``` + +## Using + +Please see the [GoDoc API listing][2] for more information on using `terminfo`. + +```go +// _examples/simple/main.go +package main + +import ( + "bytes" + "fmt" + "log" + "os" + "os/signal" + "strings" + "sync" + "syscall" + + "github.com/xo/terminfo" +) + +func main() { + //r := rand.New(nil) + + // load terminfo + ti, err := terminfo.LoadFromEnv() + if err != nil { + log.Fatal(err) + } + + // cleanup + defer func() { + err := recover() + termreset(ti) + if err != nil { + log.Fatal(err) + } + }() + + terminit(ti) + termtitle(ti, "simple example!") + termputs(ti, 3, 3, "Ctrl-C to exit") + maxColors := termcolors(ti) + if maxColors > 256 { + maxColors = 256 + } + for i := 0; i < maxColors; i++ { + termputs(ti, 5+i/16, 5+i%16, ti.Colorf(i, 0, "█")) + } + + // wait for signal + sigs := make(chan os.Signal, 1) + signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) + <-sigs +} + +// terminit initializes the special CA mode on the terminal, and makes the +// cursor invisible. +func terminit(ti *terminfo.Terminfo) { + buf := new(bytes.Buffer) + // set the cursor invisible + ti.Fprintf(buf, terminfo.CursorInvisible) + // enter special mode + ti.Fprintf(buf, terminfo.EnterCaMode) + // clear the screen + ti.Fprintf(buf, terminfo.ClearScreen) + os.Stdout.Write(buf.Bytes()) +} + +// termreset is the inverse of terminit. +func termreset(ti *terminfo.Terminfo) { + buf := new(bytes.Buffer) + ti.Fprintf(buf, terminfo.ExitCaMode) + ti.Fprintf(buf, terminfo.CursorNormal) + os.Stdout.Write(buf.Bytes()) +} + +// termputs puts a string at row, col, interpolating v. +func termputs(ti *terminfo.Terminfo, row, col int, s string, v ...interface{}) { + buf := new(bytes.Buffer) + ti.Fprintf(buf, terminfo.CursorAddress, row, col) + fmt.Fprintf(buf, s, v...) + os.Stdout.Write(buf.Bytes()) +} + +// sl is the status line terminfo. +var sl *terminfo.Terminfo + +// termtitle sets the window title. +func termtitle(ti *terminfo.Terminfo, s string) { + var once sync.Once + once.Do(func() { + if ti.Has(terminfo.HasStatusLine) { + return + } + // load the sl xterm if terminal is an xterm or has COLORTERM + if strings.Contains(strings.ToLower(os.Getenv("TERM")), "xterm") || os.Getenv("COLORTERM") == "truecolor" { + sl, _ = terminfo.Load("xterm+sl") + } + }) + if sl != nil { + ti = sl + } + if !ti.Has(terminfo.HasStatusLine) { + return + } + buf := new(bytes.Buffer) + ti.Fprintf(buf, terminfo.ToStatusLine) + fmt.Fprint(buf, s) + ti.Fprintf(buf, terminfo.FromStatusLine) + os.Stdout.Write(buf.Bytes()) +} + +// termcolors returns the maximum colors available for the terminal. +func termcolors(ti *terminfo.Terminfo) int { + if colors := ti.Num(terminfo.MaxColors); colors > 0 { + return colors + } + return int(terminfo.ColorLevelBasic) +} +``` + +[1]: https://godoc.org/github.com/xo/terminfo?status.svg +[2]: https://godoc.org/github.com/xo/terminfo diff --git a/vendor/github.com/xo/terminfo/caps.go b/vendor/github.com/xo/terminfo/caps.go new file mode 100644 index 00000000..e5e1d41f --- /dev/null +++ b/vendor/github.com/xo/terminfo/caps.go @@ -0,0 +1,31 @@ +package terminfo + +// BoolCapName returns the bool capability name. +func BoolCapName(i int) string { + return boolCapNames[2*i] +} + +// BoolCapNameShort returns the short bool capability name. +func BoolCapNameShort(i int) string { + return boolCapNames[2*i+1] +} + +// NumCapName returns the num capability name. +func NumCapName(i int) string { + return numCapNames[2*i] +} + +// NumCapNameShort returns the short num capability name. +func NumCapNameShort(i int) string { + return numCapNames[2*i+1] +} + +// StringCapName returns the string capability name. +func StringCapName(i int) string { + return stringCapNames[2*i] +} + +// StringCapNameShort returns the short string capability name. +func StringCapNameShort(i int) string { + return stringCapNames[2*i+1] +} diff --git a/vendor/github.com/xo/terminfo/capvals.go b/vendor/github.com/xo/terminfo/capvals.go new file mode 100644 index 00000000..0c2274e3 --- /dev/null +++ b/vendor/github.com/xo/terminfo/capvals.go @@ -0,0 +1,1525 @@ +package terminfo + +// Code generated by gen.go. DO NOT EDIT. +// Bool capabilities. +const ( + // The AutoLeftMargin [auto_left_margin, bw] bool capability indicates cub1 wraps from column 0 to last column. + AutoLeftMargin = iota + // The AutoRightMargin [auto_right_margin, am] bool capability indicates terminal has automatic margins. + AutoRightMargin + // The NoEscCtlc [no_esc_ctlc, xsb] bool capability indicates beehive (f1=escape, f2=ctrl C). + NoEscCtlc + // The CeolStandoutGlitch [ceol_standout_glitch, xhp] bool capability indicates standout not erased by overwriting (hp). + CeolStandoutGlitch + // The EatNewlineGlitch [eat_newline_glitch, xenl] bool capability indicates newline ignored after 80 cols (concept). + EatNewlineGlitch + // The EraseOverstrike [erase_overstrike, eo] bool capability indicates can erase overstrikes with a blank. + EraseOverstrike + // The GenericType [generic_type, gn] bool capability indicates generic line type. + GenericType + // The HardCopy [hard_copy, hc] bool capability indicates hardcopy terminal. + HardCopy + // The HasMetaKey [has_meta_key, km] bool capability indicates Has a meta key (i.e., sets 8th-bit). + HasMetaKey + // The HasStatusLine [has_status_line, hs] bool capability indicates has extra status line. + HasStatusLine + // The InsertNullGlitch [insert_null_glitch, in] bool capability indicates insert mode distinguishes nulls. + InsertNullGlitch + // The MemoryAbove [memory_above, da] bool capability indicates display may be retained above the screen. + MemoryAbove + // The MemoryBelow [memory_below, db] bool capability indicates display may be retained below the screen. + MemoryBelow + // The MoveInsertMode [move_insert_mode, mir] bool capability indicates safe to move while in insert mode. + MoveInsertMode + // The MoveStandoutMode [move_standout_mode, msgr] bool capability indicates safe to move while in standout mode. + MoveStandoutMode + // The OverStrike [over_strike, os] bool capability indicates terminal can overstrike. + OverStrike + // The StatusLineEscOk [status_line_esc_ok, eslok] bool capability indicates escape can be used on the status line. + StatusLineEscOk + // The DestTabsMagicSmso [dest_tabs_magic_smso, xt] bool capability indicates tabs destructive, magic so char (t1061). + DestTabsMagicSmso + // The TildeGlitch [tilde_glitch, hz] bool capability indicates cannot print ~'s (Hazeltine). + TildeGlitch + // The TransparentUnderline [transparent_underline, ul] bool capability indicates underline character overstrikes. + TransparentUnderline + // The XonXoff [xon_xoff, xon] bool capability indicates terminal uses xon/xoff handshaking. + XonXoff + // The NeedsXonXoff [needs_xon_xoff, nxon] bool capability indicates padding will not work, xon/xoff required. + NeedsXonXoff + // The PrtrSilent [prtr_silent, mc5i] bool capability indicates printer will not echo on screen. + PrtrSilent + // The HardCursor [hard_cursor, chts] bool capability indicates cursor is hard to see. + HardCursor + // The NonRevRmcup [non_rev_rmcup, nrrmc] bool capability indicates smcup does not reverse rmcup. + NonRevRmcup + // The NoPadChar [no_pad_char, npc] bool capability indicates pad character does not exist. + NoPadChar + // The NonDestScrollRegion [non_dest_scroll_region, ndscr] bool capability indicates scrolling region is non-destructive. + NonDestScrollRegion + // The CanChange [can_change, ccc] bool capability indicates terminal can re-define existing colors. + CanChange + // The BackColorErase [back_color_erase, bce] bool capability indicates screen erased with background color. + BackColorErase + // The HueLightnessSaturation [hue_lightness_saturation, hls] bool capability indicates terminal uses only HLS color notation (Tektronix). + HueLightnessSaturation + // The ColAddrGlitch [col_addr_glitch, xhpa] bool capability indicates only positive motion for hpa/mhpa caps. + ColAddrGlitch + // The CrCancelsMicroMode [cr_cancels_micro_mode, crxm] bool capability indicates using cr turns off micro mode. + CrCancelsMicroMode + // The HasPrintWheel [has_print_wheel, daisy] bool capability indicates printer needs operator to change character set. + HasPrintWheel + // The RowAddrGlitch [row_addr_glitch, xvpa] bool capability indicates only positive motion for vpa/mvpa caps. + RowAddrGlitch + // The SemiAutoRightMargin [semi_auto_right_margin, sam] bool capability indicates printing in last column causes cr. + SemiAutoRightMargin + // The CpiChangesRes [cpi_changes_res, cpix] bool capability indicates changing character pitch changes resolution. + CpiChangesRes + // The LpiChangesRes [lpi_changes_res, lpix] bool capability indicates changing line pitch changes resolution. + LpiChangesRes + // The BackspacesWithBs [backspaces_with_bs, OTbs] bool capability indicates uses ^H to move left. + BackspacesWithBs + // The CrtNoScrolling [crt_no_scrolling, OTns] bool capability indicates crt cannot scroll. + CrtNoScrolling + // The NoCorrectlyWorkingCr [no_correctly_working_cr, OTnc] bool capability indicates no way to go to start of line. + NoCorrectlyWorkingCr + // The GnuHasMetaKey [gnu_has_meta_key, OTMT] bool capability indicates has meta key. + GnuHasMetaKey + // The LinefeedIsNewline [linefeed_is_newline, OTNL] bool capability indicates move down with \n. + LinefeedIsNewline + // The HasHardwareTabs [has_hardware_tabs, OTpt] bool capability indicates has 8-char tabs invoked with ^I. + HasHardwareTabs + // The ReturnDoesClrEol [return_does_clr_eol, OTxr] bool capability indicates return clears the line. + ReturnDoesClrEol +) + +// Num capabilities. +const ( + // The Columns [columns, cols] num capability is number of columns in a line. + Columns = iota + // The InitTabs [init_tabs, it] num capability is tabs initially every # spaces. + InitTabs + // The Lines [lines, lines] num capability is number of lines on screen or page. + Lines + // The LinesOfMemory [lines_of_memory, lm] num capability is lines of memory if > line. 0 means varies. + LinesOfMemory + // The MagicCookieGlitch [magic_cookie_glitch, xmc] num capability is number of blank characters left by smso or rmso. + MagicCookieGlitch + // The PaddingBaudRate [padding_baud_rate, pb] num capability is lowest baud rate where padding needed. + PaddingBaudRate + // The VirtualTerminal [virtual_terminal, vt] num capability is virtual terminal number (CB/unix). + VirtualTerminal + // The WidthStatusLine [width_status_line, wsl] num capability is number of columns in status line. + WidthStatusLine + // The NumLabels [num_labels, nlab] num capability is number of labels on screen. + NumLabels + // The LabelHeight [label_height, lh] num capability is rows in each label. + LabelHeight + // The LabelWidth [label_width, lw] num capability is columns in each label. + LabelWidth + // The MaxAttributes [max_attributes, ma] num capability is maximum combined attributes terminal can handle. + MaxAttributes + // The MaximumWindows [maximum_windows, wnum] num capability is maximum number of definable windows. + MaximumWindows + // The MaxColors [max_colors, colors] num capability is maximum number of colors on screen. + MaxColors + // The MaxPairs [max_pairs, pairs] num capability is maximum number of color-pairs on the screen. + MaxPairs + // The NoColorVideo [no_color_video, ncv] num capability is video attributes that cannot be used with colors. + NoColorVideo + // The BufferCapacity [buffer_capacity, bufsz] num capability is numbers of bytes buffered before printing. + BufferCapacity + // The DotVertSpacing [dot_vert_spacing, spinv] num capability is spacing of pins vertically in pins per inch. + DotVertSpacing + // The DotHorzSpacing [dot_horz_spacing, spinh] num capability is spacing of dots horizontally in dots per inch. + DotHorzSpacing + // The MaxMicroAddress [max_micro_address, maddr] num capability is maximum value in micro_..._address. + MaxMicroAddress + // The MaxMicroJump [max_micro_jump, mjump] num capability is maximum value in parm_..._micro. + MaxMicroJump + // The MicroColSize [micro_col_size, mcs] num capability is character step size when in micro mode. + MicroColSize + // The MicroLineSize [micro_line_size, mls] num capability is line step size when in micro mode. + MicroLineSize + // The NumberOfPins [number_of_pins, npins] num capability is numbers of pins in print-head. + NumberOfPins + // The OutputResChar [output_res_char, orc] num capability is horizontal resolution in units per line. + OutputResChar + // The OutputResLine [output_res_line, orl] num capability is vertical resolution in units per line. + OutputResLine + // The OutputResHorzInch [output_res_horz_inch, orhi] num capability is horizontal resolution in units per inch. + OutputResHorzInch + // The OutputResVertInch [output_res_vert_inch, orvi] num capability is vertical resolution in units per inch. + OutputResVertInch + // The PrintRate [print_rate, cps] num capability is print rate in characters per second. + PrintRate + // The WideCharSize [wide_char_size, widcs] num capability is character step size when in double wide mode. + WideCharSize + // The Buttons [buttons, btns] num capability is number of buttons on mouse. + Buttons + // The BitImageEntwining [bit_image_entwining, bitwin] num capability is number of passes for each bit-image row. + BitImageEntwining + // The BitImageType [bit_image_type, bitype] num capability is type of bit-image device. + BitImageType + // The MagicCookieGlitchUl [magic_cookie_glitch_ul, OTug] num capability is number of blanks left by ul. + MagicCookieGlitchUl + // The CarriageReturnDelay [carriage_return_delay, OTdC] num capability is pad needed for CR. + CarriageReturnDelay + // The NewLineDelay [new_line_delay, OTdN] num capability is pad needed for LF. + NewLineDelay + // The BackspaceDelay [backspace_delay, OTdB] num capability is padding required for ^H. + BackspaceDelay + // The HorizontalTabDelay [horizontal_tab_delay, OTdT] num capability is padding required for ^I. + HorizontalTabDelay + // The NumberOfFunctionKeys [number_of_function_keys, OTkn] num capability is count of function keys. + NumberOfFunctionKeys +) + +// String capabilities. +const ( + // The BackTab [back_tab, cbt] string capability is the back tab (P). + BackTab = iota + // The Bell [bell, bel] string capability is the audible signal (bell) (P). + Bell + // The CarriageReturn [carriage_return, cr] string capability is the carriage return (P*) (P*). + CarriageReturn + // The ChangeScrollRegion [change_scroll_region, csr] string capability is the change region to line #1 to line #2 (P). + ChangeScrollRegion + // The ClearAllTabs [clear_all_tabs, tbc] string capability is the clear all tab stops (P). + ClearAllTabs + // The ClearScreen [clear_screen, clear] string capability is the clear screen and home cursor (P*). + ClearScreen + // The ClrEol [clr_eol, el] string capability is the clear to end of line (P). + ClrEol + // The ClrEos [clr_eos, ed] string capability is the clear to end of screen (P*). + ClrEos + // The ColumnAddress [column_address, hpa] string capability is the horizontal position #1, absolute (P). + ColumnAddress + // The CommandCharacter [command_character, cmdch] string capability is the terminal settable cmd character in prototype !?. + CommandCharacter + // The CursorAddress [cursor_address, cup] string capability is the move to row #1 columns #2. + CursorAddress + // The CursorDown [cursor_down, cud1] string capability is the down one line. + CursorDown + // The CursorHome [cursor_home, home] string capability is the home cursor (if no cup). + CursorHome + // The CursorInvisible [cursor_invisible, civis] string capability is the make cursor invisible. + CursorInvisible + // The CursorLeft [cursor_left, cub1] string capability is the move left one space. + CursorLeft + // The CursorMemAddress [cursor_mem_address, mrcup] string capability is the memory relative cursor addressing, move to row #1 columns #2. + CursorMemAddress + // The CursorNormal [cursor_normal, cnorm] string capability is the make cursor appear normal (undo civis/cvvis). + CursorNormal + // The CursorRight [cursor_right, cuf1] string capability is the non-destructive space (move right one space). + CursorRight + // The CursorToLl [cursor_to_ll, ll] string capability is the last line, first column (if no cup). + CursorToLl + // The CursorUp [cursor_up, cuu1] string capability is the up one line. + CursorUp + // The CursorVisible [cursor_visible, cvvis] string capability is the make cursor very visible. + CursorVisible + // The DeleteCharacter [delete_character, dch1] string capability is the delete character (P*). + DeleteCharacter + // The DeleteLine [delete_line, dl1] string capability is the delete line (P*). + DeleteLine + // The DisStatusLine [dis_status_line, dsl] string capability is the disable status line. + DisStatusLine + // The DownHalfLine [down_half_line, hd] string capability is the half a line down. + DownHalfLine + // The EnterAltCharsetMode [enter_alt_charset_mode, smacs] string capability is the start alternate character set (P). + EnterAltCharsetMode + // The EnterBlinkMode [enter_blink_mode, blink] string capability is the turn on blinking. + EnterBlinkMode + // The EnterBoldMode [enter_bold_mode, bold] string capability is the turn on bold (extra bright) mode. + EnterBoldMode + // The EnterCaMode [enter_ca_mode, smcup] string capability is the string to start programs using cup. + EnterCaMode + // The EnterDeleteMode [enter_delete_mode, smdc] string capability is the enter delete mode. + EnterDeleteMode + // The EnterDimMode [enter_dim_mode, dim] string capability is the turn on half-bright mode. + EnterDimMode + // The EnterInsertMode [enter_insert_mode, smir] string capability is the enter insert mode. + EnterInsertMode + // The EnterSecureMode [enter_secure_mode, invis] string capability is the turn on blank mode (characters invisible). + EnterSecureMode + // The EnterProtectedMode [enter_protected_mode, prot] string capability is the turn on protected mode. + EnterProtectedMode + // The EnterReverseMode [enter_reverse_mode, rev] string capability is the turn on reverse video mode. + EnterReverseMode + // The EnterStandoutMode [enter_standout_mode, smso] string capability is the begin standout mode. + EnterStandoutMode + // The EnterUnderlineMode [enter_underline_mode, smul] string capability is the begin underline mode. + EnterUnderlineMode + // The EraseChars [erase_chars, ech] string capability is the erase #1 characters (P). + EraseChars + // The ExitAltCharsetMode [exit_alt_charset_mode, rmacs] string capability is the end alternate character set (P). + ExitAltCharsetMode + // The ExitAttributeMode [exit_attribute_mode, sgr0] string capability is the turn off all attributes. + ExitAttributeMode + // The ExitCaMode [exit_ca_mode, rmcup] string capability is the strings to end programs using cup. + ExitCaMode + // The ExitDeleteMode [exit_delete_mode, rmdc] string capability is the end delete mode. + ExitDeleteMode + // The ExitInsertMode [exit_insert_mode, rmir] string capability is the exit insert mode. + ExitInsertMode + // The ExitStandoutMode [exit_standout_mode, rmso] string capability is the exit standout mode. + ExitStandoutMode + // The ExitUnderlineMode [exit_underline_mode, rmul] string capability is the exit underline mode. + ExitUnderlineMode + // The FlashScreen [flash_screen, flash] string capability is the visible bell (may not move cursor). + FlashScreen + // The FormFeed [form_feed, ff] string capability is the hardcopy terminal page eject (P*). + FormFeed + // The FromStatusLine [from_status_line, fsl] string capability is the return from status line. + FromStatusLine + // The Init1string [init_1string, is1] string capability is the initialization string. + Init1string + // The Init2string [init_2string, is2] string capability is the initialization string. + Init2string + // The Init3string [init_3string, is3] string capability is the initialization string. + Init3string + // The InitFile [init_file, if] string capability is the name of initialization file. + InitFile + // The InsertCharacter [insert_character, ich1] string capability is the insert character (P). + InsertCharacter + // The InsertLine [insert_line, il1] string capability is the insert line (P*). + InsertLine + // The InsertPadding [insert_padding, ip] string capability is the insert padding after inserted character. + InsertPadding + // The KeyBackspace [key_backspace, kbs] string capability is the backspace key. + KeyBackspace + // The KeyCatab [key_catab, ktbc] string capability is the clear-all-tabs key. + KeyCatab + // The KeyClear [key_clear, kclr] string capability is the clear-screen or erase key. + KeyClear + // The KeyCtab [key_ctab, kctab] string capability is the clear-tab key. + KeyCtab + // The KeyDc [key_dc, kdch1] string capability is the delete-character key. + KeyDc + // The KeyDl [key_dl, kdl1] string capability is the delete-line key. + KeyDl + // The KeyDown [key_down, kcud1] string capability is the down-arrow key. + KeyDown + // The KeyEic [key_eic, krmir] string capability is the sent by rmir or smir in insert mode. + KeyEic + // The KeyEol [key_eol, kel] string capability is the clear-to-end-of-line key. + KeyEol + // The KeyEos [key_eos, ked] string capability is the clear-to-end-of-screen key. + KeyEos + // The KeyF0 [key_f0, kf0] string capability is the F0 function key. + KeyF0 + // The KeyF1 [key_f1, kf1] string capability is the F1 function key. + KeyF1 + // The KeyF10 [key_f10, kf10] string capability is the F10 function key. + KeyF10 + // The KeyF2 [key_f2, kf2] string capability is the F2 function key. + KeyF2 + // The KeyF3 [key_f3, kf3] string capability is the F3 function key. + KeyF3 + // The KeyF4 [key_f4, kf4] string capability is the F4 function key. + KeyF4 + // The KeyF5 [key_f5, kf5] string capability is the F5 function key. + KeyF5 + // The KeyF6 [key_f6, kf6] string capability is the F6 function key. + KeyF6 + // The KeyF7 [key_f7, kf7] string capability is the F7 function key. + KeyF7 + // The KeyF8 [key_f8, kf8] string capability is the F8 function key. + KeyF8 + // The KeyF9 [key_f9, kf9] string capability is the F9 function key. + KeyF9 + // The KeyHome [key_home, khome] string capability is the home key. + KeyHome + // The KeyIc [key_ic, kich1] string capability is the insert-character key. + KeyIc + // The KeyIl [key_il, kil1] string capability is the insert-line key. + KeyIl + // The KeyLeft [key_left, kcub1] string capability is the left-arrow key. + KeyLeft + // The KeyLl [key_ll, kll] string capability is the lower-left key (home down). + KeyLl + // The KeyNpage [key_npage, knp] string capability is the next-page key. + KeyNpage + // The KeyPpage [key_ppage, kpp] string capability is the previous-page key. + KeyPpage + // The KeyRight [key_right, kcuf1] string capability is the right-arrow key. + KeyRight + // The KeySf [key_sf, kind] string capability is the scroll-forward key. + KeySf + // The KeySr [key_sr, kri] string capability is the scroll-backward key. + KeySr + // The KeyStab [key_stab, khts] string capability is the set-tab key. + KeyStab + // The KeyUp [key_up, kcuu1] string capability is the up-arrow key. + KeyUp + // The KeypadLocal [keypad_local, rmkx] string capability is the leave 'keyboard_transmit' mode. + KeypadLocal + // The KeypadXmit [keypad_xmit, smkx] string capability is the enter 'keyboard_transmit' mode. + KeypadXmit + // The LabF0 [lab_f0, lf0] string capability is the label on function key f0 if not f0. + LabF0 + // The LabF1 [lab_f1, lf1] string capability is the label on function key f1 if not f1. + LabF1 + // The LabF10 [lab_f10, lf10] string capability is the label on function key f10 if not f10. + LabF10 + // The LabF2 [lab_f2, lf2] string capability is the label on function key f2 if not f2. + LabF2 + // The LabF3 [lab_f3, lf3] string capability is the label on function key f3 if not f3. + LabF3 + // The LabF4 [lab_f4, lf4] string capability is the label on function key f4 if not f4. + LabF4 + // The LabF5 [lab_f5, lf5] string capability is the label on function key f5 if not f5. + LabF5 + // The LabF6 [lab_f6, lf6] string capability is the label on function key f6 if not f6. + LabF6 + // The LabF7 [lab_f7, lf7] string capability is the label on function key f7 if not f7. + LabF7 + // The LabF8 [lab_f8, lf8] string capability is the label on function key f8 if not f8. + LabF8 + // The LabF9 [lab_f9, lf9] string capability is the label on function key f9 if not f9. + LabF9 + // The MetaOff [meta_off, rmm] string capability is the turn off meta mode. + MetaOff + // The MetaOn [meta_on, smm] string capability is the turn on meta mode (8th-bit on). + MetaOn + // The Newline [newline, nel] string capability is the newline (behave like cr followed by lf). + Newline + // The PadChar [pad_char, pad] string capability is the padding char (instead of null). + PadChar + // The ParmDch [parm_dch, dch] string capability is the delete #1 characters (P*). + ParmDch + // The ParmDeleteLine [parm_delete_line, dl] string capability is the delete #1 lines (P*). + ParmDeleteLine + // The ParmDownCursor [parm_down_cursor, cud] string capability is the down #1 lines (P*). + ParmDownCursor + // The ParmIch [parm_ich, ich] string capability is the insert #1 characters (P*). + ParmIch + // The ParmIndex [parm_index, indn] string capability is the scroll forward #1 lines (P). + ParmIndex + // The ParmInsertLine [parm_insert_line, il] string capability is the insert #1 lines (P*). + ParmInsertLine + // The ParmLeftCursor [parm_left_cursor, cub] string capability is the move #1 characters to the left (P). + ParmLeftCursor + // The ParmRightCursor [parm_right_cursor, cuf] string capability is the move #1 characters to the right (P*). + ParmRightCursor + // The ParmRindex [parm_rindex, rin] string capability is the scroll back #1 lines (P). + ParmRindex + // The ParmUpCursor [parm_up_cursor, cuu] string capability is the up #1 lines (P*). + ParmUpCursor + // The PkeyKey [pkey_key, pfkey] string capability is the program function key #1 to type string #2. + PkeyKey + // The PkeyLocal [pkey_local, pfloc] string capability is the program function key #1 to execute string #2. + PkeyLocal + // The PkeyXmit [pkey_xmit, pfx] string capability is the program function key #1 to transmit string #2. + PkeyXmit + // The PrintScreen [print_screen, mc0] string capability is the print contents of screen. + PrintScreen + // The PrtrOff [prtr_off, mc4] string capability is the turn off printer. + PrtrOff + // The PrtrOn [prtr_on, mc5] string capability is the turn on printer. + PrtrOn + // The RepeatChar [repeat_char, rep] string capability is the repeat char #1 #2 times (P*). + RepeatChar + // The Reset1string [reset_1string, rs1] string capability is the reset string. + Reset1string + // The Reset2string [reset_2string, rs2] string capability is the reset string. + Reset2string + // The Reset3string [reset_3string, rs3] string capability is the reset string. + Reset3string + // The ResetFile [reset_file, rf] string capability is the name of reset file. + ResetFile + // The RestoreCursor [restore_cursor, rc] string capability is the restore cursor to position of last save_cursor. + RestoreCursor + // The RowAddress [row_address, vpa] string capability is the vertical position #1 absolute (P). + RowAddress + // The SaveCursor [save_cursor, sc] string capability is the save current cursor position (P). + SaveCursor + // The ScrollForward [scroll_forward, ind] string capability is the scroll text up (P). + ScrollForward + // The ScrollReverse [scroll_reverse, ri] string capability is the scroll text down (P). + ScrollReverse + // The SetAttributes [set_attributes, sgr] string capability is the define video attributes #1-#9 (PG9). + SetAttributes + // The SetTab [set_tab, hts] string capability is the set a tab in every row, current columns. + SetTab + // The SetWindow [set_window, wind] string capability is the current window is lines #1-#2 cols #3-#4. + SetWindow + // The Tab [tab, ht] string capability is the tab to next 8-space hardware tab stop. + Tab + // The ToStatusLine [to_status_line, tsl] string capability is the move to status line, column #1. + ToStatusLine + // The UnderlineChar [underline_char, uc] string capability is the underline char and move past it. + UnderlineChar + // The UpHalfLine [up_half_line, hu] string capability is the half a line up. + UpHalfLine + // The InitProg [init_prog, iprog] string capability is the path name of program for initialization. + InitProg + // The KeyA1 [key_a1, ka1] string capability is the upper left of keypad. + KeyA1 + // The KeyA3 [key_a3, ka3] string capability is the upper right of keypad. + KeyA3 + // The KeyB2 [key_b2, kb2] string capability is the center of keypad. + KeyB2 + // The KeyC1 [key_c1, kc1] string capability is the lower left of keypad. + KeyC1 + // The KeyC3 [key_c3, kc3] string capability is the lower right of keypad. + KeyC3 + // The PrtrNon [prtr_non, mc5p] string capability is the turn on printer for #1 bytes. + PrtrNon + // The CharPadding [char_padding, rmp] string capability is the like ip but when in insert mode. + CharPadding + // The AcsChars [acs_chars, acsc] string capability is the graphics charset pairs, based on vt100. + AcsChars + // The PlabNorm [plab_norm, pln] string capability is the program label #1 to show string #2. + PlabNorm + // The KeyBtab [key_btab, kcbt] string capability is the back-tab key. + KeyBtab + // The EnterXonMode [enter_xon_mode, smxon] string capability is the turn on xon/xoff handshaking. + EnterXonMode + // The ExitXonMode [exit_xon_mode, rmxon] string capability is the turn off xon/xoff handshaking. + ExitXonMode + // The EnterAmMode [enter_am_mode, smam] string capability is the turn on automatic margins. + EnterAmMode + // The ExitAmMode [exit_am_mode, rmam] string capability is the turn off automatic margins. + ExitAmMode + // The XonCharacter [xon_character, xonc] string capability is the XON character. + XonCharacter + // The XoffCharacter [xoff_character, xoffc] string capability is the XOFF character. + XoffCharacter + // The EnaAcs [ena_acs, enacs] string capability is the enable alternate char set. + EnaAcs + // The LabelOn [label_on, smln] string capability is the turn on soft labels. + LabelOn + // The LabelOff [label_off, rmln] string capability is the turn off soft labels. + LabelOff + // The KeyBeg [key_beg, kbeg] string capability is the begin key. + KeyBeg + // The KeyCancel [key_cancel, kcan] string capability is the cancel key. + KeyCancel + // The KeyClose [key_close, kclo] string capability is the close key. + KeyClose + // The KeyCommand [key_command, kcmd] string capability is the command key. + KeyCommand + // The KeyCopy [key_copy, kcpy] string capability is the copy key. + KeyCopy + // The KeyCreate [key_create, kcrt] string capability is the create key. + KeyCreate + // The KeyEnd [key_end, kend] string capability is the end key. + KeyEnd + // The KeyEnter [key_enter, kent] string capability is the enter/send key. + KeyEnter + // The KeyExit [key_exit, kext] string capability is the exit key. + KeyExit + // The KeyFind [key_find, kfnd] string capability is the find key. + KeyFind + // The KeyHelp [key_help, khlp] string capability is the help key. + KeyHelp + // The KeyMark [key_mark, kmrk] string capability is the mark key. + KeyMark + // The KeyMessage [key_message, kmsg] string capability is the message key. + KeyMessage + // The KeyMove [key_move, kmov] string capability is the move key. + KeyMove + // The KeyNext [key_next, knxt] string capability is the next key. + KeyNext + // The KeyOpen [key_open, kopn] string capability is the open key. + KeyOpen + // The KeyOptions [key_options, kopt] string capability is the options key. + KeyOptions + // The KeyPrevious [key_previous, kprv] string capability is the previous key. + KeyPrevious + // The KeyPrint [key_print, kprt] string capability is the print key. + KeyPrint + // The KeyRedo [key_redo, krdo] string capability is the redo key. + KeyRedo + // The KeyReference [key_reference, kref] string capability is the reference key. + KeyReference + // The KeyRefresh [key_refresh, krfr] string capability is the refresh key. + KeyRefresh + // The KeyReplace [key_replace, krpl] string capability is the replace key. + KeyReplace + // The KeyRestart [key_restart, krst] string capability is the restart key. + KeyRestart + // The KeyResume [key_resume, kres] string capability is the resume key. + KeyResume + // The KeySave [key_save, ksav] string capability is the save key. + KeySave + // The KeySuspend [key_suspend, kspd] string capability is the suspend key. + KeySuspend + // The KeyUndo [key_undo, kund] string capability is the undo key. + KeyUndo + // The KeySbeg [key_sbeg, kBEG] string capability is the shifted begin key. + KeySbeg + // The KeyScancel [key_scancel, kCAN] string capability is the shifted cancel key. + KeyScancel + // The KeyScommand [key_scommand, kCMD] string capability is the shifted command key. + KeyScommand + // The KeyScopy [key_scopy, kCPY] string capability is the shifted copy key. + KeyScopy + // The KeyScreate [key_screate, kCRT] string capability is the shifted create key. + KeyScreate + // The KeySdc [key_sdc, kDC] string capability is the shifted delete-character key. + KeySdc + // The KeySdl [key_sdl, kDL] string capability is the shifted delete-line key. + KeySdl + // The KeySelect [key_select, kslt] string capability is the select key. + KeySelect + // The KeySend [key_send, kEND] string capability is the shifted end key. + KeySend + // The KeySeol [key_seol, kEOL] string capability is the shifted clear-to-end-of-line key. + KeySeol + // The KeySexit [key_sexit, kEXT] string capability is the shifted exit key. + KeySexit + // The KeySfind [key_sfind, kFND] string capability is the shifted find key. + KeySfind + // The KeyShelp [key_shelp, kHLP] string capability is the shifted help key. + KeyShelp + // The KeyShome [key_shome, kHOM] string capability is the shifted home key. + KeyShome + // The KeySic [key_sic, kIC] string capability is the shifted insert-character key. + KeySic + // The KeySleft [key_sleft, kLFT] string capability is the shifted left-arrow key. + KeySleft + // The KeySmessage [key_smessage, kMSG] string capability is the shifted message key. + KeySmessage + // The KeySmove [key_smove, kMOV] string capability is the shifted move key. + KeySmove + // The KeySnext [key_snext, kNXT] string capability is the shifted next key. + KeySnext + // The KeySoptions [key_soptions, kOPT] string capability is the shifted options key. + KeySoptions + // The KeySprevious [key_sprevious, kPRV] string capability is the shifted previous key. + KeySprevious + // The KeySprint [key_sprint, kPRT] string capability is the shifted print key. + KeySprint + // The KeySredo [key_sredo, kRDO] string capability is the shifted redo key. + KeySredo + // The KeySreplace [key_sreplace, kRPL] string capability is the shifted replace key. + KeySreplace + // The KeySright [key_sright, kRIT] string capability is the shifted right-arrow key. + KeySright + // The KeySrsume [key_srsume, kRES] string capability is the shifted resume key. + KeySrsume + // The KeySsave [key_ssave, kSAV] string capability is the shifted save key. + KeySsave + // The KeySsuspend [key_ssuspend, kSPD] string capability is the shifted suspend key. + KeySsuspend + // The KeySundo [key_sundo, kUND] string capability is the shifted undo key. + KeySundo + // The ReqForInput [req_for_input, rfi] string capability is the send next input char (for ptys). + ReqForInput + // The KeyF11 [key_f11, kf11] string capability is the F11 function key. + KeyF11 + // The KeyF12 [key_f12, kf12] string capability is the F12 function key. + KeyF12 + // The KeyF13 [key_f13, kf13] string capability is the F13 function key. + KeyF13 + // The KeyF14 [key_f14, kf14] string capability is the F14 function key. + KeyF14 + // The KeyF15 [key_f15, kf15] string capability is the F15 function key. + KeyF15 + // The KeyF16 [key_f16, kf16] string capability is the F16 function key. + KeyF16 + // The KeyF17 [key_f17, kf17] string capability is the F17 function key. + KeyF17 + // The KeyF18 [key_f18, kf18] string capability is the F18 function key. + KeyF18 + // The KeyF19 [key_f19, kf19] string capability is the F19 function key. + KeyF19 + // The KeyF20 [key_f20, kf20] string capability is the F20 function key. + KeyF20 + // The KeyF21 [key_f21, kf21] string capability is the F21 function key. + KeyF21 + // The KeyF22 [key_f22, kf22] string capability is the F22 function key. + KeyF22 + // The KeyF23 [key_f23, kf23] string capability is the F23 function key. + KeyF23 + // The KeyF24 [key_f24, kf24] string capability is the F24 function key. + KeyF24 + // The KeyF25 [key_f25, kf25] string capability is the F25 function key. + KeyF25 + // The KeyF26 [key_f26, kf26] string capability is the F26 function key. + KeyF26 + // The KeyF27 [key_f27, kf27] string capability is the F27 function key. + KeyF27 + // The KeyF28 [key_f28, kf28] string capability is the F28 function key. + KeyF28 + // The KeyF29 [key_f29, kf29] string capability is the F29 function key. + KeyF29 + // The KeyF30 [key_f30, kf30] string capability is the F30 function key. + KeyF30 + // The KeyF31 [key_f31, kf31] string capability is the F31 function key. + KeyF31 + // The KeyF32 [key_f32, kf32] string capability is the F32 function key. + KeyF32 + // The KeyF33 [key_f33, kf33] string capability is the F33 function key. + KeyF33 + // The KeyF34 [key_f34, kf34] string capability is the F34 function key. + KeyF34 + // The KeyF35 [key_f35, kf35] string capability is the F35 function key. + KeyF35 + // The KeyF36 [key_f36, kf36] string capability is the F36 function key. + KeyF36 + // The KeyF37 [key_f37, kf37] string capability is the F37 function key. + KeyF37 + // The KeyF38 [key_f38, kf38] string capability is the F38 function key. + KeyF38 + // The KeyF39 [key_f39, kf39] string capability is the F39 function key. + KeyF39 + // The KeyF40 [key_f40, kf40] string capability is the F40 function key. + KeyF40 + // The KeyF41 [key_f41, kf41] string capability is the F41 function key. + KeyF41 + // The KeyF42 [key_f42, kf42] string capability is the F42 function key. + KeyF42 + // The KeyF43 [key_f43, kf43] string capability is the F43 function key. + KeyF43 + // The KeyF44 [key_f44, kf44] string capability is the F44 function key. + KeyF44 + // The KeyF45 [key_f45, kf45] string capability is the F45 function key. + KeyF45 + // The KeyF46 [key_f46, kf46] string capability is the F46 function key. + KeyF46 + // The KeyF47 [key_f47, kf47] string capability is the F47 function key. + KeyF47 + // The KeyF48 [key_f48, kf48] string capability is the F48 function key. + KeyF48 + // The KeyF49 [key_f49, kf49] string capability is the F49 function key. + KeyF49 + // The KeyF50 [key_f50, kf50] string capability is the F50 function key. + KeyF50 + // The KeyF51 [key_f51, kf51] string capability is the F51 function key. + KeyF51 + // The KeyF52 [key_f52, kf52] string capability is the F52 function key. + KeyF52 + // The KeyF53 [key_f53, kf53] string capability is the F53 function key. + KeyF53 + // The KeyF54 [key_f54, kf54] string capability is the F54 function key. + KeyF54 + // The KeyF55 [key_f55, kf55] string capability is the F55 function key. + KeyF55 + // The KeyF56 [key_f56, kf56] string capability is the F56 function key. + KeyF56 + // The KeyF57 [key_f57, kf57] string capability is the F57 function key. + KeyF57 + // The KeyF58 [key_f58, kf58] string capability is the F58 function key. + KeyF58 + // The KeyF59 [key_f59, kf59] string capability is the F59 function key. + KeyF59 + // The KeyF60 [key_f60, kf60] string capability is the F60 function key. + KeyF60 + // The KeyF61 [key_f61, kf61] string capability is the F61 function key. + KeyF61 + // The KeyF62 [key_f62, kf62] string capability is the F62 function key. + KeyF62 + // The KeyF63 [key_f63, kf63] string capability is the F63 function key. + KeyF63 + // The ClrBol [clr_bol, el1] string capability is the Clear to beginning of line. + ClrBol + // The ClearMargins [clear_margins, mgc] string capability is the clear right and left soft margins. + ClearMargins + // The SetLeftMargin [set_left_margin, smgl] string capability is the set left soft margin at current column. (ML is not in BSD termcap). + SetLeftMargin + // The SetRightMargin [set_right_margin, smgr] string capability is the set right soft margin at current column. + SetRightMargin + // The LabelFormat [label_format, fln] string capability is the label format. + LabelFormat + // The SetClock [set_clock, sclk] string capability is the set clock, #1 hrs #2 mins #3 secs. + SetClock + // The DisplayClock [display_clock, dclk] string capability is the display clock. + DisplayClock + // The RemoveClock [remove_clock, rmclk] string capability is the remove clock. + RemoveClock + // The CreateWindow [create_window, cwin] string capability is the define a window #1 from #2,#3 to #4,#5. + CreateWindow + // The GotoWindow [goto_window, wingo] string capability is the go to window #1. + GotoWindow + // The Hangup [hangup, hup] string capability is the hang-up phone. + Hangup + // The DialPhone [dial_phone, dial] string capability is the dial number #1. + DialPhone + // The QuickDial [quick_dial, qdial] string capability is the dial number #1 without checking. + QuickDial + // The Tone [tone, tone] string capability is the select touch tone dialing. + Tone + // The Pulse [pulse, pulse] string capability is the select pulse dialing. + Pulse + // The FlashHook [flash_hook, hook] string capability is the flash switch hook. + FlashHook + // The FixedPause [fixed_pause, pause] string capability is the pause for 2-3 seconds. + FixedPause + // The WaitTone [wait_tone, wait] string capability is the wait for dial-tone. + WaitTone + // The User0 [user0, u0] string capability is the User string #0. + User0 + // The User1 [user1, u1] string capability is the User string #1. + User1 + // The User2 [user2, u2] string capability is the User string #2. + User2 + // The User3 [user3, u3] string capability is the User string #3. + User3 + // The User4 [user4, u4] string capability is the User string #4. + User4 + // The User5 [user5, u5] string capability is the User string #5. + User5 + // The User6 [user6, u6] string capability is the User string #6. + User6 + // The User7 [user7, u7] string capability is the User string #7. + User7 + // The User8 [user8, u8] string capability is the User string #8. + User8 + // The User9 [user9, u9] string capability is the User string #9. + User9 + // The OrigPair [orig_pair, op] string capability is the Set default pair to its original value. + OrigPair + // The OrigColors [orig_colors, oc] string capability is the Set all color pairs to the original ones. + OrigColors + // The InitializeColor [initialize_color, initc] string capability is the initialize color #1 to (#2,#3,#4). + InitializeColor + // The InitializePair [initialize_pair, initp] string capability is the Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7). + InitializePair + // The SetColorPair [set_color_pair, scp] string capability is the Set current color pair to #1. + SetColorPair + // The SetForeground [set_foreground, setf] string capability is the Set foreground color #1. + SetForeground + // The SetBackground [set_background, setb] string capability is the Set background color #1. + SetBackground + // The ChangeCharPitch [change_char_pitch, cpi] string capability is the Change number of characters per inch to #1. + ChangeCharPitch + // The ChangeLinePitch [change_line_pitch, lpi] string capability is the Change number of lines per inch to #1. + ChangeLinePitch + // The ChangeResHorz [change_res_horz, chr] string capability is the Change horizontal resolution to #1. + ChangeResHorz + // The ChangeResVert [change_res_vert, cvr] string capability is the Change vertical resolution to #1. + ChangeResVert + // The DefineChar [define_char, defc] string capability is the Define a character #1, #2 dots wide, descender #3. + DefineChar + // The EnterDoublewideMode [enter_doublewide_mode, swidm] string capability is the Enter double-wide mode. + EnterDoublewideMode + // The EnterDraftQuality [enter_draft_quality, sdrfq] string capability is the Enter draft-quality mode. + EnterDraftQuality + // The EnterItalicsMode [enter_italics_mode, sitm] string capability is the Enter italic mode. + EnterItalicsMode + // The EnterLeftwardMode [enter_leftward_mode, slm] string capability is the Start leftward carriage motion. + EnterLeftwardMode + // The EnterMicroMode [enter_micro_mode, smicm] string capability is the Start micro-motion mode. + EnterMicroMode + // The EnterNearLetterQuality [enter_near_letter_quality, snlq] string capability is the Enter NLQ mode. + EnterNearLetterQuality + // The EnterNormalQuality [enter_normal_quality, snrmq] string capability is the Enter normal-quality mode. + EnterNormalQuality + // The EnterShadowMode [enter_shadow_mode, sshm] string capability is the Enter shadow-print mode. + EnterShadowMode + // The EnterSubscriptMode [enter_subscript_mode, ssubm] string capability is the Enter subscript mode. + EnterSubscriptMode + // The EnterSuperscriptMode [enter_superscript_mode, ssupm] string capability is the Enter superscript mode. + EnterSuperscriptMode + // The EnterUpwardMode [enter_upward_mode, sum] string capability is the Start upward carriage motion. + EnterUpwardMode + // The ExitDoublewideMode [exit_doublewide_mode, rwidm] string capability is the End double-wide mode. + ExitDoublewideMode + // The ExitItalicsMode [exit_italics_mode, ritm] string capability is the End italic mode. + ExitItalicsMode + // The ExitLeftwardMode [exit_leftward_mode, rlm] string capability is the End left-motion mode. + ExitLeftwardMode + // The ExitMicroMode [exit_micro_mode, rmicm] string capability is the End micro-motion mode. + ExitMicroMode + // The ExitShadowMode [exit_shadow_mode, rshm] string capability is the End shadow-print mode. + ExitShadowMode + // The ExitSubscriptMode [exit_subscript_mode, rsubm] string capability is the End subscript mode. + ExitSubscriptMode + // The ExitSuperscriptMode [exit_superscript_mode, rsupm] string capability is the End superscript mode. + ExitSuperscriptMode + // The ExitUpwardMode [exit_upward_mode, rum] string capability is the End reverse character motion. + ExitUpwardMode + // The MicroColumnAddress [micro_column_address, mhpa] string capability is the Like column_address in micro mode. + MicroColumnAddress + // The MicroDown [micro_down, mcud1] string capability is the Like cursor_down in micro mode. + MicroDown + // The MicroLeft [micro_left, mcub1] string capability is the Like cursor_left in micro mode. + MicroLeft + // The MicroRight [micro_right, mcuf1] string capability is the Like cursor_right in micro mode. + MicroRight + // The MicroRowAddress [micro_row_address, mvpa] string capability is the Like row_address #1 in micro mode. + MicroRowAddress + // The MicroUp [micro_up, mcuu1] string capability is the Like cursor_up in micro mode. + MicroUp + // The OrderOfPins [order_of_pins, porder] string capability is the Match software bits to print-head pins. + OrderOfPins + // The ParmDownMicro [parm_down_micro, mcud] string capability is the Like parm_down_cursor in micro mode. + ParmDownMicro + // The ParmLeftMicro [parm_left_micro, mcub] string capability is the Like parm_left_cursor in micro mode. + ParmLeftMicro + // The ParmRightMicro [parm_right_micro, mcuf] string capability is the Like parm_right_cursor in micro mode. + ParmRightMicro + // The ParmUpMicro [parm_up_micro, mcuu] string capability is the Like parm_up_cursor in micro mode. + ParmUpMicro + // The SelectCharSet [select_char_set, scs] string capability is the Select character set, #1. + SelectCharSet + // The SetBottomMargin [set_bottom_margin, smgb] string capability is the Set bottom margin at current line. + SetBottomMargin + // The SetBottomMarginParm [set_bottom_margin_parm, smgbp] string capability is the Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom. + SetBottomMarginParm + // The SetLeftMarginParm [set_left_margin_parm, smglp] string capability is the Set left (right) margin at column #1. + SetLeftMarginParm + // The SetRightMarginParm [set_right_margin_parm, smgrp] string capability is the Set right margin at column #1. + SetRightMarginParm + // The SetTopMargin [set_top_margin, smgt] string capability is the Set top margin at current line. + SetTopMargin + // The SetTopMarginParm [set_top_margin_parm, smgtp] string capability is the Set top (bottom) margin at row #1. + SetTopMarginParm + // The StartBitImage [start_bit_image, sbim] string capability is the Start printing bit image graphics. + StartBitImage + // The StartCharSetDef [start_char_set_def, scsd] string capability is the Start character set definition #1, with #2 characters in the set. + StartCharSetDef + // The StopBitImage [stop_bit_image, rbim] string capability is the Stop printing bit image graphics. + StopBitImage + // The StopCharSetDef [stop_char_set_def, rcsd] string capability is the End definition of character set #1. + StopCharSetDef + // The SubscriptCharacters [subscript_characters, subcs] string capability is the List of subscriptable characters. + SubscriptCharacters + // The SuperscriptCharacters [superscript_characters, supcs] string capability is the List of superscriptable characters. + SuperscriptCharacters + // The TheseCauseCr [these_cause_cr, docr] string capability is the Printing any of these characters causes CR. + TheseCauseCr + // The ZeroMotion [zero_motion, zerom] string capability is the No motion for subsequent character. + ZeroMotion + // The CharSetNames [char_set_names, csnm] string capability is the Produce #1'th item from list of character set names. + CharSetNames + // The KeyMouse [key_mouse, kmous] string capability is the Mouse event has occurred. + KeyMouse + // The MouseInfo [mouse_info, minfo] string capability is the Mouse status information. + MouseInfo + // The ReqMousePos [req_mouse_pos, reqmp] string capability is the Request mouse position. + ReqMousePos + // The GetMouse [get_mouse, getm] string capability is the Curses should get button events, parameter #1 not documented. + GetMouse + // The SetAForeground [set_a_foreground, setaf] string capability is the Set foreground color to #1, using ANSI escape. + SetAForeground + // The SetABackground [set_a_background, setab] string capability is the Set background color to #1, using ANSI escape. + SetABackground + // The PkeyPlab [pkey_plab, pfxl] string capability is the Program function key #1 to type string #2 and show string #3. + PkeyPlab + // The DeviceType [device_type, devt] string capability is the Indicate language/codeset support. + DeviceType + // The CodeSetInit [code_set_init, csin] string capability is the Init sequence for multiple codesets. + CodeSetInit + // The Set0DesSeq [set0_des_seq, s0ds] string capability is the Shift to codeset 0 (EUC set 0, ASCII). + Set0DesSeq + // The Set1DesSeq [set1_des_seq, s1ds] string capability is the Shift to codeset 1. + Set1DesSeq + // The Set2DesSeq [set2_des_seq, s2ds] string capability is the Shift to codeset 2. + Set2DesSeq + // The Set3DesSeq [set3_des_seq, s3ds] string capability is the Shift to codeset 3. + Set3DesSeq + // The SetLrMargin [set_lr_margin, smglr] string capability is the Set both left and right margins to #1, #2. (ML is not in BSD termcap). + SetLrMargin + // The SetTbMargin [set_tb_margin, smgtb] string capability is the Sets both top and bottom margins to #1, #2. + SetTbMargin + // The BitImageRepeat [bit_image_repeat, birep] string capability is the Repeat bit image cell #1 #2 times. + BitImageRepeat + // The BitImageNewline [bit_image_newline, binel] string capability is the Move to next row of the bit image. + BitImageNewline + // The BitImageCarriageReturn [bit_image_carriage_return, bicr] string capability is the Move to beginning of same row. + BitImageCarriageReturn + // The ColorNames [color_names, colornm] string capability is the Give name for color #1. + ColorNames + // The DefineBitImageRegion [define_bit_image_region, defbi] string capability is the Define rectangular bit image region. + DefineBitImageRegion + // The EndBitImageRegion [end_bit_image_region, endbi] string capability is the End a bit-image region. + EndBitImageRegion + // The SetColorBand [set_color_band, setcolor] string capability is the Change to ribbon color #1. + SetColorBand + // The SetPageLength [set_page_length, slines] string capability is the Set page length to #1 lines. + SetPageLength + // The DisplayPcChar [display_pc_char, dispc] string capability is the Display PC character #1. + DisplayPcChar + // The EnterPcCharsetMode [enter_pc_charset_mode, smpch] string capability is the Enter PC character display mode. + EnterPcCharsetMode + // The ExitPcCharsetMode [exit_pc_charset_mode, rmpch] string capability is the Exit PC character display mode. + ExitPcCharsetMode + // The EnterScancodeMode [enter_scancode_mode, smsc] string capability is the Enter PC scancode mode. + EnterScancodeMode + // The ExitScancodeMode [exit_scancode_mode, rmsc] string capability is the Exit PC scancode mode. + ExitScancodeMode + // The PcTermOptions [pc_term_options, pctrm] string capability is the PC terminal options. + PcTermOptions + // The ScancodeEscape [scancode_escape, scesc] string capability is the Escape for scancode emulation. + ScancodeEscape + // The AltScancodeEsc [alt_scancode_esc, scesa] string capability is the Alternate escape for scancode emulation. + AltScancodeEsc + // The EnterHorizontalHlMode [enter_horizontal_hl_mode, ehhlm] string capability is the Enter horizontal highlight mode. + EnterHorizontalHlMode + // The EnterLeftHlMode [enter_left_hl_mode, elhlm] string capability is the Enter left highlight mode. + EnterLeftHlMode + // The EnterLowHlMode [enter_low_hl_mode, elohlm] string capability is the Enter low highlight mode. + EnterLowHlMode + // The EnterRightHlMode [enter_right_hl_mode, erhlm] string capability is the Enter right highlight mode. + EnterRightHlMode + // The EnterTopHlMode [enter_top_hl_mode, ethlm] string capability is the Enter top highlight mode. + EnterTopHlMode + // The EnterVerticalHlMode [enter_vertical_hl_mode, evhlm] string capability is the Enter vertical highlight mode. + EnterVerticalHlMode + // The SetAAttributes [set_a_attributes, sgr1] string capability is the Define second set of video attributes #1-#6. + SetAAttributes + // The SetPglenInch [set_pglen_inch, slength] string capability is the Set page length to #1 hundredth of an inch (some implementations use sL for termcap). + SetPglenInch + // The TermcapInit2 [termcap_init2, OTi2] string capability is the secondary initialization string. + TermcapInit2 + // The TermcapReset [termcap_reset, OTrs] string capability is the terminal reset string. + TermcapReset + // The LinefeedIfNotLf [linefeed_if_not_lf, OTnl] string capability is the use to move down. + LinefeedIfNotLf + // The BackspaceIfNotBs [backspace_if_not_bs, OTbc] string capability is the move left, if not ^H. + BackspaceIfNotBs + // The OtherNonFunctionKeys [other_non_function_keys, OTko] string capability is the list of self-mapped keycaps. + OtherNonFunctionKeys + // The ArrowKeyMap [arrow_key_map, OTma] string capability is the map motion-keys for vi version 2. + ArrowKeyMap + // The AcsUlcorner [acs_ulcorner, OTG2] string capability is the single upper left. + AcsUlcorner + // The AcsLlcorner [acs_llcorner, OTG3] string capability is the single lower left. + AcsLlcorner + // The AcsUrcorner [acs_urcorner, OTG1] string capability is the single upper right. + AcsUrcorner + // The AcsLrcorner [acs_lrcorner, OTG4] string capability is the single lower right. + AcsLrcorner + // The AcsLtee [acs_ltee, OTGR] string capability is the tee pointing right. + AcsLtee + // The AcsRtee [acs_rtee, OTGL] string capability is the tee pointing left. + AcsRtee + // The AcsBtee [acs_btee, OTGU] string capability is the tee pointing up. + AcsBtee + // The AcsTtee [acs_ttee, OTGD] string capability is the tee pointing down. + AcsTtee + // The AcsHline [acs_hline, OTGH] string capability is the single horizontal line. + AcsHline + // The AcsVline [acs_vline, OTGV] string capability is the single vertical line. + AcsVline + // The AcsPlus [acs_plus, OTGC] string capability is the single intersection. + AcsPlus + // The MemoryLock [memory_lock, meml] string capability is the lock memory above cursor. + MemoryLock + // The MemoryUnlock [memory_unlock, memu] string capability is the unlock memory. + MemoryUnlock + // The BoxChars1 [box_chars_1, box1] string capability is the box characters primary set. + BoxChars1 +) +const ( + // CapCountBool is the count of bool capabilities. + CapCountBool = ReturnDoesClrEol + 1 + // CapCountNum is the count of num capabilities. + CapCountNum = NumberOfFunctionKeys + 1 + // CapCountString is the count of string capabilities. + CapCountString = BoxChars1 + 1 +) + +// boolCapNames are the bool term cap names. +var boolCapNames = [...]string{ + "auto_left_margin", "bw", + "auto_right_margin", "am", + "no_esc_ctlc", "xsb", + "ceol_standout_glitch", "xhp", + "eat_newline_glitch", "xenl", + "erase_overstrike", "eo", + "generic_type", "gn", + "hard_copy", "hc", + "has_meta_key", "km", + "has_status_line", "hs", + "insert_null_glitch", "in", + "memory_above", "da", + "memory_below", "db", + "move_insert_mode", "mir", + "move_standout_mode", "msgr", + "over_strike", "os", + "status_line_esc_ok", "eslok", + "dest_tabs_magic_smso", "xt", + "tilde_glitch", "hz", + "transparent_underline", "ul", + "xon_xoff", "xon", + "needs_xon_xoff", "nxon", + "prtr_silent", "mc5i", + "hard_cursor", "chts", + "non_rev_rmcup", "nrrmc", + "no_pad_char", "npc", + "non_dest_scroll_region", "ndscr", + "can_change", "ccc", + "back_color_erase", "bce", + "hue_lightness_saturation", "hls", + "col_addr_glitch", "xhpa", + "cr_cancels_micro_mode", "crxm", + "has_print_wheel", "daisy", + "row_addr_glitch", "xvpa", + "semi_auto_right_margin", "sam", + "cpi_changes_res", "cpix", + "lpi_changes_res", "lpix", + "backspaces_with_bs", "OTbs", + "crt_no_scrolling", "OTns", + "no_correctly_working_cr", "OTnc", + "gnu_has_meta_key", "OTMT", + "linefeed_is_newline", "OTNL", + "has_hardware_tabs", "OTpt", + "return_does_clr_eol", "OTxr", +} + +// numCapNames are the num term cap names. +var numCapNames = [...]string{ + "columns", "cols", + "init_tabs", "it", + "lines", "lines", + "lines_of_memory", "lm", + "magic_cookie_glitch", "xmc", + "padding_baud_rate", "pb", + "virtual_terminal", "vt", + "width_status_line", "wsl", + "num_labels", "nlab", + "label_height", "lh", + "label_width", "lw", + "max_attributes", "ma", + "maximum_windows", "wnum", + "max_colors", "colors", + "max_pairs", "pairs", + "no_color_video", "ncv", + "buffer_capacity", "bufsz", + "dot_vert_spacing", "spinv", + "dot_horz_spacing", "spinh", + "max_micro_address", "maddr", + "max_micro_jump", "mjump", + "micro_col_size", "mcs", + "micro_line_size", "mls", + "number_of_pins", "npins", + "output_res_char", "orc", + "output_res_line", "orl", + "output_res_horz_inch", "orhi", + "output_res_vert_inch", "orvi", + "print_rate", "cps", + "wide_char_size", "widcs", + "buttons", "btns", + "bit_image_entwining", "bitwin", + "bit_image_type", "bitype", + "magic_cookie_glitch_ul", "OTug", + "carriage_return_delay", "OTdC", + "new_line_delay", "OTdN", + "backspace_delay", "OTdB", + "horizontal_tab_delay", "OTdT", + "number_of_function_keys", "OTkn", +} + +// stringCapNames are the string term cap names. +var stringCapNames = [...]string{ + "back_tab", "cbt", + "bell", "bel", + "carriage_return", "cr", + "change_scroll_region", "csr", + "clear_all_tabs", "tbc", + "clear_screen", "clear", + "clr_eol", "el", + "clr_eos", "ed", + "column_address", "hpa", + "command_character", "cmdch", + "cursor_address", "cup", + "cursor_down", "cud1", + "cursor_home", "home", + "cursor_invisible", "civis", + "cursor_left", "cub1", + "cursor_mem_address", "mrcup", + "cursor_normal", "cnorm", + "cursor_right", "cuf1", + "cursor_to_ll", "ll", + "cursor_up", "cuu1", + "cursor_visible", "cvvis", + "delete_character", "dch1", + "delete_line", "dl1", + "dis_status_line", "dsl", + "down_half_line", "hd", + "enter_alt_charset_mode", "smacs", + "enter_blink_mode", "blink", + "enter_bold_mode", "bold", + "enter_ca_mode", "smcup", + "enter_delete_mode", "smdc", + "enter_dim_mode", "dim", + "enter_insert_mode", "smir", + "enter_secure_mode", "invis", + "enter_protected_mode", "prot", + "enter_reverse_mode", "rev", + "enter_standout_mode", "smso", + "enter_underline_mode", "smul", + "erase_chars", "ech", + "exit_alt_charset_mode", "rmacs", + "exit_attribute_mode", "sgr0", + "exit_ca_mode", "rmcup", + "exit_delete_mode", "rmdc", + "exit_insert_mode", "rmir", + "exit_standout_mode", "rmso", + "exit_underline_mode", "rmul", + "flash_screen", "flash", + "form_feed", "ff", + "from_status_line", "fsl", + "init_1string", "is1", + "init_2string", "is2", + "init_3string", "is3", + "init_file", "if", + "insert_character", "ich1", + "insert_line", "il1", + "insert_padding", "ip", + "key_backspace", "kbs", + "key_catab", "ktbc", + "key_clear", "kclr", + "key_ctab", "kctab", + "key_dc", "kdch1", + "key_dl", "kdl1", + "key_down", "kcud1", + "key_eic", "krmir", + "key_eol", "kel", + "key_eos", "ked", + "key_f0", "kf0", + "key_f1", "kf1", + "key_f10", "kf10", + "key_f2", "kf2", + "key_f3", "kf3", + "key_f4", "kf4", + "key_f5", "kf5", + "key_f6", "kf6", + "key_f7", "kf7", + "key_f8", "kf8", + "key_f9", "kf9", + "key_home", "khome", + "key_ic", "kich1", + "key_il", "kil1", + "key_left", "kcub1", + "key_ll", "kll", + "key_npage", "knp", + "key_ppage", "kpp", + "key_right", "kcuf1", + "key_sf", "kind", + "key_sr", "kri", + "key_stab", "khts", + "key_up", "kcuu1", + "keypad_local", "rmkx", + "keypad_xmit", "smkx", + "lab_f0", "lf0", + "lab_f1", "lf1", + "lab_f10", "lf10", + "lab_f2", "lf2", + "lab_f3", "lf3", + "lab_f4", "lf4", + "lab_f5", "lf5", + "lab_f6", "lf6", + "lab_f7", "lf7", + "lab_f8", "lf8", + "lab_f9", "lf9", + "meta_off", "rmm", + "meta_on", "smm", + "newline", "nel", + "pad_char", "pad", + "parm_dch", "dch", + "parm_delete_line", "dl", + "parm_down_cursor", "cud", + "parm_ich", "ich", + "parm_index", "indn", + "parm_insert_line", "il", + "parm_left_cursor", "cub", + "parm_right_cursor", "cuf", + "parm_rindex", "rin", + "parm_up_cursor", "cuu", + "pkey_key", "pfkey", + "pkey_local", "pfloc", + "pkey_xmit", "pfx", + "print_screen", "mc0", + "prtr_off", "mc4", + "prtr_on", "mc5", + "repeat_char", "rep", + "reset_1string", "rs1", + "reset_2string", "rs2", + "reset_3string", "rs3", + "reset_file", "rf", + "restore_cursor", "rc", + "row_address", "vpa", + "save_cursor", "sc", + "scroll_forward", "ind", + "scroll_reverse", "ri", + "set_attributes", "sgr", + "set_tab", "hts", + "set_window", "wind", + "tab", "ht", + "to_status_line", "tsl", + "underline_char", "uc", + "up_half_line", "hu", + "init_prog", "iprog", + "key_a1", "ka1", + "key_a3", "ka3", + "key_b2", "kb2", + "key_c1", "kc1", + "key_c3", "kc3", + "prtr_non", "mc5p", + "char_padding", "rmp", + "acs_chars", "acsc", + "plab_norm", "pln", + "key_btab", "kcbt", + "enter_xon_mode", "smxon", + "exit_xon_mode", "rmxon", + "enter_am_mode", "smam", + "exit_am_mode", "rmam", + "xon_character", "xonc", + "xoff_character", "xoffc", + "ena_acs", "enacs", + "label_on", "smln", + "label_off", "rmln", + "key_beg", "kbeg", + "key_cancel", "kcan", + "key_close", "kclo", + "key_command", "kcmd", + "key_copy", "kcpy", + "key_create", "kcrt", + "key_end", "kend", + "key_enter", "kent", + "key_exit", "kext", + "key_find", "kfnd", + "key_help", "khlp", + "key_mark", "kmrk", + "key_message", "kmsg", + "key_move", "kmov", + "key_next", "knxt", + "key_open", "kopn", + "key_options", "kopt", + "key_previous", "kprv", + "key_print", "kprt", + "key_redo", "krdo", + "key_reference", "kref", + "key_refresh", "krfr", + "key_replace", "krpl", + "key_restart", "krst", + "key_resume", "kres", + "key_save", "ksav", + "key_suspend", "kspd", + "key_undo", "kund", + "key_sbeg", "kBEG", + "key_scancel", "kCAN", + "key_scommand", "kCMD", + "key_scopy", "kCPY", + "key_screate", "kCRT", + "key_sdc", "kDC", + "key_sdl", "kDL", + "key_select", "kslt", + "key_send", "kEND", + "key_seol", "kEOL", + "key_sexit", "kEXT", + "key_sfind", "kFND", + "key_shelp", "kHLP", + "key_shome", "kHOM", + "key_sic", "kIC", + "key_sleft", "kLFT", + "key_smessage", "kMSG", + "key_smove", "kMOV", + "key_snext", "kNXT", + "key_soptions", "kOPT", + "key_sprevious", "kPRV", + "key_sprint", "kPRT", + "key_sredo", "kRDO", + "key_sreplace", "kRPL", + "key_sright", "kRIT", + "key_srsume", "kRES", + "key_ssave", "kSAV", + "key_ssuspend", "kSPD", + "key_sundo", "kUND", + "req_for_input", "rfi", + "key_f11", "kf11", + "key_f12", "kf12", + "key_f13", "kf13", + "key_f14", "kf14", + "key_f15", "kf15", + "key_f16", "kf16", + "key_f17", "kf17", + "key_f18", "kf18", + "key_f19", "kf19", + "key_f20", "kf20", + "key_f21", "kf21", + "key_f22", "kf22", + "key_f23", "kf23", + "key_f24", "kf24", + "key_f25", "kf25", + "key_f26", "kf26", + "key_f27", "kf27", + "key_f28", "kf28", + "key_f29", "kf29", + "key_f30", "kf30", + "key_f31", "kf31", + "key_f32", "kf32", + "key_f33", "kf33", + "key_f34", "kf34", + "key_f35", "kf35", + "key_f36", "kf36", + "key_f37", "kf37", + "key_f38", "kf38", + "key_f39", "kf39", + "key_f40", "kf40", + "key_f41", "kf41", + "key_f42", "kf42", + "key_f43", "kf43", + "key_f44", "kf44", + "key_f45", "kf45", + "key_f46", "kf46", + "key_f47", "kf47", + "key_f48", "kf48", + "key_f49", "kf49", + "key_f50", "kf50", + "key_f51", "kf51", + "key_f52", "kf52", + "key_f53", "kf53", + "key_f54", "kf54", + "key_f55", "kf55", + "key_f56", "kf56", + "key_f57", "kf57", + "key_f58", "kf58", + "key_f59", "kf59", + "key_f60", "kf60", + "key_f61", "kf61", + "key_f62", "kf62", + "key_f63", "kf63", + "clr_bol", "el1", + "clear_margins", "mgc", + "set_left_margin", "smgl", + "set_right_margin", "smgr", + "label_format", "fln", + "set_clock", "sclk", + "display_clock", "dclk", + "remove_clock", "rmclk", + "create_window", "cwin", + "goto_window", "wingo", + "hangup", "hup", + "dial_phone", "dial", + "quick_dial", "qdial", + "tone", "tone", + "pulse", "pulse", + "flash_hook", "hook", + "fixed_pause", "pause", + "wait_tone", "wait", + "user0", "u0", + "user1", "u1", + "user2", "u2", + "user3", "u3", + "user4", "u4", + "user5", "u5", + "user6", "u6", + "user7", "u7", + "user8", "u8", + "user9", "u9", + "orig_pair", "op", + "orig_colors", "oc", + "initialize_color", "initc", + "initialize_pair", "initp", + "set_color_pair", "scp", + "set_foreground", "setf", + "set_background", "setb", + "change_char_pitch", "cpi", + "change_line_pitch", "lpi", + "change_res_horz", "chr", + "change_res_vert", "cvr", + "define_char", "defc", + "enter_doublewide_mode", "swidm", + "enter_draft_quality", "sdrfq", + "enter_italics_mode", "sitm", + "enter_leftward_mode", "slm", + "enter_micro_mode", "smicm", + "enter_near_letter_quality", "snlq", + "enter_normal_quality", "snrmq", + "enter_shadow_mode", "sshm", + "enter_subscript_mode", "ssubm", + "enter_superscript_mode", "ssupm", + "enter_upward_mode", "sum", + "exit_doublewide_mode", "rwidm", + "exit_italics_mode", "ritm", + "exit_leftward_mode", "rlm", + "exit_micro_mode", "rmicm", + "exit_shadow_mode", "rshm", + "exit_subscript_mode", "rsubm", + "exit_superscript_mode", "rsupm", + "exit_upward_mode", "rum", + "micro_column_address", "mhpa", + "micro_down", "mcud1", + "micro_left", "mcub1", + "micro_right", "mcuf1", + "micro_row_address", "mvpa", + "micro_up", "mcuu1", + "order_of_pins", "porder", + "parm_down_micro", "mcud", + "parm_left_micro", "mcub", + "parm_right_micro", "mcuf", + "parm_up_micro", "mcuu", + "select_char_set", "scs", + "set_bottom_margin", "smgb", + "set_bottom_margin_parm", "smgbp", + "set_left_margin_parm", "smglp", + "set_right_margin_parm", "smgrp", + "set_top_margin", "smgt", + "set_top_margin_parm", "smgtp", + "start_bit_image", "sbim", + "start_char_set_def", "scsd", + "stop_bit_image", "rbim", + "stop_char_set_def", "rcsd", + "subscript_characters", "subcs", + "superscript_characters", "supcs", + "these_cause_cr", "docr", + "zero_motion", "zerom", + "char_set_names", "csnm", + "key_mouse", "kmous", + "mouse_info", "minfo", + "req_mouse_pos", "reqmp", + "get_mouse", "getm", + "set_a_foreground", "setaf", + "set_a_background", "setab", + "pkey_plab", "pfxl", + "device_type", "devt", + "code_set_init", "csin", + "set0_des_seq", "s0ds", + "set1_des_seq", "s1ds", + "set2_des_seq", "s2ds", + "set3_des_seq", "s3ds", + "set_lr_margin", "smglr", + "set_tb_margin", "smgtb", + "bit_image_repeat", "birep", + "bit_image_newline", "binel", + "bit_image_carriage_return", "bicr", + "color_names", "colornm", + "define_bit_image_region", "defbi", + "end_bit_image_region", "endbi", + "set_color_band", "setcolor", + "set_page_length", "slines", + "display_pc_char", "dispc", + "enter_pc_charset_mode", "smpch", + "exit_pc_charset_mode", "rmpch", + "enter_scancode_mode", "smsc", + "exit_scancode_mode", "rmsc", + "pc_term_options", "pctrm", + "scancode_escape", "scesc", + "alt_scancode_esc", "scesa", + "enter_horizontal_hl_mode", "ehhlm", + "enter_left_hl_mode", "elhlm", + "enter_low_hl_mode", "elohlm", + "enter_right_hl_mode", "erhlm", + "enter_top_hl_mode", "ethlm", + "enter_vertical_hl_mode", "evhlm", + "set_a_attributes", "sgr1", + "set_pglen_inch", "slength", + "termcap_init2", "OTi2", + "termcap_reset", "OTrs", + "linefeed_if_not_lf", "OTnl", + "backspace_if_not_bs", "OTbc", + "other_non_function_keys", "OTko", + "arrow_key_map", "OTma", + "acs_ulcorner", "OTG2", + "acs_llcorner", "OTG3", + "acs_urcorner", "OTG1", + "acs_lrcorner", "OTG4", + "acs_ltee", "OTGR", + "acs_rtee", "OTGL", + "acs_btee", "OTGU", + "acs_ttee", "OTGD", + "acs_hline", "OTGH", + "acs_vline", "OTGV", + "acs_plus", "OTGC", + "memory_lock", "meml", + "memory_unlock", "memu", + "box_chars_1", "box1", +} diff --git a/vendor/github.com/xo/terminfo/color.go b/vendor/github.com/xo/terminfo/color.go new file mode 100644 index 00000000..76c439fc --- /dev/null +++ b/vendor/github.com/xo/terminfo/color.go @@ -0,0 +1,88 @@ +package terminfo + +import ( + "os" + "strconv" + "strings" +) + +// ColorLevel is the color level supported by a terminal. +type ColorLevel uint + +// ColorLevel values. +const ( + ColorLevelNone ColorLevel = iota + ColorLevelBasic + ColorLevelHundreds + ColorLevelMillions +) + +// String satisfies the Stringer interface. +func (c ColorLevel) String() string { + switch c { + case ColorLevelBasic: + return "basic" + case ColorLevelHundreds: + return "hundreds" + case ColorLevelMillions: + return "millions" + } + return "none" +} + +// ChromaFormatterName returns the github.com/alecthomas/chroma compatible +// formatter name for the color level. +func (c ColorLevel) ChromaFormatterName() string { + switch c { + case ColorLevelBasic: + return "terminal" + case ColorLevelHundreds: + return "terminal256" + case ColorLevelMillions: + return "terminal16m" + } + return "noop" +} + +// ColorLevelFromEnv returns the color level COLORTERM, FORCE_COLOR, +// TERM_PROGRAM, or determined from the TERM environment variable. +func ColorLevelFromEnv() (ColorLevel, error) { + // check for overriding environment variables + colorTerm, termProg, forceColor := os.Getenv("COLORTERM"), os.Getenv("TERM_PROGRAM"), os.Getenv("FORCE_COLOR") + switch { + case strings.Contains(colorTerm, "truecolor") || strings.Contains(colorTerm, "24bit") || termProg == "Hyper": + return ColorLevelMillions, nil + case colorTerm != "" || forceColor != "": + return ColorLevelBasic, nil + case termProg == "Apple_Terminal": + return ColorLevelHundreds, nil + case termProg == "iTerm.app": + ver := os.Getenv("TERM_PROGRAM_VERSION") + if ver == "" { + return ColorLevelHundreds, nil + } + i, err := strconv.Atoi(strings.Split(ver, ".")[0]) + if err != nil { + return ColorLevelNone, ErrInvalidTermProgramVersion + } + if i == 3 { + return ColorLevelMillions, nil + } + return ColorLevelHundreds, nil + } + // otherwise determine from TERM's max_colors capability + if term := os.Getenv("TERM"); term != "" { + ti, err := Load(term) + if err != nil { + return ColorLevelNone, err + } + v, ok := ti.Nums[MaxColors] + switch { + case !ok || v <= 16: + return ColorLevelNone, nil + case ok && v >= 256: + return ColorLevelHundreds, nil + } + } + return ColorLevelBasic, nil +} diff --git a/vendor/github.com/xo/terminfo/dec.go b/vendor/github.com/xo/terminfo/dec.go new file mode 100644 index 00000000..dacc88e3 --- /dev/null +++ b/vendor/github.com/xo/terminfo/dec.go @@ -0,0 +1,245 @@ +package terminfo + +import ( + "sort" +) + +const ( + // maxFileLength is the max file length. + maxFileLength = 4096 + // magic is the file magic for terminfo files. + magic = 0o432 + // magicExtended is the file magic for terminfo files with the extended + // number format. + magicExtended = 0o1036 +) + +// header fields. +const ( + fieldMagic = iota + fieldNameSize + fieldBoolCount + fieldNumCount + fieldStringCount + fieldTableSize +) + +// header extended fields. +const ( + fieldExtBoolCount = iota + fieldExtNumCount + fieldExtStringCount + fieldExtOffsetCount + fieldExtTableSize +) + +// hasInvalidCaps determines if the capabilities in h are invalid. +func hasInvalidCaps(h []int) bool { + return h[fieldBoolCount] > CapCountBool || + h[fieldNumCount] > CapCountNum || + h[fieldStringCount] > CapCountString +} + +// capLength returns the total length of the capabilities in bytes. +func capLength(h []int) int { + return h[fieldNameSize] + + h[fieldBoolCount] + + (h[fieldNameSize]+h[fieldBoolCount])%2 + // account for word align + h[fieldNumCount]*2 + + h[fieldStringCount]*2 + + h[fieldTableSize] +} + +// hasInvalidExtOffset determines if the extended offset field is valid. +func hasInvalidExtOffset(h []int) bool { + return h[fieldExtBoolCount]+ + h[fieldExtNumCount]+ + h[fieldExtStringCount]*2 != h[fieldExtOffsetCount] +} + +// extCapLength returns the total length of extended capabilities in bytes. +func extCapLength(h []int, numWidth int) int { + return h[fieldExtBoolCount] + + h[fieldExtBoolCount]%2 + // account for word align + h[fieldExtNumCount]*(numWidth/8) + + h[fieldExtOffsetCount]*2 + + h[fieldExtTableSize] +} + +// findNull finds the position of null in buf. +func findNull(buf []byte, i int) int { + for ; i < len(buf); i++ { + if buf[i] == 0 { + return i + } + } + return -1 +} + +// readStrings decodes n strings from string data table buf using the indexes in idx. +func readStrings(idx []int, buf []byte, n int) (map[int][]byte, int, error) { + var last int + m := make(map[int][]byte) + for i := 0; i < n; i++ { + start := idx[i] + if start < 0 { + continue + } + if end := findNull(buf, start); end != -1 { + m[i], last = buf[start:end], end+1 + } else { + return nil, 0, ErrInvalidStringTable + } + } + return m, last, nil +} + +// decoder holds state info while decoding a terminfo file. +type decoder struct { + buf []byte + pos int + n int +} + +// readBytes reads the next n bytes of buf, incrementing pos by n. +func (d *decoder) readBytes(n int) ([]byte, error) { + if d.n < d.pos+n { + return nil, ErrUnexpectedFileEnd + } + n, d.pos = d.pos, d.pos+n + return d.buf[n:d.pos], nil +} + +// readInts reads n number of ints with width w. +func (d *decoder) readInts(n, w int) ([]int, error) { + w /= 8 + l := n * w + buf, err := d.readBytes(l) + if err != nil { + return nil, err + } + // align + d.pos += d.pos % 2 + z := make([]int, n) + for i, j := 0, 0; i < l; i, j = i+w, j+1 { + switch w { + case 1: + z[i] = int(buf[i]) + case 2: + z[j] = int(int16(buf[i+1])<<8 | int16(buf[i])) + case 4: + z[j] = int(buf[i+3])<<24 | int(buf[i+2])<<16 | int(buf[i+1])<<8 | int(buf[i]) + } + } + return z, nil +} + +// readBools reads the next n bools. +func (d *decoder) readBools(n int) (map[int]bool, map[int]bool, error) { + buf, err := d.readInts(n, 8) + if err != nil { + return nil, nil, err + } + // process + bools, boolsM := make(map[int]bool), make(map[int]bool) + for i, b := range buf { + bools[i] = b == 1 + if int8(b) == -2 { + boolsM[i] = true + } + } + return bools, boolsM, nil +} + +// readNums reads the next n nums. +func (d *decoder) readNums(n, w int) (map[int]int, map[int]bool, error) { + buf, err := d.readInts(n, w) + if err != nil { + return nil, nil, err + } + // process + nums, numsM := make(map[int]int), make(map[int]bool) + for i := 0; i < n; i++ { + nums[i] = buf[i] + if buf[i] == -2 { + numsM[i] = true + } + } + return nums, numsM, nil +} + +// readStringTable reads the string data for n strings and the accompanying data +// table of length sz. +func (d *decoder) readStringTable(n, sz int) ([][]byte, []int, error) { + buf, err := d.readInts(n, 16) + if err != nil { + return nil, nil, err + } + // read string data table + data, err := d.readBytes(sz) + if err != nil { + return nil, nil, err + } + // align + d.pos += d.pos % 2 + // process + s := make([][]byte, n) + var m []int + for i := 0; i < n; i++ { + start := buf[i] + if start == -2 { + m = append(m, i) + } else if start >= 0 { + if end := findNull(data, start); end != -1 { + s[i] = data[start:end] + } else { + return nil, nil, ErrInvalidStringTable + } + } + } + return s, m, nil +} + +// readStrings reads the next n strings and processes the string data table of +// length sz. +func (d *decoder) readStrings(n, sz int) (map[int][]byte, map[int]bool, error) { + s, m, err := d.readStringTable(n, sz) + if err != nil { + return nil, nil, err + } + strs := make(map[int][]byte) + for k, v := range s { + if k == AcsChars { + v = canonicalizeAscChars(v) + } + strs[k] = v + } + strsM := make(map[int]bool, len(m)) + for _, k := range m { + strsM[k] = true + } + return strs, strsM, nil +} + +// canonicalizeAscChars reorders chars to be unique, in order. +// +// see repair_ascc in ncurses-6.3/progs/dump_entry.c +func canonicalizeAscChars(z []byte) []byte { + var c []byte + enc := make(map[byte]byte, len(z)/2) + for i := 0; i < len(z); i += 2 { + if _, ok := enc[z[i]]; !ok { + a, b := z[i], z[i+1] + // log.Printf(">>> a: %d %c, b: %d %c", a, a, b, b) + c, enc[a] = append(c, b), b + } + } + sort.Slice(c, func(i, j int) bool { + return c[i] < c[j] + }) + r := make([]byte, 2*len(c)) + for i := 0; i < len(c); i++ { + r[i*2], r[i*2+1] = c[i], enc[c[i]] + } + return r +} diff --git a/vendor/github.com/xo/terminfo/load.go b/vendor/github.com/xo/terminfo/load.go new file mode 100644 index 00000000..d7cd266c --- /dev/null +++ b/vendor/github.com/xo/terminfo/load.go @@ -0,0 +1,64 @@ +package terminfo + +import ( + "os" + "os/user" + "path" + "strings" + "sync" +) + +// termCache is the terminfo cache. +var termCache = struct { + db map[string]*Terminfo + sync.RWMutex +}{ + db: make(map[string]*Terminfo), +} + +// Load follows the behavior described in terminfo(5) to find correct the +// terminfo file using the name, reads the file and then returns a Terminfo +// struct that describes the file. +func Load(name string) (*Terminfo, error) { + if name == "" { + return nil, ErrEmptyTermName + } + termCache.RLock() + ti, ok := termCache.db[name] + termCache.RUnlock() + if ok { + return ti, nil + } + var checkDirs []string + // check $TERMINFO + if dir := os.Getenv("TERMINFO"); dir != "" { + checkDirs = append(checkDirs, dir) + } + // check $HOME/.terminfo + u, err := user.Current() + if err != nil { + return nil, err + } + checkDirs = append(checkDirs, path.Join(u.HomeDir, ".terminfo")) + // check $TERMINFO_DIRS + if dirs := os.Getenv("TERMINFO_DIRS"); dirs != "" { + checkDirs = append(checkDirs, strings.Split(dirs, ":")...) + } + // check fallback directories + checkDirs = append(checkDirs, "/etc/terminfo", "/lib/terminfo", "/usr/share/terminfo") + for _, dir := range checkDirs { + ti, err = Open(dir, name) + if err != nil && err != ErrFileNotFound && !os.IsNotExist(err) { + return nil, err + } else if err == nil { + return ti, nil + } + } + return nil, ErrDatabaseDirectoryNotFound +} + +// LoadFromEnv loads the terminal info based on the name contained in +// environment variable TERM. +func LoadFromEnv() (*Terminfo, error) { + return Load(os.Getenv("TERM")) +} diff --git a/vendor/github.com/xo/terminfo/param.go b/vendor/github.com/xo/terminfo/param.go new file mode 100644 index 00000000..ed4cb86b --- /dev/null +++ b/vendor/github.com/xo/terminfo/param.go @@ -0,0 +1,405 @@ +package terminfo + +import ( + "bytes" + "fmt" + "io" + "strconv" + "strings" + "sync" +) + +// parametizer represents the a scan state for a parameterized string. +type parametizer struct { + // z is the string to parameterize + z []byte + // pos is the current position in s. + pos int + // nest is the current nest level. + nest int + // s is the variable stack. + s stack + // skipElse keeps the state of skipping else. + skipElse bool + // buf is the result buffer. + buf *bytes.Buffer + // params are the parameters to interpolate. + params [9]interface{} + // vars are dynamic variables. + vars [26]interface{} +} + +// staticVars are the static, global variables. +var staticVars = struct { + vars [26]interface{} + sync.Mutex +}{} + +var parametizerPool = sync.Pool{ + New: func() interface{} { + p := new(parametizer) + p.buf = bytes.NewBuffer(make([]byte, 0, 45)) + return p + }, +} + +// newParametizer returns a new initialized parametizer from the pool. +func newParametizer(z []byte) *parametizer { + p := parametizerPool.Get().(*parametizer) + p.z = z + return p +} + +// reset resets the parametizer. +func (p *parametizer) reset() { + p.pos, p.nest = 0, 0 + p.s.reset() + p.buf.Reset() + p.params, p.vars = [9]interface{}{}, [26]interface{}{} + parametizerPool.Put(p) +} + +// stateFn represents the state of the scanner as a function that returns the +// next state. +type stateFn func() stateFn + +// exec executes the parameterizer, interpolating the supplied parameters. +func (p *parametizer) exec() string { + for state := p.scanTextFn; state != nil; { + state = state() + } + return p.buf.String() +} + +// peek returns the next byte. +func (p *parametizer) peek() (byte, error) { + if p.pos >= len(p.z) { + return 0, io.EOF + } + return p.z[p.pos], nil +} + +// writeFrom writes the characters from ppos to pos to the buffer. +func (p *parametizer) writeFrom(ppos int) { + if p.pos > ppos { + // append remaining characters. + p.buf.Write(p.z[ppos:p.pos]) + } +} + +func (p *parametizer) scanTextFn() stateFn { + ppos := p.pos + for { + ch, err := p.peek() + if err != nil { + p.writeFrom(ppos) + return nil + } + if ch == '%' { + p.writeFrom(ppos) + p.pos++ + return p.scanCodeFn + } + p.pos++ + } +} + +func (p *parametizer) scanCodeFn() stateFn { + ch, err := p.peek() + if err != nil { + return nil + } + switch ch { + case '%': + p.buf.WriteByte('%') + case ':': + // this character is used to avoid interpreting "%-" and "%+" as operators. + // the next character is where the format really begins. + p.pos++ + _, err = p.peek() + if err != nil { + return nil + } + return p.scanFormatFn + case '#', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.': + return p.scanFormatFn + case 'o': + p.buf.WriteString(strconv.FormatInt(int64(p.s.popInt()), 8)) + case 'd': + p.buf.WriteString(strconv.Itoa(p.s.popInt())) + case 'x': + p.buf.WriteString(strconv.FormatInt(int64(p.s.popInt()), 16)) + case 'X': + p.buf.WriteString(strings.ToUpper(strconv.FormatInt(int64(p.s.popInt()), 16))) + case 's': + p.buf.WriteString(p.s.popString()) + case 'c': + p.buf.WriteByte(p.s.popByte()) + case 'p': + p.pos++ + return p.pushParamFn + case 'P': + p.pos++ + return p.setDsVarFn + case 'g': + p.pos++ + return p.getDsVarFn + case '\'': + p.pos++ + ch, err = p.peek() + if err != nil { + return nil + } + p.s.push(ch) + // skip the '\'' + p.pos++ + case '{': + p.pos++ + return p.pushIntfn + case 'l': + p.s.push(len(p.s.popString())) + case '+': + bi, ai := p.s.popInt(), p.s.popInt() + p.s.push(ai + bi) + case '-': + bi, ai := p.s.popInt(), p.s.popInt() + p.s.push(ai - bi) + case '*': + bi, ai := p.s.popInt(), p.s.popInt() + p.s.push(ai * bi) + case '/': + bi, ai := p.s.popInt(), p.s.popInt() + if bi != 0 { + p.s.push(ai / bi) + } else { + p.s.push(0) + } + case 'm': + bi, ai := p.s.popInt(), p.s.popInt() + if bi != 0 { + p.s.push(ai % bi) + } else { + p.s.push(0) + } + case '&': + bi, ai := p.s.popInt(), p.s.popInt() + p.s.push(ai & bi) + case '|': + bi, ai := p.s.popInt(), p.s.popInt() + p.s.push(ai | bi) + case '^': + bi, ai := p.s.popInt(), p.s.popInt() + p.s.push(ai ^ bi) + case '=': + bi, ai := p.s.popInt(), p.s.popInt() + p.s.push(ai == bi) + case '>': + bi, ai := p.s.popInt(), p.s.popInt() + p.s.push(ai > bi) + case '<': + bi, ai := p.s.popInt(), p.s.popInt() + p.s.push(ai < bi) + case 'A': + bi, ai := p.s.popBool(), p.s.popBool() + p.s.push(ai && bi) + case 'O': + bi, ai := p.s.popBool(), p.s.popBool() + p.s.push(ai || bi) + case '!': + p.s.push(!p.s.popBool()) + case '~': + p.s.push(^p.s.popInt()) + case 'i': + for i := range p.params[:2] { + if n, ok := p.params[i].(int); ok { + p.params[i] = n + 1 + } + } + case '?', ';': + case 't': + return p.scanThenFn + case 'e': + p.skipElse = true + return p.skipTextFn + } + p.pos++ + return p.scanTextFn +} + +func (p *parametizer) scanFormatFn() stateFn { + // the character was already read, so no need to check the error. + ch, _ := p.peek() + // 6 should be the maximum length of a format string, for example "%:-9.9d". + f := []byte{'%', ch, 0, 0, 0, 0} + var err error + for { + p.pos++ + ch, err = p.peek() + if err != nil { + return nil + } + f = append(f, ch) + switch ch { + case 'o', 'd', 'x', 'X': + fmt.Fprintf(p.buf, string(f), p.s.popInt()) + break + case 's': + fmt.Fprintf(p.buf, string(f), p.s.popString()) + break + case 'c': + fmt.Fprintf(p.buf, string(f), p.s.popByte()) + break + } + } + p.pos++ + return p.scanTextFn +} + +func (p *parametizer) pushParamFn() stateFn { + ch, err := p.peek() + if err != nil { + return nil + } + if ai := int(ch - '1'); ai >= 0 && ai < len(p.params) { + p.s.push(p.params[ai]) + } else { + p.s.push(0) + } + // skip the '}' + p.pos++ + return p.scanTextFn +} + +func (p *parametizer) setDsVarFn() stateFn { + ch, err := p.peek() + if err != nil { + return nil + } + if ch >= 'A' && ch <= 'Z' { + staticVars.Lock() + staticVars.vars[int(ch-'A')] = p.s.pop() + staticVars.Unlock() + } else if ch >= 'a' && ch <= 'z' { + p.vars[int(ch-'a')] = p.s.pop() + } + p.pos++ + return p.scanTextFn +} + +func (p *parametizer) getDsVarFn() stateFn { + ch, err := p.peek() + if err != nil { + return nil + } + var a byte + if ch >= 'A' && ch <= 'Z' { + a = 'A' + } else if ch >= 'a' && ch <= 'z' { + a = 'a' + } + staticVars.Lock() + p.s.push(staticVars.vars[int(ch-a)]) + staticVars.Unlock() + p.pos++ + return p.scanTextFn +} + +func (p *parametizer) pushIntfn() stateFn { + var ai int + for { + ch, err := p.peek() + if err != nil { + return nil + } + p.pos++ + if ch < '0' || ch > '9' { + p.s.push(ai) + return p.scanTextFn + } + ai = (ai * 10) + int(ch-'0') + } +} + +func (p *parametizer) scanThenFn() stateFn { + p.pos++ + if p.s.popBool() { + return p.scanTextFn + } + p.skipElse = false + return p.skipTextFn +} + +func (p *parametizer) skipTextFn() stateFn { + for { + ch, err := p.peek() + if err != nil { + return nil + } + p.pos++ + if ch == '%' { + break + } + } + if p.skipElse { + return p.skipElseFn + } + return p.skipThenFn +} + +func (p *parametizer) skipThenFn() stateFn { + ch, err := p.peek() + if err != nil { + return nil + } + p.pos++ + switch ch { + case ';': + if p.nest == 0 { + return p.scanTextFn + } + p.nest-- + case '?': + p.nest++ + case 'e': + if p.nest == 0 { + return p.scanTextFn + } + } + return p.skipTextFn +} + +func (p *parametizer) skipElseFn() stateFn { + ch, err := p.peek() + if err != nil { + return nil + } + p.pos++ + switch ch { + case ';': + if p.nest == 0 { + return p.scanTextFn + } + p.nest-- + case '?': + p.nest++ + } + return p.skipTextFn +} + +// Printf evaluates a parameterized terminfo value z, interpolating params. +func Printf(z []byte, params ...interface{}) string { + p := newParametizer(z) + defer p.reset() + // make sure we always have 9 parameters -- makes it easier + // later to skip checks and its faster + for i := 0; i < len(p.params) && i < len(params); i++ { + p.params[i] = params[i] + } + return p.exec() +} + +// Fprintf evaluates a parameterized terminfo value z, interpolating params and +// writing to w. +func Fprintf(w io.Writer, z []byte, params ...interface{}) { + w.Write([]byte(Printf(z, params...))) +} diff --git a/vendor/github.com/xo/terminfo/stack.go b/vendor/github.com/xo/terminfo/stack.go new file mode 100644 index 00000000..a6de3950 --- /dev/null +++ b/vendor/github.com/xo/terminfo/stack.go @@ -0,0 +1,48 @@ +package terminfo + +type stack []interface{} + +func (s *stack) push(v interface{}) { + *s = append(*s, v) +} + +func (s *stack) pop() interface{} { + if len(*s) == 0 { + return nil + } + v := (*s)[len(*s)-1] + *s = (*s)[:len(*s)-1] + return v +} + +func (s *stack) popInt() int { + if i, ok := s.pop().(int); ok { + return i + } + return 0 +} + +func (s *stack) popBool() bool { + if b, ok := s.pop().(bool); ok { + return b + } + return false +} + +func (s *stack) popByte() byte { + if b, ok := s.pop().(byte); ok { + return b + } + return 0 +} + +func (s *stack) popString() string { + if a, ok := s.pop().(string); ok { + return a + } + return "" +} + +func (s *stack) reset() { + *s = (*s)[:0] +} diff --git a/vendor/github.com/xo/terminfo/terminfo.go b/vendor/github.com/xo/terminfo/terminfo.go new file mode 100644 index 00000000..69e3b606 --- /dev/null +++ b/vendor/github.com/xo/terminfo/terminfo.go @@ -0,0 +1,479 @@ +// Package terminfo implements reading terminfo files in pure go. +package terminfo + +//go:generate go run gen.go + +import ( + "io" + "io/ioutil" + "path" + "strconv" + "strings" +) + +// Error is a terminfo error. +type Error string + +// Error satisfies the error interface. +func (err Error) Error() string { + return string(err) +} + +const ( + // ErrInvalidFileSize is the invalid file size error. + ErrInvalidFileSize Error = "invalid file size" + // ErrUnexpectedFileEnd is the unexpected file end error. + ErrUnexpectedFileEnd Error = "unexpected file end" + // ErrInvalidStringTable is the invalid string table error. + ErrInvalidStringTable Error = "invalid string table" + // ErrInvalidMagic is the invalid magic error. + ErrInvalidMagic Error = "invalid magic" + // ErrInvalidHeader is the invalid header error. + ErrInvalidHeader Error = "invalid header" + // ErrInvalidNames is the invalid names error. + ErrInvalidNames Error = "invalid names" + // ErrInvalidExtendedHeader is the invalid extended header error. + ErrInvalidExtendedHeader Error = "invalid extended header" + // ErrEmptyTermName is the empty term name error. + ErrEmptyTermName Error = "empty term name" + // ErrDatabaseDirectoryNotFound is the database directory not found error. + ErrDatabaseDirectoryNotFound Error = "database directory not found" + // ErrFileNotFound is the file not found error. + ErrFileNotFound Error = "file not found" + // ErrInvalidTermProgramVersion is the invalid TERM_PROGRAM_VERSION error. + ErrInvalidTermProgramVersion Error = "invalid TERM_PROGRAM_VERSION" +) + +// Terminfo describes a terminal's capabilities. +type Terminfo struct { + // File is the original source file. + File string + // Names are the provided cap names. + Names []string + // Bools are the bool capabilities. + Bools map[int]bool + // BoolsM are the missing bool capabilities. + BoolsM map[int]bool + // Nums are the num capabilities. + Nums map[int]int + // NumsM are the missing num capabilities. + NumsM map[int]bool + // Strings are the string capabilities. + Strings map[int][]byte + // StringsM are the missing string capabilities. + StringsM map[int]bool + // ExtBools are the extended bool capabilities. + ExtBools map[int]bool + // ExtBoolsNames is the map of extended bool capabilities to their index. + ExtBoolNames map[int][]byte + // ExtNums are the extended num capabilities. + ExtNums map[int]int + // ExtNumsNames is the map of extended num capabilities to their index. + ExtNumNames map[int][]byte + // ExtStrings are the extended string capabilities. + ExtStrings map[int][]byte + // ExtStringsNames is the map of extended string capabilities to their index. + ExtStringNames map[int][]byte +} + +// Decode decodes the terminfo data contained in buf. +func Decode(buf []byte) (*Terminfo, error) { + var err error + // check max file length + if len(buf) >= maxFileLength { + return nil, ErrInvalidFileSize + } + d := &decoder{ + buf: buf, + n: len(buf), + } + // read header + h, err := d.readInts(6, 16) + if err != nil { + return nil, err + } + var numWidth int + // check magic + switch { + case h[fieldMagic] == magic: + numWidth = 16 + case h[fieldMagic] == magicExtended: + numWidth = 32 + default: + return nil, ErrInvalidMagic + } + // check header + if hasInvalidCaps(h) { + return nil, ErrInvalidHeader + } + // check remaining length + if d.n-d.pos < capLength(h) { + return nil, ErrUnexpectedFileEnd + } + // read names + names, err := d.readBytes(h[fieldNameSize]) + if err != nil { + return nil, err + } + // check name is terminated properly + i := findNull(names, 0) + if i == -1 { + return nil, ErrInvalidNames + } + names = names[:i] + // read bool caps + bools, boolsM, err := d.readBools(h[fieldBoolCount]) + if err != nil { + return nil, err + } + // read num caps + nums, numsM, err := d.readNums(h[fieldNumCount], numWidth) + if err != nil { + return nil, err + } + // read string caps + strs, strsM, err := d.readStrings(h[fieldStringCount], h[fieldTableSize]) + if err != nil { + return nil, err + } + ti := &Terminfo{ + Names: strings.Split(string(names), "|"), + Bools: bools, + BoolsM: boolsM, + Nums: nums, + NumsM: numsM, + Strings: strs, + StringsM: strsM, + } + // at the end of file, so no extended caps + if d.pos >= d.n { + return ti, nil + } + // decode extended header + eh, err := d.readInts(5, 16) + if err != nil { + return nil, err + } + // check extended offset field + if hasInvalidExtOffset(eh) { + return nil, ErrInvalidExtendedHeader + } + // check extended cap lengths + if d.n-d.pos != extCapLength(eh, numWidth) { + return nil, ErrInvalidExtendedHeader + } + // read extended bool caps + ti.ExtBools, _, err = d.readBools(eh[fieldExtBoolCount]) + if err != nil { + return nil, err + } + // read extended num caps + ti.ExtNums, _, err = d.readNums(eh[fieldExtNumCount], numWidth) + if err != nil { + return nil, err + } + // read extended string data table indexes + extIndexes, err := d.readInts(eh[fieldExtOffsetCount], 16) + if err != nil { + return nil, err + } + // read string data table + extData, err := d.readBytes(eh[fieldExtTableSize]) + if err != nil { + return nil, err + } + // precautionary check that exactly at end of file + if d.pos != d.n { + return nil, ErrUnexpectedFileEnd + } + var last int + // read extended string caps + ti.ExtStrings, last, err = readStrings(extIndexes, extData, eh[fieldExtStringCount]) + if err != nil { + return nil, err + } + extIndexes, extData = extIndexes[eh[fieldExtStringCount]:], extData[last:] + // read extended bool names + ti.ExtBoolNames, _, err = readStrings(extIndexes, extData, eh[fieldExtBoolCount]) + if err != nil { + return nil, err + } + extIndexes = extIndexes[eh[fieldExtBoolCount]:] + // read extended num names + ti.ExtNumNames, _, err = readStrings(extIndexes, extData, eh[fieldExtNumCount]) + if err != nil { + return nil, err + } + extIndexes = extIndexes[eh[fieldExtNumCount]:] + // read extended string names + ti.ExtStringNames, _, err = readStrings(extIndexes, extData, eh[fieldExtStringCount]) + if err != nil { + return nil, err + } + // extIndexes = extIndexes[eh[fieldExtStringCount]:] + return ti, nil +} + +// Open reads the terminfo file name from the specified directory dir. +func Open(dir, name string) (*Terminfo, error) { + var err error + var buf []byte + var filename string + for _, f := range []string{ + path.Join(dir, name[0:1], name), + path.Join(dir, strconv.FormatUint(uint64(name[0]), 16), name), + } { + buf, err = ioutil.ReadFile(f) + if err == nil { + filename = f + break + } + } + if buf == nil { + return nil, ErrFileNotFound + } + // decode + ti, err := Decode(buf) + if err != nil { + return nil, err + } + // save original file name + ti.File = filename + // add to cache + termCache.Lock() + for _, n := range ti.Names { + termCache.db[n] = ti + } + termCache.Unlock() + return ti, nil +} + +// boolCaps returns all bool and extended capabilities using f to format the +// index key. +func (ti *Terminfo) boolCaps(f func(int) string, extended bool) map[string]bool { + m := make(map[string]bool, len(ti.Bools)+len(ti.ExtBools)) + if !extended { + for k, v := range ti.Bools { + m[f(k)] = v + } + } else { + for k, v := range ti.ExtBools { + m[string(ti.ExtBoolNames[k])] = v + } + } + return m +} + +// BoolCaps returns all bool capabilities. +func (ti *Terminfo) BoolCaps() map[string]bool { + return ti.boolCaps(BoolCapName, false) +} + +// BoolCapsShort returns all bool capabilities, using the short name as the +// index. +func (ti *Terminfo) BoolCapsShort() map[string]bool { + return ti.boolCaps(BoolCapNameShort, false) +} + +// ExtBoolCaps returns all extended bool capabilities. +func (ti *Terminfo) ExtBoolCaps() map[string]bool { + return ti.boolCaps(BoolCapName, true) +} + +// ExtBoolCapsShort returns all extended bool capabilities, using the short +// name as the index. +func (ti *Terminfo) ExtBoolCapsShort() map[string]bool { + return ti.boolCaps(BoolCapNameShort, true) +} + +// numCaps returns all num and extended capabilities using f to format the +// index key. +func (ti *Terminfo) numCaps(f func(int) string, extended bool) map[string]int { + m := make(map[string]int, len(ti.Nums)+len(ti.ExtNums)) + if !extended { + for k, v := range ti.Nums { + m[f(k)] = v + } + } else { + for k, v := range ti.ExtNums { + m[string(ti.ExtNumNames[k])] = v + } + } + return m +} + +// NumCaps returns all num capabilities. +func (ti *Terminfo) NumCaps() map[string]int { + return ti.numCaps(NumCapName, false) +} + +// NumCapsShort returns all num capabilities, using the short name as the +// index. +func (ti *Terminfo) NumCapsShort() map[string]int { + return ti.numCaps(NumCapNameShort, false) +} + +// ExtNumCaps returns all extended num capabilities. +func (ti *Terminfo) ExtNumCaps() map[string]int { + return ti.numCaps(NumCapName, true) +} + +// ExtNumCapsShort returns all extended num capabilities, using the short +// name as the index. +func (ti *Terminfo) ExtNumCapsShort() map[string]int { + return ti.numCaps(NumCapNameShort, true) +} + +// stringCaps returns all string and extended capabilities using f to format the +// index key. +func (ti *Terminfo) stringCaps(f func(int) string, extended bool) map[string][]byte { + m := make(map[string][]byte, len(ti.Strings)+len(ti.ExtStrings)) + if !extended { + for k, v := range ti.Strings { + m[f(k)] = v + } + } else { + for k, v := range ti.ExtStrings { + m[string(ti.ExtStringNames[k])] = v + } + } + return m +} + +// StringCaps returns all string capabilities. +func (ti *Terminfo) StringCaps() map[string][]byte { + return ti.stringCaps(StringCapName, false) +} + +// StringCapsShort returns all string capabilities, using the short name as the +// index. +func (ti *Terminfo) StringCapsShort() map[string][]byte { + return ti.stringCaps(StringCapNameShort, false) +} + +// ExtStringCaps returns all extended string capabilities. +func (ti *Terminfo) ExtStringCaps() map[string][]byte { + return ti.stringCaps(StringCapName, true) +} + +// ExtStringCapsShort returns all extended string capabilities, using the short +// name as the index. +func (ti *Terminfo) ExtStringCapsShort() map[string][]byte { + return ti.stringCaps(StringCapNameShort, true) +} + +// Has determines if the bool cap i is present. +func (ti *Terminfo) Has(i int) bool { + return ti.Bools[i] +} + +// Num returns the num cap i, or -1 if not present. +func (ti *Terminfo) Num(i int) int { + n, ok := ti.Nums[i] + if !ok { + return -1 + } + return n +} + +// Printf formats the string cap i, interpolating parameters v. +func (ti *Terminfo) Printf(i int, v ...interface{}) string { + return Printf(ti.Strings[i], v...) +} + +// Fprintf prints the string cap i to writer w, interpolating parameters v. +func (ti *Terminfo) Fprintf(w io.Writer, i int, v ...interface{}) { + Fprintf(w, ti.Strings[i], v...) +} + +// Color takes a foreground and background color and returns string that sets +// them for this terminal. +func (ti *Terminfo) Colorf(fg, bg int, str string) string { + maxColors := int(ti.Nums[MaxColors]) + // map bright colors to lower versions if the color table only holds 8. + if maxColors == 8 { + if fg > 7 && fg < 16 { + fg -= 8 + } + if bg > 7 && bg < 16 { + bg -= 8 + } + } + var s string + if maxColors > fg && fg >= 0 { + s += ti.Printf(SetAForeground, fg) + } + if maxColors > bg && bg >= 0 { + s += ti.Printf(SetABackground, bg) + } + return s + str + ti.Printf(ExitAttributeMode) +} + +// Goto returns a string suitable for addressing the cursor at the given +// row and column. The origin 0, 0 is in the upper left corner of the screen. +func (ti *Terminfo) Goto(row, col int) string { + return Printf(ti.Strings[CursorAddress], row, col) +} + +// Puts emits the string to the writer, but expands inline padding indications +// (of the form $<[delay]> where [delay] is msec) to a suitable number of +// padding characters (usually null bytes) based upon the supplied baud. At +// high baud rates, more padding characters will be inserted. +/*func (ti *Terminfo) Puts(w io.Writer, s string, lines, baud int) (int, error) { + var err error + for { + start := strings.Index(s, "$<") + if start == -1 { + // most strings don't need padding, which is good news! + return io.WriteString(w, s) + } + end := strings.Index(s, ">") + if end == -1 { + // unterminated... just emit bytes unadulterated. + return io.WriteString(w, "$<"+s) + } + var c int + c, err = io.WriteString(w, s[:start]) + if err != nil { + return n + c, err + } + n += c + s = s[start+2:] + val := s[:end] + s = s[end+1:] + var ms int + var dot, mandatory, asterisk bool + unit := 1000 + for _, ch := range val { + switch { + case ch >= '0' && ch <= '9': + ms = (ms * 10) + int(ch-'0') + if dot { + unit *= 10 + } + case ch == '.' && !dot: + dot = true + case ch == '*' && !asterisk: + ms *= lines + asterisk = true + case ch == '/': + mandatory = true + default: + break + } + } + z, pad := ((baud/8)/unit)*ms, ti.Strings[PadChar] + b := make([]byte, len(pad)*z) + for bp := copy(b, pad); bp < len(b); bp *= 2 { + copy(b[bp:], b[:bp]) + } + if (!ti.Bools[XonXoff] && baud > int(ti.Nums[PaddingBaudRate])) || mandatory { + c, err = w.Write(b) + if err != nil { + return n + c, err + } + n += c + } + } + return n, nil +}*/ diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go index e555a475..3ea05d01 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go @@ -12,6 +12,7 @@ import ( "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request" "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv" "go.opentelemetry.io/otel" + "go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/propagation" "go.opentelemetry.io/otel/trace" ) @@ -21,15 +22,16 @@ type middleware struct { operation string server string - tracer trace.Tracer - propagators propagation.TextMapPropagator - spanStartOptions []trace.SpanStartOption - readEvent bool - writeEvent bool - filters []Filter - spanNameFormatter func(string, *http.Request) string - publicEndpoint bool - publicEndpointFn func(*http.Request) bool + tracer trace.Tracer + propagators propagation.TextMapPropagator + spanStartOptions []trace.SpanStartOption + readEvent bool + writeEvent bool + filters []Filter + spanNameFormatter func(string, *http.Request) string + publicEndpoint bool + publicEndpointFn func(*http.Request) bool + metricAttributesFn func(*http.Request) []attribute.KeyValue semconv semconv.HTTPServer } @@ -79,6 +81,7 @@ func (h *middleware) configure(c *config) { h.publicEndpointFn = c.PublicEndpointFn h.server = c.ServerName h.semconv = semconv.NewHTTPServer(c.Meter) + h.metricAttributesFn = c.MetricAttributesFn } // serveHTTP sets up tracing and calls the given next http.Handler with the span @@ -189,14 +192,16 @@ func (h *middleware) serveHTTP(w http.ResponseWriter, r *http.Request, next http // Use floating point division here for higher precision (instead of Millisecond method). elapsedTime := float64(time.Since(requestStartTime)) / float64(time.Millisecond) + metricAttributes := semconv.MetricAttributes{ + Req: r, + StatusCode: statusCode, + AdditionalAttributes: append(labeler.Get(), h.metricAttributesFromRequest(r)...), + } + h.semconv.RecordMetrics(ctx, semconv.ServerMetricData{ - ServerName: h.server, - ResponseSize: bytesWritten, - MetricAttributes: semconv.MetricAttributes{ - Req: r, - StatusCode: statusCode, - AdditionalAttributes: labeler.Get(), - }, + ServerName: h.server, + ResponseSize: bytesWritten, + MetricAttributes: metricAttributes, MetricData: semconv.MetricData{ RequestSize: bw.BytesRead(), ElapsedTime: elapsedTime, @@ -204,6 +209,14 @@ func (h *middleware) serveHTTP(w http.ResponseWriter, r *http.Request, next http }) } +func (h *middleware) metricAttributesFromRequest(r *http.Request) []attribute.KeyValue { + var attributeForRequest []attribute.KeyValue + if h.metricAttributesFn != nil { + attributeForRequest = h.metricAttributesFn(r) + } + return attributeForRequest +} + // WithRouteTag annotates spans and metrics with the provided route name // with HTTP route attribute. func WithRouteTag(route string, h http.Handler) http.Handler { diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/body_wrapper.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/body_wrapper.go index a945f556..866aa21d 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/body_wrapper.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/body_wrapper.go @@ -1,3 +1,6 @@ +// Code created by gotmpl. DO NOT MODIFY. +// source: internal/shared/request/body_wrapper.go.tmpl + // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/gen.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/gen.go new file mode 100644 index 00000000..9e00dd2f --- /dev/null +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/gen.go @@ -0,0 +1,10 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package request // import "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request" + +// Generate request package: +//go:generate gotmpl --body=../../../../../../internal/shared/request/body_wrapper.go.tmpl "--data={}" --out=body_wrapper.go +//go:generate gotmpl --body=../../../../../../internal/shared/request/body_wrapper_test.go.tmpl "--data={}" --out=body_wrapper_test.go +//go:generate gotmpl --body=../../../../../../internal/shared/request/resp_writer_wrapper.go.tmpl "--data={}" --out=resp_writer_wrapper.go +//go:generate gotmpl --body=../../../../../../internal/shared/request/resp_writer_wrapper_test.go.tmpl "--data={}" --out=resp_writer_wrapper_test.go diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/resp_writer_wrapper.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/resp_writer_wrapper.go index fbc344cb..73184e7d 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/resp_writer_wrapper.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/resp_writer_wrapper.go @@ -1,3 +1,6 @@ +// Code created by gotmpl. DO NOT MODIFY. +// source: internal/shared/request/resp_writer_wrapper.go.tmpl + // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/env.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/env.go index 3b036f8a..4693a019 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/env.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/env.go @@ -1,3 +1,6 @@ +// Code created by gotmpl. DO NOT MODIFY. +// source: internal/shared/semconv/env.go.tmpl + // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 @@ -16,6 +19,10 @@ import ( "go.opentelemetry.io/otel/metric" ) +// OTelSemConvStabilityOptIn is an environment variable. +// That can be set to "old" or "http/dup" to opt into the new HTTP semantic conventions. +const OTelSemConvStabilityOptIn = "OTEL_SEMCONV_STABILITY_OPT_IN" + type ResponseTelemetry struct { StatusCode int ReadBytes int64 @@ -31,6 +38,11 @@ type HTTPServer struct { requestBytesCounter metric.Int64Counter responseBytesCounter metric.Int64Counter serverLatencyMeasure metric.Float64Histogram + + // New metrics + requestBodySizeHistogram metric.Int64Histogram + responseBodySizeHistogram metric.Int64Histogram + requestDurationHistogram metric.Float64Histogram } // RequestTraceAttrs returns trace attributes for an HTTP request received by a @@ -56,6 +68,15 @@ func (s HTTPServer) RequestTraceAttrs(server string, req *http.Request) []attrib return OldHTTPServer{}.RequestTraceAttrs(server, req) } +func (s HTTPServer) NetworkTransportAttr(network string) []attribute.KeyValue { + if s.duplicate { + return append([]attribute.KeyValue{OldHTTPServer{}.NetworkTransportAttr(network)}, CurrentHTTPServer{}.NetworkTransportAttr(network)) + } + return []attribute.KeyValue{ + OldHTTPServer{}.NetworkTransportAttr(network), + } +} + // ResponseTraceAttrs returns trace attributes for telemetry from an HTTP response. // // If any of the fields in the ResponseTelemetry are not set the attribute will be omitted. @@ -103,38 +124,56 @@ type MetricData struct { ElapsedTime float64 } -var metricAddOptionPool = &sync.Pool{ - New: func() interface{} { - return &[]metric.AddOption{} - }, -} - -func (s HTTPServer) RecordMetrics(ctx context.Context, md ServerMetricData) { - if s.requestBytesCounter == nil || s.responseBytesCounter == nil || s.serverLatencyMeasure == nil { - // This will happen if an HTTPServer{} is used instead of NewHTTPServer. - return +var ( + metricAddOptionPool = &sync.Pool{ + New: func() interface{} { + return &[]metric.AddOption{} + }, } - attributes := OldHTTPServer{}.MetricAttributes(md.ServerName, md.Req, md.StatusCode, md.AdditionalAttributes) - o := metric.WithAttributeSet(attribute.NewSet(attributes...)) - addOpts := metricAddOptionPool.Get().(*[]metric.AddOption) - *addOpts = append(*addOpts, o) - s.requestBytesCounter.Add(ctx, md.RequestSize, *addOpts...) - s.responseBytesCounter.Add(ctx, md.ResponseSize, *addOpts...) - s.serverLatencyMeasure.Record(ctx, md.ElapsedTime, o) - *addOpts = (*addOpts)[:0] - metricAddOptionPool.Put(addOpts) + metricRecordOptionPool = &sync.Pool{ + New: func() interface{} { + return &[]metric.RecordOption{} + }, + } +) - // TODO: Duplicate Metrics +func (s HTTPServer) RecordMetrics(ctx context.Context, md ServerMetricData) { + if s.requestBytesCounter != nil && s.responseBytesCounter != nil && s.serverLatencyMeasure != nil { + attributes := OldHTTPServer{}.MetricAttributes(md.ServerName, md.Req, md.StatusCode, md.AdditionalAttributes) + o := metric.WithAttributeSet(attribute.NewSet(attributes...)) + addOpts := metricAddOptionPool.Get().(*[]metric.AddOption) + *addOpts = append(*addOpts, o) + s.requestBytesCounter.Add(ctx, md.RequestSize, *addOpts...) + s.responseBytesCounter.Add(ctx, md.ResponseSize, *addOpts...) + s.serverLatencyMeasure.Record(ctx, md.ElapsedTime, o) + *addOpts = (*addOpts)[:0] + metricAddOptionPool.Put(addOpts) + } + + if s.duplicate && s.requestDurationHistogram != nil && s.requestBodySizeHistogram != nil && s.responseBodySizeHistogram != nil { + attributes := CurrentHTTPServer{}.MetricAttributes(md.ServerName, md.Req, md.StatusCode, md.AdditionalAttributes) + o := metric.WithAttributeSet(attribute.NewSet(attributes...)) + recordOpts := metricRecordOptionPool.Get().(*[]metric.RecordOption) + *recordOpts = append(*recordOpts, o) + s.requestBodySizeHistogram.Record(ctx, md.RequestSize, *recordOpts...) + s.responseBodySizeHistogram.Record(ctx, md.ResponseSize, *recordOpts...) + s.requestDurationHistogram.Record(ctx, md.ElapsedTime, o) + *recordOpts = (*recordOpts)[:0] + metricRecordOptionPool.Put(recordOpts) + } } func NewHTTPServer(meter metric.Meter) HTTPServer { - env := strings.ToLower(os.Getenv("OTEL_SEMCONV_STABILITY_OPT_IN")) + env := strings.ToLower(os.Getenv(OTelSemConvStabilityOptIn)) duplicate := env == "http/dup" server := HTTPServer{ duplicate: duplicate, } server.requestBytesCounter, server.responseBytesCounter, server.serverLatencyMeasure = OldHTTPServer{}.createMeasures(meter) + if duplicate { + server.requestBodySizeHistogram, server.responseBodySizeHistogram, server.requestDurationHistogram = CurrentHTTPServer{}.createMeasures(meter) + } return server } @@ -145,14 +184,23 @@ type HTTPClient struct { requestBytesCounter metric.Int64Counter responseBytesCounter metric.Int64Counter latencyMeasure metric.Float64Histogram + + // new metrics + requestBodySize metric.Int64Histogram + requestDuration metric.Float64Histogram } func NewHTTPClient(meter metric.Meter) HTTPClient { - env := strings.ToLower(os.Getenv("OTEL_SEMCONV_STABILITY_OPT_IN")) + env := strings.ToLower(os.Getenv(OTelSemConvStabilityOptIn)) + duplicate := env == "http/dup" client := HTTPClient{ - duplicate: env == "http/dup", + duplicate: duplicate, } client.requestBytesCounter, client.responseBytesCounter, client.latencyMeasure = OldHTTPClient{}.createMeasures(meter) + if duplicate { + client.requestBodySize, client.requestDuration = CurrentHTTPClient{}.createMeasures(meter) + } + return client } @@ -204,34 +252,56 @@ func (o MetricOpts) AddOptions() metric.AddOption { return o.addOptions } -func (c HTTPClient) MetricOptions(ma MetricAttributes) MetricOpts { +func (c HTTPClient) MetricOptions(ma MetricAttributes) map[string]MetricOpts { + opts := map[string]MetricOpts{} + attributes := OldHTTPClient{}.MetricAttributes(ma.Req, ma.StatusCode, ma.AdditionalAttributes) - // TODO: Duplicate Metrics set := metric.WithAttributeSet(attribute.NewSet(attributes...)) - return MetricOpts{ + opts["old"] = MetricOpts{ measurement: set, addOptions: set, } + + if c.duplicate { + attributes := CurrentHTTPClient{}.MetricAttributes(ma.Req, ma.StatusCode, ma.AdditionalAttributes) + set := metric.WithAttributeSet(attribute.NewSet(attributes...)) + opts["new"] = MetricOpts{ + measurement: set, + addOptions: set, + } + } + + return opts } -func (s HTTPClient) RecordMetrics(ctx context.Context, md MetricData, opts MetricOpts) { +func (s HTTPClient) RecordMetrics(ctx context.Context, md MetricData, opts map[string]MetricOpts) { if s.requestBytesCounter == nil || s.latencyMeasure == nil { // This will happen if an HTTPClient{} is used instead of NewHTTPClient(). return } - s.requestBytesCounter.Add(ctx, md.RequestSize, opts.AddOptions()) - s.latencyMeasure.Record(ctx, md.ElapsedTime, opts.MeasurementOption()) + s.requestBytesCounter.Add(ctx, md.RequestSize, opts["old"].AddOptions()) + s.latencyMeasure.Record(ctx, md.ElapsedTime, opts["old"].MeasurementOption()) - // TODO: Duplicate Metrics + if s.duplicate { + s.requestBodySize.Record(ctx, md.RequestSize, opts["new"].MeasurementOption()) + s.requestDuration.Record(ctx, md.ElapsedTime, opts["new"].MeasurementOption()) + } } -func (s HTTPClient) RecordResponseSize(ctx context.Context, responseData int64, opts metric.AddOption) { +func (s HTTPClient) RecordResponseSize(ctx context.Context, responseData int64, opts map[string]MetricOpts) { if s.responseBytesCounter == nil { // This will happen if an HTTPClient{} is used instead of NewHTTPClient(). return } - s.responseBytesCounter.Add(ctx, responseData, opts) - // TODO: Duplicate Metrics + s.responseBytesCounter.Add(ctx, responseData, opts["old"].AddOptions()) +} + +func (s HTTPClient) TraceAttributes(host string) []attribute.KeyValue { + if s.duplicate { + return append(OldHTTPClient{}.TraceAttributes(host), CurrentHTTPClient{}.TraceAttributes(host)...) + } + + return OldHTTPClient{}.TraceAttributes(host) } diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/gen.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/gen.go new file mode 100644 index 00000000..f2cf8a15 --- /dev/null +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/gen.go @@ -0,0 +1,14 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package semconv // import "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv" + +// Generate semconv package: +//go:generate gotmpl --body=../../../../../../internal/shared/semconv/bench_test.go.tmpl "--data={ \"pkg\": \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\" }" --out=bench_test.go +//go:generate gotmpl --body=../../../../../../internal/shared/semconv/env.go.tmpl "--data={ \"pkg\": \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\" }" --out=env.go +//go:generate gotmpl --body=../../../../../../internal/shared/semconv/env_test.go.tmpl "--data={ \"pkg\": \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\" }" --out=env_test.go +//go:generate gotmpl --body=../../../../../../internal/shared/semconv/httpconv.go.tmpl "--data={ \"pkg\": \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\" }" --out=httpconv.go +//go:generate gotmpl --body=../../../../../../internal/shared/semconv/httpconv_test.go.tmpl "--data={ \"pkg\": \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\" }" --out=httpconv_test.go +//go:generate gotmpl --body=../../../../../../internal/shared/semconv/util.go.tmpl "--data={ \"pkg\": \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\" }" --out=util.go +//go:generate gotmpl --body=../../../../../../internal/shared/semconv/util_test.go.tmpl "--data={ \"pkg\": \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\" }" --out=util_test.go +//go:generate gotmpl --body=../../../../../../internal/shared/semconv/v1.20.0.go.tmpl "--data={ \"pkg\": \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\" }" --out=v1.20.0.go diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/httpconv.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/httpconv.go index dc9ec7bc..8b85eff9 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/httpconv.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/httpconv.go @@ -1,3 +1,6 @@ +// Code created by gotmpl. DO NOT MODIFY. +// source: internal/shared/semconv/httpconv.go.tmpl + // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 @@ -7,10 +10,13 @@ import ( "fmt" "net/http" "reflect" + "slices" "strconv" "strings" "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/metric" + "go.opentelemetry.io/otel/metric/noop" semconvNew "go.opentelemetry.io/otel/semconv/v1.26.0" ) @@ -135,6 +141,19 @@ func (n CurrentHTTPServer) RequestTraceAttrs(server string, req *http.Request) [ return attrs } +func (o CurrentHTTPServer) NetworkTransportAttr(network string) attribute.KeyValue { + switch network { + case "tcp", "tcp4", "tcp6": + return semconvNew.NetworkTransportTCP + case "udp", "udp4", "udp6": + return semconvNew.NetworkTransportUDP + case "unix", "unixgram", "unixpacket": + return semconvNew.NetworkTransportUnix + default: + return semconvNew.NetworkTransportPipe + } +} + func (n CurrentHTTPServer) method(method string) (attribute.KeyValue, attribute.KeyValue) { if method == "" { return semconvNew.HTTPRequestMethodGet, attribute.KeyValue{} @@ -199,6 +218,86 @@ func (n CurrentHTTPServer) Route(route string) attribute.KeyValue { return semconvNew.HTTPRoute(route) } +func (n CurrentHTTPServer) createMeasures(meter metric.Meter) (metric.Int64Histogram, metric.Int64Histogram, metric.Float64Histogram) { + if meter == nil { + return noop.Int64Histogram{}, noop.Int64Histogram{}, noop.Float64Histogram{} + } + + var err error + requestBodySizeHistogram, err := meter.Int64Histogram( + semconvNew.HTTPServerRequestBodySizeName, + metric.WithUnit(semconvNew.HTTPServerRequestBodySizeUnit), + metric.WithDescription(semconvNew.HTTPServerRequestBodySizeDescription), + ) + handleErr(err) + + responseBodySizeHistogram, err := meter.Int64Histogram( + semconvNew.HTTPServerResponseBodySizeName, + metric.WithUnit(semconvNew.HTTPServerResponseBodySizeUnit), + metric.WithDescription(semconvNew.HTTPServerResponseBodySizeDescription), + ) + handleErr(err) + requestDurationHistogram, err := meter.Float64Histogram( + semconvNew.HTTPServerRequestDurationName, + metric.WithUnit(semconvNew.HTTPServerRequestDurationUnit), + metric.WithDescription(semconvNew.HTTPServerRequestDurationDescription), + ) + handleErr(err) + + return requestBodySizeHistogram, responseBodySizeHistogram, requestDurationHistogram +} + +func (n CurrentHTTPServer) MetricAttributes(server string, req *http.Request, statusCode int, additionalAttributes []attribute.KeyValue) []attribute.KeyValue { + num := len(additionalAttributes) + 3 + var host string + var p int + if server == "" { + host, p = SplitHostPort(req.Host) + } else { + // Prioritize the primary server name. + host, p = SplitHostPort(server) + if p < 0 { + _, p = SplitHostPort(req.Host) + } + } + hostPort := requiredHTTPPort(req.TLS != nil, p) + if hostPort > 0 { + num++ + } + protoName, protoVersion := netProtocol(req.Proto) + if protoName != "" { + num++ + } + if protoVersion != "" { + num++ + } + + if statusCode > 0 { + num++ + } + + attributes := slices.Grow(additionalAttributes, num) + attributes = append(attributes, + semconvNew.HTTPRequestMethodKey.String(standardizeHTTPMethod(req.Method)), + n.scheme(req.TLS != nil), + semconvNew.ServerAddress(host)) + + if hostPort > 0 { + attributes = append(attributes, semconvNew.ServerPort(hostPort)) + } + if protoName != "" { + attributes = append(attributes, semconvNew.NetworkProtocolName(protoName)) + } + if protoVersion != "" { + attributes = append(attributes, semconvNew.NetworkProtocolVersion(protoVersion)) + } + + if statusCode > 0 { + attributes = append(attributes, semconvNew.HTTPResponseStatusCode(statusCode)) + } + return attributes +} + type CurrentHTTPClient struct{} // RequestTraceAttrs returns trace attributes for an HTTP request made by a client. @@ -343,6 +442,98 @@ func (n CurrentHTTPClient) method(method string) (attribute.KeyValue, attribute. return semconvNew.HTTPRequestMethodGet, orig } +func (n CurrentHTTPClient) createMeasures(meter metric.Meter) (metric.Int64Histogram, metric.Float64Histogram) { + if meter == nil { + return noop.Int64Histogram{}, noop.Float64Histogram{} + } + + var err error + requestBodySize, err := meter.Int64Histogram( + semconvNew.HTTPClientRequestBodySizeName, + metric.WithUnit(semconvNew.HTTPClientRequestBodySizeUnit), + metric.WithDescription(semconvNew.HTTPClientRequestBodySizeDescription), + ) + handleErr(err) + + requestDuration, err := meter.Float64Histogram( + semconvNew.HTTPClientRequestDurationName, + metric.WithUnit(semconvNew.HTTPClientRequestDurationUnit), + metric.WithDescription(semconvNew.HTTPClientRequestDurationDescription), + ) + handleErr(err) + + return requestBodySize, requestDuration +} + +func (n CurrentHTTPClient) MetricAttributes(req *http.Request, statusCode int, additionalAttributes []attribute.KeyValue) []attribute.KeyValue { + num := len(additionalAttributes) + 2 + var h string + if req.URL != nil { + h = req.URL.Host + } + var requestHost string + var requestPort int + for _, hostport := range []string{h, req.Header.Get("Host")} { + requestHost, requestPort = SplitHostPort(hostport) + if requestHost != "" || requestPort > 0 { + break + } + } + + port := requiredHTTPPort(req.URL != nil && req.URL.Scheme == "https", requestPort) + if port > 0 { + num++ + } + + protoName, protoVersion := netProtocol(req.Proto) + if protoName != "" { + num++ + } + if protoVersion != "" { + num++ + } + + if statusCode > 0 { + num++ + } + + attributes := slices.Grow(additionalAttributes, num) + attributes = append(attributes, + semconvNew.HTTPRequestMethodKey.String(standardizeHTTPMethod(req.Method)), + semconvNew.ServerAddress(requestHost), + n.scheme(req.TLS != nil), + ) + + if port > 0 { + attributes = append(attributes, semconvNew.ServerPort(port)) + } + if protoName != "" { + attributes = append(attributes, semconvNew.NetworkProtocolName(protoName)) + } + if protoVersion != "" { + attributes = append(attributes, semconvNew.NetworkProtocolVersion(protoVersion)) + } + + if statusCode > 0 { + attributes = append(attributes, semconvNew.HTTPResponseStatusCode(statusCode)) + } + return attributes +} + +// Attributes for httptrace. +func (n CurrentHTTPClient) TraceAttributes(host string) []attribute.KeyValue { + return []attribute.KeyValue{ + semconvNew.ServerAddress(host), + } +} + +func (n CurrentHTTPClient) scheme(https bool) attribute.KeyValue { // nolint:revive + if https { + return semconvNew.URLScheme("https") + } + return semconvNew.URLScheme("http") +} + func isErrorStatusCode(code int) bool { return code >= 400 || code < 100 } diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go index 93e8d0f9..315d3dd2 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go @@ -1,3 +1,6 @@ +// Code created by gotmpl. DO NOT MODIFY. +// source: internal/shared/semconv/util.go.tmpl + // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 @@ -75,7 +78,16 @@ func serverClientIP(xForwardedFor string) string { func netProtocol(proto string) (name string, version string) { name, version, _ = strings.Cut(proto, "/") - name = strings.ToLower(name) + switch name { + case "HTTP": + name = "http" + case "QUIC": + name = "quic" + case "SPDY": + name = "spdy" + default: + name = strings.ToLower(name) + } return name, version } @@ -96,3 +108,13 @@ func handleErr(err error) { otel.Handle(err) } } + +func standardizeHTTPMethod(method string) string { + method = strings.ToUpper(method) + switch method { + case http.MethodConnect, http.MethodDelete, http.MethodGet, http.MethodHead, http.MethodOptions, http.MethodPatch, http.MethodPost, http.MethodPut, http.MethodTrace: + default: + method = "_OTHER" + } + return method +} diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/v1.20.0.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/v1.20.0.go index c042249d..742c2113 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/v1.20.0.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/v1.20.0.go @@ -1,3 +1,6 @@ +// Code created by gotmpl. DO NOT MODIFY. +// source: internal/shared/semconv/v120.0.go.tmpl + // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 @@ -8,7 +11,6 @@ import ( "io" "net/http" "slices" - "strings" "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil" "go.opentelemetry.io/otel/attribute" @@ -39,6 +41,10 @@ func (o OldHTTPServer) RequestTraceAttrs(server string, req *http.Request) []att return semconvutil.HTTPServerRequest(server, req) } +func (o OldHTTPServer) NetworkTransportAttr(network string) attribute.KeyValue { + return semconvutil.NetTransport(network) +} + // ResponseTraceAttrs returns trace attributes for telemetry from an HTTP response. // // If any of the fields in the ResponseTelemetry are not set the attribute will be omitted. @@ -144,7 +150,7 @@ func (o OldHTTPServer) MetricAttributes(server string, req *http.Request, status attributes := slices.Grow(additionalAttributes, n) attributes = append(attributes, - standardizeHTTPMethodMetric(req.Method), + semconv.HTTPMethod(standardizeHTTPMethod(req.Method)), o.scheme(req.TLS != nil), semconv.NetHostName(host)) @@ -214,7 +220,7 @@ func (o OldHTTPClient) MetricAttributes(req *http.Request, statusCode int, addit attributes := slices.Grow(additionalAttributes, n) attributes = append(attributes, - standardizeHTTPMethodMetric(req.Method), + semconv.HTTPMethod(standardizeHTTPMethod(req.Method)), semconv.NetPeerName(requestHost), ) @@ -263,12 +269,9 @@ func (o OldHTTPClient) createMeasures(meter metric.Meter) (metric.Int64Counter, return requestBytesCounter, responseBytesCounter, latencyMeasure } -func standardizeHTTPMethodMetric(method string) attribute.KeyValue { - method = strings.ToUpper(method) - switch method { - case http.MethodConnect, http.MethodDelete, http.MethodGet, http.MethodHead, http.MethodOptions, http.MethodPatch, http.MethodPost, http.MethodPut, http.MethodTrace: - default: - method = "_OTHER" +// Attributes for httptrace. +func (c OldHTTPClient) TraceAttributes(host string) []attribute.KeyValue { + return []attribute.KeyValue{ + semconv.NetHostName(host), } - return semconv.HTTPMethod(method) } diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/netconv.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/netconv.go index b80a1db6..de74fa25 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/netconv.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/netconv.go @@ -200,6 +200,15 @@ func splitHostPort(hostport string) (host string, port int) { func netProtocol(proto string) (name string, version string) { name, version, _ = strings.Cut(proto, "/") - name = strings.ToLower(name) + switch name { + case "HTTP": + name = "http" + case "QUIC": + name = "quic" + case "SPDY": + name = "spdy" + default: + name = strings.ToLower(name) + } return name, version } diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go index 39681ad4..44b86ad8 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go @@ -153,7 +153,7 @@ func (t *Transport) RoundTrip(r *http.Request) (*http.Response, error) { // For handling response bytes we leverage a callback when the client reads the http response readRecordFunc := func(n int64) { - t.semconv.RecordResponseSize(ctx, n, metricOpts.AddOptions()) + t.semconv.RecordResponseSize(ctx, n, metricOpts) } // traces diff --git a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go index 353e43b9..1ec9a00c 100644 --- a/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go +++ b/vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go @@ -5,7 +5,7 @@ package otelhttp // import "go.opentelemetry.io/contrib/instrumentation/net/http // Version is the current release version of the otelhttp instrumentation. func Version() string { - return "0.58.0" + return "0.60.0" // This string is updated by the pre_release.sh script during release } diff --git a/vendor/go.opentelemetry.io/otel/.gitignore b/vendor/go.opentelemetry.io/otel/.gitignore index ae8577ef..749e8e88 100644 --- a/vendor/go.opentelemetry.io/otel/.gitignore +++ b/vendor/go.opentelemetry.io/otel/.gitignore @@ -1,6 +1,7 @@ .DS_Store Thumbs.db +.cache/ .tools/ venv/ .idea/ diff --git a/vendor/go.opentelemetry.io/otel/.golangci.yml b/vendor/go.opentelemetry.io/otel/.golangci.yml index ce3f40b6..c58e48ab 100644 --- a/vendor/go.opentelemetry.io/otel/.golangci.yml +++ b/vendor/go.opentelemetry.io/otel/.golangci.yml @@ -25,13 +25,13 @@ linters: - perfsprint - revive - staticcheck - - tenv - testifylint - typecheck - unconvert - unused - unparam - usestdlibvars + - usetesting issues: # Maximum issues count per one linter. @@ -175,132 +175,60 @@ linters-settings: # This means that linting errors with less than 0.8 confidence will be ignored. # Default: 0.8 confidence: 0.01 + # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md rules: - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#blank-imports - name: blank-imports - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bool-literal-in-expr - name: bool-literal-in-expr - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#constant-logical-expr - name: constant-logical-expr - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-as-argument - # TODO (#3372) re-enable linter when it is compatible. https://github.com/golangci/golangci-lint/issues/3280 - name: context-as-argument disabled: true arguments: - allowTypesBefore: "*testing.T" - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-keys-type + - allowTypesBefore: "*testing.T" - name: context-keys-type - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#deep-exit - name: deep-exit - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#defer - name: defer - disabled: false arguments: - ["call-chain", "loop"] - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#dot-imports - name: dot-imports - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#duplicated-imports - name: duplicated-imports - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#early-return - name: early-return - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-block + arguments: + - "preserveScope" - name: empty-block - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-lines - name: empty-lines - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-naming - name: error-naming - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-return - name: error-return - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-strings - name: error-strings - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#errorf - name: errorf - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#exported - name: exported - disabled: false arguments: - "sayRepetitiveInsteadOfStutters" - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#flag-parameter - name: flag-parameter - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#identical-branches - name: identical-branches - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#if-return - name: if-return - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#increment-decrement - - name: increment-decrement - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#indent-error-flow - - name: indent-error-flow - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#import-shadowing - name: import-shadowing - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#package-comments + - name: increment-decrement + - name: indent-error-flow + arguments: + - "preserveScope" - name: package-comments - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range - name: range - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-in-closure - name: range-val-in-closure - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-address - name: range-val-address - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redefines-builtin-id - name: redefines-builtin-id - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-format - name: string-format - disabled: false arguments: - - panic - '/^[^\n]*$/' - must not contain line breaks - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#struct-tag - name: struct-tag - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#superfluous-else - name: superfluous-else - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-equal - - name: time-equal - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-naming - - name: var-naming - disabled: false arguments: - - ["ID"] # AllowList - - ["Otel", "Aws", "Gcp"] # DenyList - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-declaration - - name: var-declaration - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unconditional-recursion + - "preserveScope" + - name: time-equal - name: unconditional-recursion - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return - name: unexported-return - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unhandled-error - name: unhandled-error - disabled: false arguments: - "fmt.Fprint" - "fmt.Fprintf" @@ -308,15 +236,14 @@ linters-settings: - "fmt.Print" - "fmt.Printf" - "fmt.Println" - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unnecessary-stmt - name: unnecessary-stmt - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#useless-break - name: useless-break - disabled: false - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#waitgroup-by-value + - name: var-declaration + - name: var-naming + arguments: + - ["ID"] # AllowList + - ["Otel", "Aws", "Gcp"] # DenyList - name: waitgroup-by-value - disabled: false testifylint: enable-all: true disable: diff --git a/vendor/go.opentelemetry.io/otel/CHANGELOG.md b/vendor/go.opentelemetry.io/otel/CHANGELOG.md index a30988f2..c076db28 100644 --- a/vendor/go.opentelemetry.io/otel/CHANGELOG.md +++ b/vendor/go.opentelemetry.io/otel/CHANGELOG.md @@ -8,6 +8,61 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] + + + +## [1.35.0/0.57.0/0.11.0] 2025-03-05 + +This release is the last to support [Go 1.22]. +The next release will require at least [Go 1.23]. + +### Added + +- Add `ValueFromAttribute` and `KeyValueFromAttribute` in `go.opentelemetry.io/otel/log`. (#6180) +- Add `EventName` and `SetEventName` to `Record` in `go.opentelemetry.io/otel/log`. (#6187) +- Add `EventName` to `RecordFactory` in `go.opentelemetry.io/otel/log/logtest`. (#6187) +- `AssertRecordEqual` in `go.opentelemetry.io/otel/log/logtest` checks `Record.EventName`. (#6187) +- Add `EventName` and `SetEventName` to `Record` in `go.opentelemetry.io/otel/sdk/log`. (#6193) +- Add `EventName` to `RecordFactory` in `go.opentelemetry.io/otel/sdk/log/logtest`. (#6193) +- Emit `Record.EventName` field in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`. (#6211) +- Emit `Record.EventName` field in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#6211) +- Emit `Record.EventName` field in `go.opentelemetry.io/otel/exporters/stdout/stdoutlog` (#6210) +- The `go.opentelemetry.io/otel/semconv/v1.28.0` package. + The package contains semantic conventions from the `v1.28.0` version of the OpenTelemetry Semantic Conventions. + See the [migration documentation](./semconv/v1.28.0/MIGRATION.md) for information on how to upgrade from `go.opentelemetry.io/otel/semconv/v1.27.0`(#6236) +- The `go.opentelemetry.io/otel/semconv/v1.30.0` package. + The package contains semantic conventions from the `v1.30.0` version of the OpenTelemetry Semantic Conventions. + See the [migration documentation](./semconv/v1.30.0/MIGRATION.md) for information on how to upgrade from `go.opentelemetry.io/otel/semconv/v1.28.0`(#6240) +- Document the pitfalls of using `Resource` as a comparable type. + `Resource.Equal` and `Resource.Equivalent` should be used instead. (#6272) +- Support [Go 1.24]. (#6304) +- Add `FilterProcessor` and `EnabledParameters` in `go.opentelemetry.io/otel/sdk/log`. + It replaces `go.opentelemetry.io/otel/sdk/log/internal/x.FilterProcessor`. + Compared to previous version it additionally gives the possibility to filter by resource and instrumentation scope. (#6317) + +### Changed + +- Update `github.com/prometheus/common` to `v0.62.0`, which changes the `NameValidationScheme` to `NoEscaping`. + This allows metrics names to keep original delimiters (e.g. `.`), rather than replacing with underscores. + This is controlled by the `Content-Type` header, or can be reverted by setting `NameValidationScheme` to `LegacyValidation` in `github.com/prometheus/common/model`. (#6198) + +### Fixes + +- Eliminate goroutine leak for the processor returned by `NewSimpleSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace` when `Shutdown` is called and the passed `ctx` is canceled and `SpanExporter.Shutdown` has not returned. (#6368) +- Eliminate goroutine leak for the processor returned by `NewBatchSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace` when `ForceFlush` is called and the passed `ctx` is canceled and `SpanExporter.Export` has not returned. (#6369) + +## [1.34.0/0.56.0/0.10.0] 2025-01-17 + +### Changed + +- Remove the notices from `Logger` to make the whole Logs API user-facing in `go.opentelemetry.io/otel/log`. (#6167) + +### Fixed + +- Relax minimum Go version to 1.22.0 in various modules. (#6073) +- The `Type` name logged for the `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` client is corrected from `otlphttpgrpc` to `otlptracegrpc`. (#6143) +- The `Type` name logged for the `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlphttpgrpc` client is corrected from `otlphttphttp` to `otlptracehttp`. (#6143) + ## [1.33.0/0.55.0/0.9.0/0.0.12] 2024-12-12 ### Added @@ -37,9 +92,6 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - Fix attribute value truncation in `go.opentelemetry.io/otel/sdk/trace`. (#5997) - Fix attribute value truncation in `go.opentelemetry.io/otel/sdk/log`. (#6032) - - - ## [1.32.0/0.54.0/0.8.0/0.0.11] 2024-11-08 ### Added @@ -3185,7 +3237,9 @@ It contains api and sdk for trace and meter. - CircleCI build CI manifest files. - CODEOWNERS file to track owners of this project. -[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...HEAD +[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.35.0...HEAD +[1.35.0/0.57.0/0.11.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.35.0 +[1.34.0/0.56.0/0.10.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.34.0 [1.33.0/0.55.0/0.9.0/0.0.12]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.33.0 [1.32.0/0.54.0/0.8.0/0.0.11]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.32.0 [1.31.0/0.53.0/0.7.0/0.0.10]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.31.0 @@ -3275,6 +3329,7 @@ It contains api and sdk for trace and meter. +[Go 1.24]: https://go.dev/doc/go1.24 [Go 1.23]: https://go.dev/doc/go1.23 [Go 1.22]: https://go.dev/doc/go1.22 [Go 1.21]: https://go.dev/doc/go1.21 diff --git a/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md b/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md index 22a2e9db..7b8af585 100644 --- a/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md +++ b/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md @@ -181,6 +181,18 @@ patterns in the spec. For a deeper discussion, see [this](https://github.com/open-telemetry/opentelemetry-specification/issues/165). +## Tests + +Each functionality should be covered by tests. + +Performance-critical functionality should also be covered by benchmarks. + +- Pull requests adding a performance-critical functionality +should have `go test -bench` output in their description. +- Pull requests changing a performance-critical functionality +should have [`benchstat`](https://pkg.go.dev/golang.org/x/perf/cmd/benchstat) +output in their description. + ## Documentation Each (non-internal, non-test) package must be documented using diff --git a/vendor/go.opentelemetry.io/otel/Makefile b/vendor/go.opentelemetry.io/otel/Makefile index a7f6d8cc..226410d7 100644 --- a/vendor/go.opentelemetry.io/otel/Makefile +++ b/vendor/go.opentelemetry.io/otel/Makefile @@ -11,6 +11,10 @@ ALL_COVERAGE_MOD_DIRS := $(shell find . -type f -name 'go.mod' -exec dirname {} GO = go TIMEOUT = 60 +# User to run as in docker images. +DOCKER_USER=$(shell id -u):$(shell id -g) +DEPENDENCIES_DOCKERFILE=./dependencies.Dockerfile + .DEFAULT_GOAL := precommit .PHONY: precommit ci @@ -81,20 +85,20 @@ PIP := $(PYTOOLS)/pip WORKDIR := /workdir # The python image to use for the virtual environment. -PYTHONIMAGE := python:3.11.3-slim-bullseye +PYTHONIMAGE := $(shell awk '$$4=="python" {print $$2}' $(DEPENDENCIES_DOCKERFILE)) # Run the python image with the current directory mounted. -DOCKERPY := docker run --rm -v "$(CURDIR):$(WORKDIR)" -w $(WORKDIR) $(PYTHONIMAGE) +DOCKERPY := docker run --rm -u $(DOCKER_USER) -v "$(CURDIR):$(WORKDIR)" -w $(WORKDIR) $(PYTHONIMAGE) # Create a virtual environment for Python tools. $(PYTOOLS): # The `--upgrade` flag is needed to ensure that the virtual environment is # created with the latest pip version. - @$(DOCKERPY) bash -c "python3 -m venv $(VENVDIR) && $(PIP) install --upgrade pip" + @$(DOCKERPY) bash -c "python3 -m venv $(VENVDIR) && $(PIP) install --upgrade --cache-dir=$(WORKDIR)/.cache/pip pip" # Install python packages into the virtual environment. $(PYTOOLS)/%: $(PYTOOLS) - @$(DOCKERPY) $(PIP) install -r requirements.txt + @$(DOCKERPY) $(PIP) install --cache-dir=$(WORKDIR)/.cache/pip -r requirements.txt CODESPELL = $(PYTOOLS)/codespell $(CODESPELL): PACKAGE=codespell @@ -119,7 +123,7 @@ vanity-import-fix: $(PORTO) # Generate go.work file for local development. .PHONY: go-work go-work: $(CROSSLINK) - $(CROSSLINK) work --root=$(shell pwd) + $(CROSSLINK) work --root=$(shell pwd) --go=1.22.7 # Build @@ -265,13 +269,30 @@ check-clean-work-tree: exit 1; \ fi +# The weaver docker image to use for semconv-generate. +WEAVER_IMAGE := $(shell awk '$$4=="weaver" {print $$2}' $(DEPENDENCIES_DOCKERFILE)) + SEMCONVPKG ?= "semconv/" .PHONY: semconv-generate -semconv-generate: $(SEMCONVGEN) $(SEMCONVKIT) +semconv-generate: $(SEMCONVKIT) [ "$(TAG)" ] || ( echo "TAG unset: missing opentelemetry semantic-conventions tag"; exit 1 ) - [ "$(OTEL_SEMCONV_REPO)" ] || ( echo "OTEL_SEMCONV_REPO unset: missing path to opentelemetry semantic-conventions repo"; exit 1 ) - $(SEMCONVGEN) -i "$(OTEL_SEMCONV_REPO)/model/." --only=attribute_group -p conventionType=trace -f attribute_group.go -z "$(SEMCONVPKG)/capitalizations.txt" -t "$(SEMCONVPKG)/template.j2" -s "$(TAG)" - $(SEMCONVGEN) -i "$(OTEL_SEMCONV_REPO)/model/." --only=metric -f metric.go -t "$(SEMCONVPKG)/metric_template.j2" -s "$(TAG)" + # Ensure the target directory for source code is available. + mkdir -p $(PWD)/$(SEMCONVPKG)/${TAG} + # Note: We mount a home directory for downloading/storing the semconv repository. + # Weaver will automatically clean the cache when finished, but the directories will remain. + mkdir -p ~/.weaver + docker run --rm \ + -u $(DOCKER_USER) \ + --env HOME=/tmp/weaver \ + --mount 'type=bind,source=$(PWD)/semconv,target=/home/weaver/templates/registry/go,readonly' \ + --mount 'type=bind,source=$(PWD)/semconv/${TAG},target=/home/weaver/target' \ + --mount 'type=bind,source=$(HOME)/.weaver,target=/tmp/weaver/.weaver' \ + $(WEAVER_IMAGE) registry generate \ + --registry=https://github.com/open-telemetry/semantic-conventions/archive/refs/tags/$(TAG).zip[model] \ + --templates=/home/weaver/templates \ + --param tag=$(TAG) \ + go \ + /home/weaver/target $(SEMCONVKIT) -output "$(SEMCONVPKG)/$(TAG)" -tag "$(TAG)" .PHONY: gorelease diff --git a/vendor/go.opentelemetry.io/otel/README.md b/vendor/go.opentelemetry.io/otel/README.md index efec2789..8421cd7e 100644 --- a/vendor/go.opentelemetry.io/otel/README.md +++ b/vendor/go.opentelemetry.io/otel/README.md @@ -1,9 +1,11 @@ # OpenTelemetry-Go -[![CI](https://github.com/open-telemetry/opentelemetry-go/workflows/ci/badge.svg)](https://github.com/open-telemetry/opentelemetry-go/actions?query=workflow%3Aci+branch%3Amain) +[![ci](https://github.com/open-telemetry/opentelemetry-go/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/open-telemetry/opentelemetry-go/actions/workflows/ci.yml) [![codecov.io](https://codecov.io/gh/open-telemetry/opentelemetry-go/coverage.svg?branch=main)](https://app.codecov.io/gh/open-telemetry/opentelemetry-go?branch=main) [![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel)](https://pkg.go.dev/go.opentelemetry.io/otel) [![Go Report Card](https://goreportcard.com/badge/go.opentelemetry.io/otel)](https://goreportcard.com/report/go.opentelemetry.io/otel) +[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/open-telemetry/opentelemetry-go/badge)](https://scorecard.dev/viewer/?uri=github.com/open-telemetry/opentelemetry-go) +[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9996/badge)](https://www.bestpractices.dev/projects/9996) [![Slack](https://img.shields.io/badge/slack-@cncf/otel--go-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C01NPAXACKT) OpenTelemetry-Go is the [Go](https://golang.org/) implementation of [OpenTelemetry](https://opentelemetry.io/). @@ -49,18 +51,25 @@ Currently, this project supports the following environments. | OS | Go Version | Architecture | |----------|------------|--------------| +| Ubuntu | 1.24 | amd64 | | Ubuntu | 1.23 | amd64 | | Ubuntu | 1.22 | amd64 | +| Ubuntu | 1.24 | 386 | | Ubuntu | 1.23 | 386 | | Ubuntu | 1.22 | 386 | -| Linux | 1.23 | arm64 | -| Linux | 1.22 | arm64 | +| Ubuntu | 1.24 | arm64 | +| Ubuntu | 1.23 | arm64 | +| Ubuntu | 1.22 | arm64 | +| macOS 13 | 1.24 | amd64 | | macOS 13 | 1.23 | amd64 | | macOS 13 | 1.22 | amd64 | +| macOS | 1.24 | arm64 | | macOS | 1.23 | arm64 | | macOS | 1.22 | arm64 | +| Windows | 1.24 | amd64 | | Windows | 1.23 | amd64 | | Windows | 1.22 | amd64 | +| Windows | 1.24 | 386 | | Windows | 1.23 | 386 | | Windows | 1.22 | 386 | diff --git a/vendor/go.opentelemetry.io/otel/RELEASING.md b/vendor/go.opentelemetry.io/otel/RELEASING.md index ffa9b612..1e13ae54 100644 --- a/vendor/go.opentelemetry.io/otel/RELEASING.md +++ b/vendor/go.opentelemetry.io/otel/RELEASING.md @@ -5,17 +5,14 @@ New versions of the [OpenTelemetry Semantic Conventions] mean new versions of the `semconv` package need to be generated. The `semconv-generate` make target is used for this. -1. Checkout a local copy of the [OpenTelemetry Semantic Conventions] to the desired release tag. -2. Pull the latest `otel/semconvgen` image: `docker pull otel/semconvgen:latest` -3. Run the `make semconv-generate ...` target from this repository. +1. Set the `TAG` environment variable to the semantic convention tag you want to generate. +2. Run the `make semconv-generate ...` target from this repository. For example, ```sh -export TAG="v1.21.0" # Change to the release version you are generating. -export OTEL_SEMCONV_REPO="/absolute/path/to/opentelemetry/semantic-conventions" -docker pull otel/semconvgen:latest -make semconv-generate # Uses the exported TAG and OTEL_SEMCONV_REPO. +export TAG="v1.30.0" # Change to the release version you are generating. +make semconv-generate # Uses the exported TAG. ``` This should create a new sub-package of [`semconv`](./semconv). @@ -130,6 +127,6 @@ Importantly, bump any package versions referenced to be the latest one you just Bump the dependencies in the following Go services: -- [`accountingservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/accountingservice) -- [`checkoutservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/checkoutservice) -- [`productcatalogservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/productcatalogservice) +- [`accounting`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/accounting) +- [`checkoutservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/checkout) +- [`productcatalogservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/product-catalog) diff --git a/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile b/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile new file mode 100644 index 00000000..e4c4a753 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/dependencies.Dockerfile @@ -0,0 +1,3 @@ +# This is a renovate-friendly source of Docker images. +FROM python:3.13.2-slim-bullseye@sha256:31b581c8218e1f3c58672481b3b7dba8e898852866b408c6a984c22832523935 AS python +FROM otel/weaver:v0.13.2@sha256:ae7346b992e477f629ea327e0979e8a416a97f7956ab1f7e95ac1f44edf1a893 AS weaver diff --git a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/version.go b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/version.go index d45d6981..0b5dec3a 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/version.go +++ b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/version.go @@ -5,5 +5,5 @@ package otlpmetricgrpc // import "go.opentelemetry.io/otel/exporters/otlp/otlpme // Version is the current release version of the OpenTelemetry OTLP over gRPC metrics exporter in use. func Version() string { - return "1.33.0" + return "1.35.0" } diff --git a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go index 2171bee3..8409b5f8 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go +++ b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go @@ -294,7 +294,7 @@ func (c *client) MarshalLog() interface{} { Type string Endpoint string }{ - Type: "otlphttpgrpc", + Type: "otlptracegrpc", Endpoint: c.endpoint, } } diff --git a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/version.go b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/version.go index 8ea156a0..f5cad46b 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/version.go +++ b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/version.go @@ -5,5 +5,5 @@ package otlptrace // import "go.opentelemetry.io/otel/exporters/otlp/otlptrace" // Version is the current release version of the OpenTelemetry OTLP trace exporter in use. func Version() string { - return "1.33.0" + return "1.35.0" } diff --git a/vendor/go.opentelemetry.io/otel/renovate.json b/vendor/go.opentelemetry.io/otel/renovate.json index 0a29a2f1..a6fa353f 100644 --- a/vendor/go.opentelemetry.io/otel/renovate.json +++ b/vendor/go.opentelemetry.io/otel/renovate.json @@ -1,7 +1,7 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "config:recommended" + "config:best-practices" ], "ignorePaths": [], "labels": ["Skip Changelog", "dependencies"], @@ -15,10 +15,8 @@ "enabled": true }, { - "matchFileNames": ["internal/tools/**"], - "matchManagers": ["gomod"], - "matchDepTypes": ["indirect"], - "enabled": false + "matchPackageNames": ["go.opentelemetry.io/build-tools/**"], + "groupName": "build-tools" }, { "matchPackageNames": ["google.golang.org/genproto/googleapis/**"], diff --git a/vendor/go.opentelemetry.io/otel/requirements.txt b/vendor/go.opentelemetry.io/otel/requirements.txt index ab09daf9..1bb55fb1 100644 --- a/vendor/go.opentelemetry.io/otel/requirements.txt +++ b/vendor/go.opentelemetry.io/otel/requirements.txt @@ -1 +1 @@ -codespell==2.3.0 +codespell==2.4.1 diff --git a/vendor/go.opentelemetry.io/otel/sdk/metric/internal/aggregate/exponential_histogram.go b/vendor/go.opentelemetry.io/otel/sdk/metric/internal/aggregate/exponential_histogram.go index 336ea91d..32a62e1b 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/metric/internal/aggregate/exponential_histogram.go +++ b/vendor/go.opentelemetry.io/otel/sdk/metric/internal/aggregate/exponential_histogram.go @@ -48,7 +48,7 @@ type expoHistogramDataPoint[N int64 | float64] struct { zeroCount uint64 } -func newExpoHistogramDataPoint[N int64 | float64](attrs attribute.Set, maxSize int, maxScale int32, noMinMax, noSum bool) *expoHistogramDataPoint[N] { +func newExpoHistogramDataPoint[N int64 | float64](attrs attribute.Set, maxSize int, maxScale int32, noMinMax, noSum bool) *expoHistogramDataPoint[N] { // nolint:revive // we need this control flag f := math.MaxFloat64 ma := N(f) // if N is int64, max will overflow to -9223372036854775808 mi := N(-f) diff --git a/vendor/go.opentelemetry.io/otel/sdk/metric/version.go b/vendor/go.opentelemetry.io/otel/sdk/metric/version.go index 1cd18162..92d2589d 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/metric/version.go +++ b/vendor/go.opentelemetry.io/otel/sdk/metric/version.go @@ -5,5 +5,5 @@ package metric // import "go.opentelemetry.io/otel/sdk/metric" // version is the current release version of the metric SDK in use. func version() string { - return "1.33.0" + return "1.35.0" } diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/os_release_darwin.go b/vendor/go.opentelemetry.io/otel/sdk/resource/os_release_darwin.go index ce455dc5..3d703c5d 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/os_release_darwin.go +++ b/vendor/go.opentelemetry.io/otel/sdk/resource/os_release_darwin.go @@ -5,6 +5,7 @@ package resource // import "go.opentelemetry.io/otel/sdk/resource" import ( "encoding/xml" + "errors" "fmt" "io" "os" @@ -63,7 +64,7 @@ func parsePlistFile(file io.Reader) (map[string]string, error) { } if len(v.Dict.Key) != len(v.Dict.String) { - return nil, fmt.Errorf("the number of and elements doesn't match") + return nil, errors.New("the number of and elements doesn't match") } properties := make(map[string]string, len(v.Dict.Key)) diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/resource.go b/vendor/go.opentelemetry.io/otel/sdk/resource/resource.go index ad4b50df..09b91e1e 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/resource.go +++ b/vendor/go.opentelemetry.io/otel/sdk/resource/resource.go @@ -21,11 +21,22 @@ import ( // Resources should be passed and stored as pointers // (`*resource.Resource`). The `nil` value is equivalent to an empty // Resource. +// +// Note that the Go == operator compares not just the resource attributes but +// also all other internals of the Resource type. Therefore, Resource values +// should not be used as map or database keys. In general, the [Resource.Equal] +// method should be used instead of direct comparison with ==, since that +// method ensures the correct comparison of resource attributes, and the +// [attribute.Distinct] returned from [Resource.Equivalent] should be used for +// map and database keys instead. type Resource struct { attrs attribute.Set schemaURL string } +// Compile-time check that the Resource remains comparable. +var _ map[Resource]struct{} = nil + var ( defaultResource *Resource defaultResourceOnce sync.Once @@ -137,15 +148,19 @@ func (r *Resource) Iter() attribute.Iterator { return r.attrs.Iter() } -// Equal returns true when a Resource is equivalent to this Resource. -func (r *Resource) Equal(eq *Resource) bool { +// Equal returns whether r and o represent the same resource. Two resources can +// be equal even if they have different schema URLs. +// +// See the documentation on the [Resource] type for the pitfalls of using == +// with Resource values; most code should use Equal instead. +func (r *Resource) Equal(o *Resource) bool { if r == nil { r = Empty() } - if eq == nil { - eq = Empty() + if o == nil { + o = Empty() } - return r.Equivalent() == eq.Equivalent() + return r.Equivalent() == o.Equivalent() } // Merge creates a new [Resource] by merging a and b. diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go b/vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go index ccc97e1b..6872cbb4 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go @@ -201,10 +201,9 @@ func (bsp *batchSpanProcessor) ForceFlush(ctx context.Context) error { } } - wait := make(chan error) + wait := make(chan error, 1) go func() { wait <- bsp.exportSpans(ctx) - close(wait) }() // Wait until the export is finished or the context is cancelled/timed out select { diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/sampling.go b/vendor/go.opentelemetry.io/otel/sdk/trace/sampling.go index ebb6df6c..aa7b262d 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/sampling.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/sampling.go @@ -47,12 +47,12 @@ const ( // Drop will not record the span and all attributes/events will be dropped. Drop SamplingDecision = iota - // Record indicates the span's `IsRecording() == true`, but `Sampled` flag - // *must not* be set. + // RecordOnly indicates the span's IsRecording method returns true, but trace.FlagsSampled flag + // must not be set. RecordOnly - // RecordAndSample has span's `IsRecording() == true` and `Sampled` flag - // *must* be set. + // RecordAndSample indicates the span's IsRecording method returns true and trace.FlagsSampled flag + // must be set. RecordAndSample ) diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go b/vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go index 554111bb..664e13e0 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go @@ -58,7 +58,7 @@ func (ssp *simpleSpanProcessor) Shutdown(ctx context.Context) error { var err error ssp.stopOnce.Do(func() { stopFunc := func(exp SpanExporter) (<-chan error, func()) { - done := make(chan error) + done := make(chan error, 1) return done, func() { done <- exp.Shutdown(ctx) } } diff --git a/vendor/go.opentelemetry.io/otel/sdk/version.go b/vendor/go.opentelemetry.io/otel/sdk/version.go index ba7db488..2b797fbd 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/version.go +++ b/vendor/go.opentelemetry.io/otel/sdk/version.go @@ -5,5 +5,5 @@ package sdk // import "go.opentelemetry.io/otel/sdk" // Version is the current release version of the OpenTelemetry SDK in use. func Version() string { - return "1.33.0" + return "1.35.0" } diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/README.md b/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/README.md deleted file mode 100644 index bc60aa60..00000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Semconv v1.21.0 - -[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/semconv/v1.21.0)](https://pkg.go.dev/go.opentelemetry.io/otel/semconv/v1.21.0) diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/attribute_group.go b/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/attribute_group.go deleted file mode 100644 index a9a15a1d..00000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/attribute_group.go +++ /dev/null @@ -1,1866 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -// Code generated from semantic convention specification. DO NOT EDIT. - -package semconv // import "go.opentelemetry.io/otel/semconv/v1.21.0" - -import "go.opentelemetry.io/otel/attribute" - -// These attributes may be used to describe the client in a connection-based -// network interaction where there is one side that initiates the connection -// (the client is the side that initiates the connection). This covers all TCP -// network interactions since TCP is connection-based and one side initiates -// the connection (an exception is made for peer-to-peer communication over TCP -// where the "user-facing" surface of the protocol / API does not expose a -// clear notion of client and server). This also covers UDP network -// interactions where one side initiates the interaction, e.g. QUIC (HTTP/3) -// and DNS. -const ( - // ClientAddressKey is the attribute Key conforming to the "client.address" - // semantic conventions. It represents the client address - unix domain - // socket name, IPv4 or IPv6 address. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '/tmp/my.sock', '10.1.2.80' - // Note: When observed from the server side, and when communicating through - // an intermediary, `client.address` SHOULD represent client address behind - // any intermediaries (e.g. proxies) if it's available. - ClientAddressKey = attribute.Key("client.address") - - // ClientPortKey is the attribute Key conforming to the "client.port" - // semantic conventions. It represents the client port number - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 65123 - // Note: When observed from the server side, and when communicating through - // an intermediary, `client.port` SHOULD represent client port behind any - // intermediaries (e.g. proxies) if it's available. - ClientPortKey = attribute.Key("client.port") - - // ClientSocketAddressKey is the attribute Key conforming to the - // "client.socket.address" semantic conventions. It represents the - // immediate client peer address - unix domain socket name, IPv4 or IPv6 - // address. - // - // Type: string - // RequirementLevel: Recommended (If different than `client.address`.) - // Stability: stable - // Examples: '/tmp/my.sock', '127.0.0.1' - ClientSocketAddressKey = attribute.Key("client.socket.address") - - // ClientSocketPortKey is the attribute Key conforming to the - // "client.socket.port" semantic conventions. It represents the immediate - // client peer port number - // - // Type: int - // RequirementLevel: Recommended (If different than `client.port`.) - // Stability: stable - // Examples: 35555 - ClientSocketPortKey = attribute.Key("client.socket.port") -) - -// ClientAddress returns an attribute KeyValue conforming to the -// "client.address" semantic conventions. It represents the client address - -// unix domain socket name, IPv4 or IPv6 address. -func ClientAddress(val string) attribute.KeyValue { - return ClientAddressKey.String(val) -} - -// ClientPort returns an attribute KeyValue conforming to the "client.port" -// semantic conventions. It represents the client port number -func ClientPort(val int) attribute.KeyValue { - return ClientPortKey.Int(val) -} - -// ClientSocketAddress returns an attribute KeyValue conforming to the -// "client.socket.address" semantic conventions. It represents the immediate -// client peer address - unix domain socket name, IPv4 or IPv6 address. -func ClientSocketAddress(val string) attribute.KeyValue { - return ClientSocketAddressKey.String(val) -} - -// ClientSocketPort returns an attribute KeyValue conforming to the -// "client.socket.port" semantic conventions. It represents the immediate -// client peer port number -func ClientSocketPort(val int) attribute.KeyValue { - return ClientSocketPortKey.Int(val) -} - -// Describes deprecated HTTP attributes. -const ( - // HTTPMethodKey is the attribute Key conforming to the "http.method" - // semantic conventions. It represents the deprecated, use - // `http.request.method` instead. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 'GET', 'POST', 'HEAD' - HTTPMethodKey = attribute.Key("http.method") - - // HTTPStatusCodeKey is the attribute Key conforming to the - // "http.status_code" semantic conventions. It represents the deprecated, - // use `http.response.status_code` instead. - // - // Type: int - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 200 - HTTPStatusCodeKey = attribute.Key("http.status_code") - - // HTTPSchemeKey is the attribute Key conforming to the "http.scheme" - // semantic conventions. It represents the deprecated, use `url.scheme` - // instead. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 'http', 'https' - HTTPSchemeKey = attribute.Key("http.scheme") - - // HTTPURLKey is the attribute Key conforming to the "http.url" semantic - // conventions. It represents the deprecated, use `url.full` instead. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv' - HTTPURLKey = attribute.Key("http.url") - - // HTTPTargetKey is the attribute Key conforming to the "http.target" - // semantic conventions. It represents the deprecated, use `url.path` and - // `url.query` instead. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: '/search?q=OpenTelemetry#SemConv' - HTTPTargetKey = attribute.Key("http.target") - - // HTTPRequestContentLengthKey is the attribute Key conforming to the - // "http.request_content_length" semantic conventions. It represents the - // deprecated, use `http.request.body.size` instead. - // - // Type: int - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 3495 - HTTPRequestContentLengthKey = attribute.Key("http.request_content_length") - - // HTTPResponseContentLengthKey is the attribute Key conforming to the - // "http.response_content_length" semantic conventions. It represents the - // deprecated, use `http.response.body.size` instead. - // - // Type: int - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 3495 - HTTPResponseContentLengthKey = attribute.Key("http.response_content_length") -) - -// HTTPMethod returns an attribute KeyValue conforming to the "http.method" -// semantic conventions. It represents the deprecated, use -// `http.request.method` instead. -func HTTPMethod(val string) attribute.KeyValue { - return HTTPMethodKey.String(val) -} - -// HTTPStatusCode returns an attribute KeyValue conforming to the -// "http.status_code" semantic conventions. It represents the deprecated, use -// `http.response.status_code` instead. -func HTTPStatusCode(val int) attribute.KeyValue { - return HTTPStatusCodeKey.Int(val) -} - -// HTTPScheme returns an attribute KeyValue conforming to the "http.scheme" -// semantic conventions. It represents the deprecated, use `url.scheme` -// instead. -func HTTPScheme(val string) attribute.KeyValue { - return HTTPSchemeKey.String(val) -} - -// HTTPURL returns an attribute KeyValue conforming to the "http.url" -// semantic conventions. It represents the deprecated, use `url.full` instead. -func HTTPURL(val string) attribute.KeyValue { - return HTTPURLKey.String(val) -} - -// HTTPTarget returns an attribute KeyValue conforming to the "http.target" -// semantic conventions. It represents the deprecated, use `url.path` and -// `url.query` instead. -func HTTPTarget(val string) attribute.KeyValue { - return HTTPTargetKey.String(val) -} - -// HTTPRequestContentLength returns an attribute KeyValue conforming to the -// "http.request_content_length" semantic conventions. It represents the -// deprecated, use `http.request.body.size` instead. -func HTTPRequestContentLength(val int) attribute.KeyValue { - return HTTPRequestContentLengthKey.Int(val) -} - -// HTTPResponseContentLength returns an attribute KeyValue conforming to the -// "http.response_content_length" semantic conventions. It represents the -// deprecated, use `http.response.body.size` instead. -func HTTPResponseContentLength(val int) attribute.KeyValue { - return HTTPResponseContentLengthKey.Int(val) -} - -// These attributes may be used for any network related operation. -const ( - // NetSockPeerNameKey is the attribute Key conforming to the - // "net.sock.peer.name" semantic conventions. It represents the deprecated, - // use `server.socket.domain` on client spans. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: '/var/my.sock' - NetSockPeerNameKey = attribute.Key("net.sock.peer.name") - - // NetSockPeerAddrKey is the attribute Key conforming to the - // "net.sock.peer.addr" semantic conventions. It represents the deprecated, - // use `server.socket.address` on client spans and `client.socket.address` - // on server spans. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: '192.168.0.1' - NetSockPeerAddrKey = attribute.Key("net.sock.peer.addr") - - // NetSockPeerPortKey is the attribute Key conforming to the - // "net.sock.peer.port" semantic conventions. It represents the deprecated, - // use `server.socket.port` on client spans and `client.socket.port` on - // server spans. - // - // Type: int - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 65531 - NetSockPeerPortKey = attribute.Key("net.sock.peer.port") - - // NetPeerNameKey is the attribute Key conforming to the "net.peer.name" - // semantic conventions. It represents the deprecated, use `server.address` - // on client spans and `client.address` on server spans. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 'example.com' - NetPeerNameKey = attribute.Key("net.peer.name") - - // NetPeerPortKey is the attribute Key conforming to the "net.peer.port" - // semantic conventions. It represents the deprecated, use `server.port` on - // client spans and `client.port` on server spans. - // - // Type: int - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 8080 - NetPeerPortKey = attribute.Key("net.peer.port") - - // NetHostNameKey is the attribute Key conforming to the "net.host.name" - // semantic conventions. It represents the deprecated, use - // `server.address`. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 'example.com' - NetHostNameKey = attribute.Key("net.host.name") - - // NetHostPortKey is the attribute Key conforming to the "net.host.port" - // semantic conventions. It represents the deprecated, use `server.port`. - // - // Type: int - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 8080 - NetHostPortKey = attribute.Key("net.host.port") - - // NetSockHostAddrKey is the attribute Key conforming to the - // "net.sock.host.addr" semantic conventions. It represents the deprecated, - // use `server.socket.address`. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: '/var/my.sock' - NetSockHostAddrKey = attribute.Key("net.sock.host.addr") - - // NetSockHostPortKey is the attribute Key conforming to the - // "net.sock.host.port" semantic conventions. It represents the deprecated, - // use `server.socket.port`. - // - // Type: int - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 8080 - NetSockHostPortKey = attribute.Key("net.sock.host.port") - - // NetTransportKey is the attribute Key conforming to the "net.transport" - // semantic conventions. It represents the deprecated, use - // `network.transport`. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: deprecated - NetTransportKey = attribute.Key("net.transport") - - // NetProtocolNameKey is the attribute Key conforming to the - // "net.protocol.name" semantic conventions. It represents the deprecated, - // use `network.protocol.name`. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 'amqp', 'http', 'mqtt' - NetProtocolNameKey = attribute.Key("net.protocol.name") - - // NetProtocolVersionKey is the attribute Key conforming to the - // "net.protocol.version" semantic conventions. It represents the - // deprecated, use `network.protocol.version`. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: '3.1.1' - NetProtocolVersionKey = attribute.Key("net.protocol.version") - - // NetSockFamilyKey is the attribute Key conforming to the - // "net.sock.family" semantic conventions. It represents the deprecated, - // use `network.transport` and `network.type`. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: deprecated - NetSockFamilyKey = attribute.Key("net.sock.family") -) - -var ( - // ip_tcp - NetTransportTCP = NetTransportKey.String("ip_tcp") - // ip_udp - NetTransportUDP = NetTransportKey.String("ip_udp") - // Named or anonymous pipe - NetTransportPipe = NetTransportKey.String("pipe") - // In-process communication - NetTransportInProc = NetTransportKey.String("inproc") - // Something else (non IP-based) - NetTransportOther = NetTransportKey.String("other") -) - -var ( - // IPv4 address - NetSockFamilyInet = NetSockFamilyKey.String("inet") - // IPv6 address - NetSockFamilyInet6 = NetSockFamilyKey.String("inet6") - // Unix domain socket path - NetSockFamilyUnix = NetSockFamilyKey.String("unix") -) - -// NetSockPeerName returns an attribute KeyValue conforming to the -// "net.sock.peer.name" semantic conventions. It represents the deprecated, use -// `server.socket.domain` on client spans. -func NetSockPeerName(val string) attribute.KeyValue { - return NetSockPeerNameKey.String(val) -} - -// NetSockPeerAddr returns an attribute KeyValue conforming to the -// "net.sock.peer.addr" semantic conventions. It represents the deprecated, use -// `server.socket.address` on client spans and `client.socket.address` on -// server spans. -func NetSockPeerAddr(val string) attribute.KeyValue { - return NetSockPeerAddrKey.String(val) -} - -// NetSockPeerPort returns an attribute KeyValue conforming to the -// "net.sock.peer.port" semantic conventions. It represents the deprecated, use -// `server.socket.port` on client spans and `client.socket.port` on server -// spans. -func NetSockPeerPort(val int) attribute.KeyValue { - return NetSockPeerPortKey.Int(val) -} - -// NetPeerName returns an attribute KeyValue conforming to the -// "net.peer.name" semantic conventions. It represents the deprecated, use -// `server.address` on client spans and `client.address` on server spans. -func NetPeerName(val string) attribute.KeyValue { - return NetPeerNameKey.String(val) -} - -// NetPeerPort returns an attribute KeyValue conforming to the -// "net.peer.port" semantic conventions. It represents the deprecated, use -// `server.port` on client spans and `client.port` on server spans. -func NetPeerPort(val int) attribute.KeyValue { - return NetPeerPortKey.Int(val) -} - -// NetHostName returns an attribute KeyValue conforming to the -// "net.host.name" semantic conventions. It represents the deprecated, use -// `server.address`. -func NetHostName(val string) attribute.KeyValue { - return NetHostNameKey.String(val) -} - -// NetHostPort returns an attribute KeyValue conforming to the -// "net.host.port" semantic conventions. It represents the deprecated, use -// `server.port`. -func NetHostPort(val int) attribute.KeyValue { - return NetHostPortKey.Int(val) -} - -// NetSockHostAddr returns an attribute KeyValue conforming to the -// "net.sock.host.addr" semantic conventions. It represents the deprecated, use -// `server.socket.address`. -func NetSockHostAddr(val string) attribute.KeyValue { - return NetSockHostAddrKey.String(val) -} - -// NetSockHostPort returns an attribute KeyValue conforming to the -// "net.sock.host.port" semantic conventions. It represents the deprecated, use -// `server.socket.port`. -func NetSockHostPort(val int) attribute.KeyValue { - return NetSockHostPortKey.Int(val) -} - -// NetProtocolName returns an attribute KeyValue conforming to the -// "net.protocol.name" semantic conventions. It represents the deprecated, use -// `network.protocol.name`. -func NetProtocolName(val string) attribute.KeyValue { - return NetProtocolNameKey.String(val) -} - -// NetProtocolVersion returns an attribute KeyValue conforming to the -// "net.protocol.version" semantic conventions. It represents the deprecated, -// use `network.protocol.version`. -func NetProtocolVersion(val string) attribute.KeyValue { - return NetProtocolVersionKey.String(val) -} - -// These attributes may be used to describe the receiver of a network -// exchange/packet. These should be used when there is no client/server -// relationship between the two sides, or when that relationship is unknown. -// This covers low-level network interactions (e.g. packet tracing) where you -// don't know if there was a connection or which side initiated it. This also -// covers unidirectional UDP flows and peer-to-peer communication where the -// "user-facing" surface of the protocol / API does not expose a clear notion -// of client and server. -const ( - // DestinationDomainKey is the attribute Key conforming to the - // "destination.domain" semantic conventions. It represents the domain name - // of the destination system. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'foo.example.com' - // Note: This value may be a host name, a fully qualified domain name, or - // another host naming format. - DestinationDomainKey = attribute.Key("destination.domain") - - // DestinationAddressKey is the attribute Key conforming to the - // "destination.address" semantic conventions. It represents the peer - // address, for example IP address or UNIX socket name. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '10.5.3.2' - DestinationAddressKey = attribute.Key("destination.address") - - // DestinationPortKey is the attribute Key conforming to the - // "destination.port" semantic conventions. It represents the peer port - // number - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 3389, 2888 - DestinationPortKey = attribute.Key("destination.port") -) - -// DestinationDomain returns an attribute KeyValue conforming to the -// "destination.domain" semantic conventions. It represents the domain name of -// the destination system. -func DestinationDomain(val string) attribute.KeyValue { - return DestinationDomainKey.String(val) -} - -// DestinationAddress returns an attribute KeyValue conforming to the -// "destination.address" semantic conventions. It represents the peer address, -// for example IP address or UNIX socket name. -func DestinationAddress(val string) attribute.KeyValue { - return DestinationAddressKey.String(val) -} - -// DestinationPort returns an attribute KeyValue conforming to the -// "destination.port" semantic conventions. It represents the peer port number -func DestinationPort(val int) attribute.KeyValue { - return DestinationPortKey.Int(val) -} - -// Describes HTTP attributes. -const ( - // HTTPRequestMethodKey is the attribute Key conforming to the - // "http.request.method" semantic conventions. It represents the hTTP - // request method. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - // Examples: 'GET', 'POST', 'HEAD' - // Note: HTTP request method value SHOULD be "known" to the - // instrumentation. - // By default, this convention defines "known" methods as the ones listed - // in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods) - // and the PATCH method defined in - // [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html). - // - // If the HTTP request method is not known to instrumentation, it MUST set - // the `http.request.method` attribute to `_OTHER` and, except if reporting - // a metric, MUST - // set the exact method received in the request line as value of the - // `http.request.method_original` attribute. - // - // If the HTTP instrumentation could end up converting valid HTTP request - // methods to `_OTHER`, then it MUST provide a way to override - // the list of known HTTP methods. If this override is done via environment - // variable, then the environment variable MUST be named - // OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated - // list of case-sensitive known HTTP methods - // (this list MUST be a full override of the default known method, it is - // not a list of known methods in addition to the defaults). - // - // HTTP method names are case-sensitive and `http.request.method` attribute - // value MUST match a known HTTP method name exactly. - // Instrumentations for specific web frameworks that consider HTTP methods - // to be case insensitive, SHOULD populate a canonical equivalent. - // Tracing instrumentations that do so, MUST also set - // `http.request.method_original` to the original value. - HTTPRequestMethodKey = attribute.Key("http.request.method") - - // HTTPResponseStatusCodeKey is the attribute Key conforming to the - // "http.response.status_code" semantic conventions. It represents the - // [HTTP response status - // code](https://tools.ietf.org/html/rfc7231#section-6). - // - // Type: int - // RequirementLevel: ConditionallyRequired (If and only if one was - // received/sent.) - // Stability: stable - // Examples: 200 - HTTPResponseStatusCodeKey = attribute.Key("http.response.status_code") -) - -var ( - // CONNECT method - HTTPRequestMethodConnect = HTTPRequestMethodKey.String("CONNECT") - // DELETE method - HTTPRequestMethodDelete = HTTPRequestMethodKey.String("DELETE") - // GET method - HTTPRequestMethodGet = HTTPRequestMethodKey.String("GET") - // HEAD method - HTTPRequestMethodHead = HTTPRequestMethodKey.String("HEAD") - // OPTIONS method - HTTPRequestMethodOptions = HTTPRequestMethodKey.String("OPTIONS") - // PATCH method - HTTPRequestMethodPatch = HTTPRequestMethodKey.String("PATCH") - // POST method - HTTPRequestMethodPost = HTTPRequestMethodKey.String("POST") - // PUT method - HTTPRequestMethodPut = HTTPRequestMethodKey.String("PUT") - // TRACE method - HTTPRequestMethodTrace = HTTPRequestMethodKey.String("TRACE") - // Any HTTP method that the instrumentation has no prior knowledge of - HTTPRequestMethodOther = HTTPRequestMethodKey.String("_OTHER") -) - -// HTTPResponseStatusCode returns an attribute KeyValue conforming to the -// "http.response.status_code" semantic conventions. It represents the [HTTP -// response status code](https://tools.ietf.org/html/rfc7231#section-6). -func HTTPResponseStatusCode(val int) attribute.KeyValue { - return HTTPResponseStatusCodeKey.Int(val) -} - -// HTTP Server attributes -const ( - // HTTPRouteKey is the attribute Key conforming to the "http.route" - // semantic conventions. It represents the matched route (path template in - // the format used by the respective server framework). See note below - // - // Type: string - // RequirementLevel: ConditionallyRequired (If and only if it's available) - // Stability: stable - // Examples: '/users/:userID?', '{controller}/{action}/{id?}' - // Note: MUST NOT be populated when this is not supported by the HTTP - // server framework as the route attribute should have low-cardinality and - // the URI path can NOT substitute it. - // SHOULD include the [application - // root](/docs/http/http-spans.md#http-server-definitions) if there is one. - HTTPRouteKey = attribute.Key("http.route") -) - -// HTTPRoute returns an attribute KeyValue conforming to the "http.route" -// semantic conventions. It represents the matched route (path template in the -// format used by the respective server framework). See note below -func HTTPRoute(val string) attribute.KeyValue { - return HTTPRouteKey.String(val) -} - -// Attributes for Events represented using Log Records. -const ( - // EventNameKey is the attribute Key conforming to the "event.name" - // semantic conventions. It represents the name identifies the event. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'click', 'exception' - EventNameKey = attribute.Key("event.name") - - // EventDomainKey is the attribute Key conforming to the "event.domain" - // semantic conventions. It represents the domain identifies the business - // context for the events. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - // Note: Events across different domains may have same `event.name`, yet be - // unrelated events. - EventDomainKey = attribute.Key("event.domain") -) - -var ( - // Events from browser apps - EventDomainBrowser = EventDomainKey.String("browser") - // Events from mobile apps - EventDomainDevice = EventDomainKey.String("device") - // Events from Kubernetes - EventDomainK8S = EventDomainKey.String("k8s") -) - -// EventName returns an attribute KeyValue conforming to the "event.name" -// semantic conventions. It represents the name identifies the event. -func EventName(val string) attribute.KeyValue { - return EventNameKey.String(val) -} - -// The attributes described in this section are rather generic. They may be -// used in any Log Record they apply to. -const ( - // LogRecordUIDKey is the attribute Key conforming to the "log.record.uid" - // semantic conventions. It represents a unique identifier for the Log - // Record. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '01ARZ3NDEKTSV4RRFFQ69G5FAV' - // Note: If an id is provided, other log records with the same id will be - // considered duplicates and can be removed safely. This means, that two - // distinguishable log records MUST have different values. - // The id MAY be an [Universally Unique Lexicographically Sortable - // Identifier (ULID)](https://github.com/ulid/spec), but other identifiers - // (e.g. UUID) may be used as needed. - LogRecordUIDKey = attribute.Key("log.record.uid") -) - -// LogRecordUID returns an attribute KeyValue conforming to the -// "log.record.uid" semantic conventions. It represents a unique identifier for -// the Log Record. -func LogRecordUID(val string) attribute.KeyValue { - return LogRecordUIDKey.String(val) -} - -// Describes Log attributes -const ( - // LogIostreamKey is the attribute Key conforming to the "log.iostream" - // semantic conventions. It represents the stream associated with the log. - // See below for a list of well-known values. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - LogIostreamKey = attribute.Key("log.iostream") -) - -var ( - // Logs from stdout stream - LogIostreamStdout = LogIostreamKey.String("stdout") - // Events from stderr stream - LogIostreamStderr = LogIostreamKey.String("stderr") -) - -// A file to which log was emitted. -const ( - // LogFileNameKey is the attribute Key conforming to the "log.file.name" - // semantic conventions. It represents the basename of the file. - // - // Type: string - // RequirementLevel: Recommended - // Stability: stable - // Examples: 'audit.log' - LogFileNameKey = attribute.Key("log.file.name") - - // LogFilePathKey is the attribute Key conforming to the "log.file.path" - // semantic conventions. It represents the full path to the file. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '/var/log/mysql/audit.log' - LogFilePathKey = attribute.Key("log.file.path") - - // LogFileNameResolvedKey is the attribute Key conforming to the - // "log.file.name_resolved" semantic conventions. It represents the - // basename of the file, with symlinks resolved. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'uuid.log' - LogFileNameResolvedKey = attribute.Key("log.file.name_resolved") - - // LogFilePathResolvedKey is the attribute Key conforming to the - // "log.file.path_resolved" semantic conventions. It represents the full - // path to the file, with symlinks resolved. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '/var/lib/docker/uuid.log' - LogFilePathResolvedKey = attribute.Key("log.file.path_resolved") -) - -// LogFileName returns an attribute KeyValue conforming to the -// "log.file.name" semantic conventions. It represents the basename of the -// file. -func LogFileName(val string) attribute.KeyValue { - return LogFileNameKey.String(val) -} - -// LogFilePath returns an attribute KeyValue conforming to the -// "log.file.path" semantic conventions. It represents the full path to the -// file. -func LogFilePath(val string) attribute.KeyValue { - return LogFilePathKey.String(val) -} - -// LogFileNameResolved returns an attribute KeyValue conforming to the -// "log.file.name_resolved" semantic conventions. It represents the basename of -// the file, with symlinks resolved. -func LogFileNameResolved(val string) attribute.KeyValue { - return LogFileNameResolvedKey.String(val) -} - -// LogFilePathResolved returns an attribute KeyValue conforming to the -// "log.file.path_resolved" semantic conventions. It represents the full path -// to the file, with symlinks resolved. -func LogFilePathResolved(val string) attribute.KeyValue { - return LogFilePathResolvedKey.String(val) -} - -// Describes JVM memory metric attributes. -const ( - // TypeKey is the attribute Key conforming to the "type" semantic - // conventions. It represents the type of memory. - // - // Type: Enum - // RequirementLevel: Recommended - // Stability: stable - // Examples: 'heap', 'non_heap' - TypeKey = attribute.Key("type") - - // PoolKey is the attribute Key conforming to the "pool" semantic - // conventions. It represents the name of the memory pool. - // - // Type: string - // RequirementLevel: Recommended - // Stability: stable - // Examples: 'G1 Old Gen', 'G1 Eden space', 'G1 Survivor Space' - // Note: Pool names are generally obtained via - // [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()). - PoolKey = attribute.Key("pool") -) - -var ( - // Heap memory - TypeHeap = TypeKey.String("heap") - // Non-heap memory - TypeNonHeap = TypeKey.String("non_heap") -) - -// Pool returns an attribute KeyValue conforming to the "pool" semantic -// conventions. It represents the name of the memory pool. -func Pool(val string) attribute.KeyValue { - return PoolKey.String(val) -} - -// These attributes may be used to describe the server in a connection-based -// network interaction where there is one side that initiates the connection -// (the client is the side that initiates the connection). This covers all TCP -// network interactions since TCP is connection-based and one side initiates -// the connection (an exception is made for peer-to-peer communication over TCP -// where the "user-facing" surface of the protocol / API does not expose a -// clear notion of client and server). This also covers UDP network -// interactions where one side initiates the interaction, e.g. QUIC (HTTP/3) -// and DNS. -const ( - // ServerAddressKey is the attribute Key conforming to the "server.address" - // semantic conventions. It represents the logical server hostname, matches - // server FQDN if available, and IP or socket address if FQDN is not known. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'example.com' - ServerAddressKey = attribute.Key("server.address") - - // ServerPortKey is the attribute Key conforming to the "server.port" - // semantic conventions. It represents the logical server port number - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 80, 8080, 443 - ServerPortKey = attribute.Key("server.port") - - // ServerSocketDomainKey is the attribute Key conforming to the - // "server.socket.domain" semantic conventions. It represents the domain - // name of an immediate peer. - // - // Type: string - // RequirementLevel: Recommended (If different than `server.address`.) - // Stability: stable - // Examples: 'proxy.example.com' - // Note: Typically observed from the client side, and represents a proxy or - // other intermediary domain name. - ServerSocketDomainKey = attribute.Key("server.socket.domain") - - // ServerSocketAddressKey is the attribute Key conforming to the - // "server.socket.address" semantic conventions. It represents the physical - // server IP address or Unix socket address. If set from the client, should - // simply use the socket's peer address, and not attempt to find any actual - // server IP (i.e., if set from client, this may represent some proxy - // server instead of the logical server). - // - // Type: string - // RequirementLevel: Recommended (If different than `server.address`.) - // Stability: stable - // Examples: '10.5.3.2' - ServerSocketAddressKey = attribute.Key("server.socket.address") - - // ServerSocketPortKey is the attribute Key conforming to the - // "server.socket.port" semantic conventions. It represents the physical - // server port. - // - // Type: int - // RequirementLevel: Recommended (If different than `server.port`.) - // Stability: stable - // Examples: 16456 - ServerSocketPortKey = attribute.Key("server.socket.port") -) - -// ServerAddress returns an attribute KeyValue conforming to the -// "server.address" semantic conventions. It represents the logical server -// hostname, matches server FQDN if available, and IP or socket address if FQDN -// is not known. -func ServerAddress(val string) attribute.KeyValue { - return ServerAddressKey.String(val) -} - -// ServerPort returns an attribute KeyValue conforming to the "server.port" -// semantic conventions. It represents the logical server port number -func ServerPort(val int) attribute.KeyValue { - return ServerPortKey.Int(val) -} - -// ServerSocketDomain returns an attribute KeyValue conforming to the -// "server.socket.domain" semantic conventions. It represents the domain name -// of an immediate peer. -func ServerSocketDomain(val string) attribute.KeyValue { - return ServerSocketDomainKey.String(val) -} - -// ServerSocketAddress returns an attribute KeyValue conforming to the -// "server.socket.address" semantic conventions. It represents the physical -// server IP address or Unix socket address. If set from the client, should -// simply use the socket's peer address, and not attempt to find any actual -// server IP (i.e., if set from client, this may represent some proxy server -// instead of the logical server). -func ServerSocketAddress(val string) attribute.KeyValue { - return ServerSocketAddressKey.String(val) -} - -// ServerSocketPort returns an attribute KeyValue conforming to the -// "server.socket.port" semantic conventions. It represents the physical server -// port. -func ServerSocketPort(val int) attribute.KeyValue { - return ServerSocketPortKey.Int(val) -} - -// These attributes may be used to describe the sender of a network -// exchange/packet. These should be used when there is no client/server -// relationship between the two sides, or when that relationship is unknown. -// This covers low-level network interactions (e.g. packet tracing) where you -// don't know if there was a connection or which side initiated it. This also -// covers unidirectional UDP flows and peer-to-peer communication where the -// "user-facing" surface of the protocol / API does not expose a clear notion -// of client and server. -const ( - // SourceDomainKey is the attribute Key conforming to the "source.domain" - // semantic conventions. It represents the domain name of the source - // system. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'foo.example.com' - // Note: This value may be a host name, a fully qualified domain name, or - // another host naming format. - SourceDomainKey = attribute.Key("source.domain") - - // SourceAddressKey is the attribute Key conforming to the "source.address" - // semantic conventions. It represents the source address, for example IP - // address or Unix socket name. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '10.5.3.2' - SourceAddressKey = attribute.Key("source.address") - - // SourcePortKey is the attribute Key conforming to the "source.port" - // semantic conventions. It represents the source port number - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 3389, 2888 - SourcePortKey = attribute.Key("source.port") -) - -// SourceDomain returns an attribute KeyValue conforming to the -// "source.domain" semantic conventions. It represents the domain name of the -// source system. -func SourceDomain(val string) attribute.KeyValue { - return SourceDomainKey.String(val) -} - -// SourceAddress returns an attribute KeyValue conforming to the -// "source.address" semantic conventions. It represents the source address, for -// example IP address or Unix socket name. -func SourceAddress(val string) attribute.KeyValue { - return SourceAddressKey.String(val) -} - -// SourcePort returns an attribute KeyValue conforming to the "source.port" -// semantic conventions. It represents the source port number -func SourcePort(val int) attribute.KeyValue { - return SourcePortKey.Int(val) -} - -// These attributes may be used for any network related operation. -const ( - // NetworkTransportKey is the attribute Key conforming to the - // "network.transport" semantic conventions. It represents the [OSI - // Transport Layer](https://osi-model.com/transport-layer/) or - // [Inter-process Communication - // method](https://en.wikipedia.org/wiki/Inter-process_communication). The - // value SHOULD be normalized to lowercase. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - // Examples: 'tcp', 'udp' - NetworkTransportKey = attribute.Key("network.transport") - - // NetworkTypeKey is the attribute Key conforming to the "network.type" - // semantic conventions. It represents the [OSI Network - // Layer](https://osi-model.com/network-layer/) or non-OSI equivalent. The - // value SHOULD be normalized to lowercase. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - // Examples: 'ipv4', 'ipv6' - NetworkTypeKey = attribute.Key("network.type") - - // NetworkProtocolNameKey is the attribute Key conforming to the - // "network.protocol.name" semantic conventions. It represents the [OSI - // Application Layer](https://osi-model.com/application-layer/) or non-OSI - // equivalent. The value SHOULD be normalized to lowercase. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'amqp', 'http', 'mqtt' - NetworkProtocolNameKey = attribute.Key("network.protocol.name") - - // NetworkProtocolVersionKey is the attribute Key conforming to the - // "network.protocol.version" semantic conventions. It represents the - // version of the application layer protocol used. See note below. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '3.1.1' - // Note: `network.protocol.version` refers to the version of the protocol - // used and might be different from the protocol client's version. If the - // HTTP client used has a version of `0.27.2`, but sends HTTP version - // `1.1`, this attribute should be set to `1.1`. - NetworkProtocolVersionKey = attribute.Key("network.protocol.version") -) - -var ( - // TCP - NetworkTransportTCP = NetworkTransportKey.String("tcp") - // UDP - NetworkTransportUDP = NetworkTransportKey.String("udp") - // Named or anonymous pipe. See note below - NetworkTransportPipe = NetworkTransportKey.String("pipe") - // Unix domain socket - NetworkTransportUnix = NetworkTransportKey.String("unix") -) - -var ( - // IPv4 - NetworkTypeIpv4 = NetworkTypeKey.String("ipv4") - // IPv6 - NetworkTypeIpv6 = NetworkTypeKey.String("ipv6") -) - -// NetworkProtocolName returns an attribute KeyValue conforming to the -// "network.protocol.name" semantic conventions. It represents the [OSI -// Application Layer](https://osi-model.com/application-layer/) or non-OSI -// equivalent. The value SHOULD be normalized to lowercase. -func NetworkProtocolName(val string) attribute.KeyValue { - return NetworkProtocolNameKey.String(val) -} - -// NetworkProtocolVersion returns an attribute KeyValue conforming to the -// "network.protocol.version" semantic conventions. It represents the version -// of the application layer protocol used. See note below. -func NetworkProtocolVersion(val string) attribute.KeyValue { - return NetworkProtocolVersionKey.String(val) -} - -// These attributes may be used for any network related operation. -const ( - // NetworkConnectionTypeKey is the attribute Key conforming to the - // "network.connection.type" semantic conventions. It represents the - // internet connection type. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - // Examples: 'wifi' - NetworkConnectionTypeKey = attribute.Key("network.connection.type") - - // NetworkConnectionSubtypeKey is the attribute Key conforming to the - // "network.connection.subtype" semantic conventions. It represents the - // this describes more details regarding the connection.type. It may be the - // type of cell technology connection, but it could be used for describing - // details about a wifi connection. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - // Examples: 'LTE' - NetworkConnectionSubtypeKey = attribute.Key("network.connection.subtype") - - // NetworkCarrierNameKey is the attribute Key conforming to the - // "network.carrier.name" semantic conventions. It represents the name of - // the mobile carrier. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'sprint' - NetworkCarrierNameKey = attribute.Key("network.carrier.name") - - // NetworkCarrierMccKey is the attribute Key conforming to the - // "network.carrier.mcc" semantic conventions. It represents the mobile - // carrier country code. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '310' - NetworkCarrierMccKey = attribute.Key("network.carrier.mcc") - - // NetworkCarrierMncKey is the attribute Key conforming to the - // "network.carrier.mnc" semantic conventions. It represents the mobile - // carrier network code. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '001' - NetworkCarrierMncKey = attribute.Key("network.carrier.mnc") - - // NetworkCarrierIccKey is the attribute Key conforming to the - // "network.carrier.icc" semantic conventions. It represents the ISO 3166-1 - // alpha-2 2-character country code associated with the mobile carrier - // network. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'DE' - NetworkCarrierIccKey = attribute.Key("network.carrier.icc") -) - -var ( - // wifi - NetworkConnectionTypeWifi = NetworkConnectionTypeKey.String("wifi") - // wired - NetworkConnectionTypeWired = NetworkConnectionTypeKey.String("wired") - // cell - NetworkConnectionTypeCell = NetworkConnectionTypeKey.String("cell") - // unavailable - NetworkConnectionTypeUnavailable = NetworkConnectionTypeKey.String("unavailable") - // unknown - NetworkConnectionTypeUnknown = NetworkConnectionTypeKey.String("unknown") -) - -var ( - // GPRS - NetworkConnectionSubtypeGprs = NetworkConnectionSubtypeKey.String("gprs") - // EDGE - NetworkConnectionSubtypeEdge = NetworkConnectionSubtypeKey.String("edge") - // UMTS - NetworkConnectionSubtypeUmts = NetworkConnectionSubtypeKey.String("umts") - // CDMA - NetworkConnectionSubtypeCdma = NetworkConnectionSubtypeKey.String("cdma") - // EVDO Rel. 0 - NetworkConnectionSubtypeEvdo0 = NetworkConnectionSubtypeKey.String("evdo_0") - // EVDO Rev. A - NetworkConnectionSubtypeEvdoA = NetworkConnectionSubtypeKey.String("evdo_a") - // CDMA2000 1XRTT - NetworkConnectionSubtypeCdma20001xrtt = NetworkConnectionSubtypeKey.String("cdma2000_1xrtt") - // HSDPA - NetworkConnectionSubtypeHsdpa = NetworkConnectionSubtypeKey.String("hsdpa") - // HSUPA - NetworkConnectionSubtypeHsupa = NetworkConnectionSubtypeKey.String("hsupa") - // HSPA - NetworkConnectionSubtypeHspa = NetworkConnectionSubtypeKey.String("hspa") - // IDEN - NetworkConnectionSubtypeIden = NetworkConnectionSubtypeKey.String("iden") - // EVDO Rev. B - NetworkConnectionSubtypeEvdoB = NetworkConnectionSubtypeKey.String("evdo_b") - // LTE - NetworkConnectionSubtypeLte = NetworkConnectionSubtypeKey.String("lte") - // EHRPD - NetworkConnectionSubtypeEhrpd = NetworkConnectionSubtypeKey.String("ehrpd") - // HSPAP - NetworkConnectionSubtypeHspap = NetworkConnectionSubtypeKey.String("hspap") - // GSM - NetworkConnectionSubtypeGsm = NetworkConnectionSubtypeKey.String("gsm") - // TD-SCDMA - NetworkConnectionSubtypeTdScdma = NetworkConnectionSubtypeKey.String("td_scdma") - // IWLAN - NetworkConnectionSubtypeIwlan = NetworkConnectionSubtypeKey.String("iwlan") - // 5G NR (New Radio) - NetworkConnectionSubtypeNr = NetworkConnectionSubtypeKey.String("nr") - // 5G NRNSA (New Radio Non-Standalone) - NetworkConnectionSubtypeNrnsa = NetworkConnectionSubtypeKey.String("nrnsa") - // LTE CA - NetworkConnectionSubtypeLteCa = NetworkConnectionSubtypeKey.String("lte_ca") -) - -// NetworkCarrierName returns an attribute KeyValue conforming to the -// "network.carrier.name" semantic conventions. It represents the name of the -// mobile carrier. -func NetworkCarrierName(val string) attribute.KeyValue { - return NetworkCarrierNameKey.String(val) -} - -// NetworkCarrierMcc returns an attribute KeyValue conforming to the -// "network.carrier.mcc" semantic conventions. It represents the mobile carrier -// country code. -func NetworkCarrierMcc(val string) attribute.KeyValue { - return NetworkCarrierMccKey.String(val) -} - -// NetworkCarrierMnc returns an attribute KeyValue conforming to the -// "network.carrier.mnc" semantic conventions. It represents the mobile carrier -// network code. -func NetworkCarrierMnc(val string) attribute.KeyValue { - return NetworkCarrierMncKey.String(val) -} - -// NetworkCarrierIcc returns an attribute KeyValue conforming to the -// "network.carrier.icc" semantic conventions. It represents the ISO 3166-1 -// alpha-2 2-character country code associated with the mobile carrier network. -func NetworkCarrierIcc(val string) attribute.KeyValue { - return NetworkCarrierIccKey.String(val) -} - -// Semantic conventions for HTTP client and server Spans. -const ( - // HTTPRequestMethodOriginalKey is the attribute Key conforming to the - // "http.request.method_original" semantic conventions. It represents the - // original HTTP method sent by the client in the request line. - // - // Type: string - // RequirementLevel: ConditionallyRequired (If and only if it's different - // than `http.request.method`.) - // Stability: stable - // Examples: 'GeT', 'ACL', 'foo' - HTTPRequestMethodOriginalKey = attribute.Key("http.request.method_original") - - // HTTPRequestBodySizeKey is the attribute Key conforming to the - // "http.request.body.size" semantic conventions. It represents the size of - // the request payload body in bytes. This is the number of bytes - // transferred excluding headers and is often, but not always, present as - // the - // [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) - // header. For requests using transport encoding, this should be the - // compressed size. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 3495 - HTTPRequestBodySizeKey = attribute.Key("http.request.body.size") - - // HTTPResponseBodySizeKey is the attribute Key conforming to the - // "http.response.body.size" semantic conventions. It represents the size - // of the response payload body in bytes. This is the number of bytes - // transferred excluding headers and is often, but not always, present as - // the - // [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) - // header. For requests using transport encoding, this should be the - // compressed size. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 3495 - HTTPResponseBodySizeKey = attribute.Key("http.response.body.size") -) - -// HTTPRequestMethodOriginal returns an attribute KeyValue conforming to the -// "http.request.method_original" semantic conventions. It represents the -// original HTTP method sent by the client in the request line. -func HTTPRequestMethodOriginal(val string) attribute.KeyValue { - return HTTPRequestMethodOriginalKey.String(val) -} - -// HTTPRequestBodySize returns an attribute KeyValue conforming to the -// "http.request.body.size" semantic conventions. It represents the size of the -// request payload body in bytes. This is the number of bytes transferred -// excluding headers and is often, but not always, present as the -// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) -// header. For requests using transport encoding, this should be the compressed -// size. -func HTTPRequestBodySize(val int) attribute.KeyValue { - return HTTPRequestBodySizeKey.Int(val) -} - -// HTTPResponseBodySize returns an attribute KeyValue conforming to the -// "http.response.body.size" semantic conventions. It represents the size of -// the response payload body in bytes. This is the number of bytes transferred -// excluding headers and is often, but not always, present as the -// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) -// header. For requests using transport encoding, this should be the compressed -// size. -func HTTPResponseBodySize(val int) attribute.KeyValue { - return HTTPResponseBodySizeKey.Int(val) -} - -// Semantic convention describing per-message attributes populated on messaging -// spans or links. -const ( - // MessagingMessageIDKey is the attribute Key conforming to the - // "messaging.message.id" semantic conventions. It represents a value used - // by the messaging system as an identifier for the message, represented as - // a string. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '452a7c7c7c7048c2f887f61572b18fc2' - MessagingMessageIDKey = attribute.Key("messaging.message.id") - - // MessagingMessageConversationIDKey is the attribute Key conforming to the - // "messaging.message.conversation_id" semantic conventions. It represents - // the [conversation ID](#conversations) identifying the conversation to - // which the message belongs, represented as a string. Sometimes called - // "Correlation ID". - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'MyConversationID' - MessagingMessageConversationIDKey = attribute.Key("messaging.message.conversation_id") - - // MessagingMessagePayloadSizeBytesKey is the attribute Key conforming to - // the "messaging.message.payload_size_bytes" semantic conventions. It - // represents the (uncompressed) size of the message payload in bytes. Also - // use this attribute if it is unknown whether the compressed or - // uncompressed payload size is reported. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 2738 - MessagingMessagePayloadSizeBytesKey = attribute.Key("messaging.message.payload_size_bytes") - - // MessagingMessagePayloadCompressedSizeBytesKey is the attribute Key - // conforming to the "messaging.message.payload_compressed_size_bytes" - // semantic conventions. It represents the compressed size of the message - // payload in bytes. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 2048 - MessagingMessagePayloadCompressedSizeBytesKey = attribute.Key("messaging.message.payload_compressed_size_bytes") -) - -// MessagingMessageID returns an attribute KeyValue conforming to the -// "messaging.message.id" semantic conventions. It represents a value used by -// the messaging system as an identifier for the message, represented as a -// string. -func MessagingMessageID(val string) attribute.KeyValue { - return MessagingMessageIDKey.String(val) -} - -// MessagingMessageConversationID returns an attribute KeyValue conforming -// to the "messaging.message.conversation_id" semantic conventions. It -// represents the [conversation ID](#conversations) identifying the -// conversation to which the message belongs, represented as a string. -// Sometimes called "Correlation ID". -func MessagingMessageConversationID(val string) attribute.KeyValue { - return MessagingMessageConversationIDKey.String(val) -} - -// MessagingMessagePayloadSizeBytes returns an attribute KeyValue conforming -// to the "messaging.message.payload_size_bytes" semantic conventions. It -// represents the (uncompressed) size of the message payload in bytes. Also use -// this attribute if it is unknown whether the compressed or uncompressed -// payload size is reported. -func MessagingMessagePayloadSizeBytes(val int) attribute.KeyValue { - return MessagingMessagePayloadSizeBytesKey.Int(val) -} - -// MessagingMessagePayloadCompressedSizeBytes returns an attribute KeyValue -// conforming to the "messaging.message.payload_compressed_size_bytes" semantic -// conventions. It represents the compressed size of the message payload in -// bytes. -func MessagingMessagePayloadCompressedSizeBytes(val int) attribute.KeyValue { - return MessagingMessagePayloadCompressedSizeBytesKey.Int(val) -} - -// Semantic convention for attributes that describe messaging destination on -// broker -const ( - // MessagingDestinationNameKey is the attribute Key conforming to the - // "messaging.destination.name" semantic conventions. It represents the - // message destination name - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'MyQueue', 'MyTopic' - // Note: Destination name SHOULD uniquely identify a specific queue, topic - // or other entity within the broker. If - // the broker does not have such notion, the destination name SHOULD - // uniquely identify the broker. - MessagingDestinationNameKey = attribute.Key("messaging.destination.name") - - // MessagingDestinationTemplateKey is the attribute Key conforming to the - // "messaging.destination.template" semantic conventions. It represents the - // low cardinality representation of the messaging destination name - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '/customers/{customerID}' - // Note: Destination names could be constructed from templates. An example - // would be a destination name involving a user name or product id. - // Although the destination name in this case is of high cardinality, the - // underlying template is of low cardinality and can be effectively used - // for grouping and aggregation. - MessagingDestinationTemplateKey = attribute.Key("messaging.destination.template") - - // MessagingDestinationTemporaryKey is the attribute Key conforming to the - // "messaging.destination.temporary" semantic conventions. It represents a - // boolean that is true if the message destination is temporary and might - // not exist anymore after messages are processed. - // - // Type: boolean - // RequirementLevel: Optional - // Stability: stable - MessagingDestinationTemporaryKey = attribute.Key("messaging.destination.temporary") - - // MessagingDestinationAnonymousKey is the attribute Key conforming to the - // "messaging.destination.anonymous" semantic conventions. It represents a - // boolean that is true if the message destination is anonymous (could be - // unnamed or have auto-generated name). - // - // Type: boolean - // RequirementLevel: Optional - // Stability: stable - MessagingDestinationAnonymousKey = attribute.Key("messaging.destination.anonymous") -) - -// MessagingDestinationName returns an attribute KeyValue conforming to the -// "messaging.destination.name" semantic conventions. It represents the message -// destination name -func MessagingDestinationName(val string) attribute.KeyValue { - return MessagingDestinationNameKey.String(val) -} - -// MessagingDestinationTemplate returns an attribute KeyValue conforming to -// the "messaging.destination.template" semantic conventions. It represents the -// low cardinality representation of the messaging destination name -func MessagingDestinationTemplate(val string) attribute.KeyValue { - return MessagingDestinationTemplateKey.String(val) -} - -// MessagingDestinationTemporary returns an attribute KeyValue conforming to -// the "messaging.destination.temporary" semantic conventions. It represents a -// boolean that is true if the message destination is temporary and might not -// exist anymore after messages are processed. -func MessagingDestinationTemporary(val bool) attribute.KeyValue { - return MessagingDestinationTemporaryKey.Bool(val) -} - -// MessagingDestinationAnonymous returns an attribute KeyValue conforming to -// the "messaging.destination.anonymous" semantic conventions. It represents a -// boolean that is true if the message destination is anonymous (could be -// unnamed or have auto-generated name). -func MessagingDestinationAnonymous(val bool) attribute.KeyValue { - return MessagingDestinationAnonymousKey.Bool(val) -} - -// Attributes for RabbitMQ -const ( - // MessagingRabbitmqDestinationRoutingKeyKey is the attribute Key - // conforming to the "messaging.rabbitmq.destination.routing_key" semantic - // conventions. It represents the rabbitMQ message routing key. - // - // Type: string - // RequirementLevel: ConditionallyRequired (If not empty.) - // Stability: stable - // Examples: 'myKey' - MessagingRabbitmqDestinationRoutingKeyKey = attribute.Key("messaging.rabbitmq.destination.routing_key") -) - -// MessagingRabbitmqDestinationRoutingKey returns an attribute KeyValue -// conforming to the "messaging.rabbitmq.destination.routing_key" semantic -// conventions. It represents the rabbitMQ message routing key. -func MessagingRabbitmqDestinationRoutingKey(val string) attribute.KeyValue { - return MessagingRabbitmqDestinationRoutingKeyKey.String(val) -} - -// Attributes for Apache Kafka -const ( - // MessagingKafkaMessageKeyKey is the attribute Key conforming to the - // "messaging.kafka.message.key" semantic conventions. It represents the - // message keys in Kafka are used for grouping alike messages to ensure - // they're processed on the same partition. They differ from - // `messaging.message.id` in that they're not unique. If the key is `null`, - // the attribute MUST NOT be set. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'myKey' - // Note: If the key type is not string, it's string representation has to - // be supplied for the attribute. If the key has no unambiguous, canonical - // string form, don't include its value. - MessagingKafkaMessageKeyKey = attribute.Key("messaging.kafka.message.key") - - // MessagingKafkaConsumerGroupKey is the attribute Key conforming to the - // "messaging.kafka.consumer.group" semantic conventions. It represents the - // name of the Kafka Consumer Group that is handling the message. Only - // applies to consumers, not producers. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'my-group' - MessagingKafkaConsumerGroupKey = attribute.Key("messaging.kafka.consumer.group") - - // MessagingKafkaDestinationPartitionKey is the attribute Key conforming to - // the "messaging.kafka.destination.partition" semantic conventions. It - // represents the partition the message is sent to. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 2 - MessagingKafkaDestinationPartitionKey = attribute.Key("messaging.kafka.destination.partition") - - // MessagingKafkaMessageOffsetKey is the attribute Key conforming to the - // "messaging.kafka.message.offset" semantic conventions. It represents the - // offset of a record in the corresponding Kafka partition. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 42 - MessagingKafkaMessageOffsetKey = attribute.Key("messaging.kafka.message.offset") - - // MessagingKafkaMessageTombstoneKey is the attribute Key conforming to the - // "messaging.kafka.message.tombstone" semantic conventions. It represents - // a boolean that is true if the message is a tombstone. - // - // Type: boolean - // RequirementLevel: ConditionallyRequired (If value is `true`. When - // missing, the value is assumed to be `false`.) - // Stability: stable - MessagingKafkaMessageTombstoneKey = attribute.Key("messaging.kafka.message.tombstone") -) - -// MessagingKafkaMessageKey returns an attribute KeyValue conforming to the -// "messaging.kafka.message.key" semantic conventions. It represents the -// message keys in Kafka are used for grouping alike messages to ensure they're -// processed on the same partition. They differ from `messaging.message.id` in -// that they're not unique. If the key is `null`, the attribute MUST NOT be -// set. -func MessagingKafkaMessageKey(val string) attribute.KeyValue { - return MessagingKafkaMessageKeyKey.String(val) -} - -// MessagingKafkaConsumerGroup returns an attribute KeyValue conforming to -// the "messaging.kafka.consumer.group" semantic conventions. It represents the -// name of the Kafka Consumer Group that is handling the message. Only applies -// to consumers, not producers. -func MessagingKafkaConsumerGroup(val string) attribute.KeyValue { - return MessagingKafkaConsumerGroupKey.String(val) -} - -// MessagingKafkaDestinationPartition returns an attribute KeyValue -// conforming to the "messaging.kafka.destination.partition" semantic -// conventions. It represents the partition the message is sent to. -func MessagingKafkaDestinationPartition(val int) attribute.KeyValue { - return MessagingKafkaDestinationPartitionKey.Int(val) -} - -// MessagingKafkaMessageOffset returns an attribute KeyValue conforming to -// the "messaging.kafka.message.offset" semantic conventions. It represents the -// offset of a record in the corresponding Kafka partition. -func MessagingKafkaMessageOffset(val int) attribute.KeyValue { - return MessagingKafkaMessageOffsetKey.Int(val) -} - -// MessagingKafkaMessageTombstone returns an attribute KeyValue conforming -// to the "messaging.kafka.message.tombstone" semantic conventions. It -// represents a boolean that is true if the message is a tombstone. -func MessagingKafkaMessageTombstone(val bool) attribute.KeyValue { - return MessagingKafkaMessageTombstoneKey.Bool(val) -} - -// Attributes for Apache RocketMQ -const ( - // MessagingRocketmqNamespaceKey is the attribute Key conforming to the - // "messaging.rocketmq.namespace" semantic conventions. It represents the - // namespace of RocketMQ resources, resources in different namespaces are - // individual. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'myNamespace' - MessagingRocketmqNamespaceKey = attribute.Key("messaging.rocketmq.namespace") - - // MessagingRocketmqClientGroupKey is the attribute Key conforming to the - // "messaging.rocketmq.client_group" semantic conventions. It represents - // the name of the RocketMQ producer/consumer group that is handling the - // message. The client type is identified by the SpanKind. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'myConsumerGroup' - MessagingRocketmqClientGroupKey = attribute.Key("messaging.rocketmq.client_group") - - // MessagingRocketmqMessageDeliveryTimestampKey is the attribute Key - // conforming to the "messaging.rocketmq.message.delivery_timestamp" - // semantic conventions. It represents the timestamp in milliseconds that - // the delay message is expected to be delivered to consumer. - // - // Type: int - // RequirementLevel: ConditionallyRequired (If the message type is delay - // and delay time level is not specified.) - // Stability: stable - // Examples: 1665987217045 - MessagingRocketmqMessageDeliveryTimestampKey = attribute.Key("messaging.rocketmq.message.delivery_timestamp") - - // MessagingRocketmqMessageDelayTimeLevelKey is the attribute Key - // conforming to the "messaging.rocketmq.message.delay_time_level" semantic - // conventions. It represents the delay time level for delay message, which - // determines the message delay time. - // - // Type: int - // RequirementLevel: ConditionallyRequired (If the message type is delay - // and delivery timestamp is not specified.) - // Stability: stable - // Examples: 3 - MessagingRocketmqMessageDelayTimeLevelKey = attribute.Key("messaging.rocketmq.message.delay_time_level") - - // MessagingRocketmqMessageGroupKey is the attribute Key conforming to the - // "messaging.rocketmq.message.group" semantic conventions. It represents - // the it is essential for FIFO message. Messages that belong to the same - // message group are always processed one by one within the same consumer - // group. - // - // Type: string - // RequirementLevel: ConditionallyRequired (If the message type is FIFO.) - // Stability: stable - // Examples: 'myMessageGroup' - MessagingRocketmqMessageGroupKey = attribute.Key("messaging.rocketmq.message.group") - - // MessagingRocketmqMessageTypeKey is the attribute Key conforming to the - // "messaging.rocketmq.message.type" semantic conventions. It represents - // the type of message. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - MessagingRocketmqMessageTypeKey = attribute.Key("messaging.rocketmq.message.type") - - // MessagingRocketmqMessageTagKey is the attribute Key conforming to the - // "messaging.rocketmq.message.tag" semantic conventions. It represents the - // secondary classifier of message besides topic. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'tagA' - MessagingRocketmqMessageTagKey = attribute.Key("messaging.rocketmq.message.tag") - - // MessagingRocketmqMessageKeysKey is the attribute Key conforming to the - // "messaging.rocketmq.message.keys" semantic conventions. It represents - // the key(s) of message, another way to mark message besides message id. - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: 'keyA', 'keyB' - MessagingRocketmqMessageKeysKey = attribute.Key("messaging.rocketmq.message.keys") - - // MessagingRocketmqConsumptionModelKey is the attribute Key conforming to - // the "messaging.rocketmq.consumption_model" semantic conventions. It - // represents the model of message consumption. This only applies to - // consumer spans. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - MessagingRocketmqConsumptionModelKey = attribute.Key("messaging.rocketmq.consumption_model") -) - -var ( - // Normal message - MessagingRocketmqMessageTypeNormal = MessagingRocketmqMessageTypeKey.String("normal") - // FIFO message - MessagingRocketmqMessageTypeFifo = MessagingRocketmqMessageTypeKey.String("fifo") - // Delay message - MessagingRocketmqMessageTypeDelay = MessagingRocketmqMessageTypeKey.String("delay") - // Transaction message - MessagingRocketmqMessageTypeTransaction = MessagingRocketmqMessageTypeKey.String("transaction") -) - -var ( - // Clustering consumption model - MessagingRocketmqConsumptionModelClustering = MessagingRocketmqConsumptionModelKey.String("clustering") - // Broadcasting consumption model - MessagingRocketmqConsumptionModelBroadcasting = MessagingRocketmqConsumptionModelKey.String("broadcasting") -) - -// MessagingRocketmqNamespace returns an attribute KeyValue conforming to -// the "messaging.rocketmq.namespace" semantic conventions. It represents the -// namespace of RocketMQ resources, resources in different namespaces are -// individual. -func MessagingRocketmqNamespace(val string) attribute.KeyValue { - return MessagingRocketmqNamespaceKey.String(val) -} - -// MessagingRocketmqClientGroup returns an attribute KeyValue conforming to -// the "messaging.rocketmq.client_group" semantic conventions. It represents -// the name of the RocketMQ producer/consumer group that is handling the -// message. The client type is identified by the SpanKind. -func MessagingRocketmqClientGroup(val string) attribute.KeyValue { - return MessagingRocketmqClientGroupKey.String(val) -} - -// MessagingRocketmqMessageDeliveryTimestamp returns an attribute KeyValue -// conforming to the "messaging.rocketmq.message.delivery_timestamp" semantic -// conventions. It represents the timestamp in milliseconds that the delay -// message is expected to be delivered to consumer. -func MessagingRocketmqMessageDeliveryTimestamp(val int) attribute.KeyValue { - return MessagingRocketmqMessageDeliveryTimestampKey.Int(val) -} - -// MessagingRocketmqMessageDelayTimeLevel returns an attribute KeyValue -// conforming to the "messaging.rocketmq.message.delay_time_level" semantic -// conventions. It represents the delay time level for delay message, which -// determines the message delay time. -func MessagingRocketmqMessageDelayTimeLevel(val int) attribute.KeyValue { - return MessagingRocketmqMessageDelayTimeLevelKey.Int(val) -} - -// MessagingRocketmqMessageGroup returns an attribute KeyValue conforming to -// the "messaging.rocketmq.message.group" semantic conventions. It represents -// the it is essential for FIFO message. Messages that belong to the same -// message group are always processed one by one within the same consumer -// group. -func MessagingRocketmqMessageGroup(val string) attribute.KeyValue { - return MessagingRocketmqMessageGroupKey.String(val) -} - -// MessagingRocketmqMessageTag returns an attribute KeyValue conforming to -// the "messaging.rocketmq.message.tag" semantic conventions. It represents the -// secondary classifier of message besides topic. -func MessagingRocketmqMessageTag(val string) attribute.KeyValue { - return MessagingRocketmqMessageTagKey.String(val) -} - -// MessagingRocketmqMessageKeys returns an attribute KeyValue conforming to -// the "messaging.rocketmq.message.keys" semantic conventions. It represents -// the key(s) of message, another way to mark message besides message id. -func MessagingRocketmqMessageKeys(val ...string) attribute.KeyValue { - return MessagingRocketmqMessageKeysKey.StringSlice(val) -} - -// Attributes describing URL. -const ( - // URLSchemeKey is the attribute Key conforming to the "url.scheme" - // semantic conventions. It represents the [URI - // scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component - // identifying the used protocol. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'https', 'ftp', 'telnet' - URLSchemeKey = attribute.Key("url.scheme") - - // URLFullKey is the attribute Key conforming to the "url.full" semantic - // conventions. It represents the absolute URL describing a network - // resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986) - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv', - // '//localhost' - // Note: For network calls, URL usually has - // `scheme://host[:port][path][?query][#fragment]` format, where the - // fragment is not transmitted over HTTP, but if it is known, it should be - // included nevertheless. - // `url.full` MUST NOT contain credentials passed via URL in form of - // `https://username:password@www.example.com/`. In such case username and - // password should be redacted and attribute's value should be - // `https://REDACTED:REDACTED@www.example.com/`. - // `url.full` SHOULD capture the absolute URL when it is available (or can - // be reconstructed) and SHOULD NOT be validated or modified except for - // sanitizing purposes. - URLFullKey = attribute.Key("url.full") - - // URLPathKey is the attribute Key conforming to the "url.path" semantic - // conventions. It represents the [URI - // path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '/search' - // Note: When missing, the value is assumed to be `/` - URLPathKey = attribute.Key("url.path") - - // URLQueryKey is the attribute Key conforming to the "url.query" semantic - // conventions. It represents the [URI - // query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'q=OpenTelemetry' - // Note: Sensitive content provided in query string SHOULD be scrubbed when - // instrumentations can identify it. - URLQueryKey = attribute.Key("url.query") - - // URLFragmentKey is the attribute Key conforming to the "url.fragment" - // semantic conventions. It represents the [URI - // fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'SemConv' - URLFragmentKey = attribute.Key("url.fragment") -) - -// URLScheme returns an attribute KeyValue conforming to the "url.scheme" -// semantic conventions. It represents the [URI -// scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component -// identifying the used protocol. -func URLScheme(val string) attribute.KeyValue { - return URLSchemeKey.String(val) -} - -// URLFull returns an attribute KeyValue conforming to the "url.full" -// semantic conventions. It represents the absolute URL describing a network -// resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986) -func URLFull(val string) attribute.KeyValue { - return URLFullKey.String(val) -} - -// URLPath returns an attribute KeyValue conforming to the "url.path" -// semantic conventions. It represents the [URI -// path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component -func URLPath(val string) attribute.KeyValue { - return URLPathKey.String(val) -} - -// URLQuery returns an attribute KeyValue conforming to the "url.query" -// semantic conventions. It represents the [URI -// query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component -func URLQuery(val string) attribute.KeyValue { - return URLQueryKey.String(val) -} - -// URLFragment returns an attribute KeyValue conforming to the -// "url.fragment" semantic conventions. It represents the [URI -// fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component -func URLFragment(val string) attribute.KeyValue { - return URLFragmentKey.String(val) -} - -// Describes user-agent attributes. -const ( - // UserAgentOriginalKey is the attribute Key conforming to the - // "user_agent.original" semantic conventions. It represents the value of - // the [HTTP - // User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) - // header sent by the client. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'CERN-LineMode/2.15 libwww/2.17b3' - UserAgentOriginalKey = attribute.Key("user_agent.original") -) - -// UserAgentOriginal returns an attribute KeyValue conforming to the -// "user_agent.original" semantic conventions. It represents the value of the -// [HTTP -// User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) -// header sent by the client. -func UserAgentOriginal(val string) attribute.KeyValue { - return UserAgentOriginalKey.String(val) -} diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/doc.go b/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/doc.go deleted file mode 100644 index 461331a5..00000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/doc.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -// Package semconv implements OpenTelemetry semantic conventions. -// -// OpenTelemetry semantic conventions are agreed standardized naming -// patterns for OpenTelemetry things. This package represents the v1.21.0 -// version of the OpenTelemetry semantic conventions. -package semconv // import "go.opentelemetry.io/otel/semconv/v1.21.0" diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/event.go b/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/event.go deleted file mode 100644 index c09d9317..00000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/event.go +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -// Code generated from semantic convention specification. DO NOT EDIT. - -package semconv // import "go.opentelemetry.io/otel/semconv/v1.21.0" - -import "go.opentelemetry.io/otel/attribute" - -// This semantic convention defines the attributes used to represent a feature -// flag evaluation as an event. -const ( - // FeatureFlagKeyKey is the attribute Key conforming to the - // "feature_flag.key" semantic conventions. It represents the unique - // identifier of the feature flag. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'logo-color' - FeatureFlagKeyKey = attribute.Key("feature_flag.key") - - // FeatureFlagProviderNameKey is the attribute Key conforming to the - // "feature_flag.provider_name" semantic conventions. It represents the - // name of the service provider that performs the flag evaluation. - // - // Type: string - // RequirementLevel: Recommended - // Stability: stable - // Examples: 'Flag Manager' - FeatureFlagProviderNameKey = attribute.Key("feature_flag.provider_name") - - // FeatureFlagVariantKey is the attribute Key conforming to the - // "feature_flag.variant" semantic conventions. It represents the sHOULD be - // a semantic identifier for a value. If one is unavailable, a stringified - // version of the value can be used. - // - // Type: string - // RequirementLevel: Recommended - // Stability: stable - // Examples: 'red', 'true', 'on' - // Note: A semantic identifier, commonly referred to as a variant, provides - // a means - // for referring to a value without including the value itself. This can - // provide additional context for understanding the meaning behind a value. - // For example, the variant `red` maybe be used for the value `#c05543`. - // - // A stringified version of the value can be used in situations where a - // semantic identifier is unavailable. String representation of the value - // should be determined by the implementer. - FeatureFlagVariantKey = attribute.Key("feature_flag.variant") -) - -// FeatureFlagKey returns an attribute KeyValue conforming to the -// "feature_flag.key" semantic conventions. It represents the unique identifier -// of the feature flag. -func FeatureFlagKey(val string) attribute.KeyValue { - return FeatureFlagKeyKey.String(val) -} - -// FeatureFlagProviderName returns an attribute KeyValue conforming to the -// "feature_flag.provider_name" semantic conventions. It represents the name of -// the service provider that performs the flag evaluation. -func FeatureFlagProviderName(val string) attribute.KeyValue { - return FeatureFlagProviderNameKey.String(val) -} - -// FeatureFlagVariant returns an attribute KeyValue conforming to the -// "feature_flag.variant" semantic conventions. It represents the sHOULD be a -// semantic identifier for a value. If one is unavailable, a stringified -// version of the value can be used. -func FeatureFlagVariant(val string) attribute.KeyValue { - return FeatureFlagVariantKey.String(val) -} - -// RPC received/sent message. -const ( - // MessageTypeKey is the attribute Key conforming to the "message.type" - // semantic conventions. It represents the whether this is a received or - // sent message. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - MessageTypeKey = attribute.Key("message.type") - - // MessageIDKey is the attribute Key conforming to the "message.id" - // semantic conventions. It represents the mUST be calculated as two - // different counters starting from `1` one for sent messages and one for - // received message. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Note: This way we guarantee that the values will be consistent between - // different implementations. - MessageIDKey = attribute.Key("message.id") - - // MessageCompressedSizeKey is the attribute Key conforming to the - // "message.compressed_size" semantic conventions. It represents the - // compressed size of the message in bytes. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - MessageCompressedSizeKey = attribute.Key("message.compressed_size") - - // MessageUncompressedSizeKey is the attribute Key conforming to the - // "message.uncompressed_size" semantic conventions. It represents the - // uncompressed size of the message in bytes. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - MessageUncompressedSizeKey = attribute.Key("message.uncompressed_size") -) - -var ( - // sent - MessageTypeSent = MessageTypeKey.String("SENT") - // received - MessageTypeReceived = MessageTypeKey.String("RECEIVED") -) - -// MessageID returns an attribute KeyValue conforming to the "message.id" -// semantic conventions. It represents the mUST be calculated as two different -// counters starting from `1` one for sent messages and one for received -// message. -func MessageID(val int) attribute.KeyValue { - return MessageIDKey.Int(val) -} - -// MessageCompressedSize returns an attribute KeyValue conforming to the -// "message.compressed_size" semantic conventions. It represents the compressed -// size of the message in bytes. -func MessageCompressedSize(val int) attribute.KeyValue { - return MessageCompressedSizeKey.Int(val) -} - -// MessageUncompressedSize returns an attribute KeyValue conforming to the -// "message.uncompressed_size" semantic conventions. It represents the -// uncompressed size of the message in bytes. -func MessageUncompressedSize(val int) attribute.KeyValue { - return MessageUncompressedSizeKey.Int(val) -} - -// The attributes used to report a single exception associated with a span. -const ( - // ExceptionEscapedKey is the attribute Key conforming to the - // "exception.escaped" semantic conventions. It represents the sHOULD be - // set to true if the exception event is recorded at a point where it is - // known that the exception is escaping the scope of the span. - // - // Type: boolean - // RequirementLevel: Optional - // Stability: stable - // Note: An exception is considered to have escaped (or left) the scope of - // a span, - // if that span is ended while the exception is still logically "in - // flight". - // This may be actually "in flight" in some languages (e.g. if the - // exception - // is passed to a Context manager's `__exit__` method in Python) but will - // usually be caught at the point of recording the exception in most - // languages. - // - // It is usually not possible to determine at the point where an exception - // is thrown - // whether it will escape the scope of a span. - // However, it is trivial to know that an exception - // will escape, if one checks for an active exception just before ending - // the span, - // as done in the [example above](#recording-an-exception). - // - // It follows that an exception may still escape the scope of the span - // even if the `exception.escaped` attribute was not set or set to false, - // since the event might have been recorded at a time where it was not - // clear whether the exception will escape. - ExceptionEscapedKey = attribute.Key("exception.escaped") -) - -// ExceptionEscaped returns an attribute KeyValue conforming to the -// "exception.escaped" semantic conventions. It represents the sHOULD be set to -// true if the exception event is recorded at a point where it is known that -// the exception is escaping the scope of the span. -func ExceptionEscaped(val bool) attribute.KeyValue { - return ExceptionEscapedKey.Bool(val) -} diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/exception.go b/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/exception.go deleted file mode 100644 index 5184ee33..00000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/exception.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -package semconv // import "go.opentelemetry.io/otel/semconv/v1.21.0" - -const ( - // ExceptionEventName is the name of the Span event representing an exception. - ExceptionEventName = "exception" -) diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/resource.go b/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/resource.go deleted file mode 100644 index f7aaa50b..00000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/resource.go +++ /dev/null @@ -1,2299 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -// Code generated from semantic convention specification. DO NOT EDIT. - -package semconv // import "go.opentelemetry.io/otel/semconv/v1.21.0" - -import "go.opentelemetry.io/otel/attribute" - -// The web browser in which the application represented by the resource is -// running. The `browser.*` attributes MUST be used only for resources that -// represent applications running in a web browser (regardless of whether -// running on a mobile or desktop device). -const ( - // BrowserBrandsKey is the attribute Key conforming to the "browser.brands" - // semantic conventions. It represents the array of brand name and version - // separated by a space - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: ' Not A;Brand 99', 'Chromium 99', 'Chrome 99' - // Note: This value is intended to be taken from the [UA client hints - // API](https://wicg.github.io/ua-client-hints/#interface) - // (`navigator.userAgentData.brands`). - BrowserBrandsKey = attribute.Key("browser.brands") - - // BrowserPlatformKey is the attribute Key conforming to the - // "browser.platform" semantic conventions. It represents the platform on - // which the browser is running - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Windows', 'macOS', 'Android' - // Note: This value is intended to be taken from the [UA client hints - // API](https://wicg.github.io/ua-client-hints/#interface) - // (`navigator.userAgentData.platform`). If unavailable, the legacy - // `navigator.platform` API SHOULD NOT be used instead and this attribute - // SHOULD be left unset in order for the values to be consistent. - // The list of possible values is defined in the [W3C User-Agent Client - // Hints - // specification](https://wicg.github.io/ua-client-hints/#sec-ch-ua-platform). - // Note that some (but not all) of these values can overlap with values in - // the [`os.type` and `os.name` attributes](./os.md). However, for - // consistency, the values in the `browser.platform` attribute should - // capture the exact value that the user agent provides. - BrowserPlatformKey = attribute.Key("browser.platform") - - // BrowserMobileKey is the attribute Key conforming to the "browser.mobile" - // semantic conventions. It represents a boolean that is true if the - // browser is running on a mobile device - // - // Type: boolean - // RequirementLevel: Optional - // Stability: stable - // Note: This value is intended to be taken from the [UA client hints - // API](https://wicg.github.io/ua-client-hints/#interface) - // (`navigator.userAgentData.mobile`). If unavailable, this attribute - // SHOULD be left unset. - BrowserMobileKey = attribute.Key("browser.mobile") - - // BrowserLanguageKey is the attribute Key conforming to the - // "browser.language" semantic conventions. It represents the preferred - // language of the user using the browser - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'en', 'en-US', 'fr', 'fr-FR' - // Note: This value is intended to be taken from the Navigator API - // `navigator.language`. - BrowserLanguageKey = attribute.Key("browser.language") -) - -// BrowserBrands returns an attribute KeyValue conforming to the -// "browser.brands" semantic conventions. It represents the array of brand name -// and version separated by a space -func BrowserBrands(val ...string) attribute.KeyValue { - return BrowserBrandsKey.StringSlice(val) -} - -// BrowserPlatform returns an attribute KeyValue conforming to the -// "browser.platform" semantic conventions. It represents the platform on which -// the browser is running -func BrowserPlatform(val string) attribute.KeyValue { - return BrowserPlatformKey.String(val) -} - -// BrowserMobile returns an attribute KeyValue conforming to the -// "browser.mobile" semantic conventions. It represents a boolean that is true -// if the browser is running on a mobile device -func BrowserMobile(val bool) attribute.KeyValue { - return BrowserMobileKey.Bool(val) -} - -// BrowserLanguage returns an attribute KeyValue conforming to the -// "browser.language" semantic conventions. It represents the preferred -// language of the user using the browser -func BrowserLanguage(val string) attribute.KeyValue { - return BrowserLanguageKey.String(val) -} - -// A cloud environment (e.g. GCP, Azure, AWS) -const ( - // CloudProviderKey is the attribute Key conforming to the "cloud.provider" - // semantic conventions. It represents the name of the cloud provider. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - CloudProviderKey = attribute.Key("cloud.provider") - - // CloudAccountIDKey is the attribute Key conforming to the - // "cloud.account.id" semantic conventions. It represents the cloud account - // ID the resource is assigned to. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '111111111111', 'opentelemetry' - CloudAccountIDKey = attribute.Key("cloud.account.id") - - // CloudRegionKey is the attribute Key conforming to the "cloud.region" - // semantic conventions. It represents the geographical region the resource - // is running. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'us-central1', 'us-east-1' - // Note: Refer to your provider's docs to see the available regions, for - // example [Alibaba Cloud - // regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS - // regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), - // [Azure - // regions](https://azure.microsoft.com/en-us/global-infrastructure/geographies/), - // [Google Cloud regions](https://cloud.google.com/about/locations), or - // [Tencent Cloud - // regions](https://www.tencentcloud.com/document/product/213/6091). - CloudRegionKey = attribute.Key("cloud.region") - - // CloudResourceIDKey is the attribute Key conforming to the - // "cloud.resource_id" semantic conventions. It represents the cloud - // provider-specific native identifier of the monitored cloud resource - // (e.g. an - // [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // on AWS, a [fully qualified resource - // ID](https://learn.microsoft.com/en-us/rest/api/resources/resources/get-by-id) - // on Azure, a [full resource - // name](https://cloud.google.com/apis/design/resource_names#full_resource_name) - // on GCP) - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function', - // '//run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID', - // '/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/' - // Note: On some cloud providers, it may not be possible to determine the - // full ID at startup, - // so it may be necessary to set `cloud.resource_id` as a span attribute - // instead. - // - // The exact value to use for `cloud.resource_id` depends on the cloud - // provider. - // The following well-known definitions MUST be used if you set this - // attribute and they apply: - // - // * **AWS Lambda:** The function - // [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). - // Take care not to use the "invoked ARN" directly but replace any - // [alias - // suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) - // with the resolved function version, as the same runtime instance may - // be invokable with - // multiple different aliases. - // * **GCP:** The [URI of the - // resource](https://cloud.google.com/iam/docs/full-resource-names) - // * **Azure:** The [Fully Qualified Resource - // ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id) - // of the invoked function, - // *not* the function app, having the form - // `/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/`. - // This means that a span attribute MUST be used, as an Azure function - // app can host multiple functions that would usually share - // a TracerProvider. - CloudResourceIDKey = attribute.Key("cloud.resource_id") - - // CloudAvailabilityZoneKey is the attribute Key conforming to the - // "cloud.availability_zone" semantic conventions. It represents the cloud - // regions often have multiple, isolated locations known as zones to - // increase availability. Availability zone represents the zone where the - // resource is running. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'us-east-1c' - // Note: Availability zones are called "zones" on Alibaba Cloud and Google - // Cloud. - CloudAvailabilityZoneKey = attribute.Key("cloud.availability_zone") - - // CloudPlatformKey is the attribute Key conforming to the "cloud.platform" - // semantic conventions. It represents the cloud platform in use. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - // Note: The prefix of the service SHOULD match the one specified in - // `cloud.provider`. - CloudPlatformKey = attribute.Key("cloud.platform") -) - -var ( - // Alibaba Cloud - CloudProviderAlibabaCloud = CloudProviderKey.String("alibaba_cloud") - // Amazon Web Services - CloudProviderAWS = CloudProviderKey.String("aws") - // Microsoft Azure - CloudProviderAzure = CloudProviderKey.String("azure") - // Google Cloud Platform - CloudProviderGCP = CloudProviderKey.String("gcp") - // Heroku Platform as a Service - CloudProviderHeroku = CloudProviderKey.String("heroku") - // IBM Cloud - CloudProviderIbmCloud = CloudProviderKey.String("ibm_cloud") - // Tencent Cloud - CloudProviderTencentCloud = CloudProviderKey.String("tencent_cloud") -) - -var ( - // Alibaba Cloud Elastic Compute Service - CloudPlatformAlibabaCloudECS = CloudPlatformKey.String("alibaba_cloud_ecs") - // Alibaba Cloud Function Compute - CloudPlatformAlibabaCloudFc = CloudPlatformKey.String("alibaba_cloud_fc") - // Red Hat OpenShift on Alibaba Cloud - CloudPlatformAlibabaCloudOpenshift = CloudPlatformKey.String("alibaba_cloud_openshift") - // AWS Elastic Compute Cloud - CloudPlatformAWSEC2 = CloudPlatformKey.String("aws_ec2") - // AWS Elastic Container Service - CloudPlatformAWSECS = CloudPlatformKey.String("aws_ecs") - // AWS Elastic Kubernetes Service - CloudPlatformAWSEKS = CloudPlatformKey.String("aws_eks") - // AWS Lambda - CloudPlatformAWSLambda = CloudPlatformKey.String("aws_lambda") - // AWS Elastic Beanstalk - CloudPlatformAWSElasticBeanstalk = CloudPlatformKey.String("aws_elastic_beanstalk") - // AWS App Runner - CloudPlatformAWSAppRunner = CloudPlatformKey.String("aws_app_runner") - // Red Hat OpenShift on AWS (ROSA) - CloudPlatformAWSOpenshift = CloudPlatformKey.String("aws_openshift") - // Azure Virtual Machines - CloudPlatformAzureVM = CloudPlatformKey.String("azure_vm") - // Azure Container Instances - CloudPlatformAzureContainerInstances = CloudPlatformKey.String("azure_container_instances") - // Azure Kubernetes Service - CloudPlatformAzureAKS = CloudPlatformKey.String("azure_aks") - // Azure Functions - CloudPlatformAzureFunctions = CloudPlatformKey.String("azure_functions") - // Azure App Service - CloudPlatformAzureAppService = CloudPlatformKey.String("azure_app_service") - // Azure Red Hat OpenShift - CloudPlatformAzureOpenshift = CloudPlatformKey.String("azure_openshift") - // Google Bare Metal Solution (BMS) - CloudPlatformGCPBareMetalSolution = CloudPlatformKey.String("gcp_bare_metal_solution") - // Google Cloud Compute Engine (GCE) - CloudPlatformGCPComputeEngine = CloudPlatformKey.String("gcp_compute_engine") - // Google Cloud Run - CloudPlatformGCPCloudRun = CloudPlatformKey.String("gcp_cloud_run") - // Google Cloud Kubernetes Engine (GKE) - CloudPlatformGCPKubernetesEngine = CloudPlatformKey.String("gcp_kubernetes_engine") - // Google Cloud Functions (GCF) - CloudPlatformGCPCloudFunctions = CloudPlatformKey.String("gcp_cloud_functions") - // Google Cloud App Engine (GAE) - CloudPlatformGCPAppEngine = CloudPlatformKey.String("gcp_app_engine") - // Red Hat OpenShift on Google Cloud - CloudPlatformGCPOpenshift = CloudPlatformKey.String("gcp_openshift") - // Red Hat OpenShift on IBM Cloud - CloudPlatformIbmCloudOpenshift = CloudPlatformKey.String("ibm_cloud_openshift") - // Tencent Cloud Cloud Virtual Machine (CVM) - CloudPlatformTencentCloudCvm = CloudPlatformKey.String("tencent_cloud_cvm") - // Tencent Cloud Elastic Kubernetes Service (EKS) - CloudPlatformTencentCloudEKS = CloudPlatformKey.String("tencent_cloud_eks") - // Tencent Cloud Serverless Cloud Function (SCF) - CloudPlatformTencentCloudScf = CloudPlatformKey.String("tencent_cloud_scf") -) - -// CloudAccountID returns an attribute KeyValue conforming to the -// "cloud.account.id" semantic conventions. It represents the cloud account ID -// the resource is assigned to. -func CloudAccountID(val string) attribute.KeyValue { - return CloudAccountIDKey.String(val) -} - -// CloudRegion returns an attribute KeyValue conforming to the -// "cloud.region" semantic conventions. It represents the geographical region -// the resource is running. -func CloudRegion(val string) attribute.KeyValue { - return CloudRegionKey.String(val) -} - -// CloudResourceID returns an attribute KeyValue conforming to the -// "cloud.resource_id" semantic conventions. It represents the cloud -// provider-specific native identifier of the monitored cloud resource (e.g. an -// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) -// on AWS, a [fully qualified resource -// ID](https://learn.microsoft.com/en-us/rest/api/resources/resources/get-by-id) -// on Azure, a [full resource -// name](https://cloud.google.com/apis/design/resource_names#full_resource_name) -// on GCP) -func CloudResourceID(val string) attribute.KeyValue { - return CloudResourceIDKey.String(val) -} - -// CloudAvailabilityZone returns an attribute KeyValue conforming to the -// "cloud.availability_zone" semantic conventions. It represents the cloud -// regions often have multiple, isolated locations known as zones to increase -// availability. Availability zone represents the zone where the resource is -// running. -func CloudAvailabilityZone(val string) attribute.KeyValue { - return CloudAvailabilityZoneKey.String(val) -} - -// Resources used by AWS Elastic Container Service (ECS). -const ( - // AWSECSContainerARNKey is the attribute Key conforming to the - // "aws.ecs.container.arn" semantic conventions. It represents the Amazon - // Resource Name (ARN) of an [ECS container - // instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: - // 'arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9' - AWSECSContainerARNKey = attribute.Key("aws.ecs.container.arn") - - // AWSECSClusterARNKey is the attribute Key conforming to the - // "aws.ecs.cluster.arn" semantic conventions. It represents the ARN of an - // [ECS - // cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster' - AWSECSClusterARNKey = attribute.Key("aws.ecs.cluster.arn") - - // AWSECSLaunchtypeKey is the attribute Key conforming to the - // "aws.ecs.launchtype" semantic conventions. It represents the [launch - // type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) - // for an ECS task. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - AWSECSLaunchtypeKey = attribute.Key("aws.ecs.launchtype") - - // AWSECSTaskARNKey is the attribute Key conforming to the - // "aws.ecs.task.arn" semantic conventions. It represents the ARN of an - // [ECS task - // definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: - // 'arn:aws:ecs:us-west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b' - AWSECSTaskARNKey = attribute.Key("aws.ecs.task.arn") - - // AWSECSTaskFamilyKey is the attribute Key conforming to the - // "aws.ecs.task.family" semantic conventions. It represents the task - // definition family this task definition is a member of. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry-family' - AWSECSTaskFamilyKey = attribute.Key("aws.ecs.task.family") - - // AWSECSTaskRevisionKey is the attribute Key conforming to the - // "aws.ecs.task.revision" semantic conventions. It represents the revision - // for this task definition. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '8', '26' - AWSECSTaskRevisionKey = attribute.Key("aws.ecs.task.revision") -) - -var ( - // ec2 - AWSECSLaunchtypeEC2 = AWSECSLaunchtypeKey.String("ec2") - // fargate - AWSECSLaunchtypeFargate = AWSECSLaunchtypeKey.String("fargate") -) - -// AWSECSContainerARN returns an attribute KeyValue conforming to the -// "aws.ecs.container.arn" semantic conventions. It represents the Amazon -// Resource Name (ARN) of an [ECS container -// instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html). -func AWSECSContainerARN(val string) attribute.KeyValue { - return AWSECSContainerARNKey.String(val) -} - -// AWSECSClusterARN returns an attribute KeyValue conforming to the -// "aws.ecs.cluster.arn" semantic conventions. It represents the ARN of an [ECS -// cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html). -func AWSECSClusterARN(val string) attribute.KeyValue { - return AWSECSClusterARNKey.String(val) -} - -// AWSECSTaskARN returns an attribute KeyValue conforming to the -// "aws.ecs.task.arn" semantic conventions. It represents the ARN of an [ECS -// task -// definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html). -func AWSECSTaskARN(val string) attribute.KeyValue { - return AWSECSTaskARNKey.String(val) -} - -// AWSECSTaskFamily returns an attribute KeyValue conforming to the -// "aws.ecs.task.family" semantic conventions. It represents the task -// definition family this task definition is a member of. -func AWSECSTaskFamily(val string) attribute.KeyValue { - return AWSECSTaskFamilyKey.String(val) -} - -// AWSECSTaskRevision returns an attribute KeyValue conforming to the -// "aws.ecs.task.revision" semantic conventions. It represents the revision for -// this task definition. -func AWSECSTaskRevision(val string) attribute.KeyValue { - return AWSECSTaskRevisionKey.String(val) -} - -// Resources used by AWS Elastic Kubernetes Service (EKS). -const ( - // AWSEKSClusterARNKey is the attribute Key conforming to the - // "aws.eks.cluster.arn" semantic conventions. It represents the ARN of an - // EKS cluster. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster' - AWSEKSClusterARNKey = attribute.Key("aws.eks.cluster.arn") -) - -// AWSEKSClusterARN returns an attribute KeyValue conforming to the -// "aws.eks.cluster.arn" semantic conventions. It represents the ARN of an EKS -// cluster. -func AWSEKSClusterARN(val string) attribute.KeyValue { - return AWSEKSClusterARNKey.String(val) -} - -// Resources specific to Amazon Web Services. -const ( - // AWSLogGroupNamesKey is the attribute Key conforming to the - // "aws.log.group.names" semantic conventions. It represents the name(s) of - // the AWS log group(s) an application is writing to. - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: '/aws/lambda/my-function', 'opentelemetry-service' - // Note: Multiple log groups must be supported for cases like - // multi-container applications, where a single application has sidecar - // containers, and each write to their own log group. - AWSLogGroupNamesKey = attribute.Key("aws.log.group.names") - - // AWSLogGroupARNsKey is the attribute Key conforming to the - // "aws.log.group.arns" semantic conventions. It represents the Amazon - // Resource Name(s) (ARN) of the AWS log group(s). - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: - // 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*' - // Note: See the [log group ARN format - // documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). - AWSLogGroupARNsKey = attribute.Key("aws.log.group.arns") - - // AWSLogStreamNamesKey is the attribute Key conforming to the - // "aws.log.stream.names" semantic conventions. It represents the name(s) - // of the AWS log stream(s) an application is writing to. - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: 'logs/main/10838bed-421f-43ef-870a-f43feacbbb5b' - AWSLogStreamNamesKey = attribute.Key("aws.log.stream.names") - - // AWSLogStreamARNsKey is the attribute Key conforming to the - // "aws.log.stream.arns" semantic conventions. It represents the ARN(s) of - // the AWS log stream(s). - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: - // 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b' - // Note: See the [log stream ARN format - // documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). - // One log group can contain several log streams, so these ARNs necessarily - // identify both a log group and a log stream. - AWSLogStreamARNsKey = attribute.Key("aws.log.stream.arns") -) - -// AWSLogGroupNames returns an attribute KeyValue conforming to the -// "aws.log.group.names" semantic conventions. It represents the name(s) of the -// AWS log group(s) an application is writing to. -func AWSLogGroupNames(val ...string) attribute.KeyValue { - return AWSLogGroupNamesKey.StringSlice(val) -} - -// AWSLogGroupARNs returns an attribute KeyValue conforming to the -// "aws.log.group.arns" semantic conventions. It represents the Amazon Resource -// Name(s) (ARN) of the AWS log group(s). -func AWSLogGroupARNs(val ...string) attribute.KeyValue { - return AWSLogGroupARNsKey.StringSlice(val) -} - -// AWSLogStreamNames returns an attribute KeyValue conforming to the -// "aws.log.stream.names" semantic conventions. It represents the name(s) of -// the AWS log stream(s) an application is writing to. -func AWSLogStreamNames(val ...string) attribute.KeyValue { - return AWSLogStreamNamesKey.StringSlice(val) -} - -// AWSLogStreamARNs returns an attribute KeyValue conforming to the -// "aws.log.stream.arns" semantic conventions. It represents the ARN(s) of the -// AWS log stream(s). -func AWSLogStreamARNs(val ...string) attribute.KeyValue { - return AWSLogStreamARNsKey.StringSlice(val) -} - -// Resource used by Google Cloud Run. -const ( - // GCPCloudRunJobExecutionKey is the attribute Key conforming to the - // "gcp.cloud_run.job.execution" semantic conventions. It represents the - // name of the Cloud Run - // [execution](https://cloud.google.com/run/docs/managing/job-executions) - // being run for the Job, as set by the - // [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) - // environment variable. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'job-name-xxxx', 'sample-job-mdw84' - GCPCloudRunJobExecutionKey = attribute.Key("gcp.cloud_run.job.execution") - - // GCPCloudRunJobTaskIndexKey is the attribute Key conforming to the - // "gcp.cloud_run.job.task_index" semantic conventions. It represents the - // index for a task within an execution as provided by the - // [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) - // environment variable. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 0, 1 - GCPCloudRunJobTaskIndexKey = attribute.Key("gcp.cloud_run.job.task_index") -) - -// GCPCloudRunJobExecution returns an attribute KeyValue conforming to the -// "gcp.cloud_run.job.execution" semantic conventions. It represents the name -// of the Cloud Run -// [execution](https://cloud.google.com/run/docs/managing/job-executions) being -// run for the Job, as set by the -// [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) -// environment variable. -func GCPCloudRunJobExecution(val string) attribute.KeyValue { - return GCPCloudRunJobExecutionKey.String(val) -} - -// GCPCloudRunJobTaskIndex returns an attribute KeyValue conforming to the -// "gcp.cloud_run.job.task_index" semantic conventions. It represents the index -// for a task within an execution as provided by the -// [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars) -// environment variable. -func GCPCloudRunJobTaskIndex(val int) attribute.KeyValue { - return GCPCloudRunJobTaskIndexKey.Int(val) -} - -// Resources used by Google Compute Engine (GCE). -const ( - // GCPGceInstanceNameKey is the attribute Key conforming to the - // "gcp.gce.instance.name" semantic conventions. It represents the instance - // name of a GCE instance. This is the value provided by `host.name`, the - // visible name of the instance in the Cloud Console UI, and the prefix for - // the default hostname of the instance as defined by the [default internal - // DNS - // name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'instance-1', 'my-vm-name' - GCPGceInstanceNameKey = attribute.Key("gcp.gce.instance.name") - - // GCPGceInstanceHostnameKey is the attribute Key conforming to the - // "gcp.gce.instance.hostname" semantic conventions. It represents the - // hostname of a GCE instance. This is the full value of the default or - // [custom - // hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'my-host1234.example.com', - // 'sample-vm.us-west1-b.c.my-project.internal' - GCPGceInstanceHostnameKey = attribute.Key("gcp.gce.instance.hostname") -) - -// GCPGceInstanceName returns an attribute KeyValue conforming to the -// "gcp.gce.instance.name" semantic conventions. It represents the instance -// name of a GCE instance. This is the value provided by `host.name`, the -// visible name of the instance in the Cloud Console UI, and the prefix for the -// default hostname of the instance as defined by the [default internal DNS -// name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names). -func GCPGceInstanceName(val string) attribute.KeyValue { - return GCPGceInstanceNameKey.String(val) -} - -// GCPGceInstanceHostname returns an attribute KeyValue conforming to the -// "gcp.gce.instance.hostname" semantic conventions. It represents the hostname -// of a GCE instance. This is the full value of the default or [custom -// hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm). -func GCPGceInstanceHostname(val string) attribute.KeyValue { - return GCPGceInstanceHostnameKey.String(val) -} - -// Heroku dyno metadata -const ( - // HerokuReleaseCreationTimestampKey is the attribute Key conforming to the - // "heroku.release.creation_timestamp" semantic conventions. It represents - // the time and date the release was created - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '2022-10-23T18:00:42Z' - HerokuReleaseCreationTimestampKey = attribute.Key("heroku.release.creation_timestamp") - - // HerokuReleaseCommitKey is the attribute Key conforming to the - // "heroku.release.commit" semantic conventions. It represents the commit - // hash for the current release - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'e6134959463efd8966b20e75b913cafe3f5ec' - HerokuReleaseCommitKey = attribute.Key("heroku.release.commit") - - // HerokuAppIDKey is the attribute Key conforming to the "heroku.app.id" - // semantic conventions. It represents the unique identifier for the - // application - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '2daa2797-e42b-4624-9322-ec3f968df4da' - HerokuAppIDKey = attribute.Key("heroku.app.id") -) - -// HerokuReleaseCreationTimestamp returns an attribute KeyValue conforming -// to the "heroku.release.creation_timestamp" semantic conventions. It -// represents the time and date the release was created -func HerokuReleaseCreationTimestamp(val string) attribute.KeyValue { - return HerokuReleaseCreationTimestampKey.String(val) -} - -// HerokuReleaseCommit returns an attribute KeyValue conforming to the -// "heroku.release.commit" semantic conventions. It represents the commit hash -// for the current release -func HerokuReleaseCommit(val string) attribute.KeyValue { - return HerokuReleaseCommitKey.String(val) -} - -// HerokuAppID returns an attribute KeyValue conforming to the -// "heroku.app.id" semantic conventions. It represents the unique identifier -// for the application -func HerokuAppID(val string) attribute.KeyValue { - return HerokuAppIDKey.String(val) -} - -// A container instance. -const ( - // ContainerNameKey is the attribute Key conforming to the "container.name" - // semantic conventions. It represents the container name used by container - // runtime. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry-autoconf' - ContainerNameKey = attribute.Key("container.name") - - // ContainerIDKey is the attribute Key conforming to the "container.id" - // semantic conventions. It represents the container ID. Usually a UUID, as - // for example used to [identify Docker - // containers](https://docs.docker.com/engine/reference/run/#container-identification). - // The UUID might be abbreviated. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'a3bf90e006b2' - ContainerIDKey = attribute.Key("container.id") - - // ContainerRuntimeKey is the attribute Key conforming to the - // "container.runtime" semantic conventions. It represents the container - // runtime managing this container. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'docker', 'containerd', 'rkt' - ContainerRuntimeKey = attribute.Key("container.runtime") - - // ContainerImageNameKey is the attribute Key conforming to the - // "container.image.name" semantic conventions. It represents the name of - // the image the container was built on. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'gcr.io/opentelemetry/operator' - ContainerImageNameKey = attribute.Key("container.image.name") - - // ContainerImageTagKey is the attribute Key conforming to the - // "container.image.tag" semantic conventions. It represents the container - // image tag. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '0.1' - ContainerImageTagKey = attribute.Key("container.image.tag") - - // ContainerImageIDKey is the attribute Key conforming to the - // "container.image.id" semantic conventions. It represents the runtime - // specific image identifier. Usually a hash algorithm followed by a UUID. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: - // 'sha256:19c92d0a00d1b66d897bceaa7319bee0dd38a10a851c60bcec9474aa3f01e50f' - // Note: Docker defines a sha256 of the image id; `container.image.id` - // corresponds to the `Image` field from the Docker container inspect - // [API](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerInspect) - // endpoint. - // K8S defines a link to the container registry repository with digest - // `"imageID": "registry.azurecr.io - // /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625"`. - // OCI defines a digest of manifest. - ContainerImageIDKey = attribute.Key("container.image.id") - - // ContainerCommandKey is the attribute Key conforming to the - // "container.command" semantic conventions. It represents the command used - // to run the container (i.e. the command name). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'otelcontribcol' - // Note: If using embedded credentials or sensitive data, it is recommended - // to remove them to prevent potential leakage. - ContainerCommandKey = attribute.Key("container.command") - - // ContainerCommandLineKey is the attribute Key conforming to the - // "container.command_line" semantic conventions. It represents the full - // command run by the container as a single string representing the full - // command. [2] - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'otelcontribcol --config config.yaml' - ContainerCommandLineKey = attribute.Key("container.command_line") - - // ContainerCommandArgsKey is the attribute Key conforming to the - // "container.command_args" semantic conventions. It represents the all the - // command arguments (including the command/executable itself) run by the - // container. [2] - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: 'otelcontribcol, --config, config.yaml' - ContainerCommandArgsKey = attribute.Key("container.command_args") -) - -// ContainerName returns an attribute KeyValue conforming to the -// "container.name" semantic conventions. It represents the container name used -// by container runtime. -func ContainerName(val string) attribute.KeyValue { - return ContainerNameKey.String(val) -} - -// ContainerID returns an attribute KeyValue conforming to the -// "container.id" semantic conventions. It represents the container ID. Usually -// a UUID, as for example used to [identify Docker -// containers](https://docs.docker.com/engine/reference/run/#container-identification). -// The UUID might be abbreviated. -func ContainerID(val string) attribute.KeyValue { - return ContainerIDKey.String(val) -} - -// ContainerRuntime returns an attribute KeyValue conforming to the -// "container.runtime" semantic conventions. It represents the container -// runtime managing this container. -func ContainerRuntime(val string) attribute.KeyValue { - return ContainerRuntimeKey.String(val) -} - -// ContainerImageName returns an attribute KeyValue conforming to the -// "container.image.name" semantic conventions. It represents the name of the -// image the container was built on. -func ContainerImageName(val string) attribute.KeyValue { - return ContainerImageNameKey.String(val) -} - -// ContainerImageTag returns an attribute KeyValue conforming to the -// "container.image.tag" semantic conventions. It represents the container -// image tag. -func ContainerImageTag(val string) attribute.KeyValue { - return ContainerImageTagKey.String(val) -} - -// ContainerImageID returns an attribute KeyValue conforming to the -// "container.image.id" semantic conventions. It represents the runtime -// specific image identifier. Usually a hash algorithm followed by a UUID. -func ContainerImageID(val string) attribute.KeyValue { - return ContainerImageIDKey.String(val) -} - -// ContainerCommand returns an attribute KeyValue conforming to the -// "container.command" semantic conventions. It represents the command used to -// run the container (i.e. the command name). -func ContainerCommand(val string) attribute.KeyValue { - return ContainerCommandKey.String(val) -} - -// ContainerCommandLine returns an attribute KeyValue conforming to the -// "container.command_line" semantic conventions. It represents the full -// command run by the container as a single string representing the full -// command. [2] -func ContainerCommandLine(val string) attribute.KeyValue { - return ContainerCommandLineKey.String(val) -} - -// ContainerCommandArgs returns an attribute KeyValue conforming to the -// "container.command_args" semantic conventions. It represents the all the -// command arguments (including the command/executable itself) run by the -// container. [2] -func ContainerCommandArgs(val ...string) attribute.KeyValue { - return ContainerCommandArgsKey.StringSlice(val) -} - -// The software deployment. -const ( - // DeploymentEnvironmentKey is the attribute Key conforming to the - // "deployment.environment" semantic conventions. It represents the name of - // the [deployment - // environment](https://en.wikipedia.org/wiki/Deployment_environment) (aka - // deployment tier). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'staging', 'production' - DeploymentEnvironmentKey = attribute.Key("deployment.environment") -) - -// DeploymentEnvironment returns an attribute KeyValue conforming to the -// "deployment.environment" semantic conventions. It represents the name of the -// [deployment -// environment](https://en.wikipedia.org/wiki/Deployment_environment) (aka -// deployment tier). -func DeploymentEnvironment(val string) attribute.KeyValue { - return DeploymentEnvironmentKey.String(val) -} - -// The device on which the process represented by this resource is running. -const ( - // DeviceIDKey is the attribute Key conforming to the "device.id" semantic - // conventions. It represents a unique identifier representing the device - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '2ab2916d-a51f-4ac8-80ee-45ac31a28092' - // Note: The device identifier MUST only be defined using the values - // outlined below. This value is not an advertising identifier and MUST NOT - // be used as such. On iOS (Swift or Objective-C), this value MUST be equal - // to the [vendor - // identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). - // On Android (Java or Kotlin), this value MUST be equal to the Firebase - // Installation ID or a globally unique UUID which is persisted across - // sessions in your application. More information can be found - // [here](https://developer.android.com/training/articles/user-data-ids) on - // best practices and exact implementation details. Caution should be taken - // when storing personal data or anything which can identify a user. GDPR - // and data protection laws may apply, ensure you do your own due - // diligence. - DeviceIDKey = attribute.Key("device.id") - - // DeviceModelIdentifierKey is the attribute Key conforming to the - // "device.model.identifier" semantic conventions. It represents the model - // identifier for the device - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'iPhone3,4', 'SM-G920F' - // Note: It's recommended this value represents a machine readable version - // of the model identifier rather than the market or consumer-friendly name - // of the device. - DeviceModelIdentifierKey = attribute.Key("device.model.identifier") - - // DeviceModelNameKey is the attribute Key conforming to the - // "device.model.name" semantic conventions. It represents the marketing - // name for the device model - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'iPhone 6s Plus', 'Samsung Galaxy S6' - // Note: It's recommended this value represents a human readable version of - // the device model rather than a machine readable alternative. - DeviceModelNameKey = attribute.Key("device.model.name") - - // DeviceManufacturerKey is the attribute Key conforming to the - // "device.manufacturer" semantic conventions. It represents the name of - // the device manufacturer - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Apple', 'Samsung' - // Note: The Android OS provides this field via - // [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER). - // iOS apps SHOULD hardcode the value `Apple`. - DeviceManufacturerKey = attribute.Key("device.manufacturer") -) - -// DeviceID returns an attribute KeyValue conforming to the "device.id" -// semantic conventions. It represents a unique identifier representing the -// device -func DeviceID(val string) attribute.KeyValue { - return DeviceIDKey.String(val) -} - -// DeviceModelIdentifier returns an attribute KeyValue conforming to the -// "device.model.identifier" semantic conventions. It represents the model -// identifier for the device -func DeviceModelIdentifier(val string) attribute.KeyValue { - return DeviceModelIdentifierKey.String(val) -} - -// DeviceModelName returns an attribute KeyValue conforming to the -// "device.model.name" semantic conventions. It represents the marketing name -// for the device model -func DeviceModelName(val string) attribute.KeyValue { - return DeviceModelNameKey.String(val) -} - -// DeviceManufacturer returns an attribute KeyValue conforming to the -// "device.manufacturer" semantic conventions. It represents the name of the -// device manufacturer -func DeviceManufacturer(val string) attribute.KeyValue { - return DeviceManufacturerKey.String(val) -} - -// A serverless instance. -const ( - // FaaSNameKey is the attribute Key conforming to the "faas.name" semantic - // conventions. It represents the name of the single function that this - // runtime instance executes. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'my-function', 'myazurefunctionapp/some-function-name' - // Note: This is the name of the function as configured/deployed on the - // FaaS - // platform and is usually different from the name of the callback - // function (which may be stored in the - // [`code.namespace`/`code.function`](/docs/general/general-attributes.md#source-code-attributes) - // span attributes). - // - // For some cloud providers, the above definition is ambiguous. The - // following - // definition of function name MUST be used for this attribute - // (and consequently the span name) for the listed cloud - // providers/products: - // - // * **Azure:** The full name `/`, i.e., function app name - // followed by a forward slash followed by the function name (this form - // can also be seen in the resource JSON for the function). - // This means that a span attribute MUST be used, as an Azure function - // app can host multiple functions that would usually share - // a TracerProvider (see also the `cloud.resource_id` attribute). - FaaSNameKey = attribute.Key("faas.name") - - // FaaSVersionKey is the attribute Key conforming to the "faas.version" - // semantic conventions. It represents the immutable version of the - // function being executed. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '26', 'pinkfroid-00002' - // Note: Depending on the cloud provider and platform, use: - // - // * **AWS Lambda:** The [function - // version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) - // (an integer represented as a decimal string). - // * **Google Cloud Run (Services):** The - // [revision](https://cloud.google.com/run/docs/managing/revisions) - // (i.e., the function name plus the revision suffix). - // * **Google Cloud Functions:** The value of the - // [`K_REVISION` environment - // variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically). - // * **Azure Functions:** Not applicable. Do not set this attribute. - FaaSVersionKey = attribute.Key("faas.version") - - // FaaSInstanceKey is the attribute Key conforming to the "faas.instance" - // semantic conventions. It represents the execution environment ID as a - // string, that will be potentially reused for other invocations to the - // same function/function version. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de' - // Note: * **AWS Lambda:** Use the (full) log stream name. - FaaSInstanceKey = attribute.Key("faas.instance") - - // FaaSMaxMemoryKey is the attribute Key conforming to the - // "faas.max_memory" semantic conventions. It represents the amount of - // memory available to the serverless function converted to Bytes. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 134217728 - // Note: It's recommended to set this attribute since e.g. too little - // memory can easily stop a Java AWS Lambda function from working - // correctly. On AWS Lambda, the environment variable - // `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information (which must - // be multiplied by 1,048,576). - FaaSMaxMemoryKey = attribute.Key("faas.max_memory") -) - -// FaaSName returns an attribute KeyValue conforming to the "faas.name" -// semantic conventions. It represents the name of the single function that -// this runtime instance executes. -func FaaSName(val string) attribute.KeyValue { - return FaaSNameKey.String(val) -} - -// FaaSVersion returns an attribute KeyValue conforming to the -// "faas.version" semantic conventions. It represents the immutable version of -// the function being executed. -func FaaSVersion(val string) attribute.KeyValue { - return FaaSVersionKey.String(val) -} - -// FaaSInstance returns an attribute KeyValue conforming to the -// "faas.instance" semantic conventions. It represents the execution -// environment ID as a string, that will be potentially reused for other -// invocations to the same function/function version. -func FaaSInstance(val string) attribute.KeyValue { - return FaaSInstanceKey.String(val) -} - -// FaaSMaxMemory returns an attribute KeyValue conforming to the -// "faas.max_memory" semantic conventions. It represents the amount of memory -// available to the serverless function converted to Bytes. -func FaaSMaxMemory(val int) attribute.KeyValue { - return FaaSMaxMemoryKey.Int(val) -} - -// A host is defined as a computing instance. For example, physical servers, -// virtual machines, switches or disk array. -const ( - // HostIDKey is the attribute Key conforming to the "host.id" semantic - // conventions. It represents the unique host ID. For Cloud, this must be - // the instance_id assigned by the cloud provider. For non-containerized - // systems, this should be the `machine-id`. See the table below for the - // sources to use to determine the `machine-id` based on operating system. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'fdbf79e8af94cb7f9e8df36789187052' - HostIDKey = attribute.Key("host.id") - - // HostNameKey is the attribute Key conforming to the "host.name" semantic - // conventions. It represents the name of the host. On Unix systems, it may - // contain what the hostname command returns, or the fully qualified - // hostname, or another name specified by the user. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry-test' - HostNameKey = attribute.Key("host.name") - - // HostTypeKey is the attribute Key conforming to the "host.type" semantic - // conventions. It represents the type of host. For Cloud, this must be the - // machine type. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'n1-standard-1' - HostTypeKey = attribute.Key("host.type") - - // HostArchKey is the attribute Key conforming to the "host.arch" semantic - // conventions. It represents the CPU architecture the host system is - // running on. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - HostArchKey = attribute.Key("host.arch") - - // HostImageNameKey is the attribute Key conforming to the - // "host.image.name" semantic conventions. It represents the name of the VM - // image or OS install the host was instantiated from. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'infra-ami-eks-worker-node-7d4ec78312', 'CentOS-8-x86_64-1905' - HostImageNameKey = attribute.Key("host.image.name") - - // HostImageIDKey is the attribute Key conforming to the "host.image.id" - // semantic conventions. It represents the vM image ID or host OS image ID. - // For Cloud, this value is from the provider. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'ami-07b06b442921831e5' - HostImageIDKey = attribute.Key("host.image.id") - - // HostImageVersionKey is the attribute Key conforming to the - // "host.image.version" semantic conventions. It represents the version - // string of the VM image or host OS as defined in [Version - // Attributes](README.md#version-attributes). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '0.1' - HostImageVersionKey = attribute.Key("host.image.version") -) - -var ( - // AMD64 - HostArchAMD64 = HostArchKey.String("amd64") - // ARM32 - HostArchARM32 = HostArchKey.String("arm32") - // ARM64 - HostArchARM64 = HostArchKey.String("arm64") - // Itanium - HostArchIA64 = HostArchKey.String("ia64") - // 32-bit PowerPC - HostArchPPC32 = HostArchKey.String("ppc32") - // 64-bit PowerPC - HostArchPPC64 = HostArchKey.String("ppc64") - // IBM z/Architecture - HostArchS390x = HostArchKey.String("s390x") - // 32-bit x86 - HostArchX86 = HostArchKey.String("x86") -) - -// HostID returns an attribute KeyValue conforming to the "host.id" semantic -// conventions. It represents the unique host ID. For Cloud, this must be the -// instance_id assigned by the cloud provider. For non-containerized systems, -// this should be the `machine-id`. See the table below for the sources to use -// to determine the `machine-id` based on operating system. -func HostID(val string) attribute.KeyValue { - return HostIDKey.String(val) -} - -// HostName returns an attribute KeyValue conforming to the "host.name" -// semantic conventions. It represents the name of the host. On Unix systems, -// it may contain what the hostname command returns, or the fully qualified -// hostname, or another name specified by the user. -func HostName(val string) attribute.KeyValue { - return HostNameKey.String(val) -} - -// HostType returns an attribute KeyValue conforming to the "host.type" -// semantic conventions. It represents the type of host. For Cloud, this must -// be the machine type. -func HostType(val string) attribute.KeyValue { - return HostTypeKey.String(val) -} - -// HostImageName returns an attribute KeyValue conforming to the -// "host.image.name" semantic conventions. It represents the name of the VM -// image or OS install the host was instantiated from. -func HostImageName(val string) attribute.KeyValue { - return HostImageNameKey.String(val) -} - -// HostImageID returns an attribute KeyValue conforming to the -// "host.image.id" semantic conventions. It represents the vM image ID or host -// OS image ID. For Cloud, this value is from the provider. -func HostImageID(val string) attribute.KeyValue { - return HostImageIDKey.String(val) -} - -// HostImageVersion returns an attribute KeyValue conforming to the -// "host.image.version" semantic conventions. It represents the version string -// of the VM image or host OS as defined in [Version -// Attributes](README.md#version-attributes). -func HostImageVersion(val string) attribute.KeyValue { - return HostImageVersionKey.String(val) -} - -// A Kubernetes Cluster. -const ( - // K8SClusterNameKey is the attribute Key conforming to the - // "k8s.cluster.name" semantic conventions. It represents the name of the - // cluster. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry-cluster' - K8SClusterNameKey = attribute.Key("k8s.cluster.name") - - // K8SClusterUIDKey is the attribute Key conforming to the - // "k8s.cluster.uid" semantic conventions. It represents a pseudo-ID for - // the cluster, set to the UID of the `kube-system` namespace. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '218fc5a9-a5f1-4b54-aa05-46717d0ab26d' - // Note: K8S does not have support for obtaining a cluster ID. If this is - // ever - // added, we will recommend collecting the `k8s.cluster.uid` through the - // official APIs. In the meantime, we are able to use the `uid` of the - // `kube-system` namespace as a proxy for cluster ID. Read on for the - // rationale. - // - // Every object created in a K8S cluster is assigned a distinct UID. The - // `kube-system` namespace is used by Kubernetes itself and will exist - // for the lifetime of the cluster. Using the `uid` of the `kube-system` - // namespace is a reasonable proxy for the K8S ClusterID as it will only - // change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are - // UUIDs as standardized by - // [ISO/IEC 9834-8 and ITU-T - // X.667](https://www.itu.int/ITU-T/studygroups/com17/oid.html). - // Which states: - // - // > If generated according to one of the mechanisms defined in Rec. - // ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be - // different from all other UUIDs generated before 3603 A.D., or is - // extremely likely to be different (depending on the mechanism chosen). - // - // Therefore, UIDs between clusters should be extremely unlikely to - // conflict. - K8SClusterUIDKey = attribute.Key("k8s.cluster.uid") -) - -// K8SClusterName returns an attribute KeyValue conforming to the -// "k8s.cluster.name" semantic conventions. It represents the name of the -// cluster. -func K8SClusterName(val string) attribute.KeyValue { - return K8SClusterNameKey.String(val) -} - -// K8SClusterUID returns an attribute KeyValue conforming to the -// "k8s.cluster.uid" semantic conventions. It represents a pseudo-ID for the -// cluster, set to the UID of the `kube-system` namespace. -func K8SClusterUID(val string) attribute.KeyValue { - return K8SClusterUIDKey.String(val) -} - -// A Kubernetes Node object. -const ( - // K8SNodeNameKey is the attribute Key conforming to the "k8s.node.name" - // semantic conventions. It represents the name of the Node. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'node-1' - K8SNodeNameKey = attribute.Key("k8s.node.name") - - // K8SNodeUIDKey is the attribute Key conforming to the "k8s.node.uid" - // semantic conventions. It represents the UID of the Node. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2' - K8SNodeUIDKey = attribute.Key("k8s.node.uid") -) - -// K8SNodeName returns an attribute KeyValue conforming to the -// "k8s.node.name" semantic conventions. It represents the name of the Node. -func K8SNodeName(val string) attribute.KeyValue { - return K8SNodeNameKey.String(val) -} - -// K8SNodeUID returns an attribute KeyValue conforming to the "k8s.node.uid" -// semantic conventions. It represents the UID of the Node. -func K8SNodeUID(val string) attribute.KeyValue { - return K8SNodeUIDKey.String(val) -} - -// A Kubernetes Namespace. -const ( - // K8SNamespaceNameKey is the attribute Key conforming to the - // "k8s.namespace.name" semantic conventions. It represents the name of the - // namespace that the pod is running in. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'default' - K8SNamespaceNameKey = attribute.Key("k8s.namespace.name") -) - -// K8SNamespaceName returns an attribute KeyValue conforming to the -// "k8s.namespace.name" semantic conventions. It represents the name of the -// namespace that the pod is running in. -func K8SNamespaceName(val string) attribute.KeyValue { - return K8SNamespaceNameKey.String(val) -} - -// A Kubernetes Pod object. -const ( - // K8SPodUIDKey is the attribute Key conforming to the "k8s.pod.uid" - // semantic conventions. It represents the UID of the Pod. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff' - K8SPodUIDKey = attribute.Key("k8s.pod.uid") - - // K8SPodNameKey is the attribute Key conforming to the "k8s.pod.name" - // semantic conventions. It represents the name of the Pod. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry-pod-autoconf' - K8SPodNameKey = attribute.Key("k8s.pod.name") -) - -// K8SPodUID returns an attribute KeyValue conforming to the "k8s.pod.uid" -// semantic conventions. It represents the UID of the Pod. -func K8SPodUID(val string) attribute.KeyValue { - return K8SPodUIDKey.String(val) -} - -// K8SPodName returns an attribute KeyValue conforming to the "k8s.pod.name" -// semantic conventions. It represents the name of the Pod. -func K8SPodName(val string) attribute.KeyValue { - return K8SPodNameKey.String(val) -} - -// A container in a -// [PodTemplate](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates). -const ( - // K8SContainerNameKey is the attribute Key conforming to the - // "k8s.container.name" semantic conventions. It represents the name of the - // Container from Pod specification, must be unique within a Pod. Container - // runtime usually uses different globally unique name (`container.name`). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'redis' - K8SContainerNameKey = attribute.Key("k8s.container.name") - - // K8SContainerRestartCountKey is the attribute Key conforming to the - // "k8s.container.restart_count" semantic conventions. It represents the - // number of times the container was restarted. This attribute can be used - // to identify a particular container (running or stopped) within a - // container spec. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 0, 2 - K8SContainerRestartCountKey = attribute.Key("k8s.container.restart_count") -) - -// K8SContainerName returns an attribute KeyValue conforming to the -// "k8s.container.name" semantic conventions. It represents the name of the -// Container from Pod specification, must be unique within a Pod. Container -// runtime usually uses different globally unique name (`container.name`). -func K8SContainerName(val string) attribute.KeyValue { - return K8SContainerNameKey.String(val) -} - -// K8SContainerRestartCount returns an attribute KeyValue conforming to the -// "k8s.container.restart_count" semantic conventions. It represents the number -// of times the container was restarted. This attribute can be used to identify -// a particular container (running or stopped) within a container spec. -func K8SContainerRestartCount(val int) attribute.KeyValue { - return K8SContainerRestartCountKey.Int(val) -} - -// A Kubernetes ReplicaSet object. -const ( - // K8SReplicaSetUIDKey is the attribute Key conforming to the - // "k8s.replicaset.uid" semantic conventions. It represents the UID of the - // ReplicaSet. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff' - K8SReplicaSetUIDKey = attribute.Key("k8s.replicaset.uid") - - // K8SReplicaSetNameKey is the attribute Key conforming to the - // "k8s.replicaset.name" semantic conventions. It represents the name of - // the ReplicaSet. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry' - K8SReplicaSetNameKey = attribute.Key("k8s.replicaset.name") -) - -// K8SReplicaSetUID returns an attribute KeyValue conforming to the -// "k8s.replicaset.uid" semantic conventions. It represents the UID of the -// ReplicaSet. -func K8SReplicaSetUID(val string) attribute.KeyValue { - return K8SReplicaSetUIDKey.String(val) -} - -// K8SReplicaSetName returns an attribute KeyValue conforming to the -// "k8s.replicaset.name" semantic conventions. It represents the name of the -// ReplicaSet. -func K8SReplicaSetName(val string) attribute.KeyValue { - return K8SReplicaSetNameKey.String(val) -} - -// A Kubernetes Deployment object. -const ( - // K8SDeploymentUIDKey is the attribute Key conforming to the - // "k8s.deployment.uid" semantic conventions. It represents the UID of the - // Deployment. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff' - K8SDeploymentUIDKey = attribute.Key("k8s.deployment.uid") - - // K8SDeploymentNameKey is the attribute Key conforming to the - // "k8s.deployment.name" semantic conventions. It represents the name of - // the Deployment. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry' - K8SDeploymentNameKey = attribute.Key("k8s.deployment.name") -) - -// K8SDeploymentUID returns an attribute KeyValue conforming to the -// "k8s.deployment.uid" semantic conventions. It represents the UID of the -// Deployment. -func K8SDeploymentUID(val string) attribute.KeyValue { - return K8SDeploymentUIDKey.String(val) -} - -// K8SDeploymentName returns an attribute KeyValue conforming to the -// "k8s.deployment.name" semantic conventions. It represents the name of the -// Deployment. -func K8SDeploymentName(val string) attribute.KeyValue { - return K8SDeploymentNameKey.String(val) -} - -// A Kubernetes StatefulSet object. -const ( - // K8SStatefulSetUIDKey is the attribute Key conforming to the - // "k8s.statefulset.uid" semantic conventions. It represents the UID of the - // StatefulSet. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff' - K8SStatefulSetUIDKey = attribute.Key("k8s.statefulset.uid") - - // K8SStatefulSetNameKey is the attribute Key conforming to the - // "k8s.statefulset.name" semantic conventions. It represents the name of - // the StatefulSet. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry' - K8SStatefulSetNameKey = attribute.Key("k8s.statefulset.name") -) - -// K8SStatefulSetUID returns an attribute KeyValue conforming to the -// "k8s.statefulset.uid" semantic conventions. It represents the UID of the -// StatefulSet. -func K8SStatefulSetUID(val string) attribute.KeyValue { - return K8SStatefulSetUIDKey.String(val) -} - -// K8SStatefulSetName returns an attribute KeyValue conforming to the -// "k8s.statefulset.name" semantic conventions. It represents the name of the -// StatefulSet. -func K8SStatefulSetName(val string) attribute.KeyValue { - return K8SStatefulSetNameKey.String(val) -} - -// A Kubernetes DaemonSet object. -const ( - // K8SDaemonSetUIDKey is the attribute Key conforming to the - // "k8s.daemonset.uid" semantic conventions. It represents the UID of the - // DaemonSet. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff' - K8SDaemonSetUIDKey = attribute.Key("k8s.daemonset.uid") - - // K8SDaemonSetNameKey is the attribute Key conforming to the - // "k8s.daemonset.name" semantic conventions. It represents the name of the - // DaemonSet. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry' - K8SDaemonSetNameKey = attribute.Key("k8s.daemonset.name") -) - -// K8SDaemonSetUID returns an attribute KeyValue conforming to the -// "k8s.daemonset.uid" semantic conventions. It represents the UID of the -// DaemonSet. -func K8SDaemonSetUID(val string) attribute.KeyValue { - return K8SDaemonSetUIDKey.String(val) -} - -// K8SDaemonSetName returns an attribute KeyValue conforming to the -// "k8s.daemonset.name" semantic conventions. It represents the name of the -// DaemonSet. -func K8SDaemonSetName(val string) attribute.KeyValue { - return K8SDaemonSetNameKey.String(val) -} - -// A Kubernetes Job object. -const ( - // K8SJobUIDKey is the attribute Key conforming to the "k8s.job.uid" - // semantic conventions. It represents the UID of the Job. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff' - K8SJobUIDKey = attribute.Key("k8s.job.uid") - - // K8SJobNameKey is the attribute Key conforming to the "k8s.job.name" - // semantic conventions. It represents the name of the Job. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry' - K8SJobNameKey = attribute.Key("k8s.job.name") -) - -// K8SJobUID returns an attribute KeyValue conforming to the "k8s.job.uid" -// semantic conventions. It represents the UID of the Job. -func K8SJobUID(val string) attribute.KeyValue { - return K8SJobUIDKey.String(val) -} - -// K8SJobName returns an attribute KeyValue conforming to the "k8s.job.name" -// semantic conventions. It represents the name of the Job. -func K8SJobName(val string) attribute.KeyValue { - return K8SJobNameKey.String(val) -} - -// A Kubernetes CronJob object. -const ( - // K8SCronJobUIDKey is the attribute Key conforming to the - // "k8s.cronjob.uid" semantic conventions. It represents the UID of the - // CronJob. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff' - K8SCronJobUIDKey = attribute.Key("k8s.cronjob.uid") - - // K8SCronJobNameKey is the attribute Key conforming to the - // "k8s.cronjob.name" semantic conventions. It represents the name of the - // CronJob. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'opentelemetry' - K8SCronJobNameKey = attribute.Key("k8s.cronjob.name") -) - -// K8SCronJobUID returns an attribute KeyValue conforming to the -// "k8s.cronjob.uid" semantic conventions. It represents the UID of the -// CronJob. -func K8SCronJobUID(val string) attribute.KeyValue { - return K8SCronJobUIDKey.String(val) -} - -// K8SCronJobName returns an attribute KeyValue conforming to the -// "k8s.cronjob.name" semantic conventions. It represents the name of the -// CronJob. -func K8SCronJobName(val string) attribute.KeyValue { - return K8SCronJobNameKey.String(val) -} - -// The operating system (OS) on which the process represented by this resource -// is running. -const ( - // OSTypeKey is the attribute Key conforming to the "os.type" semantic - // conventions. It represents the operating system type. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - OSTypeKey = attribute.Key("os.type") - - // OSDescriptionKey is the attribute Key conforming to the "os.description" - // semantic conventions. It represents the human readable (not intended to - // be parsed) OS version information, like e.g. reported by `ver` or - // `lsb_release -a` commands. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1 - // LTS' - OSDescriptionKey = attribute.Key("os.description") - - // OSNameKey is the attribute Key conforming to the "os.name" semantic - // conventions. It represents the human readable operating system name. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'iOS', 'Android', 'Ubuntu' - OSNameKey = attribute.Key("os.name") - - // OSVersionKey is the attribute Key conforming to the "os.version" - // semantic conventions. It represents the version string of the operating - // system as defined in [Version - // Attributes](/docs/resource/README.md#version-attributes). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '14.2.1', '18.04.1' - OSVersionKey = attribute.Key("os.version") -) - -var ( - // Microsoft Windows - OSTypeWindows = OSTypeKey.String("windows") - // Linux - OSTypeLinux = OSTypeKey.String("linux") - // Apple Darwin - OSTypeDarwin = OSTypeKey.String("darwin") - // FreeBSD - OSTypeFreeBSD = OSTypeKey.String("freebsd") - // NetBSD - OSTypeNetBSD = OSTypeKey.String("netbsd") - // OpenBSD - OSTypeOpenBSD = OSTypeKey.String("openbsd") - // DragonFly BSD - OSTypeDragonflyBSD = OSTypeKey.String("dragonflybsd") - // HP-UX (Hewlett Packard Unix) - OSTypeHPUX = OSTypeKey.String("hpux") - // AIX (Advanced Interactive eXecutive) - OSTypeAIX = OSTypeKey.String("aix") - // SunOS, Oracle Solaris - OSTypeSolaris = OSTypeKey.String("solaris") - // IBM z/OS - OSTypeZOS = OSTypeKey.String("z_os") -) - -// OSDescription returns an attribute KeyValue conforming to the -// "os.description" semantic conventions. It represents the human readable (not -// intended to be parsed) OS version information, like e.g. reported by `ver` -// or `lsb_release -a` commands. -func OSDescription(val string) attribute.KeyValue { - return OSDescriptionKey.String(val) -} - -// OSName returns an attribute KeyValue conforming to the "os.name" semantic -// conventions. It represents the human readable operating system name. -func OSName(val string) attribute.KeyValue { - return OSNameKey.String(val) -} - -// OSVersion returns an attribute KeyValue conforming to the "os.version" -// semantic conventions. It represents the version string of the operating -// system as defined in [Version -// Attributes](/docs/resource/README.md#version-attributes). -func OSVersion(val string) attribute.KeyValue { - return OSVersionKey.String(val) -} - -// An operating system process. -const ( - // ProcessPIDKey is the attribute Key conforming to the "process.pid" - // semantic conventions. It represents the process identifier (PID). - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 1234 - ProcessPIDKey = attribute.Key("process.pid") - - // ProcessParentPIDKey is the attribute Key conforming to the - // "process.parent_pid" semantic conventions. It represents the parent - // Process identifier (PID). - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 111 - ProcessParentPIDKey = attribute.Key("process.parent_pid") - - // ProcessExecutableNameKey is the attribute Key conforming to the - // "process.executable.name" semantic conventions. It represents the name - // of the process executable. On Linux based systems, can be set to the - // `Name` in `proc/[pid]/status`. On Windows, can be set to the base name - // of `GetProcessImageFileNameW`. - // - // Type: string - // RequirementLevel: ConditionallyRequired (See alternative attributes - // below.) - // Stability: stable - // Examples: 'otelcol' - ProcessExecutableNameKey = attribute.Key("process.executable.name") - - // ProcessExecutablePathKey is the attribute Key conforming to the - // "process.executable.path" semantic conventions. It represents the full - // path to the process executable. On Linux based systems, can be set to - // the target of `proc/[pid]/exe`. On Windows, can be set to the result of - // `GetProcessImageFileNameW`. - // - // Type: string - // RequirementLevel: ConditionallyRequired (See alternative attributes - // below.) - // Stability: stable - // Examples: '/usr/bin/cmd/otelcol' - ProcessExecutablePathKey = attribute.Key("process.executable.path") - - // ProcessCommandKey is the attribute Key conforming to the - // "process.command" semantic conventions. It represents the command used - // to launch the process (i.e. the command name). On Linux based systems, - // can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can - // be set to the first parameter extracted from `GetCommandLineW`. - // - // Type: string - // RequirementLevel: ConditionallyRequired (See alternative attributes - // below.) - // Stability: stable - // Examples: 'cmd/otelcol' - ProcessCommandKey = attribute.Key("process.command") - - // ProcessCommandLineKey is the attribute Key conforming to the - // "process.command_line" semantic conventions. It represents the full - // command used to launch the process as a single string representing the - // full command. On Windows, can be set to the result of `GetCommandLineW`. - // Do not set this if you have to assemble it just for monitoring; use - // `process.command_args` instead. - // - // Type: string - // RequirementLevel: ConditionallyRequired (See alternative attributes - // below.) - // Stability: stable - // Examples: 'C:\\cmd\\otecol --config="my directory\\config.yaml"' - ProcessCommandLineKey = attribute.Key("process.command_line") - - // ProcessCommandArgsKey is the attribute Key conforming to the - // "process.command_args" semantic conventions. It represents the all the - // command arguments (including the command/executable itself) as received - // by the process. On Linux-based systems (and some other Unixoid systems - // supporting procfs), can be set according to the list of null-delimited - // strings extracted from `proc/[pid]/cmdline`. For libc-based executables, - // this would be the full argv vector passed to `main`. - // - // Type: string[] - // RequirementLevel: ConditionallyRequired (See alternative attributes - // below.) - // Stability: stable - // Examples: 'cmd/otecol', '--config=config.yaml' - ProcessCommandArgsKey = attribute.Key("process.command_args") - - // ProcessOwnerKey is the attribute Key conforming to the "process.owner" - // semantic conventions. It represents the username of the user that owns - // the process. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'root' - ProcessOwnerKey = attribute.Key("process.owner") -) - -// ProcessPID returns an attribute KeyValue conforming to the "process.pid" -// semantic conventions. It represents the process identifier (PID). -func ProcessPID(val int) attribute.KeyValue { - return ProcessPIDKey.Int(val) -} - -// ProcessParentPID returns an attribute KeyValue conforming to the -// "process.parent_pid" semantic conventions. It represents the parent Process -// identifier (PID). -func ProcessParentPID(val int) attribute.KeyValue { - return ProcessParentPIDKey.Int(val) -} - -// ProcessExecutableName returns an attribute KeyValue conforming to the -// "process.executable.name" semantic conventions. It represents the name of -// the process executable. On Linux based systems, can be set to the `Name` in -// `proc/[pid]/status`. On Windows, can be set to the base name of -// `GetProcessImageFileNameW`. -func ProcessExecutableName(val string) attribute.KeyValue { - return ProcessExecutableNameKey.String(val) -} - -// ProcessExecutablePath returns an attribute KeyValue conforming to the -// "process.executable.path" semantic conventions. It represents the full path -// to the process executable. On Linux based systems, can be set to the target -// of `proc/[pid]/exe`. On Windows, can be set to the result of -// `GetProcessImageFileNameW`. -func ProcessExecutablePath(val string) attribute.KeyValue { - return ProcessExecutablePathKey.String(val) -} - -// ProcessCommand returns an attribute KeyValue conforming to the -// "process.command" semantic conventions. It represents the command used to -// launch the process (i.e. the command name). On Linux based systems, can be -// set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to -// the first parameter extracted from `GetCommandLineW`. -func ProcessCommand(val string) attribute.KeyValue { - return ProcessCommandKey.String(val) -} - -// ProcessCommandLine returns an attribute KeyValue conforming to the -// "process.command_line" semantic conventions. It represents the full command -// used to launch the process as a single string representing the full command. -// On Windows, can be set to the result of `GetCommandLineW`. Do not set this -// if you have to assemble it just for monitoring; use `process.command_args` -// instead. -func ProcessCommandLine(val string) attribute.KeyValue { - return ProcessCommandLineKey.String(val) -} - -// ProcessCommandArgs returns an attribute KeyValue conforming to the -// "process.command_args" semantic conventions. It represents the all the -// command arguments (including the command/executable itself) as received by -// the process. On Linux-based systems (and some other Unixoid systems -// supporting procfs), can be set according to the list of null-delimited -// strings extracted from `proc/[pid]/cmdline`. For libc-based executables, -// this would be the full argv vector passed to `main`. -func ProcessCommandArgs(val ...string) attribute.KeyValue { - return ProcessCommandArgsKey.StringSlice(val) -} - -// ProcessOwner returns an attribute KeyValue conforming to the -// "process.owner" semantic conventions. It represents the username of the user -// that owns the process. -func ProcessOwner(val string) attribute.KeyValue { - return ProcessOwnerKey.String(val) -} - -// The single (language) runtime instance which is monitored. -const ( - // ProcessRuntimeNameKey is the attribute Key conforming to the - // "process.runtime.name" semantic conventions. It represents the name of - // the runtime of this process. For compiled native binaries, this SHOULD - // be the name of the compiler. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'OpenJDK Runtime Environment' - ProcessRuntimeNameKey = attribute.Key("process.runtime.name") - - // ProcessRuntimeVersionKey is the attribute Key conforming to the - // "process.runtime.version" semantic conventions. It represents the - // version of the runtime of this process, as returned by the runtime - // without modification. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '14.0.2' - ProcessRuntimeVersionKey = attribute.Key("process.runtime.version") - - // ProcessRuntimeDescriptionKey is the attribute Key conforming to the - // "process.runtime.description" semantic conventions. It represents an - // additional description about the runtime of the process, for example a - // specific vendor customization of the runtime environment. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0' - ProcessRuntimeDescriptionKey = attribute.Key("process.runtime.description") -) - -// ProcessRuntimeName returns an attribute KeyValue conforming to the -// "process.runtime.name" semantic conventions. It represents the name of the -// runtime of this process. For compiled native binaries, this SHOULD be the -// name of the compiler. -func ProcessRuntimeName(val string) attribute.KeyValue { - return ProcessRuntimeNameKey.String(val) -} - -// ProcessRuntimeVersion returns an attribute KeyValue conforming to the -// "process.runtime.version" semantic conventions. It represents the version of -// the runtime of this process, as returned by the runtime without -// modification. -func ProcessRuntimeVersion(val string) attribute.KeyValue { - return ProcessRuntimeVersionKey.String(val) -} - -// ProcessRuntimeDescription returns an attribute KeyValue conforming to the -// "process.runtime.description" semantic conventions. It represents an -// additional description about the runtime of the process, for example a -// specific vendor customization of the runtime environment. -func ProcessRuntimeDescription(val string) attribute.KeyValue { - return ProcessRuntimeDescriptionKey.String(val) -} - -// A service instance. -const ( - // ServiceNameKey is the attribute Key conforming to the "service.name" - // semantic conventions. It represents the logical name of the service. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'shoppingcart' - // Note: MUST be the same for all instances of horizontally scaled - // services. If the value was not specified, SDKs MUST fallback to - // `unknown_service:` concatenated with - // [`process.executable.name`](process.md#process), e.g. - // `unknown_service:bash`. If `process.executable.name` is not available, - // the value MUST be set to `unknown_service`. - ServiceNameKey = attribute.Key("service.name") - - // ServiceVersionKey is the attribute Key conforming to the - // "service.version" semantic conventions. It represents the version string - // of the service API or implementation. The format is not defined by these - // conventions. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '2.0.0', 'a01dbef8a' - ServiceVersionKey = attribute.Key("service.version") -) - -// ServiceName returns an attribute KeyValue conforming to the -// "service.name" semantic conventions. It represents the logical name of the -// service. -func ServiceName(val string) attribute.KeyValue { - return ServiceNameKey.String(val) -} - -// ServiceVersion returns an attribute KeyValue conforming to the -// "service.version" semantic conventions. It represents the version string of -// the service API or implementation. The format is not defined by these -// conventions. -func ServiceVersion(val string) attribute.KeyValue { - return ServiceVersionKey.String(val) -} - -// A service instance. -const ( - // ServiceNamespaceKey is the attribute Key conforming to the - // "service.namespace" semantic conventions. It represents a namespace for - // `service.name`. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Shop' - // Note: A string value having a meaning that helps to distinguish a group - // of services, for example the team name that owns a group of services. - // `service.name` is expected to be unique within the same namespace. If - // `service.namespace` is not specified in the Resource then `service.name` - // is expected to be unique for all services that have no explicit - // namespace defined (so the empty/unspecified namespace is simply one more - // valid namespace). Zero-length namespace string is assumed equal to - // unspecified namespace. - ServiceNamespaceKey = attribute.Key("service.namespace") - - // ServiceInstanceIDKey is the attribute Key conforming to the - // "service.instance.id" semantic conventions. It represents the string ID - // of the service instance. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'my-k8s-pod-deployment-1', - // '627cc493-f310-47de-96bd-71410b7dec09' - // Note: MUST be unique for each instance of the same - // `service.namespace,service.name` pair (in other words - // `service.namespace,service.name,service.instance.id` triplet MUST be - // globally unique). The ID helps to distinguish instances of the same - // service that exist at the same time (e.g. instances of a horizontally - // scaled service). It is preferable for the ID to be persistent and stay - // the same for the lifetime of the service instance, however it is - // acceptable that the ID is ephemeral and changes during important - // lifetime events for the service (e.g. service restarts). If the service - // has no inherent unique ID that can be used as the value of this - // attribute it is recommended to generate a random Version 1 or Version 4 - // RFC 4122 UUID (services aiming for reproducible UUIDs may also use - // Version 5, see RFC 4122 for more recommendations). - ServiceInstanceIDKey = attribute.Key("service.instance.id") -) - -// ServiceNamespace returns an attribute KeyValue conforming to the -// "service.namespace" semantic conventions. It represents a namespace for -// `service.name`. -func ServiceNamespace(val string) attribute.KeyValue { - return ServiceNamespaceKey.String(val) -} - -// ServiceInstanceID returns an attribute KeyValue conforming to the -// "service.instance.id" semantic conventions. It represents the string ID of -// the service instance. -func ServiceInstanceID(val string) attribute.KeyValue { - return ServiceInstanceIDKey.String(val) -} - -// The telemetry SDK used to capture data recorded by the instrumentation -// libraries. -const ( - // TelemetrySDKNameKey is the attribute Key conforming to the - // "telemetry.sdk.name" semantic conventions. It represents the name of the - // telemetry SDK as defined above. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'opentelemetry' - // Note: The OpenTelemetry SDK MUST set the `telemetry.sdk.name` attribute - // to `opentelemetry`. - // If another SDK, like a fork or a vendor-provided implementation, is - // used, this SDK MUST set the - // `telemetry.sdk.name` attribute to the fully-qualified class or module - // name of this SDK's main entry point - // or another suitable identifier depending on the language. - // The identifier `opentelemetry` is reserved and MUST NOT be used in this - // case. - // All custom identifiers SHOULD be stable across different versions of an - // implementation. - TelemetrySDKNameKey = attribute.Key("telemetry.sdk.name") - - // TelemetrySDKLanguageKey is the attribute Key conforming to the - // "telemetry.sdk.language" semantic conventions. It represents the - // language of the telemetry SDK. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - TelemetrySDKLanguageKey = attribute.Key("telemetry.sdk.language") - - // TelemetrySDKVersionKey is the attribute Key conforming to the - // "telemetry.sdk.version" semantic conventions. It represents the version - // string of the telemetry SDK. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: '1.2.3' - TelemetrySDKVersionKey = attribute.Key("telemetry.sdk.version") -) - -var ( - // cpp - TelemetrySDKLanguageCPP = TelemetrySDKLanguageKey.String("cpp") - // dotnet - TelemetrySDKLanguageDotnet = TelemetrySDKLanguageKey.String("dotnet") - // erlang - TelemetrySDKLanguageErlang = TelemetrySDKLanguageKey.String("erlang") - // go - TelemetrySDKLanguageGo = TelemetrySDKLanguageKey.String("go") - // java - TelemetrySDKLanguageJava = TelemetrySDKLanguageKey.String("java") - // nodejs - TelemetrySDKLanguageNodejs = TelemetrySDKLanguageKey.String("nodejs") - // php - TelemetrySDKLanguagePHP = TelemetrySDKLanguageKey.String("php") - // python - TelemetrySDKLanguagePython = TelemetrySDKLanguageKey.String("python") - // ruby - TelemetrySDKLanguageRuby = TelemetrySDKLanguageKey.String("ruby") - // rust - TelemetrySDKLanguageRust = TelemetrySDKLanguageKey.String("rust") - // swift - TelemetrySDKLanguageSwift = TelemetrySDKLanguageKey.String("swift") - // webjs - TelemetrySDKLanguageWebjs = TelemetrySDKLanguageKey.String("webjs") -) - -// TelemetrySDKName returns an attribute KeyValue conforming to the -// "telemetry.sdk.name" semantic conventions. It represents the name of the -// telemetry SDK as defined above. -func TelemetrySDKName(val string) attribute.KeyValue { - return TelemetrySDKNameKey.String(val) -} - -// TelemetrySDKVersion returns an attribute KeyValue conforming to the -// "telemetry.sdk.version" semantic conventions. It represents the version -// string of the telemetry SDK. -func TelemetrySDKVersion(val string) attribute.KeyValue { - return TelemetrySDKVersionKey.String(val) -} - -// The telemetry SDK used to capture data recorded by the instrumentation -// libraries. -const ( - // TelemetryAutoVersionKey is the attribute Key conforming to the - // "telemetry.auto.version" semantic conventions. It represents the version - // string of the auto instrumentation agent, if used. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '1.2.3' - TelemetryAutoVersionKey = attribute.Key("telemetry.auto.version") -) - -// TelemetryAutoVersion returns an attribute KeyValue conforming to the -// "telemetry.auto.version" semantic conventions. It represents the version -// string of the auto instrumentation agent, if used. -func TelemetryAutoVersion(val string) attribute.KeyValue { - return TelemetryAutoVersionKey.String(val) -} - -// Resource describing the packaged software running the application code. Web -// engines are typically executed using process.runtime. -const ( - // WebEngineNameKey is the attribute Key conforming to the "webengine.name" - // semantic conventions. It represents the name of the web engine. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'WildFly' - WebEngineNameKey = attribute.Key("webengine.name") - - // WebEngineVersionKey is the attribute Key conforming to the - // "webengine.version" semantic conventions. It represents the version of - // the web engine. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '21.0.0' - WebEngineVersionKey = attribute.Key("webengine.version") - - // WebEngineDescriptionKey is the attribute Key conforming to the - // "webengine.description" semantic conventions. It represents the - // additional description of the web engine (e.g. detailed version and - // edition information). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) - - // 2.2.2.Final' - WebEngineDescriptionKey = attribute.Key("webengine.description") -) - -// WebEngineName returns an attribute KeyValue conforming to the -// "webengine.name" semantic conventions. It represents the name of the web -// engine. -func WebEngineName(val string) attribute.KeyValue { - return WebEngineNameKey.String(val) -} - -// WebEngineVersion returns an attribute KeyValue conforming to the -// "webengine.version" semantic conventions. It represents the version of the -// web engine. -func WebEngineVersion(val string) attribute.KeyValue { - return WebEngineVersionKey.String(val) -} - -// WebEngineDescription returns an attribute KeyValue conforming to the -// "webengine.description" semantic conventions. It represents the additional -// description of the web engine (e.g. detailed version and edition -// information). -func WebEngineDescription(val string) attribute.KeyValue { - return WebEngineDescriptionKey.String(val) -} - -// Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's -// concepts. -const ( - // OTelScopeNameKey is the attribute Key conforming to the - // "otel.scope.name" semantic conventions. It represents the name of the - // instrumentation scope - (`InstrumentationScope.Name` in OTLP). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'io.opentelemetry.contrib.mongodb' - OTelScopeNameKey = attribute.Key("otel.scope.name") - - // OTelScopeVersionKey is the attribute Key conforming to the - // "otel.scope.version" semantic conventions. It represents the version of - // the instrumentation scope - (`InstrumentationScope.Version` in OTLP). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '1.0.0' - OTelScopeVersionKey = attribute.Key("otel.scope.version") -) - -// OTelScopeName returns an attribute KeyValue conforming to the -// "otel.scope.name" semantic conventions. It represents the name of the -// instrumentation scope - (`InstrumentationScope.Name` in OTLP). -func OTelScopeName(val string) attribute.KeyValue { - return OTelScopeNameKey.String(val) -} - -// OTelScopeVersion returns an attribute KeyValue conforming to the -// "otel.scope.version" semantic conventions. It represents the version of the -// instrumentation scope - (`InstrumentationScope.Version` in OTLP). -func OTelScopeVersion(val string) attribute.KeyValue { - return OTelScopeVersionKey.String(val) -} - -// Span attributes used by non-OTLP exporters to represent OpenTelemetry -// Scope's concepts. -const ( - // OTelLibraryNameKey is the attribute Key conforming to the - // "otel.library.name" semantic conventions. It represents the deprecated, - // use the `otel.scope.name` attribute. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: 'io.opentelemetry.contrib.mongodb' - OTelLibraryNameKey = attribute.Key("otel.library.name") - - // OTelLibraryVersionKey is the attribute Key conforming to the - // "otel.library.version" semantic conventions. It represents the - // deprecated, use the `otel.scope.version` attribute. - // - // Type: string - // RequirementLevel: Optional - // Stability: deprecated - // Examples: '1.0.0' - OTelLibraryVersionKey = attribute.Key("otel.library.version") -) - -// OTelLibraryName returns an attribute KeyValue conforming to the -// "otel.library.name" semantic conventions. It represents the deprecated, use -// the `otel.scope.name` attribute. -func OTelLibraryName(val string) attribute.KeyValue { - return OTelLibraryNameKey.String(val) -} - -// OTelLibraryVersion returns an attribute KeyValue conforming to the -// "otel.library.version" semantic conventions. It represents the deprecated, -// use the `otel.scope.version` attribute. -func OTelLibraryVersion(val string) attribute.KeyValue { - return OTelLibraryVersionKey.String(val) -} diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/schema.go b/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/schema.go deleted file mode 100644 index be07217d..00000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/schema.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -package semconv // import "go.opentelemetry.io/otel/semconv/v1.21.0" - -// SchemaURL is the schema URL that matches the version of the semantic conventions -// that this package defines. Semconv packages starting from v1.4.0 must declare -// non-empty schema URL in the form https://opentelemetry.io/schemas/ -const SchemaURL = "https://opentelemetry.io/schemas/1.21.0" diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/trace.go b/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/trace.go deleted file mode 100644 index 55698cc4..00000000 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.21.0/trace.go +++ /dev/null @@ -1,2484 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -// Code generated from semantic convention specification. DO NOT EDIT. - -package semconv // import "go.opentelemetry.io/otel/semconv/v1.21.0" - -import "go.opentelemetry.io/otel/attribute" - -// The shared attributes used to report a single exception associated with a -// span or log. -const ( - // ExceptionTypeKey is the attribute Key conforming to the "exception.type" - // semantic conventions. It represents the type of the exception (its - // fully-qualified class name, if applicable). The dynamic type of the - // exception should be preferred over the static type in languages that - // support it. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'java.net.ConnectException', 'OSError' - ExceptionTypeKey = attribute.Key("exception.type") - - // ExceptionMessageKey is the attribute Key conforming to the - // "exception.message" semantic conventions. It represents the exception - // message. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Division by zero', "Can't convert 'int' object to str - // implicitly" - ExceptionMessageKey = attribute.Key("exception.message") - - // ExceptionStacktraceKey is the attribute Key conforming to the - // "exception.stacktrace" semantic conventions. It represents a stacktrace - // as a string in the natural representation for the language runtime. The - // representation is to be determined and documented by each language SIG. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Exception in thread "main" java.lang.RuntimeException: Test - // exception\\n at ' - // 'com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\n at ' - // 'com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\n at ' - // 'com.example.GenerateTrace.main(GenerateTrace.java:5)' - ExceptionStacktraceKey = attribute.Key("exception.stacktrace") -) - -// ExceptionType returns an attribute KeyValue conforming to the -// "exception.type" semantic conventions. It represents the type of the -// exception (its fully-qualified class name, if applicable). The dynamic type -// of the exception should be preferred over the static type in languages that -// support it. -func ExceptionType(val string) attribute.KeyValue { - return ExceptionTypeKey.String(val) -} - -// ExceptionMessage returns an attribute KeyValue conforming to the -// "exception.message" semantic conventions. It represents the exception -// message. -func ExceptionMessage(val string) attribute.KeyValue { - return ExceptionMessageKey.String(val) -} - -// ExceptionStacktrace returns an attribute KeyValue conforming to the -// "exception.stacktrace" semantic conventions. It represents a stacktrace as a -// string in the natural representation for the language runtime. The -// representation is to be determined and documented by each language SIG. -func ExceptionStacktrace(val string) attribute.KeyValue { - return ExceptionStacktraceKey.String(val) -} - -// Span attributes used by AWS Lambda (in addition to general `faas` -// attributes). -const ( - // AWSLambdaInvokedARNKey is the attribute Key conforming to the - // "aws.lambda.invoked_arn" semantic conventions. It represents the full - // invoked ARN as provided on the `Context` passed to the function - // (`Lambda-Runtime-Invoked-Function-ARN` header on the - // `/runtime/invocation/next` applicable). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'arn:aws:lambda:us-east-1:123456:function:myfunction:myalias' - // Note: This may be different from `cloud.resource_id` if an alias is - // involved. - AWSLambdaInvokedARNKey = attribute.Key("aws.lambda.invoked_arn") -) - -// AWSLambdaInvokedARN returns an attribute KeyValue conforming to the -// "aws.lambda.invoked_arn" semantic conventions. It represents the full -// invoked ARN as provided on the `Context` passed to the function -// (`Lambda-Runtime-Invoked-Function-ARN` header on the -// `/runtime/invocation/next` applicable). -func AWSLambdaInvokedARN(val string) attribute.KeyValue { - return AWSLambdaInvokedARNKey.String(val) -} - -// Attributes for CloudEvents. CloudEvents is a specification on how to define -// event data in a standard way. These attributes can be attached to spans when -// performing operations with CloudEvents, regardless of the protocol being -// used. -const ( - // CloudeventsEventIDKey is the attribute Key conforming to the - // "cloudevents.event_id" semantic conventions. It represents the - // [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id) - // uniquely identifies the event. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: '123e4567-e89b-12d3-a456-426614174000', '0001' - CloudeventsEventIDKey = attribute.Key("cloudevents.event_id") - - // CloudeventsEventSourceKey is the attribute Key conforming to the - // "cloudevents.event_source" semantic conventions. It represents the - // [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1) - // identifies the context in which an event happened. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'https://github.com/cloudevents', - // '/cloudevents/spec/pull/123', 'my-service' - CloudeventsEventSourceKey = attribute.Key("cloudevents.event_source") - - // CloudeventsEventSpecVersionKey is the attribute Key conforming to the - // "cloudevents.event_spec_version" semantic conventions. It represents the - // [version of the CloudEvents - // specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion) - // which the event uses. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '1.0' - CloudeventsEventSpecVersionKey = attribute.Key("cloudevents.event_spec_version") - - // CloudeventsEventTypeKey is the attribute Key conforming to the - // "cloudevents.event_type" semantic conventions. It represents the - // [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type) - // contains a value describing the type of event related to the originating - // occurrence. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'com.github.pull_request.opened', - // 'com.example.object.deleted.v2' - CloudeventsEventTypeKey = attribute.Key("cloudevents.event_type") - - // CloudeventsEventSubjectKey is the attribute Key conforming to the - // "cloudevents.event_subject" semantic conventions. It represents the - // [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject) - // of the event in the context of the event producer (identified by - // source). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'mynewfile.jpg' - CloudeventsEventSubjectKey = attribute.Key("cloudevents.event_subject") -) - -// CloudeventsEventID returns an attribute KeyValue conforming to the -// "cloudevents.event_id" semantic conventions. It represents the -// [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id) -// uniquely identifies the event. -func CloudeventsEventID(val string) attribute.KeyValue { - return CloudeventsEventIDKey.String(val) -} - -// CloudeventsEventSource returns an attribute KeyValue conforming to the -// "cloudevents.event_source" semantic conventions. It represents the -// [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1) -// identifies the context in which an event happened. -func CloudeventsEventSource(val string) attribute.KeyValue { - return CloudeventsEventSourceKey.String(val) -} - -// CloudeventsEventSpecVersion returns an attribute KeyValue conforming to -// the "cloudevents.event_spec_version" semantic conventions. It represents the -// [version of the CloudEvents -// specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion) -// which the event uses. -func CloudeventsEventSpecVersion(val string) attribute.KeyValue { - return CloudeventsEventSpecVersionKey.String(val) -} - -// CloudeventsEventType returns an attribute KeyValue conforming to the -// "cloudevents.event_type" semantic conventions. It represents the -// [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type) -// contains a value describing the type of event related to the originating -// occurrence. -func CloudeventsEventType(val string) attribute.KeyValue { - return CloudeventsEventTypeKey.String(val) -} - -// CloudeventsEventSubject returns an attribute KeyValue conforming to the -// "cloudevents.event_subject" semantic conventions. It represents the -// [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject) -// of the event in the context of the event producer (identified by source). -func CloudeventsEventSubject(val string) attribute.KeyValue { - return CloudeventsEventSubjectKey.String(val) -} - -// Semantic conventions for the OpenTracing Shim -const ( - // OpentracingRefTypeKey is the attribute Key conforming to the - // "opentracing.ref_type" semantic conventions. It represents the - // parent-child Reference type - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - // Note: The causal relationship between a child Span and a parent Span. - OpentracingRefTypeKey = attribute.Key("opentracing.ref_type") -) - -var ( - // The parent Span depends on the child Span in some capacity - OpentracingRefTypeChildOf = OpentracingRefTypeKey.String("child_of") - // The parent Span does not depend in any way on the result of the child Span - OpentracingRefTypeFollowsFrom = OpentracingRefTypeKey.String("follows_from") -) - -// The attributes used to perform database client calls. -const ( - // DBSystemKey is the attribute Key conforming to the "db.system" semantic - // conventions. It represents an identifier for the database management - // system (DBMS) product being used. See below for a list of well-known - // identifiers. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - DBSystemKey = attribute.Key("db.system") - - // DBConnectionStringKey is the attribute Key conforming to the - // "db.connection_string" semantic conventions. It represents the - // connection string used to connect to the database. It is recommended to - // remove embedded credentials. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Server=(localdb)\\v11.0;Integrated Security=true;' - DBConnectionStringKey = attribute.Key("db.connection_string") - - // DBUserKey is the attribute Key conforming to the "db.user" semantic - // conventions. It represents the username for accessing the database. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'readonly_user', 'reporting_user' - DBUserKey = attribute.Key("db.user") - - // DBJDBCDriverClassnameKey is the attribute Key conforming to the - // "db.jdbc.driver_classname" semantic conventions. It represents the - // fully-qualified class name of the [Java Database Connectivity - // (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) - // driver used to connect. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'org.postgresql.Driver', - // 'com.microsoft.sqlserver.jdbc.SQLServerDriver' - DBJDBCDriverClassnameKey = attribute.Key("db.jdbc.driver_classname") - - // DBNameKey is the attribute Key conforming to the "db.name" semantic - // conventions. It represents the this attribute is used to report the name - // of the database being accessed. For commands that switch the database, - // this should be set to the target database (even if the command fails). - // - // Type: string - // RequirementLevel: ConditionallyRequired (If applicable.) - // Stability: stable - // Examples: 'customers', 'main' - // Note: In some SQL databases, the database name to be used is called - // "schema name". In case there are multiple layers that could be - // considered for database name (e.g. Oracle instance name and schema - // name), the database name to be used is the more specific layer (e.g. - // Oracle schema name). - DBNameKey = attribute.Key("db.name") - - // DBStatementKey is the attribute Key conforming to the "db.statement" - // semantic conventions. It represents the database statement being - // executed. - // - // Type: string - // RequirementLevel: Recommended (Should be collected by default only if - // there is sanitization that excludes sensitive information.) - // Stability: stable - // Examples: 'SELECT * FROM wuser_table', 'SET mykey "WuValue"' - DBStatementKey = attribute.Key("db.statement") - - // DBOperationKey is the attribute Key conforming to the "db.operation" - // semantic conventions. It represents the name of the operation being - // executed, e.g. the [MongoDB command - // name](https://docs.mongodb.com/manual/reference/command/#database-operations) - // such as `findAndModify`, or the SQL keyword. - // - // Type: string - // RequirementLevel: ConditionallyRequired (If `db.statement` is not - // applicable.) - // Stability: stable - // Examples: 'findAndModify', 'HMSET', 'SELECT' - // Note: When setting this to an SQL keyword, it is not recommended to - // attempt any client-side parsing of `db.statement` just to get this - // property, but it should be set if the operation name is provided by the - // library being instrumented. If the SQL statement has an ambiguous - // operation, or performs more than one operation, this value may be - // omitted. - DBOperationKey = attribute.Key("db.operation") -) - -var ( - // Some other SQL database. Fallback only. See notes - DBSystemOtherSQL = DBSystemKey.String("other_sql") - // Microsoft SQL Server - DBSystemMSSQL = DBSystemKey.String("mssql") - // Microsoft SQL Server Compact - DBSystemMssqlcompact = DBSystemKey.String("mssqlcompact") - // MySQL - DBSystemMySQL = DBSystemKey.String("mysql") - // Oracle Database - DBSystemOracle = DBSystemKey.String("oracle") - // IBM DB2 - DBSystemDB2 = DBSystemKey.String("db2") - // PostgreSQL - DBSystemPostgreSQL = DBSystemKey.String("postgresql") - // Amazon Redshift - DBSystemRedshift = DBSystemKey.String("redshift") - // Apache Hive - DBSystemHive = DBSystemKey.String("hive") - // Cloudscape - DBSystemCloudscape = DBSystemKey.String("cloudscape") - // HyperSQL DataBase - DBSystemHSQLDB = DBSystemKey.String("hsqldb") - // Progress Database - DBSystemProgress = DBSystemKey.String("progress") - // SAP MaxDB - DBSystemMaxDB = DBSystemKey.String("maxdb") - // SAP HANA - DBSystemHanaDB = DBSystemKey.String("hanadb") - // Ingres - DBSystemIngres = DBSystemKey.String("ingres") - // FirstSQL - DBSystemFirstSQL = DBSystemKey.String("firstsql") - // EnterpriseDB - DBSystemEDB = DBSystemKey.String("edb") - // InterSystems Caché - DBSystemCache = DBSystemKey.String("cache") - // Adabas (Adaptable Database System) - DBSystemAdabas = DBSystemKey.String("adabas") - // Firebird - DBSystemFirebird = DBSystemKey.String("firebird") - // Apache Derby - DBSystemDerby = DBSystemKey.String("derby") - // FileMaker - DBSystemFilemaker = DBSystemKey.String("filemaker") - // Informix - DBSystemInformix = DBSystemKey.String("informix") - // InstantDB - DBSystemInstantDB = DBSystemKey.String("instantdb") - // InterBase - DBSystemInterbase = DBSystemKey.String("interbase") - // MariaDB - DBSystemMariaDB = DBSystemKey.String("mariadb") - // Netezza - DBSystemNetezza = DBSystemKey.String("netezza") - // Pervasive PSQL - DBSystemPervasive = DBSystemKey.String("pervasive") - // PointBase - DBSystemPointbase = DBSystemKey.String("pointbase") - // SQLite - DBSystemSqlite = DBSystemKey.String("sqlite") - // Sybase - DBSystemSybase = DBSystemKey.String("sybase") - // Teradata - DBSystemTeradata = DBSystemKey.String("teradata") - // Vertica - DBSystemVertica = DBSystemKey.String("vertica") - // H2 - DBSystemH2 = DBSystemKey.String("h2") - // ColdFusion IMQ - DBSystemColdfusion = DBSystemKey.String("coldfusion") - // Apache Cassandra - DBSystemCassandra = DBSystemKey.String("cassandra") - // Apache HBase - DBSystemHBase = DBSystemKey.String("hbase") - // MongoDB - DBSystemMongoDB = DBSystemKey.String("mongodb") - // Redis - DBSystemRedis = DBSystemKey.String("redis") - // Couchbase - DBSystemCouchbase = DBSystemKey.String("couchbase") - // CouchDB - DBSystemCouchDB = DBSystemKey.String("couchdb") - // Microsoft Azure Cosmos DB - DBSystemCosmosDB = DBSystemKey.String("cosmosdb") - // Amazon DynamoDB - DBSystemDynamoDB = DBSystemKey.String("dynamodb") - // Neo4j - DBSystemNeo4j = DBSystemKey.String("neo4j") - // Apache Geode - DBSystemGeode = DBSystemKey.String("geode") - // Elasticsearch - DBSystemElasticsearch = DBSystemKey.String("elasticsearch") - // Memcached - DBSystemMemcached = DBSystemKey.String("memcached") - // CockroachDB - DBSystemCockroachdb = DBSystemKey.String("cockroachdb") - // OpenSearch - DBSystemOpensearch = DBSystemKey.String("opensearch") - // ClickHouse - DBSystemClickhouse = DBSystemKey.String("clickhouse") - // Cloud Spanner - DBSystemSpanner = DBSystemKey.String("spanner") - // Trino - DBSystemTrino = DBSystemKey.String("trino") -) - -// DBConnectionString returns an attribute KeyValue conforming to the -// "db.connection_string" semantic conventions. It represents the connection -// string used to connect to the database. It is recommended to remove embedded -// credentials. -func DBConnectionString(val string) attribute.KeyValue { - return DBConnectionStringKey.String(val) -} - -// DBUser returns an attribute KeyValue conforming to the "db.user" semantic -// conventions. It represents the username for accessing the database. -func DBUser(val string) attribute.KeyValue { - return DBUserKey.String(val) -} - -// DBJDBCDriverClassname returns an attribute KeyValue conforming to the -// "db.jdbc.driver_classname" semantic conventions. It represents the -// fully-qualified class name of the [Java Database Connectivity -// (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver -// used to connect. -func DBJDBCDriverClassname(val string) attribute.KeyValue { - return DBJDBCDriverClassnameKey.String(val) -} - -// DBName returns an attribute KeyValue conforming to the "db.name" semantic -// conventions. It represents the this attribute is used to report the name of -// the database being accessed. For commands that switch the database, this -// should be set to the target database (even if the command fails). -func DBName(val string) attribute.KeyValue { - return DBNameKey.String(val) -} - -// DBStatement returns an attribute KeyValue conforming to the -// "db.statement" semantic conventions. It represents the database statement -// being executed. -func DBStatement(val string) attribute.KeyValue { - return DBStatementKey.String(val) -} - -// DBOperation returns an attribute KeyValue conforming to the -// "db.operation" semantic conventions. It represents the name of the operation -// being executed, e.g. the [MongoDB command -// name](https://docs.mongodb.com/manual/reference/command/#database-operations) -// such as `findAndModify`, or the SQL keyword. -func DBOperation(val string) attribute.KeyValue { - return DBOperationKey.String(val) -} - -// Connection-level attributes for Microsoft SQL Server -const ( - // DBMSSQLInstanceNameKey is the attribute Key conforming to the - // "db.mssql.instance_name" semantic conventions. It represents the - // Microsoft SQL Server [instance - // name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15) - // connecting to. This name is used to determine the port of a named - // instance. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'MSSQLSERVER' - // Note: If setting a `db.mssql.instance_name`, `server.port` is no longer - // required (but still recommended if non-standard). - DBMSSQLInstanceNameKey = attribute.Key("db.mssql.instance_name") -) - -// DBMSSQLInstanceName returns an attribute KeyValue conforming to the -// "db.mssql.instance_name" semantic conventions. It represents the Microsoft -// SQL Server [instance -// name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15) -// connecting to. This name is used to determine the port of a named instance. -func DBMSSQLInstanceName(val string) attribute.KeyValue { - return DBMSSQLInstanceNameKey.String(val) -} - -// Call-level attributes for Cassandra -const ( - // DBCassandraPageSizeKey is the attribute Key conforming to the - // "db.cassandra.page_size" semantic conventions. It represents the fetch - // size used for paging, i.e. how many rows will be returned at once. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 5000 - DBCassandraPageSizeKey = attribute.Key("db.cassandra.page_size") - - // DBCassandraConsistencyLevelKey is the attribute Key conforming to the - // "db.cassandra.consistency_level" semantic conventions. It represents the - // consistency level of the query. Based on consistency values from - // [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html). - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - DBCassandraConsistencyLevelKey = attribute.Key("db.cassandra.consistency_level") - - // DBCassandraTableKey is the attribute Key conforming to the - // "db.cassandra.table" semantic conventions. It represents the name of the - // primary table that the operation is acting upon, including the keyspace - // name (if applicable). - // - // Type: string - // RequirementLevel: Recommended - // Stability: stable - // Examples: 'mytable' - // Note: This mirrors the db.sql.table attribute but references cassandra - // rather than sql. It is not recommended to attempt any client-side - // parsing of `db.statement` just to get this property, but it should be - // set if it is provided by the library being instrumented. If the - // operation is acting upon an anonymous table, or more than one table, - // this value MUST NOT be set. - DBCassandraTableKey = attribute.Key("db.cassandra.table") - - // DBCassandraIdempotenceKey is the attribute Key conforming to the - // "db.cassandra.idempotence" semantic conventions. It represents the - // whether or not the query is idempotent. - // - // Type: boolean - // RequirementLevel: Optional - // Stability: stable - DBCassandraIdempotenceKey = attribute.Key("db.cassandra.idempotence") - - // DBCassandraSpeculativeExecutionCountKey is the attribute Key conforming - // to the "db.cassandra.speculative_execution_count" semantic conventions. - // It represents the number of times a query was speculatively executed. - // Not set or `0` if the query was not executed speculatively. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 0, 2 - DBCassandraSpeculativeExecutionCountKey = attribute.Key("db.cassandra.speculative_execution_count") - - // DBCassandraCoordinatorIDKey is the attribute Key conforming to the - // "db.cassandra.coordinator.id" semantic conventions. It represents the ID - // of the coordinating node for a query. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'be13faa2-8574-4d71-926d-27f16cf8a7af' - DBCassandraCoordinatorIDKey = attribute.Key("db.cassandra.coordinator.id") - - // DBCassandraCoordinatorDCKey is the attribute Key conforming to the - // "db.cassandra.coordinator.dc" semantic conventions. It represents the - // data center of the coordinating node for a query. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'us-west-2' - DBCassandraCoordinatorDCKey = attribute.Key("db.cassandra.coordinator.dc") -) - -var ( - // all - DBCassandraConsistencyLevelAll = DBCassandraConsistencyLevelKey.String("all") - // each_quorum - DBCassandraConsistencyLevelEachQuorum = DBCassandraConsistencyLevelKey.String("each_quorum") - // quorum - DBCassandraConsistencyLevelQuorum = DBCassandraConsistencyLevelKey.String("quorum") - // local_quorum - DBCassandraConsistencyLevelLocalQuorum = DBCassandraConsistencyLevelKey.String("local_quorum") - // one - DBCassandraConsistencyLevelOne = DBCassandraConsistencyLevelKey.String("one") - // two - DBCassandraConsistencyLevelTwo = DBCassandraConsistencyLevelKey.String("two") - // three - DBCassandraConsistencyLevelThree = DBCassandraConsistencyLevelKey.String("three") - // local_one - DBCassandraConsistencyLevelLocalOne = DBCassandraConsistencyLevelKey.String("local_one") - // any - DBCassandraConsistencyLevelAny = DBCassandraConsistencyLevelKey.String("any") - // serial - DBCassandraConsistencyLevelSerial = DBCassandraConsistencyLevelKey.String("serial") - // local_serial - DBCassandraConsistencyLevelLocalSerial = DBCassandraConsistencyLevelKey.String("local_serial") -) - -// DBCassandraPageSize returns an attribute KeyValue conforming to the -// "db.cassandra.page_size" semantic conventions. It represents the fetch size -// used for paging, i.e. how many rows will be returned at once. -func DBCassandraPageSize(val int) attribute.KeyValue { - return DBCassandraPageSizeKey.Int(val) -} - -// DBCassandraTable returns an attribute KeyValue conforming to the -// "db.cassandra.table" semantic conventions. It represents the name of the -// primary table that the operation is acting upon, including the keyspace name -// (if applicable). -func DBCassandraTable(val string) attribute.KeyValue { - return DBCassandraTableKey.String(val) -} - -// DBCassandraIdempotence returns an attribute KeyValue conforming to the -// "db.cassandra.idempotence" semantic conventions. It represents the whether -// or not the query is idempotent. -func DBCassandraIdempotence(val bool) attribute.KeyValue { - return DBCassandraIdempotenceKey.Bool(val) -} - -// DBCassandraSpeculativeExecutionCount returns an attribute KeyValue -// conforming to the "db.cassandra.speculative_execution_count" semantic -// conventions. It represents the number of times a query was speculatively -// executed. Not set or `0` if the query was not executed speculatively. -func DBCassandraSpeculativeExecutionCount(val int) attribute.KeyValue { - return DBCassandraSpeculativeExecutionCountKey.Int(val) -} - -// DBCassandraCoordinatorID returns an attribute KeyValue conforming to the -// "db.cassandra.coordinator.id" semantic conventions. It represents the ID of -// the coordinating node for a query. -func DBCassandraCoordinatorID(val string) attribute.KeyValue { - return DBCassandraCoordinatorIDKey.String(val) -} - -// DBCassandraCoordinatorDC returns an attribute KeyValue conforming to the -// "db.cassandra.coordinator.dc" semantic conventions. It represents the data -// center of the coordinating node for a query. -func DBCassandraCoordinatorDC(val string) attribute.KeyValue { - return DBCassandraCoordinatorDCKey.String(val) -} - -// Call-level attributes for Redis -const ( - // DBRedisDBIndexKey is the attribute Key conforming to the - // "db.redis.database_index" semantic conventions. It represents the index - // of the database being accessed as used in the [`SELECT` - // command](https://redis.io/commands/select), provided as an integer. To - // be used instead of the generic `db.name` attribute. - // - // Type: int - // RequirementLevel: ConditionallyRequired (If other than the default - // database (`0`).) - // Stability: stable - // Examples: 0, 1, 15 - DBRedisDBIndexKey = attribute.Key("db.redis.database_index") -) - -// DBRedisDBIndex returns an attribute KeyValue conforming to the -// "db.redis.database_index" semantic conventions. It represents the index of -// the database being accessed as used in the [`SELECT` -// command](https://redis.io/commands/select), provided as an integer. To be -// used instead of the generic `db.name` attribute. -func DBRedisDBIndex(val int) attribute.KeyValue { - return DBRedisDBIndexKey.Int(val) -} - -// Call-level attributes for MongoDB -const ( - // DBMongoDBCollectionKey is the attribute Key conforming to the - // "db.mongodb.collection" semantic conventions. It represents the - // collection being accessed within the database stated in `db.name`. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'customers', 'products' - DBMongoDBCollectionKey = attribute.Key("db.mongodb.collection") -) - -// DBMongoDBCollection returns an attribute KeyValue conforming to the -// "db.mongodb.collection" semantic conventions. It represents the collection -// being accessed within the database stated in `db.name`. -func DBMongoDBCollection(val string) attribute.KeyValue { - return DBMongoDBCollectionKey.String(val) -} - -// Call-level attributes for SQL databases -const ( - // DBSQLTableKey is the attribute Key conforming to the "db.sql.table" - // semantic conventions. It represents the name of the primary table that - // the operation is acting upon, including the database name (if - // applicable). - // - // Type: string - // RequirementLevel: Recommended - // Stability: stable - // Examples: 'public.users', 'customers' - // Note: It is not recommended to attempt any client-side parsing of - // `db.statement` just to get this property, but it should be set if it is - // provided by the library being instrumented. If the operation is acting - // upon an anonymous table, or more than one table, this value MUST NOT be - // set. - DBSQLTableKey = attribute.Key("db.sql.table") -) - -// DBSQLTable returns an attribute KeyValue conforming to the "db.sql.table" -// semantic conventions. It represents the name of the primary table that the -// operation is acting upon, including the database name (if applicable). -func DBSQLTable(val string) attribute.KeyValue { - return DBSQLTableKey.String(val) -} - -// Call-level attributes for Cosmos DB. -const ( - // DBCosmosDBClientIDKey is the attribute Key conforming to the - // "db.cosmosdb.client_id" semantic conventions. It represents the unique - // Cosmos client instance id. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '3ba4827d-4422-483f-b59f-85b74211c11d' - DBCosmosDBClientIDKey = attribute.Key("db.cosmosdb.client_id") - - // DBCosmosDBOperationTypeKey is the attribute Key conforming to the - // "db.cosmosdb.operation_type" semantic conventions. It represents the - // cosmosDB Operation Type. - // - // Type: Enum - // RequirementLevel: ConditionallyRequired (when performing one of the - // operations in this list) - // Stability: stable - DBCosmosDBOperationTypeKey = attribute.Key("db.cosmosdb.operation_type") - - // DBCosmosDBConnectionModeKey is the attribute Key conforming to the - // "db.cosmosdb.connection_mode" semantic conventions. It represents the - // cosmos client connection mode. - // - // Type: Enum - // RequirementLevel: ConditionallyRequired (if not `direct` (or pick gw as - // default)) - // Stability: stable - DBCosmosDBConnectionModeKey = attribute.Key("db.cosmosdb.connection_mode") - - // DBCosmosDBContainerKey is the attribute Key conforming to the - // "db.cosmosdb.container" semantic conventions. It represents the cosmos - // DB container name. - // - // Type: string - // RequirementLevel: ConditionallyRequired (if available) - // Stability: stable - // Examples: 'anystring' - DBCosmosDBContainerKey = attribute.Key("db.cosmosdb.container") - - // DBCosmosDBRequestContentLengthKey is the attribute Key conforming to the - // "db.cosmosdb.request_content_length" semantic conventions. It represents - // the request payload size in bytes - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - DBCosmosDBRequestContentLengthKey = attribute.Key("db.cosmosdb.request_content_length") - - // DBCosmosDBStatusCodeKey is the attribute Key conforming to the - // "db.cosmosdb.status_code" semantic conventions. It represents the cosmos - // DB status code. - // - // Type: int - // RequirementLevel: ConditionallyRequired (if response was received) - // Stability: stable - // Examples: 200, 201 - DBCosmosDBStatusCodeKey = attribute.Key("db.cosmosdb.status_code") - - // DBCosmosDBSubStatusCodeKey is the attribute Key conforming to the - // "db.cosmosdb.sub_status_code" semantic conventions. It represents the - // cosmos DB sub status code. - // - // Type: int - // RequirementLevel: ConditionallyRequired (when response was received and - // contained sub-code.) - // Stability: stable - // Examples: 1000, 1002 - DBCosmosDBSubStatusCodeKey = attribute.Key("db.cosmosdb.sub_status_code") - - // DBCosmosDBRequestChargeKey is the attribute Key conforming to the - // "db.cosmosdb.request_charge" semantic conventions. It represents the rU - // consumed for that operation - // - // Type: double - // RequirementLevel: ConditionallyRequired (when available) - // Stability: stable - // Examples: 46.18, 1.0 - DBCosmosDBRequestChargeKey = attribute.Key("db.cosmosdb.request_charge") -) - -var ( - // invalid - DBCosmosDBOperationTypeInvalid = DBCosmosDBOperationTypeKey.String("Invalid") - // create - DBCosmosDBOperationTypeCreate = DBCosmosDBOperationTypeKey.String("Create") - // patch - DBCosmosDBOperationTypePatch = DBCosmosDBOperationTypeKey.String("Patch") - // read - DBCosmosDBOperationTypeRead = DBCosmosDBOperationTypeKey.String("Read") - // read_feed - DBCosmosDBOperationTypeReadFeed = DBCosmosDBOperationTypeKey.String("ReadFeed") - // delete - DBCosmosDBOperationTypeDelete = DBCosmosDBOperationTypeKey.String("Delete") - // replace - DBCosmosDBOperationTypeReplace = DBCosmosDBOperationTypeKey.String("Replace") - // execute - DBCosmosDBOperationTypeExecute = DBCosmosDBOperationTypeKey.String("Execute") - // query - DBCosmosDBOperationTypeQuery = DBCosmosDBOperationTypeKey.String("Query") - // head - DBCosmosDBOperationTypeHead = DBCosmosDBOperationTypeKey.String("Head") - // head_feed - DBCosmosDBOperationTypeHeadFeed = DBCosmosDBOperationTypeKey.String("HeadFeed") - // upsert - DBCosmosDBOperationTypeUpsert = DBCosmosDBOperationTypeKey.String("Upsert") - // batch - DBCosmosDBOperationTypeBatch = DBCosmosDBOperationTypeKey.String("Batch") - // query_plan - DBCosmosDBOperationTypeQueryPlan = DBCosmosDBOperationTypeKey.String("QueryPlan") - // execute_javascript - DBCosmosDBOperationTypeExecuteJavascript = DBCosmosDBOperationTypeKey.String("ExecuteJavaScript") -) - -var ( - // Gateway (HTTP) connections mode - DBCosmosDBConnectionModeGateway = DBCosmosDBConnectionModeKey.String("gateway") - // Direct connection - DBCosmosDBConnectionModeDirect = DBCosmosDBConnectionModeKey.String("direct") -) - -// DBCosmosDBClientID returns an attribute KeyValue conforming to the -// "db.cosmosdb.client_id" semantic conventions. It represents the unique -// Cosmos client instance id. -func DBCosmosDBClientID(val string) attribute.KeyValue { - return DBCosmosDBClientIDKey.String(val) -} - -// DBCosmosDBContainer returns an attribute KeyValue conforming to the -// "db.cosmosdb.container" semantic conventions. It represents the cosmos DB -// container name. -func DBCosmosDBContainer(val string) attribute.KeyValue { - return DBCosmosDBContainerKey.String(val) -} - -// DBCosmosDBRequestContentLength returns an attribute KeyValue conforming -// to the "db.cosmosdb.request_content_length" semantic conventions. It -// represents the request payload size in bytes -func DBCosmosDBRequestContentLength(val int) attribute.KeyValue { - return DBCosmosDBRequestContentLengthKey.Int(val) -} - -// DBCosmosDBStatusCode returns an attribute KeyValue conforming to the -// "db.cosmosdb.status_code" semantic conventions. It represents the cosmos DB -// status code. -func DBCosmosDBStatusCode(val int) attribute.KeyValue { - return DBCosmosDBStatusCodeKey.Int(val) -} - -// DBCosmosDBSubStatusCode returns an attribute KeyValue conforming to the -// "db.cosmosdb.sub_status_code" semantic conventions. It represents the cosmos -// DB sub status code. -func DBCosmosDBSubStatusCode(val int) attribute.KeyValue { - return DBCosmosDBSubStatusCodeKey.Int(val) -} - -// DBCosmosDBRequestCharge returns an attribute KeyValue conforming to the -// "db.cosmosdb.request_charge" semantic conventions. It represents the rU -// consumed for that operation -func DBCosmosDBRequestCharge(val float64) attribute.KeyValue { - return DBCosmosDBRequestChargeKey.Float64(val) -} - -// Span attributes used by non-OTLP exporters to represent OpenTelemetry Span's -// concepts. -const ( - // OTelStatusCodeKey is the attribute Key conforming to the - // "otel.status_code" semantic conventions. It represents the name of the - // code, either "OK" or "ERROR". MUST NOT be set if the status code is - // UNSET. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - OTelStatusCodeKey = attribute.Key("otel.status_code") - - // OTelStatusDescriptionKey is the attribute Key conforming to the - // "otel.status_description" semantic conventions. It represents the - // description of the Status if it has a value, otherwise not set. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'resource not found' - OTelStatusDescriptionKey = attribute.Key("otel.status_description") -) - -var ( - // The operation has been validated by an Application developer or Operator to have completed successfully - OTelStatusCodeOk = OTelStatusCodeKey.String("OK") - // The operation contains an error - OTelStatusCodeError = OTelStatusCodeKey.String("ERROR") -) - -// OTelStatusDescription returns an attribute KeyValue conforming to the -// "otel.status_description" semantic conventions. It represents the -// description of the Status if it has a value, otherwise not set. -func OTelStatusDescription(val string) attribute.KeyValue { - return OTelStatusDescriptionKey.String(val) -} - -// This semantic convention describes an instance of a function that runs -// without provisioning or managing of servers (also known as serverless -// functions or Function as a Service (FaaS)) with spans. -const ( - // FaaSTriggerKey is the attribute Key conforming to the "faas.trigger" - // semantic conventions. It represents the type of the trigger which caused - // this function invocation. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - // Note: For the server/consumer span on the incoming side, - // `faas.trigger` MUST be set. - // - // Clients invoking FaaS instances usually cannot set `faas.trigger`, - // since they would typically need to look in the payload to determine - // the event type. If clients set it, it should be the same as the - // trigger that corresponding incoming would have (i.e., this has - // nothing to do with the underlying transport used to make the API - // call to invoke the lambda, which is often HTTP). - FaaSTriggerKey = attribute.Key("faas.trigger") - - // FaaSInvocationIDKey is the attribute Key conforming to the - // "faas.invocation_id" semantic conventions. It represents the invocation - // ID of the current function invocation. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'af9d5aa4-a685-4c5f-a22b-444f80b3cc28' - FaaSInvocationIDKey = attribute.Key("faas.invocation_id") -) - -var ( - // A response to some data source operation such as a database or filesystem read/write - FaaSTriggerDatasource = FaaSTriggerKey.String("datasource") - // To provide an answer to an inbound HTTP request - FaaSTriggerHTTP = FaaSTriggerKey.String("http") - // A function is set to be executed when messages are sent to a messaging system - FaaSTriggerPubsub = FaaSTriggerKey.String("pubsub") - // A function is scheduled to be executed regularly - FaaSTriggerTimer = FaaSTriggerKey.String("timer") - // If none of the others apply - FaaSTriggerOther = FaaSTriggerKey.String("other") -) - -// FaaSInvocationID returns an attribute KeyValue conforming to the -// "faas.invocation_id" semantic conventions. It represents the invocation ID -// of the current function invocation. -func FaaSInvocationID(val string) attribute.KeyValue { - return FaaSInvocationIDKey.String(val) -} - -// Semantic Convention for FaaS triggered as a response to some data source -// operation such as a database or filesystem read/write. -const ( - // FaaSDocumentCollectionKey is the attribute Key conforming to the - // "faas.document.collection" semantic conventions. It represents the name - // of the source on which the triggering operation was performed. For - // example, in Cloud Storage or S3 corresponds to the bucket name, and in - // Cosmos DB to the database name. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'myBucketName', 'myDBName' - FaaSDocumentCollectionKey = attribute.Key("faas.document.collection") - - // FaaSDocumentOperationKey is the attribute Key conforming to the - // "faas.document.operation" semantic conventions. It represents the - // describes the type of the operation that was performed on the data. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - FaaSDocumentOperationKey = attribute.Key("faas.document.operation") - - // FaaSDocumentTimeKey is the attribute Key conforming to the - // "faas.document.time" semantic conventions. It represents a string - // containing the time when the data was accessed in the [ISO - // 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format - // expressed in [UTC](https://www.w3.org/TR/NOTE-datetime). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '2020-01-23T13:47:06Z' - FaaSDocumentTimeKey = attribute.Key("faas.document.time") - - // FaaSDocumentNameKey is the attribute Key conforming to the - // "faas.document.name" semantic conventions. It represents the document - // name/table subjected to the operation. For example, in Cloud Storage or - // S3 is the name of the file, and in Cosmos DB the table name. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'myFile.txt', 'myTableName' - FaaSDocumentNameKey = attribute.Key("faas.document.name") -) - -var ( - // When a new object is created - FaaSDocumentOperationInsert = FaaSDocumentOperationKey.String("insert") - // When an object is modified - FaaSDocumentOperationEdit = FaaSDocumentOperationKey.String("edit") - // When an object is deleted - FaaSDocumentOperationDelete = FaaSDocumentOperationKey.String("delete") -) - -// FaaSDocumentCollection returns an attribute KeyValue conforming to the -// "faas.document.collection" semantic conventions. It represents the name of -// the source on which the triggering operation was performed. For example, in -// Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the -// database name. -func FaaSDocumentCollection(val string) attribute.KeyValue { - return FaaSDocumentCollectionKey.String(val) -} - -// FaaSDocumentTime returns an attribute KeyValue conforming to the -// "faas.document.time" semantic conventions. It represents a string containing -// the time when the data was accessed in the [ISO -// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format -// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime). -func FaaSDocumentTime(val string) attribute.KeyValue { - return FaaSDocumentTimeKey.String(val) -} - -// FaaSDocumentName returns an attribute KeyValue conforming to the -// "faas.document.name" semantic conventions. It represents the document -// name/table subjected to the operation. For example, in Cloud Storage or S3 -// is the name of the file, and in Cosmos DB the table name. -func FaaSDocumentName(val string) attribute.KeyValue { - return FaaSDocumentNameKey.String(val) -} - -// Semantic Convention for FaaS scheduled to be executed regularly. -const ( - // FaaSTimeKey is the attribute Key conforming to the "faas.time" semantic - // conventions. It represents a string containing the function invocation - // time in the [ISO - // 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format - // expressed in [UTC](https://www.w3.org/TR/NOTE-datetime). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '2020-01-23T13:47:06Z' - FaaSTimeKey = attribute.Key("faas.time") - - // FaaSCronKey is the attribute Key conforming to the "faas.cron" semantic - // conventions. It represents a string containing the schedule period as - // [Cron - // Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '0/5 * * * ? *' - FaaSCronKey = attribute.Key("faas.cron") -) - -// FaaSTime returns an attribute KeyValue conforming to the "faas.time" -// semantic conventions. It represents a string containing the function -// invocation time in the [ISO -// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format -// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime). -func FaaSTime(val string) attribute.KeyValue { - return FaaSTimeKey.String(val) -} - -// FaaSCron returns an attribute KeyValue conforming to the "faas.cron" -// semantic conventions. It represents a string containing the schedule period -// as [Cron -// Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm). -func FaaSCron(val string) attribute.KeyValue { - return FaaSCronKey.String(val) -} - -// Contains additional attributes for incoming FaaS spans. -const ( - // FaaSColdstartKey is the attribute Key conforming to the "faas.coldstart" - // semantic conventions. It represents a boolean that is true if the - // serverless function is executed for the first time (aka cold-start). - // - // Type: boolean - // RequirementLevel: Optional - // Stability: stable - FaaSColdstartKey = attribute.Key("faas.coldstart") -) - -// FaaSColdstart returns an attribute KeyValue conforming to the -// "faas.coldstart" semantic conventions. It represents a boolean that is true -// if the serverless function is executed for the first time (aka cold-start). -func FaaSColdstart(val bool) attribute.KeyValue { - return FaaSColdstartKey.Bool(val) -} - -// Contains additional attributes for outgoing FaaS spans. -const ( - // FaaSInvokedNameKey is the attribute Key conforming to the - // "faas.invoked_name" semantic conventions. It represents the name of the - // invoked function. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'my-function' - // Note: SHOULD be equal to the `faas.name` resource attribute of the - // invoked function. - FaaSInvokedNameKey = attribute.Key("faas.invoked_name") - - // FaaSInvokedProviderKey is the attribute Key conforming to the - // "faas.invoked_provider" semantic conventions. It represents the cloud - // provider of the invoked function. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - // Note: SHOULD be equal to the `cloud.provider` resource attribute of the - // invoked function. - FaaSInvokedProviderKey = attribute.Key("faas.invoked_provider") - - // FaaSInvokedRegionKey is the attribute Key conforming to the - // "faas.invoked_region" semantic conventions. It represents the cloud - // region of the invoked function. - // - // Type: string - // RequirementLevel: ConditionallyRequired (For some cloud providers, like - // AWS or GCP, the region in which a function is hosted is essential to - // uniquely identify the function and also part of its endpoint. Since it's - // part of the endpoint being called, the region is always known to - // clients. In these cases, `faas.invoked_region` MUST be set accordingly. - // If the region is unknown to the client or not required for identifying - // the invoked function, setting `faas.invoked_region` is optional.) - // Stability: stable - // Examples: 'eu-central-1' - // Note: SHOULD be equal to the `cloud.region` resource attribute of the - // invoked function. - FaaSInvokedRegionKey = attribute.Key("faas.invoked_region") -) - -var ( - // Alibaba Cloud - FaaSInvokedProviderAlibabaCloud = FaaSInvokedProviderKey.String("alibaba_cloud") - // Amazon Web Services - FaaSInvokedProviderAWS = FaaSInvokedProviderKey.String("aws") - // Microsoft Azure - FaaSInvokedProviderAzure = FaaSInvokedProviderKey.String("azure") - // Google Cloud Platform - FaaSInvokedProviderGCP = FaaSInvokedProviderKey.String("gcp") - // Tencent Cloud - FaaSInvokedProviderTencentCloud = FaaSInvokedProviderKey.String("tencent_cloud") -) - -// FaaSInvokedName returns an attribute KeyValue conforming to the -// "faas.invoked_name" semantic conventions. It represents the name of the -// invoked function. -func FaaSInvokedName(val string) attribute.KeyValue { - return FaaSInvokedNameKey.String(val) -} - -// FaaSInvokedRegion returns an attribute KeyValue conforming to the -// "faas.invoked_region" semantic conventions. It represents the cloud region -// of the invoked function. -func FaaSInvokedRegion(val string) attribute.KeyValue { - return FaaSInvokedRegionKey.String(val) -} - -// Operations that access some remote service. -const ( - // PeerServiceKey is the attribute Key conforming to the "peer.service" - // semantic conventions. It represents the - // [`service.name`](/docs/resource/README.md#service) of the remote - // service. SHOULD be equal to the actual `service.name` resource attribute - // of the remote service if any. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'AuthTokenCache' - PeerServiceKey = attribute.Key("peer.service") -) - -// PeerService returns an attribute KeyValue conforming to the -// "peer.service" semantic conventions. It represents the -// [`service.name`](/docs/resource/README.md#service) of the remote service. -// SHOULD be equal to the actual `service.name` resource attribute of the -// remote service if any. -func PeerService(val string) attribute.KeyValue { - return PeerServiceKey.String(val) -} - -// These attributes may be used for any operation with an authenticated and/or -// authorized enduser. -const ( - // EnduserIDKey is the attribute Key conforming to the "enduser.id" - // semantic conventions. It represents the username or client_id extracted - // from the access token or - // [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header - // in the inbound request from outside the system. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'username' - EnduserIDKey = attribute.Key("enduser.id") - - // EnduserRoleKey is the attribute Key conforming to the "enduser.role" - // semantic conventions. It represents the actual/assumed role the client - // is making the request under extracted from token or application security - // context. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'admin' - EnduserRoleKey = attribute.Key("enduser.role") - - // EnduserScopeKey is the attribute Key conforming to the "enduser.scope" - // semantic conventions. It represents the scopes or granted authorities - // the client currently possesses extracted from token or application - // security context. The value would come from the scope associated with an - // [OAuth 2.0 Access - // Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute - // value in a [SAML 2.0 - // Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'read:message, write:files' - EnduserScopeKey = attribute.Key("enduser.scope") -) - -// EnduserID returns an attribute KeyValue conforming to the "enduser.id" -// semantic conventions. It represents the username or client_id extracted from -// the access token or -// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in -// the inbound request from outside the system. -func EnduserID(val string) attribute.KeyValue { - return EnduserIDKey.String(val) -} - -// EnduserRole returns an attribute KeyValue conforming to the -// "enduser.role" semantic conventions. It represents the actual/assumed role -// the client is making the request under extracted from token or application -// security context. -func EnduserRole(val string) attribute.KeyValue { - return EnduserRoleKey.String(val) -} - -// EnduserScope returns an attribute KeyValue conforming to the -// "enduser.scope" semantic conventions. It represents the scopes or granted -// authorities the client currently possesses extracted from token or -// application security context. The value would come from the scope associated -// with an [OAuth 2.0 Access -// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute -// value in a [SAML 2.0 -// Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html). -func EnduserScope(val string) attribute.KeyValue { - return EnduserScopeKey.String(val) -} - -// These attributes may be used for any operation to store information about a -// thread that started a span. -const ( - // ThreadIDKey is the attribute Key conforming to the "thread.id" semantic - // conventions. It represents the current "managed" thread ID (as opposed - // to OS thread ID). - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 42 - ThreadIDKey = attribute.Key("thread.id") - - // ThreadNameKey is the attribute Key conforming to the "thread.name" - // semantic conventions. It represents the current thread name. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'main' - ThreadNameKey = attribute.Key("thread.name") -) - -// ThreadID returns an attribute KeyValue conforming to the "thread.id" -// semantic conventions. It represents the current "managed" thread ID (as -// opposed to OS thread ID). -func ThreadID(val int) attribute.KeyValue { - return ThreadIDKey.Int(val) -} - -// ThreadName returns an attribute KeyValue conforming to the "thread.name" -// semantic conventions. It represents the current thread name. -func ThreadName(val string) attribute.KeyValue { - return ThreadNameKey.String(val) -} - -// These attributes allow to report this unit of code and therefore to provide -// more context about the span. -const ( - // CodeFunctionKey is the attribute Key conforming to the "code.function" - // semantic conventions. It represents the method or function name, or - // equivalent (usually rightmost part of the code unit's name). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'serveRequest' - CodeFunctionKey = attribute.Key("code.function") - - // CodeNamespaceKey is the attribute Key conforming to the "code.namespace" - // semantic conventions. It represents the "namespace" within which - // `code.function` is defined. Usually the qualified class or module name, - // such that `code.namespace` + some separator + `code.function` form a - // unique identifier for the code unit. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'com.example.MyHTTPService' - CodeNamespaceKey = attribute.Key("code.namespace") - - // CodeFilepathKey is the attribute Key conforming to the "code.filepath" - // semantic conventions. It represents the source code file name that - // identifies the code unit as uniquely as possible (preferably an absolute - // file path). - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '/usr/local/MyApplication/content_root/app/index.php' - CodeFilepathKey = attribute.Key("code.filepath") - - // CodeLineNumberKey is the attribute Key conforming to the "code.lineno" - // semantic conventions. It represents the line number in `code.filepath` - // best representing the operation. It SHOULD point within the code unit - // named in `code.function`. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 42 - CodeLineNumberKey = attribute.Key("code.lineno") - - // CodeColumnKey is the attribute Key conforming to the "code.column" - // semantic conventions. It represents the column number in `code.filepath` - // best representing the operation. It SHOULD point within the code unit - // named in `code.function`. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 16 - CodeColumnKey = attribute.Key("code.column") -) - -// CodeFunction returns an attribute KeyValue conforming to the -// "code.function" semantic conventions. It represents the method or function -// name, or equivalent (usually rightmost part of the code unit's name). -func CodeFunction(val string) attribute.KeyValue { - return CodeFunctionKey.String(val) -} - -// CodeNamespace returns an attribute KeyValue conforming to the -// "code.namespace" semantic conventions. It represents the "namespace" within -// which `code.function` is defined. Usually the qualified class or module -// name, such that `code.namespace` + some separator + `code.function` form a -// unique identifier for the code unit. -func CodeNamespace(val string) attribute.KeyValue { - return CodeNamespaceKey.String(val) -} - -// CodeFilepath returns an attribute KeyValue conforming to the -// "code.filepath" semantic conventions. It represents the source code file -// name that identifies the code unit as uniquely as possible (preferably an -// absolute file path). -func CodeFilepath(val string) attribute.KeyValue { - return CodeFilepathKey.String(val) -} - -// CodeLineNumber returns an attribute KeyValue conforming to the "code.lineno" -// semantic conventions. It represents the line number in `code.filepath` best -// representing the operation. It SHOULD point within the code unit named in -// `code.function`. -func CodeLineNumber(val int) attribute.KeyValue { - return CodeLineNumberKey.Int(val) -} - -// CodeColumn returns an attribute KeyValue conforming to the "code.column" -// semantic conventions. It represents the column number in `code.filepath` -// best representing the operation. It SHOULD point within the code unit named -// in `code.function`. -func CodeColumn(val int) attribute.KeyValue { - return CodeColumnKey.Int(val) -} - -// Semantic Convention for HTTP Client -const ( - // HTTPResendCountKey is the attribute Key conforming to the - // "http.resend_count" semantic conventions. It represents the ordinal - // number of request resending attempt (for any reason, including - // redirects). - // - // Type: int - // RequirementLevel: Recommended (if and only if request was retried.) - // Stability: stable - // Examples: 3 - // Note: The resend count SHOULD be updated each time an HTTP request gets - // resent by the client, regardless of what was the cause of the resending - // (e.g. redirection, authorization failure, 503 Server Unavailable, - // network issues, or any other). - HTTPResendCountKey = attribute.Key("http.resend_count") -) - -// HTTPResendCount returns an attribute KeyValue conforming to the -// "http.resend_count" semantic conventions. It represents the ordinal number -// of request resending attempt (for any reason, including redirects). -func HTTPResendCount(val int) attribute.KeyValue { - return HTTPResendCountKey.Int(val) -} - -// The `aws` conventions apply to operations using the AWS SDK. They map -// request or response parameters in AWS SDK API calls to attributes on a Span. -// The conventions have been collected over time based on feedback from AWS -// users of tracing and will continue to evolve as new interesting conventions -// are found. -// Some descriptions are also provided for populating general OpenTelemetry -// semantic conventions based on these APIs. -const ( - // AWSRequestIDKey is the attribute Key conforming to the "aws.request_id" - // semantic conventions. It represents the AWS request ID as returned in - // the response headers `x-amz-request-id` or `x-amz-requestid`. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '79b9da39-b7ae-508a-a6bc-864b2829c622', 'C9ER4AJX75574TDJ' - AWSRequestIDKey = attribute.Key("aws.request_id") -) - -// AWSRequestID returns an attribute KeyValue conforming to the -// "aws.request_id" semantic conventions. It represents the AWS request ID as -// returned in the response headers `x-amz-request-id` or `x-amz-requestid`. -func AWSRequestID(val string) attribute.KeyValue { - return AWSRequestIDKey.String(val) -} - -// Attributes that exist for multiple DynamoDB request types. -const ( - // AWSDynamoDBTableNamesKey is the attribute Key conforming to the - // "aws.dynamodb.table_names" semantic conventions. It represents the keys - // in the `RequestItems` object field. - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Users', 'Cats' - AWSDynamoDBTableNamesKey = attribute.Key("aws.dynamodb.table_names") - - // AWSDynamoDBConsumedCapacityKey is the attribute Key conforming to the - // "aws.dynamodb.consumed_capacity" semantic conventions. It represents the - // JSON-serialized value of each item in the `ConsumedCapacity` response - // field. - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: '{ "CapacityUnits": number, "GlobalSecondaryIndexes": { - // "string" : { "CapacityUnits": number, "ReadCapacityUnits": number, - // "WriteCapacityUnits": number } }, "LocalSecondaryIndexes": { "string" : - // { "CapacityUnits": number, "ReadCapacityUnits": number, - // "WriteCapacityUnits": number } }, "ReadCapacityUnits": number, "Table": - // { "CapacityUnits": number, "ReadCapacityUnits": number, - // "WriteCapacityUnits": number }, "TableName": "string", - // "WriteCapacityUnits": number }' - AWSDynamoDBConsumedCapacityKey = attribute.Key("aws.dynamodb.consumed_capacity") - - // AWSDynamoDBItemCollectionMetricsKey is the attribute Key conforming to - // the "aws.dynamodb.item_collection_metrics" semantic conventions. It - // represents the JSON-serialized value of the `ItemCollectionMetrics` - // response field. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '{ "string" : [ { "ItemCollectionKey": { "string" : { "B": - // blob, "BOOL": boolean, "BS": [ blob ], "L": [ "AttributeValue" ], "M": { - // "string" : "AttributeValue" }, "N": "string", "NS": [ "string" ], - // "NULL": boolean, "S": "string", "SS": [ "string" ] } }, - // "SizeEstimateRangeGB": [ number ] } ] }' - AWSDynamoDBItemCollectionMetricsKey = attribute.Key("aws.dynamodb.item_collection_metrics") - - // AWSDynamoDBProvisionedReadCapacityKey is the attribute Key conforming to - // the "aws.dynamodb.provisioned_read_capacity" semantic conventions. It - // represents the value of the `ProvisionedThroughput.ReadCapacityUnits` - // request parameter. - // - // Type: double - // RequirementLevel: Optional - // Stability: stable - // Examples: 1.0, 2.0 - AWSDynamoDBProvisionedReadCapacityKey = attribute.Key("aws.dynamodb.provisioned_read_capacity") - - // AWSDynamoDBProvisionedWriteCapacityKey is the attribute Key conforming - // to the "aws.dynamodb.provisioned_write_capacity" semantic conventions. - // It represents the value of the - // `ProvisionedThroughput.WriteCapacityUnits` request parameter. - // - // Type: double - // RequirementLevel: Optional - // Stability: stable - // Examples: 1.0, 2.0 - AWSDynamoDBProvisionedWriteCapacityKey = attribute.Key("aws.dynamodb.provisioned_write_capacity") - - // AWSDynamoDBConsistentReadKey is the attribute Key conforming to the - // "aws.dynamodb.consistent_read" semantic conventions. It represents the - // value of the `ConsistentRead` request parameter. - // - // Type: boolean - // RequirementLevel: Optional - // Stability: stable - AWSDynamoDBConsistentReadKey = attribute.Key("aws.dynamodb.consistent_read") - - // AWSDynamoDBProjectionKey is the attribute Key conforming to the - // "aws.dynamodb.projection" semantic conventions. It represents the value - // of the `ProjectionExpression` request parameter. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Title', 'Title, Price, Color', 'Title, Description, - // RelatedItems, ProductReviews' - AWSDynamoDBProjectionKey = attribute.Key("aws.dynamodb.projection") - - // AWSDynamoDBLimitKey is the attribute Key conforming to the - // "aws.dynamodb.limit" semantic conventions. It represents the value of - // the `Limit` request parameter. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 10 - AWSDynamoDBLimitKey = attribute.Key("aws.dynamodb.limit") - - // AWSDynamoDBAttributesToGetKey is the attribute Key conforming to the - // "aws.dynamodb.attributes_to_get" semantic conventions. It represents the - // value of the `AttributesToGet` request parameter. - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: 'lives', 'id' - AWSDynamoDBAttributesToGetKey = attribute.Key("aws.dynamodb.attributes_to_get") - - // AWSDynamoDBIndexNameKey is the attribute Key conforming to the - // "aws.dynamodb.index_name" semantic conventions. It represents the value - // of the `IndexName` request parameter. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'name_to_group' - AWSDynamoDBIndexNameKey = attribute.Key("aws.dynamodb.index_name") - - // AWSDynamoDBSelectKey is the attribute Key conforming to the - // "aws.dynamodb.select" semantic conventions. It represents the value of - // the `Select` request parameter. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'ALL_ATTRIBUTES', 'COUNT' - AWSDynamoDBSelectKey = attribute.Key("aws.dynamodb.select") -) - -// AWSDynamoDBTableNames returns an attribute KeyValue conforming to the -// "aws.dynamodb.table_names" semantic conventions. It represents the keys in -// the `RequestItems` object field. -func AWSDynamoDBTableNames(val ...string) attribute.KeyValue { - return AWSDynamoDBTableNamesKey.StringSlice(val) -} - -// AWSDynamoDBConsumedCapacity returns an attribute KeyValue conforming to -// the "aws.dynamodb.consumed_capacity" semantic conventions. It represents the -// JSON-serialized value of each item in the `ConsumedCapacity` response field. -func AWSDynamoDBConsumedCapacity(val ...string) attribute.KeyValue { - return AWSDynamoDBConsumedCapacityKey.StringSlice(val) -} - -// AWSDynamoDBItemCollectionMetrics returns an attribute KeyValue conforming -// to the "aws.dynamodb.item_collection_metrics" semantic conventions. It -// represents the JSON-serialized value of the `ItemCollectionMetrics` response -// field. -func AWSDynamoDBItemCollectionMetrics(val string) attribute.KeyValue { - return AWSDynamoDBItemCollectionMetricsKey.String(val) -} - -// AWSDynamoDBProvisionedReadCapacity returns an attribute KeyValue -// conforming to the "aws.dynamodb.provisioned_read_capacity" semantic -// conventions. It represents the value of the -// `ProvisionedThroughput.ReadCapacityUnits` request parameter. -func AWSDynamoDBProvisionedReadCapacity(val float64) attribute.KeyValue { - return AWSDynamoDBProvisionedReadCapacityKey.Float64(val) -} - -// AWSDynamoDBProvisionedWriteCapacity returns an attribute KeyValue -// conforming to the "aws.dynamodb.provisioned_write_capacity" semantic -// conventions. It represents the value of the -// `ProvisionedThroughput.WriteCapacityUnits` request parameter. -func AWSDynamoDBProvisionedWriteCapacity(val float64) attribute.KeyValue { - return AWSDynamoDBProvisionedWriteCapacityKey.Float64(val) -} - -// AWSDynamoDBConsistentRead returns an attribute KeyValue conforming to the -// "aws.dynamodb.consistent_read" semantic conventions. It represents the value -// of the `ConsistentRead` request parameter. -func AWSDynamoDBConsistentRead(val bool) attribute.KeyValue { - return AWSDynamoDBConsistentReadKey.Bool(val) -} - -// AWSDynamoDBProjection returns an attribute KeyValue conforming to the -// "aws.dynamodb.projection" semantic conventions. It represents the value of -// the `ProjectionExpression` request parameter. -func AWSDynamoDBProjection(val string) attribute.KeyValue { - return AWSDynamoDBProjectionKey.String(val) -} - -// AWSDynamoDBLimit returns an attribute KeyValue conforming to the -// "aws.dynamodb.limit" semantic conventions. It represents the value of the -// `Limit` request parameter. -func AWSDynamoDBLimit(val int) attribute.KeyValue { - return AWSDynamoDBLimitKey.Int(val) -} - -// AWSDynamoDBAttributesToGet returns an attribute KeyValue conforming to -// the "aws.dynamodb.attributes_to_get" semantic conventions. It represents the -// value of the `AttributesToGet` request parameter. -func AWSDynamoDBAttributesToGet(val ...string) attribute.KeyValue { - return AWSDynamoDBAttributesToGetKey.StringSlice(val) -} - -// AWSDynamoDBIndexName returns an attribute KeyValue conforming to the -// "aws.dynamodb.index_name" semantic conventions. It represents the value of -// the `IndexName` request parameter. -func AWSDynamoDBIndexName(val string) attribute.KeyValue { - return AWSDynamoDBIndexNameKey.String(val) -} - -// AWSDynamoDBSelect returns an attribute KeyValue conforming to the -// "aws.dynamodb.select" semantic conventions. It represents the value of the -// `Select` request parameter. -func AWSDynamoDBSelect(val string) attribute.KeyValue { - return AWSDynamoDBSelectKey.String(val) -} - -// DynamoDB.CreateTable -const ( - // AWSDynamoDBGlobalSecondaryIndexesKey is the attribute Key conforming to - // the "aws.dynamodb.global_secondary_indexes" semantic conventions. It - // represents the JSON-serialized value of each item of the - // `GlobalSecondaryIndexes` request field - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: '{ "IndexName": "string", "KeySchema": [ { "AttributeName": - // "string", "KeyType": "string" } ], "Projection": { "NonKeyAttributes": [ - // "string" ], "ProjectionType": "string" }, "ProvisionedThroughput": { - // "ReadCapacityUnits": number, "WriteCapacityUnits": number } }' - AWSDynamoDBGlobalSecondaryIndexesKey = attribute.Key("aws.dynamodb.global_secondary_indexes") - - // AWSDynamoDBLocalSecondaryIndexesKey is the attribute Key conforming to - // the "aws.dynamodb.local_secondary_indexes" semantic conventions. It - // represents the JSON-serialized value of each item of the - // `LocalSecondaryIndexes` request field. - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: '{ "IndexARN": "string", "IndexName": "string", - // "IndexSizeBytes": number, "ItemCount": number, "KeySchema": [ { - // "AttributeName": "string", "KeyType": "string" } ], "Projection": { - // "NonKeyAttributes": [ "string" ], "ProjectionType": "string" } }' - AWSDynamoDBLocalSecondaryIndexesKey = attribute.Key("aws.dynamodb.local_secondary_indexes") -) - -// AWSDynamoDBGlobalSecondaryIndexes returns an attribute KeyValue -// conforming to the "aws.dynamodb.global_secondary_indexes" semantic -// conventions. It represents the JSON-serialized value of each item of the -// `GlobalSecondaryIndexes` request field -func AWSDynamoDBGlobalSecondaryIndexes(val ...string) attribute.KeyValue { - return AWSDynamoDBGlobalSecondaryIndexesKey.StringSlice(val) -} - -// AWSDynamoDBLocalSecondaryIndexes returns an attribute KeyValue conforming -// to the "aws.dynamodb.local_secondary_indexes" semantic conventions. It -// represents the JSON-serialized value of each item of the -// `LocalSecondaryIndexes` request field. -func AWSDynamoDBLocalSecondaryIndexes(val ...string) attribute.KeyValue { - return AWSDynamoDBLocalSecondaryIndexesKey.StringSlice(val) -} - -// DynamoDB.ListTables -const ( - // AWSDynamoDBExclusiveStartTableKey is the attribute Key conforming to the - // "aws.dynamodb.exclusive_start_table" semantic conventions. It represents - // the value of the `ExclusiveStartTableName` request parameter. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Users', 'CatsTable' - AWSDynamoDBExclusiveStartTableKey = attribute.Key("aws.dynamodb.exclusive_start_table") - - // AWSDynamoDBTableCountKey is the attribute Key conforming to the - // "aws.dynamodb.table_count" semantic conventions. It represents the the - // number of items in the `TableNames` response parameter. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 20 - AWSDynamoDBTableCountKey = attribute.Key("aws.dynamodb.table_count") -) - -// AWSDynamoDBExclusiveStartTable returns an attribute KeyValue conforming -// to the "aws.dynamodb.exclusive_start_table" semantic conventions. It -// represents the value of the `ExclusiveStartTableName` request parameter. -func AWSDynamoDBExclusiveStartTable(val string) attribute.KeyValue { - return AWSDynamoDBExclusiveStartTableKey.String(val) -} - -// AWSDynamoDBTableCount returns an attribute KeyValue conforming to the -// "aws.dynamodb.table_count" semantic conventions. It represents the the -// number of items in the `TableNames` response parameter. -func AWSDynamoDBTableCount(val int) attribute.KeyValue { - return AWSDynamoDBTableCountKey.Int(val) -} - -// DynamoDB.Query -const ( - // AWSDynamoDBScanForwardKey is the attribute Key conforming to the - // "aws.dynamodb.scan_forward" semantic conventions. It represents the - // value of the `ScanIndexForward` request parameter. - // - // Type: boolean - // RequirementLevel: Optional - // Stability: stable - AWSDynamoDBScanForwardKey = attribute.Key("aws.dynamodb.scan_forward") -) - -// AWSDynamoDBScanForward returns an attribute KeyValue conforming to the -// "aws.dynamodb.scan_forward" semantic conventions. It represents the value of -// the `ScanIndexForward` request parameter. -func AWSDynamoDBScanForward(val bool) attribute.KeyValue { - return AWSDynamoDBScanForwardKey.Bool(val) -} - -// DynamoDB.Scan -const ( - // AWSDynamoDBSegmentKey is the attribute Key conforming to the - // "aws.dynamodb.segment" semantic conventions. It represents the value of - // the `Segment` request parameter. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 10 - AWSDynamoDBSegmentKey = attribute.Key("aws.dynamodb.segment") - - // AWSDynamoDBTotalSegmentsKey is the attribute Key conforming to the - // "aws.dynamodb.total_segments" semantic conventions. It represents the - // value of the `TotalSegments` request parameter. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 100 - AWSDynamoDBTotalSegmentsKey = attribute.Key("aws.dynamodb.total_segments") - - // AWSDynamoDBCountKey is the attribute Key conforming to the - // "aws.dynamodb.count" semantic conventions. It represents the value of - // the `Count` response parameter. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 10 - AWSDynamoDBCountKey = attribute.Key("aws.dynamodb.count") - - // AWSDynamoDBScannedCountKey is the attribute Key conforming to the - // "aws.dynamodb.scanned_count" semantic conventions. It represents the - // value of the `ScannedCount` response parameter. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 50 - AWSDynamoDBScannedCountKey = attribute.Key("aws.dynamodb.scanned_count") -) - -// AWSDynamoDBSegment returns an attribute KeyValue conforming to the -// "aws.dynamodb.segment" semantic conventions. It represents the value of the -// `Segment` request parameter. -func AWSDynamoDBSegment(val int) attribute.KeyValue { - return AWSDynamoDBSegmentKey.Int(val) -} - -// AWSDynamoDBTotalSegments returns an attribute KeyValue conforming to the -// "aws.dynamodb.total_segments" semantic conventions. It represents the value -// of the `TotalSegments` request parameter. -func AWSDynamoDBTotalSegments(val int) attribute.KeyValue { - return AWSDynamoDBTotalSegmentsKey.Int(val) -} - -// AWSDynamoDBCount returns an attribute KeyValue conforming to the -// "aws.dynamodb.count" semantic conventions. It represents the value of the -// `Count` response parameter. -func AWSDynamoDBCount(val int) attribute.KeyValue { - return AWSDynamoDBCountKey.Int(val) -} - -// AWSDynamoDBScannedCount returns an attribute KeyValue conforming to the -// "aws.dynamodb.scanned_count" semantic conventions. It represents the value -// of the `ScannedCount` response parameter. -func AWSDynamoDBScannedCount(val int) attribute.KeyValue { - return AWSDynamoDBScannedCountKey.Int(val) -} - -// DynamoDB.UpdateTable -const ( - // AWSDynamoDBAttributeDefinitionsKey is the attribute Key conforming to - // the "aws.dynamodb.attribute_definitions" semantic conventions. It - // represents the JSON-serialized value of each item in the - // `AttributeDefinitions` request field. - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: '{ "AttributeName": "string", "AttributeType": "string" }' - AWSDynamoDBAttributeDefinitionsKey = attribute.Key("aws.dynamodb.attribute_definitions") - - // AWSDynamoDBGlobalSecondaryIndexUpdatesKey is the attribute Key - // conforming to the "aws.dynamodb.global_secondary_index_updates" semantic - // conventions. It represents the JSON-serialized value of each item in the - // the `GlobalSecondaryIndexUpdates` request field. - // - // Type: string[] - // RequirementLevel: Optional - // Stability: stable - // Examples: '{ "Create": { "IndexName": "string", "KeySchema": [ { - // "AttributeName": "string", "KeyType": "string" } ], "Projection": { - // "NonKeyAttributes": [ "string" ], "ProjectionType": "string" }, - // "ProvisionedThroughput": { "ReadCapacityUnits": number, - // "WriteCapacityUnits": number } }' - AWSDynamoDBGlobalSecondaryIndexUpdatesKey = attribute.Key("aws.dynamodb.global_secondary_index_updates") -) - -// AWSDynamoDBAttributeDefinitions returns an attribute KeyValue conforming -// to the "aws.dynamodb.attribute_definitions" semantic conventions. It -// represents the JSON-serialized value of each item in the -// `AttributeDefinitions` request field. -func AWSDynamoDBAttributeDefinitions(val ...string) attribute.KeyValue { - return AWSDynamoDBAttributeDefinitionsKey.StringSlice(val) -} - -// AWSDynamoDBGlobalSecondaryIndexUpdates returns an attribute KeyValue -// conforming to the "aws.dynamodb.global_secondary_index_updates" semantic -// conventions. It represents the JSON-serialized value of each item in the the -// `GlobalSecondaryIndexUpdates` request field. -func AWSDynamoDBGlobalSecondaryIndexUpdates(val ...string) attribute.KeyValue { - return AWSDynamoDBGlobalSecondaryIndexUpdatesKey.StringSlice(val) -} - -// Attributes that exist for S3 request types. -const ( - // AWSS3BucketKey is the attribute Key conforming to the "aws.s3.bucket" - // semantic conventions. It represents the S3 bucket name the request - // refers to. Corresponds to the `--bucket` parameter of the [S3 - // API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) - // operations. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'some-bucket-name' - // Note: The `bucket` attribute is applicable to all S3 operations that - // reference a bucket, i.e. that require the bucket name as a mandatory - // parameter. - // This applies to almost all S3 operations except `list-buckets`. - AWSS3BucketKey = attribute.Key("aws.s3.bucket") - - // AWSS3KeyKey is the attribute Key conforming to the "aws.s3.key" semantic - // conventions. It represents the S3 object key the request refers to. - // Corresponds to the `--key` parameter of the [S3 - // API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) - // operations. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'someFile.yml' - // Note: The `key` attribute is applicable to all object-related S3 - // operations, i.e. that require the object key as a mandatory parameter. - // This applies in particular to the following operations: - // - // - - // [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html) - // - - // [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html) - // - - // [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html) - // - - // [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html) - // - - // [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html) - // - - // [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html) - // - - // [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html) - // - - // [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html) - // - - // [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html) - // - - // [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html) - // - - // [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html) - // - - // [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html) - // - - // [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) - AWSS3KeyKey = attribute.Key("aws.s3.key") - - // AWSS3CopySourceKey is the attribute Key conforming to the - // "aws.s3.copy_source" semantic conventions. It represents the source - // object (in the form `bucket`/`key`) for the copy operation. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'someFile.yml' - // Note: The `copy_source` attribute applies to S3 copy operations and - // corresponds to the `--copy-source` parameter - // of the [copy-object operation within the S3 - // API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html). - // This applies in particular to the following operations: - // - // - - // [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html) - // - - // [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) - AWSS3CopySourceKey = attribute.Key("aws.s3.copy_source") - - // AWSS3UploadIDKey is the attribute Key conforming to the - // "aws.s3.upload_id" semantic conventions. It represents the upload ID - // that identifies the multipart upload. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ' - // Note: The `upload_id` attribute applies to S3 multipart-upload - // operations and corresponds to the `--upload-id` parameter - // of the [S3 - // API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) - // multipart operations. - // This applies in particular to the following operations: - // - // - - // [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html) - // - - // [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html) - // - - // [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html) - // - - // [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html) - // - - // [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) - AWSS3UploadIDKey = attribute.Key("aws.s3.upload_id") - - // AWSS3DeleteKey is the attribute Key conforming to the "aws.s3.delete" - // semantic conventions. It represents the delete request container that - // specifies the objects to be deleted. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: - // 'Objects=[{Key=string,VersionID=string},{Key=string,VersionID=string}],Quiet=boolean' - // Note: The `delete` attribute is only applicable to the - // [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html) - // operation. - // The `delete` attribute corresponds to the `--delete` parameter of the - // [delete-objects operation within the S3 - // API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html). - AWSS3DeleteKey = attribute.Key("aws.s3.delete") - - // AWSS3PartNumberKey is the attribute Key conforming to the - // "aws.s3.part_number" semantic conventions. It represents the part number - // of the part being uploaded in a multipart-upload operation. This is a - // positive integer between 1 and 10,000. - // - // Type: int - // RequirementLevel: Optional - // Stability: stable - // Examples: 3456 - // Note: The `part_number` attribute is only applicable to the - // [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html) - // and - // [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html) - // operations. - // The `part_number` attribute corresponds to the `--part-number` parameter - // of the - // [upload-part operation within the S3 - // API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html). - AWSS3PartNumberKey = attribute.Key("aws.s3.part_number") -) - -// AWSS3Bucket returns an attribute KeyValue conforming to the -// "aws.s3.bucket" semantic conventions. It represents the S3 bucket name the -// request refers to. Corresponds to the `--bucket` parameter of the [S3 -// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) -// operations. -func AWSS3Bucket(val string) attribute.KeyValue { - return AWSS3BucketKey.String(val) -} - -// AWSS3Key returns an attribute KeyValue conforming to the "aws.s3.key" -// semantic conventions. It represents the S3 object key the request refers to. -// Corresponds to the `--key` parameter of the [S3 -// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html) -// operations. -func AWSS3Key(val string) attribute.KeyValue { - return AWSS3KeyKey.String(val) -} - -// AWSS3CopySource returns an attribute KeyValue conforming to the -// "aws.s3.copy_source" semantic conventions. It represents the source object -// (in the form `bucket`/`key`) for the copy operation. -func AWSS3CopySource(val string) attribute.KeyValue { - return AWSS3CopySourceKey.String(val) -} - -// AWSS3UploadID returns an attribute KeyValue conforming to the -// "aws.s3.upload_id" semantic conventions. It represents the upload ID that -// identifies the multipart upload. -func AWSS3UploadID(val string) attribute.KeyValue { - return AWSS3UploadIDKey.String(val) -} - -// AWSS3Delete returns an attribute KeyValue conforming to the -// "aws.s3.delete" semantic conventions. It represents the delete request -// container that specifies the objects to be deleted. -func AWSS3Delete(val string) attribute.KeyValue { - return AWSS3DeleteKey.String(val) -} - -// AWSS3PartNumber returns an attribute KeyValue conforming to the -// "aws.s3.part_number" semantic conventions. It represents the part number of -// the part being uploaded in a multipart-upload operation. This is a positive -// integer between 1 and 10,000. -func AWSS3PartNumber(val int) attribute.KeyValue { - return AWSS3PartNumberKey.Int(val) -} - -// Semantic conventions to apply when instrumenting the GraphQL implementation. -// They map GraphQL operations to attributes on a Span. -const ( - // GraphqlOperationNameKey is the attribute Key conforming to the - // "graphql.operation.name" semantic conventions. It represents the name of - // the operation being executed. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'findBookByID' - GraphqlOperationNameKey = attribute.Key("graphql.operation.name") - - // GraphqlOperationTypeKey is the attribute Key conforming to the - // "graphql.operation.type" semantic conventions. It represents the type of - // the operation being executed. - // - // Type: Enum - // RequirementLevel: Optional - // Stability: stable - // Examples: 'query', 'mutation', 'subscription' - GraphqlOperationTypeKey = attribute.Key("graphql.operation.type") - - // GraphqlDocumentKey is the attribute Key conforming to the - // "graphql.document" semantic conventions. It represents the GraphQL - // document being executed. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'query findBookByID { bookByID(id: ?) { name } }' - // Note: The value may be sanitized to exclude sensitive information. - GraphqlDocumentKey = attribute.Key("graphql.document") -) - -var ( - // GraphQL query - GraphqlOperationTypeQuery = GraphqlOperationTypeKey.String("query") - // GraphQL mutation - GraphqlOperationTypeMutation = GraphqlOperationTypeKey.String("mutation") - // GraphQL subscription - GraphqlOperationTypeSubscription = GraphqlOperationTypeKey.String("subscription") -) - -// GraphqlOperationName returns an attribute KeyValue conforming to the -// "graphql.operation.name" semantic conventions. It represents the name of the -// operation being executed. -func GraphqlOperationName(val string) attribute.KeyValue { - return GraphqlOperationNameKey.String(val) -} - -// GraphqlDocument returns an attribute KeyValue conforming to the -// "graphql.document" semantic conventions. It represents the GraphQL document -// being executed. -func GraphqlDocument(val string) attribute.KeyValue { - return GraphqlDocumentKey.String(val) -} - -// General attributes used in messaging systems. -const ( - // MessagingSystemKey is the attribute Key conforming to the - // "messaging.system" semantic conventions. It represents a string - // identifying the messaging system. - // - // Type: string - // RequirementLevel: Required - // Stability: stable - // Examples: 'kafka', 'rabbitmq', 'rocketmq', 'activemq', 'AmazonSQS' - MessagingSystemKey = attribute.Key("messaging.system") - - // MessagingOperationKey is the attribute Key conforming to the - // "messaging.operation" semantic conventions. It represents a string - // identifying the kind of messaging operation as defined in the [Operation - // names](#operation-names) section above. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - // Note: If a custom value is used, it MUST be of low cardinality. - MessagingOperationKey = attribute.Key("messaging.operation") - - // MessagingBatchMessageCountKey is the attribute Key conforming to the - // "messaging.batch.message_count" semantic conventions. It represents the - // number of messages sent, received, or processed in the scope of the - // batching operation. - // - // Type: int - // RequirementLevel: ConditionallyRequired (If the span describes an - // operation on a batch of messages.) - // Stability: stable - // Examples: 0, 1, 2 - // Note: Instrumentations SHOULD NOT set `messaging.batch.message_count` on - // spans that operate with a single message. When a messaging client - // library supports both batch and single-message API for the same - // operation, instrumentations SHOULD use `messaging.batch.message_count` - // for batching APIs and SHOULD NOT use it for single-message APIs. - MessagingBatchMessageCountKey = attribute.Key("messaging.batch.message_count") - - // MessagingClientIDKey is the attribute Key conforming to the - // "messaging.client_id" semantic conventions. It represents a unique - // identifier for the client that consumes or produces a message. - // - // Type: string - // RequirementLevel: Recommended (If a client id is available) - // Stability: stable - // Examples: 'client-5', 'myhost@8742@s8083jm' - MessagingClientIDKey = attribute.Key("messaging.client_id") -) - -var ( - // publish - MessagingOperationPublish = MessagingOperationKey.String("publish") - // receive - MessagingOperationReceive = MessagingOperationKey.String("receive") - // process - MessagingOperationProcess = MessagingOperationKey.String("process") -) - -// MessagingSystem returns an attribute KeyValue conforming to the -// "messaging.system" semantic conventions. It represents a string identifying -// the messaging system. -func MessagingSystem(val string) attribute.KeyValue { - return MessagingSystemKey.String(val) -} - -// MessagingBatchMessageCount returns an attribute KeyValue conforming to -// the "messaging.batch.message_count" semantic conventions. It represents the -// number of messages sent, received, or processed in the scope of the batching -// operation. -func MessagingBatchMessageCount(val int) attribute.KeyValue { - return MessagingBatchMessageCountKey.Int(val) -} - -// MessagingClientID returns an attribute KeyValue conforming to the -// "messaging.client_id" semantic conventions. It represents a unique -// identifier for the client that consumes or produces a message. -func MessagingClientID(val string) attribute.KeyValue { - return MessagingClientIDKey.String(val) -} - -// Semantic conventions for remote procedure calls. -const ( - // RPCSystemKey is the attribute Key conforming to the "rpc.system" - // semantic conventions. It represents a string identifying the remoting - // system. See below for a list of well-known identifiers. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - RPCSystemKey = attribute.Key("rpc.system") - - // RPCServiceKey is the attribute Key conforming to the "rpc.service" - // semantic conventions. It represents the full (logical) name of the - // service being called, including its package name, if applicable. - // - // Type: string - // RequirementLevel: Recommended - // Stability: stable - // Examples: 'myservice.EchoService' - // Note: This is the logical name of the service from the RPC interface - // perspective, which can be different from the name of any implementing - // class. The `code.namespace` attribute may be used to store the latter - // (despite the attribute name, it may include a class name; e.g., class - // with method actually executing the call on the server side, RPC client - // stub class on the client side). - RPCServiceKey = attribute.Key("rpc.service") - - // RPCMethodKey is the attribute Key conforming to the "rpc.method" - // semantic conventions. It represents the name of the (logical) method - // being called, must be equal to the $method part in the span name. - // - // Type: string - // RequirementLevel: Recommended - // Stability: stable - // Examples: 'exampleMethod' - // Note: This is the logical name of the method from the RPC interface - // perspective, which can be different from the name of any implementing - // method/function. The `code.function` attribute may be used to store the - // latter (e.g., method actually executing the call on the server side, RPC - // client stub method on the client side). - RPCMethodKey = attribute.Key("rpc.method") -) - -var ( - // gRPC - RPCSystemGRPC = RPCSystemKey.String("grpc") - // Java RMI - RPCSystemJavaRmi = RPCSystemKey.String("java_rmi") - // .NET WCF - RPCSystemDotnetWcf = RPCSystemKey.String("dotnet_wcf") - // Apache Dubbo - RPCSystemApacheDubbo = RPCSystemKey.String("apache_dubbo") - // Connect RPC - RPCSystemConnectRPC = RPCSystemKey.String("connect_rpc") -) - -// RPCService returns an attribute KeyValue conforming to the "rpc.service" -// semantic conventions. It represents the full (logical) name of the service -// being called, including its package name, if applicable. -func RPCService(val string) attribute.KeyValue { - return RPCServiceKey.String(val) -} - -// RPCMethod returns an attribute KeyValue conforming to the "rpc.method" -// semantic conventions. It represents the name of the (logical) method being -// called, must be equal to the $method part in the span name. -func RPCMethod(val string) attribute.KeyValue { - return RPCMethodKey.String(val) -} - -// Tech-specific attributes for gRPC. -const ( - // RPCGRPCStatusCodeKey is the attribute Key conforming to the - // "rpc.grpc.status_code" semantic conventions. It represents the [numeric - // status - // code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of - // the gRPC request. - // - // Type: Enum - // RequirementLevel: Required - // Stability: stable - RPCGRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code") -) - -var ( - // OK - RPCGRPCStatusCodeOk = RPCGRPCStatusCodeKey.Int(0) - // CANCELLED - RPCGRPCStatusCodeCancelled = RPCGRPCStatusCodeKey.Int(1) - // UNKNOWN - RPCGRPCStatusCodeUnknown = RPCGRPCStatusCodeKey.Int(2) - // INVALID_ARGUMENT - RPCGRPCStatusCodeInvalidArgument = RPCGRPCStatusCodeKey.Int(3) - // DEADLINE_EXCEEDED - RPCGRPCStatusCodeDeadlineExceeded = RPCGRPCStatusCodeKey.Int(4) - // NOT_FOUND - RPCGRPCStatusCodeNotFound = RPCGRPCStatusCodeKey.Int(5) - // ALREADY_EXISTS - RPCGRPCStatusCodeAlreadyExists = RPCGRPCStatusCodeKey.Int(6) - // PERMISSION_DENIED - RPCGRPCStatusCodePermissionDenied = RPCGRPCStatusCodeKey.Int(7) - // RESOURCE_EXHAUSTED - RPCGRPCStatusCodeResourceExhausted = RPCGRPCStatusCodeKey.Int(8) - // FAILED_PRECONDITION - RPCGRPCStatusCodeFailedPrecondition = RPCGRPCStatusCodeKey.Int(9) - // ABORTED - RPCGRPCStatusCodeAborted = RPCGRPCStatusCodeKey.Int(10) - // OUT_OF_RANGE - RPCGRPCStatusCodeOutOfRange = RPCGRPCStatusCodeKey.Int(11) - // UNIMPLEMENTED - RPCGRPCStatusCodeUnimplemented = RPCGRPCStatusCodeKey.Int(12) - // INTERNAL - RPCGRPCStatusCodeInternal = RPCGRPCStatusCodeKey.Int(13) - // UNAVAILABLE - RPCGRPCStatusCodeUnavailable = RPCGRPCStatusCodeKey.Int(14) - // DATA_LOSS - RPCGRPCStatusCodeDataLoss = RPCGRPCStatusCodeKey.Int(15) - // UNAUTHENTICATED - RPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16) -) - -// Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/). -const ( - // RPCJsonrpcVersionKey is the attribute Key conforming to the - // "rpc.jsonrpc.version" semantic conventions. It represents the protocol - // version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 - // does not specify this, the value can be omitted. - // - // Type: string - // RequirementLevel: ConditionallyRequired (If other than the default - // version (`1.0`)) - // Stability: stable - // Examples: '2.0', '1.0' - RPCJsonrpcVersionKey = attribute.Key("rpc.jsonrpc.version") - - // RPCJsonrpcRequestIDKey is the attribute Key conforming to the - // "rpc.jsonrpc.request_id" semantic conventions. It represents the `id` - // property of request or response. Since protocol allows id to be int, - // string, `null` or missing (for notifications), value is expected to be - // cast to string for simplicity. Use empty string in case of `null` value. - // Omit entirely if this is a notification. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: '10', 'request-7', '' - RPCJsonrpcRequestIDKey = attribute.Key("rpc.jsonrpc.request_id") - - // RPCJsonrpcErrorCodeKey is the attribute Key conforming to the - // "rpc.jsonrpc.error_code" semantic conventions. It represents the - // `error.code` property of response if it is an error response. - // - // Type: int - // RequirementLevel: ConditionallyRequired (If response is not successful.) - // Stability: stable - // Examples: -32700, 100 - RPCJsonrpcErrorCodeKey = attribute.Key("rpc.jsonrpc.error_code") - - // RPCJsonrpcErrorMessageKey is the attribute Key conforming to the - // "rpc.jsonrpc.error_message" semantic conventions. It represents the - // `error.message` property of response if it is an error response. - // - // Type: string - // RequirementLevel: Optional - // Stability: stable - // Examples: 'Parse error', 'User already exists' - RPCJsonrpcErrorMessageKey = attribute.Key("rpc.jsonrpc.error_message") -) - -// RPCJsonrpcVersion returns an attribute KeyValue conforming to the -// "rpc.jsonrpc.version" semantic conventions. It represents the protocol -// version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 -// does not specify this, the value can be omitted. -func RPCJsonrpcVersion(val string) attribute.KeyValue { - return RPCJsonrpcVersionKey.String(val) -} - -// RPCJsonrpcRequestID returns an attribute KeyValue conforming to the -// "rpc.jsonrpc.request_id" semantic conventions. It represents the `id` -// property of request or response. Since protocol allows id to be int, string, -// `null` or missing (for notifications), value is expected to be cast to -// string for simplicity. Use empty string in case of `null` value. Omit -// entirely if this is a notification. -func RPCJsonrpcRequestID(val string) attribute.KeyValue { - return RPCJsonrpcRequestIDKey.String(val) -} - -// RPCJsonrpcErrorCode returns an attribute KeyValue conforming to the -// "rpc.jsonrpc.error_code" semantic conventions. It represents the -// `error.code` property of response if it is an error response. -func RPCJsonrpcErrorCode(val int) attribute.KeyValue { - return RPCJsonrpcErrorCodeKey.Int(val) -} - -// RPCJsonrpcErrorMessage returns an attribute KeyValue conforming to the -// "rpc.jsonrpc.error_message" semantic conventions. It represents the -// `error.message` property of response if it is an error response. -func RPCJsonrpcErrorMessage(val string) attribute.KeyValue { - return RPCJsonrpcErrorMessageKey.String(val) -} - -// Tech-specific attributes for Connect RPC. -const ( - // RPCConnectRPCErrorCodeKey is the attribute Key conforming to the - // "rpc.connect_rpc.error_code" semantic conventions. It represents the - // [error codes](https://connect.build/docs/protocol/#error-codes) of the - // Connect request. Error codes are always string values. - // - // Type: Enum - // RequirementLevel: ConditionallyRequired (If response is not successful - // and if error code available.) - // Stability: stable - RPCConnectRPCErrorCodeKey = attribute.Key("rpc.connect_rpc.error_code") -) - -var ( - // cancelled - RPCConnectRPCErrorCodeCancelled = RPCConnectRPCErrorCodeKey.String("cancelled") - // unknown - RPCConnectRPCErrorCodeUnknown = RPCConnectRPCErrorCodeKey.String("unknown") - // invalid_argument - RPCConnectRPCErrorCodeInvalidArgument = RPCConnectRPCErrorCodeKey.String("invalid_argument") - // deadline_exceeded - RPCConnectRPCErrorCodeDeadlineExceeded = RPCConnectRPCErrorCodeKey.String("deadline_exceeded") - // not_found - RPCConnectRPCErrorCodeNotFound = RPCConnectRPCErrorCodeKey.String("not_found") - // already_exists - RPCConnectRPCErrorCodeAlreadyExists = RPCConnectRPCErrorCodeKey.String("already_exists") - // permission_denied - RPCConnectRPCErrorCodePermissionDenied = RPCConnectRPCErrorCodeKey.String("permission_denied") - // resource_exhausted - RPCConnectRPCErrorCodeResourceExhausted = RPCConnectRPCErrorCodeKey.String("resource_exhausted") - // failed_precondition - RPCConnectRPCErrorCodeFailedPrecondition = RPCConnectRPCErrorCodeKey.String("failed_precondition") - // aborted - RPCConnectRPCErrorCodeAborted = RPCConnectRPCErrorCodeKey.String("aborted") - // out_of_range - RPCConnectRPCErrorCodeOutOfRange = RPCConnectRPCErrorCodeKey.String("out_of_range") - // unimplemented - RPCConnectRPCErrorCodeUnimplemented = RPCConnectRPCErrorCodeKey.String("unimplemented") - // internal - RPCConnectRPCErrorCodeInternal = RPCConnectRPCErrorCodeKey.String("internal") - // unavailable - RPCConnectRPCErrorCodeUnavailable = RPCConnectRPCErrorCodeKey.String("unavailable") - // data_loss - RPCConnectRPCErrorCodeDataLoss = RPCConnectRPCErrorCodeKey.String("data_loss") - // unauthenticated - RPCConnectRPCErrorCodeUnauthenticated = RPCConnectRPCErrorCodeKey.String("unauthenticated") -) diff --git a/vendor/go.opentelemetry.io/otel/trace/auto.go b/vendor/go.opentelemetry.io/otel/trace/auto.go new file mode 100644 index 00000000..7e291002 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/auto.go @@ -0,0 +1,661 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package trace // import "go.opentelemetry.io/otel/trace" + +import ( + "context" + "encoding/json" + "fmt" + "math" + "os" + "reflect" + "runtime" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + "unicode/utf8" + + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/codes" + semconv "go.opentelemetry.io/otel/semconv/v1.26.0" + "go.opentelemetry.io/otel/trace/embedded" + "go.opentelemetry.io/otel/trace/internal/telemetry" +) + +// newAutoTracerProvider returns an auto-instrumentable [trace.TracerProvider]. +// If an [go.opentelemetry.io/auto.Instrumentation] is configured to instrument +// the process using the returned TracerProvider, all of the telemetry it +// produces will be processed and handled by that Instrumentation. By default, +// if no Instrumentation instruments the TracerProvider it will not generate +// any trace telemetry. +func newAutoTracerProvider() TracerProvider { return tracerProviderInstance } + +var tracerProviderInstance = new(autoTracerProvider) + +type autoTracerProvider struct{ embedded.TracerProvider } + +var _ TracerProvider = autoTracerProvider{} + +func (p autoTracerProvider) Tracer(name string, opts ...TracerOption) Tracer { + cfg := NewTracerConfig(opts...) + return autoTracer{ + name: name, + version: cfg.InstrumentationVersion(), + schemaURL: cfg.SchemaURL(), + } +} + +type autoTracer struct { + embedded.Tracer + + name, schemaURL, version string +} + +var _ Tracer = autoTracer{} + +func (t autoTracer) Start(ctx context.Context, name string, opts ...SpanStartOption) (context.Context, Span) { + var psc SpanContext + sampled := true + span := new(autoSpan) + + // Ask eBPF for sampling decision and span context info. + t.start(ctx, span, &psc, &sampled, &span.spanContext) + + span.sampled.Store(sampled) + + ctx = ContextWithSpan(ctx, span) + + if sampled { + // Only build traces if sampled. + cfg := NewSpanStartConfig(opts...) + span.traces, span.span = t.traces(name, cfg, span.spanContext, psc) + } + + return ctx, span +} + +// Expected to be implemented in eBPF. +// +//go:noinline +func (t *autoTracer) start( + ctx context.Context, + spanPtr *autoSpan, + psc *SpanContext, + sampled *bool, + sc *SpanContext, +) { + start(ctx, spanPtr, psc, sampled, sc) +} + +// start is used for testing. +var start = func(context.Context, *autoSpan, *SpanContext, *bool, *SpanContext) {} + +func (t autoTracer) traces(name string, cfg SpanConfig, sc, psc SpanContext) (*telemetry.Traces, *telemetry.Span) { + span := &telemetry.Span{ + TraceID: telemetry.TraceID(sc.TraceID()), + SpanID: telemetry.SpanID(sc.SpanID()), + Flags: uint32(sc.TraceFlags()), + TraceState: sc.TraceState().String(), + ParentSpanID: telemetry.SpanID(psc.SpanID()), + Name: name, + Kind: spanKind(cfg.SpanKind()), + } + + span.Attrs, span.DroppedAttrs = convCappedAttrs(maxSpan.Attrs, cfg.Attributes()) + + links := cfg.Links() + if limit := maxSpan.Links; limit == 0 { + n := int64(len(links)) + if n > 0 { + span.DroppedLinks = uint32(min(n, math.MaxUint32)) // nolint: gosec // Bounds checked. + } + } else { + if limit > 0 { + n := int64(max(len(links)-limit, 0)) + span.DroppedLinks = uint32(min(n, math.MaxUint32)) // nolint: gosec // Bounds checked. + links = links[n:] + } + span.Links = convLinks(links) + } + + if t := cfg.Timestamp(); !t.IsZero() { + span.StartTime = cfg.Timestamp() + } else { + span.StartTime = time.Now() + } + + return &telemetry.Traces{ + ResourceSpans: []*telemetry.ResourceSpans{ + { + ScopeSpans: []*telemetry.ScopeSpans{ + { + Scope: &telemetry.Scope{ + Name: t.name, + Version: t.version, + }, + Spans: []*telemetry.Span{span}, + SchemaURL: t.schemaURL, + }, + }, + }, + }, + }, span +} + +func spanKind(kind SpanKind) telemetry.SpanKind { + switch kind { + case SpanKindInternal: + return telemetry.SpanKindInternal + case SpanKindServer: + return telemetry.SpanKindServer + case SpanKindClient: + return telemetry.SpanKindClient + case SpanKindProducer: + return telemetry.SpanKindProducer + case SpanKindConsumer: + return telemetry.SpanKindConsumer + } + return telemetry.SpanKind(0) // undefined. +} + +type autoSpan struct { + embedded.Span + + spanContext SpanContext + sampled atomic.Bool + + mu sync.Mutex + traces *telemetry.Traces + span *telemetry.Span +} + +func (s *autoSpan) SpanContext() SpanContext { + if s == nil { + return SpanContext{} + } + // s.spanContext is immutable, do not acquire lock s.mu. + return s.spanContext +} + +func (s *autoSpan) IsRecording() bool { + if s == nil { + return false + } + + return s.sampled.Load() +} + +func (s *autoSpan) SetStatus(c codes.Code, msg string) { + if s == nil || !s.sampled.Load() { + return + } + + s.mu.Lock() + defer s.mu.Unlock() + + if s.span.Status == nil { + s.span.Status = new(telemetry.Status) + } + + s.span.Status.Message = msg + + switch c { + case codes.Unset: + s.span.Status.Code = telemetry.StatusCodeUnset + case codes.Error: + s.span.Status.Code = telemetry.StatusCodeError + case codes.Ok: + s.span.Status.Code = telemetry.StatusCodeOK + } +} + +func (s *autoSpan) SetAttributes(attrs ...attribute.KeyValue) { + if s == nil || !s.sampled.Load() { + return + } + + s.mu.Lock() + defer s.mu.Unlock() + + limit := maxSpan.Attrs + if limit == 0 { + // No attributes allowed. + n := int64(len(attrs)) + if n > 0 { + s.span.DroppedAttrs += uint32(min(n, math.MaxUint32)) // nolint: gosec // Bounds checked. + } + return + } + + m := make(map[string]int) + for i, a := range s.span.Attrs { + m[a.Key] = i + } + + for _, a := range attrs { + val := convAttrValue(a.Value) + if val.Empty() { + s.span.DroppedAttrs++ + continue + } + + if idx, ok := m[string(a.Key)]; ok { + s.span.Attrs[idx] = telemetry.Attr{ + Key: string(a.Key), + Value: val, + } + } else if limit < 0 || len(s.span.Attrs) < limit { + s.span.Attrs = append(s.span.Attrs, telemetry.Attr{ + Key: string(a.Key), + Value: val, + }) + m[string(a.Key)] = len(s.span.Attrs) - 1 + } else { + s.span.DroppedAttrs++ + } + } +} + +// convCappedAttrs converts up to limit attrs into a []telemetry.Attr. The +// number of dropped attributes is also returned. +func convCappedAttrs(limit int, attrs []attribute.KeyValue) ([]telemetry.Attr, uint32) { + n := len(attrs) + if limit == 0 { + var out uint32 + if n > 0 { + out = uint32(min(int64(n), math.MaxUint32)) // nolint: gosec // Bounds checked. + } + return nil, out + } + + if limit < 0 { + // Unlimited. + return convAttrs(attrs), 0 + } + + if n < 0 { + n = 0 + } + + limit = min(n, limit) + return convAttrs(attrs[:limit]), uint32(n - limit) // nolint: gosec // Bounds checked. +} + +func convAttrs(attrs []attribute.KeyValue) []telemetry.Attr { + if len(attrs) == 0 { + // Avoid allocations if not necessary. + return nil + } + + out := make([]telemetry.Attr, 0, len(attrs)) + for _, attr := range attrs { + key := string(attr.Key) + val := convAttrValue(attr.Value) + if val.Empty() { + continue + } + out = append(out, telemetry.Attr{Key: key, Value: val}) + } + return out +} + +func convAttrValue(value attribute.Value) telemetry.Value { + switch value.Type() { + case attribute.BOOL: + return telemetry.BoolValue(value.AsBool()) + case attribute.INT64: + return telemetry.Int64Value(value.AsInt64()) + case attribute.FLOAT64: + return telemetry.Float64Value(value.AsFloat64()) + case attribute.STRING: + v := truncate(maxSpan.AttrValueLen, value.AsString()) + return telemetry.StringValue(v) + case attribute.BOOLSLICE: + slice := value.AsBoolSlice() + out := make([]telemetry.Value, 0, len(slice)) + for _, v := range slice { + out = append(out, telemetry.BoolValue(v)) + } + return telemetry.SliceValue(out...) + case attribute.INT64SLICE: + slice := value.AsInt64Slice() + out := make([]telemetry.Value, 0, len(slice)) + for _, v := range slice { + out = append(out, telemetry.Int64Value(v)) + } + return telemetry.SliceValue(out...) + case attribute.FLOAT64SLICE: + slice := value.AsFloat64Slice() + out := make([]telemetry.Value, 0, len(slice)) + for _, v := range slice { + out = append(out, telemetry.Float64Value(v)) + } + return telemetry.SliceValue(out...) + case attribute.STRINGSLICE: + slice := value.AsStringSlice() + out := make([]telemetry.Value, 0, len(slice)) + for _, v := range slice { + v = truncate(maxSpan.AttrValueLen, v) + out = append(out, telemetry.StringValue(v)) + } + return telemetry.SliceValue(out...) + } + return telemetry.Value{} +} + +// truncate returns a truncated version of s such that it contains less than +// the limit number of characters. Truncation is applied by returning the limit +// number of valid characters contained in s. +// +// If limit is negative, it returns the original string. +// +// UTF-8 is supported. When truncating, all invalid characters are dropped +// before applying truncation. +// +// If s already contains less than the limit number of bytes, it is returned +// unchanged. No invalid characters are removed. +func truncate(limit int, s string) string { + // This prioritize performance in the following order based on the most + // common expected use-cases. + // + // - Short values less than the default limit (128). + // - Strings with valid encodings that exceed the limit. + // - No limit. + // - Strings with invalid encodings that exceed the limit. + if limit < 0 || len(s) <= limit { + return s + } + + // Optimistically, assume all valid UTF-8. + var b strings.Builder + count := 0 + for i, c := range s { + if c != utf8.RuneError { + count++ + if count > limit { + return s[:i] + } + continue + } + + _, size := utf8.DecodeRuneInString(s[i:]) + if size == 1 { + // Invalid encoding. + b.Grow(len(s) - 1) + _, _ = b.WriteString(s[:i]) + s = s[i:] + break + } + } + + // Fast-path, no invalid input. + if b.Cap() == 0 { + return s + } + + // Truncate while validating UTF-8. + for i := 0; i < len(s) && count < limit; { + c := s[i] + if c < utf8.RuneSelf { + // Optimization for single byte runes (common case). + _ = b.WriteByte(c) + i++ + count++ + continue + } + + _, size := utf8.DecodeRuneInString(s[i:]) + if size == 1 { + // We checked for all 1-byte runes above, this is a RuneError. + i++ + continue + } + + _, _ = b.WriteString(s[i : i+size]) + i += size + count++ + } + + return b.String() +} + +func (s *autoSpan) End(opts ...SpanEndOption) { + if s == nil || !s.sampled.Swap(false) { + return + } + + // s.end exists so the lock (s.mu) is not held while s.ended is called. + s.ended(s.end(opts)) +} + +func (s *autoSpan) end(opts []SpanEndOption) []byte { + s.mu.Lock() + defer s.mu.Unlock() + + cfg := NewSpanEndConfig(opts...) + if t := cfg.Timestamp(); !t.IsZero() { + s.span.EndTime = cfg.Timestamp() + } else { + s.span.EndTime = time.Now() + } + + b, _ := json.Marshal(s.traces) // TODO: do not ignore this error. + return b +} + +// Expected to be implemented in eBPF. +// +//go:noinline +func (*autoSpan) ended(buf []byte) { ended(buf) } + +// ended is used for testing. +var ended = func([]byte) {} + +func (s *autoSpan) RecordError(err error, opts ...EventOption) { + if s == nil || err == nil || !s.sampled.Load() { + return + } + + cfg := NewEventConfig(opts...) + + attrs := cfg.Attributes() + attrs = append(attrs, + semconv.ExceptionType(typeStr(err)), + semconv.ExceptionMessage(err.Error()), + ) + if cfg.StackTrace() { + buf := make([]byte, 2048) + n := runtime.Stack(buf, false) + attrs = append(attrs, semconv.ExceptionStacktrace(string(buf[0:n]))) + } + + s.mu.Lock() + defer s.mu.Unlock() + + s.addEvent(semconv.ExceptionEventName, cfg.Timestamp(), attrs) +} + +func typeStr(i any) string { + t := reflect.TypeOf(i) + if t.PkgPath() == "" && t.Name() == "" { + // Likely a builtin type. + return t.String() + } + return fmt.Sprintf("%s.%s", t.PkgPath(), t.Name()) +} + +func (s *autoSpan) AddEvent(name string, opts ...EventOption) { + if s == nil || !s.sampled.Load() { + return + } + + cfg := NewEventConfig(opts...) + + s.mu.Lock() + defer s.mu.Unlock() + + s.addEvent(name, cfg.Timestamp(), cfg.Attributes()) +} + +// addEvent adds an event with name and attrs at tStamp to the span. The span +// lock (s.mu) needs to be held by the caller. +func (s *autoSpan) addEvent(name string, tStamp time.Time, attrs []attribute.KeyValue) { + limit := maxSpan.Events + + if limit == 0 { + s.span.DroppedEvents++ + return + } + + if limit > 0 && len(s.span.Events) == limit { + // Drop head while avoiding allocation of more capacity. + copy(s.span.Events[:limit-1], s.span.Events[1:]) + s.span.Events = s.span.Events[:limit-1] + s.span.DroppedEvents++ + } + + e := &telemetry.SpanEvent{Time: tStamp, Name: name} + e.Attrs, e.DroppedAttrs = convCappedAttrs(maxSpan.EventAttrs, attrs) + + s.span.Events = append(s.span.Events, e) +} + +func (s *autoSpan) AddLink(link Link) { + if s == nil || !s.sampled.Load() { + return + } + + l := maxSpan.Links + + s.mu.Lock() + defer s.mu.Unlock() + + if l == 0 { + s.span.DroppedLinks++ + return + } + + if l > 0 && len(s.span.Links) == l { + // Drop head while avoiding allocation of more capacity. + copy(s.span.Links[:l-1], s.span.Links[1:]) + s.span.Links = s.span.Links[:l-1] + s.span.DroppedLinks++ + } + + s.span.Links = append(s.span.Links, convLink(link)) +} + +func convLinks(links []Link) []*telemetry.SpanLink { + out := make([]*telemetry.SpanLink, 0, len(links)) + for _, link := range links { + out = append(out, convLink(link)) + } + return out +} + +func convLink(link Link) *telemetry.SpanLink { + l := &telemetry.SpanLink{ + TraceID: telemetry.TraceID(link.SpanContext.TraceID()), + SpanID: telemetry.SpanID(link.SpanContext.SpanID()), + TraceState: link.SpanContext.TraceState().String(), + Flags: uint32(link.SpanContext.TraceFlags()), + } + l.Attrs, l.DroppedAttrs = convCappedAttrs(maxSpan.LinkAttrs, link.Attributes) + + return l +} + +func (s *autoSpan) SetName(name string) { + if s == nil || !s.sampled.Load() { + return + } + + s.mu.Lock() + defer s.mu.Unlock() + + s.span.Name = name +} + +func (*autoSpan) TracerProvider() TracerProvider { return newAutoTracerProvider() } + +// maxSpan are the span limits resolved during startup. +var maxSpan = newSpanLimits() + +type spanLimits struct { + // Attrs is the number of allowed attributes for a span. + // + // This is resolved from the environment variable value for the + // OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT key if it exists. Otherwise, the + // environment variable value for OTEL_ATTRIBUTE_COUNT_LIMIT, or 128 if + // that is not set, is used. + Attrs int + // AttrValueLen is the maximum attribute value length allowed for a span. + // + // This is resolved from the environment variable value for the + // OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT key if it exists. Otherwise, the + // environment variable value for OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT, or -1 + // if that is not set, is used. + AttrValueLen int + // Events is the number of allowed events for a span. + // + // This is resolved from the environment variable value for the + // OTEL_SPAN_EVENT_COUNT_LIMIT key, or 128 is used if that is not set. + Events int + // EventAttrs is the number of allowed attributes for a span event. + // + // The is resolved from the environment variable value for the + // OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT key, or 128 is used if that is not set. + EventAttrs int + // Links is the number of allowed Links for a span. + // + // This is resolved from the environment variable value for the + // OTEL_SPAN_LINK_COUNT_LIMIT, or 128 is used if that is not set. + Links int + // LinkAttrs is the number of allowed attributes for a span link. + // + // This is resolved from the environment variable value for the + // OTEL_LINK_ATTRIBUTE_COUNT_LIMIT, or 128 is used if that is not set. + LinkAttrs int +} + +func newSpanLimits() spanLimits { + return spanLimits{ + Attrs: firstEnv( + 128, + "OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT", + "OTEL_ATTRIBUTE_COUNT_LIMIT", + ), + AttrValueLen: firstEnv( + -1, // Unlimited. + "OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT", + "OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT", + ), + Events: firstEnv(128, "OTEL_SPAN_EVENT_COUNT_LIMIT"), + EventAttrs: firstEnv(128, "OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT"), + Links: firstEnv(128, "OTEL_SPAN_LINK_COUNT_LIMIT"), + LinkAttrs: firstEnv(128, "OTEL_LINK_ATTRIBUTE_COUNT_LIMIT"), + } +} + +// firstEnv returns the parsed integer value of the first matching environment +// variable from keys. The defaultVal is returned if the value is not an +// integer or no match is found. +func firstEnv(defaultVal int, keys ...string) int { + for _, key := range keys { + strV := os.Getenv(key) + if strV == "" { + continue + } + + v, err := strconv.Atoi(strV) + if err == nil { + return v + } + // Ignore invalid environment variable. + } + + return defaultVal +} diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/attr.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/attr.go new file mode 100644 index 00000000..f663547b --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/attr.go @@ -0,0 +1,58 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" + +// Attr is a key-value pair. +type Attr struct { + Key string `json:"key,omitempty"` + Value Value `json:"value,omitempty"` +} + +// String returns an Attr for a string value. +func String(key, value string) Attr { + return Attr{key, StringValue(value)} +} + +// Int64 returns an Attr for an int64 value. +func Int64(key string, value int64) Attr { + return Attr{key, Int64Value(value)} +} + +// Int returns an Attr for an int value. +func Int(key string, value int) Attr { + return Int64(key, int64(value)) +} + +// Float64 returns an Attr for a float64 value. +func Float64(key string, value float64) Attr { + return Attr{key, Float64Value(value)} +} + +// Bool returns an Attr for a bool value. +func Bool(key string, value bool) Attr { + return Attr{key, BoolValue(value)} +} + +// Bytes returns an Attr for a []byte value. +// The passed slice must not be changed after it is passed. +func Bytes(key string, value []byte) Attr { + return Attr{key, BytesValue(value)} +} + +// Slice returns an Attr for a []Value value. +// The passed slice must not be changed after it is passed. +func Slice(key string, value ...Value) Attr { + return Attr{key, SliceValue(value...)} +} + +// Map returns an Attr for a map value. +// The passed slice must not be changed after it is passed. +func Map(key string, value ...Attr) Attr { + return Attr{key, MapValue(value...)} +} + +// Equal returns if a is equal to b. +func (a Attr) Equal(b Attr) bool { + return a.Key == b.Key && a.Value.Equal(b.Value) +} diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/doc.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/doc.go new file mode 100644 index 00000000..5debe90b --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/doc.go @@ -0,0 +1,8 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +/* +Package telemetry provides a lightweight representations of OpenTelemetry +telemetry that is compatible with the OTLP JSON protobuf encoding. +*/ +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/id.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/id.go new file mode 100644 index 00000000..7b1ae3c4 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/id.go @@ -0,0 +1,103 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" + +import ( + "encoding/hex" + "errors" + "fmt" +) + +const ( + traceIDSize = 16 + spanIDSize = 8 +) + +// TraceID is a custom data type that is used for all trace IDs. +type TraceID [traceIDSize]byte + +// String returns the hex string representation form of a TraceID. +func (tid TraceID) String() string { + return hex.EncodeToString(tid[:]) +} + +// IsEmpty returns false if id contains at least one non-zero byte. +func (tid TraceID) IsEmpty() bool { + return tid == [traceIDSize]byte{} +} + +// MarshalJSON converts the trace ID into a hex string enclosed in quotes. +func (tid TraceID) MarshalJSON() ([]byte, error) { + if tid.IsEmpty() { + return []byte(`""`), nil + } + return marshalJSON(tid[:]) +} + +// UnmarshalJSON inflates the trace ID from hex string, possibly enclosed in +// quotes. +func (tid *TraceID) UnmarshalJSON(data []byte) error { + *tid = [traceIDSize]byte{} + return unmarshalJSON(tid[:], data) +} + +// SpanID is a custom data type that is used for all span IDs. +type SpanID [spanIDSize]byte + +// String returns the hex string representation form of a SpanID. +func (sid SpanID) String() string { + return hex.EncodeToString(sid[:]) +} + +// IsEmpty returns true if the span ID contains at least one non-zero byte. +func (sid SpanID) IsEmpty() bool { + return sid == [spanIDSize]byte{} +} + +// MarshalJSON converts span ID into a hex string enclosed in quotes. +func (sid SpanID) MarshalJSON() ([]byte, error) { + if sid.IsEmpty() { + return []byte(`""`), nil + } + return marshalJSON(sid[:]) +} + +// UnmarshalJSON decodes span ID from hex string, possibly enclosed in quotes. +func (sid *SpanID) UnmarshalJSON(data []byte) error { + *sid = [spanIDSize]byte{} + return unmarshalJSON(sid[:], data) +} + +// marshalJSON converts id into a hex string enclosed in quotes. +func marshalJSON(id []byte) ([]byte, error) { + // Plus 2 quote chars at the start and end. + hexLen := hex.EncodedLen(len(id)) + 2 + + b := make([]byte, hexLen) + hex.Encode(b[1:hexLen-1], id) + b[0], b[hexLen-1] = '"', '"' + + return b, nil +} + +// unmarshalJSON inflates trace id from hex string, possibly enclosed in quotes. +func unmarshalJSON(dst []byte, src []byte) error { + if l := len(src); l >= 2 && src[0] == '"' && src[l-1] == '"' { + src = src[1 : l-1] + } + nLen := len(src) + if nLen == 0 { + return nil + } + + if len(dst) != hex.DecodedLen(nLen) { + return errors.New("invalid length for ID") + } + + _, err := hex.Decode(dst, src) + if err != nil { + return fmt.Errorf("cannot unmarshal ID from string '%s': %w", string(src), err) + } + return nil +} diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/number.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/number.go new file mode 100644 index 00000000..f5e3a8ce --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/number.go @@ -0,0 +1,67 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" + +import ( + "encoding/json" + "strconv" +) + +// protoInt64 represents the protobuf encoding of integers which can be either +// strings or integers. +type protoInt64 int64 + +// Int64 returns the protoInt64 as an int64. +func (i *protoInt64) Int64() int64 { return int64(*i) } + +// UnmarshalJSON decodes both strings and integers. +func (i *protoInt64) UnmarshalJSON(data []byte) error { + if data[0] == '"' { + var str string + if err := json.Unmarshal(data, &str); err != nil { + return err + } + parsedInt, err := strconv.ParseInt(str, 10, 64) + if err != nil { + return err + } + *i = protoInt64(parsedInt) + } else { + var parsedInt int64 + if err := json.Unmarshal(data, &parsedInt); err != nil { + return err + } + *i = protoInt64(parsedInt) + } + return nil +} + +// protoUint64 represents the protobuf encoding of integers which can be either +// strings or integers. +type protoUint64 uint64 + +// Int64 returns the protoUint64 as a uint64. +func (i *protoUint64) Uint64() uint64 { return uint64(*i) } + +// UnmarshalJSON decodes both strings and integers. +func (i *protoUint64) UnmarshalJSON(data []byte) error { + if data[0] == '"' { + var str string + if err := json.Unmarshal(data, &str); err != nil { + return err + } + parsedUint, err := strconv.ParseUint(str, 10, 64) + if err != nil { + return err + } + *i = protoUint64(parsedUint) + } else { + var parsedUint uint64 + if err := json.Unmarshal(data, &parsedUint); err != nil { + return err + } + *i = protoUint64(parsedUint) + } + return nil +} diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/resource.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/resource.go new file mode 100644 index 00000000..1798a702 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/resource.go @@ -0,0 +1,66 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io" +) + +// Resource information. +type Resource struct { + // Attrs are the set of attributes that describe the resource. Attribute + // keys MUST be unique (it is not allowed to have more than one attribute + // with the same key). + Attrs []Attr `json:"attributes,omitempty"` + // DroppedAttrs is the number of dropped attributes. If the value + // is 0, then no attributes were dropped. + DroppedAttrs uint32 `json:"droppedAttributesCount,omitempty"` +} + +// UnmarshalJSON decodes the OTLP formatted JSON contained in data into r. +func (r *Resource) UnmarshalJSON(data []byte) error { + decoder := json.NewDecoder(bytes.NewReader(data)) + + t, err := decoder.Token() + if err != nil { + return err + } + if t != json.Delim('{') { + return errors.New("invalid Resource type") + } + + for decoder.More() { + keyIface, err := decoder.Token() + if err != nil { + if errors.Is(err, io.EOF) { + // Empty. + return nil + } + return err + } + + key, ok := keyIface.(string) + if !ok { + return fmt.Errorf("invalid Resource field: %#v", keyIface) + } + + switch key { + case "attributes": + err = decoder.Decode(&r.Attrs) + case "droppedAttributesCount", "dropped_attributes_count": + err = decoder.Decode(&r.DroppedAttrs) + default: + // Skip unknown. + } + + if err != nil { + return err + } + } + return nil +} diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/scope.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/scope.go new file mode 100644 index 00000000..c2b4c635 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/scope.go @@ -0,0 +1,67 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io" +) + +// Scope is the identifying values of the instrumentation scope. +type Scope struct { + Name string `json:"name,omitempty"` + Version string `json:"version,omitempty"` + Attrs []Attr `json:"attributes,omitempty"` + DroppedAttrs uint32 `json:"droppedAttributesCount,omitempty"` +} + +// UnmarshalJSON decodes the OTLP formatted JSON contained in data into r. +func (s *Scope) UnmarshalJSON(data []byte) error { + decoder := json.NewDecoder(bytes.NewReader(data)) + + t, err := decoder.Token() + if err != nil { + return err + } + if t != json.Delim('{') { + return errors.New("invalid Scope type") + } + + for decoder.More() { + keyIface, err := decoder.Token() + if err != nil { + if errors.Is(err, io.EOF) { + // Empty. + return nil + } + return err + } + + key, ok := keyIface.(string) + if !ok { + return fmt.Errorf("invalid Scope field: %#v", keyIface) + } + + switch key { + case "name": + err = decoder.Decode(&s.Name) + case "version": + err = decoder.Decode(&s.Version) + case "attributes": + err = decoder.Decode(&s.Attrs) + case "droppedAttributesCount", "dropped_attributes_count": + err = decoder.Decode(&s.DroppedAttrs) + default: + // Skip unknown. + } + + if err != nil { + return err + } + } + return nil +} diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/span.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/span.go new file mode 100644 index 00000000..3c5e1cdb --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/span.go @@ -0,0 +1,460 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" + +import ( + "bytes" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "io" + "math" + "time" +) + +// A Span represents a single operation performed by a single component of the +// system. +type Span struct { + // A unique identifier for a trace. All spans from the same trace share + // the same `trace_id`. The ID is a 16-byte array. An ID with all zeroes OR + // of length other than 16 bytes is considered invalid (empty string in OTLP/JSON + // is zero-length and thus is also invalid). + // + // This field is required. + TraceID TraceID `json:"traceId,omitempty"` + // A unique identifier for a span within a trace, assigned when the span + // is created. The ID is an 8-byte array. An ID with all zeroes OR of length + // other than 8 bytes is considered invalid (empty string in OTLP/JSON + // is zero-length and thus is also invalid). + // + // This field is required. + SpanID SpanID `json:"spanId,omitempty"` + // trace_state conveys information about request position in multiple distributed tracing graphs. + // It is a trace_state in w3c-trace-context format: https://www.w3.org/TR/trace-context/#tracestate-header + // See also https://github.com/w3c/distributed-tracing for more details about this field. + TraceState string `json:"traceState,omitempty"` + // The `span_id` of this span's parent span. If this is a root span, then this + // field must be empty. The ID is an 8-byte array. + ParentSpanID SpanID `json:"parentSpanId,omitempty"` + // Flags, a bit field. + // + // Bits 0-7 (8 least significant bits) are the trace flags as defined in W3C Trace + // Context specification. To read the 8-bit W3C trace flag, use + // `flags & SPAN_FLAGS_TRACE_FLAGS_MASK`. + // + // See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions. + // + // Bits 8 and 9 represent the 3 states of whether a span's parent + // is remote. The states are (unknown, is not remote, is remote). + // To read whether the value is known, use `(flags & SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK) != 0`. + // To read whether the span is remote, use `(flags & SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK) != 0`. + // + // When creating span messages, if the message is logically forwarded from another source + // with an equivalent flags fields (i.e., usually another OTLP span message), the field SHOULD + // be copied as-is. If creating from a source that does not have an equivalent flags field + // (such as a runtime representation of an OpenTelemetry span), the high 22 bits MUST + // be set to zero. + // Readers MUST NOT assume that bits 10-31 (22 most significant bits) will be zero. + // + // [Optional]. + Flags uint32 `json:"flags,omitempty"` + // A description of the span's operation. + // + // For example, the name can be a qualified method name or a file name + // and a line number where the operation is called. A best practice is to use + // the same display name at the same call point in an application. + // This makes it easier to correlate spans in different traces. + // + // This field is semantically required to be set to non-empty string. + // Empty value is equivalent to an unknown span name. + // + // This field is required. + Name string `json:"name"` + // Distinguishes between spans generated in a particular context. For example, + // two spans with the same name may be distinguished using `CLIENT` (caller) + // and `SERVER` (callee) to identify queueing latency associated with the span. + Kind SpanKind `json:"kind,omitempty"` + // start_time_unix_nano is the start time of the span. On the client side, this is the time + // kept by the local machine where the span execution starts. On the server side, this + // is the time when the server's application handler starts running. + // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970. + // + // This field is semantically required and it is expected that end_time >= start_time. + StartTime time.Time `json:"startTimeUnixNano,omitempty"` + // end_time_unix_nano is the end time of the span. On the client side, this is the time + // kept by the local machine where the span execution ends. On the server side, this + // is the time when the server application handler stops running. + // Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970. + // + // This field is semantically required and it is expected that end_time >= start_time. + EndTime time.Time `json:"endTimeUnixNano,omitempty"` + // attributes is a collection of key/value pairs. Note, global attributes + // like server name can be set using the resource API. Examples of attributes: + // + // "/http/user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" + // "/http/server_latency": 300 + // "example.com/myattribute": true + // "example.com/score": 10.239 + // + // The OpenTelemetry API specification further restricts the allowed value types: + // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/common/README.md#attribute + // Attribute keys MUST be unique (it is not allowed to have more than one + // attribute with the same key). + Attrs []Attr `json:"attributes,omitempty"` + // dropped_attributes_count is the number of attributes that were discarded. Attributes + // can be discarded because their keys are too long or because there are too many + // attributes. If this value is 0, then no attributes were dropped. + DroppedAttrs uint32 `json:"droppedAttributesCount,omitempty"` + // events is a collection of Event items. + Events []*SpanEvent `json:"events,omitempty"` + // dropped_events_count is the number of dropped events. If the value is 0, then no + // events were dropped. + DroppedEvents uint32 `json:"droppedEventsCount,omitempty"` + // links is a collection of Links, which are references from this span to a span + // in the same or different trace. + Links []*SpanLink `json:"links,omitempty"` + // dropped_links_count is the number of dropped links after the maximum size was + // enforced. If this value is 0, then no links were dropped. + DroppedLinks uint32 `json:"droppedLinksCount,omitempty"` + // An optional final status for this span. Semantically when Status isn't set, it means + // span's status code is unset, i.e. assume STATUS_CODE_UNSET (code = 0). + Status *Status `json:"status,omitempty"` +} + +// MarshalJSON encodes s into OTLP formatted JSON. +func (s Span) MarshalJSON() ([]byte, error) { + startT := s.StartTime.UnixNano() + if s.StartTime.IsZero() || startT < 0 { + startT = 0 + } + + endT := s.EndTime.UnixNano() + if s.EndTime.IsZero() || endT < 0 { + endT = 0 + } + + // Override non-empty default SpanID marshal and omitempty. + var parentSpanId string + if !s.ParentSpanID.IsEmpty() { + b := make([]byte, hex.EncodedLen(spanIDSize)) + hex.Encode(b, s.ParentSpanID[:]) + parentSpanId = string(b) + } + + type Alias Span + return json.Marshal(struct { + Alias + ParentSpanID string `json:"parentSpanId,omitempty"` + StartTime uint64 `json:"startTimeUnixNano,omitempty"` + EndTime uint64 `json:"endTimeUnixNano,omitempty"` + }{ + Alias: Alias(s), + ParentSpanID: parentSpanId, + StartTime: uint64(startT), // nolint:gosec // >0 checked above. + EndTime: uint64(endT), // nolint:gosec // >0 checked above. + }) +} + +// UnmarshalJSON decodes the OTLP formatted JSON contained in data into s. +func (s *Span) UnmarshalJSON(data []byte) error { + decoder := json.NewDecoder(bytes.NewReader(data)) + + t, err := decoder.Token() + if err != nil { + return err + } + if t != json.Delim('{') { + return errors.New("invalid Span type") + } + + for decoder.More() { + keyIface, err := decoder.Token() + if err != nil { + if errors.Is(err, io.EOF) { + // Empty. + return nil + } + return err + } + + key, ok := keyIface.(string) + if !ok { + return fmt.Errorf("invalid Span field: %#v", keyIface) + } + + switch key { + case "traceId", "trace_id": + err = decoder.Decode(&s.TraceID) + case "spanId", "span_id": + err = decoder.Decode(&s.SpanID) + case "traceState", "trace_state": + err = decoder.Decode(&s.TraceState) + case "parentSpanId", "parent_span_id": + err = decoder.Decode(&s.ParentSpanID) + case "flags": + err = decoder.Decode(&s.Flags) + case "name": + err = decoder.Decode(&s.Name) + case "kind": + err = decoder.Decode(&s.Kind) + case "startTimeUnixNano", "start_time_unix_nano": + var val protoUint64 + err = decoder.Decode(&val) + v := int64(min(val.Uint64(), math.MaxInt64)) // nolint: gosec // Overflow checked. + s.StartTime = time.Unix(0, v) + case "endTimeUnixNano", "end_time_unix_nano": + var val protoUint64 + err = decoder.Decode(&val) + v := int64(min(val.Uint64(), math.MaxInt64)) // nolint: gosec // Overflow checked. + s.EndTime = time.Unix(0, v) + case "attributes": + err = decoder.Decode(&s.Attrs) + case "droppedAttributesCount", "dropped_attributes_count": + err = decoder.Decode(&s.DroppedAttrs) + case "events": + err = decoder.Decode(&s.Events) + case "droppedEventsCount", "dropped_events_count": + err = decoder.Decode(&s.DroppedEvents) + case "links": + err = decoder.Decode(&s.Links) + case "droppedLinksCount", "dropped_links_count": + err = decoder.Decode(&s.DroppedLinks) + case "status": + err = decoder.Decode(&s.Status) + default: + // Skip unknown. + } + + if err != nil { + return err + } + } + return nil +} + +// SpanFlags represents constants used to interpret the +// Span.flags field, which is protobuf 'fixed32' type and is to +// be used as bit-fields. Each non-zero value defined in this enum is +// a bit-mask. To extract the bit-field, for example, use an +// expression like: +// +// (span.flags & SPAN_FLAGS_TRACE_FLAGS_MASK) +// +// See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions. +// +// Note that Span flags were introduced in version 1.1 of the +// OpenTelemetry protocol. Older Span producers do not set this +// field, consequently consumers should not rely on the absence of a +// particular flag bit to indicate the presence of a particular feature. +type SpanFlags int32 + +const ( + // Bits 0-7 are used for trace flags. + SpanFlagsTraceFlagsMask SpanFlags = 255 + // Bits 8 and 9 are used to indicate that the parent span or link span is remote. + // Bit 8 (`HAS_IS_REMOTE`) indicates whether the value is known. + // Bit 9 (`IS_REMOTE`) indicates whether the span or link is remote. + SpanFlagsContextHasIsRemoteMask SpanFlags = 256 + // SpanFlagsContextHasIsRemoteMask indicates the Span is remote. + SpanFlagsContextIsRemoteMask SpanFlags = 512 +) + +// SpanKind is the type of span. Can be used to specify additional relationships between spans +// in addition to a parent/child relationship. +type SpanKind int32 + +const ( + // Indicates that the span represents an internal operation within an application, + // as opposed to an operation happening at the boundaries. Default value. + SpanKindInternal SpanKind = 1 + // Indicates that the span covers server-side handling of an RPC or other + // remote network request. + SpanKindServer SpanKind = 2 + // Indicates that the span describes a request to some remote service. + SpanKindClient SpanKind = 3 + // Indicates that the span describes a producer sending a message to a broker. + // Unlike CLIENT and SERVER, there is often no direct critical path latency relationship + // between producer and consumer spans. A PRODUCER span ends when the message was accepted + // by the broker while the logical processing of the message might span a much longer time. + SpanKindProducer SpanKind = 4 + // Indicates that the span describes consumer receiving a message from a broker. + // Like the PRODUCER kind, there is often no direct critical path latency relationship + // between producer and consumer spans. + SpanKindConsumer SpanKind = 5 +) + +// Event is a time-stamped annotation of the span, consisting of user-supplied +// text description and key-value pairs. +type SpanEvent struct { + // time_unix_nano is the time the event occurred. + Time time.Time `json:"timeUnixNano,omitempty"` + // name of the event. + // This field is semantically required to be set to non-empty string. + Name string `json:"name,omitempty"` + // attributes is a collection of attribute key/value pairs on the event. + // Attribute keys MUST be unique (it is not allowed to have more than one + // attribute with the same key). + Attrs []Attr `json:"attributes,omitempty"` + // dropped_attributes_count is the number of dropped attributes. If the value is 0, + // then no attributes were dropped. + DroppedAttrs uint32 `json:"droppedAttributesCount,omitempty"` +} + +// MarshalJSON encodes e into OTLP formatted JSON. +func (e SpanEvent) MarshalJSON() ([]byte, error) { + t := e.Time.UnixNano() + if e.Time.IsZero() || t < 0 { + t = 0 + } + + type Alias SpanEvent + return json.Marshal(struct { + Alias + Time uint64 `json:"timeUnixNano,omitempty"` + }{ + Alias: Alias(e), + Time: uint64(t), // nolint: gosec // >0 checked above + }) +} + +// UnmarshalJSON decodes the OTLP formatted JSON contained in data into se. +func (se *SpanEvent) UnmarshalJSON(data []byte) error { + decoder := json.NewDecoder(bytes.NewReader(data)) + + t, err := decoder.Token() + if err != nil { + return err + } + if t != json.Delim('{') { + return errors.New("invalid SpanEvent type") + } + + for decoder.More() { + keyIface, err := decoder.Token() + if err != nil { + if errors.Is(err, io.EOF) { + // Empty. + return nil + } + return err + } + + key, ok := keyIface.(string) + if !ok { + return fmt.Errorf("invalid SpanEvent field: %#v", keyIface) + } + + switch key { + case "timeUnixNano", "time_unix_nano": + var val protoUint64 + err = decoder.Decode(&val) + v := int64(min(val.Uint64(), math.MaxInt64)) // nolint: gosec // Overflow checked. + se.Time = time.Unix(0, v) + case "name": + err = decoder.Decode(&se.Name) + case "attributes": + err = decoder.Decode(&se.Attrs) + case "droppedAttributesCount", "dropped_attributes_count": + err = decoder.Decode(&se.DroppedAttrs) + default: + // Skip unknown. + } + + if err != nil { + return err + } + } + return nil +} + +// A pointer from the current span to another span in the same trace or in a +// different trace. For example, this can be used in batching operations, +// where a single batch handler processes multiple requests from different +// traces or when the handler receives a request from a different project. +type SpanLink struct { + // A unique identifier of a trace that this linked span is part of. The ID is a + // 16-byte array. + TraceID TraceID `json:"traceId,omitempty"` + // A unique identifier for the linked span. The ID is an 8-byte array. + SpanID SpanID `json:"spanId,omitempty"` + // The trace_state associated with the link. + TraceState string `json:"traceState,omitempty"` + // attributes is a collection of attribute key/value pairs on the link. + // Attribute keys MUST be unique (it is not allowed to have more than one + // attribute with the same key). + Attrs []Attr `json:"attributes,omitempty"` + // dropped_attributes_count is the number of dropped attributes. If the value is 0, + // then no attributes were dropped. + DroppedAttrs uint32 `json:"droppedAttributesCount,omitempty"` + // Flags, a bit field. + // + // Bits 0-7 (8 least significant bits) are the trace flags as defined in W3C Trace + // Context specification. To read the 8-bit W3C trace flag, use + // `flags & SPAN_FLAGS_TRACE_FLAGS_MASK`. + // + // See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions. + // + // Bits 8 and 9 represent the 3 states of whether the link is remote. + // The states are (unknown, is not remote, is remote). + // To read whether the value is known, use `(flags & SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK) != 0`. + // To read whether the link is remote, use `(flags & SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK) != 0`. + // + // Readers MUST NOT assume that bits 10-31 (22 most significant bits) will be zero. + // When creating new spans, bits 10-31 (most-significant 22-bits) MUST be zero. + // + // [Optional]. + Flags uint32 `json:"flags,omitempty"` +} + +// UnmarshalJSON decodes the OTLP formatted JSON contained in data into sl. +func (sl *SpanLink) UnmarshalJSON(data []byte) error { + decoder := json.NewDecoder(bytes.NewReader(data)) + + t, err := decoder.Token() + if err != nil { + return err + } + if t != json.Delim('{') { + return errors.New("invalid SpanLink type") + } + + for decoder.More() { + keyIface, err := decoder.Token() + if err != nil { + if errors.Is(err, io.EOF) { + // Empty. + return nil + } + return err + } + + key, ok := keyIface.(string) + if !ok { + return fmt.Errorf("invalid SpanLink field: %#v", keyIface) + } + + switch key { + case "traceId", "trace_id": + err = decoder.Decode(&sl.TraceID) + case "spanId", "span_id": + err = decoder.Decode(&sl.SpanID) + case "traceState", "trace_state": + err = decoder.Decode(&sl.TraceState) + case "attributes": + err = decoder.Decode(&sl.Attrs) + case "droppedAttributesCount", "dropped_attributes_count": + err = decoder.Decode(&sl.DroppedAttrs) + case "flags": + err = decoder.Decode(&sl.Flags) + default: + // Skip unknown. + } + + if err != nil { + return err + } + } + return nil +} diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/status.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/status.go new file mode 100644 index 00000000..1d013a8f --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/status.go @@ -0,0 +1,40 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" + +// For the semantics of status codes see +// https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/api.md#set-status +type StatusCode int32 + +const ( + // The default status. + StatusCodeUnset StatusCode = 0 + // The Span has been validated by an Application developer or Operator to + // have completed successfully. + StatusCodeOK StatusCode = 1 + // The Span contains an error. + StatusCodeError StatusCode = 2 +) + +var statusCodeStrings = []string{ + "Unset", + "OK", + "Error", +} + +func (s StatusCode) String() string { + if s >= 0 && int(s) < len(statusCodeStrings) { + return statusCodeStrings[s] + } + return "" +} + +// The Status type defines a logical error model that is suitable for different +// programming environments, including REST APIs and RPC APIs. +type Status struct { + // A developer-facing human readable error message. + Message string `json:"message,omitempty"` + // The status code. + Code StatusCode `json:"code,omitempty"` +} diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/traces.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/traces.go new file mode 100644 index 00000000..b0394070 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/traces.go @@ -0,0 +1,189 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io" +) + +// Traces represents the traces data that can be stored in a persistent storage, +// OR can be embedded by other protocols that transfer OTLP traces data but do +// not implement the OTLP protocol. +// +// The main difference between this message and collector protocol is that +// in this message there will not be any "control" or "metadata" specific to +// OTLP protocol. +// +// When new fields are added into this message, the OTLP request MUST be updated +// as well. +type Traces struct { + // An array of ResourceSpans. + // For data coming from a single resource this array will typically contain + // one element. Intermediary nodes that receive data from multiple origins + // typically batch the data before forwarding further and in that case this + // array will contain multiple elements. + ResourceSpans []*ResourceSpans `json:"resourceSpans,omitempty"` +} + +// UnmarshalJSON decodes the OTLP formatted JSON contained in data into td. +func (td *Traces) UnmarshalJSON(data []byte) error { + decoder := json.NewDecoder(bytes.NewReader(data)) + + t, err := decoder.Token() + if err != nil { + return err + } + if t != json.Delim('{') { + return errors.New("invalid TracesData type") + } + + for decoder.More() { + keyIface, err := decoder.Token() + if err != nil { + if errors.Is(err, io.EOF) { + // Empty. + return nil + } + return err + } + + key, ok := keyIface.(string) + if !ok { + return fmt.Errorf("invalid TracesData field: %#v", keyIface) + } + + switch key { + case "resourceSpans", "resource_spans": + err = decoder.Decode(&td.ResourceSpans) + default: + // Skip unknown. + } + + if err != nil { + return err + } + } + return nil +} + +// A collection of ScopeSpans from a Resource. +type ResourceSpans struct { + // The resource for the spans in this message. + // If this field is not set then no resource info is known. + Resource Resource `json:"resource"` + // A list of ScopeSpans that originate from a resource. + ScopeSpans []*ScopeSpans `json:"scopeSpans,omitempty"` + // This schema_url applies to the data in the "resource" field. It does not apply + // to the data in the "scope_spans" field which have their own schema_url field. + SchemaURL string `json:"schemaUrl,omitempty"` +} + +// UnmarshalJSON decodes the OTLP formatted JSON contained in data into rs. +func (rs *ResourceSpans) UnmarshalJSON(data []byte) error { + decoder := json.NewDecoder(bytes.NewReader(data)) + + t, err := decoder.Token() + if err != nil { + return err + } + if t != json.Delim('{') { + return errors.New("invalid ResourceSpans type") + } + + for decoder.More() { + keyIface, err := decoder.Token() + if err != nil { + if errors.Is(err, io.EOF) { + // Empty. + return nil + } + return err + } + + key, ok := keyIface.(string) + if !ok { + return fmt.Errorf("invalid ResourceSpans field: %#v", keyIface) + } + + switch key { + case "resource": + err = decoder.Decode(&rs.Resource) + case "scopeSpans", "scope_spans": + err = decoder.Decode(&rs.ScopeSpans) + case "schemaUrl", "schema_url": + err = decoder.Decode(&rs.SchemaURL) + default: + // Skip unknown. + } + + if err != nil { + return err + } + } + return nil +} + +// A collection of Spans produced by an InstrumentationScope. +type ScopeSpans struct { + // The instrumentation scope information for the spans in this message. + // Semantically when InstrumentationScope isn't set, it is equivalent with + // an empty instrumentation scope name (unknown). + Scope *Scope `json:"scope"` + // A list of Spans that originate from an instrumentation scope. + Spans []*Span `json:"spans,omitempty"` + // The Schema URL, if known. This is the identifier of the Schema that the span data + // is recorded in. To learn more about Schema URL see + // https://opentelemetry.io/docs/specs/otel/schemas/#schema-url + // This schema_url applies to all spans and span events in the "spans" field. + SchemaURL string `json:"schemaUrl,omitempty"` +} + +// UnmarshalJSON decodes the OTLP formatted JSON contained in data into ss. +func (ss *ScopeSpans) UnmarshalJSON(data []byte) error { + decoder := json.NewDecoder(bytes.NewReader(data)) + + t, err := decoder.Token() + if err != nil { + return err + } + if t != json.Delim('{') { + return errors.New("invalid ScopeSpans type") + } + + for decoder.More() { + keyIface, err := decoder.Token() + if err != nil { + if errors.Is(err, io.EOF) { + // Empty. + return nil + } + return err + } + + key, ok := keyIface.(string) + if !ok { + return fmt.Errorf("invalid ScopeSpans field: %#v", keyIface) + } + + switch key { + case "scope": + err = decoder.Decode(&ss.Scope) + case "spans": + err = decoder.Decode(&ss.Spans) + case "schemaUrl", "schema_url": + err = decoder.Decode(&ss.SchemaURL) + default: + // Skip unknown. + } + + if err != nil { + return err + } + } + return nil +} diff --git a/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/value.go b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/value.go new file mode 100644 index 00000000..7251492d --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/trace/internal/telemetry/value.go @@ -0,0 +1,453 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package telemetry // import "go.opentelemetry.io/otel/trace/internal/telemetry" + +import ( + "bytes" + "cmp" + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "io" + "math" + "slices" + "strconv" + "unsafe" +) + +// A Value represents a structured value. +// A zero value is valid and represents an empty value. +type Value struct { + // Ensure forward compatibility by explicitly making this not comparable. + noCmp [0]func() //nolint: unused // This is indeed used. + + // num holds the value for Int64, Float64, and Bool. It holds the length + // for String, Bytes, Slice, Map. + num uint64 + // any holds either the KindBool, KindInt64, KindFloat64, stringptr, + // bytesptr, sliceptr, or mapptr. If KindBool, KindInt64, or KindFloat64 + // then the value of Value is in num as described above. Otherwise, it + // contains the value wrapped in the appropriate type. + any any +} + +type ( + // sliceptr represents a value in Value.any for KindString Values. + stringptr *byte + // bytesptr represents a value in Value.any for KindBytes Values. + bytesptr *byte + // sliceptr represents a value in Value.any for KindSlice Values. + sliceptr *Value + // mapptr represents a value in Value.any for KindMap Values. + mapptr *Attr +) + +// ValueKind is the kind of a [Value]. +type ValueKind int + +// ValueKind values. +const ( + ValueKindEmpty ValueKind = iota + ValueKindBool + ValueKindFloat64 + ValueKindInt64 + ValueKindString + ValueKindBytes + ValueKindSlice + ValueKindMap +) + +var valueKindStrings = []string{ + "Empty", + "Bool", + "Float64", + "Int64", + "String", + "Bytes", + "Slice", + "Map", +} + +func (k ValueKind) String() string { + if k >= 0 && int(k) < len(valueKindStrings) { + return valueKindStrings[k] + } + return "" +} + +// StringValue returns a new [Value] for a string. +func StringValue(v string) Value { + return Value{ + num: uint64(len(v)), + any: stringptr(unsafe.StringData(v)), + } +} + +// IntValue returns a [Value] for an int. +func IntValue(v int) Value { return Int64Value(int64(v)) } + +// Int64Value returns a [Value] for an int64. +func Int64Value(v int64) Value { + return Value{ + num: uint64(v), // nolint: gosec // Store raw bytes. + any: ValueKindInt64, + } +} + +// Float64Value returns a [Value] for a float64. +func Float64Value(v float64) Value { + return Value{num: math.Float64bits(v), any: ValueKindFloat64} +} + +// BoolValue returns a [Value] for a bool. +func BoolValue(v bool) Value { //nolint:revive // Not a control flag. + var n uint64 + if v { + n = 1 + } + return Value{num: n, any: ValueKindBool} +} + +// BytesValue returns a [Value] for a byte slice. The passed slice must not be +// changed after it is passed. +func BytesValue(v []byte) Value { + return Value{ + num: uint64(len(v)), + any: bytesptr(unsafe.SliceData(v)), + } +} + +// SliceValue returns a [Value] for a slice of [Value]. The passed slice must +// not be changed after it is passed. +func SliceValue(vs ...Value) Value { + return Value{ + num: uint64(len(vs)), + any: sliceptr(unsafe.SliceData(vs)), + } +} + +// MapValue returns a new [Value] for a slice of key-value pairs. The passed +// slice must not be changed after it is passed. +func MapValue(kvs ...Attr) Value { + return Value{ + num: uint64(len(kvs)), + any: mapptr(unsafe.SliceData(kvs)), + } +} + +// AsString returns the value held by v as a string. +func (v Value) AsString() string { + if sp, ok := v.any.(stringptr); ok { + return unsafe.String(sp, v.num) + } + // TODO: error handle + return "" +} + +// asString returns the value held by v as a string. It will panic if the Value +// is not KindString. +func (v Value) asString() string { + return unsafe.String(v.any.(stringptr), v.num) +} + +// AsInt64 returns the value held by v as an int64. +func (v Value) AsInt64() int64 { + if v.Kind() != ValueKindInt64 { + // TODO: error handle + return 0 + } + return v.asInt64() +} + +// asInt64 returns the value held by v as an int64. If v is not of KindInt64, +// this will return garbage. +func (v Value) asInt64() int64 { + // Assumes v.num was a valid int64 (overflow not checked). + return int64(v.num) // nolint: gosec +} + +// AsBool returns the value held by v as a bool. +func (v Value) AsBool() bool { + if v.Kind() != ValueKindBool { + // TODO: error handle + return false + } + return v.asBool() +} + +// asBool returns the value held by v as a bool. If v is not of KindBool, this +// will return garbage. +func (v Value) asBool() bool { return v.num == 1 } + +// AsFloat64 returns the value held by v as a float64. +func (v Value) AsFloat64() float64 { + if v.Kind() != ValueKindFloat64 { + // TODO: error handle + return 0 + } + return v.asFloat64() +} + +// asFloat64 returns the value held by v as a float64. If v is not of +// KindFloat64, this will return garbage. +func (v Value) asFloat64() float64 { return math.Float64frombits(v.num) } + +// AsBytes returns the value held by v as a []byte. +func (v Value) AsBytes() []byte { + if sp, ok := v.any.(bytesptr); ok { + return unsafe.Slice((*byte)(sp), v.num) + } + // TODO: error handle + return nil +} + +// asBytes returns the value held by v as a []byte. It will panic if the Value +// is not KindBytes. +func (v Value) asBytes() []byte { + return unsafe.Slice((*byte)(v.any.(bytesptr)), v.num) +} + +// AsSlice returns the value held by v as a []Value. +func (v Value) AsSlice() []Value { + if sp, ok := v.any.(sliceptr); ok { + return unsafe.Slice((*Value)(sp), v.num) + } + // TODO: error handle + return nil +} + +// asSlice returns the value held by v as a []Value. It will panic if the Value +// is not KindSlice. +func (v Value) asSlice() []Value { + return unsafe.Slice((*Value)(v.any.(sliceptr)), v.num) +} + +// AsMap returns the value held by v as a []Attr. +func (v Value) AsMap() []Attr { + if sp, ok := v.any.(mapptr); ok { + return unsafe.Slice((*Attr)(sp), v.num) + } + // TODO: error handle + return nil +} + +// asMap returns the value held by v as a []Attr. It will panic if the +// Value is not KindMap. +func (v Value) asMap() []Attr { + return unsafe.Slice((*Attr)(v.any.(mapptr)), v.num) +} + +// Kind returns the Kind of v. +func (v Value) Kind() ValueKind { + switch x := v.any.(type) { + case ValueKind: + return x + case stringptr: + return ValueKindString + case bytesptr: + return ValueKindBytes + case sliceptr: + return ValueKindSlice + case mapptr: + return ValueKindMap + default: + return ValueKindEmpty + } +} + +// Empty returns if v does not hold any value. +func (v Value) Empty() bool { return v.Kind() == ValueKindEmpty } + +// Equal returns if v is equal to w. +func (v Value) Equal(w Value) bool { + k1 := v.Kind() + k2 := w.Kind() + if k1 != k2 { + return false + } + switch k1 { + case ValueKindInt64, ValueKindBool: + return v.num == w.num + case ValueKindString: + return v.asString() == w.asString() + case ValueKindFloat64: + return v.asFloat64() == w.asFloat64() + case ValueKindSlice: + return slices.EqualFunc(v.asSlice(), w.asSlice(), Value.Equal) + case ValueKindMap: + sv := sortMap(v.asMap()) + sw := sortMap(w.asMap()) + return slices.EqualFunc(sv, sw, Attr.Equal) + case ValueKindBytes: + return bytes.Equal(v.asBytes(), w.asBytes()) + case ValueKindEmpty: + return true + default: + // TODO: error handle + return false + } +} + +func sortMap(m []Attr) []Attr { + sm := make([]Attr, len(m)) + copy(sm, m) + slices.SortFunc(sm, func(a, b Attr) int { + return cmp.Compare(a.Key, b.Key) + }) + + return sm +} + +// String returns Value's value as a string, formatted like [fmt.Sprint]. +// +// The returned string is meant for debugging; +// the string representation is not stable. +func (v Value) String() string { + switch v.Kind() { + case ValueKindString: + return v.asString() + case ValueKindInt64: + // Assumes v.num was a valid int64 (overflow not checked). + return strconv.FormatInt(int64(v.num), 10) // nolint: gosec + case ValueKindFloat64: + return strconv.FormatFloat(v.asFloat64(), 'g', -1, 64) + case ValueKindBool: + return strconv.FormatBool(v.asBool()) + case ValueKindBytes: + return fmt.Sprint(v.asBytes()) + case ValueKindMap: + return fmt.Sprint(v.asMap()) + case ValueKindSlice: + return fmt.Sprint(v.asSlice()) + case ValueKindEmpty: + return "" + default: + // Try to handle this as gracefully as possible. + // + // Don't panic here. The goal here is to have developers find this + // first if a slog.Kind is is not handled. It is + // preferable to have user's open issue asking why their attributes + // have a "unhandled: " prefix than say that their code is panicking. + return fmt.Sprintf("", v.Kind()) + } +} + +// MarshalJSON encodes v into OTLP formatted JSON. +func (v *Value) MarshalJSON() ([]byte, error) { + switch v.Kind() { + case ValueKindString: + return json.Marshal(struct { + Value string `json:"stringValue"` + }{v.asString()}) + case ValueKindInt64: + return json.Marshal(struct { + Value string `json:"intValue"` + }{strconv.FormatInt(int64(v.num), 10)}) // nolint: gosec // From raw bytes. + case ValueKindFloat64: + return json.Marshal(struct { + Value float64 `json:"doubleValue"` + }{v.asFloat64()}) + case ValueKindBool: + return json.Marshal(struct { + Value bool `json:"boolValue"` + }{v.asBool()}) + case ValueKindBytes: + return json.Marshal(struct { + Value []byte `json:"bytesValue"` + }{v.asBytes()}) + case ValueKindMap: + return json.Marshal(struct { + Value struct { + Values []Attr `json:"values"` + } `json:"kvlistValue"` + }{struct { + Values []Attr `json:"values"` + }{v.asMap()}}) + case ValueKindSlice: + return json.Marshal(struct { + Value struct { + Values []Value `json:"values"` + } `json:"arrayValue"` + }{struct { + Values []Value `json:"values"` + }{v.asSlice()}}) + case ValueKindEmpty: + return nil, nil + default: + return nil, fmt.Errorf("unknown Value kind: %s", v.Kind().String()) + } +} + +// UnmarshalJSON decodes the OTLP formatted JSON contained in data into v. +func (v *Value) UnmarshalJSON(data []byte) error { + decoder := json.NewDecoder(bytes.NewReader(data)) + + t, err := decoder.Token() + if err != nil { + return err + } + if t != json.Delim('{') { + return errors.New("invalid Value type") + } + + for decoder.More() { + keyIface, err := decoder.Token() + if err != nil { + if errors.Is(err, io.EOF) { + // Empty. + return nil + } + return err + } + + key, ok := keyIface.(string) + if !ok { + return fmt.Errorf("invalid Value key: %#v", keyIface) + } + + switch key { + case "stringValue", "string_value": + var val string + err = decoder.Decode(&val) + *v = StringValue(val) + case "boolValue", "bool_value": + var val bool + err = decoder.Decode(&val) + *v = BoolValue(val) + case "intValue", "int_value": + var val protoInt64 + err = decoder.Decode(&val) + *v = Int64Value(val.Int64()) + case "doubleValue", "double_value": + var val float64 + err = decoder.Decode(&val) + *v = Float64Value(val) + case "bytesValue", "bytes_value": + var val64 string + if err := decoder.Decode(&val64); err != nil { + return err + } + var val []byte + val, err = base64.StdEncoding.DecodeString(val64) + *v = BytesValue(val) + case "arrayValue", "array_value": + var val struct{ Values []Value } + err = decoder.Decode(&val) + *v = SliceValue(val.Values...) + case "kvlistValue", "kvlist_value": + var val struct{ Values []Attr } + err = decoder.Decode(&val) + *v = MapValue(val.Values...) + default: + // Skip unknown. + continue + } + // Use first valid. Ignore the rest. + return err + } + + // Only unknown fields. Return nil without unmarshaling any value. + return nil +} diff --git a/vendor/go.opentelemetry.io/otel/trace/noop.go b/vendor/go.opentelemetry.io/otel/trace/noop.go index ca20e999..c8b1ae5d 100644 --- a/vendor/go.opentelemetry.io/otel/trace/noop.go +++ b/vendor/go.opentelemetry.io/otel/trace/noop.go @@ -82,4 +82,22 @@ func (noopSpan) AddLink(Link) {} func (noopSpan) SetName(string) {} // TracerProvider returns a no-op TracerProvider. -func (noopSpan) TracerProvider() TracerProvider { return noopTracerProvider{} } +func (s noopSpan) TracerProvider() TracerProvider { + return s.tracerProvider(autoInstEnabled) +} + +// autoInstEnabled defines if the auto-instrumentation SDK is enabled. +// +// The auto-instrumentation is expected to overwrite this value to true when it +// attaches to the process. +var autoInstEnabled = new(bool) + +// tracerProvider return a noopTracerProvider if autoEnabled is false, +// otherwise it will return a TracerProvider from the sdk package used in +// auto-instrumentation. +func (noopSpan) tracerProvider(autoEnabled *bool) TracerProvider { + if *autoEnabled { + return newAutoTracerProvider() + } + return noopTracerProvider{} +} diff --git a/vendor/go.opentelemetry.io/otel/version.go b/vendor/go.opentelemetry.io/otel/version.go index fb7d1267..d5fa71f6 100644 --- a/vendor/go.opentelemetry.io/otel/version.go +++ b/vendor/go.opentelemetry.io/otel/version.go @@ -5,5 +5,5 @@ package otel // import "go.opentelemetry.io/otel" // Version is the current release version of OpenTelemetry in use. func Version() string { - return "1.33.0" + return "1.35.0" } diff --git a/vendor/go.opentelemetry.io/otel/versions.yaml b/vendor/go.opentelemetry.io/otel/versions.yaml index 9f878cd1..2b4cb4b4 100644 --- a/vendor/go.opentelemetry.io/otel/versions.yaml +++ b/vendor/go.opentelemetry.io/otel/versions.yaml @@ -3,7 +3,7 @@ module-sets: stable-v1: - version: v1.33.0 + version: v1.35.0 modules: - go.opentelemetry.io/otel - go.opentelemetry.io/otel/bridge/opencensus @@ -23,11 +23,11 @@ module-sets: - go.opentelemetry.io/otel/sdk/metric - go.opentelemetry.io/otel/trace experimental-metrics: - version: v0.55.0 + version: v0.57.0 modules: - go.opentelemetry.io/otel/exporters/prometheus experimental-logs: - version: v0.9.0 + version: v0.11.0 modules: - go.opentelemetry.io/otel/log - go.opentelemetry.io/otel/sdk/log @@ -40,3 +40,4 @@ module-sets: - go.opentelemetry.io/otel/schema excluded-modules: - go.opentelemetry.io/otel/internal/tools + - go.opentelemetry.io/otel/trace/internal/telemetry/test diff --git a/vendor/golang.org/x/crypto/cryptobyte/asn1.go b/vendor/golang.org/x/crypto/cryptobyte/asn1.go new file mode 100644 index 00000000..2492f796 --- /dev/null +++ b/vendor/golang.org/x/crypto/cryptobyte/asn1.go @@ -0,0 +1,825 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cryptobyte + +import ( + encoding_asn1 "encoding/asn1" + "fmt" + "math/big" + "reflect" + "time" + + "golang.org/x/crypto/cryptobyte/asn1" +) + +// This file contains ASN.1-related methods for String and Builder. + +// Builder + +// AddASN1Int64 appends a DER-encoded ASN.1 INTEGER. +func (b *Builder) AddASN1Int64(v int64) { + b.addASN1Signed(asn1.INTEGER, v) +} + +// AddASN1Int64WithTag appends a DER-encoded ASN.1 INTEGER with the +// given tag. +func (b *Builder) AddASN1Int64WithTag(v int64, tag asn1.Tag) { + b.addASN1Signed(tag, v) +} + +// AddASN1Enum appends a DER-encoded ASN.1 ENUMERATION. +func (b *Builder) AddASN1Enum(v int64) { + b.addASN1Signed(asn1.ENUM, v) +} + +func (b *Builder) addASN1Signed(tag asn1.Tag, v int64) { + b.AddASN1(tag, func(c *Builder) { + length := 1 + for i := v; i >= 0x80 || i < -0x80; i >>= 8 { + length++ + } + + for ; length > 0; length-- { + i := v >> uint((length-1)*8) & 0xff + c.AddUint8(uint8(i)) + } + }) +} + +// AddASN1Uint64 appends a DER-encoded ASN.1 INTEGER. +func (b *Builder) AddASN1Uint64(v uint64) { + b.AddASN1(asn1.INTEGER, func(c *Builder) { + length := 1 + for i := v; i >= 0x80; i >>= 8 { + length++ + } + + for ; length > 0; length-- { + i := v >> uint((length-1)*8) & 0xff + c.AddUint8(uint8(i)) + } + }) +} + +// AddASN1BigInt appends a DER-encoded ASN.1 INTEGER. +func (b *Builder) AddASN1BigInt(n *big.Int) { + if b.err != nil { + return + } + + b.AddASN1(asn1.INTEGER, func(c *Builder) { + if n.Sign() < 0 { + // A negative number has to be converted to two's-complement form. So we + // invert and subtract 1. If the most-significant-bit isn't set then + // we'll need to pad the beginning with 0xff in order to keep the number + // negative. + nMinus1 := new(big.Int).Neg(n) + nMinus1.Sub(nMinus1, bigOne) + bytes := nMinus1.Bytes() + for i := range bytes { + bytes[i] ^= 0xff + } + if len(bytes) == 0 || bytes[0]&0x80 == 0 { + c.add(0xff) + } + c.add(bytes...) + } else if n.Sign() == 0 { + c.add(0) + } else { + bytes := n.Bytes() + if bytes[0]&0x80 != 0 { + c.add(0) + } + c.add(bytes...) + } + }) +} + +// AddASN1OctetString appends a DER-encoded ASN.1 OCTET STRING. +func (b *Builder) AddASN1OctetString(bytes []byte) { + b.AddASN1(asn1.OCTET_STRING, func(c *Builder) { + c.AddBytes(bytes) + }) +} + +const generalizedTimeFormatStr = "20060102150405Z0700" + +// AddASN1GeneralizedTime appends a DER-encoded ASN.1 GENERALIZEDTIME. +func (b *Builder) AddASN1GeneralizedTime(t time.Time) { + if t.Year() < 0 || t.Year() > 9999 { + b.err = fmt.Errorf("cryptobyte: cannot represent %v as a GeneralizedTime", t) + return + } + b.AddASN1(asn1.GeneralizedTime, func(c *Builder) { + c.AddBytes([]byte(t.Format(generalizedTimeFormatStr))) + }) +} + +// AddASN1UTCTime appends a DER-encoded ASN.1 UTCTime. +func (b *Builder) AddASN1UTCTime(t time.Time) { + b.AddASN1(asn1.UTCTime, func(c *Builder) { + // As utilized by the X.509 profile, UTCTime can only + // represent the years 1950 through 2049. + if t.Year() < 1950 || t.Year() >= 2050 { + b.err = fmt.Errorf("cryptobyte: cannot represent %v as a UTCTime", t) + return + } + c.AddBytes([]byte(t.Format(defaultUTCTimeFormatStr))) + }) +} + +// AddASN1BitString appends a DER-encoded ASN.1 BIT STRING. This does not +// support BIT STRINGs that are not a whole number of bytes. +func (b *Builder) AddASN1BitString(data []byte) { + b.AddASN1(asn1.BIT_STRING, func(b *Builder) { + b.AddUint8(0) + b.AddBytes(data) + }) +} + +func (b *Builder) addBase128Int(n int64) { + var length int + if n == 0 { + length = 1 + } else { + for i := n; i > 0; i >>= 7 { + length++ + } + } + + for i := length - 1; i >= 0; i-- { + o := byte(n >> uint(i*7)) + o &= 0x7f + if i != 0 { + o |= 0x80 + } + + b.add(o) + } +} + +func isValidOID(oid encoding_asn1.ObjectIdentifier) bool { + if len(oid) < 2 { + return false + } + + if oid[0] > 2 || (oid[0] <= 1 && oid[1] >= 40) { + return false + } + + for _, v := range oid { + if v < 0 { + return false + } + } + + return true +} + +func (b *Builder) AddASN1ObjectIdentifier(oid encoding_asn1.ObjectIdentifier) { + b.AddASN1(asn1.OBJECT_IDENTIFIER, func(b *Builder) { + if !isValidOID(oid) { + b.err = fmt.Errorf("cryptobyte: invalid OID: %v", oid) + return + } + + b.addBase128Int(int64(oid[0])*40 + int64(oid[1])) + for _, v := range oid[2:] { + b.addBase128Int(int64(v)) + } + }) +} + +func (b *Builder) AddASN1Boolean(v bool) { + b.AddASN1(asn1.BOOLEAN, func(b *Builder) { + if v { + b.AddUint8(0xff) + } else { + b.AddUint8(0) + } + }) +} + +func (b *Builder) AddASN1NULL() { + b.add(uint8(asn1.NULL), 0) +} + +// MarshalASN1 calls encoding_asn1.Marshal on its input and appends the result if +// successful or records an error if one occurred. +func (b *Builder) MarshalASN1(v interface{}) { + // NOTE(martinkr): This is somewhat of a hack to allow propagation of + // encoding_asn1.Marshal errors into Builder.err. N.B. if you call MarshalASN1 with a + // value embedded into a struct, its tag information is lost. + if b.err != nil { + return + } + bytes, err := encoding_asn1.Marshal(v) + if err != nil { + b.err = err + return + } + b.AddBytes(bytes) +} + +// AddASN1 appends an ASN.1 object. The object is prefixed with the given tag. +// Tags greater than 30 are not supported and result in an error (i.e. +// low-tag-number form only). The child builder passed to the +// BuilderContinuation can be used to build the content of the ASN.1 object. +func (b *Builder) AddASN1(tag asn1.Tag, f BuilderContinuation) { + if b.err != nil { + return + } + // Identifiers with the low five bits set indicate high-tag-number format + // (two or more octets), which we don't support. + if tag&0x1f == 0x1f { + b.err = fmt.Errorf("cryptobyte: high-tag number identifier octects not supported: 0x%x", tag) + return + } + b.AddUint8(uint8(tag)) + b.addLengthPrefixed(1, true, f) +} + +// String + +// ReadASN1Boolean decodes an ASN.1 BOOLEAN and converts it to a boolean +// representation into out and advances. It reports whether the read +// was successful. +func (s *String) ReadASN1Boolean(out *bool) bool { + var bytes String + if !s.ReadASN1(&bytes, asn1.BOOLEAN) || len(bytes) != 1 { + return false + } + + switch bytes[0] { + case 0: + *out = false + case 0xff: + *out = true + default: + return false + } + + return true +} + +// ReadASN1Integer decodes an ASN.1 INTEGER into out and advances. If out does +// not point to an integer, to a big.Int, or to a []byte it panics. Only +// positive and zero values can be decoded into []byte, and they are returned as +// big-endian binary values that share memory with s. Positive values will have +// no leading zeroes, and zero will be returned as a single zero byte. +// ReadASN1Integer reports whether the read was successful. +func (s *String) ReadASN1Integer(out interface{}) bool { + switch out := out.(type) { + case *int, *int8, *int16, *int32, *int64: + var i int64 + if !s.readASN1Int64(&i) || reflect.ValueOf(out).Elem().OverflowInt(i) { + return false + } + reflect.ValueOf(out).Elem().SetInt(i) + return true + case *uint, *uint8, *uint16, *uint32, *uint64: + var u uint64 + if !s.readASN1Uint64(&u) || reflect.ValueOf(out).Elem().OverflowUint(u) { + return false + } + reflect.ValueOf(out).Elem().SetUint(u) + return true + case *big.Int: + return s.readASN1BigInt(out) + case *[]byte: + return s.readASN1Bytes(out) + default: + panic("out does not point to an integer type") + } +} + +func checkASN1Integer(bytes []byte) bool { + if len(bytes) == 0 { + // An INTEGER is encoded with at least one octet. + return false + } + if len(bytes) == 1 { + return true + } + if bytes[0] == 0 && bytes[1]&0x80 == 0 || bytes[0] == 0xff && bytes[1]&0x80 == 0x80 { + // Value is not minimally encoded. + return false + } + return true +} + +var bigOne = big.NewInt(1) + +func (s *String) readASN1BigInt(out *big.Int) bool { + var bytes String + if !s.ReadASN1(&bytes, asn1.INTEGER) || !checkASN1Integer(bytes) { + return false + } + if bytes[0]&0x80 == 0x80 { + // Negative number. + neg := make([]byte, len(bytes)) + for i, b := range bytes { + neg[i] = ^b + } + out.SetBytes(neg) + out.Add(out, bigOne) + out.Neg(out) + } else { + out.SetBytes(bytes) + } + return true +} + +func (s *String) readASN1Bytes(out *[]byte) bool { + var bytes String + if !s.ReadASN1(&bytes, asn1.INTEGER) || !checkASN1Integer(bytes) { + return false + } + if bytes[0]&0x80 == 0x80 { + return false + } + for len(bytes) > 1 && bytes[0] == 0 { + bytes = bytes[1:] + } + *out = bytes + return true +} + +func (s *String) readASN1Int64(out *int64) bool { + var bytes String + if !s.ReadASN1(&bytes, asn1.INTEGER) || !checkASN1Integer(bytes) || !asn1Signed(out, bytes) { + return false + } + return true +} + +func asn1Signed(out *int64, n []byte) bool { + length := len(n) + if length > 8 { + return false + } + for i := 0; i < length; i++ { + *out <<= 8 + *out |= int64(n[i]) + } + // Shift up and down in order to sign extend the result. + *out <<= 64 - uint8(length)*8 + *out >>= 64 - uint8(length)*8 + return true +} + +func (s *String) readASN1Uint64(out *uint64) bool { + var bytes String + if !s.ReadASN1(&bytes, asn1.INTEGER) || !checkASN1Integer(bytes) || !asn1Unsigned(out, bytes) { + return false + } + return true +} + +func asn1Unsigned(out *uint64, n []byte) bool { + length := len(n) + if length > 9 || length == 9 && n[0] != 0 { + // Too large for uint64. + return false + } + if n[0]&0x80 != 0 { + // Negative number. + return false + } + for i := 0; i < length; i++ { + *out <<= 8 + *out |= uint64(n[i]) + } + return true +} + +// ReadASN1Int64WithTag decodes an ASN.1 INTEGER with the given tag into out +// and advances. It reports whether the read was successful and resulted in a +// value that can be represented in an int64. +func (s *String) ReadASN1Int64WithTag(out *int64, tag asn1.Tag) bool { + var bytes String + return s.ReadASN1(&bytes, tag) && checkASN1Integer(bytes) && asn1Signed(out, bytes) +} + +// ReadASN1Enum decodes an ASN.1 ENUMERATION into out and advances. It reports +// whether the read was successful. +func (s *String) ReadASN1Enum(out *int) bool { + var bytes String + var i int64 + if !s.ReadASN1(&bytes, asn1.ENUM) || !checkASN1Integer(bytes) || !asn1Signed(&i, bytes) { + return false + } + if int64(int(i)) != i { + return false + } + *out = int(i) + return true +} + +func (s *String) readBase128Int(out *int) bool { + ret := 0 + for i := 0; len(*s) > 0; i++ { + if i == 5 { + return false + } + // Avoid overflowing int on a 32-bit platform. + // We don't want different behavior based on the architecture. + if ret >= 1<<(31-7) { + return false + } + ret <<= 7 + b := s.read(1)[0] + + // ITU-T X.690, section 8.19.2: + // The subidentifier shall be encoded in the fewest possible octets, + // that is, the leading octet of the subidentifier shall not have the value 0x80. + if i == 0 && b == 0x80 { + return false + } + + ret |= int(b & 0x7f) + if b&0x80 == 0 { + *out = ret + return true + } + } + return false // truncated +} + +// ReadASN1ObjectIdentifier decodes an ASN.1 OBJECT IDENTIFIER into out and +// advances. It reports whether the read was successful. +func (s *String) ReadASN1ObjectIdentifier(out *encoding_asn1.ObjectIdentifier) bool { + var bytes String + if !s.ReadASN1(&bytes, asn1.OBJECT_IDENTIFIER) || len(bytes) == 0 { + return false + } + + // In the worst case, we get two elements from the first byte (which is + // encoded differently) and then every varint is a single byte long. + components := make([]int, len(bytes)+1) + + // The first varint is 40*value1 + value2: + // According to this packing, value1 can take the values 0, 1 and 2 only. + // When value1 = 0 or value1 = 1, then value2 is <= 39. When value1 = 2, + // then there are no restrictions on value2. + var v int + if !bytes.readBase128Int(&v) { + return false + } + if v < 80 { + components[0] = v / 40 + components[1] = v % 40 + } else { + components[0] = 2 + components[1] = v - 80 + } + + i := 2 + for ; len(bytes) > 0; i++ { + if !bytes.readBase128Int(&v) { + return false + } + components[i] = v + } + *out = components[:i] + return true +} + +// ReadASN1GeneralizedTime decodes an ASN.1 GENERALIZEDTIME into out and +// advances. It reports whether the read was successful. +func (s *String) ReadASN1GeneralizedTime(out *time.Time) bool { + var bytes String + if !s.ReadASN1(&bytes, asn1.GeneralizedTime) { + return false + } + t := string(bytes) + res, err := time.Parse(generalizedTimeFormatStr, t) + if err != nil { + return false + } + if serialized := res.Format(generalizedTimeFormatStr); serialized != t { + return false + } + *out = res + return true +} + +const defaultUTCTimeFormatStr = "060102150405Z0700" + +// ReadASN1UTCTime decodes an ASN.1 UTCTime into out and advances. +// It reports whether the read was successful. +func (s *String) ReadASN1UTCTime(out *time.Time) bool { + var bytes String + if !s.ReadASN1(&bytes, asn1.UTCTime) { + return false + } + t := string(bytes) + + formatStr := defaultUTCTimeFormatStr + var err error + res, err := time.Parse(formatStr, t) + if err != nil { + // Fallback to minute precision if we can't parse second + // precision. If we are following X.509 or X.690 we shouldn't + // support this, but we do. + formatStr = "0601021504Z0700" + res, err = time.Parse(formatStr, t) + } + if err != nil { + return false + } + + if serialized := res.Format(formatStr); serialized != t { + return false + } + + if res.Year() >= 2050 { + // UTCTime interprets the low order digits 50-99 as 1950-99. + // This only applies to its use in the X.509 profile. + // See https://tools.ietf.org/html/rfc5280#section-4.1.2.5.1 + res = res.AddDate(-100, 0, 0) + } + *out = res + return true +} + +// ReadASN1BitString decodes an ASN.1 BIT STRING into out and advances. +// It reports whether the read was successful. +func (s *String) ReadASN1BitString(out *encoding_asn1.BitString) bool { + var bytes String + if !s.ReadASN1(&bytes, asn1.BIT_STRING) || len(bytes) == 0 || + len(bytes)*8/8 != len(bytes) { + return false + } + + paddingBits := bytes[0] + bytes = bytes[1:] + if paddingBits > 7 || + len(bytes) == 0 && paddingBits != 0 || + len(bytes) > 0 && bytes[len(bytes)-1]&(1< 4 || len(*s) < int(2+lenLen) { + return false + } + + lenBytes := String((*s)[2 : 2+lenLen]) + if !lenBytes.readUnsigned(&len32, int(lenLen)) { + return false + } + + // ITU-T X.690 section 10.1 (DER length forms) requires encoding the length + // with the minimum number of octets. + if len32 < 128 { + // Length should have used short-form encoding. + return false + } + if len32>>((lenLen-1)*8) == 0 { + // Leading octet is 0. Length should have been at least one byte shorter. + return false + } + + headerLen = 2 + uint32(lenLen) + if headerLen+len32 < len32 { + // Overflow. + return false + } + length = headerLen + len32 + } + + if int(length) < 0 || !s.ReadBytes((*[]byte)(out), int(length)) { + return false + } + if skipHeader && !out.Skip(int(headerLen)) { + panic("cryptobyte: internal error") + } + + return true +} diff --git a/vendor/golang.org/x/crypto/cryptobyte/asn1/asn1.go b/vendor/golang.org/x/crypto/cryptobyte/asn1/asn1.go new file mode 100644 index 00000000..90ef6a24 --- /dev/null +++ b/vendor/golang.org/x/crypto/cryptobyte/asn1/asn1.go @@ -0,0 +1,46 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package asn1 contains supporting types for parsing and building ASN.1 +// messages with the cryptobyte package. +package asn1 + +// Tag represents an ASN.1 identifier octet, consisting of a tag number +// (indicating a type) and class (such as context-specific or constructed). +// +// Methods in the cryptobyte package only support the low-tag-number form, i.e. +// a single identifier octet with bits 7-8 encoding the class and bits 1-6 +// encoding the tag number. +type Tag uint8 + +const ( + classConstructed = 0x20 + classContextSpecific = 0x80 +) + +// Constructed returns t with the constructed class bit set. +func (t Tag) Constructed() Tag { return t | classConstructed } + +// ContextSpecific returns t with the context-specific class bit set. +func (t Tag) ContextSpecific() Tag { return t | classContextSpecific } + +// The following is a list of standard tag and class combinations. +const ( + BOOLEAN = Tag(1) + INTEGER = Tag(2) + BIT_STRING = Tag(3) + OCTET_STRING = Tag(4) + NULL = Tag(5) + OBJECT_IDENTIFIER = Tag(6) + ENUM = Tag(10) + UTF8String = Tag(12) + SEQUENCE = Tag(16 | classConstructed) + SET = Tag(17 | classConstructed) + PrintableString = Tag(19) + T61String = Tag(20) + IA5String = Tag(22) + UTCTime = Tag(23) + GeneralizedTime = Tag(24) + GeneralString = Tag(27) +) diff --git a/vendor/golang.org/x/crypto/cryptobyte/builder.go b/vendor/golang.org/x/crypto/cryptobyte/builder.go new file mode 100644 index 00000000..cf254f5f --- /dev/null +++ b/vendor/golang.org/x/crypto/cryptobyte/builder.go @@ -0,0 +1,350 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cryptobyte + +import ( + "errors" + "fmt" +) + +// A Builder builds byte strings from fixed-length and length-prefixed values. +// Builders either allocate space as needed, or are ‘fixed’, which means that +// they write into a given buffer and produce an error if it's exhausted. +// +// The zero value is a usable Builder that allocates space as needed. +// +// Simple values are marshaled and appended to a Builder using methods on the +// Builder. Length-prefixed values are marshaled by providing a +// BuilderContinuation, which is a function that writes the inner contents of +// the value to a given Builder. See the documentation for BuilderContinuation +// for details. +type Builder struct { + err error + result []byte + fixedSize bool + child *Builder + offset int + pendingLenLen int + pendingIsASN1 bool + inContinuation *bool +} + +// NewBuilder creates a Builder that appends its output to the given buffer. +// Like append(), the slice will be reallocated if its capacity is exceeded. +// Use Bytes to get the final buffer. +func NewBuilder(buffer []byte) *Builder { + return &Builder{ + result: buffer, + } +} + +// NewFixedBuilder creates a Builder that appends its output into the given +// buffer. This builder does not reallocate the output buffer. Writes that +// would exceed the buffer's capacity are treated as an error. +func NewFixedBuilder(buffer []byte) *Builder { + return &Builder{ + result: buffer, + fixedSize: true, + } +} + +// SetError sets the value to be returned as the error from Bytes. Writes +// performed after calling SetError are ignored. +func (b *Builder) SetError(err error) { + b.err = err +} + +// Bytes returns the bytes written by the builder or an error if one has +// occurred during building. +func (b *Builder) Bytes() ([]byte, error) { + if b.err != nil { + return nil, b.err + } + return b.result[b.offset:], nil +} + +// BytesOrPanic returns the bytes written by the builder or panics if an error +// has occurred during building. +func (b *Builder) BytesOrPanic() []byte { + if b.err != nil { + panic(b.err) + } + return b.result[b.offset:] +} + +// AddUint8 appends an 8-bit value to the byte string. +func (b *Builder) AddUint8(v uint8) { + b.add(byte(v)) +} + +// AddUint16 appends a big-endian, 16-bit value to the byte string. +func (b *Builder) AddUint16(v uint16) { + b.add(byte(v>>8), byte(v)) +} + +// AddUint24 appends a big-endian, 24-bit value to the byte string. The highest +// byte of the 32-bit input value is silently truncated. +func (b *Builder) AddUint24(v uint32) { + b.add(byte(v>>16), byte(v>>8), byte(v)) +} + +// AddUint32 appends a big-endian, 32-bit value to the byte string. +func (b *Builder) AddUint32(v uint32) { + b.add(byte(v>>24), byte(v>>16), byte(v>>8), byte(v)) +} + +// AddUint48 appends a big-endian, 48-bit value to the byte string. +func (b *Builder) AddUint48(v uint64) { + b.add(byte(v>>40), byte(v>>32), byte(v>>24), byte(v>>16), byte(v>>8), byte(v)) +} + +// AddUint64 appends a big-endian, 64-bit value to the byte string. +func (b *Builder) AddUint64(v uint64) { + b.add(byte(v>>56), byte(v>>48), byte(v>>40), byte(v>>32), byte(v>>24), byte(v>>16), byte(v>>8), byte(v)) +} + +// AddBytes appends a sequence of bytes to the byte string. +func (b *Builder) AddBytes(v []byte) { + b.add(v...) +} + +// BuilderContinuation is a continuation-passing interface for building +// length-prefixed byte sequences. Builder methods for length-prefixed +// sequences (AddUint8LengthPrefixed etc) will invoke the BuilderContinuation +// supplied to them. The child builder passed to the continuation can be used +// to build the content of the length-prefixed sequence. For example: +// +// parent := cryptobyte.NewBuilder() +// parent.AddUint8LengthPrefixed(func (child *Builder) { +// child.AddUint8(42) +// child.AddUint8LengthPrefixed(func (grandchild *Builder) { +// grandchild.AddUint8(5) +// }) +// }) +// +// It is an error to write more bytes to the child than allowed by the reserved +// length prefix. After the continuation returns, the child must be considered +// invalid, i.e. users must not store any copies or references of the child +// that outlive the continuation. +// +// If the continuation panics with a value of type BuildError then the inner +// error will be returned as the error from Bytes. If the child panics +// otherwise then Bytes will repanic with the same value. +type BuilderContinuation func(child *Builder) + +// BuildError wraps an error. If a BuilderContinuation panics with this value, +// the panic will be recovered and the inner error will be returned from +// Builder.Bytes. +type BuildError struct { + Err error +} + +// AddUint8LengthPrefixed adds a 8-bit length-prefixed byte sequence. +func (b *Builder) AddUint8LengthPrefixed(f BuilderContinuation) { + b.addLengthPrefixed(1, false, f) +} + +// AddUint16LengthPrefixed adds a big-endian, 16-bit length-prefixed byte sequence. +func (b *Builder) AddUint16LengthPrefixed(f BuilderContinuation) { + b.addLengthPrefixed(2, false, f) +} + +// AddUint24LengthPrefixed adds a big-endian, 24-bit length-prefixed byte sequence. +func (b *Builder) AddUint24LengthPrefixed(f BuilderContinuation) { + b.addLengthPrefixed(3, false, f) +} + +// AddUint32LengthPrefixed adds a big-endian, 32-bit length-prefixed byte sequence. +func (b *Builder) AddUint32LengthPrefixed(f BuilderContinuation) { + b.addLengthPrefixed(4, false, f) +} + +func (b *Builder) callContinuation(f BuilderContinuation, arg *Builder) { + if !*b.inContinuation { + *b.inContinuation = true + + defer func() { + *b.inContinuation = false + + r := recover() + if r == nil { + return + } + + if buildError, ok := r.(BuildError); ok { + b.err = buildError.Err + } else { + panic(r) + } + }() + } + + f(arg) +} + +func (b *Builder) addLengthPrefixed(lenLen int, isASN1 bool, f BuilderContinuation) { + // Subsequent writes can be ignored if the builder has encountered an error. + if b.err != nil { + return + } + + offset := len(b.result) + b.add(make([]byte, lenLen)...) + + if b.inContinuation == nil { + b.inContinuation = new(bool) + } + + b.child = &Builder{ + result: b.result, + fixedSize: b.fixedSize, + offset: offset, + pendingLenLen: lenLen, + pendingIsASN1: isASN1, + inContinuation: b.inContinuation, + } + + b.callContinuation(f, b.child) + b.flushChild() + if b.child != nil { + panic("cryptobyte: internal error") + } +} + +func (b *Builder) flushChild() { + if b.child == nil { + return + } + b.child.flushChild() + child := b.child + b.child = nil + + if child.err != nil { + b.err = child.err + return + } + + length := len(child.result) - child.pendingLenLen - child.offset + + if length < 0 { + panic("cryptobyte: internal error") // result unexpectedly shrunk + } + + if child.pendingIsASN1 { + // For ASN.1, we reserved a single byte for the length. If that turned out + // to be incorrect, we have to move the contents along in order to make + // space. + if child.pendingLenLen != 1 { + panic("cryptobyte: internal error") + } + var lenLen, lenByte uint8 + if int64(length) > 0xfffffffe { + b.err = errors.New("pending ASN.1 child too long") + return + } else if length > 0xffffff { + lenLen = 5 + lenByte = 0x80 | 4 + } else if length > 0xffff { + lenLen = 4 + lenByte = 0x80 | 3 + } else if length > 0xff { + lenLen = 3 + lenByte = 0x80 | 2 + } else if length > 0x7f { + lenLen = 2 + lenByte = 0x80 | 1 + } else { + lenLen = 1 + lenByte = uint8(length) + length = 0 + } + + // Insert the initial length byte, make space for successive length bytes, + // and adjust the offset. + child.result[child.offset] = lenByte + extraBytes := int(lenLen - 1) + if extraBytes != 0 { + child.add(make([]byte, extraBytes)...) + childStart := child.offset + child.pendingLenLen + copy(child.result[childStart+extraBytes:], child.result[childStart:]) + } + child.offset++ + child.pendingLenLen = extraBytes + } + + l := length + for i := child.pendingLenLen - 1; i >= 0; i-- { + child.result[child.offset+i] = uint8(l) + l >>= 8 + } + if l != 0 { + b.err = fmt.Errorf("cryptobyte: pending child length %d exceeds %d-byte length prefix", length, child.pendingLenLen) + return + } + + if b.fixedSize && &b.result[0] != &child.result[0] { + panic("cryptobyte: BuilderContinuation reallocated a fixed-size buffer") + } + + b.result = child.result +} + +func (b *Builder) add(bytes ...byte) { + if b.err != nil { + return + } + if b.child != nil { + panic("cryptobyte: attempted write while child is pending") + } + if len(b.result)+len(bytes) < len(bytes) { + b.err = errors.New("cryptobyte: length overflow") + } + if b.fixedSize && len(b.result)+len(bytes) > cap(b.result) { + b.err = errors.New("cryptobyte: Builder is exceeding its fixed-size buffer") + return + } + b.result = append(b.result, bytes...) +} + +// Unwrite rolls back non-negative n bytes written directly to the Builder. +// An attempt by a child builder passed to a continuation to unwrite bytes +// from its parent will panic. +func (b *Builder) Unwrite(n int) { + if b.err != nil { + return + } + if b.child != nil { + panic("cryptobyte: attempted unwrite while child is pending") + } + length := len(b.result) - b.pendingLenLen - b.offset + if length < 0 { + panic("cryptobyte: internal error") + } + if n < 0 { + panic("cryptobyte: attempted to unwrite negative number of bytes") + } + if n > length { + panic("cryptobyte: attempted to unwrite more than was written") + } + b.result = b.result[:len(b.result)-n] +} + +// A MarshalingValue marshals itself into a Builder. +type MarshalingValue interface { + // Marshal is called by Builder.AddValue. It receives a pointer to a builder + // to marshal itself into. It may return an error that occurred during + // marshaling, such as unset or invalid values. + Marshal(b *Builder) error +} + +// AddValue calls Marshal on v, passing a pointer to the builder to append to. +// If Marshal returns an error, it is set on the Builder so that subsequent +// appends don't have an effect. +func (b *Builder) AddValue(v MarshalingValue) { + err := v.Marshal(b) + if err != nil { + b.err = err + } +} diff --git a/vendor/golang.org/x/crypto/cryptobyte/string.go b/vendor/golang.org/x/crypto/cryptobyte/string.go new file mode 100644 index 00000000..4b0f8097 --- /dev/null +++ b/vendor/golang.org/x/crypto/cryptobyte/string.go @@ -0,0 +1,183 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package cryptobyte contains types that help with parsing and constructing +// length-prefixed, binary messages, including ASN.1 DER. (The asn1 subpackage +// contains useful ASN.1 constants.) +// +// The String type is for parsing. It wraps a []byte slice and provides helper +// functions for consuming structures, value by value. +// +// The Builder type is for constructing messages. It providers helper functions +// for appending values and also for appending length-prefixed submessages – +// without having to worry about calculating the length prefix ahead of time. +// +// See the documentation and examples for the Builder and String types to get +// started. +package cryptobyte + +// String represents a string of bytes. It provides methods for parsing +// fixed-length and length-prefixed values from it. +type String []byte + +// read advances a String by n bytes and returns them. If less than n bytes +// remain, it returns nil. +func (s *String) read(n int) []byte { + if len(*s) < n || n < 0 { + return nil + } + v := (*s)[:n] + *s = (*s)[n:] + return v +} + +// Skip advances the String by n byte and reports whether it was successful. +func (s *String) Skip(n int) bool { + return s.read(n) != nil +} + +// ReadUint8 decodes an 8-bit value into out and advances over it. +// It reports whether the read was successful. +func (s *String) ReadUint8(out *uint8) bool { + v := s.read(1) + if v == nil { + return false + } + *out = uint8(v[0]) + return true +} + +// ReadUint16 decodes a big-endian, 16-bit value into out and advances over it. +// It reports whether the read was successful. +func (s *String) ReadUint16(out *uint16) bool { + v := s.read(2) + if v == nil { + return false + } + *out = uint16(v[0])<<8 | uint16(v[1]) + return true +} + +// ReadUint24 decodes a big-endian, 24-bit value into out and advances over it. +// It reports whether the read was successful. +func (s *String) ReadUint24(out *uint32) bool { + v := s.read(3) + if v == nil { + return false + } + *out = uint32(v[0])<<16 | uint32(v[1])<<8 | uint32(v[2]) + return true +} + +// ReadUint32 decodes a big-endian, 32-bit value into out and advances over it. +// It reports whether the read was successful. +func (s *String) ReadUint32(out *uint32) bool { + v := s.read(4) + if v == nil { + return false + } + *out = uint32(v[0])<<24 | uint32(v[1])<<16 | uint32(v[2])<<8 | uint32(v[3]) + return true +} + +// ReadUint48 decodes a big-endian, 48-bit value into out and advances over it. +// It reports whether the read was successful. +func (s *String) ReadUint48(out *uint64) bool { + v := s.read(6) + if v == nil { + return false + } + *out = uint64(v[0])<<40 | uint64(v[1])<<32 | uint64(v[2])<<24 | uint64(v[3])<<16 | uint64(v[4])<<8 | uint64(v[5]) + return true +} + +// ReadUint64 decodes a big-endian, 64-bit value into out and advances over it. +// It reports whether the read was successful. +func (s *String) ReadUint64(out *uint64) bool { + v := s.read(8) + if v == nil { + return false + } + *out = uint64(v[0])<<56 | uint64(v[1])<<48 | uint64(v[2])<<40 | uint64(v[3])<<32 | uint64(v[4])<<24 | uint64(v[5])<<16 | uint64(v[6])<<8 | uint64(v[7]) + return true +} + +func (s *String) readUnsigned(out *uint32, length int) bool { + v := s.read(length) + if v == nil { + return false + } + var result uint32 + for i := 0; i < length; i++ { + result <<= 8 + result |= uint32(v[i]) + } + *out = result + return true +} + +func (s *String) readLengthPrefixed(lenLen int, outChild *String) bool { + lenBytes := s.read(lenLen) + if lenBytes == nil { + return false + } + var length uint32 + for _, b := range lenBytes { + length = length << 8 + length = length | uint32(b) + } + v := s.read(int(length)) + if v == nil { + return false + } + *outChild = v + return true +} + +// ReadUint8LengthPrefixed reads the content of an 8-bit length-prefixed value +// into out and advances over it. It reports whether the read was successful. +func (s *String) ReadUint8LengthPrefixed(out *String) bool { + return s.readLengthPrefixed(1, out) +} + +// ReadUint16LengthPrefixed reads the content of a big-endian, 16-bit +// length-prefixed value into out and advances over it. It reports whether the +// read was successful. +func (s *String) ReadUint16LengthPrefixed(out *String) bool { + return s.readLengthPrefixed(2, out) +} + +// ReadUint24LengthPrefixed reads the content of a big-endian, 24-bit +// length-prefixed value into out and advances over it. It reports whether +// the read was successful. +func (s *String) ReadUint24LengthPrefixed(out *String) bool { + return s.readLengthPrefixed(3, out) +} + +// ReadBytes reads n bytes into out and advances over them. It reports +// whether the read was successful. +func (s *String) ReadBytes(out *[]byte, n int) bool { + v := s.read(n) + if v == nil { + return false + } + *out = v + return true +} + +// CopyBytes copies len(out) bytes into out and advances over them. It reports +// whether the copy operation was successful +func (s *String) CopyBytes(out []byte) bool { + n := len(out) + v := s.read(n) + if v == nil { + return false + } + return copy(out, v) == n +} + +// Empty reports whether the string does not contain any bytes. +func (s String) Empty() bool { + return len(s) == 0 +} diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go index 56cdc7c2..c9202b05 100644 --- a/vendor/golang.org/x/crypto/ssh/handshake.go +++ b/vendor/golang.org/x/crypto/ssh/handshake.go @@ -25,6 +25,11 @@ const debugHandshake = false // quickly. const chanSize = 16 +// maxPendingPackets sets the maximum number of packets to queue while waiting +// for KEX to complete. This limits the total pending data to maxPendingPackets +// * maxPacket bytes, which is ~16.8MB. +const maxPendingPackets = 64 + // keyingTransport is a packet based transport that supports key // changes. It need not be thread-safe. It should pass through // msgNewKeys in both directions. @@ -73,13 +78,22 @@ type handshakeTransport struct { incoming chan []byte readError error - mu sync.Mutex - writeError error - sentInitPacket []byte - sentInitMsg *kexInitMsg - pendingPackets [][]byte // Used when a key exchange is in progress. + mu sync.Mutex + // Condition for the above mutex. It is used to notify a completed key + // exchange or a write failure. Writes can wait for this condition while a + // key exchange is in progress. + writeCond *sync.Cond + writeError error + sentInitPacket []byte + sentInitMsg *kexInitMsg + // Used to queue writes when a key exchange is in progress. The length is + // limited by pendingPacketsSize. Once full, writes will block until the key + // exchange is completed or an error occurs. If not empty, it is emptied + // all at once when the key exchange is completed in kexLoop. + pendingPackets [][]byte writePacketsLeft uint32 writeBytesLeft int64 + userAuthComplete bool // whether the user authentication phase is complete // If the read loop wants to schedule a kex, it pings this // channel, and the write loop will send out a kex @@ -133,6 +147,7 @@ func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, config: config, } + t.writeCond = sync.NewCond(&t.mu) t.resetReadThresholds() t.resetWriteThresholds() @@ -259,6 +274,7 @@ func (t *handshakeTransport) recordWriteError(err error) { defer t.mu.Unlock() if t.writeError == nil && err != nil { t.writeError = err + t.writeCond.Broadcast() } } @@ -362,6 +378,8 @@ write: } } t.pendingPackets = t.pendingPackets[:0] + // Unblock writePacket if waiting for KEX. + t.writeCond.Broadcast() t.mu.Unlock() } @@ -552,26 +570,44 @@ func (t *handshakeTransport) sendKexInit() error { return nil } +var errSendBannerPhase = errors.New("ssh: SendAuthBanner outside of authentication phase") + func (t *handshakeTransport) writePacket(p []byte) error { + t.mu.Lock() + defer t.mu.Unlock() + switch p[0] { case msgKexInit: return errors.New("ssh: only handshakeTransport can send kexInit") case msgNewKeys: return errors.New("ssh: only handshakeTransport can send newKeys") + case msgUserAuthBanner: + if t.userAuthComplete { + return errSendBannerPhase + } + case msgUserAuthSuccess: + t.userAuthComplete = true } - t.mu.Lock() - defer t.mu.Unlock() if t.writeError != nil { return t.writeError } if t.sentInitMsg != nil { - // Copy the packet so the writer can reuse the buffer. - cp := make([]byte, len(p)) - copy(cp, p) - t.pendingPackets = append(t.pendingPackets, cp) - return nil + if len(t.pendingPackets) < maxPendingPackets { + // Copy the packet so the writer can reuse the buffer. + cp := make([]byte, len(p)) + copy(cp, p) + t.pendingPackets = append(t.pendingPackets, cp) + return nil + } + for t.sentInitMsg != nil { + // Block and wait for KEX to complete or an error. + t.writeCond.Wait() + if t.writeError != nil { + return t.writeError + } + } } if t.writeBytesLeft > 0 { @@ -588,6 +624,7 @@ func (t *handshakeTransport) writePacket(p []byte) error { if err := t.pushPacket(p); err != nil { t.writeError = err + t.writeCond.Broadcast() } return nil diff --git a/vendor/golang.org/x/crypto/ssh/messages.go b/vendor/golang.org/x/crypto/ssh/messages.go index b55f8605..118427bc 100644 --- a/vendor/golang.org/x/crypto/ssh/messages.go +++ b/vendor/golang.org/x/crypto/ssh/messages.go @@ -818,6 +818,8 @@ func decode(packet []byte) (interface{}, error) { return new(userAuthSuccessMsg), nil case msgUserAuthFailure: msg = new(userAuthFailureMsg) + case msgUserAuthBanner: + msg = new(userAuthBannerMsg) case msgUserAuthPubKeyOk: msg = new(userAuthPubKeyOkMsg) case msgGlobalRequest: diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go index 5b5ccd96..1839ddc6 100644 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ b/vendor/golang.org/x/crypto/ssh/server.go @@ -59,6 +59,27 @@ type GSSAPIWithMICConfig struct { Server GSSAPIServer } +// SendAuthBanner implements [ServerPreAuthConn]. +func (s *connection) SendAuthBanner(msg string) error { + return s.transport.writePacket(Marshal(&userAuthBannerMsg{ + Message: msg, + })) +} + +func (*connection) unexportedMethodForFutureProofing() {} + +// ServerPreAuthConn is the interface available on an incoming server +// connection before authentication has completed. +type ServerPreAuthConn interface { + unexportedMethodForFutureProofing() // permits growing ServerPreAuthConn safely later, ala testing.TB + + ConnMetadata + + // SendAuthBanner sends a banner message to the client. + // It returns an error once the authentication phase has ended. + SendAuthBanner(string) error +} + // ServerConfig holds server specific configuration data. type ServerConfig struct { // Config contains configuration shared between client and server. @@ -118,6 +139,12 @@ type ServerConfig struct { // attempts. AuthLogCallback func(conn ConnMetadata, method string, err error) + // PreAuthConnCallback, if non-nil, is called upon receiving a new connection + // before any authentication has started. The provided ServerPreAuthConn + // can be used at any time before authentication is complete, including + // after this callback has returned. + PreAuthConnCallback func(ServerPreAuthConn) + // ServerVersion is the version identification string to announce in // the public handshake. // If empty, a reasonable default is used. @@ -488,6 +515,10 @@ func (b *BannerError) Error() string { } func (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, error) { + if config.PreAuthConnCallback != nil { + config.PreAuthConnCallback(s) + } + sessionID := s.transport.getSessionID() var cache pubKeyCache var perms *Permissions @@ -495,7 +526,7 @@ func (s *connection) serverAuthenticate(config *ServerConfig) (*Permissions, err authFailures := 0 noneAuthCount := 0 var authErrs []error - var displayedBanner bool + var calledBannerCallback bool partialSuccessReturned := false // Set the initial authentication callbacks from the config. They can be // changed if a PartialSuccessError is returned. @@ -542,14 +573,10 @@ userAuthLoop: s.user = userAuthReq.User - if !displayedBanner && config.BannerCallback != nil { - displayedBanner = true - msg := config.BannerCallback(s) - if msg != "" { - bannerMsg := &userAuthBannerMsg{ - Message: msg, - } - if err := s.transport.writePacket(Marshal(bannerMsg)); err != nil { + if !calledBannerCallback && config.BannerCallback != nil { + calledBannerCallback = true + if msg := config.BannerCallback(s); msg != "" { + if err := s.SendAuthBanner(msg); err != nil { return nil, err } } @@ -762,10 +789,7 @@ userAuthLoop: var bannerErr *BannerError if errors.As(authErr, &bannerErr) { if bannerErr.Message != "" { - bannerMsg := &userAuthBannerMsg{ - Message: bannerErr.Message, - } - if err := s.transport.writePacket(Marshal(bannerMsg)); err != nil { + if err := s.SendAuthBanner(bannerErr.Message); err != nil { return nil, err } } diff --git a/vendor/golang.org/x/crypto/ssh/tcpip.go b/vendor/golang.org/x/crypto/ssh/tcpip.go index ef5059a1..93d844f0 100644 --- a/vendor/golang.org/x/crypto/ssh/tcpip.go +++ b/vendor/golang.org/x/crypto/ssh/tcpip.go @@ -459,7 +459,7 @@ func (c *Client) dial(laddr string, lport int, raddr string, rport int) (Channel return nil, err } go DiscardRequests(in) - return ch, err + return ch, nil } type tcpChan struct { diff --git a/vendor/golang.org/x/exp/slices/slices.go b/vendor/golang.org/x/exp/slices/slices.go index 757383ea..da0df370 100644 --- a/vendor/golang.org/x/exp/slices/slices.go +++ b/vendor/golang.org/x/exp/slices/slices.go @@ -10,16 +10,13 @@ import ( "slices" ) -// TODO(adonovan): when https://go.dev/issue/32816 is accepted, all of -// these functions should be annotated (provisionally with "//go:fix -// inline") so that tools can safely and automatically replace calls -// to exp/slices with calls to std slices by inlining them. - // Equal reports whether two slices are equal: the same length and all // elements equal. If the lengths are different, Equal returns false. // Otherwise, the elements are compared in increasing index order, and the // comparison stops at the first unequal pair. // Floating point NaNs are not considered equal. +// +//go:fix inline func Equal[S ~[]E, E comparable](s1, s2 S) bool { return slices.Equal(s1, s2) } @@ -29,6 +26,8 @@ func Equal[S ~[]E, E comparable](s1, s2 S) bool { // EqualFunc returns false. Otherwise, the elements are compared in // increasing index order, and the comparison stops at the first index // for which eq returns false. +// +//go:fix inline func EqualFunc[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, eq func(E1, E2) bool) bool { return slices.EqualFunc(s1, s2, eq) } @@ -40,6 +39,8 @@ func EqualFunc[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, eq func(E1, E2) boo // If both slices are equal until one of them ends, the shorter slice is // considered less than the longer one. // The result is 0 if s1 == s2, -1 if s1 < s2, and +1 if s1 > s2. +// +//go:fix inline func Compare[S ~[]E, E cmp.Ordered](s1, s2 S) int { return slices.Compare(s1, s2) } @@ -49,29 +50,39 @@ func Compare[S ~[]E, E cmp.Ordered](s1, s2 S) int { // The result is the first non-zero result of cmp; if cmp always // returns 0 the result is 0 if len(s1) == len(s2), -1 if len(s1) < len(s2), // and +1 if len(s1) > len(s2). +// +//go:fix inline func CompareFunc[S1 ~[]E1, S2 ~[]E2, E1, E2 any](s1 S1, s2 S2, cmp func(E1, E2) int) int { return slices.CompareFunc(s1, s2, cmp) } // Index returns the index of the first occurrence of v in s, // or -1 if not present. +// +//go:fix inline func Index[S ~[]E, E comparable](s S, v E) int { return slices.Index(s, v) } // IndexFunc returns the first index i satisfying f(s[i]), // or -1 if none do. +// +//go:fix inline func IndexFunc[S ~[]E, E any](s S, f func(E) bool) int { return slices.IndexFunc(s, f) } // Contains reports whether v is present in s. +// +//go:fix inline func Contains[S ~[]E, E comparable](s S, v E) bool { return slices.Contains(s, v) } // ContainsFunc reports whether at least one // element e of s satisfies f(e). +// +//go:fix inline func ContainsFunc[S ~[]E, E any](s S, f func(E) bool) bool { return slices.ContainsFunc(s, f) } @@ -83,6 +94,8 @@ func ContainsFunc[S ~[]E, E any](s S, f func(E) bool) bool { // and r[i+len(v)] == value originally at r[i]. // Insert panics if i is out of range. // This function is O(len(s) + len(v)). +// +//go:fix inline func Insert[S ~[]E, E any](s S, i int, v ...E) S { return slices.Insert(s, i, v...) } @@ -92,6 +105,8 @@ func Insert[S ~[]E, E any](s S, i int, v ...E) S { // Delete is O(len(s)-i), so if many items must be deleted, it is better to // make a single call deleting them all together than to delete one at a time. // Delete zeroes the elements s[len(s)-(j-i):len(s)]. +// +//go:fix inline func Delete[S ~[]E, E any](s S, i, j int) S { return slices.Delete(s, i, j) } @@ -99,6 +114,8 @@ func Delete[S ~[]E, E any](s S, i, j int) S { // DeleteFunc removes any elements from s for which del returns true, // returning the modified slice. // DeleteFunc zeroes the elements between the new length and the original length. +// +//go:fix inline func DeleteFunc[S ~[]E, E any](s S, del func(E) bool) S { return slices.DeleteFunc(s, del) } @@ -106,12 +123,16 @@ func DeleteFunc[S ~[]E, E any](s S, del func(E) bool) S { // Replace replaces the elements s[i:j] by the given v, and returns the // modified slice. Replace panics if s[i:j] is not a valid slice of s. // When len(v) < (j-i), Replace zeroes the elements between the new length and the original length. +// +//go:fix inline func Replace[S ~[]E, E any](s S, i, j int, v ...E) S { return slices.Replace(s, i, j, v...) } // Clone returns a copy of the slice. // The elements are copied using assignment, so this is a shallow clone. +// +//go:fix inline func Clone[S ~[]E, E any](s S) S { return slices.Clone(s) } @@ -121,6 +142,8 @@ func Clone[S ~[]E, E any](s S) S { // Compact modifies the contents of the slice s and returns the modified slice, // which may have a smaller length. // Compact zeroes the elements between the new length and the original length. +// +//go:fix inline func Compact[S ~[]E, E comparable](s S) S { return slices.Compact(s) } @@ -128,6 +151,8 @@ func Compact[S ~[]E, E comparable](s S) S { // CompactFunc is like [Compact] but uses an equality function to compare elements. // For runs of elements that compare equal, CompactFunc keeps the first one. // CompactFunc zeroes the elements between the new length and the original length. +// +//go:fix inline func CompactFunc[S ~[]E, E any](s S, eq func(E, E) bool) S { return slices.CompactFunc(s, eq) } @@ -136,16 +161,22 @@ func CompactFunc[S ~[]E, E any](s S, eq func(E, E) bool) S { // another n elements. After Grow(n), at least n elements can be appended // to the slice without another allocation. If n is negative or too large to // allocate the memory, Grow panics. +// +//go:fix inline func Grow[S ~[]E, E any](s S, n int) S { return slices.Grow(s, n) } // Clip removes unused capacity from the slice, returning s[:len(s):len(s)]. +// +//go:fix inline func Clip[S ~[]E, E any](s S) S { return slices.Clip(s) } // Reverse reverses the elements of the slice in place. +// +//go:fix inline func Reverse[S ~[]E, E any](s S) { slices.Reverse(s) } diff --git a/vendor/golang.org/x/exp/slices/sort.go b/vendor/golang.org/x/exp/slices/sort.go index e270a746..bd91a8d4 100644 --- a/vendor/golang.org/x/exp/slices/sort.go +++ b/vendor/golang.org/x/exp/slices/sort.go @@ -9,11 +9,10 @@ import ( "slices" ) -// TODO(adonovan): add a "//go:fix inline" annotation to each function -// in this file; see https://go.dev/issue/32816. - // Sort sorts a slice of any ordered type in ascending order. // When sorting floating-point numbers, NaNs are ordered before other values. +// +//go:fix inline func Sort[S ~[]E, E cmp.Ordered](x S) { slices.Sort(x) } @@ -27,23 +26,31 @@ func Sort[S ~[]E, E cmp.Ordered](x S) { // SortFunc requires that cmp is a strict weak ordering. // See https://en.wikipedia.org/wiki/Weak_ordering#Strict_weak_orderings. // To indicate 'uncomparable', return 0 from the function. +// +//go:fix inline func SortFunc[S ~[]E, E any](x S, cmp func(a, b E) int) { slices.SortFunc(x, cmp) } // SortStableFunc sorts the slice x while keeping the original order of equal // elements, using cmp to compare elements in the same way as [SortFunc]. +// +//go:fix inline func SortStableFunc[S ~[]E, E any](x S, cmp func(a, b E) int) { slices.SortStableFunc(x, cmp) } // IsSorted reports whether x is sorted in ascending order. +// +//go:fix inline func IsSorted[S ~[]E, E cmp.Ordered](x S) bool { return slices.IsSorted(x) } // IsSortedFunc reports whether x is sorted in ascending order, with cmp as the // comparison function as defined by [SortFunc]. +// +//go:fix inline func IsSortedFunc[S ~[]E, E any](x S, cmp func(a, b E) int) bool { return slices.IsSortedFunc(x, cmp) } @@ -51,6 +58,8 @@ func IsSortedFunc[S ~[]E, E any](x S, cmp func(a, b E) int) bool { // Min returns the minimal value in x. It panics if x is empty. // For floating-point numbers, Min propagates NaNs (any NaN value in x // forces the output to be NaN). +// +//go:fix inline func Min[S ~[]E, E cmp.Ordered](x S) E { return slices.Min(x) } @@ -58,6 +67,8 @@ func Min[S ~[]E, E cmp.Ordered](x S) E { // MinFunc returns the minimal value in x, using cmp to compare elements. // It panics if x is empty. If there is more than one minimal element // according to the cmp function, MinFunc returns the first one. +// +//go:fix inline func MinFunc[S ~[]E, E any](x S, cmp func(a, b E) int) E { return slices.MinFunc(x, cmp) } @@ -65,6 +76,8 @@ func MinFunc[S ~[]E, E any](x S, cmp func(a, b E) int) E { // Max returns the maximal value in x. It panics if x is empty. // For floating-point E, Max propagates NaNs (any NaN value in x // forces the output to be NaN). +// +//go:fix inline func Max[S ~[]E, E cmp.Ordered](x S) E { return slices.Max(x) } @@ -72,6 +85,8 @@ func Max[S ~[]E, E cmp.Ordered](x S) E { // MaxFunc returns the maximal value in x, using cmp to compare elements. // It panics if x is empty. If there is more than one maximal element // according to the cmp function, MaxFunc returns the first one. +// +//go:fix inline func MaxFunc[S ~[]E, E any](x S, cmp func(a, b E) int) E { return slices.MaxFunc(x, cmp) } @@ -80,6 +95,8 @@ func MaxFunc[S ~[]E, E any](x S, cmp func(a, b E) int) E { // where target is found, or the position where target would appear in the // sort order; it also returns a bool saying whether the target is really found // in the slice. The slice must be sorted in increasing order. +// +//go:fix inline func BinarySearch[S ~[]E, E cmp.Ordered](x S, target E) (int, bool) { return slices.BinarySearch(x, target) } @@ -91,6 +108,8 @@ func BinarySearch[S ~[]E, E cmp.Ordered](x S, target E) (int, bool) { // or a positive number if the slice element follows the target. // cmp must implement the same ordering as the slice, such that if // cmp(a, t) < 0 and cmp(b, t) >= 0, then a must precede b in the slice. +// +//go:fix inline func BinarySearchFunc[S ~[]E, E, T any](x S, target T, cmp func(E, T) int) (int, bool) { return slices.BinarySearchFunc(x, target, cmp) } diff --git a/vendor/golang.org/x/mod/LICENSE b/vendor/golang.org/x/mod/LICENSE deleted file mode 100644 index 2a7cf70d..00000000 --- a/vendor/golang.org/x/mod/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/mod/PATENTS b/vendor/golang.org/x/mod/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/vendor/golang.org/x/mod/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/mod/semver/semver.go b/vendor/golang.org/x/mod/semver/semver.go deleted file mode 100644 index 9a2dfd33..00000000 --- a/vendor/golang.org/x/mod/semver/semver.go +++ /dev/null @@ -1,401 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package semver implements comparison of semantic version strings. -// In this package, semantic version strings must begin with a leading "v", -// as in "v1.0.0". -// -// The general form of a semantic version string accepted by this package is -// -// vMAJOR[.MINOR[.PATCH[-PRERELEASE][+BUILD]]] -// -// where square brackets indicate optional parts of the syntax; -// MAJOR, MINOR, and PATCH are decimal integers without extra leading zeros; -// PRERELEASE and BUILD are each a series of non-empty dot-separated identifiers -// using only alphanumeric characters and hyphens; and -// all-numeric PRERELEASE identifiers must not have leading zeros. -// -// This package follows Semantic Versioning 2.0.0 (see semver.org) -// with two exceptions. First, it requires the "v" prefix. Second, it recognizes -// vMAJOR and vMAJOR.MINOR (with no prerelease or build suffixes) -// as shorthands for vMAJOR.0.0 and vMAJOR.MINOR.0. -package semver - -import "sort" - -// parsed returns the parsed form of a semantic version string. -type parsed struct { - major string - minor string - patch string - short string - prerelease string - build string -} - -// IsValid reports whether v is a valid semantic version string. -func IsValid(v string) bool { - _, ok := parse(v) - return ok -} - -// Canonical returns the canonical formatting of the semantic version v. -// It fills in any missing .MINOR or .PATCH and discards build metadata. -// Two semantic versions compare equal only if their canonical formattings -// are identical strings. -// The canonical invalid semantic version is the empty string. -func Canonical(v string) string { - p, ok := parse(v) - if !ok { - return "" - } - if p.build != "" { - return v[:len(v)-len(p.build)] - } - if p.short != "" { - return v + p.short - } - return v -} - -// Major returns the major version prefix of the semantic version v. -// For example, Major("v2.1.0") == "v2". -// If v is an invalid semantic version string, Major returns the empty string. -func Major(v string) string { - pv, ok := parse(v) - if !ok { - return "" - } - return v[:1+len(pv.major)] -} - -// MajorMinor returns the major.minor version prefix of the semantic version v. -// For example, MajorMinor("v2.1.0") == "v2.1". -// If v is an invalid semantic version string, MajorMinor returns the empty string. -func MajorMinor(v string) string { - pv, ok := parse(v) - if !ok { - return "" - } - i := 1 + len(pv.major) - if j := i + 1 + len(pv.minor); j <= len(v) && v[i] == '.' && v[i+1:j] == pv.minor { - return v[:j] - } - return v[:i] + "." + pv.minor -} - -// Prerelease returns the prerelease suffix of the semantic version v. -// For example, Prerelease("v2.1.0-pre+meta") == "-pre". -// If v is an invalid semantic version string, Prerelease returns the empty string. -func Prerelease(v string) string { - pv, ok := parse(v) - if !ok { - return "" - } - return pv.prerelease -} - -// Build returns the build suffix of the semantic version v. -// For example, Build("v2.1.0+meta") == "+meta". -// If v is an invalid semantic version string, Build returns the empty string. -func Build(v string) string { - pv, ok := parse(v) - if !ok { - return "" - } - return pv.build -} - -// Compare returns an integer comparing two versions according to -// semantic version precedence. -// The result will be 0 if v == w, -1 if v < w, or +1 if v > w. -// -// An invalid semantic version string is considered less than a valid one. -// All invalid semantic version strings compare equal to each other. -func Compare(v, w string) int { - pv, ok1 := parse(v) - pw, ok2 := parse(w) - if !ok1 && !ok2 { - return 0 - } - if !ok1 { - return -1 - } - if !ok2 { - return +1 - } - if c := compareInt(pv.major, pw.major); c != 0 { - return c - } - if c := compareInt(pv.minor, pw.minor); c != 0 { - return c - } - if c := compareInt(pv.patch, pw.patch); c != 0 { - return c - } - return comparePrerelease(pv.prerelease, pw.prerelease) -} - -// Max canonicalizes its arguments and then returns the version string -// that compares greater. -// -// Deprecated: use [Compare] instead. In most cases, returning a canonicalized -// version is not expected or desired. -func Max(v, w string) string { - v = Canonical(v) - w = Canonical(w) - if Compare(v, w) > 0 { - return v - } - return w -} - -// ByVersion implements [sort.Interface] for sorting semantic version strings. -type ByVersion []string - -func (vs ByVersion) Len() int { return len(vs) } -func (vs ByVersion) Swap(i, j int) { vs[i], vs[j] = vs[j], vs[i] } -func (vs ByVersion) Less(i, j int) bool { - cmp := Compare(vs[i], vs[j]) - if cmp != 0 { - return cmp < 0 - } - return vs[i] < vs[j] -} - -// Sort sorts a list of semantic version strings using [ByVersion]. -func Sort(list []string) { - sort.Sort(ByVersion(list)) -} - -func parse(v string) (p parsed, ok bool) { - if v == "" || v[0] != 'v' { - return - } - p.major, v, ok = parseInt(v[1:]) - if !ok { - return - } - if v == "" { - p.minor = "0" - p.patch = "0" - p.short = ".0.0" - return - } - if v[0] != '.' { - ok = false - return - } - p.minor, v, ok = parseInt(v[1:]) - if !ok { - return - } - if v == "" { - p.patch = "0" - p.short = ".0" - return - } - if v[0] != '.' { - ok = false - return - } - p.patch, v, ok = parseInt(v[1:]) - if !ok { - return - } - if len(v) > 0 && v[0] == '-' { - p.prerelease, v, ok = parsePrerelease(v) - if !ok { - return - } - } - if len(v) > 0 && v[0] == '+' { - p.build, v, ok = parseBuild(v) - if !ok { - return - } - } - if v != "" { - ok = false - return - } - ok = true - return -} - -func parseInt(v string) (t, rest string, ok bool) { - if v == "" { - return - } - if v[0] < '0' || '9' < v[0] { - return - } - i := 1 - for i < len(v) && '0' <= v[i] && v[i] <= '9' { - i++ - } - if v[0] == '0' && i != 1 { - return - } - return v[:i], v[i:], true -} - -func parsePrerelease(v string) (t, rest string, ok bool) { - // "A pre-release version MAY be denoted by appending a hyphen and - // a series of dot separated identifiers immediately following the patch version. - // Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. - // Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading zeroes." - if v == "" || v[0] != '-' { - return - } - i := 1 - start := 1 - for i < len(v) && v[i] != '+' { - if !isIdentChar(v[i]) && v[i] != '.' { - return - } - if v[i] == '.' { - if start == i || isBadNum(v[start:i]) { - return - } - start = i + 1 - } - i++ - } - if start == i || isBadNum(v[start:i]) { - return - } - return v[:i], v[i:], true -} - -func parseBuild(v string) (t, rest string, ok bool) { - if v == "" || v[0] != '+' { - return - } - i := 1 - start := 1 - for i < len(v) { - if !isIdentChar(v[i]) && v[i] != '.' { - return - } - if v[i] == '.' { - if start == i { - return - } - start = i + 1 - } - i++ - } - if start == i { - return - } - return v[:i], v[i:], true -} - -func isIdentChar(c byte) bool { - return 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9' || c == '-' -} - -func isBadNum(v string) bool { - i := 0 - for i < len(v) && '0' <= v[i] && v[i] <= '9' { - i++ - } - return i == len(v) && i > 1 && v[0] == '0' -} - -func isNum(v string) bool { - i := 0 - for i < len(v) && '0' <= v[i] && v[i] <= '9' { - i++ - } - return i == len(v) -} - -func compareInt(x, y string) int { - if x == y { - return 0 - } - if len(x) < len(y) { - return -1 - } - if len(x) > len(y) { - return +1 - } - if x < y { - return -1 - } else { - return +1 - } -} - -func comparePrerelease(x, y string) int { - // "When major, minor, and patch are equal, a pre-release version has - // lower precedence than a normal version. - // Example: 1.0.0-alpha < 1.0.0. - // Precedence for two pre-release versions with the same major, minor, - // and patch version MUST be determined by comparing each dot separated - // identifier from left to right until a difference is found as follows: - // identifiers consisting of only digits are compared numerically and - // identifiers with letters or hyphens are compared lexically in ASCII - // sort order. Numeric identifiers always have lower precedence than - // non-numeric identifiers. A larger set of pre-release fields has a - // higher precedence than a smaller set, if all of the preceding - // identifiers are equal. - // Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < - // 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0." - if x == y { - return 0 - } - if x == "" { - return +1 - } - if y == "" { - return -1 - } - for x != "" && y != "" { - x = x[1:] // skip - or . - y = y[1:] // skip - or . - var dx, dy string - dx, x = nextIdent(x) - dy, y = nextIdent(y) - if dx != dy { - ix := isNum(dx) - iy := isNum(dy) - if ix != iy { - if ix { - return -1 - } else { - return +1 - } - } - if ix { - if len(dx) < len(dy) { - return -1 - } - if len(dx) > len(dy) { - return +1 - } - } - if dx < dy { - return -1 - } else { - return +1 - } - } - } - if x == "" { - return -1 - } else { - return +1 - } -} - -func nextIdent(x string) (dx, rest string) { - i := 0 - for i < len(x) && x[i] != '.' { - i++ - } - return x[:i], x[i:] -} diff --git a/vendor/golang.org/x/net/context/context.go b/vendor/golang.org/x/net/context/context.go index cf66309c..db1c95fa 100644 --- a/vendor/golang.org/x/net/context/context.go +++ b/vendor/golang.org/x/net/context/context.go @@ -3,29 +3,31 @@ // license that can be found in the LICENSE file. // Package context defines the Context type, which carries deadlines, -// cancelation signals, and other request-scoped values across API boundaries +// cancellation signals, and other request-scoped values across API boundaries // and between processes. // As of Go 1.7 this package is available in the standard library under the -// name context. https://golang.org/pkg/context. +// name [context], and migrating to it can be done automatically with [go fix]. // -// Incoming requests to a server should create a Context, and outgoing calls to -// servers should accept a Context. The chain of function calls between must -// propagate the Context, optionally replacing it with a modified copy created -// using WithDeadline, WithTimeout, WithCancel, or WithValue. +// Incoming requests to a server should create a [Context], and outgoing +// calls to servers should accept a Context. The chain of function +// calls between them must propagate the Context, optionally replacing +// it with a derived Context created using [WithCancel], [WithDeadline], +// [WithTimeout], or [WithValue]. // // Programs that use Contexts should follow these rules to keep interfaces // consistent across packages and enable static analysis tools to check context // propagation: // // Do not store Contexts inside a struct type; instead, pass a Context -// explicitly to each function that needs it. The Context should be the first +// explicitly to each function that needs it. This is discussed further in +// https://go.dev/blog/context-and-structs. The Context should be the first // parameter, typically named ctx: // // func DoSomething(ctx context.Context, arg Arg) error { // // ... use ctx ... // } // -// Do not pass a nil Context, even if a function permits it. Pass context.TODO +// Do not pass a nil [Context], even if a function permits it. Pass [context.TODO] // if you are unsure about which Context to use. // // Use context Values only for request-scoped data that transits processes and @@ -34,9 +36,30 @@ // The same Context may be passed to functions running in different goroutines; // Contexts are safe for simultaneous use by multiple goroutines. // -// See http://blog.golang.org/context for example code for a server that uses +// See https://go.dev/blog/context for example code for a server that uses // Contexts. -package context // import "golang.org/x/net/context" +// +// [go fix]: https://go.dev/cmd/go#hdr-Update_packages_to_use_new_APIs +package context + +import ( + "context" // standard library's context, as of Go 1.7 + "time" +) + +// A Context carries a deadline, a cancellation signal, and other values across +// API boundaries. +// +// Context's methods may be called by multiple goroutines simultaneously. +type Context = context.Context + +// Canceled is the error returned by [Context.Err] when the context is canceled +// for some reason other than its deadline passing. +var Canceled = context.Canceled + +// DeadlineExceeded is the error returned by [Context.Err] when the context is canceled +// due to its deadline passing. +var DeadlineExceeded = context.DeadlineExceeded // Background returns a non-nil, empty Context. It is never canceled, has no // values, and has no deadline. It is typically used by the main function, @@ -49,8 +72,73 @@ func Background() Context { // TODO returns a non-nil, empty Context. Code should use context.TODO when // it's unclear which Context to use or it is not yet available (because the // surrounding function has not yet been extended to accept a Context -// parameter). TODO is recognized by static analysis tools that determine -// whether Contexts are propagated correctly in a program. +// parameter). func TODO() Context { return todo } + +var ( + background = context.Background() + todo = context.TODO() +) + +// A CancelFunc tells an operation to abandon its work. +// A CancelFunc does not wait for the work to stop. +// A CancelFunc may be called by multiple goroutines simultaneously. +// After the first call, subsequent calls to a CancelFunc do nothing. +type CancelFunc = context.CancelFunc + +// WithCancel returns a derived context that points to the parent context +// but has a new Done channel. The returned context's Done channel is closed +// when the returned cancel function is called or when the parent context's +// Done channel is closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this [Context] complete. +func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { + return context.WithCancel(parent) +} + +// WithDeadline returns a derived context that points to the parent context +// but has the deadline adjusted to be no later than d. If the parent's +// deadline is already earlier than d, WithDeadline(parent, d) is semantically +// equivalent to parent. The returned [Context.Done] channel is closed when +// the deadline expires, when the returned cancel function is called, +// or when the parent context's Done channel is closed, whichever happens first. +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this [Context] complete. +func WithDeadline(parent Context, d time.Time) (Context, CancelFunc) { + return context.WithDeadline(parent, d) +} + +// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). +// +// Canceling this context releases resources associated with it, so code should +// call cancel as soon as the operations running in this [Context] complete: +// +// func slowOperationWithTimeout(ctx context.Context) (Result, error) { +// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) +// defer cancel() // releases resources if slowOperation completes before timeout elapses +// return slowOperation(ctx) +// } +func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { + return context.WithTimeout(parent, timeout) +} + +// WithValue returns a derived context that points to the parent Context. +// In the derived context, the value associated with key is val. +// +// Use context Values only for request-scoped data that transits processes and +// APIs, not for passing optional parameters to functions. +// +// The provided key must be comparable and should not be of type +// string or any other built-in type to avoid collisions between +// packages using context. Users of WithValue should define their own +// types for keys. To avoid allocating when assigning to an +// interface{}, context keys often have concrete type +// struct{}. Alternatively, exported context key variables' static +// type should be a pointer or interface. +func WithValue(parent Context, key, val interface{}) Context { + return context.WithValue(parent, key, val) +} diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go deleted file mode 100644 index 0c1b8679..00000000 --- a/vendor/golang.org/x/net/context/go17.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.7 - -package context - -import ( - "context" // standard library's context, as of Go 1.7 - "time" -) - -var ( - todo = context.TODO() - background = context.Background() -) - -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = context.Canceled - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = context.DeadlineExceeded - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - ctx, f := context.WithCancel(parent) - return ctx, f -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - ctx, f := context.WithDeadline(parent, deadline) - return ctx, f -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return context.WithValue(parent, key, val) -} diff --git a/vendor/golang.org/x/net/context/go19.go b/vendor/golang.org/x/net/context/go19.go deleted file mode 100644 index e31e35a9..00000000 --- a/vendor/golang.org/x/net/context/go19.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.9 - -package context - -import "context" // standard library's context, as of Go 1.7 - -// A Context carries a deadline, a cancelation signal, and other values across -// API boundaries. -// -// Context's methods may be called by multiple goroutines simultaneously. -type Context = context.Context - -// A CancelFunc tells an operation to abandon its work. -// A CancelFunc does not wait for the work to stop. -// After the first call, subsequent calls to a CancelFunc do nothing. -type CancelFunc = context.CancelFunc diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go deleted file mode 100644 index 065ff3df..00000000 --- a/vendor/golang.org/x/net/context/pre_go17.go +++ /dev/null @@ -1,300 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.7 - -package context - -import ( - "errors" - "fmt" - "sync" - "time" -) - -// An emptyCtx is never canceled, has no values, and has no deadline. It is not -// struct{}, since vars of this type must have distinct addresses. -type emptyCtx int - -func (*emptyCtx) Deadline() (deadline time.Time, ok bool) { - return -} - -func (*emptyCtx) Done() <-chan struct{} { - return nil -} - -func (*emptyCtx) Err() error { - return nil -} - -func (*emptyCtx) Value(key interface{}) interface{} { - return nil -} - -func (e *emptyCtx) String() string { - switch e { - case background: - return "context.Background" - case todo: - return "context.TODO" - } - return "unknown empty Context" -} - -var ( - background = new(emptyCtx) - todo = new(emptyCtx) -) - -// Canceled is the error returned by Context.Err when the context is canceled. -var Canceled = errors.New("context canceled") - -// DeadlineExceeded is the error returned by Context.Err when the context's -// deadline passes. -var DeadlineExceeded = errors.New("context deadline exceeded") - -// WithCancel returns a copy of parent with a new Done channel. The returned -// context's Done channel is closed when the returned cancel function is called -// or when the parent context's Done channel is closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { - c := newCancelCtx(parent) - propagateCancel(parent, c) - return c, func() { c.cancel(true, Canceled) } -} - -// newCancelCtx returns an initialized cancelCtx. -func newCancelCtx(parent Context) *cancelCtx { - return &cancelCtx{ - Context: parent, - done: make(chan struct{}), - } -} - -// propagateCancel arranges for child to be canceled when parent is. -func propagateCancel(parent Context, child canceler) { - if parent.Done() == nil { - return // parent is never canceled - } - if p, ok := parentCancelCtx(parent); ok { - p.mu.Lock() - if p.err != nil { - // parent has already been canceled - child.cancel(false, p.err) - } else { - if p.children == nil { - p.children = make(map[canceler]bool) - } - p.children[child] = true - } - p.mu.Unlock() - } else { - go func() { - select { - case <-parent.Done(): - child.cancel(false, parent.Err()) - case <-child.Done(): - } - }() - } -} - -// parentCancelCtx follows a chain of parent references until it finds a -// *cancelCtx. This function understands how each of the concrete types in this -// package represents its parent. -func parentCancelCtx(parent Context) (*cancelCtx, bool) { - for { - switch c := parent.(type) { - case *cancelCtx: - return c, true - case *timerCtx: - return c.cancelCtx, true - case *valueCtx: - parent = c.Context - default: - return nil, false - } - } -} - -// removeChild removes a context from its parent. -func removeChild(parent Context, child canceler) { - p, ok := parentCancelCtx(parent) - if !ok { - return - } - p.mu.Lock() - if p.children != nil { - delete(p.children, child) - } - p.mu.Unlock() -} - -// A canceler is a context type that can be canceled directly. The -// implementations are *cancelCtx and *timerCtx. -type canceler interface { - cancel(removeFromParent bool, err error) - Done() <-chan struct{} -} - -// A cancelCtx can be canceled. When canceled, it also cancels any children -// that implement canceler. -type cancelCtx struct { - Context - - done chan struct{} // closed by the first cancel call. - - mu sync.Mutex - children map[canceler]bool // set to nil by the first cancel call - err error // set to non-nil by the first cancel call -} - -func (c *cancelCtx) Done() <-chan struct{} { - return c.done -} - -func (c *cancelCtx) Err() error { - c.mu.Lock() - defer c.mu.Unlock() - return c.err -} - -func (c *cancelCtx) String() string { - return fmt.Sprintf("%v.WithCancel", c.Context) -} - -// cancel closes c.done, cancels each of c's children, and, if -// removeFromParent is true, removes c from its parent's children. -func (c *cancelCtx) cancel(removeFromParent bool, err error) { - if err == nil { - panic("context: internal error: missing cancel error") - } - c.mu.Lock() - if c.err != nil { - c.mu.Unlock() - return // already canceled - } - c.err = err - close(c.done) - for child := range c.children { - // NOTE: acquiring the child's lock while holding parent's lock. - child.cancel(false, err) - } - c.children = nil - c.mu.Unlock() - - if removeFromParent { - removeChild(c.Context, c) - } -} - -// WithDeadline returns a copy of the parent context with the deadline adjusted -// to be no later than d. If the parent's deadline is already earlier than d, -// WithDeadline(parent, d) is semantically equivalent to parent. The returned -// context's Done channel is closed when the deadline expires, when the returned -// cancel function is called, or when the parent context's Done channel is -// closed, whichever happens first. -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete. -func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { - if cur, ok := parent.Deadline(); ok && cur.Before(deadline) { - // The current deadline is already sooner than the new one. - return WithCancel(parent) - } - c := &timerCtx{ - cancelCtx: newCancelCtx(parent), - deadline: deadline, - } - propagateCancel(parent, c) - d := deadline.Sub(time.Now()) - if d <= 0 { - c.cancel(true, DeadlineExceeded) // deadline has already passed - return c, func() { c.cancel(true, Canceled) } - } - c.mu.Lock() - defer c.mu.Unlock() - if c.err == nil { - c.timer = time.AfterFunc(d, func() { - c.cancel(true, DeadlineExceeded) - }) - } - return c, func() { c.cancel(true, Canceled) } -} - -// A timerCtx carries a timer and a deadline. It embeds a cancelCtx to -// implement Done and Err. It implements cancel by stopping its timer then -// delegating to cancelCtx.cancel. -type timerCtx struct { - *cancelCtx - timer *time.Timer // Under cancelCtx.mu. - - deadline time.Time -} - -func (c *timerCtx) Deadline() (deadline time.Time, ok bool) { - return c.deadline, true -} - -func (c *timerCtx) String() string { - return fmt.Sprintf("%v.WithDeadline(%s [%s])", c.cancelCtx.Context, c.deadline, c.deadline.Sub(time.Now())) -} - -func (c *timerCtx) cancel(removeFromParent bool, err error) { - c.cancelCtx.cancel(false, err) - if removeFromParent { - // Remove this timerCtx from its parent cancelCtx's children. - removeChild(c.cancelCtx.Context, c) - } - c.mu.Lock() - if c.timer != nil { - c.timer.Stop() - c.timer = nil - } - c.mu.Unlock() -} - -// WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). -// -// Canceling this context releases resources associated with it, so code should -// call cancel as soon as the operations running in this Context complete: -// -// func slowOperationWithTimeout(ctx context.Context) (Result, error) { -// ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond) -// defer cancel() // releases resources if slowOperation completes before timeout elapses -// return slowOperation(ctx) -// } -func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { - return WithDeadline(parent, time.Now().Add(timeout)) -} - -// WithValue returns a copy of parent in which the value associated with key is -// val. -// -// Use context Values only for request-scoped data that transits processes and -// APIs, not for passing optional parameters to functions. -func WithValue(parent Context, key interface{}, val interface{}) Context { - return &valueCtx{parent, key, val} -} - -// A valueCtx carries a key-value pair. It implements Value for that key and -// delegates all other calls to the embedded Context. -type valueCtx struct { - Context - key, val interface{} -} - -func (c *valueCtx) String() string { - return fmt.Sprintf("%v.WithValue(%#v, %#v)", c.Context, c.key, c.val) -} - -func (c *valueCtx) Value(key interface{}) interface{} { - if c.key == key { - return c.val - } - return c.Context.Value(key) -} diff --git a/vendor/golang.org/x/net/context/pre_go19.go b/vendor/golang.org/x/net/context/pre_go19.go deleted file mode 100644 index ec5a6380..00000000 --- a/vendor/golang.org/x/net/context/pre_go19.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.9 - -package context - -import "time" - -// A Context carries a deadline, a cancelation signal, and other values across -// API boundaries. -// -// Context's methods may be called by multiple goroutines simultaneously. -type Context interface { - // Deadline returns the time when work done on behalf of this context - // should be canceled. Deadline returns ok==false when no deadline is - // set. Successive calls to Deadline return the same results. - Deadline() (deadline time.Time, ok bool) - - // Done returns a channel that's closed when work done on behalf of this - // context should be canceled. Done may return nil if this context can - // never be canceled. Successive calls to Done return the same value. - // - // WithCancel arranges for Done to be closed when cancel is called; - // WithDeadline arranges for Done to be closed when the deadline - // expires; WithTimeout arranges for Done to be closed when the timeout - // elapses. - // - // Done is provided for use in select statements: - // - // // Stream generates values with DoSomething and sends them to out - // // until DoSomething returns an error or ctx.Done is closed. - // func Stream(ctx context.Context, out chan<- Value) error { - // for { - // v, err := DoSomething(ctx) - // if err != nil { - // return err - // } - // select { - // case <-ctx.Done(): - // return ctx.Err() - // case out <- v: - // } - // } - // } - // - // See http://blog.golang.org/pipelines for more examples of how to use - // a Done channel for cancelation. - Done() <-chan struct{} - - // Err returns a non-nil error value after Done is closed. Err returns - // Canceled if the context was canceled or DeadlineExceeded if the - // context's deadline passed. No other values for Err are defined. - // After Done is closed, successive calls to Err return the same value. - Err() error - - // Value returns the value associated with this context for key, or nil - // if no value is associated with key. Successive calls to Value with - // the same key returns the same result. - // - // Use context values only for request-scoped data that transits - // processes and API boundaries, not for passing optional parameters to - // functions. - // - // A key identifies a specific value in a Context. Functions that wish - // to store values in Context typically allocate a key in a global - // variable then use that key as the argument to context.WithValue and - // Context.Value. A key can be any type that supports equality; - // packages should define keys as an unexported type to avoid - // collisions. - // - // Packages that define a Context key should provide type-safe accessors - // for the values stores using that key: - // - // // Package user defines a User type that's stored in Contexts. - // package user - // - // import "golang.org/x/net/context" - // - // // User is the type of value stored in the Contexts. - // type User struct {...} - // - // // key is an unexported type for keys defined in this package. - // // This prevents collisions with keys defined in other packages. - // type key int - // - // // userKey is the key for user.User values in Contexts. It is - // // unexported; clients use user.NewContext and user.FromContext - // // instead of using this key directly. - // var userKey key = 0 - // - // // NewContext returns a new Context that carries value u. - // func NewContext(ctx context.Context, u *User) context.Context { - // return context.WithValue(ctx, userKey, u) - // } - // - // // FromContext returns the User value stored in ctx, if any. - // func FromContext(ctx context.Context) (*User, bool) { - // u, ok := ctx.Value(userKey).(*User) - // return u, ok - // } - Value(key interface{}) interface{} -} - -// A CancelFunc tells an operation to abandon its work. -// A CancelFunc does not wait for the work to stop. -// After the first call, subsequent calls to a CancelFunc do nothing. -type CancelFunc func() diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go index c7601c90..6c18ea23 100644 --- a/vendor/golang.org/x/net/http2/http2.go +++ b/vendor/golang.org/x/net/http2/http2.go @@ -34,11 +34,19 @@ import ( ) var ( - VerboseLogs bool - logFrameWrites bool - logFrameReads bool - inTests bool - disableExtendedConnectProtocol bool + VerboseLogs bool + logFrameWrites bool + logFrameReads bool + inTests bool + + // Enabling extended CONNECT by causes browsers to attempt to use + // WebSockets-over-HTTP/2. This results in problems when the server's websocket + // package doesn't support extended CONNECT. + // + // Disable extended CONNECT by default for now. + // + // Issue #71128. + disableExtendedConnectProtocol = true ) func init() { @@ -51,8 +59,8 @@ func init() { logFrameWrites = true logFrameReads = true } - if strings.Contains(e, "http2xconnect=0") { - disableExtendedConnectProtocol = true + if strings.Contains(e, "http2xconnect=1") { + disableExtendedConnectProtocol = false } } @@ -407,23 +415,6 @@ func (s *sorter) SortStrings(ss []string) { s.v = save } -// validPseudoPath reports whether v is a valid :path pseudo-header -// value. It must be either: -// -// - a non-empty string starting with '/' -// - the string '*', for OPTIONS requests. -// -// For now this is only used a quick check for deciding when to clean -// up Opaque URLs before sending requests from the Transport. -// See golang.org/issue/16847 -// -// We used to enforce that the path also didn't start with "//", but -// Google's GFE accepts such paths and Chrome sends them, so ignore -// that part of the spec. See golang.org/issue/19103. -func validPseudoPath(v string) bool { - return (len(v) > 0 && v[0] == '/') || v == "*" -} - // incomparable is a zero-width, non-comparable type. Adding it to a struct // makes that struct also non-comparable, and generally doesn't add // any size (as long as it's first). diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index b55547ae..b640deb0 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -50,6 +50,7 @@ import ( "golang.org/x/net/http/httpguts" "golang.org/x/net/http2/hpack" + "golang.org/x/net/internal/httpcommon" ) const ( @@ -812,8 +813,7 @@ const maxCachedCanonicalHeadersKeysSize = 2048 func (sc *serverConn) canonicalHeader(v string) string { sc.serveG.check() - buildCommonHeaderMapsOnce() - cv, ok := commonCanonHeader[v] + cv, ok := httpcommon.CachedCanonicalHeader(v) if ok { return cv } @@ -2233,25 +2233,25 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*responseWriter, *http.Request, error) { sc.serveG.check() - rp := requestParam{ - method: f.PseudoValue("method"), - scheme: f.PseudoValue("scheme"), - authority: f.PseudoValue("authority"), - path: f.PseudoValue("path"), - protocol: f.PseudoValue("protocol"), + rp := httpcommon.ServerRequestParam{ + Method: f.PseudoValue("method"), + Scheme: f.PseudoValue("scheme"), + Authority: f.PseudoValue("authority"), + Path: f.PseudoValue("path"), + Protocol: f.PseudoValue("protocol"), } // extended connect is disabled, so we should not see :protocol - if disableExtendedConnectProtocol && rp.protocol != "" { + if disableExtendedConnectProtocol && rp.Protocol != "" { return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) } - isConnect := rp.method == "CONNECT" + isConnect := rp.Method == "CONNECT" if isConnect { - if rp.protocol == "" && (rp.path != "" || rp.scheme != "" || rp.authority == "") { + if rp.Protocol == "" && (rp.Path != "" || rp.Scheme != "" || rp.Authority == "") { return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) } - } else if rp.method == "" || rp.path == "" || (rp.scheme != "https" && rp.scheme != "http") { + } else if rp.Method == "" || rp.Path == "" || (rp.Scheme != "https" && rp.Scheme != "http") { // See 8.1.2.6 Malformed Requests and Responses: // // Malformed requests or responses that are detected @@ -2265,15 +2265,16 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res return nil, nil, sc.countError("bad_path_method", streamError(f.StreamID, ErrCodeProtocol)) } - rp.header = make(http.Header) + header := make(http.Header) + rp.Header = header for _, hf := range f.RegularFields() { - rp.header.Add(sc.canonicalHeader(hf.Name), hf.Value) + header.Add(sc.canonicalHeader(hf.Name), hf.Value) } - if rp.authority == "" { - rp.authority = rp.header.Get("Host") + if rp.Authority == "" { + rp.Authority = header.Get("Host") } - if rp.protocol != "" { - rp.header.Set(":protocol", rp.protocol) + if rp.Protocol != "" { + header.Set(":protocol", rp.Protocol) } rw, req, err := sc.newWriterAndRequestNoBody(st, rp) @@ -2282,7 +2283,7 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res } bodyOpen := !f.StreamEnded() if bodyOpen { - if vv, ok := rp.header["Content-Length"]; ok { + if vv, ok := rp.Header["Content-Length"]; ok { if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil { req.ContentLength = int64(cl) } else { @@ -2298,84 +2299,38 @@ func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*res return rw, req, nil } -type requestParam struct { - method string - scheme, authority, path string - protocol string - header http.Header -} - -func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*responseWriter, *http.Request, error) { +func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp httpcommon.ServerRequestParam) (*responseWriter, *http.Request, error) { sc.serveG.check() var tlsState *tls.ConnectionState // nil if not scheme https - if rp.scheme == "https" { + if rp.Scheme == "https" { tlsState = sc.tlsState } - needsContinue := httpguts.HeaderValuesContainsToken(rp.header["Expect"], "100-continue") - if needsContinue { - rp.header.Del("Expect") - } - // Merge Cookie headers into one "; "-delimited value. - if cookies := rp.header["Cookie"]; len(cookies) > 1 { - rp.header.Set("Cookie", strings.Join(cookies, "; ")) - } - - // Setup Trailers - var trailer http.Header - for _, v := range rp.header["Trailer"] { - for _, key := range strings.Split(v, ",") { - key = http.CanonicalHeaderKey(textproto.TrimString(key)) - switch key { - case "Transfer-Encoding", "Trailer", "Content-Length": - // Bogus. (copy of http1 rules) - // Ignore. - default: - if trailer == nil { - trailer = make(http.Header) - } - trailer[key] = nil - } - } - } - delete(rp.header, "Trailer") - - var url_ *url.URL - var requestURI string - if rp.method == "CONNECT" && rp.protocol == "" { - url_ = &url.URL{Host: rp.authority} - requestURI = rp.authority // mimic HTTP/1 server behavior - } else { - var err error - url_, err = url.ParseRequestURI(rp.path) - if err != nil { - return nil, nil, sc.countError("bad_path", streamError(st.id, ErrCodeProtocol)) - } - requestURI = rp.path + res := httpcommon.NewServerRequest(rp) + if res.InvalidReason != "" { + return nil, nil, sc.countError(res.InvalidReason, streamError(st.id, ErrCodeProtocol)) } body := &requestBody{ conn: sc, stream: st, - needsContinue: needsContinue, + needsContinue: res.NeedsContinue, } - req := &http.Request{ - Method: rp.method, - URL: url_, + req := (&http.Request{ + Method: rp.Method, + URL: res.URL, RemoteAddr: sc.remoteAddrStr, - Header: rp.header, - RequestURI: requestURI, + Header: rp.Header, + RequestURI: res.RequestURI, Proto: "HTTP/2.0", ProtoMajor: 2, ProtoMinor: 0, TLS: tlsState, - Host: rp.authority, + Host: rp.Authority, Body: body, - Trailer: trailer, - } - req = req.WithContext(st.ctx) - + Trailer: res.Trailer, + }).WithContext(st.ctx) rw := sc.newResponseWriter(st, req) return rw, req, nil } @@ -3270,12 +3225,12 @@ func (sc *serverConn) startPush(msg *startPushRequest) { // we start in "half closed (remote)" for simplicity. // See further comments at the definition of stateHalfClosedRemote. promised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote) - rw, req, err := sc.newWriterAndRequestNoBody(promised, requestParam{ - method: msg.method, - scheme: msg.url.Scheme, - authority: msg.url.Host, - path: msg.url.RequestURI(), - header: cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE + rw, req, err := sc.newWriterAndRequestNoBody(promised, httpcommon.ServerRequestParam{ + Method: msg.method, + Scheme: msg.url.Scheme, + Authority: msg.url.Host, + Path: msg.url.RequestURI(), + Header: cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE }) if err != nil { // Should not happen, since we've already validated msg.url. diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index b2e2ed33..f26356b9 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -25,7 +25,6 @@ import ( "net/http" "net/http/httptrace" "net/textproto" - "sort" "strconv" "strings" "sync" @@ -35,6 +34,7 @@ import ( "golang.org/x/net/http/httpguts" "golang.org/x/net/http2/hpack" "golang.org/x/net/idna" + "golang.org/x/net/internal/httpcommon" ) const ( @@ -1275,23 +1275,6 @@ func (cc *ClientConn) closeForLostPing() { // exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests. var errRequestCanceled = errors.New("net/http: request canceled") -func commaSeparatedTrailers(req *http.Request) (string, error) { - keys := make([]string, 0, len(req.Trailer)) - for k := range req.Trailer { - k = canonicalHeader(k) - switch k { - case "Transfer-Encoding", "Trailer", "Content-Length": - return "", fmt.Errorf("invalid Trailer key %q", k) - } - keys = append(keys, k) - } - if len(keys) > 0 { - sort.Strings(keys) - return strings.Join(keys, ","), nil - } - return "", nil -} - func (cc *ClientConn) responseHeaderTimeout() time.Duration { if cc.t.t1 != nil { return cc.t.t1.ResponseHeaderTimeout @@ -1303,22 +1286,6 @@ func (cc *ClientConn) responseHeaderTimeout() time.Duration { return 0 } -// checkConnHeaders checks whether req has any invalid connection-level headers. -// per RFC 7540 section 8.1.2.2: Connection-Specific Header Fields. -// Certain headers are special-cased as okay but not transmitted later. -func checkConnHeaders(req *http.Request) error { - if v := req.Header.Get("Upgrade"); v != "" { - return fmt.Errorf("http2: invalid Upgrade request header: %q", req.Header["Upgrade"]) - } - if vv := req.Header["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") { - return fmt.Errorf("http2: invalid Transfer-Encoding request header: %q", vv) - } - if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !asciiEqualFold(vv[0], "close") && !asciiEqualFold(vv[0], "keep-alive")) { - return fmt.Errorf("http2: invalid Connection request header: %q", vv) - } - return nil -} - // actualContentLength returns a sanitized version of // req.ContentLength, where 0 actually means zero (not unknown) and -1 // means unknown. @@ -1364,25 +1331,7 @@ func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) donec: make(chan struct{}), } - // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? - if !cc.t.disableCompression() && - req.Header.Get("Accept-Encoding") == "" && - req.Header.Get("Range") == "" && - !cs.isHead { - // Request gzip only, not deflate. Deflate is ambiguous and - // not as universally supported anyway. - // See: https://zlib.net/zlib_faq.html#faq39 - // - // Note that we don't request this for HEAD requests, - // due to a bug in nginx: - // http://trac.nginx.org/nginx/ticket/358 - // https://golang.org/issue/5522 - // - // We don't request gzip if the request is for a range, since - // auto-decoding a portion of a gzipped document will just fail - // anyway. See https://golang.org/issue/8923 - cs.requestedGzip = true - } + cs.requestedGzip = httpcommon.IsRequestGzip(req.Method, req.Header, cc.t.disableCompression()) go cs.doRequest(req, streamf) @@ -1496,10 +1445,6 @@ func (cs *clientStream) writeRequest(req *http.Request, streamf func(*clientStre cc := cs.cc ctx := cs.ctx - if err := checkConnHeaders(req); err != nil { - return err - } - // wait for setting frames to be received, a server can change this value later, // but we just wait for the first settings frame var isExtendedConnect bool @@ -1663,26 +1608,39 @@ func (cs *clientStream) encodeAndWriteHeaders(req *http.Request) error { // we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is // sent by writeRequestBody below, along with any Trailers, // again in form HEADERS{1}, CONTINUATION{0,}) - trailers, err := commaSeparatedTrailers(req) + cc.hbuf.Reset() + res, err := encodeRequestHeaders(req, cs.requestedGzip, cc.peerMaxHeaderListSize, func(name, value string) { + cc.writeHeader(name, value) + }) if err != nil { - return err - } - hasTrailers := trailers != "" - contentLen := actualContentLength(req) - hasBody := contentLen != 0 - hdrs, err := cc.encodeHeaders(req, cs.requestedGzip, trailers, contentLen) - if err != nil { - return err + return fmt.Errorf("http2: %w", err) } + hdrs := cc.hbuf.Bytes() // Write the request. - endStream := !hasBody && !hasTrailers + endStream := !res.HasBody && !res.HasTrailers cs.sentHeaders = true err = cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs) traceWroteHeaders(cs.trace) return err } +func encodeRequestHeaders(req *http.Request, addGzipHeader bool, peerMaxHeaderListSize uint64, headerf func(name, value string)) (httpcommon.EncodeHeadersResult, error) { + return httpcommon.EncodeHeaders(req.Context(), httpcommon.EncodeHeadersParam{ + Request: httpcommon.Request{ + Header: req.Header, + Trailer: req.Trailer, + URL: req.URL, + Host: req.Host, + Method: req.Method, + ActualContentLength: actualContentLength(req), + }, + AddGzipHeader: addGzipHeader, + PeerMaxHeaderListSize: peerMaxHeaderListSize, + DefaultUserAgent: defaultUserAgent, + }, headerf) +} + // cleanupWriteRequest performs post-request tasks. // // If err (the result of writeRequest) is non-nil and the stream is not closed, @@ -2070,218 +2028,6 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) } } -func validateHeaders(hdrs http.Header) string { - for k, vv := range hdrs { - if !httpguts.ValidHeaderFieldName(k) && k != ":protocol" { - return fmt.Sprintf("name %q", k) - } - for _, v := range vv { - if !httpguts.ValidHeaderFieldValue(v) { - // Don't include the value in the error, - // because it may be sensitive. - return fmt.Sprintf("value for header %q", k) - } - } - } - return "" -} - -var errNilRequestURL = errors.New("http2: Request.URI is nil") - -func isNormalConnect(req *http.Request) bool { - return req.Method == "CONNECT" && req.Header.Get(":protocol") == "" -} - -// requires cc.wmu be held. -func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) { - cc.hbuf.Reset() - if req.URL == nil { - return nil, errNilRequestURL - } - - host := req.Host - if host == "" { - host = req.URL.Host - } - host, err := httpguts.PunycodeHostPort(host) - if err != nil { - return nil, err - } - if !httpguts.ValidHostHeader(host) { - return nil, errors.New("http2: invalid Host header") - } - - var path string - if !isNormalConnect(req) { - path = req.URL.RequestURI() - if !validPseudoPath(path) { - orig := path - path = strings.TrimPrefix(path, req.URL.Scheme+"://"+host) - if !validPseudoPath(path) { - if req.URL.Opaque != "" { - return nil, fmt.Errorf("invalid request :path %q from URL.Opaque = %q", orig, req.URL.Opaque) - } else { - return nil, fmt.Errorf("invalid request :path %q", orig) - } - } - } - } - - // Check for any invalid headers+trailers and return an error before we - // potentially pollute our hpack state. (We want to be able to - // continue to reuse the hpack encoder for future requests) - if err := validateHeaders(req.Header); err != "" { - return nil, fmt.Errorf("invalid HTTP header %s", err) - } - if err := validateHeaders(req.Trailer); err != "" { - return nil, fmt.Errorf("invalid HTTP trailer %s", err) - } - - enumerateHeaders := func(f func(name, value string)) { - // 8.1.2.3 Request Pseudo-Header Fields - // The :path pseudo-header field includes the path and query parts of the - // target URI (the path-absolute production and optionally a '?' character - // followed by the query production, see Sections 3.3 and 3.4 of - // [RFC3986]). - f(":authority", host) - m := req.Method - if m == "" { - m = http.MethodGet - } - f(":method", m) - if !isNormalConnect(req) { - f(":path", path) - f(":scheme", req.URL.Scheme) - } - if trailers != "" { - f("trailer", trailers) - } - - var didUA bool - for k, vv := range req.Header { - if asciiEqualFold(k, "host") || asciiEqualFold(k, "content-length") { - // Host is :authority, already sent. - // Content-Length is automatic, set below. - continue - } else if asciiEqualFold(k, "connection") || - asciiEqualFold(k, "proxy-connection") || - asciiEqualFold(k, "transfer-encoding") || - asciiEqualFold(k, "upgrade") || - asciiEqualFold(k, "keep-alive") { - // Per 8.1.2.2 Connection-Specific Header - // Fields, don't send connection-specific - // fields. We have already checked if any - // are error-worthy so just ignore the rest. - continue - } else if asciiEqualFold(k, "user-agent") { - // Match Go's http1 behavior: at most one - // User-Agent. If set to nil or empty string, - // then omit it. Otherwise if not mentioned, - // include the default (below). - didUA = true - if len(vv) < 1 { - continue - } - vv = vv[:1] - if vv[0] == "" { - continue - } - } else if asciiEqualFold(k, "cookie") { - // Per 8.1.2.5 To allow for better compression efficiency, the - // Cookie header field MAY be split into separate header fields, - // each with one or more cookie-pairs. - for _, v := range vv { - for { - p := strings.IndexByte(v, ';') - if p < 0 { - break - } - f("cookie", v[:p]) - p++ - // strip space after semicolon if any. - for p+1 <= len(v) && v[p] == ' ' { - p++ - } - v = v[p:] - } - if len(v) > 0 { - f("cookie", v) - } - } - continue - } - - for _, v := range vv { - f(k, v) - } - } - if shouldSendReqContentLength(req.Method, contentLength) { - f("content-length", strconv.FormatInt(contentLength, 10)) - } - if addGzipHeader { - f("accept-encoding", "gzip") - } - if !didUA { - f("user-agent", defaultUserAgent) - } - } - - // Do a first pass over the headers counting bytes to ensure - // we don't exceed cc.peerMaxHeaderListSize. This is done as a - // separate pass before encoding the headers to prevent - // modifying the hpack state. - hlSize := uint64(0) - enumerateHeaders(func(name, value string) { - hf := hpack.HeaderField{Name: name, Value: value} - hlSize += uint64(hf.Size()) - }) - - if hlSize > cc.peerMaxHeaderListSize { - return nil, errRequestHeaderListSize - } - - trace := httptrace.ContextClientTrace(req.Context()) - traceHeaders := traceHasWroteHeaderField(trace) - - // Header list size is ok. Write the headers. - enumerateHeaders(func(name, value string) { - name, ascii := lowerHeader(name) - if !ascii { - // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header - // field names have to be ASCII characters (just as in HTTP/1.x). - return - } - cc.writeHeader(name, value) - if traceHeaders { - traceWroteHeaderField(trace, name, value) - } - }) - - return cc.hbuf.Bytes(), nil -} - -// shouldSendReqContentLength reports whether the http2.Transport should send -// a "content-length" request header. This logic is basically a copy of the net/http -// transferWriter.shouldSendContentLength. -// The contentLength is the corrected contentLength (so 0 means actually 0, not unknown). -// -1 means unknown. -func shouldSendReqContentLength(method string, contentLength int64) bool { - if contentLength > 0 { - return true - } - if contentLength < 0 { - return false - } - // For zero bodies, whether we send a content-length depends on the method. - // It also kinda doesn't matter for http2 either way, with END_STREAM. - switch method { - case "POST", "PUT", "PATCH": - return true - default: - return false - } -} - // requires cc.wmu be held. func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { cc.hbuf.Reset() @@ -2298,7 +2044,7 @@ func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { } for k, vv := range trailer { - lowKey, ascii := lowerHeader(k) + lowKey, ascii := httpcommon.LowerHeader(k) if !ascii { // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header // field names have to be ASCII characters (just as in HTTP/1.x). @@ -2464,6 +2210,13 @@ func (rl *clientConnReadLoop) cleanup() { } cc.cond.Broadcast() cc.mu.Unlock() + + if !cc.seenSettings { + // If we have a pending request that wants extended CONNECT, + // let it continue and fail with the connection error. + cc.extendedConnectAllowed = true + close(cc.seenSettingsChan) + } } // countReadFrameError calls Transport.CountError with a string @@ -2556,9 +2309,6 @@ func (rl *clientConnReadLoop) run() error { if VerboseLogs { cc.vlogf("http2: Transport conn %p received error from processing frame %v: %v", cc, summarizeFrame(f), err) } - if !cc.seenSettings { - close(cc.seenSettingsChan) - } return err } } @@ -2653,7 +2403,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra Status: status + " " + http.StatusText(statusCode), } for _, hf := range regularFields { - key := canonicalHeader(hf.Name) + key := httpcommon.CanonicalHeader(hf.Name) if key == "Trailer" { t := res.Trailer if t == nil { @@ -2661,7 +2411,7 @@ func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFra res.Trailer = t } foreachHeaderElement(hf.Value, func(v string) { - t[canonicalHeader(v)] = nil + t[httpcommon.CanonicalHeader(v)] = nil }) } else { vv := header[key] @@ -2785,7 +2535,7 @@ func (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFr trailer := make(http.Header) for _, hf := range f.RegularFields() { - key := canonicalHeader(hf.Name) + key := httpcommon.CanonicalHeader(hf.Name) trailer[key] = append(trailer[key], hf.Value) } cs.trailer = trailer @@ -3331,7 +3081,7 @@ func (cc *ClientConn) writeStreamReset(streamID uint32, code ErrCode, ping bool, var ( errResponseHeaderListSize = errors.New("http2: response header list larger than advertised limit") - errRequestHeaderListSize = errors.New("http2: request header list larger than peer's advertised limit") + errRequestHeaderListSize = httpcommon.ErrRequestHeaderListSize ) func (cc *ClientConn) logf(format string, args ...interface{}) { @@ -3515,16 +3265,6 @@ func traceFirstResponseByte(trace *httptrace.ClientTrace) { } } -func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { - return trace != nil && trace.WroteHeaderField != nil -} - -func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) { - if trace != nil && trace.WroteHeaderField != nil { - trace.WroteHeaderField(k, []string{v}) - } -} - func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { if trace != nil { return trace.Got1xxResponse diff --git a/vendor/golang.org/x/net/http2/write.go b/vendor/golang.org/x/net/http2/write.go index 6ff6bee7..fdb35b94 100644 --- a/vendor/golang.org/x/net/http2/write.go +++ b/vendor/golang.org/x/net/http2/write.go @@ -13,6 +13,7 @@ import ( "golang.org/x/net/http/httpguts" "golang.org/x/net/http2/hpack" + "golang.org/x/net/internal/httpcommon" ) // writeFramer is implemented by any type that is used to write frames. @@ -351,7 +352,7 @@ func encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) { } for _, k := range keys { vv := h[k] - k, ascii := lowerHeader(k) + k, ascii := httpcommon.LowerHeader(k) if !ascii { // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header // field names have to be ASCII characters (just as in HTTP/1.x). diff --git a/vendor/golang.org/x/net/internal/httpcommon/ascii.go b/vendor/golang.org/x/net/internal/httpcommon/ascii.go new file mode 100644 index 00000000..ed14da5a --- /dev/null +++ b/vendor/golang.org/x/net/internal/httpcommon/ascii.go @@ -0,0 +1,53 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package httpcommon + +import "strings" + +// The HTTP protocols are defined in terms of ASCII, not Unicode. This file +// contains helper functions which may use Unicode-aware functions which would +// otherwise be unsafe and could introduce vulnerabilities if used improperly. + +// asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t +// are equal, ASCII-case-insensitively. +func asciiEqualFold(s, t string) bool { + if len(s) != len(t) { + return false + } + for i := 0; i < len(s); i++ { + if lower(s[i]) != lower(t[i]) { + return false + } + } + return true +} + +// lower returns the ASCII lowercase version of b. +func lower(b byte) byte { + if 'A' <= b && b <= 'Z' { + return b + ('a' - 'A') + } + return b +} + +// isASCIIPrint returns whether s is ASCII and printable according to +// https://tools.ietf.org/html/rfc20#section-4.2. +func isASCIIPrint(s string) bool { + for i := 0; i < len(s); i++ { + if s[i] < ' ' || s[i] > '~' { + return false + } + } + return true +} + +// asciiToLower returns the lowercase version of s if s is ASCII and printable, +// and whether or not it was. +func asciiToLower(s string) (lower string, ok bool) { + if !isASCIIPrint(s) { + return "", false + } + return strings.ToLower(s), true +} diff --git a/vendor/golang.org/x/net/http2/headermap.go b/vendor/golang.org/x/net/internal/httpcommon/headermap.go similarity index 74% rename from vendor/golang.org/x/net/http2/headermap.go rename to vendor/golang.org/x/net/internal/httpcommon/headermap.go index 149b3dd2..92483d8e 100644 --- a/vendor/golang.org/x/net/http2/headermap.go +++ b/vendor/golang.org/x/net/internal/httpcommon/headermap.go @@ -1,11 +1,11 @@ -// Copyright 2014 The Go Authors. All rights reserved. +// Copyright 2025 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -package http2 +package httpcommon import ( - "net/http" + "net/textproto" "sync" ) @@ -82,13 +82,15 @@ func buildCommonHeaderMaps() { commonLowerHeader = make(map[string]string, len(common)) commonCanonHeader = make(map[string]string, len(common)) for _, v := range common { - chk := http.CanonicalHeaderKey(v) + chk := textproto.CanonicalMIMEHeaderKey(v) commonLowerHeader[chk] = v commonCanonHeader[v] = chk } } -func lowerHeader(v string) (lower string, ascii bool) { +// LowerHeader returns the lowercase form of a header name, +// used on the wire for HTTP/2 and HTTP/3 requests. +func LowerHeader(v string) (lower string, ascii bool) { buildCommonHeaderMapsOnce() if s, ok := commonLowerHeader[v]; ok { return s, true @@ -96,10 +98,18 @@ func lowerHeader(v string) (lower string, ascii bool) { return asciiToLower(v) } -func canonicalHeader(v string) string { +// CanonicalHeader canonicalizes a header name. (For example, "host" becomes "Host".) +func CanonicalHeader(v string) string { buildCommonHeaderMapsOnce() if s, ok := commonCanonHeader[v]; ok { return s } - return http.CanonicalHeaderKey(v) + return textproto.CanonicalMIMEHeaderKey(v) +} + +// CachedCanonicalHeader returns the canonical form of a well-known header name. +func CachedCanonicalHeader(v string) (string, bool) { + buildCommonHeaderMapsOnce() + s, ok := commonCanonHeader[v] + return s, ok } diff --git a/vendor/golang.org/x/net/internal/httpcommon/request.go b/vendor/golang.org/x/net/internal/httpcommon/request.go new file mode 100644 index 00000000..4b705531 --- /dev/null +++ b/vendor/golang.org/x/net/internal/httpcommon/request.go @@ -0,0 +1,467 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package httpcommon + +import ( + "context" + "errors" + "fmt" + "net/http/httptrace" + "net/textproto" + "net/url" + "sort" + "strconv" + "strings" + + "golang.org/x/net/http/httpguts" + "golang.org/x/net/http2/hpack" +) + +var ( + ErrRequestHeaderListSize = errors.New("request header list larger than peer's advertised limit") +) + +// Request is a subset of http.Request. +// It'd be simpler to pass an *http.Request, of course, but we can't depend on net/http +// without creating a dependency cycle. +type Request struct { + URL *url.URL + Method string + Host string + Header map[string][]string + Trailer map[string][]string + ActualContentLength int64 // 0 means 0, -1 means unknown +} + +// EncodeHeadersParam is parameters to EncodeHeaders. +type EncodeHeadersParam struct { + Request Request + + // AddGzipHeader indicates that an "accept-encoding: gzip" header should be + // added to the request. + AddGzipHeader bool + + // PeerMaxHeaderListSize, when non-zero, is the peer's MAX_HEADER_LIST_SIZE setting. + PeerMaxHeaderListSize uint64 + + // DefaultUserAgent is the User-Agent header to send when the request + // neither contains a User-Agent nor disables it. + DefaultUserAgent string +} + +// EncodeHeadersParam is the result of EncodeHeaders. +type EncodeHeadersResult struct { + HasBody bool + HasTrailers bool +} + +// EncodeHeaders constructs request headers common to HTTP/2 and HTTP/3. +// It validates a request and calls headerf with each pseudo-header and header +// for the request. +// The headerf function is called with the validated, canonicalized header name. +func EncodeHeaders(ctx context.Context, param EncodeHeadersParam, headerf func(name, value string)) (res EncodeHeadersResult, _ error) { + req := param.Request + + // Check for invalid connection-level headers. + if err := checkConnHeaders(req.Header); err != nil { + return res, err + } + + if req.URL == nil { + return res, errors.New("Request.URL is nil") + } + + host := req.Host + if host == "" { + host = req.URL.Host + } + host, err := httpguts.PunycodeHostPort(host) + if err != nil { + return res, err + } + if !httpguts.ValidHostHeader(host) { + return res, errors.New("invalid Host header") + } + + // isNormalConnect is true if this is a non-extended CONNECT request. + isNormalConnect := false + var protocol string + if vv := req.Header[":protocol"]; len(vv) > 0 { + protocol = vv[0] + } + if req.Method == "CONNECT" && protocol == "" { + isNormalConnect = true + } else if protocol != "" && req.Method != "CONNECT" { + return res, errors.New("invalid :protocol header in non-CONNECT request") + } + + // Validate the path, except for non-extended CONNECT requests which have no path. + var path string + if !isNormalConnect { + path = req.URL.RequestURI() + if !validPseudoPath(path) { + orig := path + path = strings.TrimPrefix(path, req.URL.Scheme+"://"+host) + if !validPseudoPath(path) { + if req.URL.Opaque != "" { + return res, fmt.Errorf("invalid request :path %q from URL.Opaque = %q", orig, req.URL.Opaque) + } else { + return res, fmt.Errorf("invalid request :path %q", orig) + } + } + } + } + + // Check for any invalid headers+trailers and return an error before we + // potentially pollute our hpack state. (We want to be able to + // continue to reuse the hpack encoder for future requests) + if err := validateHeaders(req.Header); err != "" { + return res, fmt.Errorf("invalid HTTP header %s", err) + } + if err := validateHeaders(req.Trailer); err != "" { + return res, fmt.Errorf("invalid HTTP trailer %s", err) + } + + trailers, err := commaSeparatedTrailers(req.Trailer) + if err != nil { + return res, err + } + + enumerateHeaders := func(f func(name, value string)) { + // 8.1.2.3 Request Pseudo-Header Fields + // The :path pseudo-header field includes the path and query parts of the + // target URI (the path-absolute production and optionally a '?' character + // followed by the query production, see Sections 3.3 and 3.4 of + // [RFC3986]). + f(":authority", host) + m := req.Method + if m == "" { + m = "GET" + } + f(":method", m) + if !isNormalConnect { + f(":path", path) + f(":scheme", req.URL.Scheme) + } + if protocol != "" { + f(":protocol", protocol) + } + if trailers != "" { + f("trailer", trailers) + } + + var didUA bool + for k, vv := range req.Header { + if asciiEqualFold(k, "host") || asciiEqualFold(k, "content-length") { + // Host is :authority, already sent. + // Content-Length is automatic, set below. + continue + } else if asciiEqualFold(k, "connection") || + asciiEqualFold(k, "proxy-connection") || + asciiEqualFold(k, "transfer-encoding") || + asciiEqualFold(k, "upgrade") || + asciiEqualFold(k, "keep-alive") { + // Per 8.1.2.2 Connection-Specific Header + // Fields, don't send connection-specific + // fields. We have already checked if any + // are error-worthy so just ignore the rest. + continue + } else if asciiEqualFold(k, "user-agent") { + // Match Go's http1 behavior: at most one + // User-Agent. If set to nil or empty string, + // then omit it. Otherwise if not mentioned, + // include the default (below). + didUA = true + if len(vv) < 1 { + continue + } + vv = vv[:1] + if vv[0] == "" { + continue + } + } else if asciiEqualFold(k, "cookie") { + // Per 8.1.2.5 To allow for better compression efficiency, the + // Cookie header field MAY be split into separate header fields, + // each with one or more cookie-pairs. + for _, v := range vv { + for { + p := strings.IndexByte(v, ';') + if p < 0 { + break + } + f("cookie", v[:p]) + p++ + // strip space after semicolon if any. + for p+1 <= len(v) && v[p] == ' ' { + p++ + } + v = v[p:] + } + if len(v) > 0 { + f("cookie", v) + } + } + continue + } else if k == ":protocol" { + // :protocol pseudo-header was already sent above. + continue + } + + for _, v := range vv { + f(k, v) + } + } + if shouldSendReqContentLength(req.Method, req.ActualContentLength) { + f("content-length", strconv.FormatInt(req.ActualContentLength, 10)) + } + if param.AddGzipHeader { + f("accept-encoding", "gzip") + } + if !didUA { + f("user-agent", param.DefaultUserAgent) + } + } + + // Do a first pass over the headers counting bytes to ensure + // we don't exceed cc.peerMaxHeaderListSize. This is done as a + // separate pass before encoding the headers to prevent + // modifying the hpack state. + if param.PeerMaxHeaderListSize > 0 { + hlSize := uint64(0) + enumerateHeaders(func(name, value string) { + hf := hpack.HeaderField{Name: name, Value: value} + hlSize += uint64(hf.Size()) + }) + + if hlSize > param.PeerMaxHeaderListSize { + return res, ErrRequestHeaderListSize + } + } + + trace := httptrace.ContextClientTrace(ctx) + + // Header list size is ok. Write the headers. + enumerateHeaders(func(name, value string) { + name, ascii := LowerHeader(name) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + return + } + + headerf(name, value) + + if trace != nil && trace.WroteHeaderField != nil { + trace.WroteHeaderField(name, []string{value}) + } + }) + + res.HasBody = req.ActualContentLength != 0 + res.HasTrailers = trailers != "" + return res, nil +} + +// IsRequestGzip reports whether we should add an Accept-Encoding: gzip header +// for a request. +func IsRequestGzip(method string, header map[string][]string, disableCompression bool) bool { + // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? + if !disableCompression && + len(header["Accept-Encoding"]) == 0 && + len(header["Range"]) == 0 && + method != "HEAD" { + // Request gzip only, not deflate. Deflate is ambiguous and + // not as universally supported anyway. + // See: https://zlib.net/zlib_faq.html#faq39 + // + // Note that we don't request this for HEAD requests, + // due to a bug in nginx: + // http://trac.nginx.org/nginx/ticket/358 + // https://golang.org/issue/5522 + // + // We don't request gzip if the request is for a range, since + // auto-decoding a portion of a gzipped document will just fail + // anyway. See https://golang.org/issue/8923 + return true + } + return false +} + +// checkConnHeaders checks whether req has any invalid connection-level headers. +// +// https://www.rfc-editor.org/rfc/rfc9114.html#section-4.2-3 +// https://www.rfc-editor.org/rfc/rfc9113.html#section-8.2.2-1 +// +// Certain headers are special-cased as okay but not transmitted later. +// For example, we allow "Transfer-Encoding: chunked", but drop the header when encoding. +func checkConnHeaders(h map[string][]string) error { + if vv := h["Upgrade"]; len(vv) > 0 && (vv[0] != "" && vv[0] != "chunked") { + return fmt.Errorf("invalid Upgrade request header: %q", vv) + } + if vv := h["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") { + return fmt.Errorf("invalid Transfer-Encoding request header: %q", vv) + } + if vv := h["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !asciiEqualFold(vv[0], "close") && !asciiEqualFold(vv[0], "keep-alive")) { + return fmt.Errorf("invalid Connection request header: %q", vv) + } + return nil +} + +func commaSeparatedTrailers(trailer map[string][]string) (string, error) { + keys := make([]string, 0, len(trailer)) + for k := range trailer { + k = CanonicalHeader(k) + switch k { + case "Transfer-Encoding", "Trailer", "Content-Length": + return "", fmt.Errorf("invalid Trailer key %q", k) + } + keys = append(keys, k) + } + if len(keys) > 0 { + sort.Strings(keys) + return strings.Join(keys, ","), nil + } + return "", nil +} + +// validPseudoPath reports whether v is a valid :path pseudo-header +// value. It must be either: +// +// - a non-empty string starting with '/' +// - the string '*', for OPTIONS requests. +// +// For now this is only used a quick check for deciding when to clean +// up Opaque URLs before sending requests from the Transport. +// See golang.org/issue/16847 +// +// We used to enforce that the path also didn't start with "//", but +// Google's GFE accepts such paths and Chrome sends them, so ignore +// that part of the spec. See golang.org/issue/19103. +func validPseudoPath(v string) bool { + return (len(v) > 0 && v[0] == '/') || v == "*" +} + +func validateHeaders(hdrs map[string][]string) string { + for k, vv := range hdrs { + if !httpguts.ValidHeaderFieldName(k) && k != ":protocol" { + return fmt.Sprintf("name %q", k) + } + for _, v := range vv { + if !httpguts.ValidHeaderFieldValue(v) { + // Don't include the value in the error, + // because it may be sensitive. + return fmt.Sprintf("value for header %q", k) + } + } + } + return "" +} + +// shouldSendReqContentLength reports whether we should send +// a "content-length" request header. This logic is basically a copy of the net/http +// transferWriter.shouldSendContentLength. +// The contentLength is the corrected contentLength (so 0 means actually 0, not unknown). +// -1 means unknown. +func shouldSendReqContentLength(method string, contentLength int64) bool { + if contentLength > 0 { + return true + } + if contentLength < 0 { + return false + } + // For zero bodies, whether we send a content-length depends on the method. + // It also kinda doesn't matter for http2 either way, with END_STREAM. + switch method { + case "POST", "PUT", "PATCH": + return true + default: + return false + } +} + +// ServerRequestParam is parameters to NewServerRequest. +type ServerRequestParam struct { + Method string + Scheme, Authority, Path string + Protocol string + Header map[string][]string +} + +// ServerRequestResult is the result of NewServerRequest. +type ServerRequestResult struct { + // Various http.Request fields. + URL *url.URL + RequestURI string + Trailer map[string][]string + + NeedsContinue bool // client provided an "Expect: 100-continue" header + + // If the request should be rejected, this is a short string suitable for passing + // to the http2 package's CountError function. + // It might be a bit odd to return errors this way rather than returing an error, + // but this ensures we don't forget to include a CountError reason. + InvalidReason string +} + +func NewServerRequest(rp ServerRequestParam) ServerRequestResult { + needsContinue := httpguts.HeaderValuesContainsToken(rp.Header["Expect"], "100-continue") + if needsContinue { + delete(rp.Header, "Expect") + } + // Merge Cookie headers into one "; "-delimited value. + if cookies := rp.Header["Cookie"]; len(cookies) > 1 { + rp.Header["Cookie"] = []string{strings.Join(cookies, "; ")} + } + + // Setup Trailers + var trailer map[string][]string + for _, v := range rp.Header["Trailer"] { + for _, key := range strings.Split(v, ",") { + key = textproto.CanonicalMIMEHeaderKey(textproto.TrimString(key)) + switch key { + case "Transfer-Encoding", "Trailer", "Content-Length": + // Bogus. (copy of http1 rules) + // Ignore. + default: + if trailer == nil { + trailer = make(map[string][]string) + } + trailer[key] = nil + } + } + } + delete(rp.Header, "Trailer") + + // "':authority' MUST NOT include the deprecated userinfo subcomponent + // for "http" or "https" schemed URIs." + // https://www.rfc-editor.org/rfc/rfc9113.html#section-8.3.1-2.3.8 + if strings.IndexByte(rp.Authority, '@') != -1 && (rp.Scheme == "http" || rp.Scheme == "https") { + return ServerRequestResult{ + InvalidReason: "userinfo_in_authority", + } + } + + var url_ *url.URL + var requestURI string + if rp.Method == "CONNECT" && rp.Protocol == "" { + url_ = &url.URL{Host: rp.Authority} + requestURI = rp.Authority // mimic HTTP/1 server behavior + } else { + var err error + url_, err = url.ParseRequestURI(rp.Path) + if err != nil { + return ServerRequestResult{ + InvalidReason: "bad_path", + } + } + requestURI = rp.Path + } + + return ServerRequestResult{ + URL: url_, + NeedsContinue: needsContinue, + RequestURI: requestURI, + Trailer: trailer, + } +} diff --git a/vendor/golang.org/x/net/proxy/per_host.go b/vendor/golang.org/x/net/proxy/per_host.go index d7d4b8b6..32bdf435 100644 --- a/vendor/golang.org/x/net/proxy/per_host.go +++ b/vendor/golang.org/x/net/proxy/per_host.go @@ -7,6 +7,7 @@ package proxy import ( "context" "net" + "net/netip" "strings" ) @@ -57,7 +58,8 @@ func (p *PerHost) DialContext(ctx context.Context, network, addr string) (c net. } func (p *PerHost) dialerForRequest(host string) Dialer { - if ip := net.ParseIP(host); ip != nil { + if nip, err := netip.ParseAddr(host); err == nil { + ip := net.IP(nip.AsSlice()) for _, net := range p.bypassNetworks { if net.Contains(ip) { return p.bypass @@ -108,8 +110,8 @@ func (p *PerHost) AddFromString(s string) { } continue } - if ip := net.ParseIP(host); ip != nil { - p.AddIP(ip) + if nip, err := netip.ParseAddr(host); err == nil { + p.AddIP(net.IP(nip.AsSlice())) continue } if strings.HasPrefix(host, "*.") { diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go index 948a3ee6..a4ea5d14 100644 --- a/vendor/golang.org/x/sync/errgroup/errgroup.go +++ b/vendor/golang.org/x/sync/errgroup/errgroup.go @@ -46,7 +46,7 @@ func (g *Group) done() { // returns a non-nil error or the first time Wait returns, whichever occurs // first. func WithContext(ctx context.Context) (*Group, context.Context) { - ctx, cancel := withCancelCause(ctx) + ctx, cancel := context.WithCancelCause(ctx) return &Group{cancel: cancel}, ctx } @@ -118,6 +118,7 @@ func (g *Group) TryGo(f func() error) bool { // SetLimit limits the number of active goroutines in this group to at most n. // A negative value indicates no limit. +// A limit of zero will prevent any new goroutines from being added. // // Any subsequent call to the Go method will block until it can add an active // goroutine without exceeding the configured limit. diff --git a/vendor/golang.org/x/sync/errgroup/go120.go b/vendor/golang.org/x/sync/errgroup/go120.go deleted file mode 100644 index f93c740b..00000000 --- a/vendor/golang.org/x/sync/errgroup/go120.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.20 - -package errgroup - -import "context" - -func withCancelCause(parent context.Context) (context.Context, func(error)) { - return context.WithCancelCause(parent) -} diff --git a/vendor/golang.org/x/sync/errgroup/pre_go120.go b/vendor/golang.org/x/sync/errgroup/pre_go120.go deleted file mode 100644 index 88ce3343..00000000 --- a/vendor/golang.org/x/sync/errgroup/pre_go120.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.20 - -package errgroup - -import "context" - -func withCancelCause(parent context.Context) (context.Context, func(error)) { - ctx, cancel := context.WithCancel(parent) - return ctx, func(error) { cancel() } -} diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go index 02609d5b..9c105f23 100644 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -72,6 +72,9 @@ var X86 struct { HasSSSE3 bool // Supplemental streaming SIMD extension 3 HasSSE41 bool // Streaming SIMD extension 4 and 4.1 HasSSE42 bool // Streaming SIMD extension 4 and 4.2 + HasAVXIFMA bool // Advanced vector extension Integer Fused Multiply Add + HasAVXVNNI bool // Advanced vector extension Vector Neural Network Instructions + HasAVXVNNIInt8 bool // Advanced vector extension Vector Neural Network Int8 instructions _ CacheLinePad } diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go index 600a6807..1e642f33 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_x86.go +++ b/vendor/golang.org/x/sys/cpu/cpu_x86.go @@ -53,6 +53,9 @@ func initOptions() { {Name: "sse41", Feature: &X86.HasSSE41}, {Name: "sse42", Feature: &X86.HasSSE42}, {Name: "ssse3", Feature: &X86.HasSSSE3}, + {Name: "avxifma", Feature: &X86.HasAVXIFMA}, + {Name: "avxvnni", Feature: &X86.HasAVXVNNI}, + {Name: "avxvnniint8", Feature: &X86.HasAVXVNNIInt8}, // These capabilities should always be enabled on amd64: {Name: "sse2", Feature: &X86.HasSSE2, Required: runtime.GOARCH == "amd64"}, @@ -106,7 +109,7 @@ func archInit() { return } - _, ebx7, ecx7, edx7 := cpuid(7, 0) + eax7, ebx7, ecx7, edx7 := cpuid(7, 0) X86.HasBMI1 = isSet(3, ebx7) X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX X86.HasBMI2 = isSet(8, ebx7) @@ -134,14 +137,24 @@ func archInit() { X86.HasAVX512VAES = isSet(9, ecx7) X86.HasAVX512VBMI2 = isSet(6, ecx7) X86.HasAVX512BITALG = isSet(12, ecx7) - - eax71, _, _, _ := cpuid(7, 1) - X86.HasAVX512BF16 = isSet(5, eax71) } X86.HasAMXTile = isSet(24, edx7) X86.HasAMXInt8 = isSet(25, edx7) X86.HasAMXBF16 = isSet(22, edx7) + + // These features depend on the second level of extended features. + if eax7 >= 1 { + eax71, _, _, edx71 := cpuid(7, 1) + if X86.HasAVX512 { + X86.HasAVX512BF16 = isSet(5, eax71) + } + if X86.HasAVX { + X86.HasAVXIFMA = isSet(23, eax71) + X86.HasAVXVNNI = isSet(4, eax71) + X86.HasAVXVNNIInt8 = isSet(4, edx71) + } + } } func isSet(bitpos uint, value uint32) bool { diff --git a/vendor/golang.org/x/sys/unix/auxv.go b/vendor/golang.org/x/sys/unix/auxv.go new file mode 100644 index 00000000..37a82528 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/auxv.go @@ -0,0 +1,36 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) + +package unix + +import ( + "syscall" + "unsafe" +) + +//go:linkname runtime_getAuxv runtime.getAuxv +func runtime_getAuxv() []uintptr + +// Auxv returns the ELF auxiliary vector as a sequence of key/value pairs. +// The returned slice is always a fresh copy, owned by the caller. +// It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed, +// which happens in some locked-down environments and build modes. +func Auxv() ([][2]uintptr, error) { + vec := runtime_getAuxv() + vecLen := len(vec) + + if vecLen == 0 { + return nil, syscall.ENOENT + } + + if vecLen%2 != 0 { + return nil, syscall.EINVAL + } + + result := make([]uintptr, vecLen) + copy(result, vec) + return unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil +} diff --git a/vendor/golang.org/x/sys/unix/auxv_unsupported.go b/vendor/golang.org/x/sys/unix/auxv_unsupported.go new file mode 100644 index 00000000..1200487f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/auxv_unsupported.go @@ -0,0 +1,13 @@ +// Copyright 2025 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) + +package unix + +import "syscall" + +func Auxv() ([][2]uintptr, error) { + return nil, syscall.ENOTSUP +} diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index 21974af0..abc39554 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -1102,3 +1102,90 @@ func (s *Strioctl) SetInt(i int) { func IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) { return ioctlPtrRet(fd, req, unsafe.Pointer(s)) } + +// Ucred Helpers +// See ucred(3c) and getpeerucred(3c) + +//sys getpeerucred(fd uintptr, ucred *uintptr) (err error) +//sys ucredFree(ucred uintptr) = ucred_free +//sys ucredGet(pid int) (ucred uintptr, err error) = ucred_get +//sys ucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid +//sys ucredGetegid(ucred uintptr) (gid int) = ucred_getegid +//sys ucredGetruid(ucred uintptr) (uid int) = ucred_getruid +//sys ucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid +//sys ucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid +//sys ucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid +//sys ucredGetpid(ucred uintptr) (pid int) = ucred_getpid + +// Ucred is an opaque struct that holds user credentials. +type Ucred struct { + ucred uintptr +} + +// We need to ensure that ucredFree is called on the underlying ucred +// when the Ucred is garbage collected. +func ucredFinalizer(u *Ucred) { + ucredFree(u.ucred) +} + +func GetPeerUcred(fd uintptr) (*Ucred, error) { + var ucred uintptr + err := getpeerucred(fd, &ucred) + if err != nil { + return nil, err + } + result := &Ucred{ + ucred: ucred, + } + // set the finalizer on the result so that the ucred will be freed + runtime.SetFinalizer(result, ucredFinalizer) + return result, nil +} + +func UcredGet(pid int) (*Ucred, error) { + ucred, err := ucredGet(pid) + if err != nil { + return nil, err + } + result := &Ucred{ + ucred: ucred, + } + // set the finalizer on the result so that the ucred will be freed + runtime.SetFinalizer(result, ucredFinalizer) + return result, nil +} + +func (u *Ucred) Geteuid() int { + defer runtime.KeepAlive(u) + return ucredGeteuid(u.ucred) +} + +func (u *Ucred) Getruid() int { + defer runtime.KeepAlive(u) + return ucredGetruid(u.ucred) +} + +func (u *Ucred) Getsuid() int { + defer runtime.KeepAlive(u) + return ucredGetsuid(u.ucred) +} + +func (u *Ucred) Getegid() int { + defer runtime.KeepAlive(u) + return ucredGetegid(u.ucred) +} + +func (u *Ucred) Getrgid() int { + defer runtime.KeepAlive(u) + return ucredGetrgid(u.ucred) +} + +func (u *Ucred) Getsgid() int { + defer runtime.KeepAlive(u) + return ucredGetsgid(u.ucred) +} + +func (u *Ucred) Getpid() int { + defer runtime.KeepAlive(u) + return ucredGetpid(u.ucred) +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go index 6ebc48b3..4f432bfe 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -1245,6 +1245,7 @@ const ( FAN_REPORT_DFID_NAME = 0xc00 FAN_REPORT_DFID_NAME_TARGET = 0x1e00 FAN_REPORT_DIR_FID = 0x400 + FAN_REPORT_FD_ERROR = 0x2000 FAN_REPORT_FID = 0x200 FAN_REPORT_NAME = 0x800 FAN_REPORT_PIDFD = 0x80 @@ -1330,8 +1331,10 @@ const ( FUSE_SUPER_MAGIC = 0x65735546 FUTEXFS_SUPER_MAGIC = 0xbad1dea F_ADD_SEALS = 0x409 + F_CREATED_QUERY = 0x404 F_DUPFD = 0x0 F_DUPFD_CLOEXEC = 0x406 + F_DUPFD_QUERY = 0x403 F_EXLCK = 0x4 F_GETFD = 0x1 F_GETFL = 0x3 @@ -1551,6 +1554,7 @@ const ( IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e IPPROTO_SCTP = 0x84 + IPPROTO_SMC = 0x100 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 @@ -1623,6 +1627,8 @@ const ( IPV6_UNICAST_IF = 0x4c IPV6_USER_FLOW = 0xe IPV6_V6ONLY = 0x1a + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 IPV6_XFRM_POLICY = 0x23 IP_ADD_MEMBERSHIP = 0x23 IP_ADD_SOURCE_MEMBERSHIP = 0x27 @@ -1867,6 +1873,7 @@ const ( MADV_UNMERGEABLE = 0xd MADV_WILLNEED = 0x3 MADV_WIPEONFORK = 0x12 + MAP_DROPPABLE = 0x8 MAP_FILE = 0x0 MAP_FIXED = 0x10 MAP_FIXED_NOREPLACE = 0x100000 @@ -1967,6 +1974,7 @@ const ( MSG_PEEK = 0x2 MSG_PROXY = 0x10 MSG_RST = 0x1000 + MSG_SOCK_DEVMEM = 0x2000000 MSG_SYN = 0x400 MSG_TRUNC = 0x20 MSG_TRYHARD = 0x4 @@ -2083,6 +2091,7 @@ const ( NFC_ATR_REQ_MAXSIZE = 0x40 NFC_ATR_RES_GB_MAXSIZE = 0x2f NFC_ATR_RES_MAXSIZE = 0x40 + NFC_ATS_MAXSIZE = 0x14 NFC_COMM_ACTIVE = 0x0 NFC_COMM_PASSIVE = 0x1 NFC_DEVICE_NAME_MAXSIZE = 0x8 @@ -2163,6 +2172,7 @@ const ( NFNL_SUBSYS_QUEUE = 0x3 NFNL_SUBSYS_ULOG = 0x4 NFS_SUPER_MAGIC = 0x6969 + NFT_BITWISE_BOOL = 0x0 NFT_CHAIN_FLAGS = 0x7 NFT_CHAIN_MAXNAMELEN = 0x100 NFT_CT_MAX = 0x17 @@ -2491,6 +2501,7 @@ const ( PR_GET_PDEATHSIG = 0x2 PR_GET_SECCOMP = 0x15 PR_GET_SECUREBITS = 0x1b + PR_GET_SHADOW_STACK_STATUS = 0x4a PR_GET_SPECULATION_CTRL = 0x34 PR_GET_TAGGED_ADDR_CTRL = 0x38 PR_GET_THP_DISABLE = 0x2a @@ -2499,6 +2510,7 @@ const ( PR_GET_TIMING = 0xd PR_GET_TSC = 0x19 PR_GET_UNALIGN = 0x5 + PR_LOCK_SHADOW_STACK_STATUS = 0x4c PR_MCE_KILL = 0x21 PR_MCE_KILL_CLEAR = 0x0 PR_MCE_KILL_DEFAULT = 0x2 @@ -2525,6 +2537,8 @@ const ( PR_PAC_GET_ENABLED_KEYS = 0x3d PR_PAC_RESET_KEYS = 0x36 PR_PAC_SET_ENABLED_KEYS = 0x3c + PR_PMLEN_MASK = 0x7f000000 + PR_PMLEN_SHIFT = 0x18 PR_PPC_DEXCR_CTRL_CLEAR = 0x4 PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC = 0x10 PR_PPC_DEXCR_CTRL_EDITABLE = 0x1 @@ -2592,6 +2606,7 @@ const ( PR_SET_PTRACER = 0x59616d61 PR_SET_SECCOMP = 0x16 PR_SET_SECUREBITS = 0x1c + PR_SET_SHADOW_STACK_STATUS = 0x4b PR_SET_SPECULATION_CTRL = 0x35 PR_SET_SYSCALL_USER_DISPATCH = 0x3b PR_SET_TAGGED_ADDR_CTRL = 0x37 @@ -2602,6 +2617,9 @@ const ( PR_SET_UNALIGN = 0x6 PR_SET_VMA = 0x53564d41 PR_SET_VMA_ANON_NAME = 0x0 + PR_SHADOW_STACK_ENABLE = 0x1 + PR_SHADOW_STACK_PUSH = 0x4 + PR_SHADOW_STACK_WRITE = 0x2 PR_SME_GET_VL = 0x40 PR_SME_SET_VL = 0x3f PR_SME_SET_VL_ONEXEC = 0x40000 @@ -2911,7 +2929,6 @@ const ( RTM_NEWNEXTHOP = 0x68 RTM_NEWNEXTHOPBUCKET = 0x74 RTM_NEWNSID = 0x58 - RTM_NEWNVLAN = 0x70 RTM_NEWPREFIX = 0x34 RTM_NEWQDISC = 0x24 RTM_NEWROUTE = 0x18 @@ -2920,6 +2937,7 @@ const ( RTM_NEWTCLASS = 0x28 RTM_NEWTFILTER = 0x2c RTM_NEWTUNNEL = 0x78 + RTM_NEWVLAN = 0x70 RTM_NR_FAMILIES = 0x1b RTM_NR_MSGTYPES = 0x6c RTM_SETDCB = 0x4f diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index c0d45e32..75207613 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -116,6 +116,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -304,6 +306,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index c731d24f..c68acda5 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -116,6 +116,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -305,6 +307,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index 680018a4..a8c607ab 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -310,6 +312,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index a63909f3..18563dd8 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -109,6 +109,7 @@ const ( F_SETOWN = 0x8 F_UNLCK = 0x2 F_WRLCK = 0x1 + GCS_MAGIC = 0x47435300 HIDIOCGRAWINFO = 0x80084803 HIDIOCGRDESC = 0x90044802 HIDIOCGRDESCSIZE = 0x80044801 @@ -119,6 +120,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -302,6 +305,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go index 9b0a2573..22912cda 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go @@ -116,6 +116,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -297,6 +299,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index 958e6e06..29344eb3 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x80 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -303,6 +305,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 50c7f25b..20d51fb9 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x80 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -303,6 +305,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index ced21d66..321b6090 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x80 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -303,6 +305,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index 226c0441..9bacdf1e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x80 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -303,6 +305,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go index 3122737c..c2242726 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x80 IUCLC = 0x1000 IXOFF = 0x400 @@ -358,6 +360,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index eb5d3467..6270c8ee 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x80 IUCLC = 0x1000 IXOFF = 0x400 @@ -362,6 +364,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index e921ebc6..9966c194 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x80 IUCLC = 0x1000 IXOFF = 0x400 @@ -362,6 +364,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index 38ba81c5..848e5fcc 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -294,6 +296,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 71f04009..669b2adb 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -115,6 +115,8 @@ const ( IN_CLOEXEC = 0x80000 IN_NONBLOCK = 0x800 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -366,6 +368,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x36 SCM_TIMESTAMPING_PKTINFO = 0x3a SCM_TIMESTAMPNS = 0x23 + SCM_TS_OPT_ID = 0x51 SCM_TXTIME = 0x3d SCM_WIFI_STATUS = 0x29 SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index c44a3133..4834e575 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -119,6 +119,8 @@ const ( IN_CLOEXEC = 0x400000 IN_NONBLOCK = 0x4000 IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff ISIG = 0x1 IUCLC = 0x200 IXOFF = 0x1000 @@ -357,6 +359,7 @@ const ( SCM_TIMESTAMPING_OPT_STATS = 0x38 SCM_TIMESTAMPING_PKTINFO = 0x3c SCM_TIMESTAMPNS = 0x21 + SCM_TS_OPT_ID = 0x5a SCM_TXTIME = 0x3f SCM_WIFI_STATUS = 0x25 SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go index 829b87fe..c6545413 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -141,6 +141,16 @@ import ( //go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" //go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" //go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" +//go:cgo_import_dynamic libc_getpeerucred getpeerucred "libc.so" +//go:cgo_import_dynamic libc_ucred_get ucred_get "libc.so" +//go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid "libc.so" +//go:cgo_import_dynamic libc_ucred_getegid ucred_getegid "libc.so" +//go:cgo_import_dynamic libc_ucred_getruid ucred_getruid "libc.so" +//go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid "libc.so" +//go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid "libc.so" +//go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid "libc.so" +//go:cgo_import_dynamic libc_ucred_getpid ucred_getpid "libc.so" +//go:cgo_import_dynamic libc_ucred_free ucred_free "libc.so" //go:cgo_import_dynamic libc_port_create port_create "libc.so" //go:cgo_import_dynamic libc_port_associate port_associate "libc.so" //go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" @@ -280,6 +290,16 @@ import ( //go:linkname procgetpeername libc_getpeername //go:linkname procsetsockopt libc_setsockopt //go:linkname procrecvfrom libc_recvfrom +//go:linkname procgetpeerucred libc_getpeerucred +//go:linkname procucred_get libc_ucred_get +//go:linkname procucred_geteuid libc_ucred_geteuid +//go:linkname procucred_getegid libc_ucred_getegid +//go:linkname procucred_getruid libc_ucred_getruid +//go:linkname procucred_getrgid libc_ucred_getrgid +//go:linkname procucred_getsuid libc_ucred_getsuid +//go:linkname procucred_getsgid libc_ucred_getsgid +//go:linkname procucred_getpid libc_ucred_getpid +//go:linkname procucred_free libc_ucred_free //go:linkname procport_create libc_port_create //go:linkname procport_associate libc_port_associate //go:linkname procport_dissociate libc_port_dissociate @@ -420,6 +440,16 @@ var ( procgetpeername, procsetsockopt, procrecvfrom, + procgetpeerucred, + procucred_get, + procucred_geteuid, + procucred_getegid, + procucred_getruid, + procucred_getrgid, + procucred_getsuid, + procucred_getsgid, + procucred_getpid, + procucred_free, procport_create, procport_associate, procport_dissociate, @@ -2029,6 +2059,90 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func getpeerucred(fd uintptr, ucred *uintptr) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGet(pid int) (ucred uintptr, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0) + ucred = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGeteuid(ucred uintptr) (uid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetegid(ucred uintptr) (gid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetruid(ucred uintptr) (uid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetrgid(ucred uintptr) (gid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetsuid(ucred uintptr) (uid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetsgid(ucred uintptr) (gid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredGetpid(ucred uintptr) (pid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ucredFree(ucred uintptr) { + sysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func port_create() (n int, err error) { r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go index 524b0820..c79aaff3 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -458,4 +458,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go index f485dbf4..5eb45069 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -381,4 +381,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go index 70b35bf3..05e50297 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -422,4 +422,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go index 1893e2fe..38c53ec5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -325,4 +325,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go index 16a4017d..31d2e71a 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go @@ -321,4 +321,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go index 7e567f1e..f4184a33 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -442,4 +442,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 4460 SYS_LSM_LIST_MODULES = 4461 SYS_MSEAL = 4462 + SYS_SETXATTRAT = 4463 + SYS_GETXATTRAT = 4464 + SYS_LISTXATTRAT = 4465 + SYS_REMOVEXATTRAT = 4466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go index 38ae55e5..05b99622 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -372,4 +372,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 5460 SYS_LSM_LIST_MODULES = 5461 SYS_MSEAL = 5462 + SYS_SETXATTRAT = 5463 + SYS_GETXATTRAT = 5464 + SYS_LISTXATTRAT = 5465 + SYS_REMOVEXATTRAT = 5466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go index 55e92e60..43a256e9 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -372,4 +372,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 5460 SYS_LSM_LIST_MODULES = 5461 SYS_MSEAL = 5462 + SYS_SETXATTRAT = 5463 + SYS_GETXATTRAT = 5464 + SYS_LISTXATTRAT = 5465 + SYS_REMOVEXATTRAT = 5466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go index 60658d6a..eea5ddfc 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -442,4 +442,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 4460 SYS_LSM_LIST_MODULES = 4461 SYS_MSEAL = 4462 + SYS_SETXATTRAT = 4463 + SYS_GETXATTRAT = 4464 + SYS_LISTXATTRAT = 4465 + SYS_REMOVEXATTRAT = 4466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go index e203e8a7..0d777bfb 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go @@ -449,4 +449,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go index 5944b97d..b4463650 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -421,4 +421,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go index c66d416d..0c7d21c1 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -421,4 +421,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index a5459e76..84053916 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -326,4 +326,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go index 01d86825..fcf1b790 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -387,4 +387,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go index 7b703e77..52d15b5f 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -400,4 +400,8 @@ const ( SYS_LSM_SET_SELF_ATTR = 460 SYS_LSM_LIST_MODULES = 461 SYS_MSEAL = 462 + SYS_SETXATTRAT = 463 + SYS_GETXATTRAT = 464 + SYS_LISTXATTRAT = 465 + SYS_REMOVEXATTRAT = 466 ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index 5537148d..a46abe64 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -4747,7 +4747,7 @@ const ( NL80211_ATTR_MAC_HINT = 0xc8 NL80211_ATTR_MAC_MASK = 0xd7 NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x14c + NL80211_ATTR_MAX = 0x14d NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 NL80211_ATTR_MAX_CSA_COUNTERS = 0xce NL80211_ATTR_MAX_MATCH_SETS = 0x85 @@ -5519,7 +5519,7 @@ const ( NL80211_MNTR_FLAG_CONTROL = 0x3 NL80211_MNTR_FLAG_COOK_FRAMES = 0x5 NL80211_MNTR_FLAG_FCSFAIL = 0x1 - NL80211_MNTR_FLAG_MAX = 0x6 + NL80211_MNTR_FLAG_MAX = 0x7 NL80211_MNTR_FLAG_OTHER_BSS = 0x4 NL80211_MNTR_FLAG_PLCPFAIL = 0x2 NL80211_MPATH_FLAG_ACTIVE = 0x1 @@ -6174,3 +6174,5 @@ type SockDiagReq struct { Family uint8 Protocol uint8 } + +const RTM_NEWNVLAN = 0x70 diff --git a/vendor/golang.org/x/text/language/parse.go b/vendor/golang.org/x/text/language/parse.go index 4d57222e..053336e2 100644 --- a/vendor/golang.org/x/text/language/parse.go +++ b/vendor/golang.org/x/text/language/parse.go @@ -59,7 +59,7 @@ func (c CanonType) Parse(s string) (t Tag, err error) { if changed { tt.RemakeString() } - return makeTag(tt), err + return makeTag(tt), nil } // Compose creates a Tag from individual parts, which may be of type Tag, Base, diff --git a/vendor/golang.org/x/time/rate/rate.go b/vendor/golang.org/x/time/rate/rate.go index 93a798ab..794b2e32 100644 --- a/vendor/golang.org/x/time/rate/rate.go +++ b/vendor/golang.org/x/time/rate/rate.go @@ -85,7 +85,7 @@ func (lim *Limiter) Burst() int { // TokensAt returns the number of tokens available at time t. func (lim *Limiter) TokensAt(t time.Time) float64 { lim.mu.Lock() - _, tokens := lim.advance(t) // does not mutate lim + tokens := lim.advance(t) // does not mutate lim lim.mu.Unlock() return tokens } @@ -186,7 +186,7 @@ func (r *Reservation) CancelAt(t time.Time) { return } // advance time to now - t, tokens := r.lim.advance(t) + tokens := r.lim.advance(t) // calculate new number of tokens tokens += restoreTokens if burst := float64(r.lim.burst); tokens > burst { @@ -307,7 +307,7 @@ func (lim *Limiter) SetLimitAt(t time.Time, newLimit Limit) { lim.mu.Lock() defer lim.mu.Unlock() - t, tokens := lim.advance(t) + tokens := lim.advance(t) lim.last = t lim.tokens = tokens @@ -324,7 +324,7 @@ func (lim *Limiter) SetBurstAt(t time.Time, newBurst int) { lim.mu.Lock() defer lim.mu.Unlock() - t, tokens := lim.advance(t) + tokens := lim.advance(t) lim.last = t lim.tokens = tokens @@ -347,7 +347,7 @@ func (lim *Limiter) reserveN(t time.Time, n int, maxFutureReserve time.Duration) } } - t, tokens := lim.advance(t) + tokens := lim.advance(t) // Calculate the remaining number of tokens resulting from the request. tokens -= float64(n) @@ -380,10 +380,11 @@ func (lim *Limiter) reserveN(t time.Time, n int, maxFutureReserve time.Duration) return r } -// advance calculates and returns an updated state for lim resulting from the passage of time. +// advance calculates and returns an updated number of tokens for lim +// resulting from the passage of time. // lim is not changed. // advance requires that lim.mu is held. -func (lim *Limiter) advance(t time.Time) (newT time.Time, newTokens float64) { +func (lim *Limiter) advance(t time.Time) (newTokens float64) { last := lim.last if t.Before(last) { last = t @@ -396,7 +397,7 @@ func (lim *Limiter) advance(t time.Time) (newT time.Time, newTokens float64) { if burst := float64(lim.burst); tokens > burst { tokens = burst } - return t, tokens + return tokens } // durationFromTokens is a unit conversion function from the number of tokens to the duration @@ -405,8 +406,15 @@ func (limit Limit) durationFromTokens(tokens float64) time.Duration { if limit <= 0 { return InfDuration } - seconds := tokens / float64(limit) - return time.Duration(float64(time.Second) * seconds) + + duration := (tokens / float64(limit)) * float64(time.Second) + + // Cap the duration to the maximum representable int64 value, to avoid overflow. + if duration > float64(math.MaxInt64) { + return InfDuration + } + + return time.Duration(duration) } // tokensFromDuration is a unit conversion function from a time duration to the number of tokens diff --git a/vendor/golang.org/x/tools/LICENSE b/vendor/golang.org/x/tools/LICENSE deleted file mode 100644 index 2a7cf70d..00000000 --- a/vendor/golang.org/x/tools/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/tools/PATENTS b/vendor/golang.org/x/tools/PATENTS deleted file mode 100644 index 73309904..00000000 --- a/vendor/golang.org/x/tools/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go deleted file mode 100644 index 65fe2628..00000000 --- a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package gcexportdata provides functions for reading and writing -// export data, which is a serialized description of the API of a Go -// package including the names, kinds, types, and locations of all -// exported declarations. -// -// The standard Go compiler (cmd/compile) writes an export data file -// for each package it compiles, which it later reads when compiling -// packages that import the earlier one. The compiler must thus -// contain logic to both write and read export data. -// (See the "Export" section in the cmd/compile/README file.) -// -// The [Read] function in this package can read files produced by the -// compiler, producing [go/types] data structures. As a matter of -// policy, Read supports export data files produced by only the last -// two Go releases plus tip; see https://go.dev/issue/68898. The -// export data files produced by the compiler contain additional -// details related to generics, inlining, and other optimizations that -// cannot be decoded by the [Read] function. -// -// In files written by the compiler, the export data is not at the -// start of the file. Before calling Read, use [NewReader] to locate -// the desired portion of the file. -// -// The [Write] function in this package encodes the exported API of a -// Go package ([types.Package]) as a file. Such files can be later -// decoded by Read, but cannot be consumed by the compiler. -// -// # Future changes -// -// Although Read supports the formats written by both Write and the -// compiler, the two are quite different, and there is an open -// proposal (https://go.dev/issue/69491) to separate these APIs. -// -// Under that proposal, this package would ultimately provide only the -// Read operation for compiler export data, which must be defined in -// this module (golang.org/x/tools), not in the standard library, to -// avoid version skew for developer tools that need to read compiler -// export data both before and after a Go release, such as from Go -// 1.23 to Go 1.24. Because this package lives in the tools module, -// clients can update their version of the module some time before the -// Go 1.24 release and rebuild and redeploy their tools, which will -// then be able to consume both Go 1.23 and Go 1.24 export data files, -// so they will work before and after the Go update. (See discussion -// at https://go.dev/issue/15651.) -// -// The operations to import and export [go/types] data structures -// would be defined in the go/types package as Import and Export. -// [Write] would (eventually) delegate to Export, -// and [Read], when it detects a file produced by Export, -// would delegate to Import. -// -// # Deprecations -// -// The [NewImporter] and [Find] functions are deprecated and should -// not be used in new code. The [WriteBundle] and [ReadBundle] -// functions are experimental, and there is an open proposal to -// deprecate them (https://go.dev/issue/69573). -package gcexportdata - -import ( - "bufio" - "bytes" - "encoding/json" - "fmt" - "go/token" - "go/types" - "io" - "os/exec" - - "golang.org/x/tools/internal/gcimporter" -) - -// Find returns the name of an object (.o) or archive (.a) file -// containing type information for the specified import path, -// using the go command. -// If no file was found, an empty filename is returned. -// -// A relative srcDir is interpreted relative to the current working directory. -// -// Find also returns the package's resolved (canonical) import path, -// reflecting the effects of srcDir and vendoring on importPath. -// -// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, -// which is more efficient. -func Find(importPath, srcDir string) (filename, path string) { - cmd := exec.Command("go", "list", "-json", "-export", "--", importPath) - cmd.Dir = srcDir - out, err := cmd.Output() - if err != nil { - return "", "" - } - var data struct { - ImportPath string - Export string - } - json.Unmarshal(out, &data) - return data.Export, data.ImportPath -} - -// NewReader returns a reader for the export data section of an object -// (.o) or archive (.a) file read from r. The new reader may provide -// additional trailing data beyond the end of the export data. -func NewReader(r io.Reader) (io.Reader, error) { - buf := bufio.NewReader(r) - size, err := gcimporter.FindExportData(buf) - if err != nil { - return nil, err - } - - // We were given an archive and found the __.PKGDEF in it. - // This tells us the size of the export data, and we don't - // need to return the entire file. - return &io.LimitedReader{ - R: buf, - N: size, - }, nil -} - -// readAll works the same way as io.ReadAll, but avoids allocations and copies -// by preallocating a byte slice of the necessary size if the size is known up -// front. This is always possible when the input is an archive. In that case, -// NewReader will return the known size using an io.LimitedReader. -func readAll(r io.Reader) ([]byte, error) { - if lr, ok := r.(*io.LimitedReader); ok { - data := make([]byte, lr.N) - _, err := io.ReadFull(lr, data) - return data, err - } - return io.ReadAll(r) -} - -// Read reads export data from in, decodes it, and returns type -// information for the package. -// -// Read is capable of reading export data produced by [Write] at the -// same source code version, or by the last two Go releases (plus tip) -// of the standard Go compiler. Reading files from older compilers may -// produce an error. -// -// The package path (effectively its linker symbol prefix) is -// specified by path, since unlike the package name, this information -// may not be recorded in the export data. -// -// File position information is added to fset. -// -// Read may inspect and add to the imports map to ensure that references -// within the export data to other packages are consistent. The caller -// must ensure that imports[path] does not exist, or exists but is -// incomplete (see types.Package.Complete), and Read inserts the -// resulting package into this map entry. -// -// On return, the state of the reader is undefined. -func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, path string) (*types.Package, error) { - data, err := readAll(in) - if err != nil { - return nil, fmt.Errorf("reading export data for %q: %v", path, err) - } - - if bytes.HasPrefix(data, []byte("!")) { - return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path) - } - - // The indexed export format starts with an 'i'; the older - // binary export format starts with a 'c', 'd', or 'v' - // (from "version"). Select appropriate importer. - if len(data) > 0 { - switch data[0] { - case 'v', 'c', 'd': - // binary, produced by cmd/compile till go1.10 - return nil, fmt.Errorf("binary (%c) import format is no longer supported", data[0]) - - case 'i': - // indexed, produced by cmd/compile till go1.19, - // and also by [Write]. - // - // If proposal #69491 is accepted, go/types - // serialization will be implemented by - // types.Export, to which Write would eventually - // delegate (explicitly dropping any pretence at - // inter-version Write-Read compatibility). - // This [Read] function would delegate to types.Import - // when it detects that the file was produced by Export. - _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) - return pkg, err - - case 'u': - // unified, produced by cmd/compile since go1.20 - _, pkg, err := gcimporter.UImportData(fset, imports, data[1:], path) - return pkg, err - - default: - l := len(data) - if l > 10 { - l = 10 - } - return nil, fmt.Errorf("unexpected export data with prefix %q for path %s", string(data[:l]), path) - } - } - return nil, fmt.Errorf("empty export data for %s", path) -} - -// Write writes encoded type information for the specified package to out. -// The FileSet provides file position information for named objects. -func Write(out io.Writer, fset *token.FileSet, pkg *types.Package) error { - if _, err := io.WriteString(out, "i"); err != nil { - return err - } - return gcimporter.IExportData(out, fset, pkg) -} - -// ReadBundle reads an export bundle from in, decodes it, and returns type -// information for the packages. -// File position information is added to fset. -// -// ReadBundle may inspect and add to the imports map to ensure that references -// within the export bundle to other packages are consistent. -// -// On return, the state of the reader is undefined. -// -// Experimental: This API is experimental and may change in the future. -func ReadBundle(in io.Reader, fset *token.FileSet, imports map[string]*types.Package) ([]*types.Package, error) { - data, err := readAll(in) - if err != nil { - return nil, fmt.Errorf("reading export bundle: %v", err) - } - return gcimporter.IImportBundle(fset, imports, data) -} - -// WriteBundle writes encoded type information for the specified packages to out. -// The FileSet provides file position information for named objects. -// -// Experimental: This API is experimental and may change in the future. -func WriteBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { - return gcimporter.IExportBundle(out, fset, pkgs) -} diff --git a/vendor/golang.org/x/tools/go/gcexportdata/importer.go b/vendor/golang.org/x/tools/go/gcexportdata/importer.go deleted file mode 100644 index 37a7247e..00000000 --- a/vendor/golang.org/x/tools/go/gcexportdata/importer.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gcexportdata - -import ( - "fmt" - "go/token" - "go/types" - "os" -) - -// NewImporter returns a new instance of the types.Importer interface -// that reads type information from export data files written by gc. -// The Importer also satisfies types.ImporterFrom. -// -// Export data files are located using "go build" workspace conventions -// and the build.Default context. -// -// Use this importer instead of go/importer.For("gc", ...) to avoid the -// version-skew problems described in the documentation of this package, -// or to control the FileSet or access the imports map populated during -// package loading. -// -// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, -// which is more efficient. -func NewImporter(fset *token.FileSet, imports map[string]*types.Package) types.ImporterFrom { - return importer{fset, imports} -} - -type importer struct { - fset *token.FileSet - imports map[string]*types.Package -} - -func (imp importer) Import(importPath string) (*types.Package, error) { - return imp.ImportFrom(importPath, "", 0) -} - -func (imp importer) ImportFrom(importPath, srcDir string, mode types.ImportMode) (_ *types.Package, err error) { - filename, path := Find(importPath, srcDir) - if filename == "" { - if importPath == "unsafe" { - // Even for unsafe, call Find first in case - // the package was vendored. - return types.Unsafe, nil - } - return nil, fmt.Errorf("can't find import: %s", importPath) - } - - if pkg, ok := imp.imports[path]; ok && pkg.Complete() { - return pkg, nil // cache hit - } - - // open file - f, err := os.Open(filename) - if err != nil { - return nil, err - } - defer func() { - f.Close() - if err != nil { - // add file name to error - err = fmt.Errorf("reading export data: %s: %v", filename, err) - } - }() - - r, err := NewReader(f) - if err != nil { - return nil, err - } - - return Read(r, imp.fset, imp.imports, path) -} diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go deleted file mode 100644 index f1931d10..00000000 --- a/vendor/golang.org/x/tools/go/packages/doc.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package packages loads Go packages for inspection and analysis. - -The [Load] function takes as input a list of patterns and returns a -list of [Package] values describing individual packages matched by those -patterns. -A [Config] specifies configuration options, the most important of which is -the [LoadMode], which controls the amount of detail in the loaded packages. - -Load passes most patterns directly to the underlying build tool. -The default build tool is the go command. -Its supported patterns are described at -https://pkg.go.dev/cmd/go#hdr-Package_lists_and_patterns. -Other build systems may be supported by providing a "driver"; -see [The driver protocol]. - -All patterns with the prefix "query=", where query is a -non-empty string of letters from [a-z], are reserved and may be -interpreted as query operators. - -Two query operators are currently supported: "file" and "pattern". - -The query "file=path/to/file.go" matches the package or packages enclosing -the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go" -might return the packages "fmt" and "fmt [fmt.test]". - -The query "pattern=string" causes "string" to be passed directly to -the underlying build tool. In most cases this is unnecessary, -but an application can use Load("pattern=" + x) as an escaping mechanism -to ensure that x is not interpreted as a query operator if it contains '='. - -All other query operators are reserved for future use and currently -cause Load to report an error. - -The Package struct provides basic information about the package, including - - - ID, a unique identifier for the package in the returned set; - - GoFiles, the names of the package's Go source files; - - Imports, a map from source import strings to the Packages they name; - - Types, the type information for the package's exported symbols; - - Syntax, the parsed syntax trees for the package's source code; and - - TypesInfo, the result of a complete type-check of the package syntax trees. - -(See the documentation for type Package for the complete list of fields -and more detailed descriptions.) - -For example, - - Load(nil, "bytes", "unicode...") - -returns four Package structs describing the standard library packages -bytes, unicode, unicode/utf16, and unicode/utf8. Note that one pattern -can match multiple packages and that a package might be matched by -multiple patterns: in general it is not possible to determine which -packages correspond to which patterns. - -Note that the list returned by Load contains only the packages matched -by the patterns. Their dependencies can be found by walking the import -graph using the Imports fields. - -The Load function can be configured by passing a pointer to a Config as -the first argument. A nil Config is equivalent to the zero Config, which -causes Load to run in [LoadFiles] mode, collecting minimal information. -See the documentation for type Config for details. - -As noted earlier, the Config.Mode controls the amount of detail -reported about the loaded packages. See the documentation for type LoadMode -for details. - -Most tools should pass their command-line arguments (after any flags) -uninterpreted to Load, so that it can interpret them -according to the conventions of the underlying build system. - -See the Example function for typical usage. - -# The driver protocol - -Load may be used to load Go packages even in Go projects that use -alternative build systems, by installing an appropriate "driver" -program for the build system and specifying its location in the -GOPACKAGESDRIVER environment variable. -For example, -https://github.com/bazelbuild/rules_go/wiki/Editor-and-tool-integration -explains how to use the driver for Bazel. - -The driver program is responsible for interpreting patterns in its -preferred notation and reporting information about the packages that -those patterns identify. Drivers must also support the special "file=" -and "pattern=" patterns described above. - -The patterns are provided as positional command-line arguments. A -JSON-encoded [DriverRequest] message providing additional information -is written to the driver's standard input. The driver must write a -JSON-encoded [DriverResponse] message to its standard output. (This -message differs from the JSON schema produced by 'go list'.) - -The value of the PWD environment variable seen by the driver process -is the preferred name of its working directory. (The working directory -may have other aliases due to symbolic links; see the comment on the -Dir field of [exec.Cmd] for related information.) -When the driver process emits in its response the name of a file -that is a descendant of this directory, it must use an absolute path -that has the value of PWD as a prefix, to ensure that the returned -filenames satisfy the original query. -*/ -package packages // import "golang.org/x/tools/go/packages" - -/* - -Motivation and design considerations - -The new package's design solves problems addressed by two existing -packages: go/build, which locates and describes packages, and -golang.org/x/tools/go/loader, which loads, parses and type-checks them. -The go/build.Package structure encodes too much of the 'go build' way -of organizing projects, leaving us in need of a data type that describes a -package of Go source code independent of the underlying build system. -We wanted something that works equally well with go build and vgo, and -also other build systems such as Bazel and Blaze, making it possible to -construct analysis tools that work in all these environments. -Tools such as errcheck and staticcheck were essentially unavailable to -the Go community at Google, and some of Google's internal tools for Go -are unavailable externally. -This new package provides a uniform way to obtain package metadata by -querying each of these build systems, optionally supporting their -preferred command-line notations for packages, so that tools integrate -neatly with users' build environments. The Metadata query function -executes an external query tool appropriate to the current workspace. - -Loading packages always returns the complete import graph "all the way down", -even if all you want is information about a single package, because the query -mechanisms of all the build systems we currently support ({go,vgo} list, and -blaze/bazel aspect-based query) cannot provide detailed information -about one package without visiting all its dependencies too, so there is -no additional asymptotic cost to providing transitive information. -(This property might not be true of a hypothetical 5th build system.) - -In calls to TypeCheck, all initial packages, and any package that -transitively depends on one of them, must be loaded from source. -Consider A->B->C->D->E: if A,C are initial, A,B,C must be loaded from -source; D may be loaded from export data, and E may not be loaded at all -(though it's possible that D's export data mentions it, so a -types.Package may be created for it and exposed.) - -The old loader had a feature to suppress type-checking of function -bodies on a per-package basis, primarily intended to reduce the work of -obtaining type information for imported packages. Now that imports are -satisfied by export data, the optimization no longer seems necessary. - -Despite some early attempts, the old loader did not exploit export data, -instead always using the equivalent of WholeProgram mode. This was due -to the complexity of mixing source and export data packages (now -resolved by the upward traversal mentioned above), and because export data -files were nearly always missing or stale. Now that 'go build' supports -caching, all the underlying build systems can guarantee to produce -export data in a reasonable (amortized) time. - -Test "main" packages synthesized by the build system are now reported as -first-class packages, avoiding the need for clients (such as go/ssa) to -reinvent this generation logic. - -One way in which go/packages is simpler than the old loader is in its -treatment of in-package tests. In-package tests are packages that -consist of all the files of the library under test, plus the test files. -The old loader constructed in-package tests by a two-phase process of -mutation called "augmentation": first it would construct and type check -all the ordinary library packages and type-check the packages that -depend on them; then it would add more (test) files to the package and -type-check again. This two-phase approach had four major problems: -1) in processing the tests, the loader modified the library package, - leaving no way for a client application to see both the test - package and the library package; one would mutate into the other. -2) because test files can declare additional methods on types defined in - the library portion of the package, the dispatch of method calls in - the library portion was affected by the presence of the test files. - This should have been a clue that the packages were logically - different. -3) this model of "augmentation" assumed at most one in-package test - per library package, which is true of projects using 'go build', - but not other build systems. -4) because of the two-phase nature of test processing, all packages that - import the library package had to be processed before augmentation, - forcing a "one-shot" API and preventing the client from calling Load - in several times in sequence as is now possible in WholeProgram mode. - (TypeCheck mode has a similar one-shot restriction for a different reason.) - -Early drafts of this package supported "multi-shot" operation. -Although it allowed clients to make a sequence of calls (or concurrent -calls) to Load, building up the graph of Packages incrementally, -it was of marginal value: it complicated the API -(since it allowed some options to vary across calls but not others), -it complicated the implementation, -it cannot be made to work in Types mode, as explained above, -and it was less efficient than making one combined call (when this is possible). -Among the clients we have inspected, none made multiple calls to load -but could not be easily and satisfactorily modified to make only a single call. -However, applications changes may be required. -For example, the ssadump command loads the user-specified packages -and in addition the runtime package. It is tempting to simply append -"runtime" to the user-provided list, but that does not work if the user -specified an ad-hoc package such as [a.go b.go]. -Instead, ssadump no longer requests the runtime package, -but seeks it among the dependencies of the user-specified packages, -and emits an error if it is not found. - -Questions & Tasks - -- Add GOARCH/GOOS? - They are not portable concepts, but could be made portable. - Our goal has been to allow users to express themselves using the conventions - of the underlying build system: if the build system honors GOARCH - during a build and during a metadata query, then so should - applications built atop that query mechanism. - Conversely, if the target architecture of the build is determined by - command-line flags, the application can pass the relevant - flags through to the build system using a command such as: - myapp -query_flag="--cpu=amd64" -query_flag="--os=darwin" - However, this approach is low-level, unwieldy, and non-portable. - GOOS and GOARCH seem important enough to warrant a dedicated option. - -- How should we handle partial failures such as a mixture of good and - malformed patterns, existing and non-existent packages, successful and - failed builds, import failures, import cycles, and so on, in a call to - Load? - -- Support bazel, blaze, and go1.10 list, not just go1.11 list. - -- Handle (and test) various partial success cases, e.g. - a mixture of good packages and: - invalid patterns - nonexistent packages - empty packages - packages with malformed package or import declarations - unreadable files - import cycles - other parse errors - type errors - Make sure we record errors at the correct place in the graph. - -- Missing packages among initial arguments are not reported. - Return bogus packages for them, like golist does. - -- "undeclared name" errors (for example) are reported out of source file - order. I suspect this is due to the breadth-first resolution now used - by go/types. Is that a bug? Discuss with gri. - -*/ diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go deleted file mode 100644 index 91bd62e8..00000000 --- a/vendor/golang.org/x/tools/go/packages/external.go +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -// This file defines the protocol that enables an external "driver" -// tool to supply package metadata in place of 'go list'. - -import ( - "bytes" - "encoding/json" - "fmt" - "os" - "os/exec" - "slices" - "strings" -) - -// DriverRequest defines the schema of a request for package metadata -// from an external driver program. The JSON-encoded DriverRequest -// message is provided to the driver program's standard input. The -// query patterns are provided as command-line arguments. -// -// See the package documentation for an overview. -type DriverRequest struct { - Mode LoadMode `json:"mode"` - - // Env specifies the environment the underlying build system should be run in. - Env []string `json:"env"` - - // BuildFlags are flags that should be passed to the underlying build system. - BuildFlags []string `json:"build_flags"` - - // Tests specifies whether the patterns should also return test packages. - Tests bool `json:"tests"` - - // Overlay maps file paths (relative to the driver's working directory) - // to the contents of overlay files (see Config.Overlay). - Overlay map[string][]byte `json:"overlay"` -} - -// DriverResponse defines the schema of a response from an external -// driver program, providing the results of a query for package -// metadata. The driver program must write a JSON-encoded -// DriverResponse message to its standard output. -// -// See the package documentation for an overview. -type DriverResponse struct { - // NotHandled is returned if the request can't be handled by the current - // driver. If an external driver returns a response with NotHandled, the - // rest of the DriverResponse is ignored, and go/packages will fallback - // to the next driver. If go/packages is extended in the future to support - // lists of multiple drivers, go/packages will fall back to the next driver. - NotHandled bool - - // Compiler and Arch are the arguments pass of types.SizesFor - // to get a types.Sizes to use when type checking. - Compiler string - Arch string - - // Roots is the set of package IDs that make up the root packages. - // We have to encode this separately because when we encode a single package - // we cannot know if it is one of the roots as that requires knowledge of the - // graph it is part of. - Roots []string `json:",omitempty"` - - // Packages is the full set of packages in the graph. - // The packages are not connected into a graph. - // The Imports if populated will be stubs that only have their ID set. - // Imports will be connected and then type and syntax information added in a - // later pass (see refine). - Packages []*Package - - // GoVersion is the minor version number used by the driver - // (e.g. the go command on the PATH) when selecting .go files. - // Zero means unknown. - GoVersion int -} - -// driver is the type for functions that query the build system for the -// packages named by the patterns. -type driver func(cfg *Config, patterns []string) (*DriverResponse, error) - -// findExternalDriver returns the file path of a tool that supplies -// the build system package structure, or "" if not found. -// If GOPACKAGESDRIVER is set in the environment findExternalTool returns its -// value, otherwise it searches for a binary named gopackagesdriver on the PATH. -func findExternalDriver(cfg *Config) driver { - const toolPrefix = "GOPACKAGESDRIVER=" - tool := "" - for _, env := range cfg.Env { - if val := strings.TrimPrefix(env, toolPrefix); val != env { - tool = val - } - } - if tool != "" && tool == "off" { - return nil - } - if tool == "" { - var err error - tool, err = exec.LookPath("gopackagesdriver") - if err != nil { - return nil - } - } - return func(cfg *Config, patterns []string) (*DriverResponse, error) { - req, err := json.Marshal(DriverRequest{ - Mode: cfg.Mode, - Env: cfg.Env, - BuildFlags: cfg.BuildFlags, - Tests: cfg.Tests, - Overlay: cfg.Overlay, - }) - if err != nil { - return nil, fmt.Errorf("failed to encode message to driver tool: %v", err) - } - - buf := new(bytes.Buffer) - stderr := new(bytes.Buffer) - cmd := exec.CommandContext(cfg.Context, tool, patterns...) - cmd.Dir = cfg.Dir - // The cwd gets resolved to the real path. On Darwin, where - // /tmp is a symlink, this breaks anything that expects the - // working directory to keep the original path, including the - // go command when dealing with modules. - // - // os.Getwd stdlib has a special feature where if the - // cwd and the PWD are the same node then it trusts - // the PWD, so by setting it in the env for the child - // process we fix up all the paths returned by the go - // command. - // - // (See similar trick in Invocation.run in ../../internal/gocommand/invoke.go) - cmd.Env = append(slices.Clip(cfg.Env), "PWD="+cfg.Dir) - cmd.Stdin = bytes.NewReader(req) - cmd.Stdout = buf - cmd.Stderr = stderr - - if err := cmd.Run(); err != nil { - return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr) - } - if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTDRIVERERRORS") != "" { - fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd), stderr) - } - - var response DriverResponse - if err := json.Unmarshal(buf.Bytes(), &response); err != nil { - return nil, err - } - return &response, nil - } -} diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go deleted file mode 100644 index 0458b4f9..00000000 --- a/vendor/golang.org/x/tools/go/packages/golist.go +++ /dev/null @@ -1,1086 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -import ( - "bytes" - "context" - "encoding/json" - "fmt" - "log" - "os" - "os/exec" - "path" - "path/filepath" - "reflect" - "sort" - "strconv" - "strings" - "sync" - "unicode" - - "golang.org/x/tools/internal/gocommand" - "golang.org/x/tools/internal/packagesinternal" -) - -// debug controls verbose logging. -var debug, _ = strconv.ParseBool(os.Getenv("GOPACKAGESDEBUG")) - -// A goTooOldError reports that the go command -// found by exec.LookPath is too old to use the new go list behavior. -type goTooOldError struct { - error -} - -// responseDeduper wraps a DriverResponse, deduplicating its contents. -type responseDeduper struct { - seenRoots map[string]bool - seenPackages map[string]*Package - dr *DriverResponse -} - -func newDeduper() *responseDeduper { - return &responseDeduper{ - dr: &DriverResponse{}, - seenRoots: map[string]bool{}, - seenPackages: map[string]*Package{}, - } -} - -// addAll fills in r with a DriverResponse. -func (r *responseDeduper) addAll(dr *DriverResponse) { - for _, pkg := range dr.Packages { - r.addPackage(pkg) - } - for _, root := range dr.Roots { - r.addRoot(root) - } - r.dr.GoVersion = dr.GoVersion -} - -func (r *responseDeduper) addPackage(p *Package) { - if r.seenPackages[p.ID] != nil { - return - } - r.seenPackages[p.ID] = p - r.dr.Packages = append(r.dr.Packages, p) -} - -func (r *responseDeduper) addRoot(id string) { - if r.seenRoots[id] { - return - } - r.seenRoots[id] = true - r.dr.Roots = append(r.dr.Roots, id) -} - -type golistState struct { - cfg *Config - ctx context.Context - - runner *gocommand.Runner - - // overlay is the JSON file that encodes the Config.Overlay - // mapping, used by 'go list -overlay=...'. - overlay string - - envOnce sync.Once - goEnvError error - goEnv map[string]string - - rootsOnce sync.Once - rootDirsError error - rootDirs map[string]string - - goVersionOnce sync.Once - goVersionError error - goVersion int // The X in Go 1.X. - - // vendorDirs caches the (non)existence of vendor directories. - vendorDirs map[string]bool -} - -// getEnv returns Go environment variables. Only specific variables are -// populated -- computing all of them is slow. -func (state *golistState) getEnv() (map[string]string, error) { - state.envOnce.Do(func() { - var b *bytes.Buffer - b, state.goEnvError = state.invokeGo("env", "-json", "GOMOD", "GOPATH") - if state.goEnvError != nil { - return - } - - state.goEnv = make(map[string]string) - decoder := json.NewDecoder(b) - if state.goEnvError = decoder.Decode(&state.goEnv); state.goEnvError != nil { - return - } - }) - return state.goEnv, state.goEnvError -} - -// mustGetEnv is a convenience function that can be used if getEnv has already succeeded. -func (state *golistState) mustGetEnv() map[string]string { - env, err := state.getEnv() - if err != nil { - panic(fmt.Sprintf("mustGetEnv: %v", err)) - } - return env -} - -// goListDriver uses the go list command to interpret the patterns and produce -// the build system package structure. -// See driver for more details. -// -// overlay is the JSON file that encodes the cfg.Overlay -// mapping, used by 'go list -overlay=...' -func goListDriver(cfg *Config, runner *gocommand.Runner, overlay string, patterns []string) (_ *DriverResponse, err error) { - // Make sure that any asynchronous go commands are killed when we return. - parentCtx := cfg.Context - if parentCtx == nil { - parentCtx = context.Background() - } - ctx, cancel := context.WithCancel(parentCtx) - defer cancel() - - response := newDeduper() - - state := &golistState{ - cfg: cfg, - ctx: ctx, - vendorDirs: map[string]bool{}, - overlay: overlay, - runner: runner, - } - - // Fill in response.Sizes asynchronously if necessary. - if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&(NeedTypes|NeedTypesInfo) != 0 { - errCh := make(chan error) - go func() { - compiler, arch, err := getSizesForArgs(ctx, state.cfgInvocation(), runner) - response.dr.Compiler = compiler - response.dr.Arch = arch - errCh <- err - }() - defer func() { - if sizesErr := <-errCh; sizesErr != nil { - err = sizesErr - } - }() - } - - // Determine files requested in contains patterns - var containFiles []string - restPatterns := make([]string, 0, len(patterns)) - // Extract file= and other [querytype]= patterns. Report an error if querytype - // doesn't exist. -extractQueries: - for _, pattern := range patterns { - eqidx := strings.Index(pattern, "=") - if eqidx < 0 { - restPatterns = append(restPatterns, pattern) - } else { - query, value := pattern[:eqidx], pattern[eqidx+len("="):] - switch query { - case "file": - containFiles = append(containFiles, value) - case "pattern": - restPatterns = append(restPatterns, value) - case "": // not a reserved query - restPatterns = append(restPatterns, pattern) - default: - for _, rune := range query { - if rune < 'a' || rune > 'z' { // not a reserved query - restPatterns = append(restPatterns, pattern) - continue extractQueries - } - } - // Reject all other patterns containing "=" - return nil, fmt.Errorf("invalid query type %q in query pattern %q", query, pattern) - } - } - } - - // See if we have any patterns to pass through to go list. Zero initial - // patterns also requires a go list call, since it's the equivalent of - // ".". - if len(restPatterns) > 0 || len(patterns) == 0 { - dr, err := state.createDriverResponse(restPatterns...) - if err != nil { - return nil, err - } - response.addAll(dr) - } - - if len(containFiles) != 0 { - if err := state.runContainsQueries(response, containFiles); err != nil { - return nil, err - } - } - - // (We may yet return an error due to defer.) - return response.dr, nil -} - -func (state *golistState) runContainsQueries(response *responseDeduper, queries []string) error { - for _, query := range queries { - // TODO(matloob): Do only one query per directory. - fdir := filepath.Dir(query) - // Pass absolute path of directory to go list so that it knows to treat it as a directory, - // not a package path. - pattern, err := filepath.Abs(fdir) - if err != nil { - return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err) - } - dirResponse, err := state.createDriverResponse(pattern) - - // If there was an error loading the package, or no packages are returned, - // or the package is returned with errors, try to load the file as an - // ad-hoc package. - // Usually the error will appear in a returned package, but may not if we're - // in module mode and the ad-hoc is located outside a module. - if err != nil || len(dirResponse.Packages) == 0 || len(dirResponse.Packages) == 1 && len(dirResponse.Packages[0].GoFiles) == 0 && - len(dirResponse.Packages[0].Errors) == 1 { - var queryErr error - if dirResponse, queryErr = state.adhocPackage(pattern, query); queryErr != nil { - return err // return the original error - } - } - isRoot := make(map[string]bool, len(dirResponse.Roots)) - for _, root := range dirResponse.Roots { - isRoot[root] = true - } - for _, pkg := range dirResponse.Packages { - // Add any new packages to the main set - // We don't bother to filter packages that will be dropped by the changes of roots, - // that will happen anyway during graph construction outside this function. - // Over-reporting packages is not a problem. - response.addPackage(pkg) - // if the package was not a root one, it cannot have the file - if !isRoot[pkg.ID] { - continue - } - for _, pkgFile := range pkg.GoFiles { - if filepath.Base(query) == filepath.Base(pkgFile) { - response.addRoot(pkg.ID) - break - } - } - } - } - return nil -} - -// adhocPackage attempts to load or construct an ad-hoc package for a given -// query, if the original call to the driver produced inadequate results. -func (state *golistState) adhocPackage(pattern, query string) (*DriverResponse, error) { - response, err := state.createDriverResponse(query) - if err != nil { - return nil, err - } - // If we get nothing back from `go list`, - // try to make this file into its own ad-hoc package. - // TODO(rstambler): Should this check against the original response? - if len(response.Packages) == 0 { - response.Packages = append(response.Packages, &Package{ - ID: "command-line-arguments", - PkgPath: query, - GoFiles: []string{query}, - CompiledGoFiles: []string{query}, - Imports: make(map[string]*Package), - }) - response.Roots = append(response.Roots, "command-line-arguments") - } - // Handle special cases. - if len(response.Packages) == 1 { - // golang/go#33482: If this is a file= query for ad-hoc packages where - // the file only exists on an overlay, and exists outside of a module, - // add the file to the package and remove the errors. - if response.Packages[0].ID == "command-line-arguments" || - filepath.ToSlash(response.Packages[0].PkgPath) == filepath.ToSlash(query) { - if len(response.Packages[0].GoFiles) == 0 { - filename := filepath.Join(pattern, filepath.Base(query)) // avoid recomputing abspath - // TODO(matloob): check if the file is outside of a root dir? - for path := range state.cfg.Overlay { - if path == filename { - response.Packages[0].Errors = nil - response.Packages[0].GoFiles = []string{path} - response.Packages[0].CompiledGoFiles = []string{path} - } - } - } - } - } - return response, nil -} - -// Fields must match go list; -// see $GOROOT/src/cmd/go/internal/load/pkg.go. -type jsonPackage struct { - ImportPath string - Dir string - Name string - Target string - Export string - GoFiles []string - CompiledGoFiles []string - IgnoredGoFiles []string - IgnoredOtherFiles []string - EmbedPatterns []string - EmbedFiles []string - CFiles []string - CgoFiles []string - CXXFiles []string - MFiles []string - HFiles []string - FFiles []string - SFiles []string - SwigFiles []string - SwigCXXFiles []string - SysoFiles []string - Imports []string - ImportMap map[string]string - Deps []string - Module *Module - TestGoFiles []string - TestImports []string - XTestGoFiles []string - XTestImports []string - ForTest string // q in a "p [q.test]" package, else "" - DepOnly bool - - Error *packagesinternal.PackageError - DepsErrors []*packagesinternal.PackageError -} - -type jsonPackageError struct { - ImportStack []string - Pos string - Err string -} - -func otherFiles(p *jsonPackage) [][]string { - return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles} -} - -// createDriverResponse uses the "go list" command to expand the pattern -// words and return a response for the specified packages. -func (state *golistState) createDriverResponse(words ...string) (*DriverResponse, error) { - // go list uses the following identifiers in ImportPath and Imports: - // - // "p" -- importable package or main (command) - // "q.test" -- q's test executable - // "p [q.test]" -- variant of p as built for q's test executable - // "q_test [q.test]" -- q's external test package - // - // The packages p that are built differently for a test q.test - // are q itself, plus any helpers used by the external test q_test, - // typically including "testing" and all its dependencies. - - // Run "go list" for complete - // information on the specified packages. - goVersion, err := state.getGoVersion() - if err != nil { - return nil, err - } - buf, err := state.invokeGo("list", golistargs(state.cfg, words, goVersion)...) - if err != nil { - return nil, err - } - - seen := make(map[string]*jsonPackage) - pkgs := make(map[string]*Package) - additionalErrors := make(map[string][]Error) - // Decode the JSON and convert it to Package form. - response := &DriverResponse{ - GoVersion: goVersion, - } - for dec := json.NewDecoder(buf); dec.More(); { - p := new(jsonPackage) - if err := dec.Decode(p); err != nil { - return nil, fmt.Errorf("JSON decoding failed: %v", err) - } - - if p.ImportPath == "" { - // The documentation for go list says that “[e]rroneous packages will have - // a non-empty ImportPath”. If for some reason it comes back empty, we - // prefer to error out rather than silently discarding data or handing - // back a package without any way to refer to it. - if p.Error != nil { - return nil, Error{ - Pos: p.Error.Pos, - Msg: p.Error.Err, - } - } - return nil, fmt.Errorf("package missing import path: %+v", p) - } - - // Work around https://golang.org/issue/33157: - // go list -e, when given an absolute path, will find the package contained at - // that directory. But when no package exists there, it will return a fake package - // with an error and the ImportPath set to the absolute path provided to go list. - // Try to convert that absolute path to what its package path would be if it's - // contained in a known module or GOPATH entry. This will allow the package to be - // properly "reclaimed" when overlays are processed. - if filepath.IsAbs(p.ImportPath) && p.Error != nil { - pkgPath, ok, err := state.getPkgPath(p.ImportPath) - if err != nil { - return nil, err - } - if ok { - p.ImportPath = pkgPath - } - } - - if old, found := seen[p.ImportPath]; found { - // If one version of the package has an error, and the other doesn't, assume - // that this is a case where go list is reporting a fake dependency variant - // of the imported package: When a package tries to invalidly import another - // package, go list emits a variant of the imported package (with the same - // import path, but with an error on it, and the package will have a - // DepError set on it). An example of when this can happen is for imports of - // main packages: main packages can not be imported, but they may be - // separately matched and listed by another pattern. - // See golang.org/issue/36188 for more details. - - // The plan is that eventually, hopefully in Go 1.15, the error will be - // reported on the importing package rather than the duplicate "fake" - // version of the imported package. Once all supported versions of Go - // have the new behavior this logic can be deleted. - // TODO(matloob): delete the workaround logic once all supported versions of - // Go return the errors on the proper package. - - // There should be exactly one version of a package that doesn't have an - // error. - if old.Error == nil && p.Error == nil { - if !reflect.DeepEqual(p, old) { - return nil, fmt.Errorf("internal error: go list gives conflicting information for package %v", p.ImportPath) - } - continue - } - - // Determine if this package's error needs to be bubbled up. - // This is a hack, and we expect for go list to eventually set the error - // on the package. - if old.Error != nil { - var errkind string - if strings.Contains(old.Error.Err, "not an importable package") { - errkind = "not an importable package" - } else if strings.Contains(old.Error.Err, "use of internal package") && strings.Contains(old.Error.Err, "not allowed") { - errkind = "use of internal package not allowed" - } - if errkind != "" { - if len(old.Error.ImportStack) < 1 { - return nil, fmt.Errorf(`internal error: go list gave a %q error with empty import stack`, errkind) - } - importingPkg := old.Error.ImportStack[len(old.Error.ImportStack)-1] - if importingPkg == old.ImportPath { - // Using an older version of Go which put this package itself on top of import - // stack, instead of the importer. Look for importer in second from top - // position. - if len(old.Error.ImportStack) < 2 { - return nil, fmt.Errorf(`internal error: go list gave a %q error with an import stack without importing package`, errkind) - } - importingPkg = old.Error.ImportStack[len(old.Error.ImportStack)-2] - } - additionalErrors[importingPkg] = append(additionalErrors[importingPkg], Error{ - Pos: old.Error.Pos, - Msg: old.Error.Err, - Kind: ListError, - }) - } - } - - // Make sure that if there's a version of the package without an error, - // that's the one reported to the user. - if old.Error == nil { - continue - } - - // This package will replace the old one at the end of the loop. - } - seen[p.ImportPath] = p - - pkg := &Package{ - Name: p.Name, - ID: p.ImportPath, - Dir: p.Dir, - Target: p.Target, - GoFiles: absJoin(p.Dir, p.GoFiles, p.CgoFiles), - CompiledGoFiles: absJoin(p.Dir, p.CompiledGoFiles), - OtherFiles: absJoin(p.Dir, otherFiles(p)...), - EmbedFiles: absJoin(p.Dir, p.EmbedFiles), - EmbedPatterns: absJoin(p.Dir, p.EmbedPatterns), - IgnoredFiles: absJoin(p.Dir, p.IgnoredGoFiles, p.IgnoredOtherFiles), - ForTest: p.ForTest, - depsErrors: p.DepsErrors, - Module: p.Module, - } - - if (state.cfg.Mode&typecheckCgo) != 0 && len(p.CgoFiles) != 0 { - if len(p.CompiledGoFiles) > len(p.GoFiles) { - // We need the cgo definitions, which are in the first - // CompiledGoFile after the non-cgo ones. This is a hack but there - // isn't currently a better way to find it. We also need the pure - // Go files and unprocessed cgo files, all of which are already - // in pkg.GoFiles. - cgoTypes := p.CompiledGoFiles[len(p.GoFiles)] - pkg.CompiledGoFiles = append([]string{cgoTypes}, pkg.GoFiles...) - } else { - // golang/go#38990: go list silently fails to do cgo processing - pkg.CompiledGoFiles = nil - pkg.Errors = append(pkg.Errors, Error{ - Msg: "go list failed to return CompiledGoFiles. This may indicate failure to perform cgo processing; try building at the command line. See https://golang.org/issue/38990.", - Kind: ListError, - }) - } - } - - // Work around https://golang.org/issue/28749: - // cmd/go puts assembly, C, and C++ files in CompiledGoFiles. - // Remove files from CompiledGoFiles that are non-go files - // (or are not files that look like they are from the cache). - if len(pkg.CompiledGoFiles) > 0 { - out := pkg.CompiledGoFiles[:0] - for _, f := range pkg.CompiledGoFiles { - if ext := filepath.Ext(f); ext != ".go" && ext != "" { // ext == "" means the file is from the cache, so probably cgo-processed file - continue - } - out = append(out, f) - } - pkg.CompiledGoFiles = out - } - - // Extract the PkgPath from the package's ID. - if i := strings.IndexByte(pkg.ID, ' '); i >= 0 { - pkg.PkgPath = pkg.ID[:i] - } else { - pkg.PkgPath = pkg.ID - } - - if pkg.PkgPath == "unsafe" { - pkg.CompiledGoFiles = nil // ignore fake unsafe.go file (#59929) - } else if len(pkg.CompiledGoFiles) == 0 { - // Work around for pre-go.1.11 versions of go list. - // TODO(matloob): they should be handled by the fallback. - // Can we delete this? - pkg.CompiledGoFiles = pkg.GoFiles - } - - // Assume go list emits only absolute paths for Dir. - if p.Dir != "" && !filepath.IsAbs(p.Dir) { - log.Fatalf("internal error: go list returned non-absolute Package.Dir: %s", p.Dir) - } - - if p.Export != "" && !filepath.IsAbs(p.Export) { - pkg.ExportFile = filepath.Join(p.Dir, p.Export) - } else { - pkg.ExportFile = p.Export - } - - // imports - // - // Imports contains the IDs of all imported packages. - // ImportsMap records (path, ID) only where they differ. - ids := make(map[string]bool) - for _, id := range p.Imports { - ids[id] = true - } - pkg.Imports = make(map[string]*Package) - for path, id := range p.ImportMap { - pkg.Imports[path] = &Package{ID: id} // non-identity import - delete(ids, id) - } - for id := range ids { - if id == "C" { - continue - } - - pkg.Imports[id] = &Package{ID: id} // identity import - } - if !p.DepOnly { - response.Roots = append(response.Roots, pkg.ID) - } - - // Temporary work-around for golang/go#39986. Parse filenames out of - // error messages. This happens if there are unrecoverable syntax - // errors in the source, so we can't match on a specific error message. - // - // TODO(rfindley): remove this heuristic, in favor of considering - // InvalidGoFiles from the list driver. - if err := p.Error; err != nil && state.shouldAddFilenameFromError(p) { - addFilenameFromPos := func(pos string) bool { - split := strings.Split(pos, ":") - if len(split) < 1 { - return false - } - filename := strings.TrimSpace(split[0]) - if filename == "" { - return false - } - if !filepath.IsAbs(filename) { - filename = filepath.Join(state.cfg.Dir, filename) - } - info, _ := os.Stat(filename) - if info == nil { - return false - } - pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, filename) - pkg.GoFiles = append(pkg.GoFiles, filename) - return true - } - found := addFilenameFromPos(err.Pos) - // In some cases, go list only reports the error position in the - // error text, not the error position. One such case is when the - // file's package name is a keyword (see golang.org/issue/39763). - if !found { - addFilenameFromPos(err.Err) - } - } - - if p.Error != nil { - msg := strings.TrimSpace(p.Error.Err) // Trim to work around golang.org/issue/32363. - // Address golang.org/issue/35964 by appending import stack to error message. - if msg == "import cycle not allowed" && len(p.Error.ImportStack) != 0 { - msg += fmt.Sprintf(": import stack: %v", p.Error.ImportStack) - } - pkg.Errors = append(pkg.Errors, Error{ - Pos: p.Error.Pos, - Msg: msg, - Kind: ListError, - }) - } - - pkgs[pkg.ID] = pkg - } - - for id, errs := range additionalErrors { - if p, ok := pkgs[id]; ok { - p.Errors = append(p.Errors, errs...) - } - } - for _, pkg := range pkgs { - response.Packages = append(response.Packages, pkg) - } - sort.Slice(response.Packages, func(i, j int) bool { return response.Packages[i].ID < response.Packages[j].ID }) - - return response, nil -} - -func (state *golistState) shouldAddFilenameFromError(p *jsonPackage) bool { - if len(p.GoFiles) > 0 || len(p.CompiledGoFiles) > 0 { - return false - } - - goV, err := state.getGoVersion() - if err != nil { - return false - } - - // On Go 1.14 and earlier, only add filenames from errors if the import stack is empty. - // The import stack behaves differently for these versions than newer Go versions. - if goV < 15 { - return len(p.Error.ImportStack) == 0 - } - - // On Go 1.15 and later, only parse filenames out of error if there's no import stack, - // or the current package is at the top of the import stack. This is not guaranteed - // to work perfectly, but should avoid some cases where files in errors don't belong to this - // package. - return len(p.Error.ImportStack) == 0 || p.Error.ImportStack[len(p.Error.ImportStack)-1] == p.ImportPath -} - -// getGoVersion returns the effective minor version of the go command. -func (state *golistState) getGoVersion() (int, error) { - state.goVersionOnce.Do(func() { - state.goVersion, state.goVersionError = gocommand.GoVersion(state.ctx, state.cfgInvocation(), state.runner) - }) - return state.goVersion, state.goVersionError -} - -// getPkgPath finds the package path of a directory if it's relative to a root -// directory. -func (state *golistState) getPkgPath(dir string) (string, bool, error) { - absDir, err := filepath.Abs(dir) - if err != nil { - return "", false, err - } - roots, err := state.determineRootDirs() - if err != nil { - return "", false, err - } - - for rdir, rpath := range roots { - // Make sure that the directory is in the module, - // to avoid creating a path relative to another module. - if !strings.HasPrefix(absDir, rdir) { - continue - } - // TODO(matloob): This doesn't properly handle symlinks. - r, err := filepath.Rel(rdir, dir) - if err != nil { - continue - } - if rpath != "" { - // We choose only one root even though the directory even it can belong in multiple modules - // or GOPATH entries. This is okay because we only need to work with absolute dirs when a - // file is missing from disk, for instance when gopls calls go/packages in an overlay. - // Once the file is saved, gopls, or the next invocation of the tool will get the correct - // result straight from golist. - // TODO(matloob): Implement module tiebreaking? - return path.Join(rpath, filepath.ToSlash(r)), true, nil - } - return filepath.ToSlash(r), true, nil - } - return "", false, nil -} - -// absJoin absolutizes and flattens the lists of files. -func absJoin(dir string, fileses ...[]string) (res []string) { - for _, files := range fileses { - for _, file := range files { - if !filepath.IsAbs(file) { - file = filepath.Join(dir, file) - } - res = append(res, file) - } - } - return res -} - -func jsonFlag(cfg *Config, goVersion int) string { - if goVersion < 19 { - return "-json" - } - var fields []string - added := make(map[string]bool) - addFields := func(fs ...string) { - for _, f := range fs { - if !added[f] { - added[f] = true - fields = append(fields, f) - } - } - } - addFields("Name", "ImportPath", "Error") // These fields are always needed - if cfg.Mode&NeedFiles != 0 || cfg.Mode&(NeedTypes|NeedTypesInfo) != 0 { - addFields("Dir", "GoFiles", "IgnoredGoFiles", "IgnoredOtherFiles", "CFiles", - "CgoFiles", "CXXFiles", "MFiles", "HFiles", "FFiles", "SFiles", - "SwigFiles", "SwigCXXFiles", "SysoFiles") - if cfg.Tests { - addFields("TestGoFiles", "XTestGoFiles") - } - } - if cfg.Mode&(NeedTypes|NeedTypesInfo) != 0 { - // CompiledGoFiles seems to be required for the test case TestCgoNoSyntax, - // even when -compiled isn't passed in. - // TODO(#52435): Should we make the test ask for -compiled, or automatically - // request CompiledGoFiles in certain circumstances? - addFields("Dir", "CompiledGoFiles") - } - if cfg.Mode&NeedCompiledGoFiles != 0 { - addFields("Dir", "CompiledGoFiles", "Export") - } - if cfg.Mode&NeedImports != 0 { - // When imports are requested, DepOnly is used to distinguish between packages - // explicitly requested and transitive imports of those packages. - addFields("DepOnly", "Imports", "ImportMap") - if cfg.Tests { - addFields("TestImports", "XTestImports") - } - } - if cfg.Mode&NeedDeps != 0 { - addFields("DepOnly") - } - if usesExportData(cfg) { - // Request Dir in the unlikely case Export is not absolute. - addFields("Dir", "Export") - } - if cfg.Mode&NeedForTest != 0 { - addFields("ForTest") - } - if cfg.Mode&needInternalDepsErrors != 0 { - addFields("DepsErrors") - } - if cfg.Mode&NeedModule != 0 { - addFields("Module") - } - if cfg.Mode&NeedEmbedFiles != 0 { - addFields("EmbedFiles") - } - if cfg.Mode&NeedEmbedPatterns != 0 { - addFields("EmbedPatterns") - } - if cfg.Mode&NeedTarget != 0 { - addFields("Target") - } - return "-json=" + strings.Join(fields, ",") -} - -func golistargs(cfg *Config, words []string, goVersion int) []string { - const findFlags = NeedImports | NeedTypes | NeedSyntax | NeedTypesInfo - fullargs := []string{ - "-e", jsonFlag(cfg, goVersion), - fmt.Sprintf("-compiled=%t", cfg.Mode&(NeedCompiledGoFiles|NeedSyntax|NeedTypes|NeedTypesInfo|NeedTypesSizes) != 0), - fmt.Sprintf("-test=%t", cfg.Tests), - fmt.Sprintf("-export=%t", usesExportData(cfg)), - fmt.Sprintf("-deps=%t", cfg.Mode&NeedImports != 0), - // go list doesn't let you pass -test and -find together, - // probably because you'd just get the TestMain. - fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0 && !usesExportData(cfg)), - } - - // golang/go#60456: with go1.21 and later, go list serves pgo variants, which - // can be costly to compute and may result in redundant processing for the - // caller. Disable these variants. If someone wants to add e.g. a NeedPGO - // mode flag, that should be a separate proposal. - if goVersion >= 21 { - fullargs = append(fullargs, "-pgo=off") - } - - fullargs = append(fullargs, cfg.BuildFlags...) - fullargs = append(fullargs, "--") - fullargs = append(fullargs, words...) - return fullargs -} - -// cfgInvocation returns an Invocation that reflects cfg's settings. -func (state *golistState) cfgInvocation() gocommand.Invocation { - cfg := state.cfg - return gocommand.Invocation{ - BuildFlags: cfg.BuildFlags, - ModFile: cfg.modFile, - ModFlag: cfg.modFlag, - CleanEnv: cfg.Env != nil, - Env: cfg.Env, - Logf: cfg.Logf, - WorkingDir: cfg.Dir, - Overlay: state.overlay, - } -} - -// invokeGo returns the stdout of a go command invocation. -func (state *golistState) invokeGo(verb string, args ...string) (*bytes.Buffer, error) { - cfg := state.cfg - - inv := state.cfgInvocation() - inv.Verb = verb - inv.Args = args - - stdout, stderr, friendlyErr, err := state.runner.RunRaw(cfg.Context, inv) - if err != nil { - // Check for 'go' executable not being found. - if ee, ok := err.(*exec.Error); ok && ee.Err == exec.ErrNotFound { - return nil, fmt.Errorf("'go list' driver requires 'go', but %s", exec.ErrNotFound) - } - - exitErr, ok := err.(*exec.ExitError) - if !ok { - // Catastrophic error: - // - context cancellation - return nil, fmt.Errorf("couldn't run 'go': %w", err) - } - - // Old go version? - if strings.Contains(stderr.String(), "flag provided but not defined") { - return nil, goTooOldError{fmt.Errorf("unsupported version of go: %s: %s", exitErr, stderr)} - } - - // Related to #24854 - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "unexpected directory layout") { - return nil, friendlyErr - } - - // Return an error if 'go list' failed due to missing tools in - // $GOROOT/pkg/tool/$GOOS_$GOARCH (#69606). - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), `go: no such tool`) { - return nil, friendlyErr - } - - // Is there an error running the C compiler in cgo? This will be reported in the "Error" field - // and should be suppressed by go list -e. - // - // This condition is not perfect yet because the error message can include other error messages than runtime/cgo. - isPkgPathRune := func(r rune) bool { - // From https://golang.org/ref/spec#Import_declarations: - // Implementation restriction: A compiler may restrict ImportPaths to non-empty strings - // using only characters belonging to Unicode's L, M, N, P, and S general categories - // (the Graphic characters without spaces) and may also exclude the - // characters !"#$%&'()*,:;<=>?[\]^`{|} and the Unicode replacement character U+FFFD. - return unicode.IsOneOf([]*unicode.RangeTable{unicode.L, unicode.M, unicode.N, unicode.P, unicode.S}, r) && - !strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^`{|}\uFFFD", r) - } - // golang/go#36770: Handle case where cmd/go prints module download messages before the error. - msg := stderr.String() - for strings.HasPrefix(msg, "go: downloading") { - msg = msg[strings.IndexRune(msg, '\n')+1:] - } - if len(stderr.String()) > 0 && strings.HasPrefix(stderr.String(), "# ") { - msg := msg[len("# "):] - if strings.HasPrefix(strings.TrimLeftFunc(msg, isPkgPathRune), "\n") { - return stdout, nil - } - // Treat pkg-config errors as a special case (golang.org/issue/36770). - if strings.HasPrefix(msg, "pkg-config") { - return stdout, nil - } - } - - // This error only appears in stderr. See golang.org/cl/166398 for a fix in go list to show - // the error in the Err section of stdout in case -e option is provided. - // This fix is provided for backwards compatibility. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must be .go files") { - output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Similar to the previous error, but currently lacks a fix in Go. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must all be in one directory") { - output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Backwards compatibility for Go 1.11 because 1.12 and 1.13 put the directory in the ImportPath. - // If the package doesn't exist, put the absolute path of the directory into the error message, - // as Go 1.13 list does. - const noSuchDirectory = "no such directory" - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), noSuchDirectory) { - errstr := stderr.String() - abspath := strings.TrimSpace(errstr[strings.Index(errstr, noSuchDirectory)+len(noSuchDirectory):]) - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - abspath, strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Workaround for #29280: go list -e has incorrect behavior when an ad-hoc package doesn't exist. - // Note that the error message we look for in this case is different that the one looked for above. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no such file or directory") { - output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Workaround for #34273. go list -e with GO111MODULE=on has incorrect behavior when listing a - // directory outside any module. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside available modules") { - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - // TODO(matloob): command-line-arguments isn't correct here. - "command-line-arguments", strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Another variation of the previous error - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside module root") { - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - // TODO(matloob): command-line-arguments isn't correct here. - "command-line-arguments", strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Workaround for an instance of golang.org/issue/26755: go list -e will return a non-zero exit - // status if there's a dependency on a package that doesn't exist. But it should return - // a zero exit status and set an error on that package. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no Go files in") { - // Don't clobber stdout if `go list` actually returned something. - if len(stdout.String()) > 0 { - return stdout, nil - } - // try to extract package name from string - stderrStr := stderr.String() - var importPath string - colon := strings.Index(stderrStr, ":") - if colon > 0 && strings.HasPrefix(stderrStr, "go build ") { - importPath = stderrStr[len("go build "):colon] - } - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - importPath, strings.Trim(stderrStr, "\n")) - return bytes.NewBufferString(output), nil - } - - // Export mode entails a build. - // If that build fails, errors appear on stderr - // (despite the -e flag) and the Export field is blank. - // Do not fail in that case. - // The same is true if an ad-hoc package given to go list doesn't exist. - // TODO(matloob): Remove these once we can depend on go list to exit with a zero status with -e even when - // packages don't exist or a build fails. - if !usesExportData(cfg) && !containsGoFile(args) { - return nil, friendlyErr - } - } - return stdout, nil -} - -func containsGoFile(s []string) bool { - for _, f := range s { - if strings.HasSuffix(f, ".go") { - return true - } - } - return false -} - -func cmdDebugStr(cmd *exec.Cmd) string { - env := make(map[string]string) - for _, kv := range cmd.Env { - split := strings.SplitN(kv, "=", 2) - k, v := split[0], split[1] - env[k] = v - } - - var args []string - for _, arg := range cmd.Args { - quoted := strconv.Quote(arg) - if quoted[1:len(quoted)-1] != arg || strings.Contains(arg, " ") { - args = append(args, quoted) - } else { - args = append(args, arg) - } - } - return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) -} - -// getSizesForArgs queries 'go list' for the appropriate -// Compiler and GOARCH arguments to pass to [types.SizesFor]. -func getSizesForArgs(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (string, string, error) { - inv.Verb = "list" - inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} - stdout, stderr, friendlyErr, rawErr := gocmdRunner.RunRaw(ctx, inv) - var goarch, compiler string - if rawErr != nil { - rawErrMsg := rawErr.Error() - if strings.Contains(rawErrMsg, "cannot find main module") || - strings.Contains(rawErrMsg, "go.mod file not found") { - // User's running outside of a module. - // All bets are off. Get GOARCH and guess compiler is gc. - // TODO(matloob): Is this a problem in practice? - inv.Verb = "env" - inv.Args = []string{"GOARCH"} - envout, enverr := gocmdRunner.Run(ctx, inv) - if enverr != nil { - return "", "", enverr - } - goarch = strings.TrimSpace(envout.String()) - compiler = "gc" - } else if friendlyErr != nil { - return "", "", friendlyErr - } else { - // This should be unreachable, but be defensive - // in case RunRaw's error results are inconsistent. - return "", "", rawErr - } - } else { - fields := strings.Fields(stdout.String()) - if len(fields) < 2 { - return "", "", fmt.Errorf("could not parse GOARCH and Go compiler in format \" \":\nstdout: <<%s>>\nstderr: <<%s>>", - stdout.String(), stderr.String()) - } - goarch = fields[0] - compiler = fields[1] - } - return compiler, goarch, nil -} diff --git a/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/vendor/golang.org/x/tools/go/packages/golist_overlay.go deleted file mode 100644 index d823c474..00000000 --- a/vendor/golang.org/x/tools/go/packages/golist_overlay.go +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -import ( - "encoding/json" - "path/filepath" - - "golang.org/x/tools/internal/gocommand" -) - -// determineRootDirs returns a mapping from absolute directories that could -// contain code to their corresponding import path prefixes. -func (state *golistState) determineRootDirs() (map[string]string, error) { - env, err := state.getEnv() - if err != nil { - return nil, err - } - if env["GOMOD"] != "" { - state.rootsOnce.Do(func() { - state.rootDirs, state.rootDirsError = state.determineRootDirsModules() - }) - } else { - state.rootsOnce.Do(func() { - state.rootDirs, state.rootDirsError = state.determineRootDirsGOPATH() - }) - } - return state.rootDirs, state.rootDirsError -} - -func (state *golistState) determineRootDirsModules() (map[string]string, error) { - // List all of the modules--the first will be the directory for the main - // module. Any replaced modules will also need to be treated as roots. - // Editing files in the module cache isn't a great idea, so we don't - // plan to ever support that. - out, err := state.invokeGo("list", "-m", "-json", "all") - if err != nil { - // 'go list all' will fail if we're outside of a module and - // GO111MODULE=on. Try falling back without 'all'. - var innerErr error - out, innerErr = state.invokeGo("list", "-m", "-json") - if innerErr != nil { - return nil, err - } - } - roots := map[string]string{} - modules := map[string]string{} - var i int - for dec := json.NewDecoder(out); dec.More(); { - mod := new(gocommand.ModuleJSON) - if err := dec.Decode(mod); err != nil { - return nil, err - } - if mod.Dir != "" && mod.Path != "" { - // This is a valid module; add it to the map. - absDir, err := filepath.Abs(mod.Dir) - if err != nil { - return nil, err - } - modules[absDir] = mod.Path - // The first result is the main module. - if i == 0 || mod.Replace != nil && mod.Replace.Path != "" { - roots[absDir] = mod.Path - } - } - i++ - } - return roots, nil -} - -func (state *golistState) determineRootDirsGOPATH() (map[string]string, error) { - m := map[string]string{} - for _, dir := range filepath.SplitList(state.mustGetEnv()["GOPATH"]) { - absDir, err := filepath.Abs(dir) - if err != nil { - return nil, err - } - m[filepath.Join(absDir, "src")] = "" - } - return m, nil -} diff --git a/vendor/golang.org/x/tools/go/packages/loadmode_string.go b/vendor/golang.org/x/tools/go/packages/loadmode_string.go deleted file mode 100644 index 69eec9f4..00000000 --- a/vendor/golang.org/x/tools/go/packages/loadmode_string.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -import ( - "fmt" - "strings" -) - -var modes = [...]struct { - mode LoadMode - name string -}{ - {NeedName, "NeedName"}, - {NeedFiles, "NeedFiles"}, - {NeedCompiledGoFiles, "NeedCompiledGoFiles"}, - {NeedImports, "NeedImports"}, - {NeedDeps, "NeedDeps"}, - {NeedExportFile, "NeedExportFile"}, - {NeedTypes, "NeedTypes"}, - {NeedSyntax, "NeedSyntax"}, - {NeedTypesInfo, "NeedTypesInfo"}, - {NeedTypesSizes, "NeedTypesSizes"}, - {NeedForTest, "NeedForTest"}, - {NeedModule, "NeedModule"}, - {NeedEmbedFiles, "NeedEmbedFiles"}, - {NeedEmbedPatterns, "NeedEmbedPatterns"}, - {NeedTarget, "NeedTarget"}, -} - -func (mode LoadMode) String() string { - if mode == 0 { - return "LoadMode(0)" - } - var out []string - // named bits - for _, item := range modes { - if (mode & item.mode) != 0 { - mode ^= item.mode - out = append(out, item.name) - } - } - // unnamed residue - if mode != 0 { - if out == nil { - return fmt.Sprintf("LoadMode(%#x)", int(mode)) - } - out = append(out, fmt.Sprintf("%#x", int(mode))) - } - if len(out) == 1 { - return out[0] - } - return "(" + strings.Join(out, "|") + ")" -} diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go deleted file mode 100644 index 0147d908..00000000 --- a/vendor/golang.org/x/tools/go/packages/packages.go +++ /dev/null @@ -1,1571 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -// See doc.go for package documentation and implementation notes. - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "go/ast" - "go/parser" - "go/scanner" - "go/token" - "go/types" - "log" - "os" - "path/filepath" - "runtime" - "strings" - "sync" - "sync/atomic" - "time" - - "golang.org/x/sync/errgroup" - - "golang.org/x/tools/go/gcexportdata" - "golang.org/x/tools/internal/gocommand" - "golang.org/x/tools/internal/packagesinternal" - "golang.org/x/tools/internal/typesinternal" -) - -// A LoadMode controls the amount of detail to return when loading. -// The bits below can be combined to specify which fields should be -// filled in the result packages. -// -// The zero value is a special case, equivalent to combining -// the NeedName, NeedFiles, and NeedCompiledGoFiles bits. -// -// ID and Errors (if present) will always be filled. -// [Load] may return more information than requested. -// -// The Mode flag is a union of several bits named NeedName, -// NeedFiles, and so on, each of which determines whether -// a given field of Package (Name, Files, etc) should be -// populated. -// -// For convenience, we provide named constants for the most -// common combinations of Need flags: -// -// [LoadFiles] lists of files in each package -// [LoadImports] ... plus imports -// [LoadTypes] ... plus type information -// [LoadSyntax] ... plus type-annotated syntax -// [LoadAllSyntax] ... for all dependencies -// -// Unfortunately there are a number of open bugs related to -// interactions among the LoadMode bits: -// - https://github.com/golang/go/issues/56633 -// - https://github.com/golang/go/issues/56677 -// - https://github.com/golang/go/issues/58726 -// - https://github.com/golang/go/issues/63517 -type LoadMode int - -const ( - // NeedName adds Name and PkgPath. - NeedName LoadMode = 1 << iota - - // NeedFiles adds Dir, GoFiles, OtherFiles, and IgnoredFiles - NeedFiles - - // NeedCompiledGoFiles adds CompiledGoFiles. - NeedCompiledGoFiles - - // NeedImports adds Imports. If NeedDeps is not set, the Imports field will contain - // "placeholder" Packages with only the ID set. - NeedImports - - // NeedDeps adds the fields requested by the LoadMode in the packages in Imports. - NeedDeps - - // NeedExportFile adds ExportFile. - NeedExportFile - - // NeedTypes adds Types, Fset, and IllTyped. - NeedTypes - - // NeedSyntax adds Syntax and Fset. - NeedSyntax - - // NeedTypesInfo adds TypesInfo and Fset. - NeedTypesInfo - - // NeedTypesSizes adds TypesSizes. - NeedTypesSizes - - // needInternalDepsErrors adds the internal deps errors field for use by gopls. - needInternalDepsErrors - - // NeedForTest adds ForTest. - // - // Tests must also be set on the context for this field to be populated. - NeedForTest - - // typecheckCgo enables full support for type checking cgo. Requires Go 1.15+. - // Modifies CompiledGoFiles and Types, and has no effect on its own. - typecheckCgo - - // NeedModule adds Module. - NeedModule - - // NeedEmbedFiles adds EmbedFiles. - NeedEmbedFiles - - // NeedEmbedPatterns adds EmbedPatterns. - NeedEmbedPatterns - - // NeedTarget adds Target. - NeedTarget - - // Be sure to update loadmode_string.go when adding new items! -) - -const ( - // LoadFiles loads the name and file names for the initial packages. - LoadFiles = NeedName | NeedFiles | NeedCompiledGoFiles - - // LoadImports loads the name, file names, and import mapping for the initial packages. - LoadImports = LoadFiles | NeedImports - - // LoadTypes loads exported type information for the initial packages. - LoadTypes = LoadImports | NeedTypes | NeedTypesSizes - - // LoadSyntax loads typed syntax for the initial packages. - LoadSyntax = LoadTypes | NeedSyntax | NeedTypesInfo - - // LoadAllSyntax loads typed syntax for the initial packages and all dependencies. - LoadAllSyntax = LoadSyntax | NeedDeps - - // Deprecated: NeedExportsFile is a historical misspelling of NeedExportFile. - NeedExportsFile = NeedExportFile -) - -// A Config specifies details about how packages should be loaded. -// The zero value is a valid configuration. -// -// Calls to [Load] do not modify this struct. -type Config struct { - // Mode controls the level of information returned for each package. - Mode LoadMode - - // Context specifies the context for the load operation. - // Cancelling the context may cause [Load] to abort and - // return an error. - Context context.Context - - // Logf is the logger for the config. - // If the user provides a logger, debug logging is enabled. - // If the GOPACKAGESDEBUG environment variable is set to true, - // but the logger is nil, default to log.Printf. - Logf func(format string, args ...interface{}) - - // Dir is the directory in which to run the build system's query tool - // that provides information about the packages. - // If Dir is empty, the tool is run in the current directory. - Dir string - - // Env is the environment to use when invoking the build system's query tool. - // If Env is nil, the current environment is used. - // As in os/exec's Cmd, only the last value in the slice for - // each environment key is used. To specify the setting of only - // a few variables, append to the current environment, as in: - // - // opt.Env = append(os.Environ(), "GOOS=plan9", "GOARCH=386") - // - Env []string - - // BuildFlags is a list of command-line flags to be passed through to - // the build system's query tool. - BuildFlags []string - - // Fset provides source position information for syntax trees and types. - // If Fset is nil, Load will use a new fileset, but preserve Fset's value. - Fset *token.FileSet - - // ParseFile is called to read and parse each file - // when preparing a package's type-checked syntax tree. - // It must be safe to call ParseFile simultaneously from multiple goroutines. - // If ParseFile is nil, the loader will uses parser.ParseFile. - // - // ParseFile should parse the source from src and use filename only for - // recording position information. - // - // An application may supply a custom implementation of ParseFile - // to change the effective file contents or the behavior of the parser, - // or to modify the syntax tree. For example, selectively eliminating - // unwanted function bodies can significantly accelerate type checking. - ParseFile func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) - - // If Tests is set, the loader includes not just the packages - // matching a particular pattern but also any related test packages, - // including test-only variants of the package and the test executable. - // - // For example, when using the go command, loading "fmt" with Tests=true - // returns four packages, with IDs "fmt" (the standard package), - // "fmt [fmt.test]" (the package as compiled for the test), - // "fmt_test" (the test functions from source files in package fmt_test), - // and "fmt.test" (the test binary). - // - // In build systems with explicit names for tests, - // setting Tests may have no effect. - Tests bool - - // Overlay is a mapping from absolute file paths to file contents. - // - // For each map entry, [Load] uses the alternative file - // contents provided by the overlay mapping instead of reading - // from the file system. This mechanism can be used to enable - // editor-integrated tools to correctly analyze the contents - // of modified but unsaved buffers, for example. - // - // The overlay mapping is passed to the build system's driver - // (see "The driver protocol") so that it too can report - // consistent package metadata about unsaved files. However, - // drivers may vary in their level of support for overlays. - Overlay map[string][]byte - - // -- Hidden configuration fields only for use in x/tools -- - - // modFile will be used for -modfile in go command invocations. - modFile string - - // modFlag will be used for -modfile in go command invocations. - modFlag string -} - -// Load loads and returns the Go packages named by the given patterns. -// -// The cfg parameter specifies loading options; nil behaves the same as an empty [Config]. -// -// The [Config.Mode] field is a set of bits that determine what kinds -// of information should be computed and returned. Modes that require -// more information tend to be slower. See [LoadMode] for details -// and important caveats. Its zero value is equivalent to -// [NeedName] | [NeedFiles] | [NeedCompiledGoFiles]. -// -// Each call to Load returns a new set of [Package] instances. -// The Packages and their Imports form a directed acyclic graph. -// -// If the [NeedTypes] mode flag was set, each call to Load uses a new -// [types.Importer], so [types.Object] and [types.Type] values from -// different calls to Load must not be mixed as they will have -// inconsistent notions of type identity. -// -// If any of the patterns was invalid as defined by the -// underlying build system, Load returns an error. -// It may return an empty list of packages without an error, -// for instance for an empty expansion of a valid wildcard. -// Errors associated with a particular package are recorded in the -// corresponding Package's Errors list, and do not cause Load to -// return an error. Clients may need to handle such errors before -// proceeding with further analysis. The [PrintErrors] function is -// provided for convenient display of all errors. -func Load(cfg *Config, patterns ...string) ([]*Package, error) { - ld := newLoader(cfg) - response, external, err := defaultDriver(&ld.Config, patterns...) - if err != nil { - return nil, err - } - - ld.sizes = types.SizesFor(response.Compiler, response.Arch) - if ld.sizes == nil && ld.Config.Mode&(NeedTypes|NeedTypesSizes|NeedTypesInfo) != 0 { - // Type size information is needed but unavailable. - if external { - // An external driver may fail to populate the Compiler/GOARCH fields, - // especially since they are relatively new (see #63700). - // Provide a sensible fallback in this case. - ld.sizes = types.SizesFor("gc", runtime.GOARCH) - if ld.sizes == nil { // gccgo-only arch - ld.sizes = types.SizesFor("gc", "amd64") - } - } else { - // Go list should never fail to deliver accurate size information. - // Reject the whole Load since the error is the same for every package. - return nil, fmt.Errorf("can't determine type sizes for compiler %q on GOARCH %q", - response.Compiler, response.Arch) - } - } - - return ld.refine(response) -} - -// defaultDriver is a driver that implements go/packages' fallback behavior. -// It will try to request to an external driver, if one exists. If there's -// no external driver, or the driver returns a response with NotHandled set, -// defaultDriver will fall back to the go list driver. -// The boolean result indicates that an external driver handled the request. -func defaultDriver(cfg *Config, patterns ...string) (*DriverResponse, bool, error) { - const ( - // windowsArgMax specifies the maximum command line length for - // the Windows' CreateProcess function. - windowsArgMax = 32767 - // maxEnvSize is a very rough estimation of the maximum environment - // size of a user. - maxEnvSize = 16384 - // safeArgMax specifies the maximum safe command line length to use - // by the underlying driver excl. the environment. We choose the Windows' - // ARG_MAX as the starting point because it's one of the lowest ARG_MAX - // constants out of the different supported platforms, - // e.g., https://www.in-ulm.de/~mascheck/various/argmax/#results. - safeArgMax = windowsArgMax - maxEnvSize - ) - chunks, err := splitIntoChunks(patterns, safeArgMax) - if err != nil { - return nil, false, err - } - - if driver := findExternalDriver(cfg); driver != nil { - response, err := callDriverOnChunks(driver, cfg, chunks) - if err != nil { - return nil, false, err - } else if !response.NotHandled { - return response, true, nil - } - // not handled: fall through - } - - // go list fallback - - // Write overlays once, as there are many calls - // to 'go list' (one per chunk plus others too). - overlayFile, cleanupOverlay, err := gocommand.WriteOverlays(cfg.Overlay) - if err != nil { - return nil, false, err - } - defer cleanupOverlay() - - var runner gocommand.Runner // (shared across many 'go list' calls) - driver := func(cfg *Config, patterns []string) (*DriverResponse, error) { - return goListDriver(cfg, &runner, overlayFile, patterns) - } - response, err := callDriverOnChunks(driver, cfg, chunks) - if err != nil { - return nil, false, err - } - return response, false, err -} - -// splitIntoChunks chunks the slice so that the total number of characters -// in a chunk is no longer than argMax. -func splitIntoChunks(patterns []string, argMax int) ([][]string, error) { - if argMax <= 0 { - return nil, errors.New("failed to split patterns into chunks, negative safe argMax value") - } - var chunks [][]string - charsInChunk := 0 - nextChunkStart := 0 - for i, v := range patterns { - vChars := len(v) - if vChars > argMax { - // a single pattern is longer than the maximum safe ARG_MAX, hardly should happen - return nil, errors.New("failed to split patterns into chunks, a pattern is too long") - } - charsInChunk += vChars + 1 // +1 is for a whitespace between patterns that has to be counted too - if charsInChunk > argMax { - chunks = append(chunks, patterns[nextChunkStart:i]) - nextChunkStart = i - charsInChunk = vChars - } - } - // add the last chunk - if nextChunkStart < len(patterns) { - chunks = append(chunks, patterns[nextChunkStart:]) - } - return chunks, nil -} - -func callDriverOnChunks(driver driver, cfg *Config, chunks [][]string) (*DriverResponse, error) { - if len(chunks) == 0 { - return driver(cfg, nil) - } - responses := make([]*DriverResponse, len(chunks)) - errNotHandled := errors.New("driver returned NotHandled") - var g errgroup.Group - for i, chunk := range chunks { - g.Go(func() (err error) { - responses[i], err = driver(cfg, chunk) - if responses[i] != nil && responses[i].NotHandled { - err = errNotHandled - } - return err - }) - } - if err := g.Wait(); err != nil { - if errors.Is(err, errNotHandled) { - return &DriverResponse{NotHandled: true}, nil - } - return nil, err - } - return mergeResponses(responses...), nil -} - -func mergeResponses(responses ...*DriverResponse) *DriverResponse { - if len(responses) == 0 { - return nil - } - response := newDeduper() - response.dr.NotHandled = false - response.dr.Compiler = responses[0].Compiler - response.dr.Arch = responses[0].Arch - response.dr.GoVersion = responses[0].GoVersion - for _, v := range responses { - response.addAll(v) - } - return response.dr -} - -// A Package describes a loaded Go package. -// -// It also defines part of the JSON schema of [DriverResponse]. -// See the package documentation for an overview. -type Package struct { - // ID is a unique identifier for a package, - // in a syntax provided by the underlying build system. - // - // Because the syntax varies based on the build system, - // clients should treat IDs as opaque and not attempt to - // interpret them. - ID string - - // Name is the package name as it appears in the package source code. - Name string - - // PkgPath is the package path as used by the go/types package. - PkgPath string - - // Dir is the directory associated with the package, if it exists. - // - // For packages listed by the go command, this is the directory containing - // the package files. - Dir string - - // Errors contains any errors encountered querying the metadata - // of the package, or while parsing or type-checking its files. - Errors []Error - - // TypeErrors contains the subset of errors produced during type checking. - TypeErrors []types.Error - - // GoFiles lists the absolute file paths of the package's Go source files. - // It may include files that should not be compiled, for example because - // they contain non-matching build tags, are documentary pseudo-files such as - // unsafe/unsafe.go or builtin/builtin.go, or are subject to cgo preprocessing. - GoFiles []string - - // CompiledGoFiles lists the absolute file paths of the package's source - // files that are suitable for type checking. - // This may differ from GoFiles if files are processed before compilation. - CompiledGoFiles []string - - // OtherFiles lists the absolute file paths of the package's non-Go source files, - // including assembly, C, C++, Fortran, Objective-C, SWIG, and so on. - OtherFiles []string - - // EmbedFiles lists the absolute file paths of the package's files - // embedded with go:embed. - EmbedFiles []string - - // EmbedPatterns lists the absolute file patterns of the package's - // files embedded with go:embed. - EmbedPatterns []string - - // IgnoredFiles lists source files that are not part of the package - // using the current build configuration but that might be part of - // the package using other build configurations. - IgnoredFiles []string - - // ExportFile is the absolute path to a file containing type - // information for the package as provided by the build system. - ExportFile string - - // Target is the absolute install path of the .a file, for libraries, - // and of the executable file, for binaries. - Target string - - // Imports maps import paths appearing in the package's Go source files - // to corresponding loaded Packages. - Imports map[string]*Package - - // Module is the module information for the package if it exists. - // - // Note: it may be missing for std and cmd; see Go issue #65816. - Module *Module - - // -- The following fields are not part of the driver JSON schema. -- - - // Types provides type information for the package. - // The NeedTypes LoadMode bit sets this field for packages matching the - // patterns; type information for dependencies may be missing or incomplete, - // unless NeedDeps and NeedImports are also set. - // - // Each call to [Load] returns a consistent set of type - // symbols, as defined by the comment at [types.Identical]. - // Avoid mixing type information from two or more calls to [Load]. - Types *types.Package `json:"-"` - - // Fset provides position information for Types, TypesInfo, and Syntax. - // It is set only when Types is set. - Fset *token.FileSet `json:"-"` - - // IllTyped indicates whether the package or any dependency contains errors. - // It is set only when Types is set. - IllTyped bool `json:"-"` - - // Syntax is the package's syntax trees, for the files listed in CompiledGoFiles. - // - // The NeedSyntax LoadMode bit populates this field for packages matching the patterns. - // If NeedDeps and NeedImports are also set, this field will also be populated - // for dependencies. - // - // Syntax is kept in the same order as CompiledGoFiles, with the caveat that nils are - // removed. If parsing returned nil, Syntax may be shorter than CompiledGoFiles. - Syntax []*ast.File `json:"-"` - - // TypesInfo provides type information about the package's syntax trees. - // It is set only when Syntax is set. - TypesInfo *types.Info `json:"-"` - - // TypesSizes provides the effective size function for types in TypesInfo. - TypesSizes types.Sizes `json:"-"` - - // -- internal -- - - // ForTest is the package under test, if any. - ForTest string - - // depsErrors is the DepsErrors field from the go list response, if any. - depsErrors []*packagesinternal.PackageError -} - -// Module provides module information for a package. -// -// It also defines part of the JSON schema of [DriverResponse]. -// See the package documentation for an overview. -type Module struct { - Path string // module path - Version string // module version - Replace *Module // replaced by this module - Time *time.Time // time version was created - Main bool // is this the main module? - Indirect bool // is this module only an indirect dependency of main module? - Dir string // directory holding files for this module, if any - GoMod string // path to go.mod file used when loading this module, if any - GoVersion string // go version used in module - Error *ModuleError // error loading module -} - -// ModuleError holds errors loading a module. -type ModuleError struct { - Err string // the error itself -} - -func init() { - packagesinternal.GetDepsErrors = func(p interface{}) []*packagesinternal.PackageError { - return p.(*Package).depsErrors - } - packagesinternal.SetModFile = func(config interface{}, value string) { - config.(*Config).modFile = value - } - packagesinternal.SetModFlag = func(config interface{}, value string) { - config.(*Config).modFlag = value - } - packagesinternal.TypecheckCgo = int(typecheckCgo) - packagesinternal.DepsErrors = int(needInternalDepsErrors) -} - -// An Error describes a problem with a package's metadata, syntax, or types. -type Error struct { - Pos string // "file:line:col" or "file:line" or "" or "-" - Msg string - Kind ErrorKind -} - -// ErrorKind describes the source of the error, allowing the user to -// differentiate between errors generated by the driver, the parser, or the -// type-checker. -type ErrorKind int - -const ( - UnknownError ErrorKind = iota - ListError - ParseError - TypeError -) - -func (err Error) Error() string { - pos := err.Pos - if pos == "" { - pos = "-" // like token.Position{}.String() - } - return pos + ": " + err.Msg -} - -// flatPackage is the JSON form of Package -// It drops all the type and syntax fields, and transforms the Imports -// -// TODO(adonovan): identify this struct with Package, effectively -// publishing the JSON protocol. -type flatPackage struct { - ID string - Name string `json:",omitempty"` - PkgPath string `json:",omitempty"` - Errors []Error `json:",omitempty"` - GoFiles []string `json:",omitempty"` - CompiledGoFiles []string `json:",omitempty"` - OtherFiles []string `json:",omitempty"` - EmbedFiles []string `json:",omitempty"` - EmbedPatterns []string `json:",omitempty"` - IgnoredFiles []string `json:",omitempty"` - ExportFile string `json:",omitempty"` - Imports map[string]string `json:",omitempty"` -} - -// MarshalJSON returns the Package in its JSON form. -// For the most part, the structure fields are written out unmodified, and -// the type and syntax fields are skipped. -// The imports are written out as just a map of path to package id. -// The errors are written using a custom type that tries to preserve the -// structure of error types we know about. -// -// This method exists to enable support for additional build systems. It is -// not intended for use by clients of the API and we may change the format. -func (p *Package) MarshalJSON() ([]byte, error) { - flat := &flatPackage{ - ID: p.ID, - Name: p.Name, - PkgPath: p.PkgPath, - Errors: p.Errors, - GoFiles: p.GoFiles, - CompiledGoFiles: p.CompiledGoFiles, - OtherFiles: p.OtherFiles, - EmbedFiles: p.EmbedFiles, - EmbedPatterns: p.EmbedPatterns, - IgnoredFiles: p.IgnoredFiles, - ExportFile: p.ExportFile, - } - if len(p.Imports) > 0 { - flat.Imports = make(map[string]string, len(p.Imports)) - for path, ipkg := range p.Imports { - flat.Imports[path] = ipkg.ID - } - } - return json.Marshal(flat) -} - -// UnmarshalJSON reads in a Package from its JSON format. -// See MarshalJSON for details about the format accepted. -func (p *Package) UnmarshalJSON(b []byte) error { - flat := &flatPackage{} - if err := json.Unmarshal(b, &flat); err != nil { - return err - } - *p = Package{ - ID: flat.ID, - Name: flat.Name, - PkgPath: flat.PkgPath, - Errors: flat.Errors, - GoFiles: flat.GoFiles, - CompiledGoFiles: flat.CompiledGoFiles, - OtherFiles: flat.OtherFiles, - EmbedFiles: flat.EmbedFiles, - EmbedPatterns: flat.EmbedPatterns, - IgnoredFiles: flat.IgnoredFiles, - ExportFile: flat.ExportFile, - } - if len(flat.Imports) > 0 { - p.Imports = make(map[string]*Package, len(flat.Imports)) - for path, id := range flat.Imports { - p.Imports[path] = &Package{ID: id} - } - } - return nil -} - -func (p *Package) String() string { return p.ID } - -// loaderPackage augments Package with state used during the loading phase -type loaderPackage struct { - *Package - importErrors map[string]error // maps each bad import to its error - preds []*loaderPackage // packages that import this one - unfinishedSuccs atomic.Int32 // number of direct imports not yet loaded - color uint8 // for cycle detection - needsrc bool // load from source (Mode >= LoadTypes) - needtypes bool // type information is either requested or depended on - initial bool // package was matched by a pattern - goVersion int // minor version number of go command on PATH -} - -// loader holds the working state of a single call to load. -type loader struct { - pkgs map[string]*loaderPackage // keyed by Package.ID - Config - sizes types.Sizes // non-nil if needed by mode - parseCache map[string]*parseValue - parseCacheMu sync.Mutex - exportMu sync.Mutex // enforces mutual exclusion of exportdata operations - - // Config.Mode contains the implied mode (see impliedLoadMode). - // Implied mode contains all the fields we need the data for. - // In requestedMode there are the actually requested fields. - // We'll zero them out before returning packages to the user. - // This makes it easier for us to get the conditions where - // we need certain modes right. - requestedMode LoadMode -} - -type parseValue struct { - f *ast.File - err error - ready chan struct{} -} - -func newLoader(cfg *Config) *loader { - ld := &loader{ - parseCache: map[string]*parseValue{}, - } - if cfg != nil { - ld.Config = *cfg - // If the user has provided a logger, use it. - ld.Config.Logf = cfg.Logf - } - if ld.Config.Logf == nil { - // If the GOPACKAGESDEBUG environment variable is set to true, - // but the user has not provided a logger, default to log.Printf. - if debug { - ld.Config.Logf = log.Printf - } else { - ld.Config.Logf = func(format string, args ...interface{}) {} - } - } - if ld.Config.Mode == 0 { - ld.Config.Mode = NeedName | NeedFiles | NeedCompiledGoFiles // Preserve zero behavior of Mode for backwards compatibility. - } - if ld.Config.Env == nil { - ld.Config.Env = os.Environ() - } - if ld.Context == nil { - ld.Context = context.Background() - } - if ld.Dir == "" { - if dir, err := os.Getwd(); err == nil { - ld.Dir = dir - } - } - - // Save the actually requested fields. We'll zero them out before returning packages to the user. - ld.requestedMode = ld.Mode - ld.Mode = impliedLoadMode(ld.Mode) - - if ld.Mode&(NeedSyntax|NeedTypes|NeedTypesInfo) != 0 { - if ld.Fset == nil { - ld.Fset = token.NewFileSet() - } - - // ParseFile is required even in LoadTypes mode - // because we load source if export data is missing. - if ld.ParseFile == nil { - ld.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) { - // We implicitly promise to keep doing ast.Object resolution. :( - const mode = parser.AllErrors | parser.ParseComments - return parser.ParseFile(fset, filename, src, mode) - } - } - } - - return ld -} - -// refine connects the supplied packages into a graph and then adds type -// and syntax information as requested by the LoadMode. -func (ld *loader) refine(response *DriverResponse) ([]*Package, error) { - roots := response.Roots - rootMap := make(map[string]int, len(roots)) - for i, root := range roots { - rootMap[root] = i - } - ld.pkgs = make(map[string]*loaderPackage) - // first pass, fixup and build the map and roots - var initial = make([]*loaderPackage, len(roots)) - for _, pkg := range response.Packages { - rootIndex := -1 - if i, found := rootMap[pkg.ID]; found { - rootIndex = i - } - - // Overlays can invalidate export data. - // TODO(matloob): make this check fine-grained based on dependencies on overlaid files - exportDataInvalid := len(ld.Overlay) > 0 || pkg.ExportFile == "" && pkg.PkgPath != "unsafe" - // This package needs type information if the caller requested types and the package is - // either a root, or it's a non-root and the user requested dependencies ... - needtypes := (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) - // This package needs source if the call requested source (or types info, which implies source) - // and the package is either a root, or itas a non- root and the user requested dependencies... - needsrc := ((ld.Mode&(NeedSyntax|NeedTypesInfo) != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) || - // ... or if we need types and the exportData is invalid. We fall back to (incompletely) - // typechecking packages from source if they fail to compile. - (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && exportDataInvalid)) && pkg.PkgPath != "unsafe" - lpkg := &loaderPackage{ - Package: pkg, - needtypes: needtypes, - needsrc: needsrc, - goVersion: response.GoVersion, - } - ld.pkgs[lpkg.ID] = lpkg - if rootIndex >= 0 { - initial[rootIndex] = lpkg - lpkg.initial = true - } - } - for i, root := range roots { - if initial[i] == nil { - return nil, fmt.Errorf("root package %v is missing", root) - } - } - - // Materialize the import graph if it is needed (NeedImports), - // or if we'll be using loadPackages (Need{Syntax|Types|TypesInfo}). - var leaves []*loaderPackage // packages with no unfinished successors - if ld.Mode&(NeedImports|NeedSyntax|NeedTypes|NeedTypesInfo) != 0 { - const ( - white = 0 // new - grey = 1 // in progress - black = 2 // complete - ) - - // visit traverses the import graph, depth-first, - // and materializes the graph as Packages.Imports. - // - // Valid imports are saved in the Packages.Import map. - // Invalid imports (cycles and missing nodes) are saved in the importErrors map. - // Thus, even in the presence of both kinds of errors, - // the Import graph remains a DAG. - // - // visit returns whether the package needs src or has a transitive - // dependency on a package that does. These are the only packages - // for which we load source code. - var stack []*loaderPackage - var visit func(from, lpkg *loaderPackage) bool - visit = func(from, lpkg *loaderPackage) bool { - if lpkg.color == grey { - panic("internal error: grey node") - } - if lpkg.color == white { - lpkg.color = grey - stack = append(stack, lpkg) // push - stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports - lpkg.Imports = make(map[string]*Package, len(stubs)) - for importPath, ipkg := range stubs { - var importErr error - imp := ld.pkgs[ipkg.ID] - if imp == nil { - // (includes package "C" when DisableCgo) - importErr = fmt.Errorf("missing package: %q", ipkg.ID) - } else if imp.color == grey { - importErr = fmt.Errorf("import cycle: %s", stack) - } - if importErr != nil { - if lpkg.importErrors == nil { - lpkg.importErrors = make(map[string]error) - } - lpkg.importErrors[importPath] = importErr - continue - } - - if visit(lpkg, imp) { - lpkg.needsrc = true - } - lpkg.Imports[importPath] = imp.Package - } - - // -- postorder -- - - // Complete type information is required for the - // immediate dependencies of each source package. - if lpkg.needsrc && ld.Mode&NeedTypes != 0 { - for _, ipkg := range lpkg.Imports { - ld.pkgs[ipkg.ID].needtypes = true - } - } - - // NeedTypeSizes causes TypeSizes to be set even - // on packages for which types aren't needed. - if ld.Mode&NeedTypesSizes != 0 { - lpkg.TypesSizes = ld.sizes - } - - // Add packages with no imports directly to the queue of leaves. - if len(lpkg.Imports) == 0 { - leaves = append(leaves, lpkg) - } - - stack = stack[:len(stack)-1] // pop - lpkg.color = black - } - - // Add edge from predecessor. - if from != nil { - from.unfinishedSuccs.Add(+1) // incref - lpkg.preds = append(lpkg.preds, from) - } - - return lpkg.needsrc - } - - // For each initial package, create its import DAG. - for _, lpkg := range initial { - visit(nil, lpkg) - } - - } else { - // !NeedImports: drop the stub (ID-only) import packages - // that we are not even going to try to resolve. - for _, lpkg := range initial { - lpkg.Imports = nil - } - } - - // Load type data and syntax if needed, starting at - // the initial packages (roots of the import DAG). - if ld.Mode&(NeedSyntax|NeedTypes|NeedTypesInfo) != 0 { - - // We avoid using g.SetLimit to limit concurrency as - // it makes g.Go stop accepting work, which prevents - // workers from enqeuing, and thus finishing, and thus - // allowing the group to make progress: deadlock. - // - // Instead we use the ioLimit and cpuLimit semaphores. - g, _ := errgroup.WithContext(ld.Context) - - // enqueues adds a package to the type-checking queue. - // It must have no unfinished successors. - var enqueue func(*loaderPackage) - enqueue = func(lpkg *loaderPackage) { - g.Go(func() error { - // Parse and type-check. - ld.loadPackage(lpkg) - - // Notify each waiting predecessor, - // and enqueue it when it becomes a leaf. - for _, pred := range lpkg.preds { - if pred.unfinishedSuccs.Add(-1) == 0 { // decref - enqueue(pred) - } - } - - return nil - }) - } - - // Load leaves first, adding new packages - // to the queue as they become leaves. - for _, leaf := range leaves { - enqueue(leaf) - } - - if err := g.Wait(); err != nil { - return nil, err // cancelled - } - } - - // If the context is done, return its error and - // throw out [likely] incomplete packages. - if err := ld.Context.Err(); err != nil { - return nil, err - } - - result := make([]*Package, len(initial)) - for i, lpkg := range initial { - result[i] = lpkg.Package - } - for i := range ld.pkgs { - // Clear all unrequested fields, - // to catch programs that use more than they request. - if ld.requestedMode&NeedName == 0 { - ld.pkgs[i].Name = "" - ld.pkgs[i].PkgPath = "" - } - if ld.requestedMode&NeedFiles == 0 { - ld.pkgs[i].GoFiles = nil - ld.pkgs[i].OtherFiles = nil - ld.pkgs[i].IgnoredFiles = nil - } - if ld.requestedMode&NeedEmbedFiles == 0 { - ld.pkgs[i].EmbedFiles = nil - } - if ld.requestedMode&NeedEmbedPatterns == 0 { - ld.pkgs[i].EmbedPatterns = nil - } - if ld.requestedMode&NeedCompiledGoFiles == 0 { - ld.pkgs[i].CompiledGoFiles = nil - } - if ld.requestedMode&NeedImports == 0 { - ld.pkgs[i].Imports = nil - } - if ld.requestedMode&NeedExportFile == 0 { - ld.pkgs[i].ExportFile = "" - } - if ld.requestedMode&NeedTypes == 0 { - ld.pkgs[i].Types = nil - ld.pkgs[i].IllTyped = false - } - if ld.requestedMode&NeedSyntax == 0 { - ld.pkgs[i].Syntax = nil - } - if ld.requestedMode&(NeedSyntax|NeedTypes|NeedTypesInfo) == 0 { - ld.pkgs[i].Fset = nil - } - if ld.requestedMode&NeedTypesInfo == 0 { - ld.pkgs[i].TypesInfo = nil - } - if ld.requestedMode&NeedTypesSizes == 0 { - ld.pkgs[i].TypesSizes = nil - } - if ld.requestedMode&NeedModule == 0 { - ld.pkgs[i].Module = nil - } - } - - return result, nil -} - -// loadPackage loads/parses/typechecks the specified package. -// It must be called only once per Package, -// after immediate dependencies are loaded. -// Precondition: ld.Mode&(NeedSyntax|NeedTypes|NeedTypesInfo) != 0. -func (ld *loader) loadPackage(lpkg *loaderPackage) { - if lpkg.PkgPath == "unsafe" { - // Fill in the blanks to avoid surprises. - lpkg.Types = types.Unsafe - lpkg.Fset = ld.Fset - lpkg.Syntax = []*ast.File{} - lpkg.TypesInfo = new(types.Info) - lpkg.TypesSizes = ld.sizes - return - } - - // Call NewPackage directly with explicit name. - // This avoids skew between golist and go/types when the files' - // package declarations are inconsistent. - lpkg.Types = types.NewPackage(lpkg.PkgPath, lpkg.Name) - lpkg.Fset = ld.Fset - - // Start shutting down if the context is done and do not load - // source or export data files. - // Packages that import this one will have ld.Context.Err() != nil. - // ld.Context.Err() will be returned later by refine. - if ld.Context.Err() != nil { - return - } - - // Subtle: we populate all Types fields with an empty Package - // before loading export data so that export data processing - // never has to create a types.Package for an indirect dependency, - // which would then require that such created packages be explicitly - // inserted back into the Import graph as a final step after export data loading. - // (Hence this return is after the Types assignment.) - // The Diamond test exercises this case. - if !lpkg.needtypes && !lpkg.needsrc { - return - } - - // TODO(adonovan): this condition looks wrong: - // I think it should be lpkg.needtypes && !lpg.needsrc, - // so that NeedSyntax without NeedTypes can be satisfied by export data. - if !lpkg.needsrc { - if err := ld.loadFromExportData(lpkg); err != nil { - lpkg.Errors = append(lpkg.Errors, Error{ - Pos: "-", - Msg: err.Error(), - Kind: UnknownError, // e.g. can't find/open/parse export data - }) - } - return // not a source package, don't get syntax trees - } - - appendError := func(err error) { - // Convert various error types into the one true Error. - var errs []Error - switch err := err.(type) { - case Error: - // from driver - errs = append(errs, err) - - case *os.PathError: - // from parser - errs = append(errs, Error{ - Pos: err.Path + ":1", - Msg: err.Err.Error(), - Kind: ParseError, - }) - - case scanner.ErrorList: - // from parser - for _, err := range err { - errs = append(errs, Error{ - Pos: err.Pos.String(), - Msg: err.Msg, - Kind: ParseError, - }) - } - - case types.Error: - // from type checker - lpkg.TypeErrors = append(lpkg.TypeErrors, err) - errs = append(errs, Error{ - Pos: err.Fset.Position(err.Pos).String(), - Msg: err.Msg, - Kind: TypeError, - }) - - default: - // unexpected impoverished error from parser? - errs = append(errs, Error{ - Pos: "-", - Msg: err.Error(), - Kind: UnknownError, - }) - - // If you see this error message, please file a bug. - log.Printf("internal error: error %q (%T) without position", err, err) - } - - lpkg.Errors = append(lpkg.Errors, errs...) - } - - // If the go command on the PATH is newer than the runtime, - // then the go/{scanner,ast,parser,types} packages from the - // standard library may be unable to process the files - // selected by go list. - // - // There is currently no way to downgrade the effective - // version of the go command (see issue 52078), so we proceed - // with the newer go command but, in case of parse or type - // errors, we emit an additional diagnostic. - // - // See: - // - golang.org/issue/52078 (flag to set release tags) - // - golang.org/issue/50825 (gopls legacy version support) - // - golang.org/issue/55883 (go/packages confusing error) - // - // Should we assert a hard minimum of (currently) go1.16 here? - var runtimeVersion int - if _, err := fmt.Sscanf(runtime.Version(), "go1.%d", &runtimeVersion); err == nil && runtimeVersion < lpkg.goVersion { - defer func() { - if len(lpkg.Errors) > 0 { - appendError(Error{ - Pos: "-", - Msg: fmt.Sprintf("This application uses version go1.%d of the source-processing packages but runs version go1.%d of 'go list'. It may fail to process source files that rely on newer language features. If so, rebuild the application using a newer version of Go.", runtimeVersion, lpkg.goVersion), - Kind: UnknownError, - }) - } - }() - } - - if ld.Config.Mode&NeedTypes != 0 && len(lpkg.CompiledGoFiles) == 0 && lpkg.ExportFile != "" { - // The config requested loading sources and types, but sources are missing. - // Add an error to the package and fall back to loading from export data. - appendError(Error{"-", fmt.Sprintf("sources missing for package %s", lpkg.ID), ParseError}) - _ = ld.loadFromExportData(lpkg) // ignore any secondary errors - - return // can't get syntax trees for this package - } - - files, errs := ld.parseFiles(lpkg.CompiledGoFiles) - for _, err := range errs { - appendError(err) - } - - lpkg.Syntax = files - if ld.Config.Mode&(NeedTypes|NeedTypesInfo) == 0 { - return - } - - // Start shutting down if the context is done and do not type check. - // Packages that import this one will have ld.Context.Err() != nil. - // ld.Context.Err() will be returned later by refine. - if ld.Context.Err() != nil { - return - } - - // Populate TypesInfo only if needed, as it - // causes the type checker to work much harder. - if ld.Config.Mode&NeedTypesInfo != 0 { - lpkg.TypesInfo = &types.Info{ - Types: make(map[ast.Expr]types.TypeAndValue), - Defs: make(map[*ast.Ident]types.Object), - Uses: make(map[*ast.Ident]types.Object), - Implicits: make(map[ast.Node]types.Object), - Instances: make(map[*ast.Ident]types.Instance), - Scopes: make(map[ast.Node]*types.Scope), - Selections: make(map[*ast.SelectorExpr]*types.Selection), - FileVersions: make(map[*ast.File]string), - } - } - lpkg.TypesSizes = ld.sizes - - importer := importerFunc(func(path string) (*types.Package, error) { - if path == "unsafe" { - return types.Unsafe, nil - } - - // The imports map is keyed by import path. - ipkg := lpkg.Imports[path] - if ipkg == nil { - if err := lpkg.importErrors[path]; err != nil { - return nil, err - } - // There was skew between the metadata and the - // import declarations, likely due to an edit - // race, or because the ParseFile feature was - // used to supply alternative file contents. - return nil, fmt.Errorf("no metadata for %s", path) - } - - if ipkg.Types != nil && ipkg.Types.Complete() { - return ipkg.Types, nil - } - log.Fatalf("internal error: package %q without types was imported from %q", path, lpkg) - panic("unreachable") - }) - - // type-check - tc := &types.Config{ - Importer: importer, - - // Type-check bodies of functions only in initial packages. - // Example: for import graph A->B->C and initial packages {A,C}, - // we can ignore function bodies in B. - IgnoreFuncBodies: ld.Mode&NeedDeps == 0 && !lpkg.initial, - - Error: appendError, - Sizes: ld.sizes, // may be nil - } - if lpkg.Module != nil && lpkg.Module.GoVersion != "" { - tc.GoVersion = "go" + lpkg.Module.GoVersion - } - if (ld.Mode & typecheckCgo) != 0 { - if !typesinternal.SetUsesCgo(tc) { - appendError(Error{ - Msg: "typecheckCgo requires Go 1.15+", - Kind: ListError, - }) - return - } - } - - // Type-checking is CPU intensive. - cpuLimit <- unit{} // acquire a token - defer func() { <-cpuLimit }() // release a token - - typErr := types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax) - lpkg.importErrors = nil // no longer needed - - // In go/types go1.21 and go1.22, Checker.Files failed fast with a - // a "too new" error, without calling tc.Error and without - // proceeding to type-check the package (#66525). - // We rely on the runtimeVersion error to give the suggested remedy. - if typErr != nil && len(lpkg.Errors) == 0 && len(lpkg.Syntax) > 0 { - if msg := typErr.Error(); strings.HasPrefix(msg, "package requires newer Go version") { - appendError(types.Error{ - Fset: ld.Fset, - Pos: lpkg.Syntax[0].Package, - Msg: msg, - }) - } - } - - // If !Cgo, the type-checker uses FakeImportC mode, so - // it doesn't invoke the importer for import "C", - // nor report an error for the import, - // or for any undefined C.f reference. - // We must detect this explicitly and correctly - // mark the package as IllTyped (by reporting an error). - // TODO(adonovan): if these errors are annoying, - // we could just set IllTyped quietly. - if tc.FakeImportC { - outer: - for _, f := range lpkg.Syntax { - for _, imp := range f.Imports { - if imp.Path.Value == `"C"` { - err := types.Error{Fset: ld.Fset, Pos: imp.Pos(), Msg: `import "C" ignored`} - appendError(err) - break outer - } - } - } - } - - // If types.Checker.Files had an error that was unreported, - // make sure to report the unknown error so the package is illTyped. - if typErr != nil && len(lpkg.Errors) == 0 { - appendError(typErr) - } - - // Record accumulated errors. - illTyped := len(lpkg.Errors) > 0 - if !illTyped { - for _, imp := range lpkg.Imports { - if imp.IllTyped { - illTyped = true - break - } - } - } - lpkg.IllTyped = illTyped -} - -// An importFunc is an implementation of the single-method -// types.Importer interface based on a function value. -type importerFunc func(path string) (*types.Package, error) - -func (f importerFunc) Import(path string) (*types.Package, error) { return f(path) } - -// We use a counting semaphore to limit -// the number of parallel I/O calls or CPU threads per process. -var ( - ioLimit = make(chan unit, 20) - cpuLimit = make(chan unit, runtime.GOMAXPROCS(0)) -) - -func (ld *loader) parseFile(filename string) (*ast.File, error) { - ld.parseCacheMu.Lock() - v, ok := ld.parseCache[filename] - if ok { - // cache hit - ld.parseCacheMu.Unlock() - <-v.ready - } else { - // cache miss - v = &parseValue{ready: make(chan struct{})} - ld.parseCache[filename] = v - ld.parseCacheMu.Unlock() - - var src []byte - for f, contents := range ld.Config.Overlay { - // TODO(adonovan): Inefficient for large overlays. - // Do an exact name-based map lookup - // (for nonexistent files) followed by a - // FileID-based map lookup (for existing ones). - if sameFile(f, filename) { - src = contents - break - } - } - var err error - if src == nil { - ioLimit <- unit{} // acquire a token - src, err = os.ReadFile(filename) - <-ioLimit // release a token - } - if err != nil { - v.err = err - } else { - // Parsing is CPU intensive. - cpuLimit <- unit{} // acquire a token - v.f, v.err = ld.ParseFile(ld.Fset, filename, src) - <-cpuLimit // release a token - } - - close(v.ready) - } - return v.f, v.err -} - -// parseFiles reads and parses the Go source files and returns the ASTs -// of the ones that could be at least partially parsed, along with a -// list of I/O and parse errors encountered. -// -// Because files are scanned in parallel, the token.Pos -// positions of the resulting ast.Files are not ordered. -func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) { - var ( - n = len(filenames) - parsed = make([]*ast.File, n) - errors = make([]error, n) - ) - var g errgroup.Group - for i, filename := range filenames { - // This creates goroutines unnecessarily in the - // cache-hit case, but that case is uncommon. - g.Go(func() error { - parsed[i], errors[i] = ld.parseFile(filename) - return nil - }) - } - g.Wait() - - // Eliminate nils, preserving order. - var o int - for _, f := range parsed { - if f != nil { - parsed[o] = f - o++ - } - } - parsed = parsed[:o] - - o = 0 - for _, err := range errors { - if err != nil { - errors[o] = err - o++ - } - } - errors = errors[:o] - - return parsed, errors -} - -// sameFile returns true if x and y have the same basename and denote -// the same file. -func sameFile(x, y string) bool { - if x == y { - // It could be the case that y doesn't exist. - // For instance, it may be an overlay file that - // hasn't been written to disk. To handle that case - // let x == y through. (We added the exact absolute path - // string to the CompiledGoFiles list, so the unwritten - // overlay case implies x==y.) - return true - } - if strings.EqualFold(filepath.Base(x), filepath.Base(y)) { // (optimisation) - if xi, err := os.Stat(x); err == nil { - if yi, err := os.Stat(y); err == nil { - return os.SameFile(xi, yi) - } - } - } - return false -} - -// loadFromExportData ensures that type information is present for the specified -// package, loading it from an export data file on the first request. -// On success it sets lpkg.Types to a new Package. -func (ld *loader) loadFromExportData(lpkg *loaderPackage) error { - if lpkg.PkgPath == "" { - log.Fatalf("internal error: Package %s has no PkgPath", lpkg) - } - - // Because gcexportdata.Read has the potential to create or - // modify the types.Package for each node in the transitive - // closure of dependencies of lpkg, all exportdata operations - // must be sequential. (Finer-grained locking would require - // changes to the gcexportdata API.) - // - // The exportMu lock guards the lpkg.Types field and the - // types.Package it points to, for each loaderPackage in the graph. - // - // Not all accesses to Package.Pkg need to be protected by exportMu: - // graph ordering ensures that direct dependencies of source - // packages are fully loaded before the importer reads their Pkg field. - ld.exportMu.Lock() - defer ld.exportMu.Unlock() - - if tpkg := lpkg.Types; tpkg != nil && tpkg.Complete() { - return nil // cache hit - } - - lpkg.IllTyped = true // fail safe - - if lpkg.ExportFile == "" { - // Errors while building export data will have been printed to stderr. - return fmt.Errorf("no export data file") - } - f, err := os.Open(lpkg.ExportFile) - if err != nil { - return err - } - defer f.Close() - - // Read gc export data. - // - // We don't currently support gccgo export data because all - // underlying workspaces use the gc toolchain. (Even build - // systems that support gccgo don't use it for workspace - // queries.) - r, err := gcexportdata.NewReader(f) - if err != nil { - return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) - } - - // Build the view. - // - // The gcexportdata machinery has no concept of package ID. - // It identifies packages by their PkgPath, which although not - // globally unique is unique within the scope of one invocation - // of the linker, type-checker, or gcexportdata. - // - // So, we must build a PkgPath-keyed view of the global - // (conceptually ID-keyed) cache of packages and pass it to - // gcexportdata. The view must contain every existing - // package that might possibly be mentioned by the - // current package---its transitive closure. - // - // In loadPackage, we unconditionally create a types.Package for - // each dependency so that export data loading does not - // create new ones. - // - // TODO(adonovan): it would be simpler and more efficient - // if the export data machinery invoked a callback to - // get-or-create a package instead of a map. - // - view := make(map[string]*types.Package) // view seen by gcexportdata - seen := make(map[*loaderPackage]bool) // all visited packages - var visit func(pkgs map[string]*Package) - visit = func(pkgs map[string]*Package) { - for _, p := range pkgs { - lpkg := ld.pkgs[p.ID] - if !seen[lpkg] { - seen[lpkg] = true - view[lpkg.PkgPath] = lpkg.Types - visit(lpkg.Imports) - } - } - } - visit(lpkg.Imports) - - viewLen := len(view) + 1 // adding the self package - // Parse the export data. - // (May modify incomplete packages in view but not create new ones.) - tpkg, err := gcexportdata.Read(r, ld.Fset, view, lpkg.PkgPath) - if err != nil { - return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) - } - if _, ok := view["go.shape"]; ok { - // Account for the pseudopackage "go.shape" that gets - // created by generic code. - viewLen++ - } - if viewLen != len(view) { - log.Panicf("golang.org/x/tools/go/packages: unexpected new packages during load of %s", lpkg.PkgPath) - } - - lpkg.Types = tpkg - lpkg.IllTyped = false - return nil -} - -// impliedLoadMode returns loadMode with its dependencies. -func impliedLoadMode(loadMode LoadMode) LoadMode { - if loadMode&(NeedDeps|NeedTypes|NeedTypesInfo) != 0 { - // All these things require knowing the import graph. - loadMode |= NeedImports - } - if loadMode&NeedTypes != 0 { - // Types require the GoVersion from Module. - loadMode |= NeedModule - } - - return loadMode -} - -func usesExportData(cfg *Config) bool { - return cfg.Mode&NeedExportFile != 0 || cfg.Mode&NeedTypes != 0 && cfg.Mode&NeedDeps == 0 -} - -type unit struct{} diff --git a/vendor/golang.org/x/tools/go/packages/visit.go b/vendor/golang.org/x/tools/go/packages/visit.go deleted file mode 100644 index df14ffd9..00000000 --- a/vendor/golang.org/x/tools/go/packages/visit.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -import ( - "fmt" - "os" - "sort" -) - -// Visit visits all the packages in the import graph whose roots are -// pkgs, calling the optional pre function the first time each package -// is encountered (preorder), and the optional post function after a -// package's dependencies have been visited (postorder). -// The boolean result of pre(pkg) determines whether -// the imports of package pkg are visited. -func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { - seen := make(map[*Package]bool) - var visit func(*Package) - visit = func(pkg *Package) { - if !seen[pkg] { - seen[pkg] = true - - if pre == nil || pre(pkg) { - paths := make([]string, 0, len(pkg.Imports)) - for path := range pkg.Imports { - paths = append(paths, path) - } - sort.Strings(paths) // Imports is a map, this makes visit stable - for _, path := range paths { - visit(pkg.Imports[path]) - } - } - - if post != nil { - post(pkg) - } - } - } - for _, pkg := range pkgs { - visit(pkg) - } -} - -// PrintErrors prints to os.Stderr the accumulated errors of all -// packages in the import graph rooted at pkgs, dependencies first. -// PrintErrors returns the number of errors printed. -func PrintErrors(pkgs []*Package) int { - var n int - errModules := make(map[*Module]bool) - Visit(pkgs, nil, func(pkg *Package) { - for _, err := range pkg.Errors { - fmt.Fprintln(os.Stderr, err) - n++ - } - - // Print pkg.Module.Error once if present. - mod := pkg.Module - if mod != nil && mod.Error != nil && !errModules[mod] { - errModules[mod] = true - fmt.Fprintln(os.Stderr, mod.Error.Err) - n++ - } - }) - return n -} diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go deleted file mode 100644 index 16ed3c17..00000000 --- a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go +++ /dev/null @@ -1,817 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package objectpath defines a naming scheme for types.Objects -// (that is, named entities in Go programs) relative to their enclosing -// package. -// -// Type-checker objects are canonical, so they are usually identified by -// their address in memory (a pointer), but a pointer has meaning only -// within one address space. By contrast, objectpath names allow the -// identity of an object to be sent from one program to another, -// establishing a correspondence between types.Object variables that are -// distinct but logically equivalent. -// -// A single object may have multiple paths. In this example, -// -// type A struct{ X int } -// type B A -// -// the field X has two paths due to its membership of both A and B. -// The For(obj) function always returns one of these paths, arbitrarily -// but consistently. -package objectpath - -import ( - "fmt" - "go/types" - "strconv" - "strings" - - "golang.org/x/tools/internal/aliases" - "golang.org/x/tools/internal/typesinternal" -) - -// TODO(adonovan): think about generic aliases. - -// A Path is an opaque name that identifies a types.Object -// relative to its package. Conceptually, the name consists of a -// sequence of destructuring operations applied to the package scope -// to obtain the original object. -// The name does not include the package itself. -type Path string - -// Encoding -// -// An object path is a textual and (with training) human-readable encoding -// of a sequence of destructuring operators, starting from a types.Package. -// The sequences represent a path through the package/object/type graph. -// We classify these operators by their type: -// -// PO package->object Package.Scope.Lookup -// OT object->type Object.Type -// TT type->type Type.{Elem,Key,{,{,Recv}Type}Params,Results,Underlying,Rhs} [EKPRUTrCa] -// TO type->object Type.{At,Field,Method,Obj} [AFMO] -// -// All valid paths start with a package and end at an object -// and thus may be defined by the regular language: -// -// objectpath = PO (OT TT* TO)* -// -// The concrete encoding follows directly: -// - The only PO operator is Package.Scope.Lookup, which requires an identifier. -// - The only OT operator is Object.Type, -// which we encode as '.' because dot cannot appear in an identifier. -// - The TT operators are encoded as [EKPRUTrCa]; -// two of these ({,Recv}TypeParams) require an integer operand, -// which is encoded as a string of decimal digits. -// - The TO operators are encoded as [AFMO]; -// three of these (At,Field,Method) require an integer operand, -// which is encoded as a string of decimal digits. -// These indices are stable across different representations -// of the same package, even source and export data. -// The indices used are implementation specific and may not correspond to -// the argument to the go/types function. -// -// In the example below, -// -// package p -// -// type T interface { -// f() (a string, b struct{ X int }) -// } -// -// field X has the path "T.UM0.RA1.F0", -// representing the following sequence of operations: -// -// p.Lookup("T") T -// .Type().Underlying().Method(0). f -// .Type().Results().At(1) b -// .Type().Field(0) X -// -// The encoding is not maximally compact---every R or P is -// followed by an A, for example---but this simplifies the -// encoder and decoder. -const ( - // object->type operators - opType = '.' // .Type() (Object) - - // type->type operators - opElem = 'E' // .Elem() (Pointer, Slice, Array, Chan, Map) - opKey = 'K' // .Key() (Map) - opParams = 'P' // .Params() (Signature) - opResults = 'R' // .Results() (Signature) - opUnderlying = 'U' // .Underlying() (Named) - opTypeParam = 'T' // .TypeParams.At(i) (Named, Signature) - opRecvTypeParam = 'r' // .RecvTypeParams.At(i) (Signature) - opConstraint = 'C' // .Constraint() (TypeParam) - opRhs = 'a' // .Rhs() (Alias) - - // type->object operators - opAt = 'A' // .At(i) (Tuple) - opField = 'F' // .Field(i) (Struct) - opMethod = 'M' // .Method(i) (Named or Interface; not Struct: "promoted" names are ignored) - opObj = 'O' // .Obj() (Named, TypeParam) -) - -// For is equivalent to new(Encoder).For(obj). -// -// It may be more efficient to reuse a single Encoder across several calls. -func For(obj types.Object) (Path, error) { - return new(Encoder).For(obj) -} - -// An Encoder amortizes the cost of encoding the paths of multiple objects. -// The zero value of an Encoder is ready to use. -type Encoder struct { - scopeMemo map[*types.Scope][]types.Object // memoization of scopeObjects -} - -// For returns the path to an object relative to its package, -// or an error if the object is not accessible from the package's Scope. -// -// The For function guarantees to return a path only for the following objects: -// - package-level types -// - exported package-level non-types -// - methods -// - parameter and result variables -// - struct fields -// These objects are sufficient to define the API of their package. -// The objects described by a package's export data are drawn from this set. -// -// The set of objects accessible from a package's Scope depends on -// whether the package was produced by type-checking syntax, or -// reading export data; the latter may have a smaller Scope since -// export data trims objects that are not reachable from an exported -// declaration. For example, the For function will return a path for -// an exported method of an unexported type that is not reachable -// from any public declaration; this path will cause the Object -// function to fail if called on a package loaded from export data. -// TODO(adonovan): is this a bug or feature? Should this package -// compute accessibility in the same way? -// -// For does not return a path for predeclared names, imported package -// names, local names, and unexported package-level names (except -// types). -// -// Example: given this definition, -// -// package p -// -// type T interface { -// f() (a string, b struct{ X int }) -// } -// -// For(X) would return a path that denotes the following sequence of operations: -// -// p.Scope().Lookup("T") (TypeName T) -// .Type().Underlying().Method(0). (method Func f) -// .Type().Results().At(1) (field Var b) -// .Type().Field(0) (field Var X) -// -// where p is the package (*types.Package) to which X belongs. -func (enc *Encoder) For(obj types.Object) (Path, error) { - pkg := obj.Pkg() - - // This table lists the cases of interest. - // - // Object Action - // ------ ------ - // nil reject - // builtin reject - // pkgname reject - // label reject - // var - // package-level accept - // func param/result accept - // local reject - // struct field accept - // const - // package-level accept - // local reject - // func - // package-level accept - // init functions reject - // concrete method accept - // interface method accept - // type - // package-level accept - // local reject - // - // The only accessible package-level objects are members of pkg itself. - // - // The cases are handled in four steps: - // - // 1. reject nil and builtin - // 2. accept package-level objects - // 3. reject obviously invalid objects - // 4. search the API for the path to the param/result/field/method. - - // 1. reference to nil or builtin? - if pkg == nil { - return "", fmt.Errorf("predeclared %s has no path", obj) - } - scope := pkg.Scope() - - // 2. package-level object? - if scope.Lookup(obj.Name()) == obj { - // Only exported objects (and non-exported types) have a path. - // Non-exported types may be referenced by other objects. - if _, ok := obj.(*types.TypeName); !ok && !obj.Exported() { - return "", fmt.Errorf("no path for non-exported %v", obj) - } - return Path(obj.Name()), nil - } - - // 3. Not a package-level object. - // Reject obviously non-viable cases. - switch obj := obj.(type) { - case *types.TypeName: - if _, ok := types.Unalias(obj.Type()).(*types.TypeParam); !ok { - // With the exception of type parameters, only package-level type names - // have a path. - return "", fmt.Errorf("no path for %v", obj) - } - case *types.Const, // Only package-level constants have a path. - *types.Label, // Labels are function-local. - *types.PkgName: // PkgNames are file-local. - return "", fmt.Errorf("no path for %v", obj) - - case *types.Var: - // Could be: - // - a field (obj.IsField()) - // - a func parameter or result - // - a local var. - // Sadly there is no way to distinguish - // a param/result from a local - // so we must proceed to the find. - - case *types.Func: - // A func, if not package-level, must be a method. - if recv := obj.Type().(*types.Signature).Recv(); recv == nil { - return "", fmt.Errorf("func is not a method: %v", obj) - } - - if path, ok := enc.concreteMethod(obj); ok { - // Fast path for concrete methods that avoids looping over scope. - return path, nil - } - - default: - panic(obj) - } - - // 4. Search the API for the path to the var (field/param/result) or method. - - // First inspect package-level named types. - // In the presence of path aliases, these give - // the best paths because non-types may - // refer to types, but not the reverse. - empty := make([]byte, 0, 48) // initial space - objs := enc.scopeObjects(scope) - for _, o := range objs { - tname, ok := o.(*types.TypeName) - if !ok { - continue // handle non-types in second pass - } - - path := append(empty, o.Name()...) - path = append(path, opType) - - T := o.Type() - if alias, ok := T.(*types.Alias); ok { - if r := findTypeParam(obj, aliases.TypeParams(alias), path, opTypeParam); r != nil { - return Path(r), nil - } - if r := find(obj, aliases.Rhs(alias), append(path, opRhs)); r != nil { - return Path(r), nil - } - - } else if tname.IsAlias() { - // legacy alias - if r := find(obj, T, path); r != nil { - return Path(r), nil - } - - } else if named, ok := T.(*types.Named); ok { - // defined (named) type - if r := findTypeParam(obj, named.TypeParams(), path, opTypeParam); r != nil { - return Path(r), nil - } - if r := find(obj, named.Underlying(), append(path, opUnderlying)); r != nil { - return Path(r), nil - } - } - } - - // Then inspect everything else: - // non-types, and declared methods of defined types. - for _, o := range objs { - path := append(empty, o.Name()...) - if _, ok := o.(*types.TypeName); !ok { - if o.Exported() { - // exported non-type (const, var, func) - if r := find(obj, o.Type(), append(path, opType)); r != nil { - return Path(r), nil - } - } - continue - } - - // Inspect declared methods of defined types. - if T, ok := types.Unalias(o.Type()).(*types.Named); ok { - path = append(path, opType) - // The method index here is always with respect - // to the underlying go/types data structures, - // which ultimately derives from source order - // and must be preserved by export data. - for i := 0; i < T.NumMethods(); i++ { - m := T.Method(i) - path2 := appendOpArg(path, opMethod, i) - if m == obj { - return Path(path2), nil // found declared method - } - if r := find(obj, m.Type(), append(path2, opType)); r != nil { - return Path(r), nil - } - } - } - } - - return "", fmt.Errorf("can't find path for %v in %s", obj, pkg.Path()) -} - -func appendOpArg(path []byte, op byte, arg int) []byte { - path = append(path, op) - path = strconv.AppendInt(path, int64(arg), 10) - return path -} - -// concreteMethod returns the path for meth, which must have a non-nil receiver. -// The second return value indicates success and may be false if the method is -// an interface method or if it is an instantiated method. -// -// This function is just an optimization that avoids the general scope walking -// approach. You are expected to fall back to the general approach if this -// function fails. -func (enc *Encoder) concreteMethod(meth *types.Func) (Path, bool) { - // Concrete methods can only be declared on package-scoped named types. For - // that reason we can skip the expensive walk over the package scope: the - // path will always be package -> named type -> method. We can trivially get - // the type name from the receiver, and only have to look over the type's - // methods to find the method index. - // - // Methods on generic types require special consideration, however. Consider - // the following package: - // - // L1: type S[T any] struct{} - // L2: func (recv S[A]) Foo() { recv.Bar() } - // L3: func (recv S[B]) Bar() { } - // L4: type Alias = S[int] - // L5: func _[T any]() { var s S[int]; s.Foo() } - // - // The receivers of methods on generic types are instantiations. L2 and L3 - // instantiate S with the type-parameters A and B, which are scoped to the - // respective methods. L4 and L5 each instantiate S with int. Each of these - // instantiations has its own method set, full of methods (and thus objects) - // with receivers whose types are the respective instantiations. In other - // words, we have - // - // S[A].Foo, S[A].Bar - // S[B].Foo, S[B].Bar - // S[int].Foo, S[int].Bar - // - // We may thus be trying to produce object paths for any of these objects. - // - // S[A].Foo and S[B].Bar are the origin methods, and their paths are S.Foo - // and S.Bar, which are the paths that this function naturally produces. - // - // S[A].Bar, S[B].Foo, and both methods on S[int] are instantiations that - // don't correspond to the origin methods. For S[int], this is significant. - // The most precise object path for S[int].Foo, for example, is Alias.Foo, - // not S.Foo. Our function, however, would produce S.Foo, which would - // resolve to a different object. - // - // For S[A].Bar and S[B].Foo it could be argued that S.Bar and S.Foo are - // still the correct paths, since only the origin methods have meaningful - // paths. But this is likely only true for trivial cases and has edge cases. - // Since this function is only an optimization, we err on the side of giving - // up, deferring to the slower but definitely correct algorithm. Most users - // of objectpath will only be giving us origin methods, anyway, as referring - // to instantiated methods is usually not useful. - - if meth.Origin() != meth { - return "", false - } - - _, named := typesinternal.ReceiverNamed(meth.Type().(*types.Signature).Recv()) - if named == nil { - return "", false - } - - if types.IsInterface(named) { - // Named interfaces don't have to be package-scoped - // - // TODO(dominikh): opt: if scope.Lookup(name) == named, then we can apply this optimization to interface - // methods, too, I think. - return "", false - } - - // Preallocate space for the name, opType, opMethod, and some digits. - name := named.Obj().Name() - path := make([]byte, 0, len(name)+8) - path = append(path, name...) - path = append(path, opType) - - // Method indices are w.r.t. the go/types data structures, - // ultimately deriving from source order, - // which is preserved by export data. - for i := 0; i < named.NumMethods(); i++ { - if named.Method(i) == meth { - path = appendOpArg(path, opMethod, i) - return Path(path), true - } - } - - // Due to golang/go#59944, go/types fails to associate the receiver with - // certain methods on cgo types. - // - // TODO(rfindley): replace this panic once golang/go#59944 is fixed in all Go - // versions gopls supports. - return "", false - // panic(fmt.Sprintf("couldn't find method %s on type %s; methods: %#v", meth, named, enc.namedMethods(named))) -} - -// find finds obj within type T, returning the path to it, or nil if not found. -// -// The seen map is used to short circuit cycles through type parameters. If -// nil, it will be allocated as necessary. -// -// The seenMethods map is used internally to short circuit cycles through -// interface methods, such as occur in the following example: -// -// type I interface { f() interface{I} } -// -// See golang/go#68046 for details. -func find(obj types.Object, T types.Type, path []byte) []byte { - return (&finder{obj: obj}).find(T, path) -} - -// finder closes over search state for a call to find. -type finder struct { - obj types.Object // the sought object - seenTParamNames map[*types.TypeName]bool // for cycle breaking through type parameters - seenMethods map[*types.Func]bool // for cycle breaking through recursive interfaces -} - -func (f *finder) find(T types.Type, path []byte) []byte { - switch T := T.(type) { - case *types.Alias: - return f.find(types.Unalias(T), path) - case *types.Basic, *types.Named: - // Named types belonging to pkg were handled already, - // so T must belong to another package. No path. - return nil - case *types.Pointer: - return f.find(T.Elem(), append(path, opElem)) - case *types.Slice: - return f.find(T.Elem(), append(path, opElem)) - case *types.Array: - return f.find(T.Elem(), append(path, opElem)) - case *types.Chan: - return f.find(T.Elem(), append(path, opElem)) - case *types.Map: - if r := f.find(T.Key(), append(path, opKey)); r != nil { - return r - } - return f.find(T.Elem(), append(path, opElem)) - case *types.Signature: - if r := f.findTypeParam(T.RecvTypeParams(), path, opRecvTypeParam); r != nil { - return r - } - if r := f.findTypeParam(T.TypeParams(), path, opTypeParam); r != nil { - return r - } - if r := f.find(T.Params(), append(path, opParams)); r != nil { - return r - } - return f.find(T.Results(), append(path, opResults)) - case *types.Struct: - for i := 0; i < T.NumFields(); i++ { - fld := T.Field(i) - path2 := appendOpArg(path, opField, i) - if fld == f.obj { - return path2 // found field var - } - if r := f.find(fld.Type(), append(path2, opType)); r != nil { - return r - } - } - return nil - case *types.Tuple: - for i := 0; i < T.Len(); i++ { - v := T.At(i) - path2 := appendOpArg(path, opAt, i) - if v == f.obj { - return path2 // found param/result var - } - if r := f.find(v.Type(), append(path2, opType)); r != nil { - return r - } - } - return nil - case *types.Interface: - for i := 0; i < T.NumMethods(); i++ { - m := T.Method(i) - if f.seenMethods[m] { - return nil - } - path2 := appendOpArg(path, opMethod, i) - if m == f.obj { - return path2 // found interface method - } - if f.seenMethods == nil { - f.seenMethods = make(map[*types.Func]bool) - } - f.seenMethods[m] = true - if r := f.find(m.Type(), append(path2, opType)); r != nil { - return r - } - } - return nil - case *types.TypeParam: - name := T.Obj() - if f.seenTParamNames[name] { - return nil - } - if name == f.obj { - return append(path, opObj) - } - if f.seenTParamNames == nil { - f.seenTParamNames = make(map[*types.TypeName]bool) - } - f.seenTParamNames[name] = true - if r := f.find(T.Constraint(), append(path, opConstraint)); r != nil { - return r - } - return nil - } - panic(T) -} - -func findTypeParam(obj types.Object, list *types.TypeParamList, path []byte, op byte) []byte { - return (&finder{obj: obj}).findTypeParam(list, path, op) -} - -func (f *finder) findTypeParam(list *types.TypeParamList, path []byte, op byte) []byte { - for i := 0; i < list.Len(); i++ { - tparam := list.At(i) - path2 := appendOpArg(path, op, i) - if r := f.find(tparam, path2); r != nil { - return r - } - } - return nil -} - -// Object returns the object denoted by path p within the package pkg. -func Object(pkg *types.Package, p Path) (types.Object, error) { - pathstr := string(p) - if pathstr == "" { - return nil, fmt.Errorf("empty path") - } - - var pkgobj, suffix string - if dot := strings.IndexByte(pathstr, opType); dot < 0 { - pkgobj = pathstr - } else { - pkgobj = pathstr[:dot] - suffix = pathstr[dot:] // suffix starts with "." - } - - obj := pkg.Scope().Lookup(pkgobj) - if obj == nil { - return nil, fmt.Errorf("package %s does not contain %q", pkg.Path(), pkgobj) - } - - // abstraction of *types.{Pointer,Slice,Array,Chan,Map} - type hasElem interface { - Elem() types.Type - } - // abstraction of *types.{Named,Signature} - type hasTypeParams interface { - TypeParams() *types.TypeParamList - } - // abstraction of *types.{Named,TypeParam} - type hasObj interface { - Obj() *types.TypeName - } - - // The loop state is the pair (t, obj), - // exactly one of which is non-nil, initially obj. - // All suffixes start with '.' (the only object->type operation), - // followed by optional type->type operations, - // then a type->object operation. - // The cycle then repeats. - var t types.Type - for suffix != "" { - code := suffix[0] - suffix = suffix[1:] - - // Codes [AFMTr] have an integer operand. - var index int - switch code { - case opAt, opField, opMethod, opTypeParam, opRecvTypeParam: - rest := strings.TrimLeft(suffix, "0123456789") - numerals := suffix[:len(suffix)-len(rest)] - suffix = rest - i, err := strconv.Atoi(numerals) - if err != nil { - return nil, fmt.Errorf("invalid path: bad numeric operand %q for code %q", numerals, code) - } - index = int(i) - case opObj: - // no operand - default: - // The suffix must end with a type->object operation. - if suffix == "" { - return nil, fmt.Errorf("invalid path: ends with %q, want [AFMO]", code) - } - } - - if code == opType { - if t != nil { - return nil, fmt.Errorf("invalid path: unexpected %q in type context", opType) - } - t = obj.Type() - obj = nil - continue - } - - if t == nil { - return nil, fmt.Errorf("invalid path: code %q in object context", code) - } - - // Inv: t != nil, obj == nil - - t = types.Unalias(t) - switch code { - case opElem: - hasElem, ok := t.(hasElem) // Pointer, Slice, Array, Chan, Map - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want pointer, slice, array, chan or map)", code, t, t) - } - t = hasElem.Elem() - - case opKey: - mapType, ok := t.(*types.Map) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want map)", code, t, t) - } - t = mapType.Key() - - case opParams: - sig, ok := t.(*types.Signature) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) - } - t = sig.Params() - - case opResults: - sig, ok := t.(*types.Signature) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) - } - t = sig.Results() - - case opUnderlying: - named, ok := t.(*types.Named) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named)", code, t, t) - } - t = named.Underlying() - - case opRhs: - if alias, ok := t.(*types.Alias); ok { - t = aliases.Rhs(alias) - } else if false && aliases.Enabled() { - // The Enabled check is too expensive, so for now we - // simply assume that aliases are not enabled. - // TODO(adonovan): replace with "if true {" when go1.24 is assured. - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want alias)", code, t, t) - } - - case opTypeParam: - hasTypeParams, ok := t.(hasTypeParams) // Named, Signature - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or signature)", code, t, t) - } - tparams := hasTypeParams.TypeParams() - if n := tparams.Len(); index >= n { - return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) - } - t = tparams.At(index) - - case opRecvTypeParam: - sig, ok := t.(*types.Signature) // Signature - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) - } - rtparams := sig.RecvTypeParams() - if n := rtparams.Len(); index >= n { - return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) - } - t = rtparams.At(index) - - case opConstraint: - tparam, ok := t.(*types.TypeParam) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want type parameter)", code, t, t) - } - t = tparam.Constraint() - - case opAt: - tuple, ok := t.(*types.Tuple) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want tuple)", code, t, t) - } - if n := tuple.Len(); index >= n { - return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) - } - obj = tuple.At(index) - t = nil - - case opField: - structType, ok := t.(*types.Struct) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want struct)", code, t, t) - } - if n := structType.NumFields(); index >= n { - return nil, fmt.Errorf("field index %d out of range [0-%d)", index, n) - } - obj = structType.Field(index) - t = nil - - case opMethod: - switch t := t.(type) { - case *types.Interface: - if index >= t.NumMethods() { - return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) - } - obj = t.Method(index) // Id-ordered - - case *types.Named: - if index >= t.NumMethods() { - return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) - } - obj = t.Method(index) - - default: - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want interface or named)", code, t, t) - } - t = nil - - case opObj: - hasObj, ok := t.(hasObj) - if !ok { - return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or type param)", code, t, t) - } - obj = hasObj.Obj() - t = nil - - default: - return nil, fmt.Errorf("invalid path: unknown code %q", code) - } - } - - if obj == nil { - panic(p) // path does not end in an object-valued operator - } - - if obj.Pkg() != pkg { - return nil, fmt.Errorf("path denotes %s, which belongs to a different package", obj) - } - - return obj, nil // success -} - -// scopeObjects is a memoization of scope objects. -// Callers must not modify the result. -func (enc *Encoder) scopeObjects(scope *types.Scope) []types.Object { - m := enc.scopeMemo - if m == nil { - m = make(map[*types.Scope][]types.Object) - enc.scopeMemo = m - } - objs, ok := m[scope] - if !ok { - names := scope.Names() // allocates and sorts - objs = make([]types.Object, len(names)) - for i, name := range names { - objs[i] = scope.Lookup(name) - } - m[scope] = objs - } - return objs -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/callee.go b/vendor/golang.org/x/tools/go/types/typeutil/callee.go deleted file mode 100644 index 75438035..00000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/callee.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeutil - -import ( - "go/ast" - "go/types" - - "golang.org/x/tools/internal/typeparams" -) - -// Callee returns the named target of a function call, if any: -// a function, method, builtin, or variable. -// -// Functions and methods may potentially have type parameters. -func Callee(info *types.Info, call *ast.CallExpr) types.Object { - fun := ast.Unparen(call.Fun) - - // Look through type instantiation if necessary. - isInstance := false - switch fun.(type) { - case *ast.IndexExpr, *ast.IndexListExpr: - // When extracting the callee from an *IndexExpr, we need to check that - // it is a *types.Func and not a *types.Var. - // Example: Don't match a slice m within the expression `m[0]()`. - isInstance = true - fun, _, _, _ = typeparams.UnpackIndexExpr(fun) - } - - var obj types.Object - switch fun := fun.(type) { - case *ast.Ident: - obj = info.Uses[fun] // type, var, builtin, or declared func - case *ast.SelectorExpr: - if sel, ok := info.Selections[fun]; ok { - obj = sel.Obj() // method or field - } else { - obj = info.Uses[fun.Sel] // qualified identifier? - } - } - if _, ok := obj.(*types.TypeName); ok { - return nil // T(x) is a conversion, not a call - } - // A Func is required to match instantiations. - if _, ok := obj.(*types.Func); isInstance && !ok { - return nil // Was not a Func. - } - return obj -} - -// StaticCallee returns the target (function or method) of a static function -// call, if any. It returns nil for calls to builtins. -// -// Note: for calls of instantiated functions and methods, StaticCallee returns -// the corresponding generic function or method on the generic type. -func StaticCallee(info *types.Info, call *ast.CallExpr) *types.Func { - if f, ok := Callee(info, call).(*types.Func); ok && !interfaceMethod(f) { - return f - } - return nil -} - -func interfaceMethod(f *types.Func) bool { - recv := f.Type().(*types.Signature).Recv() - return recv != nil && types.IsInterface(recv.Type()) -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/imports.go b/vendor/golang.org/x/tools/go/types/typeutil/imports.go deleted file mode 100644 index b81ce0c3..00000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/imports.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeutil - -import "go/types" - -// Dependencies returns all dependencies of the specified packages. -// -// Dependent packages appear in topological order: if package P imports -// package Q, Q appears earlier than P in the result. -// The algorithm follows import statements in the order they -// appear in the source code, so the result is a total order. -func Dependencies(pkgs ...*types.Package) []*types.Package { - var result []*types.Package - seen := make(map[*types.Package]bool) - var visit func(pkgs []*types.Package) - visit = func(pkgs []*types.Package) { - for _, p := range pkgs { - if !seen[p] { - seen[p] = true - visit(p.Imports()) - result = append(result, p) - } - } - } - visit(pkgs) - return result -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/map.go b/vendor/golang.org/x/tools/go/types/typeutil/map.go deleted file mode 100644 index 93b3090c..00000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/map.go +++ /dev/null @@ -1,467 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package typeutil defines various utilities for types, such as [Map], -// a hash table that maps [types.Type] to any value. -package typeutil - -import ( - "bytes" - "fmt" - "go/types" - "hash/maphash" - "unsafe" - - "golang.org/x/tools/internal/typeparams" -) - -// Map is a hash-table-based mapping from types (types.Type) to -// arbitrary values. The concrete types that implement -// the Type interface are pointers. Since they are not canonicalized, -// == cannot be used to check for equivalence, and thus we cannot -// simply use a Go map. -// -// Just as with map[K]V, a nil *Map is a valid empty map. -// -// Read-only map operations ([Map.At], [Map.Len], and so on) may -// safely be called concurrently. -// -// TODO(adonovan): deprecate in favor of https://go.dev/issues/69420 -// and 69559, if the latter proposals for a generic hash-map type and -// a types.Hash function are accepted. -type Map struct { - table map[uint32][]entry // maps hash to bucket; entry.key==nil means unused - length int // number of map entries -} - -// entry is an entry (key/value association) in a hash bucket. -type entry struct { - key types.Type - value any -} - -// SetHasher has no effect. -// -// It is a relic of an optimization that is no longer profitable. Do -// not use [Hasher], [MakeHasher], or [SetHasher] in new code. -func (m *Map) SetHasher(Hasher) {} - -// Delete removes the entry with the given key, if any. -// It returns true if the entry was found. -func (m *Map) Delete(key types.Type) bool { - if m != nil && m.table != nil { - hash := hash(key) - bucket := m.table[hash] - for i, e := range bucket { - if e.key != nil && types.Identical(key, e.key) { - // We can't compact the bucket as it - // would disturb iterators. - bucket[i] = entry{} - m.length-- - return true - } - } - } - return false -} - -// At returns the map entry for the given key. -// The result is nil if the entry is not present. -func (m *Map) At(key types.Type) any { - if m != nil && m.table != nil { - for _, e := range m.table[hash(key)] { - if e.key != nil && types.Identical(key, e.key) { - return e.value - } - } - } - return nil -} - -// Set sets the map entry for key to val, -// and returns the previous entry, if any. -func (m *Map) Set(key types.Type, value any) (prev any) { - if m.table != nil { - hash := hash(key) - bucket := m.table[hash] - var hole *entry - for i, e := range bucket { - if e.key == nil { - hole = &bucket[i] - } else if types.Identical(key, e.key) { - prev = e.value - bucket[i].value = value - return - } - } - - if hole != nil { - *hole = entry{key, value} // overwrite deleted entry - } else { - m.table[hash] = append(bucket, entry{key, value}) - } - } else { - hash := hash(key) - m.table = map[uint32][]entry{hash: {entry{key, value}}} - } - - m.length++ - return -} - -// Len returns the number of map entries. -func (m *Map) Len() int { - if m != nil { - return m.length - } - return 0 -} - -// Iterate calls function f on each entry in the map in unspecified order. -// -// If f should mutate the map, Iterate provides the same guarantees as -// Go maps: if f deletes a map entry that Iterate has not yet reached, -// f will not be invoked for it, but if f inserts a map entry that -// Iterate has not yet reached, whether or not f will be invoked for -// it is unspecified. -func (m *Map) Iterate(f func(key types.Type, value any)) { - if m != nil { - for _, bucket := range m.table { - for _, e := range bucket { - if e.key != nil { - f(e.key, e.value) - } - } - } - } -} - -// Keys returns a new slice containing the set of map keys. -// The order is unspecified. -func (m *Map) Keys() []types.Type { - keys := make([]types.Type, 0, m.Len()) - m.Iterate(func(key types.Type, _ any) { - keys = append(keys, key) - }) - return keys -} - -func (m *Map) toString(values bool) string { - if m == nil { - return "{}" - } - var buf bytes.Buffer - fmt.Fprint(&buf, "{") - sep := "" - m.Iterate(func(key types.Type, value any) { - fmt.Fprint(&buf, sep) - sep = ", " - fmt.Fprint(&buf, key) - if values { - fmt.Fprintf(&buf, ": %q", value) - } - }) - fmt.Fprint(&buf, "}") - return buf.String() -} - -// String returns a string representation of the map's entries. -// Values are printed using fmt.Sprintf("%v", v). -// Order is unspecified. -func (m *Map) String() string { - return m.toString(true) -} - -// KeysString returns a string representation of the map's key set. -// Order is unspecified. -func (m *Map) KeysString() string { - return m.toString(false) -} - -// -- Hasher -- - -// hash returns the hash of type t. -// TODO(adonovan): replace by types.Hash when Go proposal #69420 is accepted. -func hash(t types.Type) uint32 { - return theHasher.Hash(t) -} - -// A Hasher provides a [Hasher.Hash] method to map a type to its hash value. -// Hashers are stateless, and all are equivalent. -type Hasher struct{} - -var theHasher Hasher - -// MakeHasher returns Hasher{}. -// Hashers are stateless; all are equivalent. -func MakeHasher() Hasher { return theHasher } - -// Hash computes a hash value for the given type t such that -// Identical(t, t') => Hash(t) == Hash(t'). -func (h Hasher) Hash(t types.Type) uint32 { - return hasher{inGenericSig: false}.hash(t) -} - -// hasher holds the state of a single Hash traversal: whether we are -// inside the signature of a generic function; this is used to -// optimize [hasher.hashTypeParam]. -type hasher struct{ inGenericSig bool } - -// hashString computes the Fowler–Noll–Vo hash of s. -func hashString(s string) uint32 { - var h uint32 - for i := 0; i < len(s); i++ { - h ^= uint32(s[i]) - h *= 16777619 - } - return h -} - -// hash computes the hash of t. -func (h hasher) hash(t types.Type) uint32 { - // See Identical for rationale. - switch t := t.(type) { - case *types.Basic: - return uint32(t.Kind()) - - case *types.Alias: - return h.hash(types.Unalias(t)) - - case *types.Array: - return 9043 + 2*uint32(t.Len()) + 3*h.hash(t.Elem()) - - case *types.Slice: - return 9049 + 2*h.hash(t.Elem()) - - case *types.Struct: - var hash uint32 = 9059 - for i, n := 0, t.NumFields(); i < n; i++ { - f := t.Field(i) - if f.Anonymous() { - hash += 8861 - } - hash += hashString(t.Tag(i)) - hash += hashString(f.Name()) // (ignore f.Pkg) - hash += h.hash(f.Type()) - } - return hash - - case *types.Pointer: - return 9067 + 2*h.hash(t.Elem()) - - case *types.Signature: - var hash uint32 = 9091 - if t.Variadic() { - hash *= 8863 - } - - tparams := t.TypeParams() - for i := range tparams.Len() { - h.inGenericSig = true - tparam := tparams.At(i) - hash += 7 * h.hash(tparam.Constraint()) - } - - return hash + 3*h.hashTuple(t.Params()) + 5*h.hashTuple(t.Results()) - - case *types.Union: - return h.hashUnion(t) - - case *types.Interface: - // Interfaces are identical if they have the same set of methods, with - // identical names and types, and they have the same set of type - // restrictions. See go/types.identical for more details. - var hash uint32 = 9103 - - // Hash methods. - for i, n := 0, t.NumMethods(); i < n; i++ { - // Method order is not significant. - // Ignore m.Pkg(). - m := t.Method(i) - // Use shallow hash on method signature to - // avoid anonymous interface cycles. - hash += 3*hashString(m.Name()) + 5*h.shallowHash(m.Type()) - } - - // Hash type restrictions. - terms, err := typeparams.InterfaceTermSet(t) - // if err != nil t has invalid type restrictions. - if err == nil { - hash += h.hashTermSet(terms) - } - - return hash - - case *types.Map: - return 9109 + 2*h.hash(t.Key()) + 3*h.hash(t.Elem()) - - case *types.Chan: - return 9127 + 2*uint32(t.Dir()) + 3*h.hash(t.Elem()) - - case *types.Named: - hash := h.hashTypeName(t.Obj()) - targs := t.TypeArgs() - for i := 0; i < targs.Len(); i++ { - targ := targs.At(i) - hash += 2 * h.hash(targ) - } - return hash - - case *types.TypeParam: - return h.hashTypeParam(t) - - case *types.Tuple: - return h.hashTuple(t) - } - - panic(fmt.Sprintf("%T: %v", t, t)) -} - -func (h hasher) hashTuple(tuple *types.Tuple) uint32 { - // See go/types.identicalTypes for rationale. - n := tuple.Len() - hash := 9137 + 2*uint32(n) - for i := range n { - hash += 3 * h.hash(tuple.At(i).Type()) - } - return hash -} - -func (h hasher) hashUnion(t *types.Union) uint32 { - // Hash type restrictions. - terms, err := typeparams.UnionTermSet(t) - // if err != nil t has invalid type restrictions. Fall back on a non-zero - // hash. - if err != nil { - return 9151 - } - return h.hashTermSet(terms) -} - -func (h hasher) hashTermSet(terms []*types.Term) uint32 { - hash := 9157 + 2*uint32(len(terms)) - for _, term := range terms { - // term order is not significant. - termHash := h.hash(term.Type()) - if term.Tilde() { - termHash *= 9161 - } - hash += 3 * termHash - } - return hash -} - -// hashTypeParam returns the hash of a type parameter. -func (h hasher) hashTypeParam(t *types.TypeParam) uint32 { - // Within the signature of a generic function, TypeParams are - // identical if they have the same index and constraint, so we - // hash them based on index. - // - // When we are outside a generic function, free TypeParams are - // identical iff they are the same object, so we can use a - // more discriminating hash consistent with object identity. - // This optimization saves [Map] about 4% when hashing all the - // types.Info.Types in the forward closure of net/http. - if !h.inGenericSig { - // Optimization: outside a generic function signature, - // use a more discrimating hash consistent with object identity. - return h.hashTypeName(t.Obj()) - } - return 9173 + 3*uint32(t.Index()) -} - -var theSeed = maphash.MakeSeed() - -// hashTypeName hashes the pointer of tname. -func (hasher) hashTypeName(tname *types.TypeName) uint32 { - // Since types.Identical uses == to compare TypeNames, - // the Hash function uses maphash.Comparable. - // TODO(adonovan): or will, when it becomes available in go1.24. - // In the meantime we use the pointer's numeric value. - // - // hash := maphash.Comparable(theSeed, tname) - // - // (Another approach would be to hash the name and package - // path, and whether or not it is a package-level typename. It - // is rare for a package to define multiple local types with - // the same name.) - hash := uintptr(unsafe.Pointer(tname)) - return uint32(hash ^ (hash >> 32)) -} - -// shallowHash computes a hash of t without looking at any of its -// element Types, to avoid potential anonymous cycles in the types of -// interface methods. -// -// When an unnamed non-empty interface type appears anywhere among the -// arguments or results of an interface method, there is a potential -// for endless recursion. Consider: -// -// type X interface { m() []*interface { X } } -// -// The problem is that the Methods of the interface in m's result type -// include m itself; there is no mention of the named type X that -// might help us break the cycle. -// (See comment in go/types.identical, case *Interface, for more.) -func (h hasher) shallowHash(t types.Type) uint32 { - // t is the type of an interface method (Signature), - // its params or results (Tuples), or their immediate - // elements (mostly Slice, Pointer, Basic, Named), - // so there's no need to optimize anything else. - switch t := t.(type) { - case *types.Alias: - return h.shallowHash(types.Unalias(t)) - - case *types.Signature: - var hash uint32 = 604171 - if t.Variadic() { - hash *= 971767 - } - // The Signature/Tuple recursion is always finite - // and invariably shallow. - return hash + 1062599*h.shallowHash(t.Params()) + 1282529*h.shallowHash(t.Results()) - - case *types.Tuple: - n := t.Len() - hash := 9137 + 2*uint32(n) - for i := range n { - hash += 53471161 * h.shallowHash(t.At(i).Type()) - } - return hash - - case *types.Basic: - return 45212177 * uint32(t.Kind()) - - case *types.Array: - return 1524181 + 2*uint32(t.Len()) - - case *types.Slice: - return 2690201 - - case *types.Struct: - return 3326489 - - case *types.Pointer: - return 4393139 - - case *types.Union: - return 562448657 - - case *types.Interface: - return 2124679 // no recursion here - - case *types.Map: - return 9109 - - case *types.Chan: - return 9127 - - case *types.Named: - return h.hashTypeName(t.Obj()) - - case *types.TypeParam: - return h.hashTypeParam(t) - } - panic(fmt.Sprintf("shallowHash: %T: %v", t, t)) -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go b/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go deleted file mode 100644 index f7666028..00000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file implements a cache of method sets. - -package typeutil - -import ( - "go/types" - "sync" -) - -// A MethodSetCache records the method set of each type T for which -// MethodSet(T) is called so that repeat queries are fast. -// The zero value is a ready-to-use cache instance. -type MethodSetCache struct { - mu sync.Mutex - named map[*types.Named]struct{ value, pointer *types.MethodSet } // method sets for named N and *N - others map[types.Type]*types.MethodSet // all other types -} - -// MethodSet returns the method set of type T. It is thread-safe. -// -// If cache is nil, this function is equivalent to types.NewMethodSet(T). -// Utility functions can thus expose an optional *MethodSetCache -// parameter to clients that care about performance. -func (cache *MethodSetCache) MethodSet(T types.Type) *types.MethodSet { - if cache == nil { - return types.NewMethodSet(T) - } - cache.mu.Lock() - defer cache.mu.Unlock() - - switch T := types.Unalias(T).(type) { - case *types.Named: - return cache.lookupNamed(T).value - - case *types.Pointer: - if N, ok := types.Unalias(T.Elem()).(*types.Named); ok { - return cache.lookupNamed(N).pointer - } - } - - // all other types - // (The map uses pointer equivalence, not type identity.) - mset := cache.others[T] - if mset == nil { - mset = types.NewMethodSet(T) - if cache.others == nil { - cache.others = make(map[types.Type]*types.MethodSet) - } - cache.others[T] = mset - } - return mset -} - -func (cache *MethodSetCache) lookupNamed(named *types.Named) struct{ value, pointer *types.MethodSet } { - if cache.named == nil { - cache.named = make(map[*types.Named]struct{ value, pointer *types.MethodSet }) - } - // Avoid recomputing mset(*T) for each distinct Pointer - // instance whose underlying type is a named type. - msets, ok := cache.named[named] - if !ok { - msets.value = types.NewMethodSet(named) - msets.pointer = types.NewMethodSet(types.NewPointer(named)) - cache.named[named] = msets - } - return msets -} diff --git a/vendor/golang.org/x/tools/go/types/typeutil/ui.go b/vendor/golang.org/x/tools/go/types/typeutil/ui.go deleted file mode 100644 index 9dda6a25..00000000 --- a/vendor/golang.org/x/tools/go/types/typeutil/ui.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeutil - -// This file defines utilities for user interfaces that display types. - -import ( - "go/types" -) - -// IntuitiveMethodSet returns the intuitive method set of a type T, -// which is the set of methods you can call on an addressable value of -// that type. -// -// The result always contains MethodSet(T), and is exactly MethodSet(T) -// for interface types and for pointer-to-concrete types. -// For all other concrete types T, the result additionally -// contains each method belonging to *T if there is no identically -// named method on T itself. -// -// This corresponds to user intuition about method sets; -// this function is intended only for user interfaces. -// -// The order of the result is as for types.MethodSet(T). -func IntuitiveMethodSet(T types.Type, msets *MethodSetCache) []*types.Selection { - isPointerToConcrete := func(T types.Type) bool { - ptr, ok := types.Unalias(T).(*types.Pointer) - return ok && !types.IsInterface(ptr.Elem()) - } - - var result []*types.Selection - mset := msets.MethodSet(T) - if types.IsInterface(T) || isPointerToConcrete(T) { - for i, n := 0, mset.Len(); i < n; i++ { - result = append(result, mset.At(i)) - } - } else { - // T is some other concrete type. - // Report methods of T and *T, preferring those of T. - pmset := msets.MethodSet(types.NewPointer(T)) - for i, n := 0, pmset.Len(); i < n; i++ { - meth := pmset.At(i) - if m := mset.Lookup(meth.Obj().Pkg(), meth.Obj().Name()); m != nil { - meth = m - } - result = append(result, meth) - } - - } - return result -} diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases.go b/vendor/golang.org/x/tools/internal/aliases/aliases.go deleted file mode 100644 index b9425f5a..00000000 --- a/vendor/golang.org/x/tools/internal/aliases/aliases.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package aliases - -import ( - "go/token" - "go/types" -) - -// Package aliases defines backward compatible shims -// for the types.Alias type representation added in 1.22. -// This defines placeholders for x/tools until 1.26. - -// NewAlias creates a new TypeName in Package pkg that -// is an alias for the type rhs. -// -// The enabled parameter determines whether the resulting [TypeName]'s -// type is an [types.Alias]. Its value must be the result of a call to -// [Enabled], which computes the effective value of -// GODEBUG=gotypesalias=... by invoking the type checker. The Enabled -// function is expensive and should be called once per task (e.g. -// package import), not once per call to NewAlias. -// -// Precondition: enabled || len(tparams)==0. -// If materialized aliases are disabled, there must not be any type parameters. -func NewAlias(enabled bool, pos token.Pos, pkg *types.Package, name string, rhs types.Type, tparams []*types.TypeParam) *types.TypeName { - if enabled { - tname := types.NewTypeName(pos, pkg, name, nil) - SetTypeParams(types.NewAlias(tname, rhs), tparams) - return tname - } - if len(tparams) > 0 { - panic("cannot create an alias with type parameters when gotypesalias is not enabled") - } - return types.NewTypeName(pos, pkg, name, rhs) -} diff --git a/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go deleted file mode 100644 index 7716a333..00000000 --- a/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package aliases - -import ( - "go/ast" - "go/parser" - "go/token" - "go/types" -) - -// Rhs returns the type on the right-hand side of the alias declaration. -func Rhs(alias *types.Alias) types.Type { - if alias, ok := any(alias).(interface{ Rhs() types.Type }); ok { - return alias.Rhs() // go1.23+ - } - - // go1.22's Alias didn't have the Rhs method, - // so Unalias is the best we can do. - return types.Unalias(alias) -} - -// TypeParams returns the type parameter list of the alias. -func TypeParams(alias *types.Alias) *types.TypeParamList { - if alias, ok := any(alias).(interface{ TypeParams() *types.TypeParamList }); ok { - return alias.TypeParams() // go1.23+ - } - return nil -} - -// SetTypeParams sets the type parameters of the alias type. -func SetTypeParams(alias *types.Alias, tparams []*types.TypeParam) { - if alias, ok := any(alias).(interface { - SetTypeParams(tparams []*types.TypeParam) - }); ok { - alias.SetTypeParams(tparams) // go1.23+ - } else if len(tparams) > 0 { - panic("cannot set type parameters of an Alias type in go1.22") - } -} - -// TypeArgs returns the type arguments used to instantiate the Alias type. -func TypeArgs(alias *types.Alias) *types.TypeList { - if alias, ok := any(alias).(interface{ TypeArgs() *types.TypeList }); ok { - return alias.TypeArgs() // go1.23+ - } - return nil // empty (go1.22) -} - -// Origin returns the generic Alias type of which alias is an instance. -// If alias is not an instance of a generic alias, Origin returns alias. -func Origin(alias *types.Alias) *types.Alias { - if alias, ok := any(alias).(interface{ Origin() *types.Alias }); ok { - return alias.Origin() // go1.23+ - } - return alias // not an instance of a generic alias (go1.22) -} - -// Enabled reports whether [NewAlias] should create [types.Alias] types. -// -// This function is expensive! Call it sparingly. -func Enabled() bool { - // The only reliable way to compute the answer is to invoke go/types. - // We don't parse the GODEBUG environment variable, because - // (a) it's tricky to do so in a manner that is consistent - // with the godebug package; in particular, a simple - // substring check is not good enough. The value is a - // rightmost-wins list of options. But more importantly: - // (b) it is impossible to detect changes to the effective - // setting caused by os.Setenv("GODEBUG"), as happens in - // many tests. Therefore any attempt to cache the result - // is just incorrect. - fset := token.NewFileSet() - f, _ := parser.ParseFile(fset, "a.go", "package p; type A = int", parser.SkipObjectResolution) - pkg, _ := new(types.Config).Check("p", fset, []*ast.File{f}, nil) - _, enabled := pkg.Scope().Lookup("A").Type().(*types.Alias) - return enabled -} diff --git a/vendor/golang.org/x/tools/internal/event/core/event.go b/vendor/golang.org/x/tools/internal/event/core/event.go deleted file mode 100644 index a6cf0e64..00000000 --- a/vendor/golang.org/x/tools/internal/event/core/event.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package core provides support for event based telemetry. -package core - -import ( - "fmt" - "time" - - "golang.org/x/tools/internal/event/label" -) - -// Event holds the information about an event of note that occurred. -type Event struct { - at time.Time - - // As events are often on the stack, storing the first few labels directly - // in the event can avoid an allocation at all for the very common cases of - // simple events. - // The length needs to be large enough to cope with the majority of events - // but no so large as to cause undue stack pressure. - // A log message with two values will use 3 labels (one for each value and - // one for the message itself). - - static [3]label.Label // inline storage for the first few labels - dynamic []label.Label // dynamically sized storage for remaining labels -} - -// eventLabelMap implements label.Map for a the labels of an Event. -type eventLabelMap struct { - event Event -} - -func (ev Event) At() time.Time { return ev.at } - -func (ev Event) Format(f fmt.State, r rune) { - if !ev.at.IsZero() { - fmt.Fprint(f, ev.at.Format("2006/01/02 15:04:05 ")) - } - for index := 0; ev.Valid(index); index++ { - if l := ev.Label(index); l.Valid() { - fmt.Fprintf(f, "\n\t%v", l) - } - } -} - -func (ev Event) Valid(index int) bool { - return index >= 0 && index < len(ev.static)+len(ev.dynamic) -} - -func (ev Event) Label(index int) label.Label { - if index < len(ev.static) { - return ev.static[index] - } - return ev.dynamic[index-len(ev.static)] -} - -func (ev Event) Find(key label.Key) label.Label { - for _, l := range ev.static { - if l.Key() == key { - return l - } - } - for _, l := range ev.dynamic { - if l.Key() == key { - return l - } - } - return label.Label{} -} - -func MakeEvent(static [3]label.Label, labels []label.Label) Event { - return Event{ - static: static, - dynamic: labels, - } -} - -// CloneEvent event returns a copy of the event with the time adjusted to at. -func CloneEvent(ev Event, at time.Time) Event { - ev.at = at - return ev -} diff --git a/vendor/golang.org/x/tools/internal/event/core/export.go b/vendor/golang.org/x/tools/internal/event/core/export.go deleted file mode 100644 index 05f3a9a5..00000000 --- a/vendor/golang.org/x/tools/internal/event/core/export.go +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package core - -import ( - "context" - "sync/atomic" - "time" - "unsafe" - - "golang.org/x/tools/internal/event/label" -) - -// Exporter is a function that handles events. -// It may return a modified context and event. -type Exporter func(context.Context, Event, label.Map) context.Context - -var ( - exporter unsafe.Pointer -) - -// SetExporter sets the global exporter function that handles all events. -// The exporter is called synchronously from the event call site, so it should -// return quickly so as not to hold up user code. -func SetExporter(e Exporter) { - p := unsafe.Pointer(&e) - if e == nil { - // &e is always valid, and so p is always valid, but for the early abort - // of ProcessEvent to be efficient it needs to make the nil check on the - // pointer without having to dereference it, so we make the nil function - // also a nil pointer - p = nil - } - atomic.StorePointer(&exporter, p) -} - -// deliver is called to deliver an event to the supplied exporter. -// it will fill in the time. -func deliver(ctx context.Context, exporter Exporter, ev Event) context.Context { - // add the current time to the event - ev.at = time.Now() - // hand the event off to the current exporter - return exporter(ctx, ev, ev) -} - -// Export is called to deliver an event to the global exporter if set. -func Export(ctx context.Context, ev Event) context.Context { - // get the global exporter and abort early if there is not one - exporterPtr := (*Exporter)(atomic.LoadPointer(&exporter)) - if exporterPtr == nil { - return ctx - } - return deliver(ctx, *exporterPtr, ev) -} - -// ExportPair is called to deliver a start event to the supplied exporter. -// It also returns a function that will deliver the end event to the same -// exporter. -// It will fill in the time. -func ExportPair(ctx context.Context, begin, end Event) (context.Context, func()) { - // get the global exporter and abort early if there is not one - exporterPtr := (*Exporter)(atomic.LoadPointer(&exporter)) - if exporterPtr == nil { - return ctx, func() {} - } - ctx = deliver(ctx, *exporterPtr, begin) - return ctx, func() { deliver(ctx, *exporterPtr, end) } -} diff --git a/vendor/golang.org/x/tools/internal/event/core/fast.go b/vendor/golang.org/x/tools/internal/event/core/fast.go deleted file mode 100644 index 06c1d461..00000000 --- a/vendor/golang.org/x/tools/internal/event/core/fast.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package core - -import ( - "context" - - "golang.org/x/tools/internal/event/keys" - "golang.org/x/tools/internal/event/label" -) - -// Log1 takes a message and one label delivers a log event to the exporter. -// It is a customized version of Print that is faster and does no allocation. -func Log1(ctx context.Context, message string, t1 label.Label) { - Export(ctx, MakeEvent([3]label.Label{ - keys.Msg.Of(message), - t1, - }, nil)) -} - -// Log2 takes a message and two labels and delivers a log event to the exporter. -// It is a customized version of Print that is faster and does no allocation. -func Log2(ctx context.Context, message string, t1 label.Label, t2 label.Label) { - Export(ctx, MakeEvent([3]label.Label{ - keys.Msg.Of(message), - t1, - t2, - }, nil)) -} - -// Metric1 sends a label event to the exporter with the supplied labels. -func Metric1(ctx context.Context, t1 label.Label) context.Context { - return Export(ctx, MakeEvent([3]label.Label{ - keys.Metric.New(), - t1, - }, nil)) -} - -// Metric2 sends a label event to the exporter with the supplied labels. -func Metric2(ctx context.Context, t1, t2 label.Label) context.Context { - return Export(ctx, MakeEvent([3]label.Label{ - keys.Metric.New(), - t1, - t2, - }, nil)) -} - -// Start1 sends a span start event with the supplied label list to the exporter. -// It also returns a function that will end the span, which should normally be -// deferred. -func Start1(ctx context.Context, name string, t1 label.Label) (context.Context, func()) { - return ExportPair(ctx, - MakeEvent([3]label.Label{ - keys.Start.Of(name), - t1, - }, nil), - MakeEvent([3]label.Label{ - keys.End.New(), - }, nil)) -} - -// Start2 sends a span start event with the supplied label list to the exporter. -// It also returns a function that will end the span, which should normally be -// deferred. -func Start2(ctx context.Context, name string, t1, t2 label.Label) (context.Context, func()) { - return ExportPair(ctx, - MakeEvent([3]label.Label{ - keys.Start.Of(name), - t1, - t2, - }, nil), - MakeEvent([3]label.Label{ - keys.End.New(), - }, nil)) -} diff --git a/vendor/golang.org/x/tools/internal/event/doc.go b/vendor/golang.org/x/tools/internal/event/doc.go deleted file mode 100644 index 5dc6e6ba..00000000 --- a/vendor/golang.org/x/tools/internal/event/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package event provides a set of packages that cover the main -// concepts of telemetry in an implementation agnostic way. -package event diff --git a/vendor/golang.org/x/tools/internal/event/event.go b/vendor/golang.org/x/tools/internal/event/event.go deleted file mode 100644 index 4d55e577..00000000 --- a/vendor/golang.org/x/tools/internal/event/event.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package event - -import ( - "context" - - "golang.org/x/tools/internal/event/core" - "golang.org/x/tools/internal/event/keys" - "golang.org/x/tools/internal/event/label" -) - -// Exporter is a function that handles events. -// It may return a modified context and event. -type Exporter func(context.Context, core.Event, label.Map) context.Context - -// SetExporter sets the global exporter function that handles all events. -// The exporter is called synchronously from the event call site, so it should -// return quickly so as not to hold up user code. -func SetExporter(e Exporter) { - core.SetExporter(core.Exporter(e)) -} - -// Log takes a message and a label list and combines them into a single event -// before delivering them to the exporter. -func Log(ctx context.Context, message string, labels ...label.Label) { - core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Msg.Of(message), - }, labels)) -} - -// IsLog returns true if the event was built by the Log function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsLog(ev core.Event) bool { - return ev.Label(0).Key() == keys.Msg -} - -// Error takes a message and a label list and combines them into a single event -// before delivering them to the exporter. It captures the error in the -// delivered event. -func Error(ctx context.Context, message string, err error, labels ...label.Label) { - core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Msg.Of(message), - keys.Err.Of(err), - }, labels)) -} - -// IsError returns true if the event was built by the Error function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsError(ev core.Event) bool { - return ev.Label(0).Key() == keys.Msg && - ev.Label(1).Key() == keys.Err -} - -// Metric sends a label event to the exporter with the supplied labels. -func Metric(ctx context.Context, labels ...label.Label) { - core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Metric.New(), - }, labels)) -} - -// IsMetric returns true if the event was built by the Metric function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsMetric(ev core.Event) bool { - return ev.Label(0).Key() == keys.Metric -} - -// Label sends a label event to the exporter with the supplied labels. -func Label(ctx context.Context, labels ...label.Label) context.Context { - return core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Label.New(), - }, labels)) -} - -// IsLabel returns true if the event was built by the Label function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsLabel(ev core.Event) bool { - return ev.Label(0).Key() == keys.Label -} - -// Start sends a span start event with the supplied label list to the exporter. -// It also returns a function that will end the span, which should normally be -// deferred. -func Start(ctx context.Context, name string, labels ...label.Label) (context.Context, func()) { - return core.ExportPair(ctx, - core.MakeEvent([3]label.Label{ - keys.Start.Of(name), - }, labels), - core.MakeEvent([3]label.Label{ - keys.End.New(), - }, nil)) -} - -// IsStart returns true if the event was built by the Start function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsStart(ev core.Event) bool { - return ev.Label(0).Key() == keys.Start -} - -// IsEnd returns true if the event was built by the End function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsEnd(ev core.Event) bool { - return ev.Label(0).Key() == keys.End -} - -// Detach returns a context without an associated span. -// This allows the creation of spans that are not children of the current span. -func Detach(ctx context.Context) context.Context { - return core.Export(ctx, core.MakeEvent([3]label.Label{ - keys.Detach.New(), - }, nil)) -} - -// IsDetach returns true if the event was built by the Detach function. -// It is intended to be used in exporters to identify the semantics of the -// event when deciding what to do with it. -func IsDetach(ev core.Event) bool { - return ev.Label(0).Key() == keys.Detach -} diff --git a/vendor/golang.org/x/tools/internal/event/keys/keys.go b/vendor/golang.org/x/tools/internal/event/keys/keys.go deleted file mode 100644 index a02206e3..00000000 --- a/vendor/golang.org/x/tools/internal/event/keys/keys.go +++ /dev/null @@ -1,564 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package keys - -import ( - "fmt" - "io" - "math" - "strconv" - - "golang.org/x/tools/internal/event/label" -) - -// Value represents a key for untyped values. -type Value struct { - name string - description string -} - -// New creates a new Key for untyped values. -func New(name, description string) *Value { - return &Value{name: name, description: description} -} - -func (k *Value) Name() string { return k.name } -func (k *Value) Description() string { return k.description } - -func (k *Value) Format(w io.Writer, buf []byte, l label.Label) { - fmt.Fprint(w, k.From(l)) -} - -// Get can be used to get a label for the key from a label.Map. -func (k *Value) Get(lm label.Map) interface{} { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return nil -} - -// From can be used to get a value from a Label. -func (k *Value) From(t label.Label) interface{} { return t.UnpackValue() } - -// Of creates a new Label with this key and the supplied value. -func (k *Value) Of(value interface{}) label.Label { return label.OfValue(k, value) } - -// Tag represents a key for tagging labels that have no value. -// These are used when the existence of the label is the entire information it -// carries, such as marking events to be of a specific kind, or from a specific -// package. -type Tag struct { - name string - description string -} - -// NewTag creates a new Key for tagging labels. -func NewTag(name, description string) *Tag { - return &Tag{name: name, description: description} -} - -func (k *Tag) Name() string { return k.name } -func (k *Tag) Description() string { return k.description } - -func (k *Tag) Format(w io.Writer, buf []byte, l label.Label) {} - -// New creates a new Label with this key. -func (k *Tag) New() label.Label { return label.OfValue(k, nil) } - -// Int represents a key -type Int struct { - name string - description string -} - -// NewInt creates a new Key for int values. -func NewInt(name, description string) *Int { - return &Int{name: name, description: description} -} - -func (k *Int) Name() string { return k.name } -func (k *Int) Description() string { return k.description } - -func (k *Int) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int) Of(v int) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int) Get(lm label.Map) int { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int) From(t label.Label) int { return int(t.Unpack64()) } - -// Int8 represents a key -type Int8 struct { - name string - description string -} - -// NewInt8 creates a new Key for int8 values. -func NewInt8(name, description string) *Int8 { - return &Int8{name: name, description: description} -} - -func (k *Int8) Name() string { return k.name } -func (k *Int8) Description() string { return k.description } - -func (k *Int8) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int8) Of(v int8) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int8) Get(lm label.Map) int8 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int8) From(t label.Label) int8 { return int8(t.Unpack64()) } - -// Int16 represents a key -type Int16 struct { - name string - description string -} - -// NewInt16 creates a new Key for int16 values. -func NewInt16(name, description string) *Int16 { - return &Int16{name: name, description: description} -} - -func (k *Int16) Name() string { return k.name } -func (k *Int16) Description() string { return k.description } - -func (k *Int16) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int16) Of(v int16) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int16) Get(lm label.Map) int16 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int16) From(t label.Label) int16 { return int16(t.Unpack64()) } - -// Int32 represents a key -type Int32 struct { - name string - description string -} - -// NewInt32 creates a new Key for int32 values. -func NewInt32(name, description string) *Int32 { - return &Int32{name: name, description: description} -} - -func (k *Int32) Name() string { return k.name } -func (k *Int32) Description() string { return k.description } - -func (k *Int32) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, int64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int32) Of(v int32) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int32) Get(lm label.Map) int32 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int32) From(t label.Label) int32 { return int32(t.Unpack64()) } - -// Int64 represents a key -type Int64 struct { - name string - description string -} - -// NewInt64 creates a new Key for int64 values. -func NewInt64(name, description string) *Int64 { - return &Int64{name: name, description: description} -} - -func (k *Int64) Name() string { return k.name } -func (k *Int64) Description() string { return k.description } - -func (k *Int64) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendInt(buf, k.From(l), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Int64) Of(v int64) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Int64) Get(lm label.Map) int64 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Int64) From(t label.Label) int64 { return int64(t.Unpack64()) } - -// UInt represents a key -type UInt struct { - name string - description string -} - -// NewUInt creates a new Key for uint values. -func NewUInt(name, description string) *UInt { - return &UInt{name: name, description: description} -} - -func (k *UInt) Name() string { return k.name } -func (k *UInt) Description() string { return k.description } - -func (k *UInt) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt) Of(v uint) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt) Get(lm label.Map) uint { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt) From(t label.Label) uint { return uint(t.Unpack64()) } - -// UInt8 represents a key -type UInt8 struct { - name string - description string -} - -// NewUInt8 creates a new Key for uint8 values. -func NewUInt8(name, description string) *UInt8 { - return &UInt8{name: name, description: description} -} - -func (k *UInt8) Name() string { return k.name } -func (k *UInt8) Description() string { return k.description } - -func (k *UInt8) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt8) Of(v uint8) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt8) Get(lm label.Map) uint8 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt8) From(t label.Label) uint8 { return uint8(t.Unpack64()) } - -// UInt16 represents a key -type UInt16 struct { - name string - description string -} - -// NewUInt16 creates a new Key for uint16 values. -func NewUInt16(name, description string) *UInt16 { - return &UInt16{name: name, description: description} -} - -func (k *UInt16) Name() string { return k.name } -func (k *UInt16) Description() string { return k.description } - -func (k *UInt16) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt16) Of(v uint16) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt16) Get(lm label.Map) uint16 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt16) From(t label.Label) uint16 { return uint16(t.Unpack64()) } - -// UInt32 represents a key -type UInt32 struct { - name string - description string -} - -// NewUInt32 creates a new Key for uint32 values. -func NewUInt32(name, description string) *UInt32 { - return &UInt32{name: name, description: description} -} - -func (k *UInt32) Name() string { return k.name } -func (k *UInt32) Description() string { return k.description } - -func (k *UInt32) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, uint64(k.From(l)), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt32) Of(v uint32) label.Label { return label.Of64(k, uint64(v)) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt32) Get(lm label.Map) uint32 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt32) From(t label.Label) uint32 { return uint32(t.Unpack64()) } - -// UInt64 represents a key -type UInt64 struct { - name string - description string -} - -// NewUInt64 creates a new Key for uint64 values. -func NewUInt64(name, description string) *UInt64 { - return &UInt64{name: name, description: description} -} - -func (k *UInt64) Name() string { return k.name } -func (k *UInt64) Description() string { return k.description } - -func (k *UInt64) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendUint(buf, k.From(l), 10)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *UInt64) Of(v uint64) label.Label { return label.Of64(k, v) } - -// Get can be used to get a label for the key from a label.Map. -func (k *UInt64) Get(lm label.Map) uint64 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *UInt64) From(t label.Label) uint64 { return t.Unpack64() } - -// Float32 represents a key -type Float32 struct { - name string - description string -} - -// NewFloat32 creates a new Key for float32 values. -func NewFloat32(name, description string) *Float32 { - return &Float32{name: name, description: description} -} - -func (k *Float32) Name() string { return k.name } -func (k *Float32) Description() string { return k.description } - -func (k *Float32) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendFloat(buf, float64(k.From(l)), 'E', -1, 32)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Float32) Of(v float32) label.Label { - return label.Of64(k, uint64(math.Float32bits(v))) -} - -// Get can be used to get a label for the key from a label.Map. -func (k *Float32) Get(lm label.Map) float32 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Float32) From(t label.Label) float32 { - return math.Float32frombits(uint32(t.Unpack64())) -} - -// Float64 represents a key -type Float64 struct { - name string - description string -} - -// NewFloat64 creates a new Key for int64 values. -func NewFloat64(name, description string) *Float64 { - return &Float64{name: name, description: description} -} - -func (k *Float64) Name() string { return k.name } -func (k *Float64) Description() string { return k.description } - -func (k *Float64) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendFloat(buf, k.From(l), 'E', -1, 64)) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Float64) Of(v float64) label.Label { - return label.Of64(k, math.Float64bits(v)) -} - -// Get can be used to get a label for the key from a label.Map. -func (k *Float64) Get(lm label.Map) float64 { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return 0 -} - -// From can be used to get a value from a Label. -func (k *Float64) From(t label.Label) float64 { - return math.Float64frombits(t.Unpack64()) -} - -// String represents a key -type String struct { - name string - description string -} - -// NewString creates a new Key for int64 values. -func NewString(name, description string) *String { - return &String{name: name, description: description} -} - -func (k *String) Name() string { return k.name } -func (k *String) Description() string { return k.description } - -func (k *String) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendQuote(buf, k.From(l))) -} - -// Of creates a new Label with this key and the supplied value. -func (k *String) Of(v string) label.Label { return label.OfString(k, v) } - -// Get can be used to get a label for the key from a label.Map. -func (k *String) Get(lm label.Map) string { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return "" -} - -// From can be used to get a value from a Label. -func (k *String) From(t label.Label) string { return t.UnpackString() } - -// Boolean represents a key -type Boolean struct { - name string - description string -} - -// NewBoolean creates a new Key for bool values. -func NewBoolean(name, description string) *Boolean { - return &Boolean{name: name, description: description} -} - -func (k *Boolean) Name() string { return k.name } -func (k *Boolean) Description() string { return k.description } - -func (k *Boolean) Format(w io.Writer, buf []byte, l label.Label) { - w.Write(strconv.AppendBool(buf, k.From(l))) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Boolean) Of(v bool) label.Label { - if v { - return label.Of64(k, 1) - } - return label.Of64(k, 0) -} - -// Get can be used to get a label for the key from a label.Map. -func (k *Boolean) Get(lm label.Map) bool { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return false -} - -// From can be used to get a value from a Label. -func (k *Boolean) From(t label.Label) bool { return t.Unpack64() > 0 } - -// Error represents a key -type Error struct { - name string - description string -} - -// NewError creates a new Key for int64 values. -func NewError(name, description string) *Error { - return &Error{name: name, description: description} -} - -func (k *Error) Name() string { return k.name } -func (k *Error) Description() string { return k.description } - -func (k *Error) Format(w io.Writer, buf []byte, l label.Label) { - io.WriteString(w, k.From(l).Error()) -} - -// Of creates a new Label with this key and the supplied value. -func (k *Error) Of(v error) label.Label { return label.OfValue(k, v) } - -// Get can be used to get a label for the key from a label.Map. -func (k *Error) Get(lm label.Map) error { - if t := lm.Find(k); t.Valid() { - return k.From(t) - } - return nil -} - -// From can be used to get a value from a Label. -func (k *Error) From(t label.Label) error { - err, _ := t.UnpackValue().(error) - return err -} diff --git a/vendor/golang.org/x/tools/internal/event/keys/standard.go b/vendor/golang.org/x/tools/internal/event/keys/standard.go deleted file mode 100644 index 7e958665..00000000 --- a/vendor/golang.org/x/tools/internal/event/keys/standard.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package keys - -var ( - // Msg is a key used to add message strings to label lists. - Msg = NewString("message", "a readable message") - // Label is a key used to indicate an event adds labels to the context. - Label = NewTag("label", "a label context marker") - // Start is used for things like traces that have a name. - Start = NewString("start", "span start") - // Metric is a key used to indicate an event records metrics. - End = NewTag("end", "a span end marker") - // Metric is a key used to indicate an event records metrics. - Detach = NewTag("detach", "a span detach marker") - // Err is a key used to add error values to label lists. - Err = NewError("error", "an error that occurred") - // Metric is a key used to indicate an event records metrics. - Metric = NewTag("metric", "a metric event marker") -) diff --git a/vendor/golang.org/x/tools/internal/event/keys/util.go b/vendor/golang.org/x/tools/internal/event/keys/util.go deleted file mode 100644 index c0e8e731..00000000 --- a/vendor/golang.org/x/tools/internal/event/keys/util.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package keys - -import ( - "sort" - "strings" -) - -// Join returns a canonical join of the keys in S: -// a sorted comma-separated string list. -func Join[S ~[]T, T ~string](s S) string { - strs := make([]string, 0, len(s)) - for _, v := range s { - strs = append(strs, string(v)) - } - sort.Strings(strs) - return strings.Join(strs, ",") -} diff --git a/vendor/golang.org/x/tools/internal/event/label/label.go b/vendor/golang.org/x/tools/internal/event/label/label.go deleted file mode 100644 index 0f526e1f..00000000 --- a/vendor/golang.org/x/tools/internal/event/label/label.go +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package label - -import ( - "fmt" - "io" - "reflect" - "unsafe" -) - -// Key is used as the identity of a Label. -// Keys are intended to be compared by pointer only, the name should be unique -// for communicating with external systems, but it is not required or enforced. -type Key interface { - // Name returns the key name. - Name() string - // Description returns a string that can be used to describe the value. - Description() string - - // Format is used in formatting to append the value of the label to the - // supplied buffer. - // The formatter may use the supplied buf as a scratch area to avoid - // allocations. - Format(w io.Writer, buf []byte, l Label) -} - -// Label holds a key and value pair. -// It is normally used when passing around lists of labels. -type Label struct { - key Key - packed uint64 - untyped interface{} -} - -// Map is the interface to a collection of Labels indexed by key. -type Map interface { - // Find returns the label that matches the supplied key. - Find(key Key) Label -} - -// List is the interface to something that provides an iterable -// list of labels. -// Iteration should start from 0 and continue until Valid returns false. -type List interface { - // Valid returns true if the index is within range for the list. - // It does not imply the label at that index will itself be valid. - Valid(index int) bool - // Label returns the label at the given index. - Label(index int) Label -} - -// list implements LabelList for a list of Labels. -type list struct { - labels []Label -} - -// filter wraps a LabelList filtering out specific labels. -type filter struct { - keys []Key - underlying List -} - -// listMap implements LabelMap for a simple list of labels. -type listMap struct { - labels []Label -} - -// mapChain implements LabelMap for a list of underlying LabelMap. -type mapChain struct { - maps []Map -} - -// OfValue creates a new label from the key and value. -// This method is for implementing new key types, label creation should -// normally be done with the Of method of the key. -func OfValue(k Key, value interface{}) Label { return Label{key: k, untyped: value} } - -// UnpackValue assumes the label was built using LabelOfValue and returns the value -// that was passed to that constructor. -// This method is for implementing new key types, for type safety normal -// access should be done with the From method of the key. -func (t Label) UnpackValue() interface{} { return t.untyped } - -// Of64 creates a new label from a key and a uint64. This is often -// used for non uint64 values that can be packed into a uint64. -// This method is for implementing new key types, label creation should -// normally be done with the Of method of the key. -func Of64(k Key, v uint64) Label { return Label{key: k, packed: v} } - -// Unpack64 assumes the label was built using LabelOf64 and returns the value that -// was passed to that constructor. -// This method is for implementing new key types, for type safety normal -// access should be done with the From method of the key. -func (t Label) Unpack64() uint64 { return t.packed } - -type stringptr unsafe.Pointer - -// OfString creates a new label from a key and a string. -// This method is for implementing new key types, label creation should -// normally be done with the Of method of the key. -func OfString(k Key, v string) Label { - hdr := (*reflect.StringHeader)(unsafe.Pointer(&v)) - return Label{ - key: k, - packed: uint64(hdr.Len), - untyped: stringptr(hdr.Data), - } -} - -// UnpackString assumes the label was built using LabelOfString and returns the -// value that was passed to that constructor. -// This method is for implementing new key types, for type safety normal -// access should be done with the From method of the key. -func (t Label) UnpackString() string { - var v string - hdr := (*reflect.StringHeader)(unsafe.Pointer(&v)) - hdr.Data = uintptr(t.untyped.(stringptr)) - hdr.Len = int(t.packed) - return v -} - -// Valid returns true if the Label is a valid one (it has a key). -func (t Label) Valid() bool { return t.key != nil } - -// Key returns the key of this Label. -func (t Label) Key() Key { return t.key } - -// Format is used for debug printing of labels. -func (t Label) Format(f fmt.State, r rune) { - if !t.Valid() { - io.WriteString(f, `nil`) - return - } - io.WriteString(f, t.Key().Name()) - io.WriteString(f, "=") - var buf [128]byte - t.Key().Format(f, buf[:0], t) -} - -func (l *list) Valid(index int) bool { - return index >= 0 && index < len(l.labels) -} - -func (l *list) Label(index int) Label { - return l.labels[index] -} - -func (f *filter) Valid(index int) bool { - return f.underlying.Valid(index) -} - -func (f *filter) Label(index int) Label { - l := f.underlying.Label(index) - for _, f := range f.keys { - if l.Key() == f { - return Label{} - } - } - return l -} - -func (lm listMap) Find(key Key) Label { - for _, l := range lm.labels { - if l.Key() == key { - return l - } - } - return Label{} -} - -func (c mapChain) Find(key Key) Label { - for _, src := range c.maps { - l := src.Find(key) - if l.Valid() { - return l - } - } - return Label{} -} - -var emptyList = &list{} - -func NewList(labels ...Label) List { - if len(labels) == 0 { - return emptyList - } - return &list{labels: labels} -} - -func Filter(l List, keys ...Key) List { - if len(keys) == 0 { - return l - } - return &filter{keys: keys, underlying: l} -} - -func NewMap(labels ...Label) Map { - return listMap{labels: labels} -} - -func MergeMaps(srcs ...Map) Map { - var nonNil []Map - for _, src := range srcs { - if src != nil { - nonNil = append(nonNil, src) - } - } - if len(nonNil) == 1 { - return nonNil[0] - } - return mapChain{maps: nonNil} -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go deleted file mode 100644 index d79a605e..00000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file contains the remaining vestiges of -// $GOROOT/src/go/internal/gcimporter/bimport.go. - -package gcimporter - -import ( - "fmt" - "go/token" - "go/types" - "sync" -) - -func errorf(format string, args ...interface{}) { - panic(fmt.Sprintf(format, args...)) -} - -const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go - -// Synthesize a token.Pos -type fakeFileSet struct { - fset *token.FileSet - files map[string]*fileInfo -} - -type fileInfo struct { - file *token.File - lastline int -} - -const maxlines = 64 * 1024 - -func (s *fakeFileSet) pos(file string, line, column int) token.Pos { - // TODO(mdempsky): Make use of column. - - // Since we don't know the set of needed file positions, we reserve maxlines - // positions per file. We delay calling token.File.SetLines until all - // positions have been calculated (by way of fakeFileSet.setLines), so that - // we can avoid setting unnecessary lines. See also golang/go#46586. - f := s.files[file] - if f == nil { - f = &fileInfo{file: s.fset.AddFile(file, -1, maxlines)} - s.files[file] = f - } - if line > maxlines { - line = 1 - } - if line > f.lastline { - f.lastline = line - } - - // Return a fake position assuming that f.file consists only of newlines. - return token.Pos(f.file.Base() + line - 1) -} - -func (s *fakeFileSet) setLines() { - fakeLinesOnce.Do(func() { - fakeLines = make([]int, maxlines) - for i := range fakeLines { - fakeLines[i] = i - } - }) - for _, f := range s.files { - f.file.SetLines(fakeLines[:f.lastline]) - } -} - -var ( - fakeLines []int - fakeLinesOnce sync.Once -) - -func chanDir(d int) types.ChanDir { - // tag values must match the constants in cmd/compile/internal/gc/go.go - switch d { - case 1 /* Crecv */ : - return types.RecvOnly - case 2 /* Csend */ : - return types.SendOnly - case 3 /* Cboth */ : - return types.SendRecv - default: - errorf("unexpected channel dir %d", d) - return 0 - } -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go b/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go deleted file mode 100644 index 5662a311..00000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go +++ /dev/null @@ -1,421 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file should be kept in sync with $GOROOT/src/internal/exportdata/exportdata.go. -// This file also additionally implements FindExportData for gcexportdata.NewReader. - -package gcimporter - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "go/build" - "io" - "os" - "os/exec" - "path/filepath" - "strings" - "sync" -) - -// FindExportData positions the reader r at the beginning of the -// export data section of an underlying cmd/compile created archive -// file by reading from it. The reader must be positioned at the -// start of the file before calling this function. -// This returns the length of the export data in bytes. -// -// This function is needed by [gcexportdata.Read], which must -// accept inputs produced by the last two releases of cmd/compile, -// plus tip. -func FindExportData(r *bufio.Reader) (size int64, err error) { - arsize, err := FindPackageDefinition(r) - if err != nil { - return - } - size = int64(arsize) - - objapi, headers, err := ReadObjectHeaders(r) - if err != nil { - return - } - size -= int64(len(objapi)) - for _, h := range headers { - size -= int64(len(h)) - } - - // Check for the binary export data section header "$$B\n". - // TODO(taking): Unify with ReadExportDataHeader so that it stops at the 'u' instead of reading - line, err := r.ReadSlice('\n') - if err != nil { - return - } - hdr := string(line) - if hdr != "$$B\n" { - err = fmt.Errorf("unknown export data header: %q", hdr) - return - } - size -= int64(len(hdr)) - - // For files with a binary export data header "$$B\n", - // these are always terminated by an end-of-section marker "\n$$\n". - // So the last bytes must always be this constant. - // - // The end-of-section marker is not a part of the export data itself. - // Do not include these in size. - // - // It would be nice to have sanity check that the final bytes after - // the export data are indeed the end-of-section marker. The split - // of gcexportdata.NewReader and gcexportdata.Read make checking this - // ugly so gcimporter gives up enforcing this. The compiler and go/types - // importer do enforce this, which seems good enough. - const endofsection = "\n$$\n" - size -= int64(len(endofsection)) - - if size < 0 { - err = fmt.Errorf("invalid size (%d) in the archive file: %d bytes remain without section headers (recompile package)", arsize, size) - return - } - - return -} - -// ReadUnified reads the contents of the unified export data from a reader r -// that contains the contents of a GC-created archive file. -// -// On success, the reader will be positioned after the end-of-section marker "\n$$\n". -// -// Supported GC-created archive files have 4 layers of nesting: -// - An archive file containing a package definition file. -// - The package definition file contains headers followed by a data section. -// Headers are lines (≤ 4kb) that do not start with "$$". -// - The data section starts with "$$B\n" followed by export data followed -// by an end of section marker "\n$$\n". (The section start "$$\n" is no -// longer supported.) -// - The export data starts with a format byte ('u') followed by the in -// the given format. (See ReadExportDataHeader for older formats.) -// -// Putting this together, the bytes in a GC-created archive files are expected -// to look like the following. -// See cmd/internal/archive for more details on ar file headers. -// -// | \n | ar file signature -// | __.PKGDEF...size...\n | ar header for __.PKGDEF including size. -// | go object <...>\n | objabi header -// | \n | other headers such as build id -// | $$B\n | binary format marker -// | u\n | unified export -// | $$\n | end-of-section marker -// | [optional padding] | padding byte (0x0A) if size is odd -// | [ar file header] | other ar files -// | [ar file data] | -func ReadUnified(r *bufio.Reader) (data []byte, err error) { - // We historically guaranteed headers at the default buffer size (4096) work. - // This ensures we can use ReadSlice throughout. - const minBufferSize = 4096 - r = bufio.NewReaderSize(r, minBufferSize) - - size, err := FindPackageDefinition(r) - if err != nil { - return - } - n := size - - objapi, headers, err := ReadObjectHeaders(r) - if err != nil { - return - } - n -= len(objapi) - for _, h := range headers { - n -= len(h) - } - - hdrlen, err := ReadExportDataHeader(r) - if err != nil { - return - } - n -= hdrlen - - // size also includes the end of section marker. Remove that many bytes from the end. - const marker = "\n$$\n" - n -= len(marker) - - if n < 0 { - err = fmt.Errorf("invalid size (%d) in the archive file: %d bytes remain without section headers (recompile package)", size, n) - return - } - - // Read n bytes from buf. - data = make([]byte, n) - _, err = io.ReadFull(r, data) - if err != nil { - return - } - - // Check for marker at the end. - var suffix [len(marker)]byte - _, err = io.ReadFull(r, suffix[:]) - if err != nil { - return - } - if s := string(suffix[:]); s != marker { - err = fmt.Errorf("read %q instead of end-of-section marker (%q)", s, marker) - return - } - - return -} - -// FindPackageDefinition positions the reader r at the beginning of a package -// definition file ("__.PKGDEF") within a GC-created archive by reading -// from it, and returns the size of the package definition file in the archive. -// -// The reader must be positioned at the start of the archive file before calling -// this function, and "__.PKGDEF" is assumed to be the first file in the archive. -// -// See cmd/internal/archive for details on the archive format. -func FindPackageDefinition(r *bufio.Reader) (size int, err error) { - // Uses ReadSlice to limit risk of malformed inputs. - - // Read first line to make sure this is an object file. - line, err := r.ReadSlice('\n') - if err != nil { - err = fmt.Errorf("can't find export data (%v)", err) - return - } - - // Is the first line an archive file signature? - if string(line) != "!\n" { - err = fmt.Errorf("not the start of an archive file (%q)", line) - return - } - - // package export block should be first - size = readArchiveHeader(r, "__.PKGDEF") - if size <= 0 { - err = fmt.Errorf("not a package file") - return - } - - return -} - -// ReadObjectHeaders reads object headers from the reader. Object headers are -// lines that do not start with an end-of-section marker "$$". The first header -// is the objabi header. On success, the reader will be positioned at the beginning -// of the end-of-section marker. -// -// It returns an error if any header does not fit in r.Size() bytes. -func ReadObjectHeaders(r *bufio.Reader) (objapi string, headers []string, err error) { - // line is a temporary buffer for headers. - // Use bounded reads (ReadSlice, Peek) to limit risk of malformed inputs. - var line []byte - - // objapi header should be the first line - if line, err = r.ReadSlice('\n'); err != nil { - err = fmt.Errorf("can't find export data (%v)", err) - return - } - objapi = string(line) - - // objapi header begins with "go object ". - if !strings.HasPrefix(objapi, "go object ") { - err = fmt.Errorf("not a go object file: %s", objapi) - return - } - - // process remaining object header lines - for { - // check for an end of section marker "$$" - line, err = r.Peek(2) - if err != nil { - return - } - if string(line) == "$$" { - return // stop - } - - // read next header - line, err = r.ReadSlice('\n') - if err != nil { - return - } - headers = append(headers, string(line)) - } -} - -// ReadExportDataHeader reads the export data header and format from r. -// It returns the number of bytes read, or an error if the format is no longer -// supported or it failed to read. -// -// The only currently supported format is binary export data in the -// unified export format. -func ReadExportDataHeader(r *bufio.Reader) (n int, err error) { - // Read export data header. - line, err := r.ReadSlice('\n') - if err != nil { - return - } - - hdr := string(line) - switch hdr { - case "$$\n": - err = fmt.Errorf("old textual export format no longer supported (recompile package)") - return - - case "$$B\n": - var format byte - format, err = r.ReadByte() - if err != nil { - return - } - // The unified export format starts with a 'u'. - switch format { - case 'u': - default: - // Older no longer supported export formats include: - // indexed export format which started with an 'i'; and - // the older binary export format which started with a 'c', - // 'd', or 'v' (from "version"). - err = fmt.Errorf("binary export format %q is no longer supported (recompile package)", format) - return - } - - default: - err = fmt.Errorf("unknown export data header: %q", hdr) - return - } - - n = len(hdr) + 1 // + 1 is for 'u' - return -} - -// FindPkg returns the filename and unique package id for an import -// path based on package information provided by build.Import (using -// the build.Default build.Context). A relative srcDir is interpreted -// relative to the current working directory. -// -// FindPkg is only used in tests within x/tools. -func FindPkg(path, srcDir string) (filename, id string, err error) { - // TODO(taking): Move internal/exportdata.FindPkg into its own file, - // and then this copy into a _test package. - if path == "" { - return "", "", errors.New("path is empty") - } - - var noext string - switch { - default: - // "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x" - // Don't require the source files to be present. - if abs, err := filepath.Abs(srcDir); err == nil { // see issue 14282 - srcDir = abs - } - var bp *build.Package - bp, err = build.Import(path, srcDir, build.FindOnly|build.AllowBinary) - if bp.PkgObj == "" { - if bp.Goroot && bp.Dir != "" { - filename, err = lookupGorootExport(bp.Dir) - if err == nil { - _, err = os.Stat(filename) - } - if err == nil { - return filename, bp.ImportPath, nil - } - } - goto notfound - } else { - noext = strings.TrimSuffix(bp.PkgObj, ".a") - } - id = bp.ImportPath - - case build.IsLocalImport(path): - // "./x" -> "/this/directory/x.ext", "/this/directory/x" - noext = filepath.Join(srcDir, path) - id = noext - - case filepath.IsAbs(path): - // for completeness only - go/build.Import - // does not support absolute imports - // "/x" -> "/x.ext", "/x" - noext = path - id = path - } - - if false { // for debugging - if path != id { - fmt.Printf("%s -> %s\n", path, id) - } - } - - // try extensions - for _, ext := range pkgExts { - filename = noext + ext - f, statErr := os.Stat(filename) - if statErr == nil && !f.IsDir() { - return filename, id, nil - } - if err == nil { - err = statErr - } - } - -notfound: - if err == nil { - return "", path, fmt.Errorf("can't find import: %q", path) - } - return "", path, fmt.Errorf("can't find import: %q: %w", path, err) -} - -var pkgExts = [...]string{".a", ".o"} // a file from the build cache will have no extension - -var exportMap sync.Map // package dir → func() (string, error) - -// lookupGorootExport returns the location of the export data -// (normally found in the build cache, but located in GOROOT/pkg -// in prior Go releases) for the package located in pkgDir. -// -// (We use the package's directory instead of its import path -// mainly to simplify handling of the packages in src/vendor -// and cmd/vendor.) -// -// lookupGorootExport is only used in tests within x/tools. -func lookupGorootExport(pkgDir string) (string, error) { - f, ok := exportMap.Load(pkgDir) - if !ok { - var ( - listOnce sync.Once - exportPath string - err error - ) - f, _ = exportMap.LoadOrStore(pkgDir, func() (string, error) { - listOnce.Do(func() { - cmd := exec.Command(filepath.Join(build.Default.GOROOT, "bin", "go"), "list", "-export", "-f", "{{.Export}}", pkgDir) - cmd.Dir = build.Default.GOROOT - cmd.Env = append(os.Environ(), "PWD="+cmd.Dir, "GOROOT="+build.Default.GOROOT) - var output []byte - output, err = cmd.Output() - if err != nil { - if ee, ok := err.(*exec.ExitError); ok && len(ee.Stderr) > 0 { - err = errors.New(string(ee.Stderr)) - } - return - } - - exports := strings.Split(string(bytes.TrimSpace(output)), "\n") - if len(exports) != 1 { - err = fmt.Errorf("go list reported %d exports; expected 1", len(exports)) - return - } - - exportPath = exports[0] - }) - - return exportPath, err - }) - } - - return f.(func() (string, error))() -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go deleted file mode 100644 index 3dbd21d1..00000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file is a reduced copy of $GOROOT/src/go/internal/gcimporter/gcimporter.go. - -// Package gcimporter provides various functions for reading -// gc-generated object files that can be used to implement the -// Importer interface defined by the Go 1.5 standard library package. -// -// The encoding is deterministic: if the encoder is applied twice to -// the same types.Package data structure, both encodings are equal. -// This property may be important to avoid spurious changes in -// applications such as build systems. -// -// However, the encoder is not necessarily idempotent. Importing an -// exported package may yield a types.Package that, while it -// represents the same set of Go types as the original, may differ in -// the details of its internal representation. Because of these -// differences, re-encoding the imported package may yield a -// different, but equally valid, encoding of the package. -package gcimporter // import "golang.org/x/tools/internal/gcimporter" - -import ( - "bufio" - "fmt" - "go/token" - "go/types" - "io" - "os" -) - -const ( - // Enable debug during development: it adds some additional checks, and - // prevents errors from being recovered. - debug = false - - // If trace is set, debugging output is printed to std out. - trace = false -) - -// Import imports a gc-generated package given its import path and srcDir, adds -// the corresponding package object to the packages map, and returns the object. -// The packages map must contain all packages already imported. -// -// Import is only used in tests. -func Import(fset *token.FileSet, packages map[string]*types.Package, path, srcDir string, lookup func(path string) (io.ReadCloser, error)) (pkg *types.Package, err error) { - var rc io.ReadCloser - var id string - if lookup != nil { - // With custom lookup specified, assume that caller has - // converted path to a canonical import path for use in the map. - if path == "unsafe" { - return types.Unsafe, nil - } - id = path - - // No need to re-import if the package was imported completely before. - if pkg = packages[id]; pkg != nil && pkg.Complete() { - return - } - f, err := lookup(path) - if err != nil { - return nil, err - } - rc = f - } else { - var filename string - filename, id, err = FindPkg(path, srcDir) - if filename == "" { - if path == "unsafe" { - return types.Unsafe, nil - } - return nil, err - } - - // no need to re-import if the package was imported completely before - if pkg = packages[id]; pkg != nil && pkg.Complete() { - return - } - - // open file - f, err := os.Open(filename) - if err != nil { - return nil, err - } - defer func() { - if err != nil { - // add file name to error - err = fmt.Errorf("%s: %v", filename, err) - } - }() - rc = f - } - defer rc.Close() - - buf := bufio.NewReader(rc) - data, err := ReadUnified(buf) - if err != nil { - err = fmt.Errorf("import %q: %v", path, err) - return - } - - // unified: emitted by cmd/compile since go1.20. - _, pkg, err = UImportData(fset, packages, data, id) - - return -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go deleted file mode 100644 index 7dfc31a3..00000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ /dev/null @@ -1,1588 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Indexed package export. -// -// The indexed export data format is an evolution of the previous -// binary export data format. Its chief contribution is introducing an -// index table, which allows efficient random access of individual -// declarations and inline function bodies. In turn, this allows -// avoiding unnecessary work for compilation units that import large -// packages. -// -// -// The top-level data format is structured as: -// -// Header struct { -// Tag byte // 'i' -// Version uvarint -// StringSize uvarint -// DataSize uvarint -// } -// -// Strings [StringSize]byte -// Data [DataSize]byte -// -// MainIndex []struct{ -// PkgPath stringOff -// PkgName stringOff -// PkgHeight uvarint -// -// Decls []struct{ -// Name stringOff -// Offset declOff -// } -// } -// -// Fingerprint [8]byte -// -// uvarint means a uint64 written out using uvarint encoding. -// -// []T means a uvarint followed by that many T objects. In other -// words: -// -// Len uvarint -// Elems [Len]T -// -// stringOff means a uvarint that indicates an offset within the -// Strings section. At that offset is another uvarint, followed by -// that many bytes, which form the string value. -// -// declOff means a uvarint that indicates an offset within the Data -// section where the associated declaration can be found. -// -// -// There are five kinds of declarations, distinguished by their first -// byte: -// -// type Var struct { -// Tag byte // 'V' -// Pos Pos -// Type typeOff -// } -// -// type Func struct { -// Tag byte // 'F' or 'G' -// Pos Pos -// TypeParams []typeOff // only present if Tag == 'G' -// Signature Signature -// } -// -// type Const struct { -// Tag byte // 'C' -// Pos Pos -// Value Value -// } -// -// type Type struct { -// Tag byte // 'T' or 'U' -// Pos Pos -// TypeParams []typeOff // only present if Tag == 'U' -// Underlying typeOff -// -// Methods []struct{ // omitted if Underlying is an interface type -// Pos Pos -// Name stringOff -// Recv Param -// Signature Signature -// } -// } -// -// type Alias struct { -// Tag byte // 'A' or 'B' -// Pos Pos -// TypeParams []typeOff // only present if Tag == 'B' -// Type typeOff -// } -// -// // "Automatic" declaration of each typeparam -// type TypeParam struct { -// Tag byte // 'P' -// Pos Pos -// Implicit bool -// Constraint typeOff -// } -// -// typeOff means a uvarint that either indicates a predeclared type, -// or an offset into the Data section. If the uvarint is less than -// predeclReserved, then it indicates the index into the predeclared -// types list (see predeclared in bexport.go for order). Otherwise, -// subtracting predeclReserved yields the offset of a type descriptor. -// -// Value means a type, kind, and type-specific value. See -// (*exportWriter).value for details. -// -// -// There are twelve kinds of type descriptors, distinguished by an itag: -// -// type DefinedType struct { -// Tag itag // definedType -// Name stringOff -// PkgPath stringOff -// } -// -// type PointerType struct { -// Tag itag // pointerType -// Elem typeOff -// } -// -// type SliceType struct { -// Tag itag // sliceType -// Elem typeOff -// } -// -// type ArrayType struct { -// Tag itag // arrayType -// Len uint64 -// Elem typeOff -// } -// -// type ChanType struct { -// Tag itag // chanType -// Dir uint64 // 1 RecvOnly; 2 SendOnly; 3 SendRecv -// Elem typeOff -// } -// -// type MapType struct { -// Tag itag // mapType -// Key typeOff -// Elem typeOff -// } -// -// type FuncType struct { -// Tag itag // signatureType -// PkgPath stringOff -// Signature Signature -// } -// -// type StructType struct { -// Tag itag // structType -// PkgPath stringOff -// Fields []struct { -// Pos Pos -// Name stringOff -// Type typeOff -// Embedded bool -// Note stringOff -// } -// } -// -// type InterfaceType struct { -// Tag itag // interfaceType -// PkgPath stringOff -// Embeddeds []struct { -// Pos Pos -// Type typeOff -// } -// Methods []struct { -// Pos Pos -// Name stringOff -// Signature Signature -// } -// } -// -// // Reference to a type param declaration -// type TypeParamType struct { -// Tag itag // typeParamType -// Name stringOff -// PkgPath stringOff -// } -// -// // Instantiation of a generic type (like List[T2] or List[int]) -// type InstanceType struct { -// Tag itag // instanceType -// Pos pos -// TypeArgs []typeOff -// BaseType typeOff -// } -// -// type UnionType struct { -// Tag itag // interfaceType -// Terms []struct { -// tilde bool -// Type typeOff -// } -// } -// -// -// -// type Signature struct { -// Params []Param -// Results []Param -// Variadic bool // omitted if Results is empty -// } -// -// type Param struct { -// Pos Pos -// Name stringOff -// Type typOff -// } -// -// -// Pos encodes a file:line:column triple, incorporating a simple delta -// encoding scheme within a data object. See exportWriter.pos for -// details. - -package gcimporter - -import ( - "bytes" - "encoding/binary" - "fmt" - "go/constant" - "go/token" - "go/types" - "io" - "math/big" - "reflect" - "sort" - "strconv" - "strings" - - "golang.org/x/tools/go/types/objectpath" - "golang.org/x/tools/internal/aliases" -) - -// IExportShallow encodes "shallow" export data for the specified package. -// -// For types, we use "shallow" export data. Historically, the Go -// compiler always produced a summary of the types for a given package -// that included types from other packages that it indirectly -// referenced: "deep" export data. This had the advantage that the -// compiler (and analogous tools such as gopls) need only load one -// file per direct import. However, it meant that the files tended to -// get larger based on the level of the package in the import -// graph. For example, higher-level packages in the kubernetes module -// have over 1MB of "deep" export data, even when they have almost no -// content of their own, merely because they mention a major type that -// references many others. In pathological cases the export data was -// 300x larger than the source for a package due to this quadratic -// growth. -// -// "Shallow" export data means that the serialized types describe only -// a single package. If those types mention types from other packages, -// the type checker may need to request additional packages beyond -// just the direct imports. Type information for the entire transitive -// closure of imports is provided (lazily) by the DAG. -// -// No promises are made about the encoding other than that it can be decoded by -// the same version of IIExportShallow. If you plan to save export data in the -// file system, be sure to include a cryptographic digest of the executable in -// the key to avoid version skew. -// -// If the provided reportf func is non-nil, it will be used for reporting bugs -// encountered during export. -// TODO(rfindley): remove reportf when we are confident enough in the new -// objectpath encoding. -func IExportShallow(fset *token.FileSet, pkg *types.Package, reportf ReportFunc) ([]byte, error) { - // In principle this operation can only fail if out.Write fails, - // but that's impossible for bytes.Buffer---and as a matter of - // fact iexportCommon doesn't even check for I/O errors. - // TODO(adonovan): handle I/O errors properly. - // TODO(adonovan): use byte slices throughout, avoiding copying. - const bundle, shallow = false, true - var out bytes.Buffer - err := iexportCommon(&out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) - return out.Bytes(), err -} - -// IImportShallow decodes "shallow" types.Package data encoded by -// [IExportShallow] in the same executable. This function cannot import data -// from cmd/compile or gcexportdata.Write. -// -// The importer calls getPackages to obtain package symbols for all -// packages mentioned in the export data, including the one being -// decoded. -// -// If the provided reportf func is non-nil, it will be used for reporting bugs -// encountered during import. -// TODO(rfindley): remove reportf when we are confident enough in the new -// objectpath encoding. -func IImportShallow(fset *token.FileSet, getPackages GetPackagesFunc, data []byte, path string, reportf ReportFunc) (*types.Package, error) { - const bundle = false - const shallow = true - pkgs, err := iimportCommon(fset, getPackages, data, bundle, path, shallow, reportf) - if err != nil { - return nil, err - } - return pkgs[0], nil -} - -// ReportFunc is the type of a function used to report formatted bugs. -type ReportFunc = func(string, ...interface{}) - -// Current bundled export format version. Increase with each format change. -// 0: initial implementation -const bundleVersion = 0 - -// IExportData writes indexed export data for pkg to out. -// -// If no file set is provided, position info will be missing. -// The package path of the top-level package will not be recorded, -// so that calls to IImportData can override with a provided package path. -func IExportData(out io.Writer, fset *token.FileSet, pkg *types.Package) error { - const bundle, shallow = false, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) -} - -// IExportBundle writes an indexed export bundle for pkgs to out. -func IExportBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { - const bundle, shallow = true, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, pkgs) -} - -func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, version int, pkgs []*types.Package) (err error) { - if !debug { - defer func() { - if e := recover(); e != nil { - if ierr, ok := e.(internalError); ok { - err = ierr - return - } - // Not an internal error; panic again. - panic(e) - } - }() - } - - p := iexporter{ - fset: fset, - version: version, - shallow: shallow, - allPkgs: map[*types.Package]bool{}, - stringIndex: map[string]uint64{}, - declIndex: map[types.Object]uint64{}, - tparamNames: map[types.Object]string{}, - typIndex: map[types.Type]uint64{}, - } - if !bundle { - p.localpkg = pkgs[0] - } - - for i, pt := range predeclared() { - p.typIndex[pt] = uint64(i) - } - if len(p.typIndex) > predeclReserved { - panic(internalErrorf("too many predeclared types: %d > %d", len(p.typIndex), predeclReserved)) - } - - // Initialize work queue with exported declarations. - for _, pkg := range pkgs { - scope := pkg.Scope() - for _, name := range scope.Names() { - if token.IsExported(name) { - p.pushDecl(scope.Lookup(name)) - } - } - - if bundle { - // Ensure pkg and its imports are included in the index. - p.allPkgs[pkg] = true - for _, imp := range pkg.Imports() { - p.allPkgs[imp] = true - } - } - } - - // Loop until no more work. - for !p.declTodo.empty() { - p.doDecl(p.declTodo.popHead()) - } - - // Produce index of offset of each file record in files. - var files intWriter - var fileOffset []uint64 // fileOffset[i] is offset in files of file encoded as i - if p.shallow { - fileOffset = make([]uint64, len(p.fileInfos)) - for i, info := range p.fileInfos { - fileOffset[i] = uint64(files.Len()) - p.encodeFile(&files, info.file, info.needed) - } - } - - // Append indices to data0 section. - dataLen := uint64(p.data0.Len()) - w := p.newWriter() - w.writeIndex(p.declIndex) - - if bundle { - w.uint64(uint64(len(pkgs))) - for _, pkg := range pkgs { - w.pkg(pkg) - imps := pkg.Imports() - w.uint64(uint64(len(imps))) - for _, imp := range imps { - w.pkg(imp) - } - } - } - w.flush() - - // Assemble header. - var hdr intWriter - if bundle { - hdr.uint64(bundleVersion) - } - hdr.uint64(uint64(p.version)) - hdr.uint64(uint64(p.strings.Len())) - if p.shallow { - hdr.uint64(uint64(files.Len())) - hdr.uint64(uint64(len(fileOffset))) - for _, offset := range fileOffset { - hdr.uint64(offset) - } - } - hdr.uint64(dataLen) - - // Flush output. - io.Copy(out, &hdr) - io.Copy(out, &p.strings) - if p.shallow { - io.Copy(out, &files) - } - io.Copy(out, &p.data0) - - return nil -} - -// encodeFile writes to w a representation of the file sufficient to -// faithfully restore position information about all needed offsets. -// Mutates the needed array. -func (p *iexporter) encodeFile(w *intWriter, file *token.File, needed []uint64) { - _ = needed[0] // precondition: needed is non-empty - - w.uint64(p.stringOff(file.Name())) - - size := uint64(file.Size()) - w.uint64(size) - - // Sort the set of needed offsets. Duplicates are harmless. - sort.Slice(needed, func(i, j int) bool { return needed[i] < needed[j] }) - - lines := file.Lines() // byte offset of each line start - w.uint64(uint64(len(lines))) - - // Rather than record the entire array of line start offsets, - // we save only a sparse list of (index, offset) pairs for - // the start of each line that contains a needed position. - var sparse [][2]int // (index, offset) pairs -outer: - for i, lineStart := range lines { - lineEnd := size - if i < len(lines)-1 { - lineEnd = uint64(lines[i+1]) - } - // Does this line contains a needed offset? - if needed[0] < lineEnd { - sparse = append(sparse, [2]int{i, lineStart}) - for needed[0] < lineEnd { - needed = needed[1:] - if len(needed) == 0 { - break outer - } - } - } - } - - // Delta-encode the columns. - w.uint64(uint64(len(sparse))) - var prev [2]int - for _, pair := range sparse { - w.uint64(uint64(pair[0] - prev[0])) - w.uint64(uint64(pair[1] - prev[1])) - prev = pair - } -} - -// writeIndex writes out an object index. mainIndex indicates whether -// we're writing out the main index, which is also read by -// non-compiler tools and includes a complete package description -// (i.e., name and height). -func (w *exportWriter) writeIndex(index map[types.Object]uint64) { - type pkgObj struct { - obj types.Object - name string // qualified name; differs from obj.Name for type params - } - // Build a map from packages to objects from that package. - pkgObjs := map[*types.Package][]pkgObj{} - - // For the main index, make sure to include every package that - // we reference, even if we're not exporting (or reexporting) - // any symbols from it. - if w.p.localpkg != nil { - pkgObjs[w.p.localpkg] = nil - } - for pkg := range w.p.allPkgs { - pkgObjs[pkg] = nil - } - - for obj := range index { - name := w.p.exportName(obj) - pkgObjs[obj.Pkg()] = append(pkgObjs[obj.Pkg()], pkgObj{obj, name}) - } - - var pkgs []*types.Package - for pkg, objs := range pkgObjs { - pkgs = append(pkgs, pkg) - - sort.Slice(objs, func(i, j int) bool { - return objs[i].name < objs[j].name - }) - } - - sort.Slice(pkgs, func(i, j int) bool { - return w.exportPath(pkgs[i]) < w.exportPath(pkgs[j]) - }) - - w.uint64(uint64(len(pkgs))) - for _, pkg := range pkgs { - w.string(w.exportPath(pkg)) - w.string(pkg.Name()) - w.uint64(uint64(0)) // package height is not needed for go/types - - objs := pkgObjs[pkg] - w.uint64(uint64(len(objs))) - for _, obj := range objs { - w.string(obj.name) - w.uint64(index[obj.obj]) - } - } -} - -// exportName returns the 'exported' name of an object. It differs from -// obj.Name() only for type parameters (see tparamExportName for details). -func (p *iexporter) exportName(obj types.Object) (res string) { - if name := p.tparamNames[obj]; name != "" { - return name - } - return obj.Name() -} - -type iexporter struct { - fset *token.FileSet - out *bytes.Buffer - version int - - shallow bool // don't put types from other packages in the index - objEncoder *objectpath.Encoder // encodes objects from other packages in shallow mode; lazily allocated - localpkg *types.Package // (nil in bundle mode) - - // allPkgs tracks all packages that have been referenced by - // the export data, so we can ensure to include them in the - // main index. - allPkgs map[*types.Package]bool - - declTodo objQueue - - strings intWriter - stringIndex map[string]uint64 - - // In shallow mode, object positions are encoded as (file, offset). - // Each file is recorded as a line-number table. - // Only the lines of needed positions are saved faithfully. - fileInfo map[*token.File]uint64 // value is index in fileInfos - fileInfos []*filePositions - - data0 intWriter - declIndex map[types.Object]uint64 - tparamNames map[types.Object]string // typeparam->exported name - typIndex map[types.Type]uint64 - - indent int // for tracing support -} - -type filePositions struct { - file *token.File - needed []uint64 // unordered list of needed file offsets -} - -func (p *iexporter) trace(format string, args ...interface{}) { - if !trace { - // Call sites should also be guarded, but having this check here allows - // easily enabling/disabling debug trace statements. - return - } - fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) -} - -// objectpathEncoder returns the lazily allocated objectpath.Encoder to use -// when encoding objects in other packages during shallow export. -// -// Using a shared Encoder amortizes some of cost of objectpath search. -func (p *iexporter) objectpathEncoder() *objectpath.Encoder { - if p.objEncoder == nil { - p.objEncoder = new(objectpath.Encoder) - } - return p.objEncoder -} - -// stringOff returns the offset of s within the string section. -// If not already present, it's added to the end. -func (p *iexporter) stringOff(s string) uint64 { - off, ok := p.stringIndex[s] - if !ok { - off = uint64(p.strings.Len()) - p.stringIndex[s] = off - - p.strings.uint64(uint64(len(s))) - p.strings.WriteString(s) - } - return off -} - -// fileIndexAndOffset returns the index of the token.File and the byte offset of pos within it. -func (p *iexporter) fileIndexAndOffset(file *token.File, pos token.Pos) (uint64, uint64) { - index, ok := p.fileInfo[file] - if !ok { - index = uint64(len(p.fileInfo)) - p.fileInfos = append(p.fileInfos, &filePositions{file: file}) - if p.fileInfo == nil { - p.fileInfo = make(map[*token.File]uint64) - } - p.fileInfo[file] = index - } - // Record each needed offset. - info := p.fileInfos[index] - offset := uint64(file.Offset(pos)) - info.needed = append(info.needed, offset) - - return index, offset -} - -// pushDecl adds n to the declaration work queue, if not already present. -func (p *iexporter) pushDecl(obj types.Object) { - // Package unsafe is known to the compiler and predeclared. - // Caller should not ask us to do export it. - if obj.Pkg() == types.Unsafe { - panic("cannot export package unsafe") - } - - // Shallow export data: don't index decls from other packages. - if p.shallow && obj.Pkg() != p.localpkg { - return - } - - if _, ok := p.declIndex[obj]; ok { - return - } - - p.declIndex[obj] = ^uint64(0) // mark obj present in work queue - p.declTodo.pushTail(obj) -} - -// exportWriter handles writing out individual data section chunks. -type exportWriter struct { - p *iexporter - - data intWriter - prevFile string - prevLine int64 - prevColumn int64 -} - -func (w *exportWriter) exportPath(pkg *types.Package) string { - if pkg == w.p.localpkg { - return "" - } - return pkg.Path() -} - -func (p *iexporter) doDecl(obj types.Object) { - if trace { - p.trace("exporting decl %v (%T)", obj, obj) - p.indent++ - defer func() { - p.indent-- - p.trace("=> %s", obj) - }() - } - w := p.newWriter() - - switch obj := obj.(type) { - case *types.Var: - w.tag(varTag) - w.pos(obj.Pos()) - w.typ(obj.Type(), obj.Pkg()) - - case *types.Func: - sig, _ := obj.Type().(*types.Signature) - if sig.Recv() != nil { - // We shouldn't see methods in the package scope, - // but the type checker may repair "func () F() {}" - // to "func (Invalid) F()" and then treat it like "func F()", - // so allow that. See golang/go#57729. - if sig.Recv().Type() != types.Typ[types.Invalid] { - panic(internalErrorf("unexpected method: %v", sig)) - } - } - - // Function. - if sig.TypeParams().Len() == 0 { - w.tag(funcTag) - } else { - w.tag(genericFuncTag) - } - w.pos(obj.Pos()) - // The tparam list of the function type is the declaration of the type - // params. So, write out the type params right now. Then those type params - // will be referenced via their type offset (via typOff) in all other - // places in the signature and function where they are used. - // - // While importing the type parameters, tparamList computes and records - // their export name, so that it can be later used when writing the index. - if tparams := sig.TypeParams(); tparams.Len() > 0 { - w.tparamList(obj.Name(), tparams, obj.Pkg()) - } - w.signature(sig) - - case *types.Const: - w.tag(constTag) - w.pos(obj.Pos()) - w.value(obj.Type(), obj.Val()) - - case *types.TypeName: - t := obj.Type() - - if tparam, ok := types.Unalias(t).(*types.TypeParam); ok { - w.tag(typeParamTag) - w.pos(obj.Pos()) - constraint := tparam.Constraint() - if p.version >= iexportVersionGo1_18 { - implicit := false - if iface, _ := types.Unalias(constraint).(*types.Interface); iface != nil { - implicit = iface.IsImplicit() - } - w.bool(implicit) - } - w.typ(constraint, obj.Pkg()) - break - } - - if obj.IsAlias() { - alias, materialized := t.(*types.Alias) // may fail when aliases are not enabled - - var tparams *types.TypeParamList - if materialized { - tparams = aliases.TypeParams(alias) - } - if tparams.Len() == 0 { - w.tag(aliasTag) - } else { - w.tag(genericAliasTag) - } - w.pos(obj.Pos()) - if tparams.Len() > 0 { - w.tparamList(obj.Name(), tparams, obj.Pkg()) - } - if materialized { - // Preserve materialized aliases, - // even of non-exported types. - t = aliases.Rhs(alias) - } - w.typ(t, obj.Pkg()) - break - } - - // Defined type. - named, ok := t.(*types.Named) - if !ok { - panic(internalErrorf("%s is not a defined type", t)) - } - - if named.TypeParams().Len() == 0 { - w.tag(typeTag) - } else { - w.tag(genericTypeTag) - } - w.pos(obj.Pos()) - - if named.TypeParams().Len() > 0 { - // While importing the type parameters, tparamList computes and records - // their export name, so that it can be later used when writing the index. - w.tparamList(obj.Name(), named.TypeParams(), obj.Pkg()) - } - - underlying := named.Underlying() - w.typ(underlying, obj.Pkg()) - - if types.IsInterface(t) { - break - } - - n := named.NumMethods() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - m := named.Method(i) - w.pos(m.Pos()) - w.string(m.Name()) - sig, _ := m.Type().(*types.Signature) - - // Receiver type parameters are type arguments of the receiver type, so - // their name must be qualified before exporting recv. - if rparams := sig.RecvTypeParams(); rparams.Len() > 0 { - prefix := obj.Name() + "." + m.Name() - for i := 0; i < rparams.Len(); i++ { - rparam := rparams.At(i) - name := tparamExportName(prefix, rparam) - w.p.tparamNames[rparam.Obj()] = name - } - } - w.param(sig.Recv()) - w.signature(sig) - } - - default: - panic(internalErrorf("unexpected object: %v", obj)) - } - - p.declIndex[obj] = w.flush() -} - -func (w *exportWriter) tag(tag byte) { - w.data.WriteByte(tag) -} - -func (w *exportWriter) pos(pos token.Pos) { - if w.p.shallow { - w.posV2(pos) - } else if w.p.version >= iexportVersionPosCol { - w.posV1(pos) - } else { - w.posV0(pos) - } -} - -// posV2 encoding (used only in shallow mode) records positions as -// (file, offset), where file is the index in the token.File table -// (which records the file name and newline offsets) and offset is a -// byte offset. It effectively ignores //line directives. -func (w *exportWriter) posV2(pos token.Pos) { - if pos == token.NoPos { - w.uint64(0) - return - } - file := w.p.fset.File(pos) // fset must be non-nil - index, offset := w.p.fileIndexAndOffset(file, pos) - w.uint64(1 + index) - w.uint64(offset) -} - -func (w *exportWriter) posV1(pos token.Pos) { - if w.p.fset == nil { - w.int64(0) - return - } - - p := w.p.fset.Position(pos) - file := p.Filename - line := int64(p.Line) - column := int64(p.Column) - - deltaColumn := (column - w.prevColumn) << 1 - deltaLine := (line - w.prevLine) << 1 - - if file != w.prevFile { - deltaLine |= 1 - } - if deltaLine != 0 { - deltaColumn |= 1 - } - - w.int64(deltaColumn) - if deltaColumn&1 != 0 { - w.int64(deltaLine) - if deltaLine&1 != 0 { - w.string(file) - } - } - - w.prevFile = file - w.prevLine = line - w.prevColumn = column -} - -func (w *exportWriter) posV0(pos token.Pos) { - if w.p.fset == nil { - w.int64(0) - return - } - - p := w.p.fset.Position(pos) - file := p.Filename - line := int64(p.Line) - - // When file is the same as the last position (common case), - // we can save a few bytes by delta encoding just the line - // number. - // - // Note: Because data objects may be read out of order (or not - // at all), we can only apply delta encoding within a single - // object. This is handled implicitly by tracking prevFile and - // prevLine as fields of exportWriter. - - if file == w.prevFile { - delta := line - w.prevLine - w.int64(delta) - if delta == deltaNewFile { - w.int64(-1) - } - } else { - w.int64(deltaNewFile) - w.int64(line) // line >= 0 - w.string(file) - w.prevFile = file - } - w.prevLine = line -} - -func (w *exportWriter) pkg(pkg *types.Package) { - // Ensure any referenced packages are declared in the main index. - w.p.allPkgs[pkg] = true - - w.string(w.exportPath(pkg)) -} - -func (w *exportWriter) qualifiedType(obj *types.TypeName) { - name := w.p.exportName(obj) - - // Ensure any referenced declarations are written out too. - w.p.pushDecl(obj) - w.string(name) - w.pkg(obj.Pkg()) -} - -// TODO(rfindley): what does 'pkg' even mean here? It would be better to pass -// it in explicitly into signatures and structs that may use it for -// constructing fields. -func (w *exportWriter) typ(t types.Type, pkg *types.Package) { - w.data.uint64(w.p.typOff(t, pkg)) -} - -func (p *iexporter) newWriter() *exportWriter { - return &exportWriter{p: p} -} - -func (w *exportWriter) flush() uint64 { - off := uint64(w.p.data0.Len()) - io.Copy(&w.p.data0, &w.data) - return off -} - -func (p *iexporter) typOff(t types.Type, pkg *types.Package) uint64 { - off, ok := p.typIndex[t] - if !ok { - w := p.newWriter() - w.doTyp(t, pkg) - off = predeclReserved + w.flush() - p.typIndex[t] = off - } - return off -} - -func (w *exportWriter) startType(k itag) { - w.data.uint64(uint64(k)) -} - -func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { - if trace { - w.p.trace("exporting type %s (%T)", t, t) - w.p.indent++ - defer func() { - w.p.indent-- - w.p.trace("=> %s", t) - }() - } - switch t := t.(type) { - case *types.Alias: - if targs := aliases.TypeArgs(t); targs.Len() > 0 { - w.startType(instanceType) - w.pos(t.Obj().Pos()) - w.typeList(targs, pkg) - w.typ(aliases.Origin(t), pkg) - return - } - w.startType(aliasType) - w.qualifiedType(t.Obj()) - - case *types.Named: - if targs := t.TypeArgs(); targs.Len() > 0 { - w.startType(instanceType) - // TODO(rfindley): investigate if this position is correct, and if it - // matters. - w.pos(t.Obj().Pos()) - w.typeList(targs, pkg) - w.typ(t.Origin(), pkg) - return - } - w.startType(definedType) - w.qualifiedType(t.Obj()) - - case *types.TypeParam: - w.startType(typeParamType) - w.qualifiedType(t.Obj()) - - case *types.Pointer: - w.startType(pointerType) - w.typ(t.Elem(), pkg) - - case *types.Slice: - w.startType(sliceType) - w.typ(t.Elem(), pkg) - - case *types.Array: - w.startType(arrayType) - w.uint64(uint64(t.Len())) - w.typ(t.Elem(), pkg) - - case *types.Chan: - w.startType(chanType) - // 1 RecvOnly; 2 SendOnly; 3 SendRecv - var dir uint64 - switch t.Dir() { - case types.RecvOnly: - dir = 1 - case types.SendOnly: - dir = 2 - case types.SendRecv: - dir = 3 - } - w.uint64(dir) - w.typ(t.Elem(), pkg) - - case *types.Map: - w.startType(mapType) - w.typ(t.Key(), pkg) - w.typ(t.Elem(), pkg) - - case *types.Signature: - w.startType(signatureType) - w.pkg(pkg) - w.signature(t) - - case *types.Struct: - w.startType(structType) - n := t.NumFields() - // Even for struct{} we must emit some qualifying package, because that's - // what the compiler does, and thus that's what the importer expects. - fieldPkg := pkg - if n > 0 { - fieldPkg = t.Field(0).Pkg() - } - if fieldPkg == nil { - // TODO(rfindley): improve this very hacky logic. - // - // The importer expects a package to be set for all struct types, even - // those with no fields. A better encoding might be to set NumFields - // before pkg. setPkg panics with a nil package, which may be possible - // to reach with invalid packages (and perhaps valid packages, too?), so - // (arbitrarily) set the localpkg if available. - // - // Alternatively, we may be able to simply guarantee that pkg != nil, by - // reconsidering the encoding of constant values. - if w.p.shallow { - fieldPkg = w.p.localpkg - } else { - panic(internalErrorf("no package to set for empty struct")) - } - } - w.pkg(fieldPkg) - w.uint64(uint64(n)) - - for i := 0; i < n; i++ { - f := t.Field(i) - if w.p.shallow { - w.objectPath(f) - } - w.pos(f.Pos()) - w.string(f.Name()) // unexported fields implicitly qualified by prior setPkg - w.typ(f.Type(), fieldPkg) - w.bool(f.Anonymous()) - w.string(t.Tag(i)) // note (or tag) - } - - case *types.Interface: - w.startType(interfaceType) - w.pkg(pkg) - - n := t.NumEmbeddeds() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - ft := t.EmbeddedType(i) - tPkg := pkg - if named, _ := types.Unalias(ft).(*types.Named); named != nil { - w.pos(named.Obj().Pos()) - } else { - w.pos(token.NoPos) - } - w.typ(ft, tPkg) - } - - // See comment for struct fields. In shallow mode we change the encoding - // for interface methods that are promoted from other packages. - - n = t.NumExplicitMethods() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - m := t.ExplicitMethod(i) - if w.p.shallow { - w.objectPath(m) - } - w.pos(m.Pos()) - w.string(m.Name()) - sig, _ := m.Type().(*types.Signature) - w.signature(sig) - } - - case *types.Union: - w.startType(unionType) - nt := t.Len() - w.uint64(uint64(nt)) - for i := 0; i < nt; i++ { - term := t.Term(i) - w.bool(term.Tilde()) - w.typ(term.Type(), pkg) - } - - default: - panic(internalErrorf("unexpected type: %v, %v", t, reflect.TypeOf(t))) - } -} - -// objectPath writes the package and objectPath to use to look up obj in a -// different package, when encoding in "shallow" mode. -// -// When doing a shallow import, the importer creates only the local package, -// and requests package symbols for dependencies from the client. -// However, certain types defined in the local package may hold objects defined -// (perhaps deeply) within another package. -// -// For example, consider the following: -// -// package a -// func F() chan * map[string] struct { X int } -// -// package b -// import "a" -// var B = a.F() -// -// In this example, the type of b.B holds fields defined in package a. -// In order to have the correct canonical objects for the field defined in the -// type of B, they are encoded as objectPaths and later looked up in the -// importer. The same problem applies to interface methods. -func (w *exportWriter) objectPath(obj types.Object) { - if obj.Pkg() == nil || obj.Pkg() == w.p.localpkg { - // obj.Pkg() may be nil for the builtin error.Error. - // In this case, or if obj is declared in the local package, no need to - // encode. - w.string("") - return - } - objectPath, err := w.p.objectpathEncoder().For(obj) - if err != nil { - // Fall back to the empty string, which will cause the importer to create a - // new object, which matches earlier behavior. Creating a new object is - // sufficient for many purposes (such as type checking), but causes certain - // references algorithms to fail (golang/go#60819). However, we didn't - // notice this problem during months of gopls@v0.12.0 testing. - // - // TODO(golang/go#61674): this workaround is insufficient, as in the case - // where the field forwarded from an instantiated type that may not appear - // in the export data of the original package: - // - // // package a - // type A[P any] struct{ F P } - // - // // package b - // type B a.A[int] - // - // We need to update references algorithms not to depend on this - // de-duplication, at which point we may want to simply remove the - // workaround here. - w.string("") - return - } - w.string(string(objectPath)) - w.pkg(obj.Pkg()) -} - -func (w *exportWriter) signature(sig *types.Signature) { - w.paramList(sig.Params()) - w.paramList(sig.Results()) - if sig.Params().Len() > 0 { - w.bool(sig.Variadic()) - } -} - -func (w *exportWriter) typeList(ts *types.TypeList, pkg *types.Package) { - w.uint64(uint64(ts.Len())) - for i := 0; i < ts.Len(); i++ { - w.typ(ts.At(i), pkg) - } -} - -func (w *exportWriter) tparamList(prefix string, list *types.TypeParamList, pkg *types.Package) { - ll := uint64(list.Len()) - w.uint64(ll) - for i := 0; i < list.Len(); i++ { - tparam := list.At(i) - // Set the type parameter exportName before exporting its type. - exportName := tparamExportName(prefix, tparam) - w.p.tparamNames[tparam.Obj()] = exportName - w.typ(list.At(i), pkg) - } -} - -const blankMarker = "$" - -// tparamExportName returns the 'exported' name of a type parameter, which -// differs from its actual object name: it is prefixed with a qualifier, and -// blank type parameter names are disambiguated by their index in the type -// parameter list. -func tparamExportName(prefix string, tparam *types.TypeParam) string { - assert(prefix != "") - name := tparam.Obj().Name() - if name == "_" { - name = blankMarker + strconv.Itoa(tparam.Index()) - } - return prefix + "." + name -} - -// tparamName returns the real name of a type parameter, after stripping its -// qualifying prefix and reverting blank-name encoding. See tparamExportName -// for details. -func tparamName(exportName string) string { - // Remove the "path" from the type param name that makes it unique. - ix := strings.LastIndex(exportName, ".") - if ix < 0 { - errorf("malformed type parameter export name %s: missing prefix", exportName) - } - name := exportName[ix+1:] - if strings.HasPrefix(name, blankMarker) { - return "_" - } - return name -} - -func (w *exportWriter) paramList(tup *types.Tuple) { - n := tup.Len() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - w.param(tup.At(i)) - } -} - -func (w *exportWriter) param(obj types.Object) { - w.pos(obj.Pos()) - w.localIdent(obj) - w.typ(obj.Type(), obj.Pkg()) -} - -func (w *exportWriter) value(typ types.Type, v constant.Value) { - w.typ(typ, nil) - if w.p.version >= iexportVersionGo1_18 { - w.int64(int64(v.Kind())) - } - - if v.Kind() == constant.Unknown { - // golang/go#60605: treat unknown constant values as if they have invalid type - // - // This loses some fidelity over the package type-checked from source, but that - // is acceptable. - // - // TODO(rfindley): we should switch on the recorded constant kind rather - // than the constant type - return - } - - switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { - case types.IsBoolean: - w.bool(constant.BoolVal(v)) - case types.IsInteger: - var i big.Int - if i64, exact := constant.Int64Val(v); exact { - i.SetInt64(i64) - } else if ui64, exact := constant.Uint64Val(v); exact { - i.SetUint64(ui64) - } else { - i.SetString(v.ExactString(), 10) - } - w.mpint(&i, typ) - case types.IsFloat: - f := constantToFloat(v) - w.mpfloat(f, typ) - case types.IsComplex: - w.mpfloat(constantToFloat(constant.Real(v)), typ) - w.mpfloat(constantToFloat(constant.Imag(v)), typ) - case types.IsString: - w.string(constant.StringVal(v)) - default: - if b.Kind() == types.Invalid { - // package contains type errors - break - } - panic(internalErrorf("unexpected type %v (%v)", typ, typ.Underlying())) - } -} - -// constantToFloat converts a constant.Value with kind constant.Float to a -// big.Float. -func constantToFloat(x constant.Value) *big.Float { - x = constant.ToFloat(x) - // Use the same floating-point precision (512) as cmd/compile - // (see Mpprec in cmd/compile/internal/gc/mpfloat.go). - const mpprec = 512 - var f big.Float - f.SetPrec(mpprec) - if v, exact := constant.Float64Val(x); exact { - // float64 - f.SetFloat64(v) - } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { - // TODO(gri): add big.Rat accessor to constant.Value. - n := valueToRat(num) - d := valueToRat(denom) - f.SetRat(n.Quo(n, d)) - } else { - // Value too large to represent as a fraction => inaccessible. - // TODO(gri): add big.Float accessor to constant.Value. - _, ok := f.SetString(x.ExactString()) - assert(ok) - } - return &f -} - -func valueToRat(x constant.Value) *big.Rat { - // Convert little-endian to big-endian. - // I can't believe this is necessary. - bytes := constant.Bytes(x) - for i := 0; i < len(bytes)/2; i++ { - bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] - } - return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) -} - -// mpint exports a multi-precision integer. -// -// For unsigned types, small values are written out as a single -// byte. Larger values are written out as a length-prefixed big-endian -// byte string, where the length prefix is encoded as its complement. -// For example, bytes 0, 1, and 2 directly represent the integer -// values 0, 1, and 2; while bytes 255, 254, and 253 indicate a 1-, -// 2-, and 3-byte big-endian string follow. -// -// Encoding for signed types use the same general approach as for -// unsigned types, except small values use zig-zag encoding and the -// bottom bit of length prefix byte for large values is reserved as a -// sign bit. -// -// The exact boundary between small and large encodings varies -// according to the maximum number of bytes needed to encode a value -// of type typ. As a special case, 8-bit types are always encoded as a -// single byte. -// -// TODO(mdempsky): Is this level of complexity really worthwhile? -func (w *exportWriter) mpint(x *big.Int, typ types.Type) { - basic, ok := typ.Underlying().(*types.Basic) - if !ok { - panic(internalErrorf("unexpected type %v (%T)", typ.Underlying(), typ.Underlying())) - } - - signed, maxBytes := intSize(basic) - - negative := x.Sign() < 0 - if !signed && negative { - panic(internalErrorf("negative unsigned integer; type %v, value %v", typ, x)) - } - - b := x.Bytes() - if len(b) > 0 && b[0] == 0 { - panic(internalErrorf("leading zeros")) - } - if uint(len(b)) > maxBytes { - panic(internalErrorf("bad mpint length: %d > %d (type %v, value %v)", len(b), maxBytes, typ, x)) - } - - maxSmall := 256 - maxBytes - if signed { - maxSmall = 256 - 2*maxBytes - } - if maxBytes == 1 { - maxSmall = 256 - } - - // Check if x can use small value encoding. - if len(b) <= 1 { - var ux uint - if len(b) == 1 { - ux = uint(b[0]) - } - if signed { - ux <<= 1 - if negative { - ux-- - } - } - if ux < maxSmall { - w.data.WriteByte(byte(ux)) - return - } - } - - n := 256 - uint(len(b)) - if signed { - n = 256 - 2*uint(len(b)) - if negative { - n |= 1 - } - } - if n < maxSmall || n >= 256 { - panic(internalErrorf("encoding mistake: %d, %v, %v => %d", len(b), signed, negative, n)) - } - - w.data.WriteByte(byte(n)) - w.data.Write(b) -} - -// mpfloat exports a multi-precision floating point number. -// -// The number's value is decomposed into mantissa × 2**exponent, where -// mantissa is an integer. The value is written out as mantissa (as a -// multi-precision integer) and then the exponent, except exponent is -// omitted if mantissa is zero. -func (w *exportWriter) mpfloat(f *big.Float, typ types.Type) { - if f.IsInf() { - panic("infinite constant") - } - - // Break into f = mant × 2**exp, with 0.5 <= mant < 1. - var mant big.Float - exp := int64(f.MantExp(&mant)) - - // Scale so that mant is an integer. - prec := mant.MinPrec() - mant.SetMantExp(&mant, int(prec)) - exp -= int64(prec) - - manti, acc := mant.Int(nil) - if acc != big.Exact { - panic(internalErrorf("mantissa scaling failed for %f (%s)", f, acc)) - } - w.mpint(manti, typ) - if manti.Sign() != 0 { - w.int64(exp) - } -} - -func (w *exportWriter) bool(b bool) bool { - var x uint64 - if b { - x = 1 - } - w.uint64(x) - return b -} - -func (w *exportWriter) int64(x int64) { w.data.int64(x) } -func (w *exportWriter) uint64(x uint64) { w.data.uint64(x) } -func (w *exportWriter) string(s string) { w.uint64(w.p.stringOff(s)) } - -func (w *exportWriter) localIdent(obj types.Object) { - // Anonymous parameters. - if obj == nil { - w.string("") - return - } - - name := obj.Name() - if name == "_" { - w.string("_") - return - } - - w.string(name) -} - -type intWriter struct { - bytes.Buffer -} - -func (w *intWriter) int64(x int64) { - var buf [binary.MaxVarintLen64]byte - n := binary.PutVarint(buf[:], x) - w.Write(buf[:n]) -} - -func (w *intWriter) uint64(x uint64) { - var buf [binary.MaxVarintLen64]byte - n := binary.PutUvarint(buf[:], x) - w.Write(buf[:n]) -} - -func assert(cond bool) { - if !cond { - panic("internal error: assertion failed") - } -} - -// The below is copied from go/src/cmd/compile/internal/gc/syntax.go. - -// objQueue is a FIFO queue of types.Object. The zero value of objQueue is -// a ready-to-use empty queue. -type objQueue struct { - ring []types.Object - head, tail int -} - -// empty returns true if q contains no Nodes. -func (q *objQueue) empty() bool { - return q.head == q.tail -} - -// pushTail appends n to the tail of the queue. -func (q *objQueue) pushTail(obj types.Object) { - if len(q.ring) == 0 { - q.ring = make([]types.Object, 16) - } else if q.head+len(q.ring) == q.tail { - // Grow the ring. - nring := make([]types.Object, len(q.ring)*2) - // Copy the old elements. - part := q.ring[q.head%len(q.ring):] - if q.tail-q.head <= len(part) { - part = part[:q.tail-q.head] - copy(nring, part) - } else { - pos := copy(nring, part) - copy(nring[pos:], q.ring[:q.tail%len(q.ring)]) - } - q.ring, q.head, q.tail = nring, 0, q.tail-q.head - } - - q.ring[q.tail%len(q.ring)] = obj - q.tail++ -} - -// popHead pops a node from the head of the queue. It panics if q is empty. -func (q *objQueue) popHead() types.Object { - if q.empty() { - panic("dequeue empty") - } - obj := q.ring[q.head%len(q.ring)] - q.head++ - return obj -} - -// internalError represents an error generated inside this package. -type internalError string - -func (e internalError) Error() string { return "gcimporter: " + string(e) } - -// TODO(adonovan): make this call panic, so that it's symmetric with errorf. -// Otherwise it's easy to forget to do anything with the error. -// -// TODO(adonovan): also, consider switching the names "errorf" and -// "internalErrorf" as the former is used for bugs, whose cause is -// internal inconsistency, whereas the latter is used for ordinary -// situations like bad input, whose cause is external. -func internalErrorf(format string, args ...interface{}) error { - return internalError(fmt.Sprintf(format, args...)) -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go deleted file mode 100644 index 69b1d697..00000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +++ /dev/null @@ -1,1117 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Indexed package import. -// See iexport.go for the export data format. - -package gcimporter - -import ( - "bytes" - "encoding/binary" - "fmt" - "go/constant" - "go/token" - "go/types" - "io" - "math/big" - "sort" - "strings" - - "golang.org/x/tools/go/types/objectpath" - "golang.org/x/tools/internal/aliases" - "golang.org/x/tools/internal/typesinternal" -) - -type intReader struct { - *bytes.Reader - path string -} - -func (r *intReader) int64() int64 { - i, err := binary.ReadVarint(r.Reader) - if err != nil { - errorf("import %q: read varint error: %v", r.path, err) - } - return i -} - -func (r *intReader) uint64() uint64 { - i, err := binary.ReadUvarint(r.Reader) - if err != nil { - errorf("import %q: read varint error: %v", r.path, err) - } - return i -} - -// Keep this in sync with constants in iexport.go. -const ( - iexportVersionGo1_11 = 0 - iexportVersionPosCol = 1 - iexportVersionGo1_18 = 2 - iexportVersionGenerics = 2 - iexportVersion = iexportVersionGenerics - - iexportVersionCurrent = 2 -) - -type ident struct { - pkg *types.Package - name string -} - -const predeclReserved = 32 - -type itag uint64 - -const ( - // Types - definedType itag = iota - pointerType - sliceType - arrayType - chanType - mapType - signatureType - structType - interfaceType - typeParamType - instanceType - unionType - aliasType -) - -// Object tags -const ( - varTag = 'V' - funcTag = 'F' - genericFuncTag = 'G' - constTag = 'C' - aliasTag = 'A' - genericAliasTag = 'B' - typeParamTag = 'P' - typeTag = 'T' - genericTypeTag = 'U' -) - -// IImportData imports a package from the serialized package data -// and returns 0 and a reference to the package. -// If the export data version is not recognized or the format is otherwise -// compromised, an error is returned. -func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error) { - pkgs, err := iimportCommon(fset, GetPackagesFromMap(imports), data, false, path, false, nil) - if err != nil { - return 0, nil, err - } - return 0, pkgs[0], nil -} - -// IImportBundle imports a set of packages from the serialized package bundle. -func IImportBundle(fset *token.FileSet, imports map[string]*types.Package, data []byte) ([]*types.Package, error) { - return iimportCommon(fset, GetPackagesFromMap(imports), data, true, "", false, nil) -} - -// A GetPackagesFunc function obtains the non-nil symbols for a set of -// packages, creating and recursively importing them as needed. An -// implementation should store each package symbol is in the Pkg -// field of the items array. -// -// Any error causes importing to fail. This can be used to quickly read -// the import manifest of an export data file without fully decoding it. -type GetPackagesFunc = func(items []GetPackagesItem) error - -// A GetPackagesItem is a request from the importer for the package -// symbol of the specified name and path. -type GetPackagesItem struct { - Name, Path string - Pkg *types.Package // to be filled in by GetPackagesFunc call - - // private importer state - pathOffset uint64 - nameIndex map[string]uint64 -} - -// GetPackagesFromMap returns a GetPackagesFunc that retrieves -// packages from the given map of package path to package. -// -// The returned function may mutate m: each requested package that is not -// found is created with types.NewPackage and inserted into m. -func GetPackagesFromMap(m map[string]*types.Package) GetPackagesFunc { - return func(items []GetPackagesItem) error { - for i, item := range items { - pkg, ok := m[item.Path] - if !ok { - pkg = types.NewPackage(item.Path, item.Name) - m[item.Path] = pkg - } - items[i].Pkg = pkg - } - return nil - } -} - -func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte, bundle bool, path string, shallow bool, reportf ReportFunc) (pkgs []*types.Package, err error) { - const currentVersion = iexportVersionCurrent - version := int64(-1) - if !debug { - defer func() { - if e := recover(); e != nil { - if bundle { - err = fmt.Errorf("%v", e) - } else if version > currentVersion { - err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) - } else { - err = fmt.Errorf("internal error while importing %q (%v); please report an issue", path, e) - } - } - }() - } - - r := &intReader{bytes.NewReader(data), path} - - if bundle { - if v := r.uint64(); v != bundleVersion { - errorf("unknown bundle format version %d", v) - } - } - - version = int64(r.uint64()) - switch version { - case iexportVersionGo1_18, iexportVersionPosCol, iexportVersionGo1_11: - default: - if version > iexportVersionGo1_18 { - errorf("unstable iexport format version %d, just rebuild compiler and std library", version) - } else { - errorf("unknown iexport format version %d", version) - } - } - - sLen := int64(r.uint64()) - var fLen int64 - var fileOffset []uint64 - if shallow { - // Shallow mode uses a different position encoding. - fLen = int64(r.uint64()) - fileOffset = make([]uint64, r.uint64()) - for i := range fileOffset { - fileOffset[i] = r.uint64() - } - } - dLen := int64(r.uint64()) - - whence, _ := r.Seek(0, io.SeekCurrent) - stringData := data[whence : whence+sLen] - fileData := data[whence+sLen : whence+sLen+fLen] - declData := data[whence+sLen+fLen : whence+sLen+fLen+dLen] - r.Seek(sLen+fLen+dLen, io.SeekCurrent) - - p := iimporter{ - version: int(version), - ipath: path, - aliases: aliases.Enabled(), - shallow: shallow, - reportf: reportf, - - stringData: stringData, - stringCache: make(map[uint64]string), - fileOffset: fileOffset, - fileData: fileData, - fileCache: make([]*token.File, len(fileOffset)), - pkgCache: make(map[uint64]*types.Package), - - declData: declData, - pkgIndex: make(map[*types.Package]map[string]uint64), - typCache: make(map[uint64]types.Type), - // Separate map for typeparams, keyed by their package and unique - // name. - tparamIndex: make(map[ident]types.Type), - - fake: fakeFileSet{ - fset: fset, - files: make(map[string]*fileInfo), - }, - } - defer p.fake.setLines() // set lines for files in fset - - for i, pt := range predeclared() { - p.typCache[uint64(i)] = pt - } - - // Gather the relevant packages from the manifest. - items := make([]GetPackagesItem, r.uint64()) - uniquePkgPaths := make(map[string]bool) - for i := range items { - pkgPathOff := r.uint64() - pkgPath := p.stringAt(pkgPathOff) - pkgName := p.stringAt(r.uint64()) - _ = r.uint64() // package height; unused by go/types - - if pkgPath == "" { - pkgPath = path - } - items[i].Name = pkgName - items[i].Path = pkgPath - items[i].pathOffset = pkgPathOff - - // Read index for package. - nameIndex := make(map[string]uint64) - nSyms := r.uint64() - // In shallow mode, only the current package (i=0) has an index. - assert(!(shallow && i > 0 && nSyms != 0)) - for ; nSyms > 0; nSyms-- { - name := p.stringAt(r.uint64()) - nameIndex[name] = r.uint64() - } - - items[i].nameIndex = nameIndex - - uniquePkgPaths[pkgPath] = true - } - // Debugging #63822; hypothesis: there are duplicate PkgPaths. - if len(uniquePkgPaths) != len(items) { - reportf("found duplicate PkgPaths while reading export data manifest: %v", items) - } - - // Request packages all at once from the client, - // enabling a parallel implementation. - if err := getPackages(items); err != nil { - return nil, err // don't wrap this error - } - - // Check the results and complete the index. - pkgList := make([]*types.Package, len(items)) - for i, item := range items { - pkg := item.Pkg - if pkg == nil { - errorf("internal error: getPackages returned nil package for %q", item.Path) - } else if pkg.Path() != item.Path { - errorf("internal error: getPackages returned wrong path %q, want %q", pkg.Path(), item.Path) - } else if pkg.Name() != item.Name { - errorf("internal error: getPackages returned wrong name %s for package %q, want %s", pkg.Name(), item.Path, item.Name) - } - p.pkgCache[item.pathOffset] = pkg - p.pkgIndex[pkg] = item.nameIndex - pkgList[i] = pkg - } - - if bundle { - pkgs = make([]*types.Package, r.uint64()) - for i := range pkgs { - pkg := p.pkgAt(r.uint64()) - imps := make([]*types.Package, r.uint64()) - for j := range imps { - imps[j] = p.pkgAt(r.uint64()) - } - pkg.SetImports(imps) - pkgs[i] = pkg - } - } else { - if len(pkgList) == 0 { - errorf("no packages found for %s", path) - panic("unreachable") - } - pkgs = pkgList[:1] - - // record all referenced packages as imports - list := append(([]*types.Package)(nil), pkgList[1:]...) - sort.Sort(byPath(list)) - pkgs[0].SetImports(list) - } - - for _, pkg := range pkgs { - if pkg.Complete() { - continue - } - - names := make([]string, 0, len(p.pkgIndex[pkg])) - for name := range p.pkgIndex[pkg] { - names = append(names, name) - } - sort.Strings(names) - for _, name := range names { - p.doDecl(pkg, name) - } - - // package was imported completely and without errors - pkg.MarkComplete() - } - - // SetConstraint can't be called if the constraint type is not yet complete. - // When type params are created in the typeParamTag case of (*importReader).obj(), - // the associated constraint type may not be complete due to recursion. - // Therefore, we defer calling SetConstraint there, and call it here instead - // after all types are complete. - for _, d := range p.later { - d.t.SetConstraint(d.constraint) - } - - for _, typ := range p.interfaceList { - typ.Complete() - } - - // Workaround for golang/go#61561. See the doc for instanceList for details. - for _, typ := range p.instanceList { - if iface, _ := typ.Underlying().(*types.Interface); iface != nil { - iface.Complete() - } - } - - return pkgs, nil -} - -type setConstraintArgs struct { - t *types.TypeParam - constraint types.Type -} - -type iimporter struct { - version int - ipath string - - aliases bool - shallow bool - reportf ReportFunc // if non-nil, used to report bugs - - stringData []byte - stringCache map[uint64]string - fileOffset []uint64 // fileOffset[i] is offset in fileData for info about file encoded as i - fileData []byte - fileCache []*token.File // memoized decoding of file encoded as i - pkgCache map[uint64]*types.Package - - declData []byte - pkgIndex map[*types.Package]map[string]uint64 - typCache map[uint64]types.Type - tparamIndex map[ident]types.Type - - fake fakeFileSet - interfaceList []*types.Interface - - // Workaround for the go/types bug golang/go#61561: instances produced during - // instantiation may contain incomplete interfaces. Here we only complete the - // underlying type of the instance, which is the most common case but doesn't - // handle parameterized interface literals defined deeper in the type. - instanceList []types.Type // instances for later completion (see golang/go#61561) - - // Arguments for calls to SetConstraint that are deferred due to recursive types - later []setConstraintArgs - - indent int // for tracing support -} - -func (p *iimporter) trace(format string, args ...interface{}) { - if !trace { - // Call sites should also be guarded, but having this check here allows - // easily enabling/disabling debug trace statements. - return - } - fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) -} - -func (p *iimporter) doDecl(pkg *types.Package, name string) { - if debug { - p.trace("import decl %s", name) - p.indent++ - defer func() { - p.indent-- - p.trace("=> %s", name) - }() - } - // See if we've already imported this declaration. - if obj := pkg.Scope().Lookup(name); obj != nil { - return - } - - off, ok := p.pkgIndex[pkg][name] - if !ok { - // In deep mode, the index should be complete. In shallow - // mode, we should have already recursively loaded necessary - // dependencies so the above Lookup succeeds. - errorf("%v.%v not in index", pkg, name) - } - - r := &importReader{p: p, currPkg: pkg} - r.declReader.Reset(p.declData[off:]) - - r.obj(name) -} - -func (p *iimporter) stringAt(off uint64) string { - if s, ok := p.stringCache[off]; ok { - return s - } - - slen, n := binary.Uvarint(p.stringData[off:]) - if n <= 0 { - errorf("varint failed") - } - spos := off + uint64(n) - s := string(p.stringData[spos : spos+slen]) - p.stringCache[off] = s - return s -} - -func (p *iimporter) fileAt(index uint64) *token.File { - file := p.fileCache[index] - if file == nil { - off := p.fileOffset[index] - file = p.decodeFile(intReader{bytes.NewReader(p.fileData[off:]), p.ipath}) - p.fileCache[index] = file - } - return file -} - -func (p *iimporter) decodeFile(rd intReader) *token.File { - filename := p.stringAt(rd.uint64()) - size := int(rd.uint64()) - file := p.fake.fset.AddFile(filename, -1, size) - - // SetLines requires a nondecreasing sequence. - // Because it is common for clients to derive the interval - // [start, start+len(name)] from a start position, and we - // want to ensure that the end offset is on the same line, - // we fill in the gaps of the sparse encoding with values - // that strictly increase by the largest possible amount. - // This allows us to avoid having to record the actual end - // offset of each needed line. - - lines := make([]int, int(rd.uint64())) - var index, offset int - for i, n := 0, int(rd.uint64()); i < n; i++ { - index += int(rd.uint64()) - offset += int(rd.uint64()) - lines[index] = offset - - // Ensure monotonicity between points. - for j := index - 1; j > 0 && lines[j] == 0; j-- { - lines[j] = lines[j+1] - 1 - } - } - - // Ensure monotonicity after last point. - for j := len(lines) - 1; j > 0 && lines[j] == 0; j-- { - size-- - lines[j] = size - } - - if !file.SetLines(lines) { - errorf("SetLines failed: %d", lines) // can't happen - } - return file -} - -func (p *iimporter) pkgAt(off uint64) *types.Package { - if pkg, ok := p.pkgCache[off]; ok { - return pkg - } - path := p.stringAt(off) - errorf("missing package %q in %q", path, p.ipath) - return nil -} - -func (p *iimporter) typAt(off uint64, base *types.Named) types.Type { - if t, ok := p.typCache[off]; ok && canReuse(base, t) { - return t - } - - if off < predeclReserved { - errorf("predeclared type missing from cache: %v", off) - } - - r := &importReader{p: p} - r.declReader.Reset(p.declData[off-predeclReserved:]) - t := r.doType(base) - - if canReuse(base, t) { - p.typCache[off] = t - } - return t -} - -// canReuse reports whether the type rhs on the RHS of the declaration for def -// may be re-used. -// -// Specifically, if def is non-nil and rhs is an interface type with methods, it -// may not be re-used because we have a convention of setting the receiver type -// for interface methods to def. -func canReuse(def *types.Named, rhs types.Type) bool { - if def == nil { - return true - } - iface, _ := types.Unalias(rhs).(*types.Interface) - if iface == nil { - return true - } - // Don't use iface.Empty() here as iface may not be complete. - return iface.NumEmbeddeds() == 0 && iface.NumExplicitMethods() == 0 -} - -type importReader struct { - p *iimporter - declReader bytes.Reader - currPkg *types.Package - prevFile string - prevLine int64 - prevColumn int64 -} - -// markBlack is redefined in iimport_go123.go, to work around golang/go#69912. -// -// If TypeNames are not marked black (in the sense of go/types cycle -// detection), they may be mutated when dot-imported. Fix this by punching a -// hole through the type, when compiling with Go 1.23. (The bug has been fixed -// for 1.24, but the fix was not worth back-porting). -var markBlack = func(name *types.TypeName) {} - -func (r *importReader) obj(name string) { - tag := r.byte() - pos := r.pos() - - switch tag { - case aliasTag, genericAliasTag: - var tparams []*types.TypeParam - if tag == genericAliasTag { - tparams = r.tparamList() - } - typ := r.typ() - obj := aliases.NewAlias(r.p.aliases, pos, r.currPkg, name, typ, tparams) - markBlack(obj) // workaround for golang/go#69912 - r.declare(obj) - - case constTag: - typ, val := r.value() - - r.declare(types.NewConst(pos, r.currPkg, name, typ, val)) - - case funcTag, genericFuncTag: - var tparams []*types.TypeParam - if tag == genericFuncTag { - tparams = r.tparamList() - } - sig := r.signature(nil, nil, tparams) - r.declare(types.NewFunc(pos, r.currPkg, name, sig)) - - case typeTag, genericTypeTag: - // Types can be recursive. We need to setup a stub - // declaration before recursing. - obj := types.NewTypeName(pos, r.currPkg, name, nil) - named := types.NewNamed(obj, nil, nil) - - markBlack(obj) // workaround for golang/go#69912 - - // Declare obj before calling r.tparamList, so the new type name is recognized - // if used in the constraint of one of its own typeparams (see #48280). - r.declare(obj) - if tag == genericTypeTag { - tparams := r.tparamList() - named.SetTypeParams(tparams) - } - - underlying := r.p.typAt(r.uint64(), named).Underlying() - named.SetUnderlying(underlying) - - if !isInterface(underlying) { - for n := r.uint64(); n > 0; n-- { - mpos := r.pos() - mname := r.ident() - recv := r.param() - - // If the receiver has any targs, set those as the - // rparams of the method (since those are the - // typeparams being used in the method sig/body). - _, recvNamed := typesinternal.ReceiverNamed(recv) - targs := recvNamed.TypeArgs() - var rparams []*types.TypeParam - if targs.Len() > 0 { - rparams = make([]*types.TypeParam, targs.Len()) - for i := range rparams { - rparams[i] = types.Unalias(targs.At(i)).(*types.TypeParam) - } - } - msig := r.signature(recv, rparams, nil) - - named.AddMethod(types.NewFunc(mpos, r.currPkg, mname, msig)) - } - } - - case typeParamTag: - // We need to "declare" a typeparam in order to have a name that - // can be referenced recursively (if needed) in the type param's - // bound. - if r.p.version < iexportVersionGenerics { - errorf("unexpected type param type") - } - name0 := tparamName(name) - tn := types.NewTypeName(pos, r.currPkg, name0, nil) - t := types.NewTypeParam(tn, nil) - - // To handle recursive references to the typeparam within its - // bound, save the partial type in tparamIndex before reading the bounds. - id := ident{r.currPkg, name} - r.p.tparamIndex[id] = t - var implicit bool - if r.p.version >= iexportVersionGo1_18 { - implicit = r.bool() - } - constraint := r.typ() - if implicit { - iface, _ := types.Unalias(constraint).(*types.Interface) - if iface == nil { - errorf("non-interface constraint marked implicit") - } - iface.MarkImplicit() - } - // The constraint type may not be complete, if we - // are in the middle of a type recursion involving type - // constraints. So, we defer SetConstraint until we have - // completely set up all types in ImportData. - r.p.later = append(r.p.later, setConstraintArgs{t: t, constraint: constraint}) - - case varTag: - typ := r.typ() - - r.declare(types.NewVar(pos, r.currPkg, name, typ)) - - default: - errorf("unexpected tag: %v", tag) - } -} - -func (r *importReader) declare(obj types.Object) { - obj.Pkg().Scope().Insert(obj) -} - -func (r *importReader) value() (typ types.Type, val constant.Value) { - typ = r.typ() - if r.p.version >= iexportVersionGo1_18 { - // TODO: add support for using the kind. - _ = constant.Kind(r.int64()) - } - - switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { - case types.IsBoolean: - val = constant.MakeBool(r.bool()) - - case types.IsString: - val = constant.MakeString(r.string()) - - case types.IsInteger: - var x big.Int - r.mpint(&x, b) - val = constant.Make(&x) - - case types.IsFloat: - val = r.mpfloat(b) - - case types.IsComplex: - re := r.mpfloat(b) - im := r.mpfloat(b) - val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) - - default: - if b.Kind() == types.Invalid { - val = constant.MakeUnknown() - return - } - errorf("unexpected type %v", typ) // panics - panic("unreachable") - } - - return -} - -func intSize(b *types.Basic) (signed bool, maxBytes uint) { - if (b.Info() & types.IsUntyped) != 0 { - return true, 64 - } - - switch b.Kind() { - case types.Float32, types.Complex64: - return true, 3 - case types.Float64, types.Complex128: - return true, 7 - } - - signed = (b.Info() & types.IsUnsigned) == 0 - switch b.Kind() { - case types.Int8, types.Uint8: - maxBytes = 1 - case types.Int16, types.Uint16: - maxBytes = 2 - case types.Int32, types.Uint32: - maxBytes = 4 - default: - maxBytes = 8 - } - - return -} - -func (r *importReader) mpint(x *big.Int, typ *types.Basic) { - signed, maxBytes := intSize(typ) - - maxSmall := 256 - maxBytes - if signed { - maxSmall = 256 - 2*maxBytes - } - if maxBytes == 1 { - maxSmall = 256 - } - - n, _ := r.declReader.ReadByte() - if uint(n) < maxSmall { - v := int64(n) - if signed { - v >>= 1 - if n&1 != 0 { - v = ^v - } - } - x.SetInt64(v) - return - } - - v := -n - if signed { - v = -(n &^ 1) >> 1 - } - if v < 1 || uint(v) > maxBytes { - errorf("weird decoding: %v, %v => %v", n, signed, v) - } - b := make([]byte, v) - io.ReadFull(&r.declReader, b) - x.SetBytes(b) - if signed && n&1 != 0 { - x.Neg(x) - } -} - -func (r *importReader) mpfloat(typ *types.Basic) constant.Value { - var mant big.Int - r.mpint(&mant, typ) - var f big.Float - f.SetInt(&mant) - if f.Sign() != 0 { - f.SetMantExp(&f, int(r.int64())) - } - return constant.Make(&f) -} - -func (r *importReader) ident() string { - return r.string() -} - -func (r *importReader) qualifiedIdent() (*types.Package, string) { - name := r.string() - pkg := r.pkg() - return pkg, name -} - -func (r *importReader) pos() token.Pos { - if r.p.shallow { - // precise offsets are encoded only in shallow mode - return r.posv2() - } - if r.p.version >= iexportVersionPosCol { - r.posv1() - } else { - r.posv0() - } - - if r.prevFile == "" && r.prevLine == 0 && r.prevColumn == 0 { - return token.NoPos - } - return r.p.fake.pos(r.prevFile, int(r.prevLine), int(r.prevColumn)) -} - -func (r *importReader) posv0() { - delta := r.int64() - if delta != deltaNewFile { - r.prevLine += delta - } else if l := r.int64(); l == -1 { - r.prevLine += deltaNewFile - } else { - r.prevFile = r.string() - r.prevLine = l - } -} - -func (r *importReader) posv1() { - delta := r.int64() - r.prevColumn += delta >> 1 - if delta&1 != 0 { - delta = r.int64() - r.prevLine += delta >> 1 - if delta&1 != 0 { - r.prevFile = r.string() - } - } -} - -func (r *importReader) posv2() token.Pos { - file := r.uint64() - if file == 0 { - return token.NoPos - } - tf := r.p.fileAt(file - 1) - return tf.Pos(int(r.uint64())) -} - -func (r *importReader) typ() types.Type { - return r.p.typAt(r.uint64(), nil) -} - -func isInterface(t types.Type) bool { - _, ok := types.Unalias(t).(*types.Interface) - return ok -} - -func (r *importReader) pkg() *types.Package { return r.p.pkgAt(r.uint64()) } -func (r *importReader) string() string { return r.p.stringAt(r.uint64()) } - -func (r *importReader) doType(base *types.Named) (res types.Type) { - k := r.kind() - if debug { - r.p.trace("importing type %d (base: %v)", k, base) - r.p.indent++ - defer func() { - r.p.indent-- - r.p.trace("=> %s", res) - }() - } - switch k { - default: - errorf("unexpected kind tag in %q: %v", r.p.ipath, k) - return nil - - case aliasType, definedType: - pkg, name := r.qualifiedIdent() - r.p.doDecl(pkg, name) - return pkg.Scope().Lookup(name).(*types.TypeName).Type() - case pointerType: - return types.NewPointer(r.typ()) - case sliceType: - return types.NewSlice(r.typ()) - case arrayType: - n := r.uint64() - return types.NewArray(r.typ(), int64(n)) - case chanType: - dir := chanDir(int(r.uint64())) - return types.NewChan(dir, r.typ()) - case mapType: - return types.NewMap(r.typ(), r.typ()) - case signatureType: - r.currPkg = r.pkg() - return r.signature(nil, nil, nil) - - case structType: - r.currPkg = r.pkg() - - fields := make([]*types.Var, r.uint64()) - tags := make([]string, len(fields)) - for i := range fields { - var field *types.Var - if r.p.shallow { - field, _ = r.objectPathObject().(*types.Var) - } - - fpos := r.pos() - fname := r.ident() - ftyp := r.typ() - emb := r.bool() - tag := r.string() - - // Either this is not a shallow import, the field is local, or the - // encoded objectPath failed to produce an object (a bug). - // - // Even in this last, buggy case, fall back on creating a new field. As - // discussed in iexport.go, this is not correct, but mostly works and is - // preferable to failing (for now at least). - if field == nil { - field = types.NewField(fpos, r.currPkg, fname, ftyp, emb) - } - - fields[i] = field - tags[i] = tag - } - return types.NewStruct(fields, tags) - - case interfaceType: - r.currPkg = r.pkg() - - embeddeds := make([]types.Type, r.uint64()) - for i := range embeddeds { - _ = r.pos() - embeddeds[i] = r.typ() - } - - methods := make([]*types.Func, r.uint64()) - for i := range methods { - var method *types.Func - if r.p.shallow { - method, _ = r.objectPathObject().(*types.Func) - } - - mpos := r.pos() - mname := r.ident() - - // TODO(mdempsky): Matches bimport.go, but I - // don't agree with this. - var recv *types.Var - if base != nil { - recv = types.NewVar(token.NoPos, r.currPkg, "", base) - } - msig := r.signature(recv, nil, nil) - - if method == nil { - method = types.NewFunc(mpos, r.currPkg, mname, msig) - } - methods[i] = method - } - - typ := types.NewInterfaceType(methods, embeddeds) - r.p.interfaceList = append(r.p.interfaceList, typ) - return typ - - case typeParamType: - if r.p.version < iexportVersionGenerics { - errorf("unexpected type param type") - } - pkg, name := r.qualifiedIdent() - id := ident{pkg, name} - if t, ok := r.p.tparamIndex[id]; ok { - // We're already in the process of importing this typeparam. - return t - } - // Otherwise, import the definition of the typeparam now. - r.p.doDecl(pkg, name) - return r.p.tparamIndex[id] - - case instanceType: - if r.p.version < iexportVersionGenerics { - errorf("unexpected instantiation type") - } - // pos does not matter for instances: they are positioned on the original - // type. - _ = r.pos() - len := r.uint64() - targs := make([]types.Type, len) - for i := range targs { - targs[i] = r.typ() - } - baseType := r.typ() - // The imported instantiated type doesn't include any methods, so - // we must always use the methods of the base (orig) type. - // TODO provide a non-nil *Environment - t, _ := types.Instantiate(nil, baseType, targs, false) - - // Workaround for golang/go#61561. See the doc for instanceList for details. - r.p.instanceList = append(r.p.instanceList, t) - return t - - case unionType: - if r.p.version < iexportVersionGenerics { - errorf("unexpected instantiation type") - } - terms := make([]*types.Term, r.uint64()) - for i := range terms { - terms[i] = types.NewTerm(r.bool(), r.typ()) - } - return types.NewUnion(terms) - } -} - -func (r *importReader) kind() itag { - return itag(r.uint64()) -} - -// objectPathObject is the inverse of exportWriter.objectPath. -// -// In shallow mode, certain fields and methods may need to be looked up in an -// imported package. See the doc for exportWriter.objectPath for a full -// explanation. -func (r *importReader) objectPathObject() types.Object { - objPath := objectpath.Path(r.string()) - if objPath == "" { - return nil - } - pkg := r.pkg() - obj, err := objectpath.Object(pkg, objPath) - if err != nil { - if r.p.reportf != nil { - r.p.reportf("failed to find object for objectPath %q: %v", objPath, err) - } - } - return obj -} - -func (r *importReader) signature(recv *types.Var, rparams []*types.TypeParam, tparams []*types.TypeParam) *types.Signature { - params := r.paramList() - results := r.paramList() - variadic := params.Len() > 0 && r.bool() - return types.NewSignatureType(recv, rparams, tparams, params, results, variadic) -} - -func (r *importReader) tparamList() []*types.TypeParam { - n := r.uint64() - if n == 0 { - return nil - } - xs := make([]*types.TypeParam, n) - for i := range xs { - // Note: the standard library importer is tolerant of nil types here, - // though would panic in SetTypeParams. - xs[i] = types.Unalias(r.typ()).(*types.TypeParam) - } - return xs -} - -func (r *importReader) paramList() *types.Tuple { - xs := make([]*types.Var, r.uint64()) - for i := range xs { - xs[i] = r.param() - } - return types.NewTuple(xs...) -} - -func (r *importReader) param() *types.Var { - pos := r.pos() - name := r.ident() - typ := r.typ() - return types.NewParam(pos, r.currPkg, name, typ) -} - -func (r *importReader) bool() bool { - return r.uint64() != 0 -} - -func (r *importReader) int64() int64 { - n, err := binary.ReadVarint(&r.declReader) - if err != nil { - errorf("readVarint: %v", err) - } - return n -} - -func (r *importReader) uint64() uint64 { - n, err := binary.ReadUvarint(&r.declReader) - if err != nil { - errorf("readUvarint: %v", err) - } - return n -} - -func (r *importReader) byte() byte { - x, err := r.declReader.ReadByte() - if err != nil { - errorf("declReader.ReadByte: %v", err) - } - return x -} - -type byPath []*types.Package - -func (a byPath) Len() int { return len(a) } -func (a byPath) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a byPath) Less(i, j int) bool { return a[i].Path() < a[j].Path() } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go deleted file mode 100644 index 7586bfac..00000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.22 && !go1.24 - -package gcimporter - -import ( - "go/token" - "go/types" - "unsafe" -) - -// TODO(rfindley): delete this workaround once go1.24 is assured. - -func init() { - // Update markBlack so that it correctly sets the color - // of imported TypeNames. - // - // See the doc comment for markBlack for details. - - type color uint32 - const ( - white color = iota - black - grey - ) - type object struct { - _ *types.Scope - _ token.Pos - _ *types.Package - _ string - _ types.Type - _ uint32 - color_ color - _ token.Pos - } - type typeName struct { - object - } - - // If the size of types.TypeName changes, this will fail to compile. - const delta = int64(unsafe.Sizeof(typeName{})) - int64(unsafe.Sizeof(types.TypeName{})) - var _ [-delta * delta]int - - markBlack = func(obj *types.TypeName) { - type uP = unsafe.Pointer - var ptr *typeName - *(*uP)(uP(&ptr)) = uP(obj) - ptr.color_ = black - } -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go b/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go deleted file mode 100644 index 907c8557..00000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gcimporter - -import ( - "go/types" - "sync" -) - -// predecl is a cache for the predeclared types in types.Universe. -// -// Cache a distinct result based on the runtime value of any. -// The pointer value of the any type varies based on GODEBUG settings. -var predeclMu sync.Mutex -var predecl map[types.Type][]types.Type - -func predeclared() []types.Type { - anyt := types.Universe.Lookup("any").Type() - - predeclMu.Lock() - defer predeclMu.Unlock() - - if pre, ok := predecl[anyt]; ok { - return pre - } - - if predecl == nil { - predecl = make(map[types.Type][]types.Type) - } - - decls := []types.Type{ // basic types - types.Typ[types.Bool], - types.Typ[types.Int], - types.Typ[types.Int8], - types.Typ[types.Int16], - types.Typ[types.Int32], - types.Typ[types.Int64], - types.Typ[types.Uint], - types.Typ[types.Uint8], - types.Typ[types.Uint16], - types.Typ[types.Uint32], - types.Typ[types.Uint64], - types.Typ[types.Uintptr], - types.Typ[types.Float32], - types.Typ[types.Float64], - types.Typ[types.Complex64], - types.Typ[types.Complex128], - types.Typ[types.String], - - // basic type aliases - types.Universe.Lookup("byte").Type(), - types.Universe.Lookup("rune").Type(), - - // error - types.Universe.Lookup("error").Type(), - - // untyped types - types.Typ[types.UntypedBool], - types.Typ[types.UntypedInt], - types.Typ[types.UntypedRune], - types.Typ[types.UntypedFloat], - types.Typ[types.UntypedComplex], - types.Typ[types.UntypedString], - types.Typ[types.UntypedNil], - - // package unsafe - types.Typ[types.UnsafePointer], - - // invalid type - types.Typ[types.Invalid], // only appears in packages with errors - - // used internally by gc; never used by this package or in .a files - anyType{}, - - // comparable - types.Universe.Lookup("comparable").Type(), - - // any - anyt, - } - - predecl[anyt] = decls - return decls -} - -type anyType struct{} - -func (t anyType) Underlying() types.Type { return t } -func (t anyType) String() string { return "any" } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/support.go b/vendor/golang.org/x/tools/internal/gcimporter/support.go deleted file mode 100644 index 4af810dc..00000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/support.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gcimporter - -import ( - "bufio" - "io" - "strconv" - "strings" -) - -// Copy of $GOROOT/src/cmd/internal/archive.ReadHeader. -func readArchiveHeader(b *bufio.Reader, name string) int { - // architecture-independent object file output - const HeaderSize = 60 - - var buf [HeaderSize]byte - if _, err := io.ReadFull(b, buf[:]); err != nil { - return -1 - } - aname := strings.Trim(string(buf[0:16]), " ") - if !strings.HasPrefix(aname, name) { - return -1 - } - asize := strings.Trim(string(buf[48:58]), " ") - i, _ := strconv.Atoi(asize) - return i -} diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go deleted file mode 100644 index 6cdab448..00000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go +++ /dev/null @@ -1,757 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Derived from go/internal/gcimporter/ureader.go - -package gcimporter - -import ( - "fmt" - "go/token" - "go/types" - "sort" - - "golang.org/x/tools/internal/aliases" - "golang.org/x/tools/internal/pkgbits" -) - -// A pkgReader holds the shared state for reading a unified IR package -// description. -type pkgReader struct { - pkgbits.PkgDecoder - - fake fakeFileSet - - ctxt *types.Context - imports map[string]*types.Package // previously imported packages, indexed by path - aliases bool // create types.Alias nodes - - // lazily initialized arrays corresponding to the unified IR - // PosBase, Pkg, and Type sections, respectively. - posBases []string // position bases (i.e., file names) - pkgs []*types.Package - typs []types.Type - - // laterFns holds functions that need to be invoked at the end of - // import reading. - laterFns []func() - // laterFors is used in case of 'type A B' to ensure that B is processed before A. - laterFors map[types.Type]int - - // ifaces holds a list of constructed Interfaces, which need to have - // Complete called after importing is done. - ifaces []*types.Interface -} - -// later adds a function to be invoked at the end of import reading. -func (pr *pkgReader) later(fn func()) { - pr.laterFns = append(pr.laterFns, fn) -} - -// See cmd/compile/internal/noder.derivedInfo. -type derivedInfo struct { - idx pkgbits.Index -} - -// See cmd/compile/internal/noder.typeInfo. -type typeInfo struct { - idx pkgbits.Index - derived bool -} - -func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { - if !debug { - defer func() { - if x := recover(); x != nil { - err = fmt.Errorf("internal error in importing %q (%v); please report an issue", path, x) - } - }() - } - - s := string(data) - input := pkgbits.NewPkgDecoder(path, s) - pkg = readUnifiedPackage(fset, nil, imports, input) - return -} - -// laterFor adds a function to be invoked at the end of import reading, and records the type that function is finishing. -func (pr *pkgReader) laterFor(t types.Type, fn func()) { - if pr.laterFors == nil { - pr.laterFors = make(map[types.Type]int) - } - pr.laterFors[t] = len(pr.laterFns) - pr.laterFns = append(pr.laterFns, fn) -} - -// readUnifiedPackage reads a package description from the given -// unified IR export data decoder. -func readUnifiedPackage(fset *token.FileSet, ctxt *types.Context, imports map[string]*types.Package, input pkgbits.PkgDecoder) *types.Package { - pr := pkgReader{ - PkgDecoder: input, - - fake: fakeFileSet{ - fset: fset, - files: make(map[string]*fileInfo), - }, - - ctxt: ctxt, - imports: imports, - aliases: aliases.Enabled(), - - posBases: make([]string, input.NumElems(pkgbits.RelocPosBase)), - pkgs: make([]*types.Package, input.NumElems(pkgbits.RelocPkg)), - typs: make([]types.Type, input.NumElems(pkgbits.RelocType)), - } - defer pr.fake.setLines() - - r := pr.newReader(pkgbits.RelocMeta, pkgbits.PublicRootIdx, pkgbits.SyncPublic) - pkg := r.pkg() - if r.Version().Has(pkgbits.HasInit) { - r.Bool() - } - - for i, n := 0, r.Len(); i < n; i++ { - // As if r.obj(), but avoiding the Scope.Lookup call, - // to avoid eager loading of imports. - r.Sync(pkgbits.SyncObject) - if r.Version().Has(pkgbits.DerivedFuncInstance) { - assert(!r.Bool()) - } - r.p.objIdx(r.Reloc(pkgbits.RelocObj)) - assert(r.Len() == 0) - } - - r.Sync(pkgbits.SyncEOF) - - for _, fn := range pr.laterFns { - fn() - } - - for _, iface := range pr.ifaces { - iface.Complete() - } - - // Imports() of pkg are all of the transitive packages that were loaded. - var imps []*types.Package - for _, imp := range pr.pkgs { - if imp != nil && imp != pkg { - imps = append(imps, imp) - } - } - sort.Sort(byPath(imps)) - pkg.SetImports(imps) - - pkg.MarkComplete() - return pkg -} - -// A reader holds the state for reading a single unified IR element -// within a package. -type reader struct { - pkgbits.Decoder - - p *pkgReader - - dict *readerDict -} - -// A readerDict holds the state for type parameters that parameterize -// the current unified IR element. -type readerDict struct { - // bounds is a slice of typeInfos corresponding to the underlying - // bounds of the element's type parameters. - bounds []typeInfo - - // tparams is a slice of the constructed TypeParams for the element. - tparams []*types.TypeParam - - // derived is a slice of types derived from tparams, which may be - // instantiated while reading the current element. - derived []derivedInfo - derivedTypes []types.Type // lazily instantiated from derived -} - -func (pr *pkgReader) newReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { - return &reader{ - Decoder: pr.NewDecoder(k, idx, marker), - p: pr, - } -} - -func (pr *pkgReader) tempReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { - return &reader{ - Decoder: pr.TempDecoder(k, idx, marker), - p: pr, - } -} - -func (pr *pkgReader) retireReader(r *reader) { - pr.RetireDecoder(&r.Decoder) -} - -// @@@ Positions - -func (r *reader) pos() token.Pos { - r.Sync(pkgbits.SyncPos) - if !r.Bool() { - return token.NoPos - } - - // TODO(mdempsky): Delta encoding. - posBase := r.posBase() - line := r.Uint() - col := r.Uint() - return r.p.fake.pos(posBase, int(line), int(col)) -} - -func (r *reader) posBase() string { - return r.p.posBaseIdx(r.Reloc(pkgbits.RelocPosBase)) -} - -func (pr *pkgReader) posBaseIdx(idx pkgbits.Index) string { - if b := pr.posBases[idx]; b != "" { - return b - } - - var filename string - { - r := pr.tempReader(pkgbits.RelocPosBase, idx, pkgbits.SyncPosBase) - - // Within types2, position bases have a lot more details (e.g., - // keeping track of where //line directives appeared exactly). - // - // For go/types, we just track the file name. - - filename = r.String() - - if r.Bool() { // file base - // Was: "b = token.NewTrimmedFileBase(filename, true)" - } else { // line base - pos := r.pos() - line := r.Uint() - col := r.Uint() - - // Was: "b = token.NewLineBase(pos, filename, true, line, col)" - _, _, _ = pos, line, col - } - pr.retireReader(r) - } - b := filename - pr.posBases[idx] = b - return b -} - -// @@@ Packages - -func (r *reader) pkg() *types.Package { - r.Sync(pkgbits.SyncPkg) - return r.p.pkgIdx(r.Reloc(pkgbits.RelocPkg)) -} - -func (pr *pkgReader) pkgIdx(idx pkgbits.Index) *types.Package { - // TODO(mdempsky): Consider using some non-nil pointer to indicate - // the universe scope, so we don't need to keep re-reading it. - if pkg := pr.pkgs[idx]; pkg != nil { - return pkg - } - - pkg := pr.newReader(pkgbits.RelocPkg, idx, pkgbits.SyncPkgDef).doPkg() - pr.pkgs[idx] = pkg - return pkg -} - -func (r *reader) doPkg() *types.Package { - path := r.String() - switch path { - // cmd/compile emits path="main" for main packages because - // that's the linker symbol prefix it used; but we need - // the package's path as it would be reported by go list, - // hence "main" below. - // See test at go/packages.TestMainPackagePathInModeTypes. - case "", "main": - path = r.p.PkgPath() - case "builtin": - return nil // universe - case "unsafe": - return types.Unsafe - } - - if pkg := r.p.imports[path]; pkg != nil { - return pkg - } - - name := r.String() - - pkg := types.NewPackage(path, name) - r.p.imports[path] = pkg - - return pkg -} - -// @@@ Types - -func (r *reader) typ() types.Type { - return r.p.typIdx(r.typInfo(), r.dict) -} - -func (r *reader) typInfo() typeInfo { - r.Sync(pkgbits.SyncType) - if r.Bool() { - return typeInfo{idx: pkgbits.Index(r.Len()), derived: true} - } - return typeInfo{idx: r.Reloc(pkgbits.RelocType), derived: false} -} - -func (pr *pkgReader) typIdx(info typeInfo, dict *readerDict) types.Type { - idx := info.idx - var where *types.Type - if info.derived { - where = &dict.derivedTypes[idx] - idx = dict.derived[idx].idx - } else { - where = &pr.typs[idx] - } - - if typ := *where; typ != nil { - return typ - } - - var typ types.Type - { - r := pr.tempReader(pkgbits.RelocType, idx, pkgbits.SyncTypeIdx) - r.dict = dict - - typ = r.doTyp() - assert(typ != nil) - pr.retireReader(r) - } - // See comment in pkgReader.typIdx explaining how this happens. - if prev := *where; prev != nil { - return prev - } - - *where = typ - return typ -} - -func (r *reader) doTyp() (res types.Type) { - switch tag := pkgbits.CodeType(r.Code(pkgbits.SyncType)); tag { - default: - errorf("unhandled type tag: %v", tag) - panic("unreachable") - - case pkgbits.TypeBasic: - return types.Typ[r.Len()] - - case pkgbits.TypeNamed: - obj, targs := r.obj() - name := obj.(*types.TypeName) - if len(targs) != 0 { - t, _ := types.Instantiate(r.p.ctxt, name.Type(), targs, false) - return t - } - return name.Type() - - case pkgbits.TypeTypeParam: - return r.dict.tparams[r.Len()] - - case pkgbits.TypeArray: - len := int64(r.Uint64()) - return types.NewArray(r.typ(), len) - case pkgbits.TypeChan: - dir := types.ChanDir(r.Len()) - return types.NewChan(dir, r.typ()) - case pkgbits.TypeMap: - return types.NewMap(r.typ(), r.typ()) - case pkgbits.TypePointer: - return types.NewPointer(r.typ()) - case pkgbits.TypeSignature: - return r.signature(nil, nil, nil) - case pkgbits.TypeSlice: - return types.NewSlice(r.typ()) - case pkgbits.TypeStruct: - return r.structType() - case pkgbits.TypeInterface: - return r.interfaceType() - case pkgbits.TypeUnion: - return r.unionType() - } -} - -func (r *reader) structType() *types.Struct { - fields := make([]*types.Var, r.Len()) - var tags []string - for i := range fields { - pos := r.pos() - pkg, name := r.selector() - ftyp := r.typ() - tag := r.String() - embedded := r.Bool() - - fields[i] = types.NewField(pos, pkg, name, ftyp, embedded) - if tag != "" { - for len(tags) < i { - tags = append(tags, "") - } - tags = append(tags, tag) - } - } - return types.NewStruct(fields, tags) -} - -func (r *reader) unionType() *types.Union { - terms := make([]*types.Term, r.Len()) - for i := range terms { - terms[i] = types.NewTerm(r.Bool(), r.typ()) - } - return types.NewUnion(terms) -} - -func (r *reader) interfaceType() *types.Interface { - methods := make([]*types.Func, r.Len()) - embeddeds := make([]types.Type, r.Len()) - implicit := len(methods) == 0 && len(embeddeds) == 1 && r.Bool() - - for i := range methods { - pos := r.pos() - pkg, name := r.selector() - mtyp := r.signature(nil, nil, nil) - methods[i] = types.NewFunc(pos, pkg, name, mtyp) - } - - for i := range embeddeds { - embeddeds[i] = r.typ() - } - - iface := types.NewInterfaceType(methods, embeddeds) - if implicit { - iface.MarkImplicit() - } - - // We need to call iface.Complete(), but if there are any embedded - // defined types, then we may not have set their underlying - // interface type yet. So we need to defer calling Complete until - // after we've called SetUnderlying everywhere. - // - // TODO(mdempsky): After CL 424876 lands, it should be safe to call - // iface.Complete() immediately. - r.p.ifaces = append(r.p.ifaces, iface) - - return iface -} - -func (r *reader) signature(recv *types.Var, rtparams, tparams []*types.TypeParam) *types.Signature { - r.Sync(pkgbits.SyncSignature) - - params := r.params() - results := r.params() - variadic := r.Bool() - - return types.NewSignatureType(recv, rtparams, tparams, params, results, variadic) -} - -func (r *reader) params() *types.Tuple { - r.Sync(pkgbits.SyncParams) - - params := make([]*types.Var, r.Len()) - for i := range params { - params[i] = r.param() - } - - return types.NewTuple(params...) -} - -func (r *reader) param() *types.Var { - r.Sync(pkgbits.SyncParam) - - pos := r.pos() - pkg, name := r.localIdent() - typ := r.typ() - - return types.NewParam(pos, pkg, name, typ) -} - -// @@@ Objects - -func (r *reader) obj() (types.Object, []types.Type) { - r.Sync(pkgbits.SyncObject) - - if r.Version().Has(pkgbits.DerivedFuncInstance) { - assert(!r.Bool()) - } - - pkg, name := r.p.objIdx(r.Reloc(pkgbits.RelocObj)) - obj := pkgScope(pkg).Lookup(name) - - targs := make([]types.Type, r.Len()) - for i := range targs { - targs[i] = r.typ() - } - - return obj, targs -} - -func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { - - var objPkg *types.Package - var objName string - var tag pkgbits.CodeObj - { - rname := pr.tempReader(pkgbits.RelocName, idx, pkgbits.SyncObject1) - - objPkg, objName = rname.qualifiedIdent() - assert(objName != "") - - tag = pkgbits.CodeObj(rname.Code(pkgbits.SyncCodeObj)) - pr.retireReader(rname) - } - - if tag == pkgbits.ObjStub { - assert(objPkg == nil || objPkg == types.Unsafe) - return objPkg, objName - } - - // Ignore local types promoted to global scope (#55110). - if _, suffix := splitVargenSuffix(objName); suffix != "" { - return objPkg, objName - } - - if objPkg.Scope().Lookup(objName) == nil { - dict := pr.objDictIdx(idx) - - r := pr.newReader(pkgbits.RelocObj, idx, pkgbits.SyncObject1) - r.dict = dict - - declare := func(obj types.Object) { - objPkg.Scope().Insert(obj) - } - - switch tag { - default: - panic("weird") - - case pkgbits.ObjAlias: - pos := r.pos() - var tparams []*types.TypeParam - if r.Version().Has(pkgbits.AliasTypeParamNames) { - tparams = r.typeParamNames() - } - typ := r.typ() - declare(aliases.NewAlias(r.p.aliases, pos, objPkg, objName, typ, tparams)) - - case pkgbits.ObjConst: - pos := r.pos() - typ := r.typ() - val := r.Value() - declare(types.NewConst(pos, objPkg, objName, typ, val)) - - case pkgbits.ObjFunc: - pos := r.pos() - tparams := r.typeParamNames() - sig := r.signature(nil, nil, tparams) - declare(types.NewFunc(pos, objPkg, objName, sig)) - - case pkgbits.ObjType: - pos := r.pos() - - obj := types.NewTypeName(pos, objPkg, objName, nil) - named := types.NewNamed(obj, nil, nil) - declare(obj) - - named.SetTypeParams(r.typeParamNames()) - - setUnderlying := func(underlying types.Type) { - // If the underlying type is an interface, we need to - // duplicate its methods so we can replace the receiver - // parameter's type (#49906). - if iface, ok := types.Unalias(underlying).(*types.Interface); ok && iface.NumExplicitMethods() != 0 { - methods := make([]*types.Func, iface.NumExplicitMethods()) - for i := range methods { - fn := iface.ExplicitMethod(i) - sig := fn.Type().(*types.Signature) - - recv := types.NewVar(fn.Pos(), fn.Pkg(), "", named) - methods[i] = types.NewFunc(fn.Pos(), fn.Pkg(), fn.Name(), types.NewSignature(recv, sig.Params(), sig.Results(), sig.Variadic())) - } - - embeds := make([]types.Type, iface.NumEmbeddeds()) - for i := range embeds { - embeds[i] = iface.EmbeddedType(i) - } - - newIface := types.NewInterfaceType(methods, embeds) - r.p.ifaces = append(r.p.ifaces, newIface) - underlying = newIface - } - - named.SetUnderlying(underlying) - } - - // Since go.dev/cl/455279, we can assume rhs.Underlying() will - // always be non-nil. However, to temporarily support users of - // older snapshot releases, we continue to fallback to the old - // behavior for now. - // - // TODO(mdempsky): Remove fallback code and simplify after - // allowing time for snapshot users to upgrade. - rhs := r.typ() - if underlying := rhs.Underlying(); underlying != nil { - setUnderlying(underlying) - } else { - pk := r.p - pk.laterFor(named, func() { - // First be sure that the rhs is initialized, if it needs to be initialized. - delete(pk.laterFors, named) // prevent cycles - if i, ok := pk.laterFors[rhs]; ok { - f := pk.laterFns[i] - pk.laterFns[i] = func() {} // function is running now, so replace it with a no-op - f() // initialize RHS - } - setUnderlying(rhs.Underlying()) - }) - } - - for i, n := 0, r.Len(); i < n; i++ { - named.AddMethod(r.method()) - } - - case pkgbits.ObjVar: - pos := r.pos() - typ := r.typ() - declare(types.NewVar(pos, objPkg, objName, typ)) - } - } - - return objPkg, objName -} - -func (pr *pkgReader) objDictIdx(idx pkgbits.Index) *readerDict { - - var dict readerDict - - { - r := pr.tempReader(pkgbits.RelocObjDict, idx, pkgbits.SyncObject1) - if implicits := r.Len(); implicits != 0 { - errorf("unexpected object with %v implicit type parameter(s)", implicits) - } - - dict.bounds = make([]typeInfo, r.Len()) - for i := range dict.bounds { - dict.bounds[i] = r.typInfo() - } - - dict.derived = make([]derivedInfo, r.Len()) - dict.derivedTypes = make([]types.Type, len(dict.derived)) - for i := range dict.derived { - dict.derived[i] = derivedInfo{idx: r.Reloc(pkgbits.RelocType)} - if r.Version().Has(pkgbits.DerivedInfoNeeded) { - assert(!r.Bool()) - } - } - - pr.retireReader(r) - } - // function references follow, but reader doesn't need those - - return &dict -} - -func (r *reader) typeParamNames() []*types.TypeParam { - r.Sync(pkgbits.SyncTypeParamNames) - - // Note: This code assumes it only processes objects without - // implement type parameters. This is currently fine, because - // reader is only used to read in exported declarations, which are - // always package scoped. - - if len(r.dict.bounds) == 0 { - return nil - } - - // Careful: Type parameter lists may have cycles. To allow for this, - // we construct the type parameter list in two passes: first we - // create all the TypeNames and TypeParams, then we construct and - // set the bound type. - - r.dict.tparams = make([]*types.TypeParam, len(r.dict.bounds)) - for i := range r.dict.bounds { - pos := r.pos() - pkg, name := r.localIdent() - - tname := types.NewTypeName(pos, pkg, name, nil) - r.dict.tparams[i] = types.NewTypeParam(tname, nil) - } - - typs := make([]types.Type, len(r.dict.bounds)) - for i, bound := range r.dict.bounds { - typs[i] = r.p.typIdx(bound, r.dict) - } - - // TODO(mdempsky): This is subtle, elaborate further. - // - // We have to save tparams outside of the closure, because - // typeParamNames() can be called multiple times with the same - // dictionary instance. - // - // Also, this needs to happen later to make sure SetUnderlying has - // been called. - // - // TODO(mdempsky): Is it safe to have a single "later" slice or do - // we need to have multiple passes? See comments on CL 386002 and - // go.dev/issue/52104. - tparams := r.dict.tparams - r.p.later(func() { - for i, typ := range typs { - tparams[i].SetConstraint(typ) - } - }) - - return r.dict.tparams -} - -func (r *reader) method() *types.Func { - r.Sync(pkgbits.SyncMethod) - pos := r.pos() - pkg, name := r.selector() - - rparams := r.typeParamNames() - sig := r.signature(r.param(), rparams, nil) - - _ = r.pos() // TODO(mdempsky): Remove; this is a hacker for linker.go. - return types.NewFunc(pos, pkg, name, sig) -} - -func (r *reader) qualifiedIdent() (*types.Package, string) { return r.ident(pkgbits.SyncSym) } -func (r *reader) localIdent() (*types.Package, string) { return r.ident(pkgbits.SyncLocalIdent) } -func (r *reader) selector() (*types.Package, string) { return r.ident(pkgbits.SyncSelector) } - -func (r *reader) ident(marker pkgbits.SyncMarker) (*types.Package, string) { - r.Sync(marker) - return r.pkg(), r.String() -} - -// pkgScope returns pkg.Scope(). -// If pkg is nil, it returns types.Universe instead. -// -// TODO(mdempsky): Remove after x/tools can depend on Go 1.19. -func pkgScope(pkg *types.Package) *types.Scope { - if pkg != nil { - return pkg.Scope() - } - return types.Universe -} - -// See cmd/compile/internal/types.SplitVargenSuffix. -func splitVargenSuffix(name string) (base, suffix string) { - i := len(name) - for i > 0 && name[i-1] >= '0' && name[i-1] <= '9' { - i-- - } - const dot = "·" - if i >= len(dot) && name[i-len(dot):i] == dot { - i -= len(dot) - return name[:i], name[i:] - } - return name, "" -} diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go deleted file mode 100644 index e333efc8..00000000 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go +++ /dev/null @@ -1,551 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package gocommand is a helper for calling the go command. -package gocommand - -import ( - "bytes" - "context" - "encoding/json" - "errors" - "fmt" - "io" - "log" - "os" - "os/exec" - "path/filepath" - "regexp" - "runtime" - "strconv" - "strings" - "sync" - "time" - - "golang.org/x/tools/internal/event" - "golang.org/x/tools/internal/event/keys" - "golang.org/x/tools/internal/event/label" -) - -// An Runner will run go command invocations and serialize -// them if it sees a concurrency error. -type Runner struct { - // once guards the runner initialization. - once sync.Once - - // inFlight tracks available workers. - inFlight chan struct{} - - // serialized guards the ability to run a go command serially, - // to avoid deadlocks when claiming workers. - serialized chan struct{} -} - -const maxInFlight = 10 - -func (runner *Runner) initialize() { - runner.once.Do(func() { - runner.inFlight = make(chan struct{}, maxInFlight) - runner.serialized = make(chan struct{}, 1) - }) -} - -// 1.13: go: updates to go.mod needed, but contents have changed -// 1.14: go: updating go.mod: existing contents have changed since last read -var modConcurrencyError = regexp.MustCompile(`go:.*go.mod.*contents have changed`) - -// event keys for go command invocations -var ( - verb = keys.NewString("verb", "go command verb") - directory = keys.NewString("directory", "") -) - -func invLabels(inv Invocation) []label.Label { - return []label.Label{verb.Of(inv.Verb), directory.Of(inv.WorkingDir)} -} - -// Run is a convenience wrapper around RunRaw. -// It returns only stdout and a "friendly" error. -func (runner *Runner) Run(ctx context.Context, inv Invocation) (*bytes.Buffer, error) { - ctx, done := event.Start(ctx, "gocommand.Runner.Run", invLabels(inv)...) - defer done() - - stdout, _, friendly, _ := runner.RunRaw(ctx, inv) - return stdout, friendly -} - -// RunPiped runs the invocation serially, always waiting for any concurrent -// invocations to complete first. -func (runner *Runner) RunPiped(ctx context.Context, inv Invocation, stdout, stderr io.Writer) error { - ctx, done := event.Start(ctx, "gocommand.Runner.RunPiped", invLabels(inv)...) - defer done() - - _, err := runner.runPiped(ctx, inv, stdout, stderr) - return err -} - -// RunRaw runs the invocation, serializing requests only if they fight over -// go.mod changes. -// Postcondition: both error results have same nilness. -func (runner *Runner) RunRaw(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { - ctx, done := event.Start(ctx, "gocommand.Runner.RunRaw", invLabels(inv)...) - defer done() - // Make sure the runner is always initialized. - runner.initialize() - - // First, try to run the go command concurrently. - stdout, stderr, friendlyErr, err := runner.runConcurrent(ctx, inv) - - // If we encounter a load concurrency error, we need to retry serially. - if friendlyErr != nil && modConcurrencyError.MatchString(friendlyErr.Error()) { - event.Error(ctx, "Load concurrency error, will retry serially", err) - - // Run serially by calling runPiped. - stdout.Reset() - stderr.Reset() - friendlyErr, err = runner.runPiped(ctx, inv, stdout, stderr) - } - - return stdout, stderr, friendlyErr, err -} - -// Postcondition: both error results have same nilness. -func (runner *Runner) runConcurrent(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { - // Wait for 1 worker to become available. - select { - case <-ctx.Done(): - return nil, nil, ctx.Err(), ctx.Err() - case runner.inFlight <- struct{}{}: - defer func() { <-runner.inFlight }() - } - - stdout, stderr := &bytes.Buffer{}, &bytes.Buffer{} - friendlyErr, err := inv.runWithFriendlyError(ctx, stdout, stderr) - return stdout, stderr, friendlyErr, err -} - -// Postcondition: both error results have same nilness. -func (runner *Runner) runPiped(ctx context.Context, inv Invocation, stdout, stderr io.Writer) (error, error) { - // Make sure the runner is always initialized. - runner.initialize() - - // Acquire the serialization lock. This avoids deadlocks between two - // runPiped commands. - select { - case <-ctx.Done(): - return ctx.Err(), ctx.Err() - case runner.serialized <- struct{}{}: - defer func() { <-runner.serialized }() - } - - // Wait for all in-progress go commands to return before proceeding, - // to avoid load concurrency errors. - for i := 0; i < maxInFlight; i++ { - select { - case <-ctx.Done(): - return ctx.Err(), ctx.Err() - case runner.inFlight <- struct{}{}: - // Make sure we always "return" any workers we took. - defer func() { <-runner.inFlight }() - } - } - - return inv.runWithFriendlyError(ctx, stdout, stderr) -} - -// An Invocation represents a call to the go command. -type Invocation struct { - Verb string - Args []string - BuildFlags []string - - // If ModFlag is set, the go command is invoked with -mod=ModFlag. - // TODO(rfindley): remove, in favor of Args. - ModFlag string - - // If ModFile is set, the go command is invoked with -modfile=ModFile. - // TODO(rfindley): remove, in favor of Args. - ModFile string - - // Overlay is the name of the JSON overlay file that describes - // unsaved editor buffers; see [WriteOverlays]. - // If set, the go command is invoked with -overlay=Overlay. - // TODO(rfindley): remove, in favor of Args. - Overlay string - - // If CleanEnv is set, the invocation will run only with the environment - // in Env, not starting with os.Environ. - CleanEnv bool - Env []string - WorkingDir string - Logf func(format string, args ...interface{}) -} - -// Postcondition: both error results have same nilness. -func (i *Invocation) runWithFriendlyError(ctx context.Context, stdout, stderr io.Writer) (friendlyError error, rawError error) { - rawError = i.run(ctx, stdout, stderr) - if rawError != nil { - friendlyError = rawError - // Check for 'go' executable not being found. - if ee, ok := rawError.(*exec.Error); ok && ee.Err == exec.ErrNotFound { - friendlyError = fmt.Errorf("go command required, not found: %v", ee) - } - if ctx.Err() != nil { - friendlyError = ctx.Err() - } - friendlyError = fmt.Errorf("err: %v: stderr: %s", friendlyError, stderr) - } - return -} - -// logf logs if i.Logf is non-nil. -func (i *Invocation) logf(format string, args ...any) { - if i.Logf != nil { - i.Logf(format, args...) - } -} - -func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { - goArgs := []string{i.Verb} - - appendModFile := func() { - if i.ModFile != "" { - goArgs = append(goArgs, "-modfile="+i.ModFile) - } - } - appendModFlag := func() { - if i.ModFlag != "" { - goArgs = append(goArgs, "-mod="+i.ModFlag) - } - } - appendOverlayFlag := func() { - if i.Overlay != "" { - goArgs = append(goArgs, "-overlay="+i.Overlay) - } - } - - switch i.Verb { - case "env", "version": - goArgs = append(goArgs, i.Args...) - case "mod": - // mod needs the sub-verb before flags. - goArgs = append(goArgs, i.Args[0]) - appendModFile() - goArgs = append(goArgs, i.Args[1:]...) - case "get": - goArgs = append(goArgs, i.BuildFlags...) - appendModFile() - goArgs = append(goArgs, i.Args...) - - default: // notably list and build. - goArgs = append(goArgs, i.BuildFlags...) - appendModFile() - appendModFlag() - appendOverlayFlag() - goArgs = append(goArgs, i.Args...) - } - cmd := exec.Command("go", goArgs...) - cmd.Stdout = stdout - cmd.Stderr = stderr - - // https://go.dev/issue/59541: don't wait forever copying stderr - // after the command has exited. - // After CL 484741 we copy stdout manually, so we we'll stop reading that as - // soon as ctx is done. However, we also don't want to wait around forever - // for stderr. Give a much-longer-than-reasonable delay and then assume that - // something has wedged in the kernel or runtime. - cmd.WaitDelay = 30 * time.Second - - // The cwd gets resolved to the real path. On Darwin, where - // /tmp is a symlink, this breaks anything that expects the - // working directory to keep the original path, including the - // go command when dealing with modules. - // - // os.Getwd has a special feature where if the cwd and the PWD - // are the same node then it trusts the PWD, so by setting it - // in the env for the child process we fix up all the paths - // returned by the go command. - if !i.CleanEnv { - cmd.Env = os.Environ() - } - cmd.Env = append(cmd.Env, i.Env...) - if i.WorkingDir != "" { - cmd.Env = append(cmd.Env, "PWD="+i.WorkingDir) - cmd.Dir = i.WorkingDir - } - - debugStr := cmdDebugStr(cmd) - i.logf("starting %v", debugStr) - start := time.Now() - defer func() { - i.logf("%s for %v", time.Since(start), debugStr) - }() - - return runCmdContext(ctx, cmd) -} - -// DebugHangingGoCommands may be set by tests to enable additional -// instrumentation (including panics) for debugging hanging Go commands. -// -// See golang/go#54461 for details. -var DebugHangingGoCommands = false - -// runCmdContext is like exec.CommandContext except it sends os.Interrupt -// before os.Kill. -func runCmdContext(ctx context.Context, cmd *exec.Cmd) (err error) { - // If cmd.Stdout is not an *os.File, the exec package will create a pipe and - // copy it to the Writer in a goroutine until the process has finished and - // either the pipe reaches EOF or command's WaitDelay expires. - // - // However, the output from 'go list' can be quite large, and we don't want to - // keep reading (and allocating buffers) if we've already decided we don't - // care about the output. We don't want to wait for the process to finish, and - // we don't wait to wait for the WaitDelay to expire either. - // - // Instead, if cmd.Stdout requires a copying goroutine we explicitly replace - // it with a pipe (which is an *os.File), which we can close in order to stop - // copying output as soon as we realize we don't care about it. - var stdoutW *os.File - if cmd.Stdout != nil { - if _, ok := cmd.Stdout.(*os.File); !ok { - var stdoutR *os.File - stdoutR, stdoutW, err = os.Pipe() - if err != nil { - return err - } - prevStdout := cmd.Stdout - cmd.Stdout = stdoutW - - stdoutErr := make(chan error, 1) - go func() { - _, err := io.Copy(prevStdout, stdoutR) - if err != nil { - err = fmt.Errorf("copying stdout: %w", err) - } - stdoutErr <- err - }() - defer func() { - // We started a goroutine to copy a stdout pipe. - // Wait for it to finish, or terminate it if need be. - var err2 error - select { - case err2 = <-stdoutErr: - stdoutR.Close() - case <-ctx.Done(): - stdoutR.Close() - // Per https://pkg.go.dev/os#File.Close, the call to stdoutR.Close - // should cause the Read call in io.Copy to unblock and return - // immediately, but we still need to receive from stdoutErr to confirm - // that it has happened. - <-stdoutErr - err2 = ctx.Err() - } - if err == nil { - err = err2 - } - }() - - // Per https://pkg.go.dev/os/exec#Cmd, “If Stdout and Stderr are the - // same writer, and have a type that can be compared with ==, at most - // one goroutine at a time will call Write.” - // - // Since we're starting a goroutine that writes to cmd.Stdout, we must - // also update cmd.Stderr so that it still holds. - func() { - defer func() { recover() }() - if cmd.Stderr == prevStdout { - cmd.Stderr = cmd.Stdout - } - }() - } - } - - startTime := time.Now() - err = cmd.Start() - if stdoutW != nil { - // The child process has inherited the pipe file, - // so close the copy held in this process. - stdoutW.Close() - stdoutW = nil - } - if err != nil { - return err - } - - resChan := make(chan error, 1) - go func() { - resChan <- cmd.Wait() - }() - - // If we're interested in debugging hanging Go commands, stop waiting after a - // minute and panic with interesting information. - debug := DebugHangingGoCommands - if debug { - timer := time.NewTimer(1 * time.Minute) - defer timer.Stop() - select { - case err := <-resChan: - return err - case <-timer.C: - HandleHangingGoCommand(startTime, cmd) - case <-ctx.Done(): - } - } else { - select { - case err := <-resChan: - return err - case <-ctx.Done(): - } - } - - // Cancelled. Interrupt and see if it ends voluntarily. - if err := cmd.Process.Signal(os.Interrupt); err == nil { - // (We used to wait only 1s but this proved - // fragile on loaded builder machines.) - timer := time.NewTimer(5 * time.Second) - defer timer.Stop() - select { - case err := <-resChan: - return err - case <-timer.C: - } - } - - // Didn't shut down in response to interrupt. Kill it hard. - // TODO(rfindley): per advice from bcmills@, it may be better to send SIGQUIT - // on certain platforms, such as unix. - if err := cmd.Process.Kill(); err != nil && !errors.Is(err, os.ErrProcessDone) && debug { - log.Printf("error killing the Go command: %v", err) - } - - return <-resChan -} - -func HandleHangingGoCommand(start time.Time, cmd *exec.Cmd) { - switch runtime.GOOS { - case "linux", "darwin", "freebsd", "netbsd": - fmt.Fprintln(os.Stderr, `DETECTED A HANGING GO COMMAND - -The gopls test runner has detected a hanging go command. In order to debug -this, the output of ps and lsof/fstat is printed below. - -See golang/go#54461 for more details.`) - - fmt.Fprintln(os.Stderr, "\nps axo ppid,pid,command:") - fmt.Fprintln(os.Stderr, "-------------------------") - psCmd := exec.Command("ps", "axo", "ppid,pid,command") - psCmd.Stdout = os.Stderr - psCmd.Stderr = os.Stderr - if err := psCmd.Run(); err != nil { - panic(fmt.Sprintf("running ps: %v", err)) - } - - listFiles := "lsof" - if runtime.GOOS == "freebsd" || runtime.GOOS == "netbsd" { - listFiles = "fstat" - } - - fmt.Fprintln(os.Stderr, "\n"+listFiles+":") - fmt.Fprintln(os.Stderr, "-----") - listFilesCmd := exec.Command(listFiles) - listFilesCmd.Stdout = os.Stderr - listFilesCmd.Stderr = os.Stderr - if err := listFilesCmd.Run(); err != nil { - panic(fmt.Sprintf("running %s: %v", listFiles, err)) - } - } - panic(fmt.Sprintf("detected hanging go command (golang/go#54461); waited %s\n\tcommand:%s\n\tpid:%d", time.Since(start), cmd, cmd.Process.Pid)) -} - -func cmdDebugStr(cmd *exec.Cmd) string { - env := make(map[string]string) - for _, kv := range cmd.Env { - split := strings.SplitN(kv, "=", 2) - if len(split) == 2 { - k, v := split[0], split[1] - env[k] = v - } - } - - var args []string - for _, arg := range cmd.Args { - quoted := strconv.Quote(arg) - if quoted[1:len(quoted)-1] != arg || strings.Contains(arg, " ") { - args = append(args, quoted) - } else { - args = append(args, arg) - } - } - return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) -} - -// WriteOverlays writes each value in the overlay (see the Overlay -// field of go/packages.Config) to a temporary file and returns the name -// of a JSON file describing the mapping that is suitable for the "go -// list -overlay" flag. -// -// On success, the caller must call the cleanup function exactly once -// when the files are no longer needed. -func WriteOverlays(overlay map[string][]byte) (filename string, cleanup func(), err error) { - // Do nothing if there are no overlays in the config. - if len(overlay) == 0 { - return "", func() {}, nil - } - - dir, err := os.MkdirTemp("", "gocommand-*") - if err != nil { - return "", nil, err - } - - // The caller must clean up this directory, - // unless this function returns an error. - // (The cleanup operand of each return - // statement below is ignored.) - defer func() { - cleanup = func() { - os.RemoveAll(dir) - } - if err != nil { - cleanup() - cleanup = nil - } - }() - - // Write each map entry to a temporary file. - overlays := make(map[string]string) - for k, v := range overlay { - // Use a unique basename for each file (001-foo.go), - // to avoid creating nested directories. - base := fmt.Sprintf("%d-%s", 1+len(overlays), filepath.Base(k)) - filename := filepath.Join(dir, base) - err := os.WriteFile(filename, v, 0666) - if err != nil { - return "", nil, err - } - overlays[k] = filename - } - - // Write the JSON overlay file that maps logical file names to temp files. - // - // OverlayJSON is the format overlay files are expected to be in. - // The Replace map maps from overlaid paths to replacement paths: - // the Go command will forward all reads trying to open - // each overlaid path to its replacement path, or consider the overlaid - // path not to exist if the replacement path is empty. - // - // From golang/go#39958. - type OverlayJSON struct { - Replace map[string]string `json:"replace,omitempty"` - } - b, err := json.Marshal(OverlayJSON{Replace: overlays}) - if err != nil { - return "", nil, err - } - filename = filepath.Join(dir, "overlay.json") - if err := os.WriteFile(filename, b, 0666); err != nil { - return "", nil, err - } - - return filename, nil, nil -} diff --git a/vendor/golang.org/x/tools/internal/gocommand/vendor.go b/vendor/golang.org/x/tools/internal/gocommand/vendor.go deleted file mode 100644 index e38d1fb4..00000000 --- a/vendor/golang.org/x/tools/internal/gocommand/vendor.go +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gocommand - -import ( - "bytes" - "context" - "fmt" - "os" - "path/filepath" - "regexp" - "strings" - "time" - - "golang.org/x/mod/semver" -) - -// ModuleJSON holds information about a module. -type ModuleJSON struct { - Path string // module path - Version string // module version - Versions []string // available module versions (with -versions) - Replace *ModuleJSON // replaced by this module - Time *time.Time // time version was created - Update *ModuleJSON // available update, if any (with -u) - Main bool // is this the main module? - Indirect bool // is this module only an indirect dependency of main module? - Dir string // directory holding files for this module, if any - GoMod string // path to go.mod file used when loading this module, if any - GoVersion string // go version used in module -} - -var modFlagRegexp = regexp.MustCompile(`-mod[ =](\w+)`) - -// VendorEnabled reports whether vendoring is enabled. It takes a *Runner to execute Go commands -// with the supplied context.Context and Invocation. The Invocation can contain pre-defined fields, -// of which only Verb and Args are modified to run the appropriate Go command. -// Inspired by setDefaultBuildMod in modload/init.go -func VendorEnabled(ctx context.Context, inv Invocation, r *Runner) (bool, *ModuleJSON, error) { - mainMod, go114, err := getMainModuleAnd114(ctx, inv, r) - if err != nil { - return false, nil, err - } - - // We check the GOFLAGS to see if there is anything overridden or not. - inv.Verb = "env" - inv.Args = []string{"GOFLAGS"} - stdout, err := r.Run(ctx, inv) - if err != nil { - return false, nil, err - } - goflags := string(bytes.TrimSpace(stdout.Bytes())) - matches := modFlagRegexp.FindStringSubmatch(goflags) - var modFlag string - if len(matches) != 0 { - modFlag = matches[1] - } - // Don't override an explicit '-mod=' argument. - if modFlag == "vendor" { - return true, mainMod, nil - } else if modFlag != "" { - return false, nil, nil - } - if mainMod == nil || !go114 { - return false, nil, nil - } - // Check 1.14's automatic vendor mode. - if fi, err := os.Stat(filepath.Join(mainMod.Dir, "vendor")); err == nil && fi.IsDir() { - if mainMod.GoVersion != "" && semver.Compare("v"+mainMod.GoVersion, "v1.14") >= 0 { - // The Go version is at least 1.14, and a vendor directory exists. - // Set -mod=vendor by default. - return true, mainMod, nil - } - } - return false, nil, nil -} - -// getMainModuleAnd114 gets one of the main modules' information and whether the -// go command in use is 1.14+. This is the information needed to figure out -// if vendoring should be enabled. -func getMainModuleAnd114(ctx context.Context, inv Invocation, r *Runner) (*ModuleJSON, bool, error) { - const format = `{{.Path}} -{{.Dir}} -{{.GoMod}} -{{.GoVersion}} -{{range context.ReleaseTags}}{{if eq . "go1.14"}}{{.}}{{end}}{{end}} -` - inv.Verb = "list" - inv.Args = []string{"-m", "-f", format} - stdout, err := r.Run(ctx, inv) - if err != nil { - return nil, false, err - } - - lines := strings.Split(stdout.String(), "\n") - if len(lines) < 5 { - return nil, false, fmt.Errorf("unexpected stdout: %q", stdout.String()) - } - mod := &ModuleJSON{ - Path: lines[0], - Dir: lines[1], - GoMod: lines[2], - GoVersion: lines[3], - Main: true, - } - return mod, lines[4] == "go1.14", nil -} - -// WorkspaceVendorEnabled reports whether workspace vendoring is enabled. It takes a *Runner to execute Go commands -// with the supplied context.Context and Invocation. The Invocation can contain pre-defined fields, -// of which only Verb and Args are modified to run the appropriate Go command. -// Inspired by setDefaultBuildMod in modload/init.go -func WorkspaceVendorEnabled(ctx context.Context, inv Invocation, r *Runner) (bool, []*ModuleJSON, error) { - inv.Verb = "env" - inv.Args = []string{"GOWORK"} - stdout, err := r.Run(ctx, inv) - if err != nil { - return false, nil, err - } - goWork := string(bytes.TrimSpace(stdout.Bytes())) - if fi, err := os.Stat(filepath.Join(filepath.Dir(goWork), "vendor")); err == nil && fi.IsDir() { - mainMods, err := getWorkspaceMainModules(ctx, inv, r) - if err != nil { - return false, nil, err - } - return true, mainMods, nil - } - return false, nil, nil -} - -// getWorkspaceMainModules gets the main modules' information. -// This is the information needed to figure out if vendoring should be enabled. -func getWorkspaceMainModules(ctx context.Context, inv Invocation, r *Runner) ([]*ModuleJSON, error) { - const format = `{{.Path}} -{{.Dir}} -{{.GoMod}} -{{.GoVersion}} -` - inv.Verb = "list" - inv.Args = []string{"-m", "-f", format} - stdout, err := r.Run(ctx, inv) - if err != nil { - return nil, err - } - - lines := strings.Split(strings.TrimSuffix(stdout.String(), "\n"), "\n") - if len(lines) < 4 { - return nil, fmt.Errorf("unexpected stdout: %q", stdout.String()) - } - mods := make([]*ModuleJSON, 0, len(lines)/4) - for i := 0; i < len(lines); i += 4 { - mods = append(mods, &ModuleJSON{ - Path: lines[i], - Dir: lines[i+1], - GoMod: lines[i+2], - GoVersion: lines[i+3], - Main: true, - }) - } - return mods, nil -} diff --git a/vendor/golang.org/x/tools/internal/gocommand/version.go b/vendor/golang.org/x/tools/internal/gocommand/version.go deleted file mode 100644 index 446c5846..00000000 --- a/vendor/golang.org/x/tools/internal/gocommand/version.go +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gocommand - -import ( - "context" - "fmt" - "regexp" - "strings" -) - -// GoVersion reports the minor version number of the highest release -// tag built into the go command on the PATH. -// -// Note that this may be higher than the version of the go tool used -// to build this application, and thus the versions of the standard -// go/{scanner,parser,ast,types} packages that are linked into it. -// In that case, callers should either downgrade to the version of -// go used to build the application, or report an error that the -// application is too old to use the go command on the PATH. -func GoVersion(ctx context.Context, inv Invocation, r *Runner) (int, error) { - inv.Verb = "list" - inv.Args = []string{"-e", "-f", `{{context.ReleaseTags}}`, `--`, `unsafe`} - inv.BuildFlags = nil // This is not a build command. - inv.ModFlag = "" - inv.ModFile = "" - inv.Env = append(inv.Env[:len(inv.Env):len(inv.Env)], "GO111MODULE=off") - - stdoutBytes, err := r.Run(ctx, inv) - if err != nil { - return 0, err - } - stdout := stdoutBytes.String() - if len(stdout) < 3 { - return 0, fmt.Errorf("bad ReleaseTags output: %q", stdout) - } - // Split up "[go1.1 go1.15]" and return highest go1.X value. - tags := strings.Fields(stdout[1 : len(stdout)-2]) - for i := len(tags) - 1; i >= 0; i-- { - var version int - if _, err := fmt.Sscanf(tags[i], "go1.%d", &version); err != nil { - continue - } - return version, nil - } - return 0, fmt.Errorf("no parseable ReleaseTags in %v", tags) -} - -// GoVersionOutput returns the complete output of the go version command. -func GoVersionOutput(ctx context.Context, inv Invocation, r *Runner) (string, error) { - inv.Verb = "version" - goVersion, err := r.Run(ctx, inv) - if err != nil { - return "", err - } - return goVersion.String(), nil -} - -// ParseGoVersionOutput extracts the Go version string -// from the output of the "go version" command. -// Given an unrecognized form, it returns an empty string. -func ParseGoVersionOutput(data string) string { - re := regexp.MustCompile(`^go version (go\S+|devel \S+)`) - m := re.FindStringSubmatch(data) - if len(m) != 2 { - return "" // unrecognized version - } - return m[1] -} diff --git a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go deleted file mode 100644 index 66e69b43..00000000 --- a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package packagesinternal exposes internal-only fields from go/packages. -package packagesinternal - -var GetDepsErrors = func(p interface{}) []*PackageError { return nil } - -type PackageError struct { - ImportStack []string // shortest path from package named on command line to this one - Pos string // position of error (if present, file:line:col) - Err string // the error itself -} - -var TypecheckCgo int -var DepsErrors int // must be set as a LoadMode to call GetDepsErrors - -var SetModFlag = func(config interface{}, value string) {} -var SetModFile = func(config interface{}, value string) {} diff --git a/vendor/golang.org/x/tools/internal/pkgbits/codes.go b/vendor/golang.org/x/tools/internal/pkgbits/codes.go deleted file mode 100644 index f0cabde9..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/codes.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -// A Code is an enum value that can be encoded into bitstreams. -// -// Code types are preferable for enum types, because they allow -// Decoder to detect desyncs. -type Code interface { - // Marker returns the SyncMarker for the Code's dynamic type. - Marker() SyncMarker - - // Value returns the Code's ordinal value. - Value() int -} - -// A CodeVal distinguishes among go/constant.Value encodings. -type CodeVal int - -func (c CodeVal) Marker() SyncMarker { return SyncVal } -func (c CodeVal) Value() int { return int(c) } - -// Note: These values are public and cannot be changed without -// updating the go/types importers. - -const ( - ValBool CodeVal = iota - ValString - ValInt64 - ValBigInt - ValBigRat - ValBigFloat -) - -// A CodeType distinguishes among go/types.Type encodings. -type CodeType int - -func (c CodeType) Marker() SyncMarker { return SyncType } -func (c CodeType) Value() int { return int(c) } - -// Note: These values are public and cannot be changed without -// updating the go/types importers. - -const ( - TypeBasic CodeType = iota - TypeNamed - TypePointer - TypeSlice - TypeArray - TypeChan - TypeMap - TypeSignature - TypeStruct - TypeInterface - TypeUnion - TypeTypeParam -) - -// A CodeObj distinguishes among go/types.Object encodings. -type CodeObj int - -func (c CodeObj) Marker() SyncMarker { return SyncCodeObj } -func (c CodeObj) Value() int { return int(c) } - -// Note: These values are public and cannot be changed without -// updating the go/types importers. - -const ( - ObjAlias CodeObj = iota - ObjConst - ObjType - ObjFunc - ObjVar - ObjStub -) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go deleted file mode 100644 index f6cb37c5..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go +++ /dev/null @@ -1,519 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -import ( - "encoding/binary" - "errors" - "fmt" - "go/constant" - "go/token" - "io" - "math/big" - "os" - "runtime" - "strings" -) - -// A PkgDecoder provides methods for decoding a package's Unified IR -// export data. -type PkgDecoder struct { - // version is the file format version. - version Version - - // sync indicates whether the file uses sync markers. - sync bool - - // pkgPath is the package path for the package to be decoded. - // - // TODO(mdempsky): Remove; unneeded since CL 391014. - pkgPath string - - // elemData is the full data payload of the encoded package. - // Elements are densely and contiguously packed together. - // - // The last 8 bytes of elemData are the package fingerprint. - elemData string - - // elemEnds stores the byte-offset end positions of element - // bitstreams within elemData. - // - // For example, element I's bitstream data starts at elemEnds[I-1] - // (or 0, if I==0) and ends at elemEnds[I]. - // - // Note: elemEnds is indexed by absolute indices, not - // section-relative indices. - elemEnds []uint32 - - // elemEndsEnds stores the index-offset end positions of relocation - // sections within elemEnds. - // - // For example, section K's end positions start at elemEndsEnds[K-1] - // (or 0, if K==0) and end at elemEndsEnds[K]. - elemEndsEnds [numRelocs]uint32 - - scratchRelocEnt []RelocEnt -} - -// PkgPath returns the package path for the package -// -// TODO(mdempsky): Remove; unneeded since CL 391014. -func (pr *PkgDecoder) PkgPath() string { return pr.pkgPath } - -// SyncMarkers reports whether pr uses sync markers. -func (pr *PkgDecoder) SyncMarkers() bool { return pr.sync } - -// NewPkgDecoder returns a PkgDecoder initialized to read the Unified -// IR export data from input. pkgPath is the package path for the -// compilation unit that produced the export data. -func NewPkgDecoder(pkgPath, input string) PkgDecoder { - pr := PkgDecoder{ - pkgPath: pkgPath, - } - - // TODO(mdempsky): Implement direct indexing of input string to - // avoid copying the position information. - - r := strings.NewReader(input) - - var ver uint32 - assert(binary.Read(r, binary.LittleEndian, &ver) == nil) - pr.version = Version(ver) - - if pr.version >= numVersions { - panic(fmt.Errorf("cannot decode %q, export data version %d is greater than maximum supported version %d", pkgPath, pr.version, numVersions-1)) - } - - if pr.version.Has(Flags) { - var flags uint32 - assert(binary.Read(r, binary.LittleEndian, &flags) == nil) - pr.sync = flags&flagSyncMarkers != 0 - } - - assert(binary.Read(r, binary.LittleEndian, pr.elemEndsEnds[:]) == nil) - - pr.elemEnds = make([]uint32, pr.elemEndsEnds[len(pr.elemEndsEnds)-1]) - assert(binary.Read(r, binary.LittleEndian, pr.elemEnds[:]) == nil) - - pos, err := r.Seek(0, io.SeekCurrent) - assert(err == nil) - - pr.elemData = input[pos:] - - const fingerprintSize = 8 - assert(len(pr.elemData)-fingerprintSize == int(pr.elemEnds[len(pr.elemEnds)-1])) - - return pr -} - -// NumElems returns the number of elements in section k. -func (pr *PkgDecoder) NumElems(k RelocKind) int { - count := int(pr.elemEndsEnds[k]) - if k > 0 { - count -= int(pr.elemEndsEnds[k-1]) - } - return count -} - -// TotalElems returns the total number of elements across all sections. -func (pr *PkgDecoder) TotalElems() int { - return len(pr.elemEnds) -} - -// Fingerprint returns the package fingerprint. -func (pr *PkgDecoder) Fingerprint() [8]byte { - var fp [8]byte - copy(fp[:], pr.elemData[len(pr.elemData)-8:]) - return fp -} - -// AbsIdx returns the absolute index for the given (section, index) -// pair. -func (pr *PkgDecoder) AbsIdx(k RelocKind, idx Index) int { - absIdx := int(idx) - if k > 0 { - absIdx += int(pr.elemEndsEnds[k-1]) - } - if absIdx >= int(pr.elemEndsEnds[k]) { - panicf("%v:%v is out of bounds; %v", k, idx, pr.elemEndsEnds) - } - return absIdx -} - -// DataIdx returns the raw element bitstream for the given (section, -// index) pair. -func (pr *PkgDecoder) DataIdx(k RelocKind, idx Index) string { - absIdx := pr.AbsIdx(k, idx) - - var start uint32 - if absIdx > 0 { - start = pr.elemEnds[absIdx-1] - } - end := pr.elemEnds[absIdx] - - return pr.elemData[start:end] -} - -// StringIdx returns the string value for the given string index. -func (pr *PkgDecoder) StringIdx(idx Index) string { - return pr.DataIdx(RelocString, idx) -} - -// NewDecoder returns a Decoder for the given (section, index) pair, -// and decodes the given SyncMarker from the element bitstream. -func (pr *PkgDecoder) NewDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { - r := pr.NewDecoderRaw(k, idx) - r.Sync(marker) - return r -} - -// TempDecoder returns a Decoder for the given (section, index) pair, -// and decodes the given SyncMarker from the element bitstream. -// If possible the Decoder should be RetireDecoder'd when it is no longer -// needed, this will avoid heap allocations. -func (pr *PkgDecoder) TempDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { - r := pr.TempDecoderRaw(k, idx) - r.Sync(marker) - return r -} - -func (pr *PkgDecoder) RetireDecoder(d *Decoder) { - pr.scratchRelocEnt = d.Relocs - d.Relocs = nil -} - -// NewDecoderRaw returns a Decoder for the given (section, index) pair. -// -// Most callers should use NewDecoder instead. -func (pr *PkgDecoder) NewDecoderRaw(k RelocKind, idx Index) Decoder { - r := Decoder{ - common: pr, - k: k, - Idx: idx, - } - - r.Data.Reset(pr.DataIdx(k, idx)) - r.Sync(SyncRelocs) - r.Relocs = make([]RelocEnt, r.Len()) - for i := range r.Relocs { - r.Sync(SyncReloc) - r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} - } - - return r -} - -func (pr *PkgDecoder) TempDecoderRaw(k RelocKind, idx Index) Decoder { - r := Decoder{ - common: pr, - k: k, - Idx: idx, - } - - r.Data.Reset(pr.DataIdx(k, idx)) - r.Sync(SyncRelocs) - l := r.Len() - if cap(pr.scratchRelocEnt) >= l { - r.Relocs = pr.scratchRelocEnt[:l] - pr.scratchRelocEnt = nil - } else { - r.Relocs = make([]RelocEnt, l) - } - for i := range r.Relocs { - r.Sync(SyncReloc) - r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} - } - - return r -} - -// A Decoder provides methods for decoding an individual element's -// bitstream data. -type Decoder struct { - common *PkgDecoder - - Relocs []RelocEnt - Data strings.Reader - - k RelocKind - Idx Index -} - -func (r *Decoder) checkErr(err error) { - if err != nil { - panicf("unexpected decoding error: %w", err) - } -} - -func (r *Decoder) rawUvarint() uint64 { - x, err := readUvarint(&r.Data) - r.checkErr(err) - return x -} - -// readUvarint is a type-specialized copy of encoding/binary.ReadUvarint. -// This avoids the interface conversion and thus has better escape properties, -// which flows up the stack. -func readUvarint(r *strings.Reader) (uint64, error) { - var x uint64 - var s uint - for i := 0; i < binary.MaxVarintLen64; i++ { - b, err := r.ReadByte() - if err != nil { - if i > 0 && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return x, err - } - if b < 0x80 { - if i == binary.MaxVarintLen64-1 && b > 1 { - return x, overflow - } - return x | uint64(b)<> 1) - if ux&1 != 0 { - x = ^x - } - return x -} - -func (r *Decoder) rawReloc(k RelocKind, idx int) Index { - e := r.Relocs[idx] - assert(e.Kind == k) - return e.Idx -} - -// Sync decodes a sync marker from the element bitstream and asserts -// that it matches the expected marker. -// -// If r.common.sync is false, then Sync is a no-op. -func (r *Decoder) Sync(mWant SyncMarker) { - if !r.common.sync { - return - } - - pos, _ := r.Data.Seek(0, io.SeekCurrent) - mHave := SyncMarker(r.rawUvarint()) - writerPCs := make([]int, r.rawUvarint()) - for i := range writerPCs { - writerPCs[i] = int(r.rawUvarint()) - } - - if mHave == mWant { - return - } - - // There's some tension here between printing: - // - // (1) full file paths that tools can recognize (e.g., so emacs - // hyperlinks the "file:line" text for easy navigation), or - // - // (2) short file paths that are easier for humans to read (e.g., by - // omitting redundant or irrelevant details, so it's easier to - // focus on the useful bits that remain). - // - // The current formatting favors the former, as it seems more - // helpful in practice. But perhaps the formatting could be improved - // to better address both concerns. For example, use relative file - // paths if they would be shorter, or rewrite file paths to contain - // "$GOROOT" (like objabi.AbsFile does) if tools can be taught how - // to reliably expand that again. - - fmt.Printf("export data desync: package %q, section %v, index %v, offset %v\n", r.common.pkgPath, r.k, r.Idx, pos) - - fmt.Printf("\nfound %v, written at:\n", mHave) - if len(writerPCs) == 0 { - fmt.Printf("\t[stack trace unavailable; recompile package %q with -d=syncframes]\n", r.common.pkgPath) - } - for _, pc := range writerPCs { - fmt.Printf("\t%s\n", r.common.StringIdx(r.rawReloc(RelocString, pc))) - } - - fmt.Printf("\nexpected %v, reading at:\n", mWant) - var readerPCs [32]uintptr // TODO(mdempsky): Dynamically size? - n := runtime.Callers(2, readerPCs[:]) - for _, pc := range fmtFrames(readerPCs[:n]...) { - fmt.Printf("\t%s\n", pc) - } - - // We already printed a stack trace for the reader, so now we can - // simply exit. Printing a second one with panic or base.Fatalf - // would just be noise. - os.Exit(1) -} - -// Bool decodes and returns a bool value from the element bitstream. -func (r *Decoder) Bool() bool { - r.Sync(SyncBool) - x, err := r.Data.ReadByte() - r.checkErr(err) - assert(x < 2) - return x != 0 -} - -// Int64 decodes and returns an int64 value from the element bitstream. -func (r *Decoder) Int64() int64 { - r.Sync(SyncInt64) - return r.rawVarint() -} - -// Uint64 decodes and returns a uint64 value from the element bitstream. -func (r *Decoder) Uint64() uint64 { - r.Sync(SyncUint64) - return r.rawUvarint() -} - -// Len decodes and returns a non-negative int value from the element bitstream. -func (r *Decoder) Len() int { x := r.Uint64(); v := int(x); assert(uint64(v) == x); return v } - -// Int decodes and returns an int value from the element bitstream. -func (r *Decoder) Int() int { x := r.Int64(); v := int(x); assert(int64(v) == x); return v } - -// Uint decodes and returns a uint value from the element bitstream. -func (r *Decoder) Uint() uint { x := r.Uint64(); v := uint(x); assert(uint64(v) == x); return v } - -// Code decodes a Code value from the element bitstream and returns -// its ordinal value. It's the caller's responsibility to convert the -// result to an appropriate Code type. -// -// TODO(mdempsky): Ideally this method would have signature "Code[T -// Code] T" instead, but we don't allow generic methods and the -// compiler can't depend on generics yet anyway. -func (r *Decoder) Code(mark SyncMarker) int { - r.Sync(mark) - return r.Len() -} - -// Reloc decodes a relocation of expected section k from the element -// bitstream and returns an index to the referenced element. -func (r *Decoder) Reloc(k RelocKind) Index { - r.Sync(SyncUseReloc) - return r.rawReloc(k, r.Len()) -} - -// String decodes and returns a string value from the element -// bitstream. -func (r *Decoder) String() string { - r.Sync(SyncString) - return r.common.StringIdx(r.Reloc(RelocString)) -} - -// Strings decodes and returns a variable-length slice of strings from -// the element bitstream. -func (r *Decoder) Strings() []string { - res := make([]string, r.Len()) - for i := range res { - res[i] = r.String() - } - return res -} - -// Value decodes and returns a constant.Value from the element -// bitstream. -func (r *Decoder) Value() constant.Value { - r.Sync(SyncValue) - isComplex := r.Bool() - val := r.scalar() - if isComplex { - val = constant.BinaryOp(val, token.ADD, constant.MakeImag(r.scalar())) - } - return val -} - -func (r *Decoder) scalar() constant.Value { - switch tag := CodeVal(r.Code(SyncVal)); tag { - default: - panic(fmt.Errorf("unexpected scalar tag: %v", tag)) - - case ValBool: - return constant.MakeBool(r.Bool()) - case ValString: - return constant.MakeString(r.String()) - case ValInt64: - return constant.MakeInt64(r.Int64()) - case ValBigInt: - return constant.Make(r.bigInt()) - case ValBigRat: - num := r.bigInt() - denom := r.bigInt() - return constant.Make(new(big.Rat).SetFrac(num, denom)) - case ValBigFloat: - return constant.Make(r.bigFloat()) - } -} - -func (r *Decoder) bigInt() *big.Int { - v := new(big.Int).SetBytes([]byte(r.String())) - if r.Bool() { - v.Neg(v) - } - return v -} - -func (r *Decoder) bigFloat() *big.Float { - v := new(big.Float).SetPrec(512) - assert(v.UnmarshalText([]byte(r.String())) == nil) - return v -} - -// @@@ Helpers - -// TODO(mdempsky): These should probably be removed. I think they're a -// smell that the export data format is not yet quite right. - -// PeekPkgPath returns the package path for the specified package -// index. -func (pr *PkgDecoder) PeekPkgPath(idx Index) string { - var path string - { - r := pr.TempDecoder(RelocPkg, idx, SyncPkgDef) - path = r.String() - pr.RetireDecoder(&r) - } - if path == "" { - path = pr.pkgPath - } - return path -} - -// PeekObj returns the package path, object name, and CodeObj for the -// specified object index. -func (pr *PkgDecoder) PeekObj(idx Index) (string, string, CodeObj) { - var ridx Index - var name string - var rcode int - { - r := pr.TempDecoder(RelocName, idx, SyncObject1) - r.Sync(SyncSym) - r.Sync(SyncPkg) - ridx = r.Reloc(RelocPkg) - name = r.String() - rcode = r.Code(SyncCodeObj) - pr.RetireDecoder(&r) - } - - path := pr.PeekPkgPath(ridx) - assert(name != "") - - tag := CodeObj(rcode) - - return path, name, tag -} - -// Version reports the version of the bitstream. -func (w *Decoder) Version() Version { return w.common.version } diff --git a/vendor/golang.org/x/tools/internal/pkgbits/doc.go b/vendor/golang.org/x/tools/internal/pkgbits/doc.go deleted file mode 100644 index c8a2796b..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/doc.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package pkgbits implements low-level coding abstractions for -// Unified IR's export data format. -// -// At a low-level, a package is a collection of bitstream elements. -// Each element has a "kind" and a dense, non-negative index. -// Elements can be randomly accessed given their kind and index. -// -// Individual elements are sequences of variable-length values (e.g., -// integers, booleans, strings, go/constant values, cross-references -// to other elements). Package pkgbits provides APIs for encoding and -// decoding these low-level values, but the details of mapping -// higher-level Go constructs into elements is left to higher-level -// abstractions. -// -// Elements may cross-reference each other with "relocations." For -// example, an element representing a pointer type has a relocation -// referring to the element type. -// -// Go constructs may be composed as a constellation of multiple -// elements. For example, a declared function may have one element to -// describe the object (e.g., its name, type, position), and a -// separate element to describe its function body. This allows readers -// some flexibility in efficiently seeking or re-reading data (e.g., -// inlining requires re-reading the function body for each inlined -// call, without needing to re-read the object-level details). -// -// This is a copy of internal/pkgbits in the Go implementation. -package pkgbits diff --git a/vendor/golang.org/x/tools/internal/pkgbits/encoder.go b/vendor/golang.org/x/tools/internal/pkgbits/encoder.go deleted file mode 100644 index c17a1239..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/encoder.go +++ /dev/null @@ -1,392 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -import ( - "bytes" - "crypto/md5" - "encoding/binary" - "go/constant" - "io" - "math/big" - "runtime" - "strings" -) - -// A PkgEncoder provides methods for encoding a package's Unified IR -// export data. -type PkgEncoder struct { - // version of the bitstream. - version Version - - // elems holds the bitstream for previously encoded elements. - elems [numRelocs][]string - - // stringsIdx maps previously encoded strings to their index within - // the RelocString section, to allow deduplication. That is, - // elems[RelocString][stringsIdx[s]] == s (if present). - stringsIdx map[string]Index - - // syncFrames is the number of frames to write at each sync - // marker. A negative value means sync markers are omitted. - syncFrames int -} - -// SyncMarkers reports whether pw uses sync markers. -func (pw *PkgEncoder) SyncMarkers() bool { return pw.syncFrames >= 0 } - -// NewPkgEncoder returns an initialized PkgEncoder. -// -// syncFrames is the number of caller frames that should be serialized -// at Sync points. Serializing additional frames results in larger -// export data files, but can help diagnosing desync errors in -// higher-level Unified IR reader/writer code. If syncFrames is -// negative, then sync markers are omitted entirely. -func NewPkgEncoder(version Version, syncFrames int) PkgEncoder { - return PkgEncoder{ - version: version, - stringsIdx: make(map[string]Index), - syncFrames: syncFrames, - } -} - -// DumpTo writes the package's encoded data to out0 and returns the -// package fingerprint. -func (pw *PkgEncoder) DumpTo(out0 io.Writer) (fingerprint [8]byte) { - h := md5.New() - out := io.MultiWriter(out0, h) - - writeUint32 := func(x uint32) { - assert(binary.Write(out, binary.LittleEndian, x) == nil) - } - - writeUint32(uint32(pw.version)) - - if pw.version.Has(Flags) { - var flags uint32 - if pw.SyncMarkers() { - flags |= flagSyncMarkers - } - writeUint32(flags) - } - - // Write elemEndsEnds. - var sum uint32 - for _, elems := range &pw.elems { - sum += uint32(len(elems)) - writeUint32(sum) - } - - // Write elemEnds. - sum = 0 - for _, elems := range &pw.elems { - for _, elem := range elems { - sum += uint32(len(elem)) - writeUint32(sum) - } - } - - // Write elemData. - for _, elems := range &pw.elems { - for _, elem := range elems { - _, err := io.WriteString(out, elem) - assert(err == nil) - } - } - - // Write fingerprint. - copy(fingerprint[:], h.Sum(nil)) - _, err := out0.Write(fingerprint[:]) - assert(err == nil) - - return -} - -// StringIdx adds a string value to the strings section, if not -// already present, and returns its index. -func (pw *PkgEncoder) StringIdx(s string) Index { - if idx, ok := pw.stringsIdx[s]; ok { - assert(pw.elems[RelocString][idx] == s) - return idx - } - - idx := Index(len(pw.elems[RelocString])) - pw.elems[RelocString] = append(pw.elems[RelocString], s) - pw.stringsIdx[s] = idx - return idx -} - -// NewEncoder returns an Encoder for a new element within the given -// section, and encodes the given SyncMarker as the start of the -// element bitstream. -func (pw *PkgEncoder) NewEncoder(k RelocKind, marker SyncMarker) Encoder { - e := pw.NewEncoderRaw(k) - e.Sync(marker) - return e -} - -// NewEncoderRaw returns an Encoder for a new element within the given -// section. -// -// Most callers should use NewEncoder instead. -func (pw *PkgEncoder) NewEncoderRaw(k RelocKind) Encoder { - idx := Index(len(pw.elems[k])) - pw.elems[k] = append(pw.elems[k], "") // placeholder - - return Encoder{ - p: pw, - k: k, - Idx: idx, - } -} - -// An Encoder provides methods for encoding an individual element's -// bitstream data. -type Encoder struct { - p *PkgEncoder - - Relocs []RelocEnt - RelocMap map[RelocEnt]uint32 - Data bytes.Buffer // accumulated element bitstream data - - encodingRelocHeader bool - - k RelocKind - Idx Index // index within relocation section -} - -// Flush finalizes the element's bitstream and returns its Index. -func (w *Encoder) Flush() Index { - var sb strings.Builder - - // Backup the data so we write the relocations at the front. - var tmp bytes.Buffer - io.Copy(&tmp, &w.Data) - - // TODO(mdempsky): Consider writing these out separately so they're - // easier to strip, along with function bodies, so that we can prune - // down to just the data that's relevant to go/types. - if w.encodingRelocHeader { - panic("encodingRelocHeader already true; recursive flush?") - } - w.encodingRelocHeader = true - w.Sync(SyncRelocs) - w.Len(len(w.Relocs)) - for _, rEnt := range w.Relocs { - w.Sync(SyncReloc) - w.Len(int(rEnt.Kind)) - w.Len(int(rEnt.Idx)) - } - - io.Copy(&sb, &w.Data) - io.Copy(&sb, &tmp) - w.p.elems[w.k][w.Idx] = sb.String() - - return w.Idx -} - -func (w *Encoder) checkErr(err error) { - if err != nil { - panicf("unexpected encoding error: %v", err) - } -} - -func (w *Encoder) rawUvarint(x uint64) { - var buf [binary.MaxVarintLen64]byte - n := binary.PutUvarint(buf[:], x) - _, err := w.Data.Write(buf[:n]) - w.checkErr(err) -} - -func (w *Encoder) rawVarint(x int64) { - // Zig-zag encode. - ux := uint64(x) << 1 - if x < 0 { - ux = ^ux - } - - w.rawUvarint(ux) -} - -func (w *Encoder) rawReloc(r RelocKind, idx Index) int { - e := RelocEnt{r, idx} - if w.RelocMap != nil { - if i, ok := w.RelocMap[e]; ok { - return int(i) - } - } else { - w.RelocMap = make(map[RelocEnt]uint32) - } - - i := len(w.Relocs) - w.RelocMap[e] = uint32(i) - w.Relocs = append(w.Relocs, e) - return i -} - -func (w *Encoder) Sync(m SyncMarker) { - if !w.p.SyncMarkers() { - return - } - - // Writing out stack frame string references requires working - // relocations, but writing out the relocations themselves involves - // sync markers. To prevent infinite recursion, we simply trim the - // stack frame for sync markers within the relocation header. - var frames []string - if !w.encodingRelocHeader && w.p.syncFrames > 0 { - pcs := make([]uintptr, w.p.syncFrames) - n := runtime.Callers(2, pcs) - frames = fmtFrames(pcs[:n]...) - } - - // TODO(mdempsky): Save space by writing out stack frames as a - // linked list so we can share common stack frames. - w.rawUvarint(uint64(m)) - w.rawUvarint(uint64(len(frames))) - for _, frame := range frames { - w.rawUvarint(uint64(w.rawReloc(RelocString, w.p.StringIdx(frame)))) - } -} - -// Bool encodes and writes a bool value into the element bitstream, -// and then returns the bool value. -// -// For simple, 2-alternative encodings, the idiomatic way to call Bool -// is something like: -// -// if w.Bool(x != 0) { -// // alternative #1 -// } else { -// // alternative #2 -// } -// -// For multi-alternative encodings, use Code instead. -func (w *Encoder) Bool(b bool) bool { - w.Sync(SyncBool) - var x byte - if b { - x = 1 - } - err := w.Data.WriteByte(x) - w.checkErr(err) - return b -} - -// Int64 encodes and writes an int64 value into the element bitstream. -func (w *Encoder) Int64(x int64) { - w.Sync(SyncInt64) - w.rawVarint(x) -} - -// Uint64 encodes and writes a uint64 value into the element bitstream. -func (w *Encoder) Uint64(x uint64) { - w.Sync(SyncUint64) - w.rawUvarint(x) -} - -// Len encodes and writes a non-negative int value into the element bitstream. -func (w *Encoder) Len(x int) { assert(x >= 0); w.Uint64(uint64(x)) } - -// Int encodes and writes an int value into the element bitstream. -func (w *Encoder) Int(x int) { w.Int64(int64(x)) } - -// Uint encodes and writes a uint value into the element bitstream. -func (w *Encoder) Uint(x uint) { w.Uint64(uint64(x)) } - -// Reloc encodes and writes a relocation for the given (section, -// index) pair into the element bitstream. -// -// Note: Only the index is formally written into the element -// bitstream, so bitstream decoders must know from context which -// section an encoded relocation refers to. -func (w *Encoder) Reloc(r RelocKind, idx Index) { - w.Sync(SyncUseReloc) - w.Len(w.rawReloc(r, idx)) -} - -// Code encodes and writes a Code value into the element bitstream. -func (w *Encoder) Code(c Code) { - w.Sync(c.Marker()) - w.Len(c.Value()) -} - -// String encodes and writes a string value into the element -// bitstream. -// -// Internally, strings are deduplicated by adding them to the strings -// section (if not already present), and then writing a relocation -// into the element bitstream. -func (w *Encoder) String(s string) { - w.StringRef(w.p.StringIdx(s)) -} - -// StringRef writes a reference to the given index, which must be a -// previously encoded string value. -func (w *Encoder) StringRef(idx Index) { - w.Sync(SyncString) - w.Reloc(RelocString, idx) -} - -// Strings encodes and writes a variable-length slice of strings into -// the element bitstream. -func (w *Encoder) Strings(ss []string) { - w.Len(len(ss)) - for _, s := range ss { - w.String(s) - } -} - -// Value encodes and writes a constant.Value into the element -// bitstream. -func (w *Encoder) Value(val constant.Value) { - w.Sync(SyncValue) - if w.Bool(val.Kind() == constant.Complex) { - w.scalar(constant.Real(val)) - w.scalar(constant.Imag(val)) - } else { - w.scalar(val) - } -} - -func (w *Encoder) scalar(val constant.Value) { - switch v := constant.Val(val).(type) { - default: - panicf("unhandled %v (%v)", val, val.Kind()) - case bool: - w.Code(ValBool) - w.Bool(v) - case string: - w.Code(ValString) - w.String(v) - case int64: - w.Code(ValInt64) - w.Int64(v) - case *big.Int: - w.Code(ValBigInt) - w.bigInt(v) - case *big.Rat: - w.Code(ValBigRat) - w.bigInt(v.Num()) - w.bigInt(v.Denom()) - case *big.Float: - w.Code(ValBigFloat) - w.bigFloat(v) - } -} - -func (w *Encoder) bigInt(v *big.Int) { - b := v.Bytes() - w.String(string(b)) // TODO: More efficient encoding. - w.Bool(v.Sign() < 0) -} - -func (w *Encoder) bigFloat(v *big.Float) { - b := v.Append(nil, 'p', -1) - w.String(string(b)) // TODO: More efficient encoding. -} - -// Version reports the version of the bitstream. -func (w *Encoder) Version() Version { return w.p.version } diff --git a/vendor/golang.org/x/tools/internal/pkgbits/flags.go b/vendor/golang.org/x/tools/internal/pkgbits/flags.go deleted file mode 100644 index 65422274..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/flags.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -const ( - flagSyncMarkers = 1 << iota // file format contains sync markers -) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/reloc.go b/vendor/golang.org/x/tools/internal/pkgbits/reloc.go deleted file mode 100644 index fcdfb97c..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/reloc.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -// A RelocKind indicates a particular section within a unified IR export. -type RelocKind int32 - -// An Index represents a bitstream element index within a particular -// section. -type Index int32 - -// A relocEnt (relocation entry) is an entry in an element's local -// reference table. -// -// TODO(mdempsky): Rename this too. -type RelocEnt struct { - Kind RelocKind - Idx Index -} - -// Reserved indices within the meta relocation section. -const ( - PublicRootIdx Index = 0 - PrivateRootIdx Index = 1 -) - -const ( - RelocString RelocKind = iota - RelocMeta - RelocPosBase - RelocPkg - RelocName - RelocType - RelocObj - RelocObjExt - RelocObjDict - RelocBody - - numRelocs = iota -) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/support.go b/vendor/golang.org/x/tools/internal/pkgbits/support.go deleted file mode 100644 index 50534a29..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/support.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -import "fmt" - -func assert(b bool) { - if !b { - panic("assertion failed") - } -} - -func panicf(format string, args ...any) { - panic(fmt.Errorf(format, args...)) -} diff --git a/vendor/golang.org/x/tools/internal/pkgbits/sync.go b/vendor/golang.org/x/tools/internal/pkgbits/sync.go deleted file mode 100644 index 1520b73a..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/sync.go +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -import ( - "fmt" - "runtime" - "strings" -) - -// fmtFrames formats a backtrace for reporting reader/writer desyncs. -func fmtFrames(pcs ...uintptr) []string { - res := make([]string, 0, len(pcs)) - walkFrames(pcs, func(file string, line int, name string, offset uintptr) { - // Trim package from function name. It's just redundant noise. - name = strings.TrimPrefix(name, "cmd/compile/internal/noder.") - - res = append(res, fmt.Sprintf("%s:%v: %s +0x%v", file, line, name, offset)) - }) - return res -} - -type frameVisitor func(file string, line int, name string, offset uintptr) - -// walkFrames calls visit for each call frame represented by pcs. -// -// pcs should be a slice of PCs, as returned by runtime.Callers. -func walkFrames(pcs []uintptr, visit frameVisitor) { - if len(pcs) == 0 { - return - } - - frames := runtime.CallersFrames(pcs) - for { - frame, more := frames.Next() - visit(frame.File, frame.Line, frame.Function, frame.PC-frame.Entry) - if !more { - return - } - } -} - -// SyncMarker is an enum type that represents markers that may be -// written to export data to ensure the reader and writer stay -// synchronized. -type SyncMarker int - -//go:generate stringer -type=SyncMarker -trimprefix=Sync - -const ( - _ SyncMarker = iota - - // Public markers (known to go/types importers). - - // Low-level coding markers. - SyncEOF - SyncBool - SyncInt64 - SyncUint64 - SyncString - SyncValue - SyncVal - SyncRelocs - SyncReloc - SyncUseReloc - - // Higher-level object and type markers. - SyncPublic - SyncPos - SyncPosBase - SyncObject - SyncObject1 - SyncPkg - SyncPkgDef - SyncMethod - SyncType - SyncTypeIdx - SyncTypeParamNames - SyncSignature - SyncParams - SyncParam - SyncCodeObj - SyncSym - SyncLocalIdent - SyncSelector - - // Private markers (only known to cmd/compile). - SyncPrivate - - SyncFuncExt - SyncVarExt - SyncTypeExt - SyncPragma - - SyncExprList - SyncExprs - SyncExpr - SyncExprType - SyncAssign - SyncOp - SyncFuncLit - SyncCompLit - - SyncDecl - SyncFuncBody - SyncOpenScope - SyncCloseScope - SyncCloseAnotherScope - SyncDeclNames - SyncDeclName - - SyncStmts - SyncBlockStmt - SyncIfStmt - SyncForStmt - SyncSwitchStmt - SyncRangeStmt - SyncCaseClause - SyncCommClause - SyncSelectStmt - SyncDecls - SyncLabeledStmt - SyncUseObjLocal - SyncAddLocal - SyncLinkname - SyncStmt1 - SyncStmtsEnd - SyncLabel - SyncOptLabel - - SyncMultiExpr - SyncRType - SyncConvRTTI -) diff --git a/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go b/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go deleted file mode 100644 index 582ad56d..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go +++ /dev/null @@ -1,92 +0,0 @@ -// Code generated by "stringer -type=SyncMarker -trimprefix=Sync"; DO NOT EDIT. - -package pkgbits - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[SyncEOF-1] - _ = x[SyncBool-2] - _ = x[SyncInt64-3] - _ = x[SyncUint64-4] - _ = x[SyncString-5] - _ = x[SyncValue-6] - _ = x[SyncVal-7] - _ = x[SyncRelocs-8] - _ = x[SyncReloc-9] - _ = x[SyncUseReloc-10] - _ = x[SyncPublic-11] - _ = x[SyncPos-12] - _ = x[SyncPosBase-13] - _ = x[SyncObject-14] - _ = x[SyncObject1-15] - _ = x[SyncPkg-16] - _ = x[SyncPkgDef-17] - _ = x[SyncMethod-18] - _ = x[SyncType-19] - _ = x[SyncTypeIdx-20] - _ = x[SyncTypeParamNames-21] - _ = x[SyncSignature-22] - _ = x[SyncParams-23] - _ = x[SyncParam-24] - _ = x[SyncCodeObj-25] - _ = x[SyncSym-26] - _ = x[SyncLocalIdent-27] - _ = x[SyncSelector-28] - _ = x[SyncPrivate-29] - _ = x[SyncFuncExt-30] - _ = x[SyncVarExt-31] - _ = x[SyncTypeExt-32] - _ = x[SyncPragma-33] - _ = x[SyncExprList-34] - _ = x[SyncExprs-35] - _ = x[SyncExpr-36] - _ = x[SyncExprType-37] - _ = x[SyncAssign-38] - _ = x[SyncOp-39] - _ = x[SyncFuncLit-40] - _ = x[SyncCompLit-41] - _ = x[SyncDecl-42] - _ = x[SyncFuncBody-43] - _ = x[SyncOpenScope-44] - _ = x[SyncCloseScope-45] - _ = x[SyncCloseAnotherScope-46] - _ = x[SyncDeclNames-47] - _ = x[SyncDeclName-48] - _ = x[SyncStmts-49] - _ = x[SyncBlockStmt-50] - _ = x[SyncIfStmt-51] - _ = x[SyncForStmt-52] - _ = x[SyncSwitchStmt-53] - _ = x[SyncRangeStmt-54] - _ = x[SyncCaseClause-55] - _ = x[SyncCommClause-56] - _ = x[SyncSelectStmt-57] - _ = x[SyncDecls-58] - _ = x[SyncLabeledStmt-59] - _ = x[SyncUseObjLocal-60] - _ = x[SyncAddLocal-61] - _ = x[SyncLinkname-62] - _ = x[SyncStmt1-63] - _ = x[SyncStmtsEnd-64] - _ = x[SyncLabel-65] - _ = x[SyncOptLabel-66] - _ = x[SyncMultiExpr-67] - _ = x[SyncRType-68] - _ = x[SyncConvRTTI-69] -} - -const _SyncMarker_name = "EOFBoolInt64Uint64StringValueValRelocsRelocUseRelocPublicPosPosBaseObjectObject1PkgPkgDefMethodTypeTypeIdxTypeParamNamesSignatureParamsParamCodeObjSymLocalIdentSelectorPrivateFuncExtVarExtTypeExtPragmaExprListExprsExprExprTypeAssignOpFuncLitCompLitDeclFuncBodyOpenScopeCloseScopeCloseAnotherScopeDeclNamesDeclNameStmtsBlockStmtIfStmtForStmtSwitchStmtRangeStmtCaseClauseCommClauseSelectStmtDeclsLabeledStmtUseObjLocalAddLocalLinknameStmt1StmtsEndLabelOptLabelMultiExprRTypeConvRTTI" - -var _SyncMarker_index = [...]uint16{0, 3, 7, 12, 18, 24, 29, 32, 38, 43, 51, 57, 60, 67, 73, 80, 83, 89, 95, 99, 106, 120, 129, 135, 140, 147, 150, 160, 168, 175, 182, 188, 195, 201, 209, 214, 218, 226, 232, 234, 241, 248, 252, 260, 269, 279, 296, 305, 313, 318, 327, 333, 340, 350, 359, 369, 379, 389, 394, 405, 416, 424, 432, 437, 445, 450, 458, 467, 472, 480} - -func (i SyncMarker) String() string { - i -= 1 - if i < 0 || i >= SyncMarker(len(_SyncMarker_index)-1) { - return "SyncMarker(" + strconv.FormatInt(int64(i+1), 10) + ")" - } - return _SyncMarker_name[_SyncMarker_index[i]:_SyncMarker_index[i+1]] -} diff --git a/vendor/golang.org/x/tools/internal/pkgbits/version.go b/vendor/golang.org/x/tools/internal/pkgbits/version.go deleted file mode 100644 index 53af9df2..00000000 --- a/vendor/golang.org/x/tools/internal/pkgbits/version.go +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -// Version indicates a version of a unified IR bitstream. -// Each Version indicates the addition, removal, or change of -// new data in the bitstream. -// -// These are serialized to disk and the interpretation remains fixed. -type Version uint32 - -const ( - // V0: initial prototype. - // - // All data that is not assigned a Field is in version V0 - // and has not been deprecated. - V0 Version = iota - - // V1: adds the Flags uint32 word - V1 - - // V2: removes unused legacy fields and supports type parameters for aliases. - // - remove the legacy "has init" bool from the public root - // - remove obj's "derived func instance" bool - // - add a TypeParamNames field to ObjAlias - // - remove derived info "needed" bool - V2 - - numVersions = iota -) - -// Field denotes a unit of data in the serialized unified IR bitstream. -// It is conceptually a like field in a structure. -// -// We only really need Fields when the data may or may not be present -// in a stream based on the Version of the bitstream. -// -// Unlike much of pkgbits, Fields are not serialized and -// can change values as needed. -type Field int - -const ( - // Flags in a uint32 in the header of a bitstream - // that is used to indicate whether optional features are enabled. - Flags Field = iota - - // Deprecated: HasInit was a bool indicating whether a package - // has any init functions. - HasInit - - // Deprecated: DerivedFuncInstance was a bool indicating - // whether an object was a function instance. - DerivedFuncInstance - - // ObjAlias has a list of TypeParamNames. - AliasTypeParamNames - - // Deprecated: DerivedInfoNeeded was a bool indicating - // whether a type was a derived type. - DerivedInfoNeeded - - numFields = iota -) - -// introduced is the version a field was added. -var introduced = [numFields]Version{ - Flags: V1, - AliasTypeParamNames: V2, -} - -// removed is the version a field was removed in or 0 for fields -// that have not yet been deprecated. -// (So removed[f]-1 is the last version it is included in.) -var removed = [numFields]Version{ - HasInit: V2, - DerivedFuncInstance: V2, - DerivedInfoNeeded: V2, -} - -// Has reports whether field f is present in a bitstream at version v. -func (v Version) Has(f Field) bool { - return introduced[f] <= v && (v < removed[f] || removed[f] == V0) -} diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go deleted file mode 100644 index 9f0b871f..00000000 --- a/vendor/golang.org/x/tools/internal/stdlib/manifest.go +++ /dev/null @@ -1,17650 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate.go. DO NOT EDIT. - -package stdlib - -var PackageSymbols = map[string][]Symbol{ - "archive/tar": { - {"(*Header).FileInfo", Method, 1}, - {"(*Reader).Next", Method, 0}, - {"(*Reader).Read", Method, 0}, - {"(*Writer).AddFS", Method, 22}, - {"(*Writer).Close", Method, 0}, - {"(*Writer).Flush", Method, 0}, - {"(*Writer).Write", Method, 0}, - {"(*Writer).WriteHeader", Method, 0}, - {"(Format).String", Method, 10}, - {"ErrFieldTooLong", Var, 0}, - {"ErrHeader", Var, 0}, - {"ErrInsecurePath", Var, 20}, - {"ErrWriteAfterClose", Var, 0}, - {"ErrWriteTooLong", Var, 0}, - {"FileInfoHeader", Func, 1}, - {"FileInfoNames", Type, 23}, - {"Format", Type, 10}, - {"FormatGNU", Const, 10}, - {"FormatPAX", Const, 10}, - {"FormatUSTAR", Const, 10}, - {"FormatUnknown", Const, 10}, - {"Header", Type, 0}, - {"Header.AccessTime", Field, 0}, - {"Header.ChangeTime", Field, 0}, - {"Header.Devmajor", Field, 0}, - {"Header.Devminor", Field, 0}, - {"Header.Format", Field, 10}, - {"Header.Gid", Field, 0}, - {"Header.Gname", Field, 0}, - {"Header.Linkname", Field, 0}, - {"Header.ModTime", Field, 0}, - {"Header.Mode", Field, 0}, - {"Header.Name", Field, 0}, - {"Header.PAXRecords", Field, 10}, - {"Header.Size", Field, 0}, - {"Header.Typeflag", Field, 0}, - {"Header.Uid", Field, 0}, - {"Header.Uname", Field, 0}, - {"Header.Xattrs", Field, 3}, - {"NewReader", Func, 0}, - {"NewWriter", Func, 0}, - {"Reader", Type, 0}, - {"TypeBlock", Const, 0}, - {"TypeChar", Const, 0}, - {"TypeCont", Const, 0}, - {"TypeDir", Const, 0}, - {"TypeFifo", Const, 0}, - {"TypeGNULongLink", Const, 1}, - {"TypeGNULongName", Const, 1}, - {"TypeGNUSparse", Const, 3}, - {"TypeLink", Const, 0}, - {"TypeReg", Const, 0}, - {"TypeRegA", Const, 0}, - {"TypeSymlink", Const, 0}, - {"TypeXGlobalHeader", Const, 0}, - {"TypeXHeader", Const, 0}, - {"Writer", Type, 0}, - }, - "archive/zip": { - {"(*File).DataOffset", Method, 2}, - {"(*File).FileInfo", Method, 0}, - {"(*File).ModTime", Method, 0}, - {"(*File).Mode", Method, 0}, - {"(*File).Open", Method, 0}, - {"(*File).OpenRaw", Method, 17}, - {"(*File).SetModTime", Method, 0}, - {"(*File).SetMode", Method, 0}, - {"(*FileHeader).FileInfo", Method, 0}, - {"(*FileHeader).ModTime", Method, 0}, - {"(*FileHeader).Mode", Method, 0}, - {"(*FileHeader).SetModTime", Method, 0}, - {"(*FileHeader).SetMode", Method, 0}, - {"(*ReadCloser).Close", Method, 0}, - {"(*ReadCloser).Open", Method, 16}, - {"(*ReadCloser).RegisterDecompressor", Method, 6}, - {"(*Reader).Open", Method, 16}, - {"(*Reader).RegisterDecompressor", Method, 6}, - {"(*Writer).AddFS", Method, 22}, - {"(*Writer).Close", Method, 0}, - {"(*Writer).Copy", Method, 17}, - {"(*Writer).Create", Method, 0}, - {"(*Writer).CreateHeader", Method, 0}, - {"(*Writer).CreateRaw", Method, 17}, - {"(*Writer).Flush", Method, 4}, - {"(*Writer).RegisterCompressor", Method, 6}, - {"(*Writer).SetComment", Method, 10}, - {"(*Writer).SetOffset", Method, 5}, - {"Compressor", Type, 2}, - {"Decompressor", Type, 2}, - {"Deflate", Const, 0}, - {"ErrAlgorithm", Var, 0}, - {"ErrChecksum", Var, 0}, - {"ErrFormat", Var, 0}, - {"ErrInsecurePath", Var, 20}, - {"File", Type, 0}, - {"File.FileHeader", Field, 0}, - {"FileHeader", Type, 0}, - {"FileHeader.CRC32", Field, 0}, - {"FileHeader.Comment", Field, 0}, - {"FileHeader.CompressedSize", Field, 0}, - {"FileHeader.CompressedSize64", Field, 1}, - {"FileHeader.CreatorVersion", Field, 0}, - {"FileHeader.ExternalAttrs", Field, 0}, - {"FileHeader.Extra", Field, 0}, - {"FileHeader.Flags", Field, 0}, - {"FileHeader.Method", Field, 0}, - {"FileHeader.Modified", Field, 10}, - {"FileHeader.ModifiedDate", Field, 0}, - {"FileHeader.ModifiedTime", Field, 0}, - {"FileHeader.Name", Field, 0}, - {"FileHeader.NonUTF8", Field, 10}, - {"FileHeader.ReaderVersion", Field, 0}, - {"FileHeader.UncompressedSize", Field, 0}, - {"FileHeader.UncompressedSize64", Field, 1}, - {"FileInfoHeader", Func, 0}, - {"NewReader", Func, 0}, - {"NewWriter", Func, 0}, - {"OpenReader", Func, 0}, - {"ReadCloser", Type, 0}, - {"ReadCloser.Reader", Field, 0}, - {"Reader", Type, 0}, - {"Reader.Comment", Field, 0}, - {"Reader.File", Field, 0}, - {"RegisterCompressor", Func, 2}, - {"RegisterDecompressor", Func, 2}, - {"Store", Const, 0}, - {"Writer", Type, 0}, - }, - "bufio": { - {"(*Reader).Buffered", Method, 0}, - {"(*Reader).Discard", Method, 5}, - {"(*Reader).Peek", Method, 0}, - {"(*Reader).Read", Method, 0}, - {"(*Reader).ReadByte", Method, 0}, - {"(*Reader).ReadBytes", Method, 0}, - {"(*Reader).ReadLine", Method, 0}, - {"(*Reader).ReadRune", Method, 0}, - {"(*Reader).ReadSlice", Method, 0}, - {"(*Reader).ReadString", Method, 0}, - {"(*Reader).Reset", Method, 2}, - {"(*Reader).Size", Method, 10}, - {"(*Reader).UnreadByte", Method, 0}, - {"(*Reader).UnreadRune", Method, 0}, - {"(*Reader).WriteTo", Method, 1}, - {"(*Scanner).Buffer", Method, 6}, - {"(*Scanner).Bytes", Method, 1}, - {"(*Scanner).Err", Method, 1}, - {"(*Scanner).Scan", Method, 1}, - {"(*Scanner).Split", Method, 1}, - {"(*Scanner).Text", Method, 1}, - {"(*Writer).Available", Method, 0}, - {"(*Writer).AvailableBuffer", Method, 18}, - {"(*Writer).Buffered", Method, 0}, - {"(*Writer).Flush", Method, 0}, - {"(*Writer).ReadFrom", Method, 1}, - {"(*Writer).Reset", Method, 2}, - {"(*Writer).Size", Method, 10}, - {"(*Writer).Write", Method, 0}, - {"(*Writer).WriteByte", Method, 0}, - {"(*Writer).WriteRune", Method, 0}, - {"(*Writer).WriteString", Method, 0}, - {"(ReadWriter).Available", Method, 0}, - {"(ReadWriter).AvailableBuffer", Method, 18}, - {"(ReadWriter).Discard", Method, 5}, - {"(ReadWriter).Flush", Method, 0}, - {"(ReadWriter).Peek", Method, 0}, - {"(ReadWriter).Read", Method, 0}, - {"(ReadWriter).ReadByte", Method, 0}, - {"(ReadWriter).ReadBytes", Method, 0}, - {"(ReadWriter).ReadFrom", Method, 1}, - {"(ReadWriter).ReadLine", Method, 0}, - {"(ReadWriter).ReadRune", Method, 0}, - {"(ReadWriter).ReadSlice", Method, 0}, - {"(ReadWriter).ReadString", Method, 0}, - {"(ReadWriter).UnreadByte", Method, 0}, - {"(ReadWriter).UnreadRune", Method, 0}, - {"(ReadWriter).Write", Method, 0}, - {"(ReadWriter).WriteByte", Method, 0}, - {"(ReadWriter).WriteRune", Method, 0}, - {"(ReadWriter).WriteString", Method, 0}, - {"(ReadWriter).WriteTo", Method, 1}, - {"ErrAdvanceTooFar", Var, 1}, - {"ErrBadReadCount", Var, 15}, - {"ErrBufferFull", Var, 0}, - {"ErrFinalToken", Var, 6}, - {"ErrInvalidUnreadByte", Var, 0}, - {"ErrInvalidUnreadRune", Var, 0}, - {"ErrNegativeAdvance", Var, 1}, - {"ErrNegativeCount", Var, 0}, - {"ErrTooLong", Var, 1}, - {"MaxScanTokenSize", Const, 1}, - {"NewReadWriter", Func, 0}, - {"NewReader", Func, 0}, - {"NewReaderSize", Func, 0}, - {"NewScanner", Func, 1}, - {"NewWriter", Func, 0}, - {"NewWriterSize", Func, 0}, - {"ReadWriter", Type, 0}, - {"ReadWriter.Reader", Field, 0}, - {"ReadWriter.Writer", Field, 0}, - {"Reader", Type, 0}, - {"ScanBytes", Func, 1}, - {"ScanLines", Func, 1}, - {"ScanRunes", Func, 1}, - {"ScanWords", Func, 1}, - {"Scanner", Type, 1}, - {"SplitFunc", Type, 1}, - {"Writer", Type, 0}, - }, - "bytes": { - {"(*Buffer).Available", Method, 21}, - {"(*Buffer).AvailableBuffer", Method, 21}, - {"(*Buffer).Bytes", Method, 0}, - {"(*Buffer).Cap", Method, 5}, - {"(*Buffer).Grow", Method, 1}, - {"(*Buffer).Len", Method, 0}, - {"(*Buffer).Next", Method, 0}, - {"(*Buffer).Read", Method, 0}, - {"(*Buffer).ReadByte", Method, 0}, - {"(*Buffer).ReadBytes", Method, 0}, - {"(*Buffer).ReadFrom", Method, 0}, - {"(*Buffer).ReadRune", Method, 0}, - {"(*Buffer).ReadString", Method, 0}, - {"(*Buffer).Reset", Method, 0}, - {"(*Buffer).String", Method, 0}, - {"(*Buffer).Truncate", Method, 0}, - {"(*Buffer).UnreadByte", Method, 0}, - {"(*Buffer).UnreadRune", Method, 0}, - {"(*Buffer).Write", Method, 0}, - {"(*Buffer).WriteByte", Method, 0}, - {"(*Buffer).WriteRune", Method, 0}, - {"(*Buffer).WriteString", Method, 0}, - {"(*Buffer).WriteTo", Method, 0}, - {"(*Reader).Len", Method, 0}, - {"(*Reader).Read", Method, 0}, - {"(*Reader).ReadAt", Method, 0}, - {"(*Reader).ReadByte", Method, 0}, - {"(*Reader).ReadRune", Method, 0}, - {"(*Reader).Reset", Method, 7}, - {"(*Reader).Seek", Method, 0}, - {"(*Reader).Size", Method, 5}, - {"(*Reader).UnreadByte", Method, 0}, - {"(*Reader).UnreadRune", Method, 0}, - {"(*Reader).WriteTo", Method, 1}, - {"Buffer", Type, 0}, - {"Clone", Func, 20}, - {"Compare", Func, 0}, - {"Contains", Func, 0}, - {"ContainsAny", Func, 7}, - {"ContainsFunc", Func, 21}, - {"ContainsRune", Func, 7}, - {"Count", Func, 0}, - {"Cut", Func, 18}, - {"CutPrefix", Func, 20}, - {"CutSuffix", Func, 20}, - {"Equal", Func, 0}, - {"EqualFold", Func, 0}, - {"ErrTooLarge", Var, 0}, - {"Fields", Func, 0}, - {"FieldsFunc", Func, 0}, - {"FieldsFuncSeq", Func, 24}, - {"FieldsSeq", Func, 24}, - {"HasPrefix", Func, 0}, - {"HasSuffix", Func, 0}, - {"Index", Func, 0}, - {"IndexAny", Func, 0}, - {"IndexByte", Func, 0}, - {"IndexFunc", Func, 0}, - {"IndexRune", Func, 0}, - {"Join", Func, 0}, - {"LastIndex", Func, 0}, - {"LastIndexAny", Func, 0}, - {"LastIndexByte", Func, 5}, - {"LastIndexFunc", Func, 0}, - {"Lines", Func, 24}, - {"Map", Func, 0}, - {"MinRead", Const, 0}, - {"NewBuffer", Func, 0}, - {"NewBufferString", Func, 0}, - {"NewReader", Func, 0}, - {"Reader", Type, 0}, - {"Repeat", Func, 0}, - {"Replace", Func, 0}, - {"ReplaceAll", Func, 12}, - {"Runes", Func, 0}, - {"Split", Func, 0}, - {"SplitAfter", Func, 0}, - {"SplitAfterN", Func, 0}, - {"SplitAfterSeq", Func, 24}, - {"SplitN", Func, 0}, - {"SplitSeq", Func, 24}, - {"Title", Func, 0}, - {"ToLower", Func, 0}, - {"ToLowerSpecial", Func, 0}, - {"ToTitle", Func, 0}, - {"ToTitleSpecial", Func, 0}, - {"ToUpper", Func, 0}, - {"ToUpperSpecial", Func, 0}, - {"ToValidUTF8", Func, 13}, - {"Trim", Func, 0}, - {"TrimFunc", Func, 0}, - {"TrimLeft", Func, 0}, - {"TrimLeftFunc", Func, 0}, - {"TrimPrefix", Func, 1}, - {"TrimRight", Func, 0}, - {"TrimRightFunc", Func, 0}, - {"TrimSpace", Func, 0}, - {"TrimSuffix", Func, 1}, - }, - "cmp": { - {"Compare", Func, 21}, - {"Less", Func, 21}, - {"Or", Func, 22}, - {"Ordered", Type, 21}, - }, - "compress/bzip2": { - {"(StructuralError).Error", Method, 0}, - {"NewReader", Func, 0}, - {"StructuralError", Type, 0}, - }, - "compress/flate": { - {"(*ReadError).Error", Method, 0}, - {"(*WriteError).Error", Method, 0}, - {"(*Writer).Close", Method, 0}, - {"(*Writer).Flush", Method, 0}, - {"(*Writer).Reset", Method, 2}, - {"(*Writer).Write", Method, 0}, - {"(CorruptInputError).Error", Method, 0}, - {"(InternalError).Error", Method, 0}, - {"BestCompression", Const, 0}, - {"BestSpeed", Const, 0}, - {"CorruptInputError", Type, 0}, - {"DefaultCompression", Const, 0}, - {"HuffmanOnly", Const, 7}, - {"InternalError", Type, 0}, - {"NewReader", Func, 0}, - {"NewReaderDict", Func, 0}, - {"NewWriter", Func, 0}, - {"NewWriterDict", Func, 0}, - {"NoCompression", Const, 0}, - {"ReadError", Type, 0}, - {"ReadError.Err", Field, 0}, - {"ReadError.Offset", Field, 0}, - {"Reader", Type, 0}, - {"Resetter", Type, 4}, - {"WriteError", Type, 0}, - {"WriteError.Err", Field, 0}, - {"WriteError.Offset", Field, 0}, - {"Writer", Type, 0}, - }, - "compress/gzip": { - {"(*Reader).Close", Method, 0}, - {"(*Reader).Multistream", Method, 4}, - {"(*Reader).Read", Method, 0}, - {"(*Reader).Reset", Method, 3}, - {"(*Writer).Close", Method, 0}, - {"(*Writer).Flush", Method, 1}, - {"(*Writer).Reset", Method, 2}, - {"(*Writer).Write", Method, 0}, - {"BestCompression", Const, 0}, - {"BestSpeed", Const, 0}, - {"DefaultCompression", Const, 0}, - {"ErrChecksum", Var, 0}, - {"ErrHeader", Var, 0}, - {"Header", Type, 0}, - {"Header.Comment", Field, 0}, - {"Header.Extra", Field, 0}, - {"Header.ModTime", Field, 0}, - {"Header.Name", Field, 0}, - {"Header.OS", Field, 0}, - {"HuffmanOnly", Const, 8}, - {"NewReader", Func, 0}, - {"NewWriter", Func, 0}, - {"NewWriterLevel", Func, 0}, - {"NoCompression", Const, 0}, - {"Reader", Type, 0}, - {"Reader.Header", Field, 0}, - {"Writer", Type, 0}, - {"Writer.Header", Field, 0}, - }, - "compress/lzw": { - {"(*Reader).Close", Method, 17}, - {"(*Reader).Read", Method, 17}, - {"(*Reader).Reset", Method, 17}, - {"(*Writer).Close", Method, 17}, - {"(*Writer).Reset", Method, 17}, - {"(*Writer).Write", Method, 17}, - {"LSB", Const, 0}, - {"MSB", Const, 0}, - {"NewReader", Func, 0}, - {"NewWriter", Func, 0}, - {"Order", Type, 0}, - {"Reader", Type, 17}, - {"Writer", Type, 17}, - }, - "compress/zlib": { - {"(*Writer).Close", Method, 0}, - {"(*Writer).Flush", Method, 0}, - {"(*Writer).Reset", Method, 2}, - {"(*Writer).Write", Method, 0}, - {"BestCompression", Const, 0}, - {"BestSpeed", Const, 0}, - {"DefaultCompression", Const, 0}, - {"ErrChecksum", Var, 0}, - {"ErrDictionary", Var, 0}, - {"ErrHeader", Var, 0}, - {"HuffmanOnly", Const, 8}, - {"NewReader", Func, 0}, - {"NewReaderDict", Func, 0}, - {"NewWriter", Func, 0}, - {"NewWriterLevel", Func, 0}, - {"NewWriterLevelDict", Func, 0}, - {"NoCompression", Const, 0}, - {"Resetter", Type, 4}, - {"Writer", Type, 0}, - }, - "container/heap": { - {"Fix", Func, 2}, - {"Init", Func, 0}, - {"Interface", Type, 0}, - {"Pop", Func, 0}, - {"Push", Func, 0}, - {"Remove", Func, 0}, - }, - "container/list": { - {"(*Element).Next", Method, 0}, - {"(*Element).Prev", Method, 0}, - {"(*List).Back", Method, 0}, - {"(*List).Front", Method, 0}, - {"(*List).Init", Method, 0}, - {"(*List).InsertAfter", Method, 0}, - {"(*List).InsertBefore", Method, 0}, - {"(*List).Len", Method, 0}, - {"(*List).MoveAfter", Method, 2}, - {"(*List).MoveBefore", Method, 2}, - {"(*List).MoveToBack", Method, 0}, - {"(*List).MoveToFront", Method, 0}, - {"(*List).PushBack", Method, 0}, - {"(*List).PushBackList", Method, 0}, - {"(*List).PushFront", Method, 0}, - {"(*List).PushFrontList", Method, 0}, - {"(*List).Remove", Method, 0}, - {"Element", Type, 0}, - {"Element.Value", Field, 0}, - {"List", Type, 0}, - {"New", Func, 0}, - }, - "container/ring": { - {"(*Ring).Do", Method, 0}, - {"(*Ring).Len", Method, 0}, - {"(*Ring).Link", Method, 0}, - {"(*Ring).Move", Method, 0}, - {"(*Ring).Next", Method, 0}, - {"(*Ring).Prev", Method, 0}, - {"(*Ring).Unlink", Method, 0}, - {"New", Func, 0}, - {"Ring", Type, 0}, - {"Ring.Value", Field, 0}, - }, - "context": { - {"AfterFunc", Func, 21}, - {"Background", Func, 7}, - {"CancelCauseFunc", Type, 20}, - {"CancelFunc", Type, 7}, - {"Canceled", Var, 7}, - {"Cause", Func, 20}, - {"Context", Type, 7}, - {"DeadlineExceeded", Var, 7}, - {"TODO", Func, 7}, - {"WithCancel", Func, 7}, - {"WithCancelCause", Func, 20}, - {"WithDeadline", Func, 7}, - {"WithDeadlineCause", Func, 21}, - {"WithTimeout", Func, 7}, - {"WithTimeoutCause", Func, 21}, - {"WithValue", Func, 7}, - {"WithoutCancel", Func, 21}, - }, - "crypto": { - {"(Hash).Available", Method, 0}, - {"(Hash).HashFunc", Method, 4}, - {"(Hash).New", Method, 0}, - {"(Hash).Size", Method, 0}, - {"(Hash).String", Method, 15}, - {"BLAKE2b_256", Const, 9}, - {"BLAKE2b_384", Const, 9}, - {"BLAKE2b_512", Const, 9}, - {"BLAKE2s_256", Const, 9}, - {"Decrypter", Type, 5}, - {"DecrypterOpts", Type, 5}, - {"Hash", Type, 0}, - {"MD4", Const, 0}, - {"MD5", Const, 0}, - {"MD5SHA1", Const, 0}, - {"PrivateKey", Type, 0}, - {"PublicKey", Type, 2}, - {"RIPEMD160", Const, 0}, - {"RegisterHash", Func, 0}, - {"SHA1", Const, 0}, - {"SHA224", Const, 0}, - {"SHA256", Const, 0}, - {"SHA384", Const, 0}, - {"SHA3_224", Const, 4}, - {"SHA3_256", Const, 4}, - {"SHA3_384", Const, 4}, - {"SHA3_512", Const, 4}, - {"SHA512", Const, 0}, - {"SHA512_224", Const, 5}, - {"SHA512_256", Const, 5}, - {"Signer", Type, 4}, - {"SignerOpts", Type, 4}, - }, - "crypto/aes": { - {"(KeySizeError).Error", Method, 0}, - {"BlockSize", Const, 0}, - {"KeySizeError", Type, 0}, - {"NewCipher", Func, 0}, - }, - "crypto/cipher": { - {"(StreamReader).Read", Method, 0}, - {"(StreamWriter).Close", Method, 0}, - {"(StreamWriter).Write", Method, 0}, - {"AEAD", Type, 2}, - {"Block", Type, 0}, - {"BlockMode", Type, 0}, - {"NewCBCDecrypter", Func, 0}, - {"NewCBCEncrypter", Func, 0}, - {"NewCFBDecrypter", Func, 0}, - {"NewCFBEncrypter", Func, 0}, - {"NewCTR", Func, 0}, - {"NewGCM", Func, 2}, - {"NewGCMWithNonceSize", Func, 5}, - {"NewGCMWithRandomNonce", Func, 24}, - {"NewGCMWithTagSize", Func, 11}, - {"NewOFB", Func, 0}, - {"Stream", Type, 0}, - {"StreamReader", Type, 0}, - {"StreamReader.R", Field, 0}, - {"StreamReader.S", Field, 0}, - {"StreamWriter", Type, 0}, - {"StreamWriter.Err", Field, 0}, - {"StreamWriter.S", Field, 0}, - {"StreamWriter.W", Field, 0}, - }, - "crypto/des": { - {"(KeySizeError).Error", Method, 0}, - {"BlockSize", Const, 0}, - {"KeySizeError", Type, 0}, - {"NewCipher", Func, 0}, - {"NewTripleDESCipher", Func, 0}, - }, - "crypto/dsa": { - {"ErrInvalidPublicKey", Var, 0}, - {"GenerateKey", Func, 0}, - {"GenerateParameters", Func, 0}, - {"L1024N160", Const, 0}, - {"L2048N224", Const, 0}, - {"L2048N256", Const, 0}, - {"L3072N256", Const, 0}, - {"ParameterSizes", Type, 0}, - {"Parameters", Type, 0}, - {"Parameters.G", Field, 0}, - {"Parameters.P", Field, 0}, - {"Parameters.Q", Field, 0}, - {"PrivateKey", Type, 0}, - {"PrivateKey.PublicKey", Field, 0}, - {"PrivateKey.X", Field, 0}, - {"PublicKey", Type, 0}, - {"PublicKey.Parameters", Field, 0}, - {"PublicKey.Y", Field, 0}, - {"Sign", Func, 0}, - {"Verify", Func, 0}, - }, - "crypto/ecdh": { - {"(*PrivateKey).Bytes", Method, 20}, - {"(*PrivateKey).Curve", Method, 20}, - {"(*PrivateKey).ECDH", Method, 20}, - {"(*PrivateKey).Equal", Method, 20}, - {"(*PrivateKey).Public", Method, 20}, - {"(*PrivateKey).PublicKey", Method, 20}, - {"(*PublicKey).Bytes", Method, 20}, - {"(*PublicKey).Curve", Method, 20}, - {"(*PublicKey).Equal", Method, 20}, - {"Curve", Type, 20}, - {"P256", Func, 20}, - {"P384", Func, 20}, - {"P521", Func, 20}, - {"PrivateKey", Type, 20}, - {"PublicKey", Type, 20}, - {"X25519", Func, 20}, - }, - "crypto/ecdsa": { - {"(*PrivateKey).ECDH", Method, 20}, - {"(*PrivateKey).Equal", Method, 15}, - {"(*PrivateKey).Public", Method, 4}, - {"(*PrivateKey).Sign", Method, 4}, - {"(*PublicKey).ECDH", Method, 20}, - {"(*PublicKey).Equal", Method, 15}, - {"(PrivateKey).Add", Method, 0}, - {"(PrivateKey).Double", Method, 0}, - {"(PrivateKey).IsOnCurve", Method, 0}, - {"(PrivateKey).Params", Method, 0}, - {"(PrivateKey).ScalarBaseMult", Method, 0}, - {"(PrivateKey).ScalarMult", Method, 0}, - {"(PublicKey).Add", Method, 0}, - {"(PublicKey).Double", Method, 0}, - {"(PublicKey).IsOnCurve", Method, 0}, - {"(PublicKey).Params", Method, 0}, - {"(PublicKey).ScalarBaseMult", Method, 0}, - {"(PublicKey).ScalarMult", Method, 0}, - {"GenerateKey", Func, 0}, - {"PrivateKey", Type, 0}, - {"PrivateKey.D", Field, 0}, - {"PrivateKey.PublicKey", Field, 0}, - {"PublicKey", Type, 0}, - {"PublicKey.Curve", Field, 0}, - {"PublicKey.X", Field, 0}, - {"PublicKey.Y", Field, 0}, - {"Sign", Func, 0}, - {"SignASN1", Func, 15}, - {"Verify", Func, 0}, - {"VerifyASN1", Func, 15}, - }, - "crypto/ed25519": { - {"(*Options).HashFunc", Method, 20}, - {"(PrivateKey).Equal", Method, 15}, - {"(PrivateKey).Public", Method, 13}, - {"(PrivateKey).Seed", Method, 13}, - {"(PrivateKey).Sign", Method, 13}, - {"(PublicKey).Equal", Method, 15}, - {"GenerateKey", Func, 13}, - {"NewKeyFromSeed", Func, 13}, - {"Options", Type, 20}, - {"Options.Context", Field, 20}, - {"Options.Hash", Field, 20}, - {"PrivateKey", Type, 13}, - {"PrivateKeySize", Const, 13}, - {"PublicKey", Type, 13}, - {"PublicKeySize", Const, 13}, - {"SeedSize", Const, 13}, - {"Sign", Func, 13}, - {"SignatureSize", Const, 13}, - {"Verify", Func, 13}, - {"VerifyWithOptions", Func, 20}, - }, - "crypto/elliptic": { - {"(*CurveParams).Add", Method, 0}, - {"(*CurveParams).Double", Method, 0}, - {"(*CurveParams).IsOnCurve", Method, 0}, - {"(*CurveParams).Params", Method, 0}, - {"(*CurveParams).ScalarBaseMult", Method, 0}, - {"(*CurveParams).ScalarMult", Method, 0}, - {"Curve", Type, 0}, - {"CurveParams", Type, 0}, - {"CurveParams.B", Field, 0}, - {"CurveParams.BitSize", Field, 0}, - {"CurveParams.Gx", Field, 0}, - {"CurveParams.Gy", Field, 0}, - {"CurveParams.N", Field, 0}, - {"CurveParams.Name", Field, 5}, - {"CurveParams.P", Field, 0}, - {"GenerateKey", Func, 0}, - {"Marshal", Func, 0}, - {"MarshalCompressed", Func, 15}, - {"P224", Func, 0}, - {"P256", Func, 0}, - {"P384", Func, 0}, - {"P521", Func, 0}, - {"Unmarshal", Func, 0}, - {"UnmarshalCompressed", Func, 15}, - }, - "crypto/fips140": { - {"Enabled", Func, 24}, - }, - "crypto/hkdf": { - {"Expand", Func, 24}, - {"Extract", Func, 24}, - {"Key", Func, 24}, - }, - "crypto/hmac": { - {"Equal", Func, 1}, - {"New", Func, 0}, - }, - "crypto/md5": { - {"BlockSize", Const, 0}, - {"New", Func, 0}, - {"Size", Const, 0}, - {"Sum", Func, 2}, - }, - "crypto/mlkem": { - {"(*DecapsulationKey1024).Bytes", Method, 24}, - {"(*DecapsulationKey1024).Decapsulate", Method, 24}, - {"(*DecapsulationKey1024).EncapsulationKey", Method, 24}, - {"(*DecapsulationKey768).Bytes", Method, 24}, - {"(*DecapsulationKey768).Decapsulate", Method, 24}, - {"(*DecapsulationKey768).EncapsulationKey", Method, 24}, - {"(*EncapsulationKey1024).Bytes", Method, 24}, - {"(*EncapsulationKey1024).Encapsulate", Method, 24}, - {"(*EncapsulationKey768).Bytes", Method, 24}, - {"(*EncapsulationKey768).Encapsulate", Method, 24}, - {"CiphertextSize1024", Const, 24}, - {"CiphertextSize768", Const, 24}, - {"DecapsulationKey1024", Type, 24}, - {"DecapsulationKey768", Type, 24}, - {"EncapsulationKey1024", Type, 24}, - {"EncapsulationKey768", Type, 24}, - {"EncapsulationKeySize1024", Const, 24}, - {"EncapsulationKeySize768", Const, 24}, - {"GenerateKey1024", Func, 24}, - {"GenerateKey768", Func, 24}, - {"NewDecapsulationKey1024", Func, 24}, - {"NewDecapsulationKey768", Func, 24}, - {"NewEncapsulationKey1024", Func, 24}, - {"NewEncapsulationKey768", Func, 24}, - {"SeedSize", Const, 24}, - {"SharedKeySize", Const, 24}, - }, - "crypto/pbkdf2": { - {"Key", Func, 24}, - }, - "crypto/rand": { - {"Int", Func, 0}, - {"Prime", Func, 0}, - {"Read", Func, 0}, - {"Reader", Var, 0}, - {"Text", Func, 24}, - }, - "crypto/rc4": { - {"(*Cipher).Reset", Method, 0}, - {"(*Cipher).XORKeyStream", Method, 0}, - {"(KeySizeError).Error", Method, 0}, - {"Cipher", Type, 0}, - {"KeySizeError", Type, 0}, - {"NewCipher", Func, 0}, - }, - "crypto/rsa": { - {"(*PSSOptions).HashFunc", Method, 4}, - {"(*PrivateKey).Decrypt", Method, 5}, - {"(*PrivateKey).Equal", Method, 15}, - {"(*PrivateKey).Precompute", Method, 0}, - {"(*PrivateKey).Public", Method, 4}, - {"(*PrivateKey).Sign", Method, 4}, - {"(*PrivateKey).Size", Method, 11}, - {"(*PrivateKey).Validate", Method, 0}, - {"(*PublicKey).Equal", Method, 15}, - {"(*PublicKey).Size", Method, 11}, - {"CRTValue", Type, 0}, - {"CRTValue.Coeff", Field, 0}, - {"CRTValue.Exp", Field, 0}, - {"CRTValue.R", Field, 0}, - {"DecryptOAEP", Func, 0}, - {"DecryptPKCS1v15", Func, 0}, - {"DecryptPKCS1v15SessionKey", Func, 0}, - {"EncryptOAEP", Func, 0}, - {"EncryptPKCS1v15", Func, 0}, - {"ErrDecryption", Var, 0}, - {"ErrMessageTooLong", Var, 0}, - {"ErrVerification", Var, 0}, - {"GenerateKey", Func, 0}, - {"GenerateMultiPrimeKey", Func, 0}, - {"OAEPOptions", Type, 5}, - {"OAEPOptions.Hash", Field, 5}, - {"OAEPOptions.Label", Field, 5}, - {"OAEPOptions.MGFHash", Field, 20}, - {"PKCS1v15DecryptOptions", Type, 5}, - {"PKCS1v15DecryptOptions.SessionKeyLen", Field, 5}, - {"PSSOptions", Type, 2}, - {"PSSOptions.Hash", Field, 4}, - {"PSSOptions.SaltLength", Field, 2}, - {"PSSSaltLengthAuto", Const, 2}, - {"PSSSaltLengthEqualsHash", Const, 2}, - {"PrecomputedValues", Type, 0}, - {"PrecomputedValues.CRTValues", Field, 0}, - {"PrecomputedValues.Dp", Field, 0}, - {"PrecomputedValues.Dq", Field, 0}, - {"PrecomputedValues.Qinv", Field, 0}, - {"PrivateKey", Type, 0}, - {"PrivateKey.D", Field, 0}, - {"PrivateKey.Precomputed", Field, 0}, - {"PrivateKey.Primes", Field, 0}, - {"PrivateKey.PublicKey", Field, 0}, - {"PublicKey", Type, 0}, - {"PublicKey.E", Field, 0}, - {"PublicKey.N", Field, 0}, - {"SignPKCS1v15", Func, 0}, - {"SignPSS", Func, 2}, - {"VerifyPKCS1v15", Func, 0}, - {"VerifyPSS", Func, 2}, - }, - "crypto/sha1": { - {"BlockSize", Const, 0}, - {"New", Func, 0}, - {"Size", Const, 0}, - {"Sum", Func, 2}, - }, - "crypto/sha256": { - {"BlockSize", Const, 0}, - {"New", Func, 0}, - {"New224", Func, 0}, - {"Size", Const, 0}, - {"Size224", Const, 0}, - {"Sum224", Func, 2}, - {"Sum256", Func, 2}, - }, - "crypto/sha3": { - {"(*SHA3).AppendBinary", Method, 24}, - {"(*SHA3).BlockSize", Method, 24}, - {"(*SHA3).MarshalBinary", Method, 24}, - {"(*SHA3).Reset", Method, 24}, - {"(*SHA3).Size", Method, 24}, - {"(*SHA3).Sum", Method, 24}, - {"(*SHA3).UnmarshalBinary", Method, 24}, - {"(*SHA3).Write", Method, 24}, - {"(*SHAKE).AppendBinary", Method, 24}, - {"(*SHAKE).BlockSize", Method, 24}, - {"(*SHAKE).MarshalBinary", Method, 24}, - {"(*SHAKE).Read", Method, 24}, - {"(*SHAKE).Reset", Method, 24}, - {"(*SHAKE).UnmarshalBinary", Method, 24}, - {"(*SHAKE).Write", Method, 24}, - {"New224", Func, 24}, - {"New256", Func, 24}, - {"New384", Func, 24}, - {"New512", Func, 24}, - {"NewCSHAKE128", Func, 24}, - {"NewCSHAKE256", Func, 24}, - {"NewSHAKE128", Func, 24}, - {"NewSHAKE256", Func, 24}, - {"SHA3", Type, 24}, - {"SHAKE", Type, 24}, - {"Sum224", Func, 24}, - {"Sum256", Func, 24}, - {"Sum384", Func, 24}, - {"Sum512", Func, 24}, - {"SumSHAKE128", Func, 24}, - {"SumSHAKE256", Func, 24}, - }, - "crypto/sha512": { - {"BlockSize", Const, 0}, - {"New", Func, 0}, - {"New384", Func, 0}, - {"New512_224", Func, 5}, - {"New512_256", Func, 5}, - {"Size", Const, 0}, - {"Size224", Const, 5}, - {"Size256", Const, 5}, - {"Size384", Const, 0}, - {"Sum384", Func, 2}, - {"Sum512", Func, 2}, - {"Sum512_224", Func, 5}, - {"Sum512_256", Func, 5}, - }, - "crypto/subtle": { - {"ConstantTimeByteEq", Func, 0}, - {"ConstantTimeCompare", Func, 0}, - {"ConstantTimeCopy", Func, 0}, - {"ConstantTimeEq", Func, 0}, - {"ConstantTimeLessOrEq", Func, 2}, - {"ConstantTimeSelect", Func, 0}, - {"WithDataIndependentTiming", Func, 24}, - {"XORBytes", Func, 20}, - }, - "crypto/tls": { - {"(*CertificateRequestInfo).Context", Method, 17}, - {"(*CertificateRequestInfo).SupportsCertificate", Method, 14}, - {"(*CertificateVerificationError).Error", Method, 20}, - {"(*CertificateVerificationError).Unwrap", Method, 20}, - {"(*ClientHelloInfo).Context", Method, 17}, - {"(*ClientHelloInfo).SupportsCertificate", Method, 14}, - {"(*ClientSessionState).ResumptionState", Method, 21}, - {"(*Config).BuildNameToCertificate", Method, 0}, - {"(*Config).Clone", Method, 8}, - {"(*Config).DecryptTicket", Method, 21}, - {"(*Config).EncryptTicket", Method, 21}, - {"(*Config).SetSessionTicketKeys", Method, 5}, - {"(*Conn).Close", Method, 0}, - {"(*Conn).CloseWrite", Method, 8}, - {"(*Conn).ConnectionState", Method, 0}, - {"(*Conn).Handshake", Method, 0}, - {"(*Conn).HandshakeContext", Method, 17}, - {"(*Conn).LocalAddr", Method, 0}, - {"(*Conn).NetConn", Method, 18}, - {"(*Conn).OCSPResponse", Method, 0}, - {"(*Conn).Read", Method, 0}, - {"(*Conn).RemoteAddr", Method, 0}, - {"(*Conn).SetDeadline", Method, 0}, - {"(*Conn).SetReadDeadline", Method, 0}, - {"(*Conn).SetWriteDeadline", Method, 0}, - {"(*Conn).VerifyHostname", Method, 0}, - {"(*Conn).Write", Method, 0}, - {"(*ConnectionState).ExportKeyingMaterial", Method, 11}, - {"(*Dialer).Dial", Method, 15}, - {"(*Dialer).DialContext", Method, 15}, - {"(*ECHRejectionError).Error", Method, 23}, - {"(*QUICConn).Close", Method, 21}, - {"(*QUICConn).ConnectionState", Method, 21}, - {"(*QUICConn).HandleData", Method, 21}, - {"(*QUICConn).NextEvent", Method, 21}, - {"(*QUICConn).SendSessionTicket", Method, 21}, - {"(*QUICConn).SetTransportParameters", Method, 21}, - {"(*QUICConn).Start", Method, 21}, - {"(*QUICConn).StoreSession", Method, 23}, - {"(*SessionState).Bytes", Method, 21}, - {"(AlertError).Error", Method, 21}, - {"(ClientAuthType).String", Method, 15}, - {"(CurveID).String", Method, 15}, - {"(QUICEncryptionLevel).String", Method, 21}, - {"(RecordHeaderError).Error", Method, 6}, - {"(SignatureScheme).String", Method, 15}, - {"AlertError", Type, 21}, - {"Certificate", Type, 0}, - {"Certificate.Certificate", Field, 0}, - {"Certificate.Leaf", Field, 0}, - {"Certificate.OCSPStaple", Field, 0}, - {"Certificate.PrivateKey", Field, 0}, - {"Certificate.SignedCertificateTimestamps", Field, 5}, - {"Certificate.SupportedSignatureAlgorithms", Field, 14}, - {"CertificateRequestInfo", Type, 8}, - {"CertificateRequestInfo.AcceptableCAs", Field, 8}, - {"CertificateRequestInfo.SignatureSchemes", Field, 8}, - {"CertificateRequestInfo.Version", Field, 14}, - {"CertificateVerificationError", Type, 20}, - {"CertificateVerificationError.Err", Field, 20}, - {"CertificateVerificationError.UnverifiedCertificates", Field, 20}, - {"CipherSuite", Type, 14}, - {"CipherSuite.ID", Field, 14}, - {"CipherSuite.Insecure", Field, 14}, - {"CipherSuite.Name", Field, 14}, - {"CipherSuite.SupportedVersions", Field, 14}, - {"CipherSuiteName", Func, 14}, - {"CipherSuites", Func, 14}, - {"Client", Func, 0}, - {"ClientAuthType", Type, 0}, - {"ClientHelloInfo", Type, 4}, - {"ClientHelloInfo.CipherSuites", Field, 4}, - {"ClientHelloInfo.Conn", Field, 8}, - {"ClientHelloInfo.Extensions", Field, 24}, - {"ClientHelloInfo.ServerName", Field, 4}, - {"ClientHelloInfo.SignatureSchemes", Field, 8}, - {"ClientHelloInfo.SupportedCurves", Field, 4}, - {"ClientHelloInfo.SupportedPoints", Field, 4}, - {"ClientHelloInfo.SupportedProtos", Field, 8}, - {"ClientHelloInfo.SupportedVersions", Field, 8}, - {"ClientSessionCache", Type, 3}, - {"ClientSessionState", Type, 3}, - {"Config", Type, 0}, - {"Config.Certificates", Field, 0}, - {"Config.CipherSuites", Field, 0}, - {"Config.ClientAuth", Field, 0}, - {"Config.ClientCAs", Field, 0}, - {"Config.ClientSessionCache", Field, 3}, - {"Config.CurvePreferences", Field, 3}, - {"Config.DynamicRecordSizingDisabled", Field, 7}, - {"Config.EncryptedClientHelloConfigList", Field, 23}, - {"Config.EncryptedClientHelloKeys", Field, 24}, - {"Config.EncryptedClientHelloRejectionVerify", Field, 23}, - {"Config.GetCertificate", Field, 4}, - {"Config.GetClientCertificate", Field, 8}, - {"Config.GetConfigForClient", Field, 8}, - {"Config.InsecureSkipVerify", Field, 0}, - {"Config.KeyLogWriter", Field, 8}, - {"Config.MaxVersion", Field, 2}, - {"Config.MinVersion", Field, 2}, - {"Config.NameToCertificate", Field, 0}, - {"Config.NextProtos", Field, 0}, - {"Config.PreferServerCipherSuites", Field, 1}, - {"Config.Rand", Field, 0}, - {"Config.Renegotiation", Field, 7}, - {"Config.RootCAs", Field, 0}, - {"Config.ServerName", Field, 0}, - {"Config.SessionTicketKey", Field, 1}, - {"Config.SessionTicketsDisabled", Field, 1}, - {"Config.Time", Field, 0}, - {"Config.UnwrapSession", Field, 21}, - {"Config.VerifyConnection", Field, 15}, - {"Config.VerifyPeerCertificate", Field, 8}, - {"Config.WrapSession", Field, 21}, - {"Conn", Type, 0}, - {"ConnectionState", Type, 0}, - {"ConnectionState.CipherSuite", Field, 0}, - {"ConnectionState.DidResume", Field, 1}, - {"ConnectionState.ECHAccepted", Field, 23}, - {"ConnectionState.HandshakeComplete", Field, 0}, - {"ConnectionState.NegotiatedProtocol", Field, 0}, - {"ConnectionState.NegotiatedProtocolIsMutual", Field, 0}, - {"ConnectionState.OCSPResponse", Field, 5}, - {"ConnectionState.PeerCertificates", Field, 0}, - {"ConnectionState.ServerName", Field, 0}, - {"ConnectionState.SignedCertificateTimestamps", Field, 5}, - {"ConnectionState.TLSUnique", Field, 4}, - {"ConnectionState.VerifiedChains", Field, 0}, - {"ConnectionState.Version", Field, 3}, - {"CurveID", Type, 3}, - {"CurveP256", Const, 3}, - {"CurveP384", Const, 3}, - {"CurveP521", Const, 3}, - {"Dial", Func, 0}, - {"DialWithDialer", Func, 3}, - {"Dialer", Type, 15}, - {"Dialer.Config", Field, 15}, - {"Dialer.NetDialer", Field, 15}, - {"ECDSAWithP256AndSHA256", Const, 8}, - {"ECDSAWithP384AndSHA384", Const, 8}, - {"ECDSAWithP521AndSHA512", Const, 8}, - {"ECDSAWithSHA1", Const, 10}, - {"ECHRejectionError", Type, 23}, - {"ECHRejectionError.RetryConfigList", Field, 23}, - {"Ed25519", Const, 13}, - {"EncryptedClientHelloKey", Type, 24}, - {"EncryptedClientHelloKey.Config", Field, 24}, - {"EncryptedClientHelloKey.PrivateKey", Field, 24}, - {"EncryptedClientHelloKey.SendAsRetry", Field, 24}, - {"InsecureCipherSuites", Func, 14}, - {"Listen", Func, 0}, - {"LoadX509KeyPair", Func, 0}, - {"NewLRUClientSessionCache", Func, 3}, - {"NewListener", Func, 0}, - {"NewResumptionState", Func, 21}, - {"NoClientCert", Const, 0}, - {"PKCS1WithSHA1", Const, 8}, - {"PKCS1WithSHA256", Const, 8}, - {"PKCS1WithSHA384", Const, 8}, - {"PKCS1WithSHA512", Const, 8}, - {"PSSWithSHA256", Const, 8}, - {"PSSWithSHA384", Const, 8}, - {"PSSWithSHA512", Const, 8}, - {"ParseSessionState", Func, 21}, - {"QUICClient", Func, 21}, - {"QUICConfig", Type, 21}, - {"QUICConfig.EnableSessionEvents", Field, 23}, - {"QUICConfig.TLSConfig", Field, 21}, - {"QUICConn", Type, 21}, - {"QUICEncryptionLevel", Type, 21}, - {"QUICEncryptionLevelApplication", Const, 21}, - {"QUICEncryptionLevelEarly", Const, 21}, - {"QUICEncryptionLevelHandshake", Const, 21}, - {"QUICEncryptionLevelInitial", Const, 21}, - {"QUICEvent", Type, 21}, - {"QUICEvent.Data", Field, 21}, - {"QUICEvent.Kind", Field, 21}, - {"QUICEvent.Level", Field, 21}, - {"QUICEvent.SessionState", Field, 23}, - {"QUICEvent.Suite", Field, 21}, - {"QUICEventKind", Type, 21}, - {"QUICHandshakeDone", Const, 21}, - {"QUICNoEvent", Const, 21}, - {"QUICRejectedEarlyData", Const, 21}, - {"QUICResumeSession", Const, 23}, - {"QUICServer", Func, 21}, - {"QUICSessionTicketOptions", Type, 21}, - {"QUICSessionTicketOptions.EarlyData", Field, 21}, - {"QUICSessionTicketOptions.Extra", Field, 23}, - {"QUICSetReadSecret", Const, 21}, - {"QUICSetWriteSecret", Const, 21}, - {"QUICStoreSession", Const, 23}, - {"QUICTransportParameters", Const, 21}, - {"QUICTransportParametersRequired", Const, 21}, - {"QUICWriteData", Const, 21}, - {"RecordHeaderError", Type, 6}, - {"RecordHeaderError.Conn", Field, 12}, - {"RecordHeaderError.Msg", Field, 6}, - {"RecordHeaderError.RecordHeader", Field, 6}, - {"RenegotiateFreelyAsClient", Const, 7}, - {"RenegotiateNever", Const, 7}, - {"RenegotiateOnceAsClient", Const, 7}, - {"RenegotiationSupport", Type, 7}, - {"RequestClientCert", Const, 0}, - {"RequireAndVerifyClientCert", Const, 0}, - {"RequireAnyClientCert", Const, 0}, - {"Server", Func, 0}, - {"SessionState", Type, 21}, - {"SessionState.EarlyData", Field, 21}, - {"SessionState.Extra", Field, 21}, - {"SignatureScheme", Type, 8}, - {"TLS_AES_128_GCM_SHA256", Const, 12}, - {"TLS_AES_256_GCM_SHA384", Const, 12}, - {"TLS_CHACHA20_POLY1305_SHA256", Const, 12}, - {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", Const, 2}, - {"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", Const, 8}, - {"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", Const, 2}, - {"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", Const, 2}, - {"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", Const, 5}, - {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", Const, 8}, - {"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14}, - {"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", Const, 2}, - {"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0}, - {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", Const, 0}, - {"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", Const, 8}, - {"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", Const, 2}, - {"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", Const, 1}, - {"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", Const, 5}, - {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", Const, 8}, - {"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Const, 14}, - {"TLS_ECDHE_RSA_WITH_RC4_128_SHA", Const, 0}, - {"TLS_FALLBACK_SCSV", Const, 4}, - {"TLS_RSA_WITH_3DES_EDE_CBC_SHA", Const, 0}, - {"TLS_RSA_WITH_AES_128_CBC_SHA", Const, 0}, - {"TLS_RSA_WITH_AES_128_CBC_SHA256", Const, 8}, - {"TLS_RSA_WITH_AES_128_GCM_SHA256", Const, 6}, - {"TLS_RSA_WITH_AES_256_CBC_SHA", Const, 1}, - {"TLS_RSA_WITH_AES_256_GCM_SHA384", Const, 6}, - {"TLS_RSA_WITH_RC4_128_SHA", Const, 0}, - {"VerifyClientCertIfGiven", Const, 0}, - {"VersionName", Func, 21}, - {"VersionSSL30", Const, 2}, - {"VersionTLS10", Const, 2}, - {"VersionTLS11", Const, 2}, - {"VersionTLS12", Const, 2}, - {"VersionTLS13", Const, 12}, - {"X25519", Const, 8}, - {"X25519MLKEM768", Const, 24}, - {"X509KeyPair", Func, 0}, - }, - "crypto/x509": { - {"(*CertPool).AddCert", Method, 0}, - {"(*CertPool).AddCertWithConstraint", Method, 22}, - {"(*CertPool).AppendCertsFromPEM", Method, 0}, - {"(*CertPool).Clone", Method, 19}, - {"(*CertPool).Equal", Method, 19}, - {"(*CertPool).Subjects", Method, 0}, - {"(*Certificate).CheckCRLSignature", Method, 0}, - {"(*Certificate).CheckSignature", Method, 0}, - {"(*Certificate).CheckSignatureFrom", Method, 0}, - {"(*Certificate).CreateCRL", Method, 0}, - {"(*Certificate).Equal", Method, 0}, - {"(*Certificate).Verify", Method, 0}, - {"(*Certificate).VerifyHostname", Method, 0}, - {"(*CertificateRequest).CheckSignature", Method, 5}, - {"(*OID).UnmarshalBinary", Method, 23}, - {"(*OID).UnmarshalText", Method, 23}, - {"(*RevocationList).CheckSignatureFrom", Method, 19}, - {"(CertificateInvalidError).Error", Method, 0}, - {"(ConstraintViolationError).Error", Method, 0}, - {"(HostnameError).Error", Method, 0}, - {"(InsecureAlgorithmError).Error", Method, 6}, - {"(OID).AppendBinary", Method, 24}, - {"(OID).AppendText", Method, 24}, - {"(OID).Equal", Method, 22}, - {"(OID).EqualASN1OID", Method, 22}, - {"(OID).MarshalBinary", Method, 23}, - {"(OID).MarshalText", Method, 23}, - {"(OID).String", Method, 22}, - {"(PublicKeyAlgorithm).String", Method, 10}, - {"(SignatureAlgorithm).String", Method, 6}, - {"(SystemRootsError).Error", Method, 1}, - {"(SystemRootsError).Unwrap", Method, 16}, - {"(UnhandledCriticalExtension).Error", Method, 0}, - {"(UnknownAuthorityError).Error", Method, 0}, - {"CANotAuthorizedForExtKeyUsage", Const, 10}, - {"CANotAuthorizedForThisName", Const, 0}, - {"CertPool", Type, 0}, - {"Certificate", Type, 0}, - {"Certificate.AuthorityKeyId", Field, 0}, - {"Certificate.BasicConstraintsValid", Field, 0}, - {"Certificate.CRLDistributionPoints", Field, 2}, - {"Certificate.DNSNames", Field, 0}, - {"Certificate.EmailAddresses", Field, 0}, - {"Certificate.ExcludedDNSDomains", Field, 9}, - {"Certificate.ExcludedEmailAddresses", Field, 10}, - {"Certificate.ExcludedIPRanges", Field, 10}, - {"Certificate.ExcludedURIDomains", Field, 10}, - {"Certificate.ExtKeyUsage", Field, 0}, - {"Certificate.Extensions", Field, 2}, - {"Certificate.ExtraExtensions", Field, 2}, - {"Certificate.IPAddresses", Field, 1}, - {"Certificate.InhibitAnyPolicy", Field, 24}, - {"Certificate.InhibitAnyPolicyZero", Field, 24}, - {"Certificate.InhibitPolicyMapping", Field, 24}, - {"Certificate.InhibitPolicyMappingZero", Field, 24}, - {"Certificate.IsCA", Field, 0}, - {"Certificate.Issuer", Field, 0}, - {"Certificate.IssuingCertificateURL", Field, 2}, - {"Certificate.KeyUsage", Field, 0}, - {"Certificate.MaxPathLen", Field, 0}, - {"Certificate.MaxPathLenZero", Field, 4}, - {"Certificate.NotAfter", Field, 0}, - {"Certificate.NotBefore", Field, 0}, - {"Certificate.OCSPServer", Field, 2}, - {"Certificate.PermittedDNSDomains", Field, 0}, - {"Certificate.PermittedDNSDomainsCritical", Field, 0}, - {"Certificate.PermittedEmailAddresses", Field, 10}, - {"Certificate.PermittedIPRanges", Field, 10}, - {"Certificate.PermittedURIDomains", Field, 10}, - {"Certificate.Policies", Field, 22}, - {"Certificate.PolicyIdentifiers", Field, 0}, - {"Certificate.PolicyMappings", Field, 24}, - {"Certificate.PublicKey", Field, 0}, - {"Certificate.PublicKeyAlgorithm", Field, 0}, - {"Certificate.Raw", Field, 0}, - {"Certificate.RawIssuer", Field, 0}, - {"Certificate.RawSubject", Field, 0}, - {"Certificate.RawSubjectPublicKeyInfo", Field, 0}, - {"Certificate.RawTBSCertificate", Field, 0}, - {"Certificate.RequireExplicitPolicy", Field, 24}, - {"Certificate.RequireExplicitPolicyZero", Field, 24}, - {"Certificate.SerialNumber", Field, 0}, - {"Certificate.Signature", Field, 0}, - {"Certificate.SignatureAlgorithm", Field, 0}, - {"Certificate.Subject", Field, 0}, - {"Certificate.SubjectKeyId", Field, 0}, - {"Certificate.URIs", Field, 10}, - {"Certificate.UnhandledCriticalExtensions", Field, 5}, - {"Certificate.UnknownExtKeyUsage", Field, 0}, - {"Certificate.Version", Field, 0}, - {"CertificateInvalidError", Type, 0}, - {"CertificateInvalidError.Cert", Field, 0}, - {"CertificateInvalidError.Detail", Field, 10}, - {"CertificateInvalidError.Reason", Field, 0}, - {"CertificateRequest", Type, 3}, - {"CertificateRequest.Attributes", Field, 3}, - {"CertificateRequest.DNSNames", Field, 3}, - {"CertificateRequest.EmailAddresses", Field, 3}, - {"CertificateRequest.Extensions", Field, 3}, - {"CertificateRequest.ExtraExtensions", Field, 3}, - {"CertificateRequest.IPAddresses", Field, 3}, - {"CertificateRequest.PublicKey", Field, 3}, - {"CertificateRequest.PublicKeyAlgorithm", Field, 3}, - {"CertificateRequest.Raw", Field, 3}, - {"CertificateRequest.RawSubject", Field, 3}, - {"CertificateRequest.RawSubjectPublicKeyInfo", Field, 3}, - {"CertificateRequest.RawTBSCertificateRequest", Field, 3}, - {"CertificateRequest.Signature", Field, 3}, - {"CertificateRequest.SignatureAlgorithm", Field, 3}, - {"CertificateRequest.Subject", Field, 3}, - {"CertificateRequest.URIs", Field, 10}, - {"CertificateRequest.Version", Field, 3}, - {"ConstraintViolationError", Type, 0}, - {"CreateCertificate", Func, 0}, - {"CreateCertificateRequest", Func, 3}, - {"CreateRevocationList", Func, 15}, - {"DSA", Const, 0}, - {"DSAWithSHA1", Const, 0}, - {"DSAWithSHA256", Const, 0}, - {"DecryptPEMBlock", Func, 1}, - {"ECDSA", Const, 1}, - {"ECDSAWithSHA1", Const, 1}, - {"ECDSAWithSHA256", Const, 1}, - {"ECDSAWithSHA384", Const, 1}, - {"ECDSAWithSHA512", Const, 1}, - {"Ed25519", Const, 13}, - {"EncryptPEMBlock", Func, 1}, - {"ErrUnsupportedAlgorithm", Var, 0}, - {"Expired", Const, 0}, - {"ExtKeyUsage", Type, 0}, - {"ExtKeyUsageAny", Const, 0}, - {"ExtKeyUsageClientAuth", Const, 0}, - {"ExtKeyUsageCodeSigning", Const, 0}, - {"ExtKeyUsageEmailProtection", Const, 0}, - {"ExtKeyUsageIPSECEndSystem", Const, 1}, - {"ExtKeyUsageIPSECTunnel", Const, 1}, - {"ExtKeyUsageIPSECUser", Const, 1}, - {"ExtKeyUsageMicrosoftCommercialCodeSigning", Const, 10}, - {"ExtKeyUsageMicrosoftKernelCodeSigning", Const, 10}, - {"ExtKeyUsageMicrosoftServerGatedCrypto", Const, 1}, - {"ExtKeyUsageNetscapeServerGatedCrypto", Const, 1}, - {"ExtKeyUsageOCSPSigning", Const, 0}, - {"ExtKeyUsageServerAuth", Const, 0}, - {"ExtKeyUsageTimeStamping", Const, 0}, - {"HostnameError", Type, 0}, - {"HostnameError.Certificate", Field, 0}, - {"HostnameError.Host", Field, 0}, - {"IncompatibleUsage", Const, 1}, - {"IncorrectPasswordError", Var, 1}, - {"InsecureAlgorithmError", Type, 6}, - {"InvalidReason", Type, 0}, - {"IsEncryptedPEMBlock", Func, 1}, - {"KeyUsage", Type, 0}, - {"KeyUsageCRLSign", Const, 0}, - {"KeyUsageCertSign", Const, 0}, - {"KeyUsageContentCommitment", Const, 0}, - {"KeyUsageDataEncipherment", Const, 0}, - {"KeyUsageDecipherOnly", Const, 0}, - {"KeyUsageDigitalSignature", Const, 0}, - {"KeyUsageEncipherOnly", Const, 0}, - {"KeyUsageKeyAgreement", Const, 0}, - {"KeyUsageKeyEncipherment", Const, 0}, - {"MD2WithRSA", Const, 0}, - {"MD5WithRSA", Const, 0}, - {"MarshalECPrivateKey", Func, 2}, - {"MarshalPKCS1PrivateKey", Func, 0}, - {"MarshalPKCS1PublicKey", Func, 10}, - {"MarshalPKCS8PrivateKey", Func, 10}, - {"MarshalPKIXPublicKey", Func, 0}, - {"NameConstraintsWithoutSANs", Const, 10}, - {"NameMismatch", Const, 8}, - {"NewCertPool", Func, 0}, - {"NoValidChains", Const, 24}, - {"NotAuthorizedToSign", Const, 0}, - {"OID", Type, 22}, - {"OIDFromInts", Func, 22}, - {"PEMCipher", Type, 1}, - {"PEMCipher3DES", Const, 1}, - {"PEMCipherAES128", Const, 1}, - {"PEMCipherAES192", Const, 1}, - {"PEMCipherAES256", Const, 1}, - {"PEMCipherDES", Const, 1}, - {"ParseCRL", Func, 0}, - {"ParseCertificate", Func, 0}, - {"ParseCertificateRequest", Func, 3}, - {"ParseCertificates", Func, 0}, - {"ParseDERCRL", Func, 0}, - {"ParseECPrivateKey", Func, 1}, - {"ParseOID", Func, 23}, - {"ParsePKCS1PrivateKey", Func, 0}, - {"ParsePKCS1PublicKey", Func, 10}, - {"ParsePKCS8PrivateKey", Func, 0}, - {"ParsePKIXPublicKey", Func, 0}, - {"ParseRevocationList", Func, 19}, - {"PolicyMapping", Type, 24}, - {"PolicyMapping.IssuerDomainPolicy", Field, 24}, - {"PolicyMapping.SubjectDomainPolicy", Field, 24}, - {"PublicKeyAlgorithm", Type, 0}, - {"PureEd25519", Const, 13}, - {"RSA", Const, 0}, - {"RevocationList", Type, 15}, - {"RevocationList.AuthorityKeyId", Field, 19}, - {"RevocationList.Extensions", Field, 19}, - {"RevocationList.ExtraExtensions", Field, 15}, - {"RevocationList.Issuer", Field, 19}, - {"RevocationList.NextUpdate", Field, 15}, - {"RevocationList.Number", Field, 15}, - {"RevocationList.Raw", Field, 19}, - {"RevocationList.RawIssuer", Field, 19}, - {"RevocationList.RawTBSRevocationList", Field, 19}, - {"RevocationList.RevokedCertificateEntries", Field, 21}, - {"RevocationList.RevokedCertificates", Field, 15}, - {"RevocationList.Signature", Field, 19}, - {"RevocationList.SignatureAlgorithm", Field, 15}, - {"RevocationList.ThisUpdate", Field, 15}, - {"RevocationListEntry", Type, 21}, - {"RevocationListEntry.Extensions", Field, 21}, - {"RevocationListEntry.ExtraExtensions", Field, 21}, - {"RevocationListEntry.Raw", Field, 21}, - {"RevocationListEntry.ReasonCode", Field, 21}, - {"RevocationListEntry.RevocationTime", Field, 21}, - {"RevocationListEntry.SerialNumber", Field, 21}, - {"SHA1WithRSA", Const, 0}, - {"SHA256WithRSA", Const, 0}, - {"SHA256WithRSAPSS", Const, 8}, - {"SHA384WithRSA", Const, 0}, - {"SHA384WithRSAPSS", Const, 8}, - {"SHA512WithRSA", Const, 0}, - {"SHA512WithRSAPSS", Const, 8}, - {"SetFallbackRoots", Func, 20}, - {"SignatureAlgorithm", Type, 0}, - {"SystemCertPool", Func, 7}, - {"SystemRootsError", Type, 1}, - {"SystemRootsError.Err", Field, 7}, - {"TooManyConstraints", Const, 10}, - {"TooManyIntermediates", Const, 0}, - {"UnconstrainedName", Const, 10}, - {"UnhandledCriticalExtension", Type, 0}, - {"UnknownAuthorityError", Type, 0}, - {"UnknownAuthorityError.Cert", Field, 8}, - {"UnknownPublicKeyAlgorithm", Const, 0}, - {"UnknownSignatureAlgorithm", Const, 0}, - {"VerifyOptions", Type, 0}, - {"VerifyOptions.CertificatePolicies", Field, 24}, - {"VerifyOptions.CurrentTime", Field, 0}, - {"VerifyOptions.DNSName", Field, 0}, - {"VerifyOptions.Intermediates", Field, 0}, - {"VerifyOptions.KeyUsages", Field, 1}, - {"VerifyOptions.MaxConstraintComparisions", Field, 10}, - {"VerifyOptions.Roots", Field, 0}, - }, - "crypto/x509/pkix": { - {"(*CertificateList).HasExpired", Method, 0}, - {"(*Name).FillFromRDNSequence", Method, 0}, - {"(Name).String", Method, 10}, - {"(Name).ToRDNSequence", Method, 0}, - {"(RDNSequence).String", Method, 10}, - {"AlgorithmIdentifier", Type, 0}, - {"AlgorithmIdentifier.Algorithm", Field, 0}, - {"AlgorithmIdentifier.Parameters", Field, 0}, - {"AttributeTypeAndValue", Type, 0}, - {"AttributeTypeAndValue.Type", Field, 0}, - {"AttributeTypeAndValue.Value", Field, 0}, - {"AttributeTypeAndValueSET", Type, 3}, - {"AttributeTypeAndValueSET.Type", Field, 3}, - {"AttributeTypeAndValueSET.Value", Field, 3}, - {"CertificateList", Type, 0}, - {"CertificateList.SignatureAlgorithm", Field, 0}, - {"CertificateList.SignatureValue", Field, 0}, - {"CertificateList.TBSCertList", Field, 0}, - {"Extension", Type, 0}, - {"Extension.Critical", Field, 0}, - {"Extension.Id", Field, 0}, - {"Extension.Value", Field, 0}, - {"Name", Type, 0}, - {"Name.CommonName", Field, 0}, - {"Name.Country", Field, 0}, - {"Name.ExtraNames", Field, 5}, - {"Name.Locality", Field, 0}, - {"Name.Names", Field, 0}, - {"Name.Organization", Field, 0}, - {"Name.OrganizationalUnit", Field, 0}, - {"Name.PostalCode", Field, 0}, - {"Name.Province", Field, 0}, - {"Name.SerialNumber", Field, 0}, - {"Name.StreetAddress", Field, 0}, - {"RDNSequence", Type, 0}, - {"RelativeDistinguishedNameSET", Type, 0}, - {"RevokedCertificate", Type, 0}, - {"RevokedCertificate.Extensions", Field, 0}, - {"RevokedCertificate.RevocationTime", Field, 0}, - {"RevokedCertificate.SerialNumber", Field, 0}, - {"TBSCertificateList", Type, 0}, - {"TBSCertificateList.Extensions", Field, 0}, - {"TBSCertificateList.Issuer", Field, 0}, - {"TBSCertificateList.NextUpdate", Field, 0}, - {"TBSCertificateList.Raw", Field, 0}, - {"TBSCertificateList.RevokedCertificates", Field, 0}, - {"TBSCertificateList.Signature", Field, 0}, - {"TBSCertificateList.ThisUpdate", Field, 0}, - {"TBSCertificateList.Version", Field, 0}, - }, - "database/sql": { - {"(*ColumnType).DatabaseTypeName", Method, 8}, - {"(*ColumnType).DecimalSize", Method, 8}, - {"(*ColumnType).Length", Method, 8}, - {"(*ColumnType).Name", Method, 8}, - {"(*ColumnType).Nullable", Method, 8}, - {"(*ColumnType).ScanType", Method, 8}, - {"(*Conn).BeginTx", Method, 9}, - {"(*Conn).Close", Method, 9}, - {"(*Conn).ExecContext", Method, 9}, - {"(*Conn).PingContext", Method, 9}, - {"(*Conn).PrepareContext", Method, 9}, - {"(*Conn).QueryContext", Method, 9}, - {"(*Conn).QueryRowContext", Method, 9}, - {"(*Conn).Raw", Method, 13}, - {"(*DB).Begin", Method, 0}, - {"(*DB).BeginTx", Method, 8}, - {"(*DB).Close", Method, 0}, - {"(*DB).Conn", Method, 9}, - {"(*DB).Driver", Method, 0}, - {"(*DB).Exec", Method, 0}, - {"(*DB).ExecContext", Method, 8}, - {"(*DB).Ping", Method, 1}, - {"(*DB).PingContext", Method, 8}, - {"(*DB).Prepare", Method, 0}, - {"(*DB).PrepareContext", Method, 8}, - {"(*DB).Query", Method, 0}, - {"(*DB).QueryContext", Method, 8}, - {"(*DB).QueryRow", Method, 0}, - {"(*DB).QueryRowContext", Method, 8}, - {"(*DB).SetConnMaxIdleTime", Method, 15}, - {"(*DB).SetConnMaxLifetime", Method, 6}, - {"(*DB).SetMaxIdleConns", Method, 1}, - {"(*DB).SetMaxOpenConns", Method, 2}, - {"(*DB).Stats", Method, 5}, - {"(*Null).Scan", Method, 22}, - {"(*NullBool).Scan", Method, 0}, - {"(*NullByte).Scan", Method, 17}, - {"(*NullFloat64).Scan", Method, 0}, - {"(*NullInt16).Scan", Method, 17}, - {"(*NullInt32).Scan", Method, 13}, - {"(*NullInt64).Scan", Method, 0}, - {"(*NullString).Scan", Method, 0}, - {"(*NullTime).Scan", Method, 13}, - {"(*Row).Err", Method, 15}, - {"(*Row).Scan", Method, 0}, - {"(*Rows).Close", Method, 0}, - {"(*Rows).ColumnTypes", Method, 8}, - {"(*Rows).Columns", Method, 0}, - {"(*Rows).Err", Method, 0}, - {"(*Rows).Next", Method, 0}, - {"(*Rows).NextResultSet", Method, 8}, - {"(*Rows).Scan", Method, 0}, - {"(*Stmt).Close", Method, 0}, - {"(*Stmt).Exec", Method, 0}, - {"(*Stmt).ExecContext", Method, 8}, - {"(*Stmt).Query", Method, 0}, - {"(*Stmt).QueryContext", Method, 8}, - {"(*Stmt).QueryRow", Method, 0}, - {"(*Stmt).QueryRowContext", Method, 8}, - {"(*Tx).Commit", Method, 0}, - {"(*Tx).Exec", Method, 0}, - {"(*Tx).ExecContext", Method, 8}, - {"(*Tx).Prepare", Method, 0}, - {"(*Tx).PrepareContext", Method, 8}, - {"(*Tx).Query", Method, 0}, - {"(*Tx).QueryContext", Method, 8}, - {"(*Tx).QueryRow", Method, 0}, - {"(*Tx).QueryRowContext", Method, 8}, - {"(*Tx).Rollback", Method, 0}, - {"(*Tx).Stmt", Method, 0}, - {"(*Tx).StmtContext", Method, 8}, - {"(IsolationLevel).String", Method, 11}, - {"(Null).Value", Method, 22}, - {"(NullBool).Value", Method, 0}, - {"(NullByte).Value", Method, 17}, - {"(NullFloat64).Value", Method, 0}, - {"(NullInt16).Value", Method, 17}, - {"(NullInt32).Value", Method, 13}, - {"(NullInt64).Value", Method, 0}, - {"(NullString).Value", Method, 0}, - {"(NullTime).Value", Method, 13}, - {"ColumnType", Type, 8}, - {"Conn", Type, 9}, - {"DB", Type, 0}, - {"DBStats", Type, 5}, - {"DBStats.Idle", Field, 11}, - {"DBStats.InUse", Field, 11}, - {"DBStats.MaxIdleClosed", Field, 11}, - {"DBStats.MaxIdleTimeClosed", Field, 15}, - {"DBStats.MaxLifetimeClosed", Field, 11}, - {"DBStats.MaxOpenConnections", Field, 11}, - {"DBStats.OpenConnections", Field, 5}, - {"DBStats.WaitCount", Field, 11}, - {"DBStats.WaitDuration", Field, 11}, - {"Drivers", Func, 4}, - {"ErrConnDone", Var, 9}, - {"ErrNoRows", Var, 0}, - {"ErrTxDone", Var, 0}, - {"IsolationLevel", Type, 8}, - {"LevelDefault", Const, 8}, - {"LevelLinearizable", Const, 8}, - {"LevelReadCommitted", Const, 8}, - {"LevelReadUncommitted", Const, 8}, - {"LevelRepeatableRead", Const, 8}, - {"LevelSerializable", Const, 8}, - {"LevelSnapshot", Const, 8}, - {"LevelWriteCommitted", Const, 8}, - {"Named", Func, 8}, - {"NamedArg", Type, 8}, - {"NamedArg.Name", Field, 8}, - {"NamedArg.Value", Field, 8}, - {"Null", Type, 22}, - {"Null.V", Field, 22}, - {"Null.Valid", Field, 22}, - {"NullBool", Type, 0}, - {"NullBool.Bool", Field, 0}, - {"NullBool.Valid", Field, 0}, - {"NullByte", Type, 17}, - {"NullByte.Byte", Field, 17}, - {"NullByte.Valid", Field, 17}, - {"NullFloat64", Type, 0}, - {"NullFloat64.Float64", Field, 0}, - {"NullFloat64.Valid", Field, 0}, - {"NullInt16", Type, 17}, - {"NullInt16.Int16", Field, 17}, - {"NullInt16.Valid", Field, 17}, - {"NullInt32", Type, 13}, - {"NullInt32.Int32", Field, 13}, - {"NullInt32.Valid", Field, 13}, - {"NullInt64", Type, 0}, - {"NullInt64.Int64", Field, 0}, - {"NullInt64.Valid", Field, 0}, - {"NullString", Type, 0}, - {"NullString.String", Field, 0}, - {"NullString.Valid", Field, 0}, - {"NullTime", Type, 13}, - {"NullTime.Time", Field, 13}, - {"NullTime.Valid", Field, 13}, - {"Open", Func, 0}, - {"OpenDB", Func, 10}, - {"Out", Type, 9}, - {"Out.Dest", Field, 9}, - {"Out.In", Field, 9}, - {"RawBytes", Type, 0}, - {"Register", Func, 0}, - {"Result", Type, 0}, - {"Row", Type, 0}, - {"Rows", Type, 0}, - {"Scanner", Type, 0}, - {"Stmt", Type, 0}, - {"Tx", Type, 0}, - {"TxOptions", Type, 8}, - {"TxOptions.Isolation", Field, 8}, - {"TxOptions.ReadOnly", Field, 8}, - }, - "database/sql/driver": { - {"(NotNull).ConvertValue", Method, 0}, - {"(Null).ConvertValue", Method, 0}, - {"(RowsAffected).LastInsertId", Method, 0}, - {"(RowsAffected).RowsAffected", Method, 0}, - {"Bool", Var, 0}, - {"ColumnConverter", Type, 0}, - {"Conn", Type, 0}, - {"ConnBeginTx", Type, 8}, - {"ConnPrepareContext", Type, 8}, - {"Connector", Type, 10}, - {"DefaultParameterConverter", Var, 0}, - {"Driver", Type, 0}, - {"DriverContext", Type, 10}, - {"ErrBadConn", Var, 0}, - {"ErrRemoveArgument", Var, 9}, - {"ErrSkip", Var, 0}, - {"Execer", Type, 0}, - {"ExecerContext", Type, 8}, - {"Int32", Var, 0}, - {"IsScanValue", Func, 0}, - {"IsValue", Func, 0}, - {"IsolationLevel", Type, 8}, - {"NamedValue", Type, 8}, - {"NamedValue.Name", Field, 8}, - {"NamedValue.Ordinal", Field, 8}, - {"NamedValue.Value", Field, 8}, - {"NamedValueChecker", Type, 9}, - {"NotNull", Type, 0}, - {"NotNull.Converter", Field, 0}, - {"Null", Type, 0}, - {"Null.Converter", Field, 0}, - {"Pinger", Type, 8}, - {"Queryer", Type, 1}, - {"QueryerContext", Type, 8}, - {"Result", Type, 0}, - {"ResultNoRows", Var, 0}, - {"Rows", Type, 0}, - {"RowsAffected", Type, 0}, - {"RowsColumnTypeDatabaseTypeName", Type, 8}, - {"RowsColumnTypeLength", Type, 8}, - {"RowsColumnTypeNullable", Type, 8}, - {"RowsColumnTypePrecisionScale", Type, 8}, - {"RowsColumnTypeScanType", Type, 8}, - {"RowsNextResultSet", Type, 8}, - {"SessionResetter", Type, 10}, - {"Stmt", Type, 0}, - {"StmtExecContext", Type, 8}, - {"StmtQueryContext", Type, 8}, - {"String", Var, 0}, - {"Tx", Type, 0}, - {"TxOptions", Type, 8}, - {"TxOptions.Isolation", Field, 8}, - {"TxOptions.ReadOnly", Field, 8}, - {"Validator", Type, 15}, - {"Value", Type, 0}, - {"ValueConverter", Type, 0}, - {"Valuer", Type, 0}, - }, - "debug/buildinfo": { - {"BuildInfo", Type, 18}, - {"Read", Func, 18}, - {"ReadFile", Func, 18}, - }, - "debug/dwarf": { - {"(*AddrType).Basic", Method, 0}, - {"(*AddrType).Common", Method, 0}, - {"(*AddrType).Size", Method, 0}, - {"(*AddrType).String", Method, 0}, - {"(*ArrayType).Common", Method, 0}, - {"(*ArrayType).Size", Method, 0}, - {"(*ArrayType).String", Method, 0}, - {"(*BasicType).Basic", Method, 0}, - {"(*BasicType).Common", Method, 0}, - {"(*BasicType).Size", Method, 0}, - {"(*BasicType).String", Method, 0}, - {"(*BoolType).Basic", Method, 0}, - {"(*BoolType).Common", Method, 0}, - {"(*BoolType).Size", Method, 0}, - {"(*BoolType).String", Method, 0}, - {"(*CharType).Basic", Method, 0}, - {"(*CharType).Common", Method, 0}, - {"(*CharType).Size", Method, 0}, - {"(*CharType).String", Method, 0}, - {"(*CommonType).Common", Method, 0}, - {"(*CommonType).Size", Method, 0}, - {"(*ComplexType).Basic", Method, 0}, - {"(*ComplexType).Common", Method, 0}, - {"(*ComplexType).Size", Method, 0}, - {"(*ComplexType).String", Method, 0}, - {"(*Data).AddSection", Method, 14}, - {"(*Data).AddTypes", Method, 3}, - {"(*Data).LineReader", Method, 5}, - {"(*Data).Ranges", Method, 7}, - {"(*Data).Reader", Method, 0}, - {"(*Data).Type", Method, 0}, - {"(*DotDotDotType).Common", Method, 0}, - {"(*DotDotDotType).Size", Method, 0}, - {"(*DotDotDotType).String", Method, 0}, - {"(*Entry).AttrField", Method, 5}, - {"(*Entry).Val", Method, 0}, - {"(*EnumType).Common", Method, 0}, - {"(*EnumType).Size", Method, 0}, - {"(*EnumType).String", Method, 0}, - {"(*FloatType).Basic", Method, 0}, - {"(*FloatType).Common", Method, 0}, - {"(*FloatType).Size", Method, 0}, - {"(*FloatType).String", Method, 0}, - {"(*FuncType).Common", Method, 0}, - {"(*FuncType).Size", Method, 0}, - {"(*FuncType).String", Method, 0}, - {"(*IntType).Basic", Method, 0}, - {"(*IntType).Common", Method, 0}, - {"(*IntType).Size", Method, 0}, - {"(*IntType).String", Method, 0}, - {"(*LineReader).Files", Method, 14}, - {"(*LineReader).Next", Method, 5}, - {"(*LineReader).Reset", Method, 5}, - {"(*LineReader).Seek", Method, 5}, - {"(*LineReader).SeekPC", Method, 5}, - {"(*LineReader).Tell", Method, 5}, - {"(*PtrType).Common", Method, 0}, - {"(*PtrType).Size", Method, 0}, - {"(*PtrType).String", Method, 0}, - {"(*QualType).Common", Method, 0}, - {"(*QualType).Size", Method, 0}, - {"(*QualType).String", Method, 0}, - {"(*Reader).AddressSize", Method, 5}, - {"(*Reader).ByteOrder", Method, 14}, - {"(*Reader).Next", Method, 0}, - {"(*Reader).Seek", Method, 0}, - {"(*Reader).SeekPC", Method, 7}, - {"(*Reader).SkipChildren", Method, 0}, - {"(*StructType).Common", Method, 0}, - {"(*StructType).Defn", Method, 0}, - {"(*StructType).Size", Method, 0}, - {"(*StructType).String", Method, 0}, - {"(*TypedefType).Common", Method, 0}, - {"(*TypedefType).Size", Method, 0}, - {"(*TypedefType).String", Method, 0}, - {"(*UcharType).Basic", Method, 0}, - {"(*UcharType).Common", Method, 0}, - {"(*UcharType).Size", Method, 0}, - {"(*UcharType).String", Method, 0}, - {"(*UintType).Basic", Method, 0}, - {"(*UintType).Common", Method, 0}, - {"(*UintType).Size", Method, 0}, - {"(*UintType).String", Method, 0}, - {"(*UnspecifiedType).Basic", Method, 4}, - {"(*UnspecifiedType).Common", Method, 4}, - {"(*UnspecifiedType).Size", Method, 4}, - {"(*UnspecifiedType).String", Method, 4}, - {"(*UnsupportedType).Common", Method, 13}, - {"(*UnsupportedType).Size", Method, 13}, - {"(*UnsupportedType).String", Method, 13}, - {"(*VoidType).Common", Method, 0}, - {"(*VoidType).Size", Method, 0}, - {"(*VoidType).String", Method, 0}, - {"(Attr).GoString", Method, 0}, - {"(Attr).String", Method, 0}, - {"(Class).GoString", Method, 5}, - {"(Class).String", Method, 5}, - {"(DecodeError).Error", Method, 0}, - {"(Tag).GoString", Method, 0}, - {"(Tag).String", Method, 0}, - {"AddrType", Type, 0}, - {"AddrType.BasicType", Field, 0}, - {"ArrayType", Type, 0}, - {"ArrayType.CommonType", Field, 0}, - {"ArrayType.Count", Field, 0}, - {"ArrayType.StrideBitSize", Field, 0}, - {"ArrayType.Type", Field, 0}, - {"Attr", Type, 0}, - {"AttrAbstractOrigin", Const, 0}, - {"AttrAccessibility", Const, 0}, - {"AttrAddrBase", Const, 14}, - {"AttrAddrClass", Const, 0}, - {"AttrAlignment", Const, 14}, - {"AttrAllocated", Const, 0}, - {"AttrArtificial", Const, 0}, - {"AttrAssociated", Const, 0}, - {"AttrBaseTypes", Const, 0}, - {"AttrBinaryScale", Const, 14}, - {"AttrBitOffset", Const, 0}, - {"AttrBitSize", Const, 0}, - {"AttrByteSize", Const, 0}, - {"AttrCallAllCalls", Const, 14}, - {"AttrCallAllSourceCalls", Const, 14}, - {"AttrCallAllTailCalls", Const, 14}, - {"AttrCallColumn", Const, 0}, - {"AttrCallDataLocation", Const, 14}, - {"AttrCallDataValue", Const, 14}, - {"AttrCallFile", Const, 0}, - {"AttrCallLine", Const, 0}, - {"AttrCallOrigin", Const, 14}, - {"AttrCallPC", Const, 14}, - {"AttrCallParameter", Const, 14}, - {"AttrCallReturnPC", Const, 14}, - {"AttrCallTailCall", Const, 14}, - {"AttrCallTarget", Const, 14}, - {"AttrCallTargetClobbered", Const, 14}, - {"AttrCallValue", Const, 14}, - {"AttrCalling", Const, 0}, - {"AttrCommonRef", Const, 0}, - {"AttrCompDir", Const, 0}, - {"AttrConstExpr", Const, 14}, - {"AttrConstValue", Const, 0}, - {"AttrContainingType", Const, 0}, - {"AttrCount", Const, 0}, - {"AttrDataBitOffset", Const, 14}, - {"AttrDataLocation", Const, 0}, - {"AttrDataMemberLoc", Const, 0}, - {"AttrDecimalScale", Const, 14}, - {"AttrDecimalSign", Const, 14}, - {"AttrDeclColumn", Const, 0}, - {"AttrDeclFile", Const, 0}, - {"AttrDeclLine", Const, 0}, - {"AttrDeclaration", Const, 0}, - {"AttrDefaultValue", Const, 0}, - {"AttrDefaulted", Const, 14}, - {"AttrDeleted", Const, 14}, - {"AttrDescription", Const, 0}, - {"AttrDigitCount", Const, 14}, - {"AttrDiscr", Const, 0}, - {"AttrDiscrList", Const, 0}, - {"AttrDiscrValue", Const, 0}, - {"AttrDwoName", Const, 14}, - {"AttrElemental", Const, 14}, - {"AttrEncoding", Const, 0}, - {"AttrEndianity", Const, 14}, - {"AttrEntrypc", Const, 0}, - {"AttrEnumClass", Const, 14}, - {"AttrExplicit", Const, 14}, - {"AttrExportSymbols", Const, 14}, - {"AttrExtension", Const, 0}, - {"AttrExternal", Const, 0}, - {"AttrFrameBase", Const, 0}, - {"AttrFriend", Const, 0}, - {"AttrHighpc", Const, 0}, - {"AttrIdentifierCase", Const, 0}, - {"AttrImport", Const, 0}, - {"AttrInline", Const, 0}, - {"AttrIsOptional", Const, 0}, - {"AttrLanguage", Const, 0}, - {"AttrLinkageName", Const, 14}, - {"AttrLocation", Const, 0}, - {"AttrLoclistsBase", Const, 14}, - {"AttrLowerBound", Const, 0}, - {"AttrLowpc", Const, 0}, - {"AttrMacroInfo", Const, 0}, - {"AttrMacros", Const, 14}, - {"AttrMainSubprogram", Const, 14}, - {"AttrMutable", Const, 14}, - {"AttrName", Const, 0}, - {"AttrNamelistItem", Const, 0}, - {"AttrNoreturn", Const, 14}, - {"AttrObjectPointer", Const, 14}, - {"AttrOrdering", Const, 0}, - {"AttrPictureString", Const, 14}, - {"AttrPriority", Const, 0}, - {"AttrProducer", Const, 0}, - {"AttrPrototyped", Const, 0}, - {"AttrPure", Const, 14}, - {"AttrRanges", Const, 0}, - {"AttrRank", Const, 14}, - {"AttrRecursive", Const, 14}, - {"AttrReference", Const, 14}, - {"AttrReturnAddr", Const, 0}, - {"AttrRnglistsBase", Const, 14}, - {"AttrRvalueReference", Const, 14}, - {"AttrSegment", Const, 0}, - {"AttrSibling", Const, 0}, - {"AttrSignature", Const, 14}, - {"AttrSmall", Const, 14}, - {"AttrSpecification", Const, 0}, - {"AttrStartScope", Const, 0}, - {"AttrStaticLink", Const, 0}, - {"AttrStmtList", Const, 0}, - {"AttrStrOffsetsBase", Const, 14}, - {"AttrStride", Const, 0}, - {"AttrStrideSize", Const, 0}, - {"AttrStringLength", Const, 0}, - {"AttrStringLengthBitSize", Const, 14}, - {"AttrStringLengthByteSize", Const, 14}, - {"AttrThreadsScaled", Const, 14}, - {"AttrTrampoline", Const, 0}, - {"AttrType", Const, 0}, - {"AttrUpperBound", Const, 0}, - {"AttrUseLocation", Const, 0}, - {"AttrUseUTF8", Const, 0}, - {"AttrVarParam", Const, 0}, - {"AttrVirtuality", Const, 0}, - {"AttrVisibility", Const, 0}, - {"AttrVtableElemLoc", Const, 0}, - {"BasicType", Type, 0}, - {"BasicType.BitOffset", Field, 0}, - {"BasicType.BitSize", Field, 0}, - {"BasicType.CommonType", Field, 0}, - {"BasicType.DataBitOffset", Field, 18}, - {"BoolType", Type, 0}, - {"BoolType.BasicType", Field, 0}, - {"CharType", Type, 0}, - {"CharType.BasicType", Field, 0}, - {"Class", Type, 5}, - {"ClassAddrPtr", Const, 14}, - {"ClassAddress", Const, 5}, - {"ClassBlock", Const, 5}, - {"ClassConstant", Const, 5}, - {"ClassExprLoc", Const, 5}, - {"ClassFlag", Const, 5}, - {"ClassLinePtr", Const, 5}, - {"ClassLocList", Const, 14}, - {"ClassLocListPtr", Const, 5}, - {"ClassMacPtr", Const, 5}, - {"ClassRangeListPtr", Const, 5}, - {"ClassReference", Const, 5}, - {"ClassReferenceAlt", Const, 5}, - {"ClassReferenceSig", Const, 5}, - {"ClassRngList", Const, 14}, - {"ClassRngListsPtr", Const, 14}, - {"ClassStrOffsetsPtr", Const, 14}, - {"ClassString", Const, 5}, - {"ClassStringAlt", Const, 5}, - {"ClassUnknown", Const, 6}, - {"CommonType", Type, 0}, - {"CommonType.ByteSize", Field, 0}, - {"CommonType.Name", Field, 0}, - {"ComplexType", Type, 0}, - {"ComplexType.BasicType", Field, 0}, - {"Data", Type, 0}, - {"DecodeError", Type, 0}, - {"DecodeError.Err", Field, 0}, - {"DecodeError.Name", Field, 0}, - {"DecodeError.Offset", Field, 0}, - {"DotDotDotType", Type, 0}, - {"DotDotDotType.CommonType", Field, 0}, - {"Entry", Type, 0}, - {"Entry.Children", Field, 0}, - {"Entry.Field", Field, 0}, - {"Entry.Offset", Field, 0}, - {"Entry.Tag", Field, 0}, - {"EnumType", Type, 0}, - {"EnumType.CommonType", Field, 0}, - {"EnumType.EnumName", Field, 0}, - {"EnumType.Val", Field, 0}, - {"EnumValue", Type, 0}, - {"EnumValue.Name", Field, 0}, - {"EnumValue.Val", Field, 0}, - {"ErrUnknownPC", Var, 5}, - {"Field", Type, 0}, - {"Field.Attr", Field, 0}, - {"Field.Class", Field, 5}, - {"Field.Val", Field, 0}, - {"FloatType", Type, 0}, - {"FloatType.BasicType", Field, 0}, - {"FuncType", Type, 0}, - {"FuncType.CommonType", Field, 0}, - {"FuncType.ParamType", Field, 0}, - {"FuncType.ReturnType", Field, 0}, - {"IntType", Type, 0}, - {"IntType.BasicType", Field, 0}, - {"LineEntry", Type, 5}, - {"LineEntry.Address", Field, 5}, - {"LineEntry.BasicBlock", Field, 5}, - {"LineEntry.Column", Field, 5}, - {"LineEntry.Discriminator", Field, 5}, - {"LineEntry.EndSequence", Field, 5}, - {"LineEntry.EpilogueBegin", Field, 5}, - {"LineEntry.File", Field, 5}, - {"LineEntry.ISA", Field, 5}, - {"LineEntry.IsStmt", Field, 5}, - {"LineEntry.Line", Field, 5}, - {"LineEntry.OpIndex", Field, 5}, - {"LineEntry.PrologueEnd", Field, 5}, - {"LineFile", Type, 5}, - {"LineFile.Length", Field, 5}, - {"LineFile.Mtime", Field, 5}, - {"LineFile.Name", Field, 5}, - {"LineReader", Type, 5}, - {"LineReaderPos", Type, 5}, - {"New", Func, 0}, - {"Offset", Type, 0}, - {"PtrType", Type, 0}, - {"PtrType.CommonType", Field, 0}, - {"PtrType.Type", Field, 0}, - {"QualType", Type, 0}, - {"QualType.CommonType", Field, 0}, - {"QualType.Qual", Field, 0}, - {"QualType.Type", Field, 0}, - {"Reader", Type, 0}, - {"StructField", Type, 0}, - {"StructField.BitOffset", Field, 0}, - {"StructField.BitSize", Field, 0}, - {"StructField.ByteOffset", Field, 0}, - {"StructField.ByteSize", Field, 0}, - {"StructField.DataBitOffset", Field, 18}, - {"StructField.Name", Field, 0}, - {"StructField.Type", Field, 0}, - {"StructType", Type, 0}, - {"StructType.CommonType", Field, 0}, - {"StructType.Field", Field, 0}, - {"StructType.Incomplete", Field, 0}, - {"StructType.Kind", Field, 0}, - {"StructType.StructName", Field, 0}, - {"Tag", Type, 0}, - {"TagAccessDeclaration", Const, 0}, - {"TagArrayType", Const, 0}, - {"TagAtomicType", Const, 14}, - {"TagBaseType", Const, 0}, - {"TagCallSite", Const, 14}, - {"TagCallSiteParameter", Const, 14}, - {"TagCatchDwarfBlock", Const, 0}, - {"TagClassType", Const, 0}, - {"TagCoarrayType", Const, 14}, - {"TagCommonDwarfBlock", Const, 0}, - {"TagCommonInclusion", Const, 0}, - {"TagCompileUnit", Const, 0}, - {"TagCondition", Const, 3}, - {"TagConstType", Const, 0}, - {"TagConstant", Const, 0}, - {"TagDwarfProcedure", Const, 0}, - {"TagDynamicType", Const, 14}, - {"TagEntryPoint", Const, 0}, - {"TagEnumerationType", Const, 0}, - {"TagEnumerator", Const, 0}, - {"TagFileType", Const, 0}, - {"TagFormalParameter", Const, 0}, - {"TagFriend", Const, 0}, - {"TagGenericSubrange", Const, 14}, - {"TagImmutableType", Const, 14}, - {"TagImportedDeclaration", Const, 0}, - {"TagImportedModule", Const, 0}, - {"TagImportedUnit", Const, 0}, - {"TagInheritance", Const, 0}, - {"TagInlinedSubroutine", Const, 0}, - {"TagInterfaceType", Const, 0}, - {"TagLabel", Const, 0}, - {"TagLexDwarfBlock", Const, 0}, - {"TagMember", Const, 0}, - {"TagModule", Const, 0}, - {"TagMutableType", Const, 0}, - {"TagNamelist", Const, 0}, - {"TagNamelistItem", Const, 0}, - {"TagNamespace", Const, 0}, - {"TagPackedType", Const, 0}, - {"TagPartialUnit", Const, 0}, - {"TagPointerType", Const, 0}, - {"TagPtrToMemberType", Const, 0}, - {"TagReferenceType", Const, 0}, - {"TagRestrictType", Const, 0}, - {"TagRvalueReferenceType", Const, 3}, - {"TagSetType", Const, 0}, - {"TagSharedType", Const, 3}, - {"TagSkeletonUnit", Const, 14}, - {"TagStringType", Const, 0}, - {"TagStructType", Const, 0}, - {"TagSubprogram", Const, 0}, - {"TagSubrangeType", Const, 0}, - {"TagSubroutineType", Const, 0}, - {"TagTemplateAlias", Const, 3}, - {"TagTemplateTypeParameter", Const, 0}, - {"TagTemplateValueParameter", Const, 0}, - {"TagThrownType", Const, 0}, - {"TagTryDwarfBlock", Const, 0}, - {"TagTypeUnit", Const, 3}, - {"TagTypedef", Const, 0}, - {"TagUnionType", Const, 0}, - {"TagUnspecifiedParameters", Const, 0}, - {"TagUnspecifiedType", Const, 0}, - {"TagVariable", Const, 0}, - {"TagVariant", Const, 0}, - {"TagVariantPart", Const, 0}, - {"TagVolatileType", Const, 0}, - {"TagWithStmt", Const, 0}, - {"Type", Type, 0}, - {"TypedefType", Type, 0}, - {"TypedefType.CommonType", Field, 0}, - {"TypedefType.Type", Field, 0}, - {"UcharType", Type, 0}, - {"UcharType.BasicType", Field, 0}, - {"UintType", Type, 0}, - {"UintType.BasicType", Field, 0}, - {"UnspecifiedType", Type, 4}, - {"UnspecifiedType.BasicType", Field, 4}, - {"UnsupportedType", Type, 13}, - {"UnsupportedType.CommonType", Field, 13}, - {"UnsupportedType.Tag", Field, 13}, - {"VoidType", Type, 0}, - {"VoidType.CommonType", Field, 0}, - }, - "debug/elf": { - {"(*File).Close", Method, 0}, - {"(*File).DWARF", Method, 0}, - {"(*File).DynString", Method, 1}, - {"(*File).DynValue", Method, 21}, - {"(*File).DynamicSymbols", Method, 4}, - {"(*File).DynamicVersionNeeds", Method, 24}, - {"(*File).DynamicVersions", Method, 24}, - {"(*File).ImportedLibraries", Method, 0}, - {"(*File).ImportedSymbols", Method, 0}, - {"(*File).Section", Method, 0}, - {"(*File).SectionByType", Method, 0}, - {"(*File).Symbols", Method, 0}, - {"(*FormatError).Error", Method, 0}, - {"(*Prog).Open", Method, 0}, - {"(*Section).Data", Method, 0}, - {"(*Section).Open", Method, 0}, - {"(Class).GoString", Method, 0}, - {"(Class).String", Method, 0}, - {"(CompressionType).GoString", Method, 6}, - {"(CompressionType).String", Method, 6}, - {"(Data).GoString", Method, 0}, - {"(Data).String", Method, 0}, - {"(DynFlag).GoString", Method, 0}, - {"(DynFlag).String", Method, 0}, - {"(DynFlag1).GoString", Method, 21}, - {"(DynFlag1).String", Method, 21}, - {"(DynTag).GoString", Method, 0}, - {"(DynTag).String", Method, 0}, - {"(Machine).GoString", Method, 0}, - {"(Machine).String", Method, 0}, - {"(NType).GoString", Method, 0}, - {"(NType).String", Method, 0}, - {"(OSABI).GoString", Method, 0}, - {"(OSABI).String", Method, 0}, - {"(Prog).ReadAt", Method, 0}, - {"(ProgFlag).GoString", Method, 0}, - {"(ProgFlag).String", Method, 0}, - {"(ProgType).GoString", Method, 0}, - {"(ProgType).String", Method, 0}, - {"(R_386).GoString", Method, 0}, - {"(R_386).String", Method, 0}, - {"(R_390).GoString", Method, 7}, - {"(R_390).String", Method, 7}, - {"(R_AARCH64).GoString", Method, 4}, - {"(R_AARCH64).String", Method, 4}, - {"(R_ALPHA).GoString", Method, 0}, - {"(R_ALPHA).String", Method, 0}, - {"(R_ARM).GoString", Method, 0}, - {"(R_ARM).String", Method, 0}, - {"(R_LARCH).GoString", Method, 19}, - {"(R_LARCH).String", Method, 19}, - {"(R_MIPS).GoString", Method, 6}, - {"(R_MIPS).String", Method, 6}, - {"(R_PPC).GoString", Method, 0}, - {"(R_PPC).String", Method, 0}, - {"(R_PPC64).GoString", Method, 5}, - {"(R_PPC64).String", Method, 5}, - {"(R_RISCV).GoString", Method, 11}, - {"(R_RISCV).String", Method, 11}, - {"(R_SPARC).GoString", Method, 0}, - {"(R_SPARC).String", Method, 0}, - {"(R_X86_64).GoString", Method, 0}, - {"(R_X86_64).String", Method, 0}, - {"(Section).ReadAt", Method, 0}, - {"(SectionFlag).GoString", Method, 0}, - {"(SectionFlag).String", Method, 0}, - {"(SectionIndex).GoString", Method, 0}, - {"(SectionIndex).String", Method, 0}, - {"(SectionType).GoString", Method, 0}, - {"(SectionType).String", Method, 0}, - {"(SymBind).GoString", Method, 0}, - {"(SymBind).String", Method, 0}, - {"(SymType).GoString", Method, 0}, - {"(SymType).String", Method, 0}, - {"(SymVis).GoString", Method, 0}, - {"(SymVis).String", Method, 0}, - {"(Type).GoString", Method, 0}, - {"(Type).String", Method, 0}, - {"(Version).GoString", Method, 0}, - {"(Version).String", Method, 0}, - {"ARM_MAGIC_TRAMP_NUMBER", Const, 0}, - {"COMPRESS_HIOS", Const, 6}, - {"COMPRESS_HIPROC", Const, 6}, - {"COMPRESS_LOOS", Const, 6}, - {"COMPRESS_LOPROC", Const, 6}, - {"COMPRESS_ZLIB", Const, 6}, - {"COMPRESS_ZSTD", Const, 21}, - {"Chdr32", Type, 6}, - {"Chdr32.Addralign", Field, 6}, - {"Chdr32.Size", Field, 6}, - {"Chdr32.Type", Field, 6}, - {"Chdr64", Type, 6}, - {"Chdr64.Addralign", Field, 6}, - {"Chdr64.Size", Field, 6}, - {"Chdr64.Type", Field, 6}, - {"Class", Type, 0}, - {"CompressionType", Type, 6}, - {"DF_1_CONFALT", Const, 21}, - {"DF_1_DIRECT", Const, 21}, - {"DF_1_DISPRELDNE", Const, 21}, - {"DF_1_DISPRELPND", Const, 21}, - {"DF_1_EDITED", Const, 21}, - {"DF_1_ENDFILTEE", Const, 21}, - {"DF_1_GLOBAL", Const, 21}, - {"DF_1_GLOBAUDIT", Const, 21}, - {"DF_1_GROUP", Const, 21}, - {"DF_1_IGNMULDEF", Const, 21}, - {"DF_1_INITFIRST", Const, 21}, - {"DF_1_INTERPOSE", Const, 21}, - {"DF_1_KMOD", Const, 21}, - {"DF_1_LOADFLTR", Const, 21}, - {"DF_1_NOCOMMON", Const, 21}, - {"DF_1_NODEFLIB", Const, 21}, - {"DF_1_NODELETE", Const, 21}, - {"DF_1_NODIRECT", Const, 21}, - {"DF_1_NODUMP", Const, 21}, - {"DF_1_NOHDR", Const, 21}, - {"DF_1_NOKSYMS", Const, 21}, - {"DF_1_NOOPEN", Const, 21}, - {"DF_1_NORELOC", Const, 21}, - {"DF_1_NOW", Const, 21}, - {"DF_1_ORIGIN", Const, 21}, - {"DF_1_PIE", Const, 21}, - {"DF_1_SINGLETON", Const, 21}, - {"DF_1_STUB", Const, 21}, - {"DF_1_SYMINTPOSE", Const, 21}, - {"DF_1_TRANS", Const, 21}, - {"DF_1_WEAKFILTER", Const, 21}, - {"DF_BIND_NOW", Const, 0}, - {"DF_ORIGIN", Const, 0}, - {"DF_STATIC_TLS", Const, 0}, - {"DF_SYMBOLIC", Const, 0}, - {"DF_TEXTREL", Const, 0}, - {"DT_ADDRRNGHI", Const, 16}, - {"DT_ADDRRNGLO", Const, 16}, - {"DT_AUDIT", Const, 16}, - {"DT_AUXILIARY", Const, 16}, - {"DT_BIND_NOW", Const, 0}, - {"DT_CHECKSUM", Const, 16}, - {"DT_CONFIG", Const, 16}, - {"DT_DEBUG", Const, 0}, - {"DT_DEPAUDIT", Const, 16}, - {"DT_ENCODING", Const, 0}, - {"DT_FEATURE", Const, 16}, - {"DT_FILTER", Const, 16}, - {"DT_FINI", Const, 0}, - {"DT_FINI_ARRAY", Const, 0}, - {"DT_FINI_ARRAYSZ", Const, 0}, - {"DT_FLAGS", Const, 0}, - {"DT_FLAGS_1", Const, 16}, - {"DT_GNU_CONFLICT", Const, 16}, - {"DT_GNU_CONFLICTSZ", Const, 16}, - {"DT_GNU_HASH", Const, 16}, - {"DT_GNU_LIBLIST", Const, 16}, - {"DT_GNU_LIBLISTSZ", Const, 16}, - {"DT_GNU_PRELINKED", Const, 16}, - {"DT_HASH", Const, 0}, - {"DT_HIOS", Const, 0}, - {"DT_HIPROC", Const, 0}, - {"DT_INIT", Const, 0}, - {"DT_INIT_ARRAY", Const, 0}, - {"DT_INIT_ARRAYSZ", Const, 0}, - {"DT_JMPREL", Const, 0}, - {"DT_LOOS", Const, 0}, - {"DT_LOPROC", Const, 0}, - {"DT_MIPS_AUX_DYNAMIC", Const, 16}, - {"DT_MIPS_BASE_ADDRESS", Const, 16}, - {"DT_MIPS_COMPACT_SIZE", Const, 16}, - {"DT_MIPS_CONFLICT", Const, 16}, - {"DT_MIPS_CONFLICTNO", Const, 16}, - {"DT_MIPS_CXX_FLAGS", Const, 16}, - {"DT_MIPS_DELTA_CLASS", Const, 16}, - {"DT_MIPS_DELTA_CLASSSYM", Const, 16}, - {"DT_MIPS_DELTA_CLASSSYM_NO", Const, 16}, - {"DT_MIPS_DELTA_CLASS_NO", Const, 16}, - {"DT_MIPS_DELTA_INSTANCE", Const, 16}, - {"DT_MIPS_DELTA_INSTANCE_NO", Const, 16}, - {"DT_MIPS_DELTA_RELOC", Const, 16}, - {"DT_MIPS_DELTA_RELOC_NO", Const, 16}, - {"DT_MIPS_DELTA_SYM", Const, 16}, - {"DT_MIPS_DELTA_SYM_NO", Const, 16}, - {"DT_MIPS_DYNSTR_ALIGN", Const, 16}, - {"DT_MIPS_FLAGS", Const, 16}, - {"DT_MIPS_GOTSYM", Const, 16}, - {"DT_MIPS_GP_VALUE", Const, 16}, - {"DT_MIPS_HIDDEN_GOTIDX", Const, 16}, - {"DT_MIPS_HIPAGENO", Const, 16}, - {"DT_MIPS_ICHECKSUM", Const, 16}, - {"DT_MIPS_INTERFACE", Const, 16}, - {"DT_MIPS_INTERFACE_SIZE", Const, 16}, - {"DT_MIPS_IVERSION", Const, 16}, - {"DT_MIPS_LIBLIST", Const, 16}, - {"DT_MIPS_LIBLISTNO", Const, 16}, - {"DT_MIPS_LOCALPAGE_GOTIDX", Const, 16}, - {"DT_MIPS_LOCAL_GOTIDX", Const, 16}, - {"DT_MIPS_LOCAL_GOTNO", Const, 16}, - {"DT_MIPS_MSYM", Const, 16}, - {"DT_MIPS_OPTIONS", Const, 16}, - {"DT_MIPS_PERF_SUFFIX", Const, 16}, - {"DT_MIPS_PIXIE_INIT", Const, 16}, - {"DT_MIPS_PLTGOT", Const, 16}, - {"DT_MIPS_PROTECTED_GOTIDX", Const, 16}, - {"DT_MIPS_RLD_MAP", Const, 16}, - {"DT_MIPS_RLD_MAP_REL", Const, 16}, - {"DT_MIPS_RLD_TEXT_RESOLVE_ADDR", Const, 16}, - {"DT_MIPS_RLD_VERSION", Const, 16}, - {"DT_MIPS_RWPLT", Const, 16}, - {"DT_MIPS_SYMBOL_LIB", Const, 16}, - {"DT_MIPS_SYMTABNO", Const, 16}, - {"DT_MIPS_TIME_STAMP", Const, 16}, - {"DT_MIPS_UNREFEXTNO", Const, 16}, - {"DT_MOVEENT", Const, 16}, - {"DT_MOVESZ", Const, 16}, - {"DT_MOVETAB", Const, 16}, - {"DT_NEEDED", Const, 0}, - {"DT_NULL", Const, 0}, - {"DT_PLTGOT", Const, 0}, - {"DT_PLTPAD", Const, 16}, - {"DT_PLTPADSZ", Const, 16}, - {"DT_PLTREL", Const, 0}, - {"DT_PLTRELSZ", Const, 0}, - {"DT_POSFLAG_1", Const, 16}, - {"DT_PPC64_GLINK", Const, 16}, - {"DT_PPC64_OPD", Const, 16}, - {"DT_PPC64_OPDSZ", Const, 16}, - {"DT_PPC64_OPT", Const, 16}, - {"DT_PPC_GOT", Const, 16}, - {"DT_PPC_OPT", Const, 16}, - {"DT_PREINIT_ARRAY", Const, 0}, - {"DT_PREINIT_ARRAYSZ", Const, 0}, - {"DT_REL", Const, 0}, - {"DT_RELA", Const, 0}, - {"DT_RELACOUNT", Const, 16}, - {"DT_RELAENT", Const, 0}, - {"DT_RELASZ", Const, 0}, - {"DT_RELCOUNT", Const, 16}, - {"DT_RELENT", Const, 0}, - {"DT_RELSZ", Const, 0}, - {"DT_RPATH", Const, 0}, - {"DT_RUNPATH", Const, 0}, - {"DT_SONAME", Const, 0}, - {"DT_SPARC_REGISTER", Const, 16}, - {"DT_STRSZ", Const, 0}, - {"DT_STRTAB", Const, 0}, - {"DT_SYMBOLIC", Const, 0}, - {"DT_SYMENT", Const, 0}, - {"DT_SYMINENT", Const, 16}, - {"DT_SYMINFO", Const, 16}, - {"DT_SYMINSZ", Const, 16}, - {"DT_SYMTAB", Const, 0}, - {"DT_SYMTAB_SHNDX", Const, 16}, - {"DT_TEXTREL", Const, 0}, - {"DT_TLSDESC_GOT", Const, 16}, - {"DT_TLSDESC_PLT", Const, 16}, - {"DT_USED", Const, 16}, - {"DT_VALRNGHI", Const, 16}, - {"DT_VALRNGLO", Const, 16}, - {"DT_VERDEF", Const, 16}, - {"DT_VERDEFNUM", Const, 16}, - {"DT_VERNEED", Const, 0}, - {"DT_VERNEEDNUM", Const, 0}, - {"DT_VERSYM", Const, 0}, - {"Data", Type, 0}, - {"Dyn32", Type, 0}, - {"Dyn32.Tag", Field, 0}, - {"Dyn32.Val", Field, 0}, - {"Dyn64", Type, 0}, - {"Dyn64.Tag", Field, 0}, - {"Dyn64.Val", Field, 0}, - {"DynFlag", Type, 0}, - {"DynFlag1", Type, 21}, - {"DynTag", Type, 0}, - {"DynamicVersion", Type, 24}, - {"DynamicVersion.Deps", Field, 24}, - {"DynamicVersion.Flags", Field, 24}, - {"DynamicVersion.Index", Field, 24}, - {"DynamicVersion.Name", Field, 24}, - {"DynamicVersionDep", Type, 24}, - {"DynamicVersionDep.Dep", Field, 24}, - {"DynamicVersionDep.Flags", Field, 24}, - {"DynamicVersionDep.Index", Field, 24}, - {"DynamicVersionFlag", Type, 24}, - {"DynamicVersionNeed", Type, 24}, - {"DynamicVersionNeed.Name", Field, 24}, - {"DynamicVersionNeed.Needs", Field, 24}, - {"EI_ABIVERSION", Const, 0}, - {"EI_CLASS", Const, 0}, - {"EI_DATA", Const, 0}, - {"EI_NIDENT", Const, 0}, - {"EI_OSABI", Const, 0}, - {"EI_PAD", Const, 0}, - {"EI_VERSION", Const, 0}, - {"ELFCLASS32", Const, 0}, - {"ELFCLASS64", Const, 0}, - {"ELFCLASSNONE", Const, 0}, - {"ELFDATA2LSB", Const, 0}, - {"ELFDATA2MSB", Const, 0}, - {"ELFDATANONE", Const, 0}, - {"ELFMAG", Const, 0}, - {"ELFOSABI_86OPEN", Const, 0}, - {"ELFOSABI_AIX", Const, 0}, - {"ELFOSABI_ARM", Const, 0}, - {"ELFOSABI_AROS", Const, 11}, - {"ELFOSABI_CLOUDABI", Const, 11}, - {"ELFOSABI_FENIXOS", Const, 11}, - {"ELFOSABI_FREEBSD", Const, 0}, - {"ELFOSABI_HPUX", Const, 0}, - {"ELFOSABI_HURD", Const, 0}, - {"ELFOSABI_IRIX", Const, 0}, - {"ELFOSABI_LINUX", Const, 0}, - {"ELFOSABI_MODESTO", Const, 0}, - {"ELFOSABI_NETBSD", Const, 0}, - {"ELFOSABI_NONE", Const, 0}, - {"ELFOSABI_NSK", Const, 0}, - {"ELFOSABI_OPENBSD", Const, 0}, - {"ELFOSABI_OPENVMS", Const, 0}, - {"ELFOSABI_SOLARIS", Const, 0}, - {"ELFOSABI_STANDALONE", Const, 0}, - {"ELFOSABI_TRU64", Const, 0}, - {"EM_386", Const, 0}, - {"EM_486", Const, 0}, - {"EM_56800EX", Const, 11}, - {"EM_68HC05", Const, 11}, - {"EM_68HC08", Const, 11}, - {"EM_68HC11", Const, 11}, - {"EM_68HC12", Const, 0}, - {"EM_68HC16", Const, 11}, - {"EM_68K", Const, 0}, - {"EM_78KOR", Const, 11}, - {"EM_8051", Const, 11}, - {"EM_860", Const, 0}, - {"EM_88K", Const, 0}, - {"EM_960", Const, 0}, - {"EM_AARCH64", Const, 4}, - {"EM_ALPHA", Const, 0}, - {"EM_ALPHA_STD", Const, 0}, - {"EM_ALTERA_NIOS2", Const, 11}, - {"EM_AMDGPU", Const, 11}, - {"EM_ARC", Const, 0}, - {"EM_ARCA", Const, 11}, - {"EM_ARC_COMPACT", Const, 11}, - {"EM_ARC_COMPACT2", Const, 11}, - {"EM_ARM", Const, 0}, - {"EM_AVR", Const, 11}, - {"EM_AVR32", Const, 11}, - {"EM_BA1", Const, 11}, - {"EM_BA2", Const, 11}, - {"EM_BLACKFIN", Const, 11}, - {"EM_BPF", Const, 11}, - {"EM_C166", Const, 11}, - {"EM_CDP", Const, 11}, - {"EM_CE", Const, 11}, - {"EM_CLOUDSHIELD", Const, 11}, - {"EM_COGE", Const, 11}, - {"EM_COLDFIRE", Const, 0}, - {"EM_COOL", Const, 11}, - {"EM_COREA_1ST", Const, 11}, - {"EM_COREA_2ND", Const, 11}, - {"EM_CR", Const, 11}, - {"EM_CR16", Const, 11}, - {"EM_CRAYNV2", Const, 11}, - {"EM_CRIS", Const, 11}, - {"EM_CRX", Const, 11}, - {"EM_CSR_KALIMBA", Const, 11}, - {"EM_CUDA", Const, 11}, - {"EM_CYPRESS_M8C", Const, 11}, - {"EM_D10V", Const, 11}, - {"EM_D30V", Const, 11}, - {"EM_DSP24", Const, 11}, - {"EM_DSPIC30F", Const, 11}, - {"EM_DXP", Const, 11}, - {"EM_ECOG1", Const, 11}, - {"EM_ECOG16", Const, 11}, - {"EM_ECOG1X", Const, 11}, - {"EM_ECOG2", Const, 11}, - {"EM_ETPU", Const, 11}, - {"EM_EXCESS", Const, 11}, - {"EM_F2MC16", Const, 11}, - {"EM_FIREPATH", Const, 11}, - {"EM_FR20", Const, 0}, - {"EM_FR30", Const, 11}, - {"EM_FT32", Const, 11}, - {"EM_FX66", Const, 11}, - {"EM_H8S", Const, 0}, - {"EM_H8_300", Const, 0}, - {"EM_H8_300H", Const, 0}, - {"EM_H8_500", Const, 0}, - {"EM_HUANY", Const, 11}, - {"EM_IA_64", Const, 0}, - {"EM_INTEL205", Const, 11}, - {"EM_INTEL206", Const, 11}, - {"EM_INTEL207", Const, 11}, - {"EM_INTEL208", Const, 11}, - {"EM_INTEL209", Const, 11}, - {"EM_IP2K", Const, 11}, - {"EM_JAVELIN", Const, 11}, - {"EM_K10M", Const, 11}, - {"EM_KM32", Const, 11}, - {"EM_KMX16", Const, 11}, - {"EM_KMX32", Const, 11}, - {"EM_KMX8", Const, 11}, - {"EM_KVARC", Const, 11}, - {"EM_L10M", Const, 11}, - {"EM_LANAI", Const, 11}, - {"EM_LATTICEMICO32", Const, 11}, - {"EM_LOONGARCH", Const, 19}, - {"EM_M16C", Const, 11}, - {"EM_M32", Const, 0}, - {"EM_M32C", Const, 11}, - {"EM_M32R", Const, 11}, - {"EM_MANIK", Const, 11}, - {"EM_MAX", Const, 11}, - {"EM_MAXQ30", Const, 11}, - {"EM_MCHP_PIC", Const, 11}, - {"EM_MCST_ELBRUS", Const, 11}, - {"EM_ME16", Const, 0}, - {"EM_METAG", Const, 11}, - {"EM_MICROBLAZE", Const, 11}, - {"EM_MIPS", Const, 0}, - {"EM_MIPS_RS3_LE", Const, 0}, - {"EM_MIPS_RS4_BE", Const, 0}, - {"EM_MIPS_X", Const, 0}, - {"EM_MMA", Const, 0}, - {"EM_MMDSP_PLUS", Const, 11}, - {"EM_MMIX", Const, 11}, - {"EM_MN10200", Const, 11}, - {"EM_MN10300", Const, 11}, - {"EM_MOXIE", Const, 11}, - {"EM_MSP430", Const, 11}, - {"EM_NCPU", Const, 0}, - {"EM_NDR1", Const, 0}, - {"EM_NDS32", Const, 11}, - {"EM_NONE", Const, 0}, - {"EM_NORC", Const, 11}, - {"EM_NS32K", Const, 11}, - {"EM_OPEN8", Const, 11}, - {"EM_OPENRISC", Const, 11}, - {"EM_PARISC", Const, 0}, - {"EM_PCP", Const, 0}, - {"EM_PDP10", Const, 11}, - {"EM_PDP11", Const, 11}, - {"EM_PDSP", Const, 11}, - {"EM_PJ", Const, 11}, - {"EM_PPC", Const, 0}, - {"EM_PPC64", Const, 0}, - {"EM_PRISM", Const, 11}, - {"EM_QDSP6", Const, 11}, - {"EM_R32C", Const, 11}, - {"EM_RCE", Const, 0}, - {"EM_RH32", Const, 0}, - {"EM_RISCV", Const, 11}, - {"EM_RL78", Const, 11}, - {"EM_RS08", Const, 11}, - {"EM_RX", Const, 11}, - {"EM_S370", Const, 0}, - {"EM_S390", Const, 0}, - {"EM_SCORE7", Const, 11}, - {"EM_SEP", Const, 11}, - {"EM_SE_C17", Const, 11}, - {"EM_SE_C33", Const, 11}, - {"EM_SH", Const, 0}, - {"EM_SHARC", Const, 11}, - {"EM_SLE9X", Const, 11}, - {"EM_SNP1K", Const, 11}, - {"EM_SPARC", Const, 0}, - {"EM_SPARC32PLUS", Const, 0}, - {"EM_SPARCV9", Const, 0}, - {"EM_ST100", Const, 0}, - {"EM_ST19", Const, 11}, - {"EM_ST200", Const, 11}, - {"EM_ST7", Const, 11}, - {"EM_ST9PLUS", Const, 11}, - {"EM_STARCORE", Const, 0}, - {"EM_STM8", Const, 11}, - {"EM_STXP7X", Const, 11}, - {"EM_SVX", Const, 11}, - {"EM_TILE64", Const, 11}, - {"EM_TILEGX", Const, 11}, - {"EM_TILEPRO", Const, 11}, - {"EM_TINYJ", Const, 0}, - {"EM_TI_ARP32", Const, 11}, - {"EM_TI_C2000", Const, 11}, - {"EM_TI_C5500", Const, 11}, - {"EM_TI_C6000", Const, 11}, - {"EM_TI_PRU", Const, 11}, - {"EM_TMM_GPP", Const, 11}, - {"EM_TPC", Const, 11}, - {"EM_TRICORE", Const, 0}, - {"EM_TRIMEDIA", Const, 11}, - {"EM_TSK3000", Const, 11}, - {"EM_UNICORE", Const, 11}, - {"EM_V800", Const, 0}, - {"EM_V850", Const, 11}, - {"EM_VAX", Const, 11}, - {"EM_VIDEOCORE", Const, 11}, - {"EM_VIDEOCORE3", Const, 11}, - {"EM_VIDEOCORE5", Const, 11}, - {"EM_VISIUM", Const, 11}, - {"EM_VPP500", Const, 0}, - {"EM_X86_64", Const, 0}, - {"EM_XCORE", Const, 11}, - {"EM_XGATE", Const, 11}, - {"EM_XIMO16", Const, 11}, - {"EM_XTENSA", Const, 11}, - {"EM_Z80", Const, 11}, - {"EM_ZSP", Const, 11}, - {"ET_CORE", Const, 0}, - {"ET_DYN", Const, 0}, - {"ET_EXEC", Const, 0}, - {"ET_HIOS", Const, 0}, - {"ET_HIPROC", Const, 0}, - {"ET_LOOS", Const, 0}, - {"ET_LOPROC", Const, 0}, - {"ET_NONE", Const, 0}, - {"ET_REL", Const, 0}, - {"EV_CURRENT", Const, 0}, - {"EV_NONE", Const, 0}, - {"ErrNoSymbols", Var, 4}, - {"File", Type, 0}, - {"File.FileHeader", Field, 0}, - {"File.Progs", Field, 0}, - {"File.Sections", Field, 0}, - {"FileHeader", Type, 0}, - {"FileHeader.ABIVersion", Field, 0}, - {"FileHeader.ByteOrder", Field, 0}, - {"FileHeader.Class", Field, 0}, - {"FileHeader.Data", Field, 0}, - {"FileHeader.Entry", Field, 1}, - {"FileHeader.Machine", Field, 0}, - {"FileHeader.OSABI", Field, 0}, - {"FileHeader.Type", Field, 0}, - {"FileHeader.Version", Field, 0}, - {"FormatError", Type, 0}, - {"Header32", Type, 0}, - {"Header32.Ehsize", Field, 0}, - {"Header32.Entry", Field, 0}, - {"Header32.Flags", Field, 0}, - {"Header32.Ident", Field, 0}, - {"Header32.Machine", Field, 0}, - {"Header32.Phentsize", Field, 0}, - {"Header32.Phnum", Field, 0}, - {"Header32.Phoff", Field, 0}, - {"Header32.Shentsize", Field, 0}, - {"Header32.Shnum", Field, 0}, - {"Header32.Shoff", Field, 0}, - {"Header32.Shstrndx", Field, 0}, - {"Header32.Type", Field, 0}, - {"Header32.Version", Field, 0}, - {"Header64", Type, 0}, - {"Header64.Ehsize", Field, 0}, - {"Header64.Entry", Field, 0}, - {"Header64.Flags", Field, 0}, - {"Header64.Ident", Field, 0}, - {"Header64.Machine", Field, 0}, - {"Header64.Phentsize", Field, 0}, - {"Header64.Phnum", Field, 0}, - {"Header64.Phoff", Field, 0}, - {"Header64.Shentsize", Field, 0}, - {"Header64.Shnum", Field, 0}, - {"Header64.Shoff", Field, 0}, - {"Header64.Shstrndx", Field, 0}, - {"Header64.Type", Field, 0}, - {"Header64.Version", Field, 0}, - {"ImportedSymbol", Type, 0}, - {"ImportedSymbol.Library", Field, 0}, - {"ImportedSymbol.Name", Field, 0}, - {"ImportedSymbol.Version", Field, 0}, - {"Machine", Type, 0}, - {"NT_FPREGSET", Const, 0}, - {"NT_PRPSINFO", Const, 0}, - {"NT_PRSTATUS", Const, 0}, - {"NType", Type, 0}, - {"NewFile", Func, 0}, - {"OSABI", Type, 0}, - {"Open", Func, 0}, - {"PF_MASKOS", Const, 0}, - {"PF_MASKPROC", Const, 0}, - {"PF_R", Const, 0}, - {"PF_W", Const, 0}, - {"PF_X", Const, 0}, - {"PT_AARCH64_ARCHEXT", Const, 16}, - {"PT_AARCH64_UNWIND", Const, 16}, - {"PT_ARM_ARCHEXT", Const, 16}, - {"PT_ARM_EXIDX", Const, 16}, - {"PT_DYNAMIC", Const, 0}, - {"PT_GNU_EH_FRAME", Const, 16}, - {"PT_GNU_MBIND_HI", Const, 16}, - {"PT_GNU_MBIND_LO", Const, 16}, - {"PT_GNU_PROPERTY", Const, 16}, - {"PT_GNU_RELRO", Const, 16}, - {"PT_GNU_STACK", Const, 16}, - {"PT_HIOS", Const, 0}, - {"PT_HIPROC", Const, 0}, - {"PT_INTERP", Const, 0}, - {"PT_LOAD", Const, 0}, - {"PT_LOOS", Const, 0}, - {"PT_LOPROC", Const, 0}, - {"PT_MIPS_ABIFLAGS", Const, 16}, - {"PT_MIPS_OPTIONS", Const, 16}, - {"PT_MIPS_REGINFO", Const, 16}, - {"PT_MIPS_RTPROC", Const, 16}, - {"PT_NOTE", Const, 0}, - {"PT_NULL", Const, 0}, - {"PT_OPENBSD_BOOTDATA", Const, 16}, - {"PT_OPENBSD_NOBTCFI", Const, 23}, - {"PT_OPENBSD_RANDOMIZE", Const, 16}, - {"PT_OPENBSD_WXNEEDED", Const, 16}, - {"PT_PAX_FLAGS", Const, 16}, - {"PT_PHDR", Const, 0}, - {"PT_S390_PGSTE", Const, 16}, - {"PT_SHLIB", Const, 0}, - {"PT_SUNWSTACK", Const, 16}, - {"PT_SUNW_EH_FRAME", Const, 16}, - {"PT_TLS", Const, 0}, - {"Prog", Type, 0}, - {"Prog.ProgHeader", Field, 0}, - {"Prog.ReaderAt", Field, 0}, - {"Prog32", Type, 0}, - {"Prog32.Align", Field, 0}, - {"Prog32.Filesz", Field, 0}, - {"Prog32.Flags", Field, 0}, - {"Prog32.Memsz", Field, 0}, - {"Prog32.Off", Field, 0}, - {"Prog32.Paddr", Field, 0}, - {"Prog32.Type", Field, 0}, - {"Prog32.Vaddr", Field, 0}, - {"Prog64", Type, 0}, - {"Prog64.Align", Field, 0}, - {"Prog64.Filesz", Field, 0}, - {"Prog64.Flags", Field, 0}, - {"Prog64.Memsz", Field, 0}, - {"Prog64.Off", Field, 0}, - {"Prog64.Paddr", Field, 0}, - {"Prog64.Type", Field, 0}, - {"Prog64.Vaddr", Field, 0}, - {"ProgFlag", Type, 0}, - {"ProgHeader", Type, 0}, - {"ProgHeader.Align", Field, 0}, - {"ProgHeader.Filesz", Field, 0}, - {"ProgHeader.Flags", Field, 0}, - {"ProgHeader.Memsz", Field, 0}, - {"ProgHeader.Off", Field, 0}, - {"ProgHeader.Paddr", Field, 0}, - {"ProgHeader.Type", Field, 0}, - {"ProgHeader.Vaddr", Field, 0}, - {"ProgType", Type, 0}, - {"R_386", Type, 0}, - {"R_386_16", Const, 10}, - {"R_386_32", Const, 0}, - {"R_386_32PLT", Const, 10}, - {"R_386_8", Const, 10}, - {"R_386_COPY", Const, 0}, - {"R_386_GLOB_DAT", Const, 0}, - {"R_386_GOT32", Const, 0}, - {"R_386_GOT32X", Const, 10}, - {"R_386_GOTOFF", Const, 0}, - {"R_386_GOTPC", Const, 0}, - {"R_386_IRELATIVE", Const, 10}, - {"R_386_JMP_SLOT", Const, 0}, - {"R_386_NONE", Const, 0}, - {"R_386_PC16", Const, 10}, - {"R_386_PC32", Const, 0}, - {"R_386_PC8", Const, 10}, - {"R_386_PLT32", Const, 0}, - {"R_386_RELATIVE", Const, 0}, - {"R_386_SIZE32", Const, 10}, - {"R_386_TLS_DESC", Const, 10}, - {"R_386_TLS_DESC_CALL", Const, 10}, - {"R_386_TLS_DTPMOD32", Const, 0}, - {"R_386_TLS_DTPOFF32", Const, 0}, - {"R_386_TLS_GD", Const, 0}, - {"R_386_TLS_GD_32", Const, 0}, - {"R_386_TLS_GD_CALL", Const, 0}, - {"R_386_TLS_GD_POP", Const, 0}, - {"R_386_TLS_GD_PUSH", Const, 0}, - {"R_386_TLS_GOTDESC", Const, 10}, - {"R_386_TLS_GOTIE", Const, 0}, - {"R_386_TLS_IE", Const, 0}, - {"R_386_TLS_IE_32", Const, 0}, - {"R_386_TLS_LDM", Const, 0}, - {"R_386_TLS_LDM_32", Const, 0}, - {"R_386_TLS_LDM_CALL", Const, 0}, - {"R_386_TLS_LDM_POP", Const, 0}, - {"R_386_TLS_LDM_PUSH", Const, 0}, - {"R_386_TLS_LDO_32", Const, 0}, - {"R_386_TLS_LE", Const, 0}, - {"R_386_TLS_LE_32", Const, 0}, - {"R_386_TLS_TPOFF", Const, 0}, - {"R_386_TLS_TPOFF32", Const, 0}, - {"R_390", Type, 7}, - {"R_390_12", Const, 7}, - {"R_390_16", Const, 7}, - {"R_390_20", Const, 7}, - {"R_390_32", Const, 7}, - {"R_390_64", Const, 7}, - {"R_390_8", Const, 7}, - {"R_390_COPY", Const, 7}, - {"R_390_GLOB_DAT", Const, 7}, - {"R_390_GOT12", Const, 7}, - {"R_390_GOT16", Const, 7}, - {"R_390_GOT20", Const, 7}, - {"R_390_GOT32", Const, 7}, - {"R_390_GOT64", Const, 7}, - {"R_390_GOTENT", Const, 7}, - {"R_390_GOTOFF", Const, 7}, - {"R_390_GOTOFF16", Const, 7}, - {"R_390_GOTOFF64", Const, 7}, - {"R_390_GOTPC", Const, 7}, - {"R_390_GOTPCDBL", Const, 7}, - {"R_390_GOTPLT12", Const, 7}, - {"R_390_GOTPLT16", Const, 7}, - {"R_390_GOTPLT20", Const, 7}, - {"R_390_GOTPLT32", Const, 7}, - {"R_390_GOTPLT64", Const, 7}, - {"R_390_GOTPLTENT", Const, 7}, - {"R_390_GOTPLTOFF16", Const, 7}, - {"R_390_GOTPLTOFF32", Const, 7}, - {"R_390_GOTPLTOFF64", Const, 7}, - {"R_390_JMP_SLOT", Const, 7}, - {"R_390_NONE", Const, 7}, - {"R_390_PC16", Const, 7}, - {"R_390_PC16DBL", Const, 7}, - {"R_390_PC32", Const, 7}, - {"R_390_PC32DBL", Const, 7}, - {"R_390_PC64", Const, 7}, - {"R_390_PLT16DBL", Const, 7}, - {"R_390_PLT32", Const, 7}, - {"R_390_PLT32DBL", Const, 7}, - {"R_390_PLT64", Const, 7}, - {"R_390_RELATIVE", Const, 7}, - {"R_390_TLS_DTPMOD", Const, 7}, - {"R_390_TLS_DTPOFF", Const, 7}, - {"R_390_TLS_GD32", Const, 7}, - {"R_390_TLS_GD64", Const, 7}, - {"R_390_TLS_GDCALL", Const, 7}, - {"R_390_TLS_GOTIE12", Const, 7}, - {"R_390_TLS_GOTIE20", Const, 7}, - {"R_390_TLS_GOTIE32", Const, 7}, - {"R_390_TLS_GOTIE64", Const, 7}, - {"R_390_TLS_IE32", Const, 7}, - {"R_390_TLS_IE64", Const, 7}, - {"R_390_TLS_IEENT", Const, 7}, - {"R_390_TLS_LDCALL", Const, 7}, - {"R_390_TLS_LDM32", Const, 7}, - {"R_390_TLS_LDM64", Const, 7}, - {"R_390_TLS_LDO32", Const, 7}, - {"R_390_TLS_LDO64", Const, 7}, - {"R_390_TLS_LE32", Const, 7}, - {"R_390_TLS_LE64", Const, 7}, - {"R_390_TLS_LOAD", Const, 7}, - {"R_390_TLS_TPOFF", Const, 7}, - {"R_AARCH64", Type, 4}, - {"R_AARCH64_ABS16", Const, 4}, - {"R_AARCH64_ABS32", Const, 4}, - {"R_AARCH64_ABS64", Const, 4}, - {"R_AARCH64_ADD_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_ADR_GOT_PAGE", Const, 4}, - {"R_AARCH64_ADR_PREL_LO21", Const, 4}, - {"R_AARCH64_ADR_PREL_PG_HI21", Const, 4}, - {"R_AARCH64_ADR_PREL_PG_HI21_NC", Const, 4}, - {"R_AARCH64_CALL26", Const, 4}, - {"R_AARCH64_CONDBR19", Const, 4}, - {"R_AARCH64_COPY", Const, 4}, - {"R_AARCH64_GLOB_DAT", Const, 4}, - {"R_AARCH64_GOT_LD_PREL19", Const, 4}, - {"R_AARCH64_IRELATIVE", Const, 4}, - {"R_AARCH64_JUMP26", Const, 4}, - {"R_AARCH64_JUMP_SLOT", Const, 4}, - {"R_AARCH64_LD64_GOTOFF_LO15", Const, 10}, - {"R_AARCH64_LD64_GOTPAGE_LO15", Const, 10}, - {"R_AARCH64_LD64_GOT_LO12_NC", Const, 4}, - {"R_AARCH64_LDST128_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_LDST16_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_LDST32_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_LDST64_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_LDST8_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_LD_PREL_LO19", Const, 4}, - {"R_AARCH64_MOVW_SABS_G0", Const, 4}, - {"R_AARCH64_MOVW_SABS_G1", Const, 4}, - {"R_AARCH64_MOVW_SABS_G2", Const, 4}, - {"R_AARCH64_MOVW_UABS_G0", Const, 4}, - {"R_AARCH64_MOVW_UABS_G0_NC", Const, 4}, - {"R_AARCH64_MOVW_UABS_G1", Const, 4}, - {"R_AARCH64_MOVW_UABS_G1_NC", Const, 4}, - {"R_AARCH64_MOVW_UABS_G2", Const, 4}, - {"R_AARCH64_MOVW_UABS_G2_NC", Const, 4}, - {"R_AARCH64_MOVW_UABS_G3", Const, 4}, - {"R_AARCH64_NONE", Const, 4}, - {"R_AARCH64_NULL", Const, 4}, - {"R_AARCH64_P32_ABS16", Const, 4}, - {"R_AARCH64_P32_ABS32", Const, 4}, - {"R_AARCH64_P32_ADD_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_P32_ADR_GOT_PAGE", Const, 4}, - {"R_AARCH64_P32_ADR_PREL_LO21", Const, 4}, - {"R_AARCH64_P32_ADR_PREL_PG_HI21", Const, 4}, - {"R_AARCH64_P32_CALL26", Const, 4}, - {"R_AARCH64_P32_CONDBR19", Const, 4}, - {"R_AARCH64_P32_COPY", Const, 4}, - {"R_AARCH64_P32_GLOB_DAT", Const, 4}, - {"R_AARCH64_P32_GOT_LD_PREL19", Const, 4}, - {"R_AARCH64_P32_IRELATIVE", Const, 4}, - {"R_AARCH64_P32_JUMP26", Const, 4}, - {"R_AARCH64_P32_JUMP_SLOT", Const, 4}, - {"R_AARCH64_P32_LD32_GOT_LO12_NC", Const, 4}, - {"R_AARCH64_P32_LDST128_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_P32_LDST16_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_P32_LDST32_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_P32_LDST64_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_P32_LDST8_ABS_LO12_NC", Const, 4}, - {"R_AARCH64_P32_LD_PREL_LO19", Const, 4}, - {"R_AARCH64_P32_MOVW_SABS_G0", Const, 4}, - {"R_AARCH64_P32_MOVW_UABS_G0", Const, 4}, - {"R_AARCH64_P32_MOVW_UABS_G0_NC", Const, 4}, - {"R_AARCH64_P32_MOVW_UABS_G1", Const, 4}, - {"R_AARCH64_P32_PREL16", Const, 4}, - {"R_AARCH64_P32_PREL32", Const, 4}, - {"R_AARCH64_P32_RELATIVE", Const, 4}, - {"R_AARCH64_P32_TLSDESC", Const, 4}, - {"R_AARCH64_P32_TLSDESC_ADD_LO12_NC", Const, 4}, - {"R_AARCH64_P32_TLSDESC_ADR_PAGE21", Const, 4}, - {"R_AARCH64_P32_TLSDESC_ADR_PREL21", Const, 4}, - {"R_AARCH64_P32_TLSDESC_CALL", Const, 4}, - {"R_AARCH64_P32_TLSDESC_LD32_LO12_NC", Const, 4}, - {"R_AARCH64_P32_TLSDESC_LD_PREL19", Const, 4}, - {"R_AARCH64_P32_TLSGD_ADD_LO12_NC", Const, 4}, - {"R_AARCH64_P32_TLSGD_ADR_PAGE21", Const, 4}, - {"R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4}, - {"R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC", Const, 4}, - {"R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19", Const, 4}, - {"R_AARCH64_P32_TLSLE_ADD_TPREL_HI12", Const, 4}, - {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12", Const, 4}, - {"R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC", Const, 4}, - {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0", Const, 4}, - {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC", Const, 4}, - {"R_AARCH64_P32_TLSLE_MOVW_TPREL_G1", Const, 4}, - {"R_AARCH64_P32_TLS_DTPMOD", Const, 4}, - {"R_AARCH64_P32_TLS_DTPREL", Const, 4}, - {"R_AARCH64_P32_TLS_TPREL", Const, 4}, - {"R_AARCH64_P32_TSTBR14", Const, 4}, - {"R_AARCH64_PREL16", Const, 4}, - {"R_AARCH64_PREL32", Const, 4}, - {"R_AARCH64_PREL64", Const, 4}, - {"R_AARCH64_RELATIVE", Const, 4}, - {"R_AARCH64_TLSDESC", Const, 4}, - {"R_AARCH64_TLSDESC_ADD", Const, 4}, - {"R_AARCH64_TLSDESC_ADD_LO12_NC", Const, 4}, - {"R_AARCH64_TLSDESC_ADR_PAGE21", Const, 4}, - {"R_AARCH64_TLSDESC_ADR_PREL21", Const, 4}, - {"R_AARCH64_TLSDESC_CALL", Const, 4}, - {"R_AARCH64_TLSDESC_LD64_LO12_NC", Const, 4}, - {"R_AARCH64_TLSDESC_LDR", Const, 4}, - {"R_AARCH64_TLSDESC_LD_PREL19", Const, 4}, - {"R_AARCH64_TLSDESC_OFF_G0_NC", Const, 4}, - {"R_AARCH64_TLSDESC_OFF_G1", Const, 4}, - {"R_AARCH64_TLSGD_ADD_LO12_NC", Const, 4}, - {"R_AARCH64_TLSGD_ADR_PAGE21", Const, 4}, - {"R_AARCH64_TLSGD_ADR_PREL21", Const, 10}, - {"R_AARCH64_TLSGD_MOVW_G0_NC", Const, 10}, - {"R_AARCH64_TLSGD_MOVW_G1", Const, 10}, - {"R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21", Const, 4}, - {"R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", Const, 4}, - {"R_AARCH64_TLSIE_LD_GOTTPREL_PREL19", Const, 4}, - {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC", Const, 4}, - {"R_AARCH64_TLSIE_MOVW_GOTTPREL_G1", Const, 4}, - {"R_AARCH64_TLSLD_ADR_PAGE21", Const, 10}, - {"R_AARCH64_TLSLD_ADR_PREL21", Const, 10}, - {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12", Const, 10}, - {"R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC", Const, 10}, - {"R_AARCH64_TLSLE_ADD_TPREL_HI12", Const, 4}, - {"R_AARCH64_TLSLE_ADD_TPREL_LO12", Const, 4}, - {"R_AARCH64_TLSLE_ADD_TPREL_LO12_NC", Const, 4}, - {"R_AARCH64_TLSLE_LDST128_TPREL_LO12", Const, 10}, - {"R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC", Const, 10}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G0", Const, 4}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G0_NC", Const, 4}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G1", Const, 4}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G1_NC", Const, 4}, - {"R_AARCH64_TLSLE_MOVW_TPREL_G2", Const, 4}, - {"R_AARCH64_TLS_DTPMOD64", Const, 4}, - {"R_AARCH64_TLS_DTPREL64", Const, 4}, - {"R_AARCH64_TLS_TPREL64", Const, 4}, - {"R_AARCH64_TSTBR14", Const, 4}, - {"R_ALPHA", Type, 0}, - {"R_ALPHA_BRADDR", Const, 0}, - {"R_ALPHA_COPY", Const, 0}, - {"R_ALPHA_GLOB_DAT", Const, 0}, - {"R_ALPHA_GPDISP", Const, 0}, - {"R_ALPHA_GPREL32", Const, 0}, - {"R_ALPHA_GPRELHIGH", Const, 0}, - {"R_ALPHA_GPRELLOW", Const, 0}, - {"R_ALPHA_GPVALUE", Const, 0}, - {"R_ALPHA_HINT", Const, 0}, - {"R_ALPHA_IMMED_BR_HI32", Const, 0}, - {"R_ALPHA_IMMED_GP_16", Const, 0}, - {"R_ALPHA_IMMED_GP_HI32", Const, 0}, - {"R_ALPHA_IMMED_LO32", Const, 0}, - {"R_ALPHA_IMMED_SCN_HI32", Const, 0}, - {"R_ALPHA_JMP_SLOT", Const, 0}, - {"R_ALPHA_LITERAL", Const, 0}, - {"R_ALPHA_LITUSE", Const, 0}, - {"R_ALPHA_NONE", Const, 0}, - {"R_ALPHA_OP_PRSHIFT", Const, 0}, - {"R_ALPHA_OP_PSUB", Const, 0}, - {"R_ALPHA_OP_PUSH", Const, 0}, - {"R_ALPHA_OP_STORE", Const, 0}, - {"R_ALPHA_REFLONG", Const, 0}, - {"R_ALPHA_REFQUAD", Const, 0}, - {"R_ALPHA_RELATIVE", Const, 0}, - {"R_ALPHA_SREL16", Const, 0}, - {"R_ALPHA_SREL32", Const, 0}, - {"R_ALPHA_SREL64", Const, 0}, - {"R_ARM", Type, 0}, - {"R_ARM_ABS12", Const, 0}, - {"R_ARM_ABS16", Const, 0}, - {"R_ARM_ABS32", Const, 0}, - {"R_ARM_ABS32_NOI", Const, 10}, - {"R_ARM_ABS8", Const, 0}, - {"R_ARM_ALU_PCREL_15_8", Const, 10}, - {"R_ARM_ALU_PCREL_23_15", Const, 10}, - {"R_ARM_ALU_PCREL_7_0", Const, 10}, - {"R_ARM_ALU_PC_G0", Const, 10}, - {"R_ARM_ALU_PC_G0_NC", Const, 10}, - {"R_ARM_ALU_PC_G1", Const, 10}, - {"R_ARM_ALU_PC_G1_NC", Const, 10}, - {"R_ARM_ALU_PC_G2", Const, 10}, - {"R_ARM_ALU_SBREL_19_12_NC", Const, 10}, - {"R_ARM_ALU_SBREL_27_20_CK", Const, 10}, - {"R_ARM_ALU_SB_G0", Const, 10}, - {"R_ARM_ALU_SB_G0_NC", Const, 10}, - {"R_ARM_ALU_SB_G1", Const, 10}, - {"R_ARM_ALU_SB_G1_NC", Const, 10}, - {"R_ARM_ALU_SB_G2", Const, 10}, - {"R_ARM_AMP_VCALL9", Const, 0}, - {"R_ARM_BASE_ABS", Const, 10}, - {"R_ARM_CALL", Const, 10}, - {"R_ARM_COPY", Const, 0}, - {"R_ARM_GLOB_DAT", Const, 0}, - {"R_ARM_GNU_VTENTRY", Const, 0}, - {"R_ARM_GNU_VTINHERIT", Const, 0}, - {"R_ARM_GOT32", Const, 0}, - {"R_ARM_GOTOFF", Const, 0}, - {"R_ARM_GOTOFF12", Const, 10}, - {"R_ARM_GOTPC", Const, 0}, - {"R_ARM_GOTRELAX", Const, 10}, - {"R_ARM_GOT_ABS", Const, 10}, - {"R_ARM_GOT_BREL12", Const, 10}, - {"R_ARM_GOT_PREL", Const, 10}, - {"R_ARM_IRELATIVE", Const, 10}, - {"R_ARM_JUMP24", Const, 10}, - {"R_ARM_JUMP_SLOT", Const, 0}, - {"R_ARM_LDC_PC_G0", Const, 10}, - {"R_ARM_LDC_PC_G1", Const, 10}, - {"R_ARM_LDC_PC_G2", Const, 10}, - {"R_ARM_LDC_SB_G0", Const, 10}, - {"R_ARM_LDC_SB_G1", Const, 10}, - {"R_ARM_LDC_SB_G2", Const, 10}, - {"R_ARM_LDRS_PC_G0", Const, 10}, - {"R_ARM_LDRS_PC_G1", Const, 10}, - {"R_ARM_LDRS_PC_G2", Const, 10}, - {"R_ARM_LDRS_SB_G0", Const, 10}, - {"R_ARM_LDRS_SB_G1", Const, 10}, - {"R_ARM_LDRS_SB_G2", Const, 10}, - {"R_ARM_LDR_PC_G1", Const, 10}, - {"R_ARM_LDR_PC_G2", Const, 10}, - {"R_ARM_LDR_SBREL_11_10_NC", Const, 10}, - {"R_ARM_LDR_SB_G0", Const, 10}, - {"R_ARM_LDR_SB_G1", Const, 10}, - {"R_ARM_LDR_SB_G2", Const, 10}, - {"R_ARM_ME_TOO", Const, 10}, - {"R_ARM_MOVT_ABS", Const, 10}, - {"R_ARM_MOVT_BREL", Const, 10}, - {"R_ARM_MOVT_PREL", Const, 10}, - {"R_ARM_MOVW_ABS_NC", Const, 10}, - {"R_ARM_MOVW_BREL", Const, 10}, - {"R_ARM_MOVW_BREL_NC", Const, 10}, - {"R_ARM_MOVW_PREL_NC", Const, 10}, - {"R_ARM_NONE", Const, 0}, - {"R_ARM_PC13", Const, 0}, - {"R_ARM_PC24", Const, 0}, - {"R_ARM_PLT32", Const, 0}, - {"R_ARM_PLT32_ABS", Const, 10}, - {"R_ARM_PREL31", Const, 10}, - {"R_ARM_PRIVATE_0", Const, 10}, - {"R_ARM_PRIVATE_1", Const, 10}, - {"R_ARM_PRIVATE_10", Const, 10}, - {"R_ARM_PRIVATE_11", Const, 10}, - {"R_ARM_PRIVATE_12", Const, 10}, - {"R_ARM_PRIVATE_13", Const, 10}, - {"R_ARM_PRIVATE_14", Const, 10}, - {"R_ARM_PRIVATE_15", Const, 10}, - {"R_ARM_PRIVATE_2", Const, 10}, - {"R_ARM_PRIVATE_3", Const, 10}, - {"R_ARM_PRIVATE_4", Const, 10}, - {"R_ARM_PRIVATE_5", Const, 10}, - {"R_ARM_PRIVATE_6", Const, 10}, - {"R_ARM_PRIVATE_7", Const, 10}, - {"R_ARM_PRIVATE_8", Const, 10}, - {"R_ARM_PRIVATE_9", Const, 10}, - {"R_ARM_RABS32", Const, 0}, - {"R_ARM_RBASE", Const, 0}, - {"R_ARM_REL32", Const, 0}, - {"R_ARM_REL32_NOI", Const, 10}, - {"R_ARM_RELATIVE", Const, 0}, - {"R_ARM_RPC24", Const, 0}, - {"R_ARM_RREL32", Const, 0}, - {"R_ARM_RSBREL32", Const, 0}, - {"R_ARM_RXPC25", Const, 10}, - {"R_ARM_SBREL31", Const, 10}, - {"R_ARM_SBREL32", Const, 0}, - {"R_ARM_SWI24", Const, 0}, - {"R_ARM_TARGET1", Const, 10}, - {"R_ARM_TARGET2", Const, 10}, - {"R_ARM_THM_ABS5", Const, 0}, - {"R_ARM_THM_ALU_ABS_G0_NC", Const, 10}, - {"R_ARM_THM_ALU_ABS_G1_NC", Const, 10}, - {"R_ARM_THM_ALU_ABS_G2_NC", Const, 10}, - {"R_ARM_THM_ALU_ABS_G3", Const, 10}, - {"R_ARM_THM_ALU_PREL_11_0", Const, 10}, - {"R_ARM_THM_GOT_BREL12", Const, 10}, - {"R_ARM_THM_JUMP11", Const, 10}, - {"R_ARM_THM_JUMP19", Const, 10}, - {"R_ARM_THM_JUMP24", Const, 10}, - {"R_ARM_THM_JUMP6", Const, 10}, - {"R_ARM_THM_JUMP8", Const, 10}, - {"R_ARM_THM_MOVT_ABS", Const, 10}, - {"R_ARM_THM_MOVT_BREL", Const, 10}, - {"R_ARM_THM_MOVT_PREL", Const, 10}, - {"R_ARM_THM_MOVW_ABS_NC", Const, 10}, - {"R_ARM_THM_MOVW_BREL", Const, 10}, - {"R_ARM_THM_MOVW_BREL_NC", Const, 10}, - {"R_ARM_THM_MOVW_PREL_NC", Const, 10}, - {"R_ARM_THM_PC12", Const, 10}, - {"R_ARM_THM_PC22", Const, 0}, - {"R_ARM_THM_PC8", Const, 0}, - {"R_ARM_THM_RPC22", Const, 0}, - {"R_ARM_THM_SWI8", Const, 0}, - {"R_ARM_THM_TLS_CALL", Const, 10}, - {"R_ARM_THM_TLS_DESCSEQ16", Const, 10}, - {"R_ARM_THM_TLS_DESCSEQ32", Const, 10}, - {"R_ARM_THM_XPC22", Const, 0}, - {"R_ARM_TLS_CALL", Const, 10}, - {"R_ARM_TLS_DESCSEQ", Const, 10}, - {"R_ARM_TLS_DTPMOD32", Const, 10}, - {"R_ARM_TLS_DTPOFF32", Const, 10}, - {"R_ARM_TLS_GD32", Const, 10}, - {"R_ARM_TLS_GOTDESC", Const, 10}, - {"R_ARM_TLS_IE12GP", Const, 10}, - {"R_ARM_TLS_IE32", Const, 10}, - {"R_ARM_TLS_LDM32", Const, 10}, - {"R_ARM_TLS_LDO12", Const, 10}, - {"R_ARM_TLS_LDO32", Const, 10}, - {"R_ARM_TLS_LE12", Const, 10}, - {"R_ARM_TLS_LE32", Const, 10}, - {"R_ARM_TLS_TPOFF32", Const, 10}, - {"R_ARM_V4BX", Const, 10}, - {"R_ARM_XPC25", Const, 0}, - {"R_INFO", Func, 0}, - {"R_INFO32", Func, 0}, - {"R_LARCH", Type, 19}, - {"R_LARCH_32", Const, 19}, - {"R_LARCH_32_PCREL", Const, 20}, - {"R_LARCH_64", Const, 19}, - {"R_LARCH_64_PCREL", Const, 22}, - {"R_LARCH_ABS64_HI12", Const, 20}, - {"R_LARCH_ABS64_LO20", Const, 20}, - {"R_LARCH_ABS_HI20", Const, 20}, - {"R_LARCH_ABS_LO12", Const, 20}, - {"R_LARCH_ADD16", Const, 19}, - {"R_LARCH_ADD24", Const, 19}, - {"R_LARCH_ADD32", Const, 19}, - {"R_LARCH_ADD6", Const, 22}, - {"R_LARCH_ADD64", Const, 19}, - {"R_LARCH_ADD8", Const, 19}, - {"R_LARCH_ADD_ULEB128", Const, 22}, - {"R_LARCH_ALIGN", Const, 22}, - {"R_LARCH_B16", Const, 20}, - {"R_LARCH_B21", Const, 20}, - {"R_LARCH_B26", Const, 20}, - {"R_LARCH_CFA", Const, 22}, - {"R_LARCH_COPY", Const, 19}, - {"R_LARCH_DELETE", Const, 22}, - {"R_LARCH_GNU_VTENTRY", Const, 20}, - {"R_LARCH_GNU_VTINHERIT", Const, 20}, - {"R_LARCH_GOT64_HI12", Const, 20}, - {"R_LARCH_GOT64_LO20", Const, 20}, - {"R_LARCH_GOT64_PC_HI12", Const, 20}, - {"R_LARCH_GOT64_PC_LO20", Const, 20}, - {"R_LARCH_GOT_HI20", Const, 20}, - {"R_LARCH_GOT_LO12", Const, 20}, - {"R_LARCH_GOT_PC_HI20", Const, 20}, - {"R_LARCH_GOT_PC_LO12", Const, 20}, - {"R_LARCH_IRELATIVE", Const, 19}, - {"R_LARCH_JUMP_SLOT", Const, 19}, - {"R_LARCH_MARK_LA", Const, 19}, - {"R_LARCH_MARK_PCREL", Const, 19}, - {"R_LARCH_NONE", Const, 19}, - {"R_LARCH_PCALA64_HI12", Const, 20}, - {"R_LARCH_PCALA64_LO20", Const, 20}, - {"R_LARCH_PCALA_HI20", Const, 20}, - {"R_LARCH_PCALA_LO12", Const, 20}, - {"R_LARCH_PCREL20_S2", Const, 22}, - {"R_LARCH_RELATIVE", Const, 19}, - {"R_LARCH_RELAX", Const, 20}, - {"R_LARCH_SOP_ADD", Const, 19}, - {"R_LARCH_SOP_AND", Const, 19}, - {"R_LARCH_SOP_ASSERT", Const, 19}, - {"R_LARCH_SOP_IF_ELSE", Const, 19}, - {"R_LARCH_SOP_NOT", Const, 19}, - {"R_LARCH_SOP_POP_32_S_0_10_10_16_S2", Const, 19}, - {"R_LARCH_SOP_POP_32_S_0_5_10_16_S2", Const, 19}, - {"R_LARCH_SOP_POP_32_S_10_12", Const, 19}, - {"R_LARCH_SOP_POP_32_S_10_16", Const, 19}, - {"R_LARCH_SOP_POP_32_S_10_16_S2", Const, 19}, - {"R_LARCH_SOP_POP_32_S_10_5", Const, 19}, - {"R_LARCH_SOP_POP_32_S_5_20", Const, 19}, - {"R_LARCH_SOP_POP_32_U", Const, 19}, - {"R_LARCH_SOP_POP_32_U_10_12", Const, 19}, - {"R_LARCH_SOP_PUSH_ABSOLUTE", Const, 19}, - {"R_LARCH_SOP_PUSH_DUP", Const, 19}, - {"R_LARCH_SOP_PUSH_GPREL", Const, 19}, - {"R_LARCH_SOP_PUSH_PCREL", Const, 19}, - {"R_LARCH_SOP_PUSH_PLT_PCREL", Const, 19}, - {"R_LARCH_SOP_PUSH_TLS_GD", Const, 19}, - {"R_LARCH_SOP_PUSH_TLS_GOT", Const, 19}, - {"R_LARCH_SOP_PUSH_TLS_TPREL", Const, 19}, - {"R_LARCH_SOP_SL", Const, 19}, - {"R_LARCH_SOP_SR", Const, 19}, - {"R_LARCH_SOP_SUB", Const, 19}, - {"R_LARCH_SUB16", Const, 19}, - {"R_LARCH_SUB24", Const, 19}, - {"R_LARCH_SUB32", Const, 19}, - {"R_LARCH_SUB6", Const, 22}, - {"R_LARCH_SUB64", Const, 19}, - {"R_LARCH_SUB8", Const, 19}, - {"R_LARCH_SUB_ULEB128", Const, 22}, - {"R_LARCH_TLS_DTPMOD32", Const, 19}, - {"R_LARCH_TLS_DTPMOD64", Const, 19}, - {"R_LARCH_TLS_DTPREL32", Const, 19}, - {"R_LARCH_TLS_DTPREL64", Const, 19}, - {"R_LARCH_TLS_GD_HI20", Const, 20}, - {"R_LARCH_TLS_GD_PC_HI20", Const, 20}, - {"R_LARCH_TLS_IE64_HI12", Const, 20}, - {"R_LARCH_TLS_IE64_LO20", Const, 20}, - {"R_LARCH_TLS_IE64_PC_HI12", Const, 20}, - {"R_LARCH_TLS_IE64_PC_LO20", Const, 20}, - {"R_LARCH_TLS_IE_HI20", Const, 20}, - {"R_LARCH_TLS_IE_LO12", Const, 20}, - {"R_LARCH_TLS_IE_PC_HI20", Const, 20}, - {"R_LARCH_TLS_IE_PC_LO12", Const, 20}, - {"R_LARCH_TLS_LD_HI20", Const, 20}, - {"R_LARCH_TLS_LD_PC_HI20", Const, 20}, - {"R_LARCH_TLS_LE64_HI12", Const, 20}, - {"R_LARCH_TLS_LE64_LO20", Const, 20}, - {"R_LARCH_TLS_LE_HI20", Const, 20}, - {"R_LARCH_TLS_LE_LO12", Const, 20}, - {"R_LARCH_TLS_TPREL32", Const, 19}, - {"R_LARCH_TLS_TPREL64", Const, 19}, - {"R_MIPS", Type, 6}, - {"R_MIPS_16", Const, 6}, - {"R_MIPS_26", Const, 6}, - {"R_MIPS_32", Const, 6}, - {"R_MIPS_64", Const, 6}, - {"R_MIPS_ADD_IMMEDIATE", Const, 6}, - {"R_MIPS_CALL16", Const, 6}, - {"R_MIPS_CALL_HI16", Const, 6}, - {"R_MIPS_CALL_LO16", Const, 6}, - {"R_MIPS_DELETE", Const, 6}, - {"R_MIPS_GOT16", Const, 6}, - {"R_MIPS_GOT_DISP", Const, 6}, - {"R_MIPS_GOT_HI16", Const, 6}, - {"R_MIPS_GOT_LO16", Const, 6}, - {"R_MIPS_GOT_OFST", Const, 6}, - {"R_MIPS_GOT_PAGE", Const, 6}, - {"R_MIPS_GPREL16", Const, 6}, - {"R_MIPS_GPREL32", Const, 6}, - {"R_MIPS_HI16", Const, 6}, - {"R_MIPS_HIGHER", Const, 6}, - {"R_MIPS_HIGHEST", Const, 6}, - {"R_MIPS_INSERT_A", Const, 6}, - {"R_MIPS_INSERT_B", Const, 6}, - {"R_MIPS_JALR", Const, 6}, - {"R_MIPS_LITERAL", Const, 6}, - {"R_MIPS_LO16", Const, 6}, - {"R_MIPS_NONE", Const, 6}, - {"R_MIPS_PC16", Const, 6}, - {"R_MIPS_PC32", Const, 22}, - {"R_MIPS_PJUMP", Const, 6}, - {"R_MIPS_REL16", Const, 6}, - {"R_MIPS_REL32", Const, 6}, - {"R_MIPS_RELGOT", Const, 6}, - {"R_MIPS_SCN_DISP", Const, 6}, - {"R_MIPS_SHIFT5", Const, 6}, - {"R_MIPS_SHIFT6", Const, 6}, - {"R_MIPS_SUB", Const, 6}, - {"R_MIPS_TLS_DTPMOD32", Const, 6}, - {"R_MIPS_TLS_DTPMOD64", Const, 6}, - {"R_MIPS_TLS_DTPREL32", Const, 6}, - {"R_MIPS_TLS_DTPREL64", Const, 6}, - {"R_MIPS_TLS_DTPREL_HI16", Const, 6}, - {"R_MIPS_TLS_DTPREL_LO16", Const, 6}, - {"R_MIPS_TLS_GD", Const, 6}, - {"R_MIPS_TLS_GOTTPREL", Const, 6}, - {"R_MIPS_TLS_LDM", Const, 6}, - {"R_MIPS_TLS_TPREL32", Const, 6}, - {"R_MIPS_TLS_TPREL64", Const, 6}, - {"R_MIPS_TLS_TPREL_HI16", Const, 6}, - {"R_MIPS_TLS_TPREL_LO16", Const, 6}, - {"R_PPC", Type, 0}, - {"R_PPC64", Type, 5}, - {"R_PPC64_ADDR14", Const, 5}, - {"R_PPC64_ADDR14_BRNTAKEN", Const, 5}, - {"R_PPC64_ADDR14_BRTAKEN", Const, 5}, - {"R_PPC64_ADDR16", Const, 5}, - {"R_PPC64_ADDR16_DS", Const, 5}, - {"R_PPC64_ADDR16_HA", Const, 5}, - {"R_PPC64_ADDR16_HI", Const, 5}, - {"R_PPC64_ADDR16_HIGH", Const, 10}, - {"R_PPC64_ADDR16_HIGHA", Const, 10}, - {"R_PPC64_ADDR16_HIGHER", Const, 5}, - {"R_PPC64_ADDR16_HIGHER34", Const, 20}, - {"R_PPC64_ADDR16_HIGHERA", Const, 5}, - {"R_PPC64_ADDR16_HIGHERA34", Const, 20}, - {"R_PPC64_ADDR16_HIGHEST", Const, 5}, - {"R_PPC64_ADDR16_HIGHEST34", Const, 20}, - {"R_PPC64_ADDR16_HIGHESTA", Const, 5}, - {"R_PPC64_ADDR16_HIGHESTA34", Const, 20}, - {"R_PPC64_ADDR16_LO", Const, 5}, - {"R_PPC64_ADDR16_LO_DS", Const, 5}, - {"R_PPC64_ADDR24", Const, 5}, - {"R_PPC64_ADDR32", Const, 5}, - {"R_PPC64_ADDR64", Const, 5}, - {"R_PPC64_ADDR64_LOCAL", Const, 10}, - {"R_PPC64_COPY", Const, 20}, - {"R_PPC64_D28", Const, 20}, - {"R_PPC64_D34", Const, 20}, - {"R_PPC64_D34_HA30", Const, 20}, - {"R_PPC64_D34_HI30", Const, 20}, - {"R_PPC64_D34_LO", Const, 20}, - {"R_PPC64_DTPMOD64", Const, 5}, - {"R_PPC64_DTPREL16", Const, 5}, - {"R_PPC64_DTPREL16_DS", Const, 5}, - {"R_PPC64_DTPREL16_HA", Const, 5}, - {"R_PPC64_DTPREL16_HI", Const, 5}, - {"R_PPC64_DTPREL16_HIGH", Const, 10}, - {"R_PPC64_DTPREL16_HIGHA", Const, 10}, - {"R_PPC64_DTPREL16_HIGHER", Const, 5}, - {"R_PPC64_DTPREL16_HIGHERA", Const, 5}, - {"R_PPC64_DTPREL16_HIGHEST", Const, 5}, - {"R_PPC64_DTPREL16_HIGHESTA", Const, 5}, - {"R_PPC64_DTPREL16_LO", Const, 5}, - {"R_PPC64_DTPREL16_LO_DS", Const, 5}, - {"R_PPC64_DTPREL34", Const, 20}, - {"R_PPC64_DTPREL64", Const, 5}, - {"R_PPC64_ENTRY", Const, 10}, - {"R_PPC64_GLOB_DAT", Const, 20}, - {"R_PPC64_GNU_VTENTRY", Const, 20}, - {"R_PPC64_GNU_VTINHERIT", Const, 20}, - {"R_PPC64_GOT16", Const, 5}, - {"R_PPC64_GOT16_DS", Const, 5}, - {"R_PPC64_GOT16_HA", Const, 5}, - {"R_PPC64_GOT16_HI", Const, 5}, - {"R_PPC64_GOT16_LO", Const, 5}, - {"R_PPC64_GOT16_LO_DS", Const, 5}, - {"R_PPC64_GOT_DTPREL16_DS", Const, 5}, - {"R_PPC64_GOT_DTPREL16_HA", Const, 5}, - {"R_PPC64_GOT_DTPREL16_HI", Const, 5}, - {"R_PPC64_GOT_DTPREL16_LO_DS", Const, 5}, - {"R_PPC64_GOT_DTPREL_PCREL34", Const, 20}, - {"R_PPC64_GOT_PCREL34", Const, 20}, - {"R_PPC64_GOT_TLSGD16", Const, 5}, - {"R_PPC64_GOT_TLSGD16_HA", Const, 5}, - {"R_PPC64_GOT_TLSGD16_HI", Const, 5}, - {"R_PPC64_GOT_TLSGD16_LO", Const, 5}, - {"R_PPC64_GOT_TLSGD_PCREL34", Const, 20}, - {"R_PPC64_GOT_TLSLD16", Const, 5}, - {"R_PPC64_GOT_TLSLD16_HA", Const, 5}, - {"R_PPC64_GOT_TLSLD16_HI", Const, 5}, - {"R_PPC64_GOT_TLSLD16_LO", Const, 5}, - {"R_PPC64_GOT_TLSLD_PCREL34", Const, 20}, - {"R_PPC64_GOT_TPREL16_DS", Const, 5}, - {"R_PPC64_GOT_TPREL16_HA", Const, 5}, - {"R_PPC64_GOT_TPREL16_HI", Const, 5}, - {"R_PPC64_GOT_TPREL16_LO_DS", Const, 5}, - {"R_PPC64_GOT_TPREL_PCREL34", Const, 20}, - {"R_PPC64_IRELATIVE", Const, 10}, - {"R_PPC64_JMP_IREL", Const, 10}, - {"R_PPC64_JMP_SLOT", Const, 5}, - {"R_PPC64_NONE", Const, 5}, - {"R_PPC64_PCREL28", Const, 20}, - {"R_PPC64_PCREL34", Const, 20}, - {"R_PPC64_PCREL_OPT", Const, 20}, - {"R_PPC64_PLT16_HA", Const, 20}, - {"R_PPC64_PLT16_HI", Const, 20}, - {"R_PPC64_PLT16_LO", Const, 20}, - {"R_PPC64_PLT16_LO_DS", Const, 10}, - {"R_PPC64_PLT32", Const, 20}, - {"R_PPC64_PLT64", Const, 20}, - {"R_PPC64_PLTCALL", Const, 20}, - {"R_PPC64_PLTCALL_NOTOC", Const, 20}, - {"R_PPC64_PLTGOT16", Const, 10}, - {"R_PPC64_PLTGOT16_DS", Const, 10}, - {"R_PPC64_PLTGOT16_HA", Const, 10}, - {"R_PPC64_PLTGOT16_HI", Const, 10}, - {"R_PPC64_PLTGOT16_LO", Const, 10}, - {"R_PPC64_PLTGOT_LO_DS", Const, 10}, - {"R_PPC64_PLTREL32", Const, 20}, - {"R_PPC64_PLTREL64", Const, 20}, - {"R_PPC64_PLTSEQ", Const, 20}, - {"R_PPC64_PLTSEQ_NOTOC", Const, 20}, - {"R_PPC64_PLT_PCREL34", Const, 20}, - {"R_PPC64_PLT_PCREL34_NOTOC", Const, 20}, - {"R_PPC64_REL14", Const, 5}, - {"R_PPC64_REL14_BRNTAKEN", Const, 5}, - {"R_PPC64_REL14_BRTAKEN", Const, 5}, - {"R_PPC64_REL16", Const, 5}, - {"R_PPC64_REL16DX_HA", Const, 10}, - {"R_PPC64_REL16_HA", Const, 5}, - {"R_PPC64_REL16_HI", Const, 5}, - {"R_PPC64_REL16_HIGH", Const, 20}, - {"R_PPC64_REL16_HIGHA", Const, 20}, - {"R_PPC64_REL16_HIGHER", Const, 20}, - {"R_PPC64_REL16_HIGHER34", Const, 20}, - {"R_PPC64_REL16_HIGHERA", Const, 20}, - {"R_PPC64_REL16_HIGHERA34", Const, 20}, - {"R_PPC64_REL16_HIGHEST", Const, 20}, - {"R_PPC64_REL16_HIGHEST34", Const, 20}, - {"R_PPC64_REL16_HIGHESTA", Const, 20}, - {"R_PPC64_REL16_HIGHESTA34", Const, 20}, - {"R_PPC64_REL16_LO", Const, 5}, - {"R_PPC64_REL24", Const, 5}, - {"R_PPC64_REL24_NOTOC", Const, 10}, - {"R_PPC64_REL24_P9NOTOC", Const, 21}, - {"R_PPC64_REL30", Const, 20}, - {"R_PPC64_REL32", Const, 5}, - {"R_PPC64_REL64", Const, 5}, - {"R_PPC64_RELATIVE", Const, 18}, - {"R_PPC64_SECTOFF", Const, 20}, - {"R_PPC64_SECTOFF_DS", Const, 10}, - {"R_PPC64_SECTOFF_HA", Const, 20}, - {"R_PPC64_SECTOFF_HI", Const, 20}, - {"R_PPC64_SECTOFF_LO", Const, 20}, - {"R_PPC64_SECTOFF_LO_DS", Const, 10}, - {"R_PPC64_TLS", Const, 5}, - {"R_PPC64_TLSGD", Const, 5}, - {"R_PPC64_TLSLD", Const, 5}, - {"R_PPC64_TOC", Const, 5}, - {"R_PPC64_TOC16", Const, 5}, - {"R_PPC64_TOC16_DS", Const, 5}, - {"R_PPC64_TOC16_HA", Const, 5}, - {"R_PPC64_TOC16_HI", Const, 5}, - {"R_PPC64_TOC16_LO", Const, 5}, - {"R_PPC64_TOC16_LO_DS", Const, 5}, - {"R_PPC64_TOCSAVE", Const, 10}, - {"R_PPC64_TPREL16", Const, 5}, - {"R_PPC64_TPREL16_DS", Const, 5}, - {"R_PPC64_TPREL16_HA", Const, 5}, - {"R_PPC64_TPREL16_HI", Const, 5}, - {"R_PPC64_TPREL16_HIGH", Const, 10}, - {"R_PPC64_TPREL16_HIGHA", Const, 10}, - {"R_PPC64_TPREL16_HIGHER", Const, 5}, - {"R_PPC64_TPREL16_HIGHERA", Const, 5}, - {"R_PPC64_TPREL16_HIGHEST", Const, 5}, - {"R_PPC64_TPREL16_HIGHESTA", Const, 5}, - {"R_PPC64_TPREL16_LO", Const, 5}, - {"R_PPC64_TPREL16_LO_DS", Const, 5}, - {"R_PPC64_TPREL34", Const, 20}, - {"R_PPC64_TPREL64", Const, 5}, - {"R_PPC64_UADDR16", Const, 20}, - {"R_PPC64_UADDR32", Const, 20}, - {"R_PPC64_UADDR64", Const, 20}, - {"R_PPC_ADDR14", Const, 0}, - {"R_PPC_ADDR14_BRNTAKEN", Const, 0}, - {"R_PPC_ADDR14_BRTAKEN", Const, 0}, - {"R_PPC_ADDR16", Const, 0}, - {"R_PPC_ADDR16_HA", Const, 0}, - {"R_PPC_ADDR16_HI", Const, 0}, - {"R_PPC_ADDR16_LO", Const, 0}, - {"R_PPC_ADDR24", Const, 0}, - {"R_PPC_ADDR32", Const, 0}, - {"R_PPC_COPY", Const, 0}, - {"R_PPC_DTPMOD32", Const, 0}, - {"R_PPC_DTPREL16", Const, 0}, - {"R_PPC_DTPREL16_HA", Const, 0}, - {"R_PPC_DTPREL16_HI", Const, 0}, - {"R_PPC_DTPREL16_LO", Const, 0}, - {"R_PPC_DTPREL32", Const, 0}, - {"R_PPC_EMB_BIT_FLD", Const, 0}, - {"R_PPC_EMB_MRKREF", Const, 0}, - {"R_PPC_EMB_NADDR16", Const, 0}, - {"R_PPC_EMB_NADDR16_HA", Const, 0}, - {"R_PPC_EMB_NADDR16_HI", Const, 0}, - {"R_PPC_EMB_NADDR16_LO", Const, 0}, - {"R_PPC_EMB_NADDR32", Const, 0}, - {"R_PPC_EMB_RELSDA", Const, 0}, - {"R_PPC_EMB_RELSEC16", Const, 0}, - {"R_PPC_EMB_RELST_HA", Const, 0}, - {"R_PPC_EMB_RELST_HI", Const, 0}, - {"R_PPC_EMB_RELST_LO", Const, 0}, - {"R_PPC_EMB_SDA21", Const, 0}, - {"R_PPC_EMB_SDA2I16", Const, 0}, - {"R_PPC_EMB_SDA2REL", Const, 0}, - {"R_PPC_EMB_SDAI16", Const, 0}, - {"R_PPC_GLOB_DAT", Const, 0}, - {"R_PPC_GOT16", Const, 0}, - {"R_PPC_GOT16_HA", Const, 0}, - {"R_PPC_GOT16_HI", Const, 0}, - {"R_PPC_GOT16_LO", Const, 0}, - {"R_PPC_GOT_TLSGD16", Const, 0}, - {"R_PPC_GOT_TLSGD16_HA", Const, 0}, - {"R_PPC_GOT_TLSGD16_HI", Const, 0}, - {"R_PPC_GOT_TLSGD16_LO", Const, 0}, - {"R_PPC_GOT_TLSLD16", Const, 0}, - {"R_PPC_GOT_TLSLD16_HA", Const, 0}, - {"R_PPC_GOT_TLSLD16_HI", Const, 0}, - {"R_PPC_GOT_TLSLD16_LO", Const, 0}, - {"R_PPC_GOT_TPREL16", Const, 0}, - {"R_PPC_GOT_TPREL16_HA", Const, 0}, - {"R_PPC_GOT_TPREL16_HI", Const, 0}, - {"R_PPC_GOT_TPREL16_LO", Const, 0}, - {"R_PPC_JMP_SLOT", Const, 0}, - {"R_PPC_LOCAL24PC", Const, 0}, - {"R_PPC_NONE", Const, 0}, - {"R_PPC_PLT16_HA", Const, 0}, - {"R_PPC_PLT16_HI", Const, 0}, - {"R_PPC_PLT16_LO", Const, 0}, - {"R_PPC_PLT32", Const, 0}, - {"R_PPC_PLTREL24", Const, 0}, - {"R_PPC_PLTREL32", Const, 0}, - {"R_PPC_REL14", Const, 0}, - {"R_PPC_REL14_BRNTAKEN", Const, 0}, - {"R_PPC_REL14_BRTAKEN", Const, 0}, - {"R_PPC_REL24", Const, 0}, - {"R_PPC_REL32", Const, 0}, - {"R_PPC_RELATIVE", Const, 0}, - {"R_PPC_SDAREL16", Const, 0}, - {"R_PPC_SECTOFF", Const, 0}, - {"R_PPC_SECTOFF_HA", Const, 0}, - {"R_PPC_SECTOFF_HI", Const, 0}, - {"R_PPC_SECTOFF_LO", Const, 0}, - {"R_PPC_TLS", Const, 0}, - {"R_PPC_TPREL16", Const, 0}, - {"R_PPC_TPREL16_HA", Const, 0}, - {"R_PPC_TPREL16_HI", Const, 0}, - {"R_PPC_TPREL16_LO", Const, 0}, - {"R_PPC_TPREL32", Const, 0}, - {"R_PPC_UADDR16", Const, 0}, - {"R_PPC_UADDR32", Const, 0}, - {"R_RISCV", Type, 11}, - {"R_RISCV_32", Const, 11}, - {"R_RISCV_32_PCREL", Const, 12}, - {"R_RISCV_64", Const, 11}, - {"R_RISCV_ADD16", Const, 11}, - {"R_RISCV_ADD32", Const, 11}, - {"R_RISCV_ADD64", Const, 11}, - {"R_RISCV_ADD8", Const, 11}, - {"R_RISCV_ALIGN", Const, 11}, - {"R_RISCV_BRANCH", Const, 11}, - {"R_RISCV_CALL", Const, 11}, - {"R_RISCV_CALL_PLT", Const, 11}, - {"R_RISCV_COPY", Const, 11}, - {"R_RISCV_GNU_VTENTRY", Const, 11}, - {"R_RISCV_GNU_VTINHERIT", Const, 11}, - {"R_RISCV_GOT_HI20", Const, 11}, - {"R_RISCV_GPREL_I", Const, 11}, - {"R_RISCV_GPREL_S", Const, 11}, - {"R_RISCV_HI20", Const, 11}, - {"R_RISCV_JAL", Const, 11}, - {"R_RISCV_JUMP_SLOT", Const, 11}, - {"R_RISCV_LO12_I", Const, 11}, - {"R_RISCV_LO12_S", Const, 11}, - {"R_RISCV_NONE", Const, 11}, - {"R_RISCV_PCREL_HI20", Const, 11}, - {"R_RISCV_PCREL_LO12_I", Const, 11}, - {"R_RISCV_PCREL_LO12_S", Const, 11}, - {"R_RISCV_RELATIVE", Const, 11}, - {"R_RISCV_RELAX", Const, 11}, - {"R_RISCV_RVC_BRANCH", Const, 11}, - {"R_RISCV_RVC_JUMP", Const, 11}, - {"R_RISCV_RVC_LUI", Const, 11}, - {"R_RISCV_SET16", Const, 11}, - {"R_RISCV_SET32", Const, 11}, - {"R_RISCV_SET6", Const, 11}, - {"R_RISCV_SET8", Const, 11}, - {"R_RISCV_SUB16", Const, 11}, - {"R_RISCV_SUB32", Const, 11}, - {"R_RISCV_SUB6", Const, 11}, - {"R_RISCV_SUB64", Const, 11}, - {"R_RISCV_SUB8", Const, 11}, - {"R_RISCV_TLS_DTPMOD32", Const, 11}, - {"R_RISCV_TLS_DTPMOD64", Const, 11}, - {"R_RISCV_TLS_DTPREL32", Const, 11}, - {"R_RISCV_TLS_DTPREL64", Const, 11}, - {"R_RISCV_TLS_GD_HI20", Const, 11}, - {"R_RISCV_TLS_GOT_HI20", Const, 11}, - {"R_RISCV_TLS_TPREL32", Const, 11}, - {"R_RISCV_TLS_TPREL64", Const, 11}, - {"R_RISCV_TPREL_ADD", Const, 11}, - {"R_RISCV_TPREL_HI20", Const, 11}, - {"R_RISCV_TPREL_I", Const, 11}, - {"R_RISCV_TPREL_LO12_I", Const, 11}, - {"R_RISCV_TPREL_LO12_S", Const, 11}, - {"R_RISCV_TPREL_S", Const, 11}, - {"R_SPARC", Type, 0}, - {"R_SPARC_10", Const, 0}, - {"R_SPARC_11", Const, 0}, - {"R_SPARC_13", Const, 0}, - {"R_SPARC_16", Const, 0}, - {"R_SPARC_22", Const, 0}, - {"R_SPARC_32", Const, 0}, - {"R_SPARC_5", Const, 0}, - {"R_SPARC_6", Const, 0}, - {"R_SPARC_64", Const, 0}, - {"R_SPARC_7", Const, 0}, - {"R_SPARC_8", Const, 0}, - {"R_SPARC_COPY", Const, 0}, - {"R_SPARC_DISP16", Const, 0}, - {"R_SPARC_DISP32", Const, 0}, - {"R_SPARC_DISP64", Const, 0}, - {"R_SPARC_DISP8", Const, 0}, - {"R_SPARC_GLOB_DAT", Const, 0}, - {"R_SPARC_GLOB_JMP", Const, 0}, - {"R_SPARC_GOT10", Const, 0}, - {"R_SPARC_GOT13", Const, 0}, - {"R_SPARC_GOT22", Const, 0}, - {"R_SPARC_H44", Const, 0}, - {"R_SPARC_HH22", Const, 0}, - {"R_SPARC_HI22", Const, 0}, - {"R_SPARC_HIPLT22", Const, 0}, - {"R_SPARC_HIX22", Const, 0}, - {"R_SPARC_HM10", Const, 0}, - {"R_SPARC_JMP_SLOT", Const, 0}, - {"R_SPARC_L44", Const, 0}, - {"R_SPARC_LM22", Const, 0}, - {"R_SPARC_LO10", Const, 0}, - {"R_SPARC_LOPLT10", Const, 0}, - {"R_SPARC_LOX10", Const, 0}, - {"R_SPARC_M44", Const, 0}, - {"R_SPARC_NONE", Const, 0}, - {"R_SPARC_OLO10", Const, 0}, - {"R_SPARC_PC10", Const, 0}, - {"R_SPARC_PC22", Const, 0}, - {"R_SPARC_PCPLT10", Const, 0}, - {"R_SPARC_PCPLT22", Const, 0}, - {"R_SPARC_PCPLT32", Const, 0}, - {"R_SPARC_PC_HH22", Const, 0}, - {"R_SPARC_PC_HM10", Const, 0}, - {"R_SPARC_PC_LM22", Const, 0}, - {"R_SPARC_PLT32", Const, 0}, - {"R_SPARC_PLT64", Const, 0}, - {"R_SPARC_REGISTER", Const, 0}, - {"R_SPARC_RELATIVE", Const, 0}, - {"R_SPARC_UA16", Const, 0}, - {"R_SPARC_UA32", Const, 0}, - {"R_SPARC_UA64", Const, 0}, - {"R_SPARC_WDISP16", Const, 0}, - {"R_SPARC_WDISP19", Const, 0}, - {"R_SPARC_WDISP22", Const, 0}, - {"R_SPARC_WDISP30", Const, 0}, - {"R_SPARC_WPLT30", Const, 0}, - {"R_SYM32", Func, 0}, - {"R_SYM64", Func, 0}, - {"R_TYPE32", Func, 0}, - {"R_TYPE64", Func, 0}, - {"R_X86_64", Type, 0}, - {"R_X86_64_16", Const, 0}, - {"R_X86_64_32", Const, 0}, - {"R_X86_64_32S", Const, 0}, - {"R_X86_64_64", Const, 0}, - {"R_X86_64_8", Const, 0}, - {"R_X86_64_COPY", Const, 0}, - {"R_X86_64_DTPMOD64", Const, 0}, - {"R_X86_64_DTPOFF32", Const, 0}, - {"R_X86_64_DTPOFF64", Const, 0}, - {"R_X86_64_GLOB_DAT", Const, 0}, - {"R_X86_64_GOT32", Const, 0}, - {"R_X86_64_GOT64", Const, 10}, - {"R_X86_64_GOTOFF64", Const, 10}, - {"R_X86_64_GOTPC32", Const, 10}, - {"R_X86_64_GOTPC32_TLSDESC", Const, 10}, - {"R_X86_64_GOTPC64", Const, 10}, - {"R_X86_64_GOTPCREL", Const, 0}, - {"R_X86_64_GOTPCREL64", Const, 10}, - {"R_X86_64_GOTPCRELX", Const, 10}, - {"R_X86_64_GOTPLT64", Const, 10}, - {"R_X86_64_GOTTPOFF", Const, 0}, - {"R_X86_64_IRELATIVE", Const, 10}, - {"R_X86_64_JMP_SLOT", Const, 0}, - {"R_X86_64_NONE", Const, 0}, - {"R_X86_64_PC16", Const, 0}, - {"R_X86_64_PC32", Const, 0}, - {"R_X86_64_PC32_BND", Const, 10}, - {"R_X86_64_PC64", Const, 10}, - {"R_X86_64_PC8", Const, 0}, - {"R_X86_64_PLT32", Const, 0}, - {"R_X86_64_PLT32_BND", Const, 10}, - {"R_X86_64_PLTOFF64", Const, 10}, - {"R_X86_64_RELATIVE", Const, 0}, - {"R_X86_64_RELATIVE64", Const, 10}, - {"R_X86_64_REX_GOTPCRELX", Const, 10}, - {"R_X86_64_SIZE32", Const, 10}, - {"R_X86_64_SIZE64", Const, 10}, - {"R_X86_64_TLSDESC", Const, 10}, - {"R_X86_64_TLSDESC_CALL", Const, 10}, - {"R_X86_64_TLSGD", Const, 0}, - {"R_X86_64_TLSLD", Const, 0}, - {"R_X86_64_TPOFF32", Const, 0}, - {"R_X86_64_TPOFF64", Const, 0}, - {"Rel32", Type, 0}, - {"Rel32.Info", Field, 0}, - {"Rel32.Off", Field, 0}, - {"Rel64", Type, 0}, - {"Rel64.Info", Field, 0}, - {"Rel64.Off", Field, 0}, - {"Rela32", Type, 0}, - {"Rela32.Addend", Field, 0}, - {"Rela32.Info", Field, 0}, - {"Rela32.Off", Field, 0}, - {"Rela64", Type, 0}, - {"Rela64.Addend", Field, 0}, - {"Rela64.Info", Field, 0}, - {"Rela64.Off", Field, 0}, - {"SHF_ALLOC", Const, 0}, - {"SHF_COMPRESSED", Const, 6}, - {"SHF_EXECINSTR", Const, 0}, - {"SHF_GROUP", Const, 0}, - {"SHF_INFO_LINK", Const, 0}, - {"SHF_LINK_ORDER", Const, 0}, - {"SHF_MASKOS", Const, 0}, - {"SHF_MASKPROC", Const, 0}, - {"SHF_MERGE", Const, 0}, - {"SHF_OS_NONCONFORMING", Const, 0}, - {"SHF_STRINGS", Const, 0}, - {"SHF_TLS", Const, 0}, - {"SHF_WRITE", Const, 0}, - {"SHN_ABS", Const, 0}, - {"SHN_COMMON", Const, 0}, - {"SHN_HIOS", Const, 0}, - {"SHN_HIPROC", Const, 0}, - {"SHN_HIRESERVE", Const, 0}, - {"SHN_LOOS", Const, 0}, - {"SHN_LOPROC", Const, 0}, - {"SHN_LORESERVE", Const, 0}, - {"SHN_UNDEF", Const, 0}, - {"SHN_XINDEX", Const, 0}, - {"SHT_DYNAMIC", Const, 0}, - {"SHT_DYNSYM", Const, 0}, - {"SHT_FINI_ARRAY", Const, 0}, - {"SHT_GNU_ATTRIBUTES", Const, 0}, - {"SHT_GNU_HASH", Const, 0}, - {"SHT_GNU_LIBLIST", Const, 0}, - {"SHT_GNU_VERDEF", Const, 0}, - {"SHT_GNU_VERNEED", Const, 0}, - {"SHT_GNU_VERSYM", Const, 0}, - {"SHT_GROUP", Const, 0}, - {"SHT_HASH", Const, 0}, - {"SHT_HIOS", Const, 0}, - {"SHT_HIPROC", Const, 0}, - {"SHT_HIUSER", Const, 0}, - {"SHT_INIT_ARRAY", Const, 0}, - {"SHT_LOOS", Const, 0}, - {"SHT_LOPROC", Const, 0}, - {"SHT_LOUSER", Const, 0}, - {"SHT_MIPS_ABIFLAGS", Const, 17}, - {"SHT_NOBITS", Const, 0}, - {"SHT_NOTE", Const, 0}, - {"SHT_NULL", Const, 0}, - {"SHT_PREINIT_ARRAY", Const, 0}, - {"SHT_PROGBITS", Const, 0}, - {"SHT_REL", Const, 0}, - {"SHT_RELA", Const, 0}, - {"SHT_SHLIB", Const, 0}, - {"SHT_STRTAB", Const, 0}, - {"SHT_SYMTAB", Const, 0}, - {"SHT_SYMTAB_SHNDX", Const, 0}, - {"STB_GLOBAL", Const, 0}, - {"STB_HIOS", Const, 0}, - {"STB_HIPROC", Const, 0}, - {"STB_LOCAL", Const, 0}, - {"STB_LOOS", Const, 0}, - {"STB_LOPROC", Const, 0}, - {"STB_WEAK", Const, 0}, - {"STT_COMMON", Const, 0}, - {"STT_FILE", Const, 0}, - {"STT_FUNC", Const, 0}, - {"STT_GNU_IFUNC", Const, 23}, - {"STT_HIOS", Const, 0}, - {"STT_HIPROC", Const, 0}, - {"STT_LOOS", Const, 0}, - {"STT_LOPROC", Const, 0}, - {"STT_NOTYPE", Const, 0}, - {"STT_OBJECT", Const, 0}, - {"STT_RELC", Const, 23}, - {"STT_SECTION", Const, 0}, - {"STT_SRELC", Const, 23}, - {"STT_TLS", Const, 0}, - {"STV_DEFAULT", Const, 0}, - {"STV_HIDDEN", Const, 0}, - {"STV_INTERNAL", Const, 0}, - {"STV_PROTECTED", Const, 0}, - {"ST_BIND", Func, 0}, - {"ST_INFO", Func, 0}, - {"ST_TYPE", Func, 0}, - {"ST_VISIBILITY", Func, 0}, - {"Section", Type, 0}, - {"Section.ReaderAt", Field, 0}, - {"Section.SectionHeader", Field, 0}, - {"Section32", Type, 0}, - {"Section32.Addr", Field, 0}, - {"Section32.Addralign", Field, 0}, - {"Section32.Entsize", Field, 0}, - {"Section32.Flags", Field, 0}, - {"Section32.Info", Field, 0}, - {"Section32.Link", Field, 0}, - {"Section32.Name", Field, 0}, - {"Section32.Off", Field, 0}, - {"Section32.Size", Field, 0}, - {"Section32.Type", Field, 0}, - {"Section64", Type, 0}, - {"Section64.Addr", Field, 0}, - {"Section64.Addralign", Field, 0}, - {"Section64.Entsize", Field, 0}, - {"Section64.Flags", Field, 0}, - {"Section64.Info", Field, 0}, - {"Section64.Link", Field, 0}, - {"Section64.Name", Field, 0}, - {"Section64.Off", Field, 0}, - {"Section64.Size", Field, 0}, - {"Section64.Type", Field, 0}, - {"SectionFlag", Type, 0}, - {"SectionHeader", Type, 0}, - {"SectionHeader.Addr", Field, 0}, - {"SectionHeader.Addralign", Field, 0}, - {"SectionHeader.Entsize", Field, 0}, - {"SectionHeader.FileSize", Field, 6}, - {"SectionHeader.Flags", Field, 0}, - {"SectionHeader.Info", Field, 0}, - {"SectionHeader.Link", Field, 0}, - {"SectionHeader.Name", Field, 0}, - {"SectionHeader.Offset", Field, 0}, - {"SectionHeader.Size", Field, 0}, - {"SectionHeader.Type", Field, 0}, - {"SectionIndex", Type, 0}, - {"SectionType", Type, 0}, - {"Sym32", Type, 0}, - {"Sym32.Info", Field, 0}, - {"Sym32.Name", Field, 0}, - {"Sym32.Other", Field, 0}, - {"Sym32.Shndx", Field, 0}, - {"Sym32.Size", Field, 0}, - {"Sym32.Value", Field, 0}, - {"Sym32Size", Const, 0}, - {"Sym64", Type, 0}, - {"Sym64.Info", Field, 0}, - {"Sym64.Name", Field, 0}, - {"Sym64.Other", Field, 0}, - {"Sym64.Shndx", Field, 0}, - {"Sym64.Size", Field, 0}, - {"Sym64.Value", Field, 0}, - {"Sym64Size", Const, 0}, - {"SymBind", Type, 0}, - {"SymType", Type, 0}, - {"SymVis", Type, 0}, - {"Symbol", Type, 0}, - {"Symbol.Info", Field, 0}, - {"Symbol.Library", Field, 13}, - {"Symbol.Name", Field, 0}, - {"Symbol.Other", Field, 0}, - {"Symbol.Section", Field, 0}, - {"Symbol.Size", Field, 0}, - {"Symbol.Value", Field, 0}, - {"Symbol.Version", Field, 13}, - {"Symbol.VersionIndex", Field, 24}, - {"Symbol.VersionScope", Field, 24}, - {"SymbolVersionScope", Type, 24}, - {"Type", Type, 0}, - {"VER_FLG_BASE", Const, 24}, - {"VER_FLG_INFO", Const, 24}, - {"VER_FLG_WEAK", Const, 24}, - {"Version", Type, 0}, - {"VersionScopeGlobal", Const, 24}, - {"VersionScopeHidden", Const, 24}, - {"VersionScopeLocal", Const, 24}, - {"VersionScopeNone", Const, 24}, - {"VersionScopeSpecific", Const, 24}, - }, - "debug/gosym": { - {"(*DecodingError).Error", Method, 0}, - {"(*LineTable).LineToPC", Method, 0}, - {"(*LineTable).PCToLine", Method, 0}, - {"(*Sym).BaseName", Method, 0}, - {"(*Sym).PackageName", Method, 0}, - {"(*Sym).ReceiverName", Method, 0}, - {"(*Sym).Static", Method, 0}, - {"(*Table).LineToPC", Method, 0}, - {"(*Table).LookupFunc", Method, 0}, - {"(*Table).LookupSym", Method, 0}, - {"(*Table).PCToFunc", Method, 0}, - {"(*Table).PCToLine", Method, 0}, - {"(*Table).SymByAddr", Method, 0}, - {"(*UnknownLineError).Error", Method, 0}, - {"(Func).BaseName", Method, 0}, - {"(Func).PackageName", Method, 0}, - {"(Func).ReceiverName", Method, 0}, - {"(Func).Static", Method, 0}, - {"(UnknownFileError).Error", Method, 0}, - {"DecodingError", Type, 0}, - {"Func", Type, 0}, - {"Func.End", Field, 0}, - {"Func.Entry", Field, 0}, - {"Func.FrameSize", Field, 0}, - {"Func.LineTable", Field, 0}, - {"Func.Locals", Field, 0}, - {"Func.Obj", Field, 0}, - {"Func.Params", Field, 0}, - {"Func.Sym", Field, 0}, - {"LineTable", Type, 0}, - {"LineTable.Data", Field, 0}, - {"LineTable.Line", Field, 0}, - {"LineTable.PC", Field, 0}, - {"NewLineTable", Func, 0}, - {"NewTable", Func, 0}, - {"Obj", Type, 0}, - {"Obj.Funcs", Field, 0}, - {"Obj.Paths", Field, 0}, - {"Sym", Type, 0}, - {"Sym.Func", Field, 0}, - {"Sym.GoType", Field, 0}, - {"Sym.Name", Field, 0}, - {"Sym.Type", Field, 0}, - {"Sym.Value", Field, 0}, - {"Table", Type, 0}, - {"Table.Files", Field, 0}, - {"Table.Funcs", Field, 0}, - {"Table.Objs", Field, 0}, - {"Table.Syms", Field, 0}, - {"UnknownFileError", Type, 0}, - {"UnknownLineError", Type, 0}, - {"UnknownLineError.File", Field, 0}, - {"UnknownLineError.Line", Field, 0}, - }, - "debug/macho": { - {"(*FatFile).Close", Method, 3}, - {"(*File).Close", Method, 0}, - {"(*File).DWARF", Method, 0}, - {"(*File).ImportedLibraries", Method, 0}, - {"(*File).ImportedSymbols", Method, 0}, - {"(*File).Section", Method, 0}, - {"(*File).Segment", Method, 0}, - {"(*FormatError).Error", Method, 0}, - {"(*Section).Data", Method, 0}, - {"(*Section).Open", Method, 0}, - {"(*Segment).Data", Method, 0}, - {"(*Segment).Open", Method, 0}, - {"(Cpu).GoString", Method, 0}, - {"(Cpu).String", Method, 0}, - {"(Dylib).Raw", Method, 0}, - {"(Dysymtab).Raw", Method, 0}, - {"(FatArch).Close", Method, 3}, - {"(FatArch).DWARF", Method, 3}, - {"(FatArch).ImportedLibraries", Method, 3}, - {"(FatArch).ImportedSymbols", Method, 3}, - {"(FatArch).Section", Method, 3}, - {"(FatArch).Segment", Method, 3}, - {"(LoadBytes).Raw", Method, 0}, - {"(LoadCmd).GoString", Method, 0}, - {"(LoadCmd).String", Method, 0}, - {"(RelocTypeARM).GoString", Method, 10}, - {"(RelocTypeARM).String", Method, 10}, - {"(RelocTypeARM64).GoString", Method, 10}, - {"(RelocTypeARM64).String", Method, 10}, - {"(RelocTypeGeneric).GoString", Method, 10}, - {"(RelocTypeGeneric).String", Method, 10}, - {"(RelocTypeX86_64).GoString", Method, 10}, - {"(RelocTypeX86_64).String", Method, 10}, - {"(Rpath).Raw", Method, 10}, - {"(Section).ReadAt", Method, 0}, - {"(Segment).Raw", Method, 0}, - {"(Segment).ReadAt", Method, 0}, - {"(Symtab).Raw", Method, 0}, - {"(Type).GoString", Method, 10}, - {"(Type).String", Method, 10}, - {"ARM64_RELOC_ADDEND", Const, 10}, - {"ARM64_RELOC_BRANCH26", Const, 10}, - {"ARM64_RELOC_GOT_LOAD_PAGE21", Const, 10}, - {"ARM64_RELOC_GOT_LOAD_PAGEOFF12", Const, 10}, - {"ARM64_RELOC_PAGE21", Const, 10}, - {"ARM64_RELOC_PAGEOFF12", Const, 10}, - {"ARM64_RELOC_POINTER_TO_GOT", Const, 10}, - {"ARM64_RELOC_SUBTRACTOR", Const, 10}, - {"ARM64_RELOC_TLVP_LOAD_PAGE21", Const, 10}, - {"ARM64_RELOC_TLVP_LOAD_PAGEOFF12", Const, 10}, - {"ARM64_RELOC_UNSIGNED", Const, 10}, - {"ARM_RELOC_BR24", Const, 10}, - {"ARM_RELOC_HALF", Const, 10}, - {"ARM_RELOC_HALF_SECTDIFF", Const, 10}, - {"ARM_RELOC_LOCAL_SECTDIFF", Const, 10}, - {"ARM_RELOC_PAIR", Const, 10}, - {"ARM_RELOC_PB_LA_PTR", Const, 10}, - {"ARM_RELOC_SECTDIFF", Const, 10}, - {"ARM_RELOC_VANILLA", Const, 10}, - {"ARM_THUMB_32BIT_BRANCH", Const, 10}, - {"ARM_THUMB_RELOC_BR22", Const, 10}, - {"Cpu", Type, 0}, - {"Cpu386", Const, 0}, - {"CpuAmd64", Const, 0}, - {"CpuArm", Const, 3}, - {"CpuArm64", Const, 11}, - {"CpuPpc", Const, 3}, - {"CpuPpc64", Const, 3}, - {"Dylib", Type, 0}, - {"Dylib.CompatVersion", Field, 0}, - {"Dylib.CurrentVersion", Field, 0}, - {"Dylib.LoadBytes", Field, 0}, - {"Dylib.Name", Field, 0}, - {"Dylib.Time", Field, 0}, - {"DylibCmd", Type, 0}, - {"DylibCmd.Cmd", Field, 0}, - {"DylibCmd.CompatVersion", Field, 0}, - {"DylibCmd.CurrentVersion", Field, 0}, - {"DylibCmd.Len", Field, 0}, - {"DylibCmd.Name", Field, 0}, - {"DylibCmd.Time", Field, 0}, - {"Dysymtab", Type, 0}, - {"Dysymtab.DysymtabCmd", Field, 0}, - {"Dysymtab.IndirectSyms", Field, 0}, - {"Dysymtab.LoadBytes", Field, 0}, - {"DysymtabCmd", Type, 0}, - {"DysymtabCmd.Cmd", Field, 0}, - {"DysymtabCmd.Extrefsymoff", Field, 0}, - {"DysymtabCmd.Extreloff", Field, 0}, - {"DysymtabCmd.Iextdefsym", Field, 0}, - {"DysymtabCmd.Ilocalsym", Field, 0}, - {"DysymtabCmd.Indirectsymoff", Field, 0}, - {"DysymtabCmd.Iundefsym", Field, 0}, - {"DysymtabCmd.Len", Field, 0}, - {"DysymtabCmd.Locreloff", Field, 0}, - {"DysymtabCmd.Modtaboff", Field, 0}, - {"DysymtabCmd.Nextdefsym", Field, 0}, - {"DysymtabCmd.Nextrefsyms", Field, 0}, - {"DysymtabCmd.Nextrel", Field, 0}, - {"DysymtabCmd.Nindirectsyms", Field, 0}, - {"DysymtabCmd.Nlocalsym", Field, 0}, - {"DysymtabCmd.Nlocrel", Field, 0}, - {"DysymtabCmd.Nmodtab", Field, 0}, - {"DysymtabCmd.Ntoc", Field, 0}, - {"DysymtabCmd.Nundefsym", Field, 0}, - {"DysymtabCmd.Tocoffset", Field, 0}, - {"ErrNotFat", Var, 3}, - {"FatArch", Type, 3}, - {"FatArch.FatArchHeader", Field, 3}, - {"FatArch.File", Field, 3}, - {"FatArchHeader", Type, 3}, - {"FatArchHeader.Align", Field, 3}, - {"FatArchHeader.Cpu", Field, 3}, - {"FatArchHeader.Offset", Field, 3}, - {"FatArchHeader.Size", Field, 3}, - {"FatArchHeader.SubCpu", Field, 3}, - {"FatFile", Type, 3}, - {"FatFile.Arches", Field, 3}, - {"FatFile.Magic", Field, 3}, - {"File", Type, 0}, - {"File.ByteOrder", Field, 0}, - {"File.Dysymtab", Field, 0}, - {"File.FileHeader", Field, 0}, - {"File.Loads", Field, 0}, - {"File.Sections", Field, 0}, - {"File.Symtab", Field, 0}, - {"FileHeader", Type, 0}, - {"FileHeader.Cmdsz", Field, 0}, - {"FileHeader.Cpu", Field, 0}, - {"FileHeader.Flags", Field, 0}, - {"FileHeader.Magic", Field, 0}, - {"FileHeader.Ncmd", Field, 0}, - {"FileHeader.SubCpu", Field, 0}, - {"FileHeader.Type", Field, 0}, - {"FlagAllModsBound", Const, 10}, - {"FlagAllowStackExecution", Const, 10}, - {"FlagAppExtensionSafe", Const, 10}, - {"FlagBindAtLoad", Const, 10}, - {"FlagBindsToWeak", Const, 10}, - {"FlagCanonical", Const, 10}, - {"FlagDeadStrippableDylib", Const, 10}, - {"FlagDyldLink", Const, 10}, - {"FlagForceFlat", Const, 10}, - {"FlagHasTLVDescriptors", Const, 10}, - {"FlagIncrLink", Const, 10}, - {"FlagLazyInit", Const, 10}, - {"FlagNoFixPrebinding", Const, 10}, - {"FlagNoHeapExecution", Const, 10}, - {"FlagNoMultiDefs", Const, 10}, - {"FlagNoReexportedDylibs", Const, 10}, - {"FlagNoUndefs", Const, 10}, - {"FlagPIE", Const, 10}, - {"FlagPrebindable", Const, 10}, - {"FlagPrebound", Const, 10}, - {"FlagRootSafe", Const, 10}, - {"FlagSetuidSafe", Const, 10}, - {"FlagSplitSegs", Const, 10}, - {"FlagSubsectionsViaSymbols", Const, 10}, - {"FlagTwoLevel", Const, 10}, - {"FlagWeakDefines", Const, 10}, - {"FormatError", Type, 0}, - {"GENERIC_RELOC_LOCAL_SECTDIFF", Const, 10}, - {"GENERIC_RELOC_PAIR", Const, 10}, - {"GENERIC_RELOC_PB_LA_PTR", Const, 10}, - {"GENERIC_RELOC_SECTDIFF", Const, 10}, - {"GENERIC_RELOC_TLV", Const, 10}, - {"GENERIC_RELOC_VANILLA", Const, 10}, - {"Load", Type, 0}, - {"LoadBytes", Type, 0}, - {"LoadCmd", Type, 0}, - {"LoadCmdDylib", Const, 0}, - {"LoadCmdDylinker", Const, 0}, - {"LoadCmdDysymtab", Const, 0}, - {"LoadCmdRpath", Const, 10}, - {"LoadCmdSegment", Const, 0}, - {"LoadCmdSegment64", Const, 0}, - {"LoadCmdSymtab", Const, 0}, - {"LoadCmdThread", Const, 0}, - {"LoadCmdUnixThread", Const, 0}, - {"Magic32", Const, 0}, - {"Magic64", Const, 0}, - {"MagicFat", Const, 3}, - {"NewFatFile", Func, 3}, - {"NewFile", Func, 0}, - {"Nlist32", Type, 0}, - {"Nlist32.Desc", Field, 0}, - {"Nlist32.Name", Field, 0}, - {"Nlist32.Sect", Field, 0}, - {"Nlist32.Type", Field, 0}, - {"Nlist32.Value", Field, 0}, - {"Nlist64", Type, 0}, - {"Nlist64.Desc", Field, 0}, - {"Nlist64.Name", Field, 0}, - {"Nlist64.Sect", Field, 0}, - {"Nlist64.Type", Field, 0}, - {"Nlist64.Value", Field, 0}, - {"Open", Func, 0}, - {"OpenFat", Func, 3}, - {"Regs386", Type, 0}, - {"Regs386.AX", Field, 0}, - {"Regs386.BP", Field, 0}, - {"Regs386.BX", Field, 0}, - {"Regs386.CS", Field, 0}, - {"Regs386.CX", Field, 0}, - {"Regs386.DI", Field, 0}, - {"Regs386.DS", Field, 0}, - {"Regs386.DX", Field, 0}, - {"Regs386.ES", Field, 0}, - {"Regs386.FLAGS", Field, 0}, - {"Regs386.FS", Field, 0}, - {"Regs386.GS", Field, 0}, - {"Regs386.IP", Field, 0}, - {"Regs386.SI", Field, 0}, - {"Regs386.SP", Field, 0}, - {"Regs386.SS", Field, 0}, - {"RegsAMD64", Type, 0}, - {"RegsAMD64.AX", Field, 0}, - {"RegsAMD64.BP", Field, 0}, - {"RegsAMD64.BX", Field, 0}, - {"RegsAMD64.CS", Field, 0}, - {"RegsAMD64.CX", Field, 0}, - {"RegsAMD64.DI", Field, 0}, - {"RegsAMD64.DX", Field, 0}, - {"RegsAMD64.FLAGS", Field, 0}, - {"RegsAMD64.FS", Field, 0}, - {"RegsAMD64.GS", Field, 0}, - {"RegsAMD64.IP", Field, 0}, - {"RegsAMD64.R10", Field, 0}, - {"RegsAMD64.R11", Field, 0}, - {"RegsAMD64.R12", Field, 0}, - {"RegsAMD64.R13", Field, 0}, - {"RegsAMD64.R14", Field, 0}, - {"RegsAMD64.R15", Field, 0}, - {"RegsAMD64.R8", Field, 0}, - {"RegsAMD64.R9", Field, 0}, - {"RegsAMD64.SI", Field, 0}, - {"RegsAMD64.SP", Field, 0}, - {"Reloc", Type, 10}, - {"Reloc.Addr", Field, 10}, - {"Reloc.Extern", Field, 10}, - {"Reloc.Len", Field, 10}, - {"Reloc.Pcrel", Field, 10}, - {"Reloc.Scattered", Field, 10}, - {"Reloc.Type", Field, 10}, - {"Reloc.Value", Field, 10}, - {"RelocTypeARM", Type, 10}, - {"RelocTypeARM64", Type, 10}, - {"RelocTypeGeneric", Type, 10}, - {"RelocTypeX86_64", Type, 10}, - {"Rpath", Type, 10}, - {"Rpath.LoadBytes", Field, 10}, - {"Rpath.Path", Field, 10}, - {"RpathCmd", Type, 10}, - {"RpathCmd.Cmd", Field, 10}, - {"RpathCmd.Len", Field, 10}, - {"RpathCmd.Path", Field, 10}, - {"Section", Type, 0}, - {"Section.ReaderAt", Field, 0}, - {"Section.Relocs", Field, 10}, - {"Section.SectionHeader", Field, 0}, - {"Section32", Type, 0}, - {"Section32.Addr", Field, 0}, - {"Section32.Align", Field, 0}, - {"Section32.Flags", Field, 0}, - {"Section32.Name", Field, 0}, - {"Section32.Nreloc", Field, 0}, - {"Section32.Offset", Field, 0}, - {"Section32.Reloff", Field, 0}, - {"Section32.Reserve1", Field, 0}, - {"Section32.Reserve2", Field, 0}, - {"Section32.Seg", Field, 0}, - {"Section32.Size", Field, 0}, - {"Section64", Type, 0}, - {"Section64.Addr", Field, 0}, - {"Section64.Align", Field, 0}, - {"Section64.Flags", Field, 0}, - {"Section64.Name", Field, 0}, - {"Section64.Nreloc", Field, 0}, - {"Section64.Offset", Field, 0}, - {"Section64.Reloff", Field, 0}, - {"Section64.Reserve1", Field, 0}, - {"Section64.Reserve2", Field, 0}, - {"Section64.Reserve3", Field, 0}, - {"Section64.Seg", Field, 0}, - {"Section64.Size", Field, 0}, - {"SectionHeader", Type, 0}, - {"SectionHeader.Addr", Field, 0}, - {"SectionHeader.Align", Field, 0}, - {"SectionHeader.Flags", Field, 0}, - {"SectionHeader.Name", Field, 0}, - {"SectionHeader.Nreloc", Field, 0}, - {"SectionHeader.Offset", Field, 0}, - {"SectionHeader.Reloff", Field, 0}, - {"SectionHeader.Seg", Field, 0}, - {"SectionHeader.Size", Field, 0}, - {"Segment", Type, 0}, - {"Segment.LoadBytes", Field, 0}, - {"Segment.ReaderAt", Field, 0}, - {"Segment.SegmentHeader", Field, 0}, - {"Segment32", Type, 0}, - {"Segment32.Addr", Field, 0}, - {"Segment32.Cmd", Field, 0}, - {"Segment32.Filesz", Field, 0}, - {"Segment32.Flag", Field, 0}, - {"Segment32.Len", Field, 0}, - {"Segment32.Maxprot", Field, 0}, - {"Segment32.Memsz", Field, 0}, - {"Segment32.Name", Field, 0}, - {"Segment32.Nsect", Field, 0}, - {"Segment32.Offset", Field, 0}, - {"Segment32.Prot", Field, 0}, - {"Segment64", Type, 0}, - {"Segment64.Addr", Field, 0}, - {"Segment64.Cmd", Field, 0}, - {"Segment64.Filesz", Field, 0}, - {"Segment64.Flag", Field, 0}, - {"Segment64.Len", Field, 0}, - {"Segment64.Maxprot", Field, 0}, - {"Segment64.Memsz", Field, 0}, - {"Segment64.Name", Field, 0}, - {"Segment64.Nsect", Field, 0}, - {"Segment64.Offset", Field, 0}, - {"Segment64.Prot", Field, 0}, - {"SegmentHeader", Type, 0}, - {"SegmentHeader.Addr", Field, 0}, - {"SegmentHeader.Cmd", Field, 0}, - {"SegmentHeader.Filesz", Field, 0}, - {"SegmentHeader.Flag", Field, 0}, - {"SegmentHeader.Len", Field, 0}, - {"SegmentHeader.Maxprot", Field, 0}, - {"SegmentHeader.Memsz", Field, 0}, - {"SegmentHeader.Name", Field, 0}, - {"SegmentHeader.Nsect", Field, 0}, - {"SegmentHeader.Offset", Field, 0}, - {"SegmentHeader.Prot", Field, 0}, - {"Symbol", Type, 0}, - {"Symbol.Desc", Field, 0}, - {"Symbol.Name", Field, 0}, - {"Symbol.Sect", Field, 0}, - {"Symbol.Type", Field, 0}, - {"Symbol.Value", Field, 0}, - {"Symtab", Type, 0}, - {"Symtab.LoadBytes", Field, 0}, - {"Symtab.Syms", Field, 0}, - {"Symtab.SymtabCmd", Field, 0}, - {"SymtabCmd", Type, 0}, - {"SymtabCmd.Cmd", Field, 0}, - {"SymtabCmd.Len", Field, 0}, - {"SymtabCmd.Nsyms", Field, 0}, - {"SymtabCmd.Stroff", Field, 0}, - {"SymtabCmd.Strsize", Field, 0}, - {"SymtabCmd.Symoff", Field, 0}, - {"Thread", Type, 0}, - {"Thread.Cmd", Field, 0}, - {"Thread.Data", Field, 0}, - {"Thread.Len", Field, 0}, - {"Thread.Type", Field, 0}, - {"Type", Type, 0}, - {"TypeBundle", Const, 3}, - {"TypeDylib", Const, 3}, - {"TypeExec", Const, 0}, - {"TypeObj", Const, 0}, - {"X86_64_RELOC_BRANCH", Const, 10}, - {"X86_64_RELOC_GOT", Const, 10}, - {"X86_64_RELOC_GOT_LOAD", Const, 10}, - {"X86_64_RELOC_SIGNED", Const, 10}, - {"X86_64_RELOC_SIGNED_1", Const, 10}, - {"X86_64_RELOC_SIGNED_2", Const, 10}, - {"X86_64_RELOC_SIGNED_4", Const, 10}, - {"X86_64_RELOC_SUBTRACTOR", Const, 10}, - {"X86_64_RELOC_TLV", Const, 10}, - {"X86_64_RELOC_UNSIGNED", Const, 10}, - }, - "debug/pe": { - {"(*COFFSymbol).FullName", Method, 8}, - {"(*File).COFFSymbolReadSectionDefAux", Method, 19}, - {"(*File).Close", Method, 0}, - {"(*File).DWARF", Method, 0}, - {"(*File).ImportedLibraries", Method, 0}, - {"(*File).ImportedSymbols", Method, 0}, - {"(*File).Section", Method, 0}, - {"(*FormatError).Error", Method, 0}, - {"(*Section).Data", Method, 0}, - {"(*Section).Open", Method, 0}, - {"(Section).ReadAt", Method, 0}, - {"(StringTable).String", Method, 8}, - {"COFFSymbol", Type, 1}, - {"COFFSymbol.Name", Field, 1}, - {"COFFSymbol.NumberOfAuxSymbols", Field, 1}, - {"COFFSymbol.SectionNumber", Field, 1}, - {"COFFSymbol.StorageClass", Field, 1}, - {"COFFSymbol.Type", Field, 1}, - {"COFFSymbol.Value", Field, 1}, - {"COFFSymbolAuxFormat5", Type, 19}, - {"COFFSymbolAuxFormat5.Checksum", Field, 19}, - {"COFFSymbolAuxFormat5.NumLineNumbers", Field, 19}, - {"COFFSymbolAuxFormat5.NumRelocs", Field, 19}, - {"COFFSymbolAuxFormat5.SecNum", Field, 19}, - {"COFFSymbolAuxFormat5.Selection", Field, 19}, - {"COFFSymbolAuxFormat5.Size", Field, 19}, - {"COFFSymbolSize", Const, 1}, - {"DataDirectory", Type, 3}, - {"DataDirectory.Size", Field, 3}, - {"DataDirectory.VirtualAddress", Field, 3}, - {"File", Type, 0}, - {"File.COFFSymbols", Field, 8}, - {"File.FileHeader", Field, 0}, - {"File.OptionalHeader", Field, 3}, - {"File.Sections", Field, 0}, - {"File.StringTable", Field, 8}, - {"File.Symbols", Field, 1}, - {"FileHeader", Type, 0}, - {"FileHeader.Characteristics", Field, 0}, - {"FileHeader.Machine", Field, 0}, - {"FileHeader.NumberOfSections", Field, 0}, - {"FileHeader.NumberOfSymbols", Field, 0}, - {"FileHeader.PointerToSymbolTable", Field, 0}, - {"FileHeader.SizeOfOptionalHeader", Field, 0}, - {"FileHeader.TimeDateStamp", Field, 0}, - {"FormatError", Type, 0}, - {"IMAGE_COMDAT_SELECT_ANY", Const, 19}, - {"IMAGE_COMDAT_SELECT_ASSOCIATIVE", Const, 19}, - {"IMAGE_COMDAT_SELECT_EXACT_MATCH", Const, 19}, - {"IMAGE_COMDAT_SELECT_LARGEST", Const, 19}, - {"IMAGE_COMDAT_SELECT_NODUPLICATES", Const, 19}, - {"IMAGE_COMDAT_SELECT_SAME_SIZE", Const, 19}, - {"IMAGE_DIRECTORY_ENTRY_ARCHITECTURE", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_BASERELOC", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_DEBUG", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_EXCEPTION", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_EXPORT", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_GLOBALPTR", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_IAT", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_IMPORT", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_RESOURCE", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_SECURITY", Const, 11}, - {"IMAGE_DIRECTORY_ENTRY_TLS", Const, 11}, - {"IMAGE_DLLCHARACTERISTICS_APPCONTAINER", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_GUARD_CF", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_NO_BIND", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_NO_ISOLATION", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_NO_SEH", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_NX_COMPAT", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE", Const, 15}, - {"IMAGE_DLLCHARACTERISTICS_WDM_DRIVER", Const, 15}, - {"IMAGE_FILE_32BIT_MACHINE", Const, 15}, - {"IMAGE_FILE_AGGRESIVE_WS_TRIM", Const, 15}, - {"IMAGE_FILE_BYTES_REVERSED_HI", Const, 15}, - {"IMAGE_FILE_BYTES_REVERSED_LO", Const, 15}, - {"IMAGE_FILE_DEBUG_STRIPPED", Const, 15}, - {"IMAGE_FILE_DLL", Const, 15}, - {"IMAGE_FILE_EXECUTABLE_IMAGE", Const, 15}, - {"IMAGE_FILE_LARGE_ADDRESS_AWARE", Const, 15}, - {"IMAGE_FILE_LINE_NUMS_STRIPPED", Const, 15}, - {"IMAGE_FILE_LOCAL_SYMS_STRIPPED", Const, 15}, - {"IMAGE_FILE_MACHINE_AM33", Const, 0}, - {"IMAGE_FILE_MACHINE_AMD64", Const, 0}, - {"IMAGE_FILE_MACHINE_ARM", Const, 0}, - {"IMAGE_FILE_MACHINE_ARM64", Const, 11}, - {"IMAGE_FILE_MACHINE_ARMNT", Const, 12}, - {"IMAGE_FILE_MACHINE_EBC", Const, 0}, - {"IMAGE_FILE_MACHINE_I386", Const, 0}, - {"IMAGE_FILE_MACHINE_IA64", Const, 0}, - {"IMAGE_FILE_MACHINE_LOONGARCH32", Const, 19}, - {"IMAGE_FILE_MACHINE_LOONGARCH64", Const, 19}, - {"IMAGE_FILE_MACHINE_M32R", Const, 0}, - {"IMAGE_FILE_MACHINE_MIPS16", Const, 0}, - {"IMAGE_FILE_MACHINE_MIPSFPU", Const, 0}, - {"IMAGE_FILE_MACHINE_MIPSFPU16", Const, 0}, - {"IMAGE_FILE_MACHINE_POWERPC", Const, 0}, - {"IMAGE_FILE_MACHINE_POWERPCFP", Const, 0}, - {"IMAGE_FILE_MACHINE_R4000", Const, 0}, - {"IMAGE_FILE_MACHINE_RISCV128", Const, 20}, - {"IMAGE_FILE_MACHINE_RISCV32", Const, 20}, - {"IMAGE_FILE_MACHINE_RISCV64", Const, 20}, - {"IMAGE_FILE_MACHINE_SH3", Const, 0}, - {"IMAGE_FILE_MACHINE_SH3DSP", Const, 0}, - {"IMAGE_FILE_MACHINE_SH4", Const, 0}, - {"IMAGE_FILE_MACHINE_SH5", Const, 0}, - {"IMAGE_FILE_MACHINE_THUMB", Const, 0}, - {"IMAGE_FILE_MACHINE_UNKNOWN", Const, 0}, - {"IMAGE_FILE_MACHINE_WCEMIPSV2", Const, 0}, - {"IMAGE_FILE_NET_RUN_FROM_SWAP", Const, 15}, - {"IMAGE_FILE_RELOCS_STRIPPED", Const, 15}, - {"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", Const, 15}, - {"IMAGE_FILE_SYSTEM", Const, 15}, - {"IMAGE_FILE_UP_SYSTEM_ONLY", Const, 15}, - {"IMAGE_SCN_CNT_CODE", Const, 19}, - {"IMAGE_SCN_CNT_INITIALIZED_DATA", Const, 19}, - {"IMAGE_SCN_CNT_UNINITIALIZED_DATA", Const, 19}, - {"IMAGE_SCN_LNK_COMDAT", Const, 19}, - {"IMAGE_SCN_MEM_DISCARDABLE", Const, 19}, - {"IMAGE_SCN_MEM_EXECUTE", Const, 19}, - {"IMAGE_SCN_MEM_READ", Const, 19}, - {"IMAGE_SCN_MEM_WRITE", Const, 19}, - {"IMAGE_SUBSYSTEM_EFI_APPLICATION", Const, 15}, - {"IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER", Const, 15}, - {"IMAGE_SUBSYSTEM_EFI_ROM", Const, 15}, - {"IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER", Const, 15}, - {"IMAGE_SUBSYSTEM_NATIVE", Const, 15}, - {"IMAGE_SUBSYSTEM_NATIVE_WINDOWS", Const, 15}, - {"IMAGE_SUBSYSTEM_OS2_CUI", Const, 15}, - {"IMAGE_SUBSYSTEM_POSIX_CUI", Const, 15}, - {"IMAGE_SUBSYSTEM_UNKNOWN", Const, 15}, - {"IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION", Const, 15}, - {"IMAGE_SUBSYSTEM_WINDOWS_CE_GUI", Const, 15}, - {"IMAGE_SUBSYSTEM_WINDOWS_CUI", Const, 15}, - {"IMAGE_SUBSYSTEM_WINDOWS_GUI", Const, 15}, - {"IMAGE_SUBSYSTEM_XBOX", Const, 15}, - {"ImportDirectory", Type, 0}, - {"ImportDirectory.FirstThunk", Field, 0}, - {"ImportDirectory.ForwarderChain", Field, 0}, - {"ImportDirectory.Name", Field, 0}, - {"ImportDirectory.OriginalFirstThunk", Field, 0}, - {"ImportDirectory.TimeDateStamp", Field, 0}, - {"NewFile", Func, 0}, - {"Open", Func, 0}, - {"OptionalHeader32", Type, 3}, - {"OptionalHeader32.AddressOfEntryPoint", Field, 3}, - {"OptionalHeader32.BaseOfCode", Field, 3}, - {"OptionalHeader32.BaseOfData", Field, 3}, - {"OptionalHeader32.CheckSum", Field, 3}, - {"OptionalHeader32.DataDirectory", Field, 3}, - {"OptionalHeader32.DllCharacteristics", Field, 3}, - {"OptionalHeader32.FileAlignment", Field, 3}, - {"OptionalHeader32.ImageBase", Field, 3}, - {"OptionalHeader32.LoaderFlags", Field, 3}, - {"OptionalHeader32.Magic", Field, 3}, - {"OptionalHeader32.MajorImageVersion", Field, 3}, - {"OptionalHeader32.MajorLinkerVersion", Field, 3}, - {"OptionalHeader32.MajorOperatingSystemVersion", Field, 3}, - {"OptionalHeader32.MajorSubsystemVersion", Field, 3}, - {"OptionalHeader32.MinorImageVersion", Field, 3}, - {"OptionalHeader32.MinorLinkerVersion", Field, 3}, - {"OptionalHeader32.MinorOperatingSystemVersion", Field, 3}, - {"OptionalHeader32.MinorSubsystemVersion", Field, 3}, - {"OptionalHeader32.NumberOfRvaAndSizes", Field, 3}, - {"OptionalHeader32.SectionAlignment", Field, 3}, - {"OptionalHeader32.SizeOfCode", Field, 3}, - {"OptionalHeader32.SizeOfHeaders", Field, 3}, - {"OptionalHeader32.SizeOfHeapCommit", Field, 3}, - {"OptionalHeader32.SizeOfHeapReserve", Field, 3}, - {"OptionalHeader32.SizeOfImage", Field, 3}, - {"OptionalHeader32.SizeOfInitializedData", Field, 3}, - {"OptionalHeader32.SizeOfStackCommit", Field, 3}, - {"OptionalHeader32.SizeOfStackReserve", Field, 3}, - {"OptionalHeader32.SizeOfUninitializedData", Field, 3}, - {"OptionalHeader32.Subsystem", Field, 3}, - {"OptionalHeader32.Win32VersionValue", Field, 3}, - {"OptionalHeader64", Type, 3}, - {"OptionalHeader64.AddressOfEntryPoint", Field, 3}, - {"OptionalHeader64.BaseOfCode", Field, 3}, - {"OptionalHeader64.CheckSum", Field, 3}, - {"OptionalHeader64.DataDirectory", Field, 3}, - {"OptionalHeader64.DllCharacteristics", Field, 3}, - {"OptionalHeader64.FileAlignment", Field, 3}, - {"OptionalHeader64.ImageBase", Field, 3}, - {"OptionalHeader64.LoaderFlags", Field, 3}, - {"OptionalHeader64.Magic", Field, 3}, - {"OptionalHeader64.MajorImageVersion", Field, 3}, - {"OptionalHeader64.MajorLinkerVersion", Field, 3}, - {"OptionalHeader64.MajorOperatingSystemVersion", Field, 3}, - {"OptionalHeader64.MajorSubsystemVersion", Field, 3}, - {"OptionalHeader64.MinorImageVersion", Field, 3}, - {"OptionalHeader64.MinorLinkerVersion", Field, 3}, - {"OptionalHeader64.MinorOperatingSystemVersion", Field, 3}, - {"OptionalHeader64.MinorSubsystemVersion", Field, 3}, - {"OptionalHeader64.NumberOfRvaAndSizes", Field, 3}, - {"OptionalHeader64.SectionAlignment", Field, 3}, - {"OptionalHeader64.SizeOfCode", Field, 3}, - {"OptionalHeader64.SizeOfHeaders", Field, 3}, - {"OptionalHeader64.SizeOfHeapCommit", Field, 3}, - {"OptionalHeader64.SizeOfHeapReserve", Field, 3}, - {"OptionalHeader64.SizeOfImage", Field, 3}, - {"OptionalHeader64.SizeOfInitializedData", Field, 3}, - {"OptionalHeader64.SizeOfStackCommit", Field, 3}, - {"OptionalHeader64.SizeOfStackReserve", Field, 3}, - {"OptionalHeader64.SizeOfUninitializedData", Field, 3}, - {"OptionalHeader64.Subsystem", Field, 3}, - {"OptionalHeader64.Win32VersionValue", Field, 3}, - {"Reloc", Type, 8}, - {"Reloc.SymbolTableIndex", Field, 8}, - {"Reloc.Type", Field, 8}, - {"Reloc.VirtualAddress", Field, 8}, - {"Section", Type, 0}, - {"Section.ReaderAt", Field, 0}, - {"Section.Relocs", Field, 8}, - {"Section.SectionHeader", Field, 0}, - {"SectionHeader", Type, 0}, - {"SectionHeader.Characteristics", Field, 0}, - {"SectionHeader.Name", Field, 0}, - {"SectionHeader.NumberOfLineNumbers", Field, 0}, - {"SectionHeader.NumberOfRelocations", Field, 0}, - {"SectionHeader.Offset", Field, 0}, - {"SectionHeader.PointerToLineNumbers", Field, 0}, - {"SectionHeader.PointerToRelocations", Field, 0}, - {"SectionHeader.Size", Field, 0}, - {"SectionHeader.VirtualAddress", Field, 0}, - {"SectionHeader.VirtualSize", Field, 0}, - {"SectionHeader32", Type, 0}, - {"SectionHeader32.Characteristics", Field, 0}, - {"SectionHeader32.Name", Field, 0}, - {"SectionHeader32.NumberOfLineNumbers", Field, 0}, - {"SectionHeader32.NumberOfRelocations", Field, 0}, - {"SectionHeader32.PointerToLineNumbers", Field, 0}, - {"SectionHeader32.PointerToRawData", Field, 0}, - {"SectionHeader32.PointerToRelocations", Field, 0}, - {"SectionHeader32.SizeOfRawData", Field, 0}, - {"SectionHeader32.VirtualAddress", Field, 0}, - {"SectionHeader32.VirtualSize", Field, 0}, - {"StringTable", Type, 8}, - {"Symbol", Type, 1}, - {"Symbol.Name", Field, 1}, - {"Symbol.SectionNumber", Field, 1}, - {"Symbol.StorageClass", Field, 1}, - {"Symbol.Type", Field, 1}, - {"Symbol.Value", Field, 1}, - }, - "debug/plan9obj": { - {"(*File).Close", Method, 3}, - {"(*File).Section", Method, 3}, - {"(*File).Symbols", Method, 3}, - {"(*Section).Data", Method, 3}, - {"(*Section).Open", Method, 3}, - {"(Section).ReadAt", Method, 3}, - {"ErrNoSymbols", Var, 18}, - {"File", Type, 3}, - {"File.FileHeader", Field, 3}, - {"File.Sections", Field, 3}, - {"FileHeader", Type, 3}, - {"FileHeader.Bss", Field, 3}, - {"FileHeader.Entry", Field, 3}, - {"FileHeader.HdrSize", Field, 4}, - {"FileHeader.LoadAddress", Field, 4}, - {"FileHeader.Magic", Field, 3}, - {"FileHeader.PtrSize", Field, 3}, - {"Magic386", Const, 3}, - {"Magic64", Const, 3}, - {"MagicAMD64", Const, 3}, - {"MagicARM", Const, 3}, - {"NewFile", Func, 3}, - {"Open", Func, 3}, - {"Section", Type, 3}, - {"Section.ReaderAt", Field, 3}, - {"Section.SectionHeader", Field, 3}, - {"SectionHeader", Type, 3}, - {"SectionHeader.Name", Field, 3}, - {"SectionHeader.Offset", Field, 3}, - {"SectionHeader.Size", Field, 3}, - {"Sym", Type, 3}, - {"Sym.Name", Field, 3}, - {"Sym.Type", Field, 3}, - {"Sym.Value", Field, 3}, - }, - "embed": { - {"(FS).Open", Method, 16}, - {"(FS).ReadDir", Method, 16}, - {"(FS).ReadFile", Method, 16}, - {"FS", Type, 16}, - }, - "encoding": { - {"BinaryAppender", Type, 24}, - {"BinaryMarshaler", Type, 2}, - {"BinaryUnmarshaler", Type, 2}, - {"TextAppender", Type, 24}, - {"TextMarshaler", Type, 2}, - {"TextUnmarshaler", Type, 2}, - }, - "encoding/ascii85": { - {"(CorruptInputError).Error", Method, 0}, - {"CorruptInputError", Type, 0}, - {"Decode", Func, 0}, - {"Encode", Func, 0}, - {"MaxEncodedLen", Func, 0}, - {"NewDecoder", Func, 0}, - {"NewEncoder", Func, 0}, - }, - "encoding/asn1": { - {"(BitString).At", Method, 0}, - {"(BitString).RightAlign", Method, 0}, - {"(ObjectIdentifier).Equal", Method, 0}, - {"(ObjectIdentifier).String", Method, 3}, - {"(StructuralError).Error", Method, 0}, - {"(SyntaxError).Error", Method, 0}, - {"BitString", Type, 0}, - {"BitString.BitLength", Field, 0}, - {"BitString.Bytes", Field, 0}, - {"ClassApplication", Const, 6}, - {"ClassContextSpecific", Const, 6}, - {"ClassPrivate", Const, 6}, - {"ClassUniversal", Const, 6}, - {"Enumerated", Type, 0}, - {"Flag", Type, 0}, - {"Marshal", Func, 0}, - {"MarshalWithParams", Func, 10}, - {"NullBytes", Var, 9}, - {"NullRawValue", Var, 9}, - {"ObjectIdentifier", Type, 0}, - {"RawContent", Type, 0}, - {"RawValue", Type, 0}, - {"RawValue.Bytes", Field, 0}, - {"RawValue.Class", Field, 0}, - {"RawValue.FullBytes", Field, 0}, - {"RawValue.IsCompound", Field, 0}, - {"RawValue.Tag", Field, 0}, - {"StructuralError", Type, 0}, - {"StructuralError.Msg", Field, 0}, - {"SyntaxError", Type, 0}, - {"SyntaxError.Msg", Field, 0}, - {"TagBMPString", Const, 14}, - {"TagBitString", Const, 6}, - {"TagBoolean", Const, 6}, - {"TagEnum", Const, 6}, - {"TagGeneralString", Const, 6}, - {"TagGeneralizedTime", Const, 6}, - {"TagIA5String", Const, 6}, - {"TagInteger", Const, 6}, - {"TagNull", Const, 9}, - {"TagNumericString", Const, 10}, - {"TagOID", Const, 6}, - {"TagOctetString", Const, 6}, - {"TagPrintableString", Const, 6}, - {"TagSequence", Const, 6}, - {"TagSet", Const, 6}, - {"TagT61String", Const, 6}, - {"TagUTCTime", Const, 6}, - {"TagUTF8String", Const, 6}, - {"Unmarshal", Func, 0}, - {"UnmarshalWithParams", Func, 0}, - }, - "encoding/base32": { - {"(*Encoding).AppendDecode", Method, 22}, - {"(*Encoding).AppendEncode", Method, 22}, - {"(*Encoding).Decode", Method, 0}, - {"(*Encoding).DecodeString", Method, 0}, - {"(*Encoding).DecodedLen", Method, 0}, - {"(*Encoding).Encode", Method, 0}, - {"(*Encoding).EncodeToString", Method, 0}, - {"(*Encoding).EncodedLen", Method, 0}, - {"(CorruptInputError).Error", Method, 0}, - {"(Encoding).WithPadding", Method, 9}, - {"CorruptInputError", Type, 0}, - {"Encoding", Type, 0}, - {"HexEncoding", Var, 0}, - {"NewDecoder", Func, 0}, - {"NewEncoder", Func, 0}, - {"NewEncoding", Func, 0}, - {"NoPadding", Const, 9}, - {"StdEncoding", Var, 0}, - {"StdPadding", Const, 9}, - }, - "encoding/base64": { - {"(*Encoding).AppendDecode", Method, 22}, - {"(*Encoding).AppendEncode", Method, 22}, - {"(*Encoding).Decode", Method, 0}, - {"(*Encoding).DecodeString", Method, 0}, - {"(*Encoding).DecodedLen", Method, 0}, - {"(*Encoding).Encode", Method, 0}, - {"(*Encoding).EncodeToString", Method, 0}, - {"(*Encoding).EncodedLen", Method, 0}, - {"(CorruptInputError).Error", Method, 0}, - {"(Encoding).Strict", Method, 8}, - {"(Encoding).WithPadding", Method, 5}, - {"CorruptInputError", Type, 0}, - {"Encoding", Type, 0}, - {"NewDecoder", Func, 0}, - {"NewEncoder", Func, 0}, - {"NewEncoding", Func, 0}, - {"NoPadding", Const, 5}, - {"RawStdEncoding", Var, 5}, - {"RawURLEncoding", Var, 5}, - {"StdEncoding", Var, 0}, - {"StdPadding", Const, 5}, - {"URLEncoding", Var, 0}, - }, - "encoding/binary": { - {"Append", Func, 23}, - {"AppendByteOrder", Type, 19}, - {"AppendUvarint", Func, 19}, - {"AppendVarint", Func, 19}, - {"BigEndian", Var, 0}, - {"ByteOrder", Type, 0}, - {"Decode", Func, 23}, - {"Encode", Func, 23}, - {"LittleEndian", Var, 0}, - {"MaxVarintLen16", Const, 0}, - {"MaxVarintLen32", Const, 0}, - {"MaxVarintLen64", Const, 0}, - {"NativeEndian", Var, 21}, - {"PutUvarint", Func, 0}, - {"PutVarint", Func, 0}, - {"Read", Func, 0}, - {"ReadUvarint", Func, 0}, - {"ReadVarint", Func, 0}, - {"Size", Func, 0}, - {"Uvarint", Func, 0}, - {"Varint", Func, 0}, - {"Write", Func, 0}, - }, - "encoding/csv": { - {"(*ParseError).Error", Method, 0}, - {"(*ParseError).Unwrap", Method, 13}, - {"(*Reader).FieldPos", Method, 17}, - {"(*Reader).InputOffset", Method, 19}, - {"(*Reader).Read", Method, 0}, - {"(*Reader).ReadAll", Method, 0}, - {"(*Writer).Error", Method, 1}, - {"(*Writer).Flush", Method, 0}, - {"(*Writer).Write", Method, 0}, - {"(*Writer).WriteAll", Method, 0}, - {"ErrBareQuote", Var, 0}, - {"ErrFieldCount", Var, 0}, - {"ErrQuote", Var, 0}, - {"ErrTrailingComma", Var, 0}, - {"NewReader", Func, 0}, - {"NewWriter", Func, 0}, - {"ParseError", Type, 0}, - {"ParseError.Column", Field, 0}, - {"ParseError.Err", Field, 0}, - {"ParseError.Line", Field, 0}, - {"ParseError.StartLine", Field, 10}, - {"Reader", Type, 0}, - {"Reader.Comma", Field, 0}, - {"Reader.Comment", Field, 0}, - {"Reader.FieldsPerRecord", Field, 0}, - {"Reader.LazyQuotes", Field, 0}, - {"Reader.ReuseRecord", Field, 9}, - {"Reader.TrailingComma", Field, 0}, - {"Reader.TrimLeadingSpace", Field, 0}, - {"Writer", Type, 0}, - {"Writer.Comma", Field, 0}, - {"Writer.UseCRLF", Field, 0}, - }, - "encoding/gob": { - {"(*Decoder).Decode", Method, 0}, - {"(*Decoder).DecodeValue", Method, 0}, - {"(*Encoder).Encode", Method, 0}, - {"(*Encoder).EncodeValue", Method, 0}, - {"CommonType", Type, 0}, - {"CommonType.Id", Field, 0}, - {"CommonType.Name", Field, 0}, - {"Decoder", Type, 0}, - {"Encoder", Type, 0}, - {"GobDecoder", Type, 0}, - {"GobEncoder", Type, 0}, - {"NewDecoder", Func, 0}, - {"NewEncoder", Func, 0}, - {"Register", Func, 0}, - {"RegisterName", Func, 0}, - }, - "encoding/hex": { - {"(InvalidByteError).Error", Method, 0}, - {"AppendDecode", Func, 22}, - {"AppendEncode", Func, 22}, - {"Decode", Func, 0}, - {"DecodeString", Func, 0}, - {"DecodedLen", Func, 0}, - {"Dump", Func, 0}, - {"Dumper", Func, 0}, - {"Encode", Func, 0}, - {"EncodeToString", Func, 0}, - {"EncodedLen", Func, 0}, - {"ErrLength", Var, 0}, - {"InvalidByteError", Type, 0}, - {"NewDecoder", Func, 10}, - {"NewEncoder", Func, 10}, - }, - "encoding/json": { - {"(*Decoder).Buffered", Method, 1}, - {"(*Decoder).Decode", Method, 0}, - {"(*Decoder).DisallowUnknownFields", Method, 10}, - {"(*Decoder).InputOffset", Method, 14}, - {"(*Decoder).More", Method, 5}, - {"(*Decoder).Token", Method, 5}, - {"(*Decoder).UseNumber", Method, 1}, - {"(*Encoder).Encode", Method, 0}, - {"(*Encoder).SetEscapeHTML", Method, 7}, - {"(*Encoder).SetIndent", Method, 7}, - {"(*InvalidUTF8Error).Error", Method, 0}, - {"(*InvalidUnmarshalError).Error", Method, 0}, - {"(*MarshalerError).Error", Method, 0}, - {"(*MarshalerError).Unwrap", Method, 13}, - {"(*RawMessage).MarshalJSON", Method, 0}, - {"(*RawMessage).UnmarshalJSON", Method, 0}, - {"(*SyntaxError).Error", Method, 0}, - {"(*UnmarshalFieldError).Error", Method, 0}, - {"(*UnmarshalTypeError).Error", Method, 0}, - {"(*UnsupportedTypeError).Error", Method, 0}, - {"(*UnsupportedValueError).Error", Method, 0}, - {"(Delim).String", Method, 5}, - {"(Number).Float64", Method, 1}, - {"(Number).Int64", Method, 1}, - {"(Number).String", Method, 1}, - {"(RawMessage).MarshalJSON", Method, 8}, - {"Compact", Func, 0}, - {"Decoder", Type, 0}, - {"Delim", Type, 5}, - {"Encoder", Type, 0}, - {"HTMLEscape", Func, 0}, - {"Indent", Func, 0}, - {"InvalidUTF8Error", Type, 0}, - {"InvalidUTF8Error.S", Field, 0}, - {"InvalidUnmarshalError", Type, 0}, - {"InvalidUnmarshalError.Type", Field, 0}, - {"Marshal", Func, 0}, - {"MarshalIndent", Func, 0}, - {"Marshaler", Type, 0}, - {"MarshalerError", Type, 0}, - {"MarshalerError.Err", Field, 0}, - {"MarshalerError.Type", Field, 0}, - {"NewDecoder", Func, 0}, - {"NewEncoder", Func, 0}, - {"Number", Type, 1}, - {"RawMessage", Type, 0}, - {"SyntaxError", Type, 0}, - {"SyntaxError.Offset", Field, 0}, - {"Token", Type, 5}, - {"Unmarshal", Func, 0}, - {"UnmarshalFieldError", Type, 0}, - {"UnmarshalFieldError.Field", Field, 0}, - {"UnmarshalFieldError.Key", Field, 0}, - {"UnmarshalFieldError.Type", Field, 0}, - {"UnmarshalTypeError", Type, 0}, - {"UnmarshalTypeError.Field", Field, 8}, - {"UnmarshalTypeError.Offset", Field, 5}, - {"UnmarshalTypeError.Struct", Field, 8}, - {"UnmarshalTypeError.Type", Field, 0}, - {"UnmarshalTypeError.Value", Field, 0}, - {"Unmarshaler", Type, 0}, - {"UnsupportedTypeError", Type, 0}, - {"UnsupportedTypeError.Type", Field, 0}, - {"UnsupportedValueError", Type, 0}, - {"UnsupportedValueError.Str", Field, 0}, - {"UnsupportedValueError.Value", Field, 0}, - {"Valid", Func, 9}, - }, - "encoding/pem": { - {"Block", Type, 0}, - {"Block.Bytes", Field, 0}, - {"Block.Headers", Field, 0}, - {"Block.Type", Field, 0}, - {"Decode", Func, 0}, - {"Encode", Func, 0}, - {"EncodeToMemory", Func, 0}, - }, - "encoding/xml": { - {"(*Decoder).Decode", Method, 0}, - {"(*Decoder).DecodeElement", Method, 0}, - {"(*Decoder).InputOffset", Method, 4}, - {"(*Decoder).InputPos", Method, 19}, - {"(*Decoder).RawToken", Method, 0}, - {"(*Decoder).Skip", Method, 0}, - {"(*Decoder).Token", Method, 0}, - {"(*Encoder).Close", Method, 20}, - {"(*Encoder).Encode", Method, 0}, - {"(*Encoder).EncodeElement", Method, 2}, - {"(*Encoder).EncodeToken", Method, 2}, - {"(*Encoder).Flush", Method, 2}, - {"(*Encoder).Indent", Method, 1}, - {"(*SyntaxError).Error", Method, 0}, - {"(*TagPathError).Error", Method, 0}, - {"(*UnsupportedTypeError).Error", Method, 0}, - {"(CharData).Copy", Method, 0}, - {"(Comment).Copy", Method, 0}, - {"(Directive).Copy", Method, 0}, - {"(ProcInst).Copy", Method, 0}, - {"(StartElement).Copy", Method, 0}, - {"(StartElement).End", Method, 2}, - {"(UnmarshalError).Error", Method, 0}, - {"Attr", Type, 0}, - {"Attr.Name", Field, 0}, - {"Attr.Value", Field, 0}, - {"CharData", Type, 0}, - {"Comment", Type, 0}, - {"CopyToken", Func, 0}, - {"Decoder", Type, 0}, - {"Decoder.AutoClose", Field, 0}, - {"Decoder.CharsetReader", Field, 0}, - {"Decoder.DefaultSpace", Field, 1}, - {"Decoder.Entity", Field, 0}, - {"Decoder.Strict", Field, 0}, - {"Directive", Type, 0}, - {"Encoder", Type, 0}, - {"EndElement", Type, 0}, - {"EndElement.Name", Field, 0}, - {"Escape", Func, 0}, - {"EscapeText", Func, 1}, - {"HTMLAutoClose", Var, 0}, - {"HTMLEntity", Var, 0}, - {"Header", Const, 0}, - {"Marshal", Func, 0}, - {"MarshalIndent", Func, 0}, - {"Marshaler", Type, 2}, - {"MarshalerAttr", Type, 2}, - {"Name", Type, 0}, - {"Name.Local", Field, 0}, - {"Name.Space", Field, 0}, - {"NewDecoder", Func, 0}, - {"NewEncoder", Func, 0}, - {"NewTokenDecoder", Func, 10}, - {"ProcInst", Type, 0}, - {"ProcInst.Inst", Field, 0}, - {"ProcInst.Target", Field, 0}, - {"StartElement", Type, 0}, - {"StartElement.Attr", Field, 0}, - {"StartElement.Name", Field, 0}, - {"SyntaxError", Type, 0}, - {"SyntaxError.Line", Field, 0}, - {"SyntaxError.Msg", Field, 0}, - {"TagPathError", Type, 0}, - {"TagPathError.Field1", Field, 0}, - {"TagPathError.Field2", Field, 0}, - {"TagPathError.Struct", Field, 0}, - {"TagPathError.Tag1", Field, 0}, - {"TagPathError.Tag2", Field, 0}, - {"Token", Type, 0}, - {"TokenReader", Type, 10}, - {"Unmarshal", Func, 0}, - {"UnmarshalError", Type, 0}, - {"Unmarshaler", Type, 2}, - {"UnmarshalerAttr", Type, 2}, - {"UnsupportedTypeError", Type, 0}, - {"UnsupportedTypeError.Type", Field, 0}, - }, - "errors": { - {"As", Func, 13}, - {"ErrUnsupported", Var, 21}, - {"Is", Func, 13}, - {"Join", Func, 20}, - {"New", Func, 0}, - {"Unwrap", Func, 13}, - }, - "expvar": { - {"(*Float).Add", Method, 0}, - {"(*Float).Set", Method, 0}, - {"(*Float).String", Method, 0}, - {"(*Float).Value", Method, 8}, - {"(*Int).Add", Method, 0}, - {"(*Int).Set", Method, 0}, - {"(*Int).String", Method, 0}, - {"(*Int).Value", Method, 8}, - {"(*Map).Add", Method, 0}, - {"(*Map).AddFloat", Method, 0}, - {"(*Map).Delete", Method, 12}, - {"(*Map).Do", Method, 0}, - {"(*Map).Get", Method, 0}, - {"(*Map).Init", Method, 0}, - {"(*Map).Set", Method, 0}, - {"(*Map).String", Method, 0}, - {"(*String).Set", Method, 0}, - {"(*String).String", Method, 0}, - {"(*String).Value", Method, 8}, - {"(Func).String", Method, 0}, - {"(Func).Value", Method, 8}, - {"Do", Func, 0}, - {"Float", Type, 0}, - {"Func", Type, 0}, - {"Get", Func, 0}, - {"Handler", Func, 8}, - {"Int", Type, 0}, - {"KeyValue", Type, 0}, - {"KeyValue.Key", Field, 0}, - {"KeyValue.Value", Field, 0}, - {"Map", Type, 0}, - {"NewFloat", Func, 0}, - {"NewInt", Func, 0}, - {"NewMap", Func, 0}, - {"NewString", Func, 0}, - {"Publish", Func, 0}, - {"String", Type, 0}, - {"Var", Type, 0}, - }, - "flag": { - {"(*FlagSet).Arg", Method, 0}, - {"(*FlagSet).Args", Method, 0}, - {"(*FlagSet).Bool", Method, 0}, - {"(*FlagSet).BoolFunc", Method, 21}, - {"(*FlagSet).BoolVar", Method, 0}, - {"(*FlagSet).Duration", Method, 0}, - {"(*FlagSet).DurationVar", Method, 0}, - {"(*FlagSet).ErrorHandling", Method, 10}, - {"(*FlagSet).Float64", Method, 0}, - {"(*FlagSet).Float64Var", Method, 0}, - {"(*FlagSet).Func", Method, 16}, - {"(*FlagSet).Init", Method, 0}, - {"(*FlagSet).Int", Method, 0}, - {"(*FlagSet).Int64", Method, 0}, - {"(*FlagSet).Int64Var", Method, 0}, - {"(*FlagSet).IntVar", Method, 0}, - {"(*FlagSet).Lookup", Method, 0}, - {"(*FlagSet).NArg", Method, 0}, - {"(*FlagSet).NFlag", Method, 0}, - {"(*FlagSet).Name", Method, 10}, - {"(*FlagSet).Output", Method, 10}, - {"(*FlagSet).Parse", Method, 0}, - {"(*FlagSet).Parsed", Method, 0}, - {"(*FlagSet).PrintDefaults", Method, 0}, - {"(*FlagSet).Set", Method, 0}, - {"(*FlagSet).SetOutput", Method, 0}, - {"(*FlagSet).String", Method, 0}, - {"(*FlagSet).StringVar", Method, 0}, - {"(*FlagSet).TextVar", Method, 19}, - {"(*FlagSet).Uint", Method, 0}, - {"(*FlagSet).Uint64", Method, 0}, - {"(*FlagSet).Uint64Var", Method, 0}, - {"(*FlagSet).UintVar", Method, 0}, - {"(*FlagSet).Var", Method, 0}, - {"(*FlagSet).Visit", Method, 0}, - {"(*FlagSet).VisitAll", Method, 0}, - {"Arg", Func, 0}, - {"Args", Func, 0}, - {"Bool", Func, 0}, - {"BoolFunc", Func, 21}, - {"BoolVar", Func, 0}, - {"CommandLine", Var, 2}, - {"ContinueOnError", Const, 0}, - {"Duration", Func, 0}, - {"DurationVar", Func, 0}, - {"ErrHelp", Var, 0}, - {"ErrorHandling", Type, 0}, - {"ExitOnError", Const, 0}, - {"Flag", Type, 0}, - {"Flag.DefValue", Field, 0}, - {"Flag.Name", Field, 0}, - {"Flag.Usage", Field, 0}, - {"Flag.Value", Field, 0}, - {"FlagSet", Type, 0}, - {"FlagSet.Usage", Field, 0}, - {"Float64", Func, 0}, - {"Float64Var", Func, 0}, - {"Func", Func, 16}, - {"Getter", Type, 2}, - {"Int", Func, 0}, - {"Int64", Func, 0}, - {"Int64Var", Func, 0}, - {"IntVar", Func, 0}, - {"Lookup", Func, 0}, - {"NArg", Func, 0}, - {"NFlag", Func, 0}, - {"NewFlagSet", Func, 0}, - {"PanicOnError", Const, 0}, - {"Parse", Func, 0}, - {"Parsed", Func, 0}, - {"PrintDefaults", Func, 0}, - {"Set", Func, 0}, - {"String", Func, 0}, - {"StringVar", Func, 0}, - {"TextVar", Func, 19}, - {"Uint", Func, 0}, - {"Uint64", Func, 0}, - {"Uint64Var", Func, 0}, - {"UintVar", Func, 0}, - {"UnquoteUsage", Func, 5}, - {"Usage", Var, 0}, - {"Value", Type, 0}, - {"Var", Func, 0}, - {"Visit", Func, 0}, - {"VisitAll", Func, 0}, - }, - "fmt": { - {"Append", Func, 19}, - {"Appendf", Func, 19}, - {"Appendln", Func, 19}, - {"Errorf", Func, 0}, - {"FormatString", Func, 20}, - {"Formatter", Type, 0}, - {"Fprint", Func, 0}, - {"Fprintf", Func, 0}, - {"Fprintln", Func, 0}, - {"Fscan", Func, 0}, - {"Fscanf", Func, 0}, - {"Fscanln", Func, 0}, - {"GoStringer", Type, 0}, - {"Print", Func, 0}, - {"Printf", Func, 0}, - {"Println", Func, 0}, - {"Scan", Func, 0}, - {"ScanState", Type, 0}, - {"Scanf", Func, 0}, - {"Scanln", Func, 0}, - {"Scanner", Type, 0}, - {"Sprint", Func, 0}, - {"Sprintf", Func, 0}, - {"Sprintln", Func, 0}, - {"Sscan", Func, 0}, - {"Sscanf", Func, 0}, - {"Sscanln", Func, 0}, - {"State", Type, 0}, - {"Stringer", Type, 0}, - }, - "go/ast": { - {"(*ArrayType).End", Method, 0}, - {"(*ArrayType).Pos", Method, 0}, - {"(*AssignStmt).End", Method, 0}, - {"(*AssignStmt).Pos", Method, 0}, - {"(*BadDecl).End", Method, 0}, - {"(*BadDecl).Pos", Method, 0}, - {"(*BadExpr).End", Method, 0}, - {"(*BadExpr).Pos", Method, 0}, - {"(*BadStmt).End", Method, 0}, - {"(*BadStmt).Pos", Method, 0}, - {"(*BasicLit).End", Method, 0}, - {"(*BasicLit).Pos", Method, 0}, - {"(*BinaryExpr).End", Method, 0}, - {"(*BinaryExpr).Pos", Method, 0}, - {"(*BlockStmt).End", Method, 0}, - {"(*BlockStmt).Pos", Method, 0}, - {"(*BranchStmt).End", Method, 0}, - {"(*BranchStmt).Pos", Method, 0}, - {"(*CallExpr).End", Method, 0}, - {"(*CallExpr).Pos", Method, 0}, - {"(*CaseClause).End", Method, 0}, - {"(*CaseClause).Pos", Method, 0}, - {"(*ChanType).End", Method, 0}, - {"(*ChanType).Pos", Method, 0}, - {"(*CommClause).End", Method, 0}, - {"(*CommClause).Pos", Method, 0}, - {"(*Comment).End", Method, 0}, - {"(*Comment).Pos", Method, 0}, - {"(*CommentGroup).End", Method, 0}, - {"(*CommentGroup).Pos", Method, 0}, - {"(*CommentGroup).Text", Method, 0}, - {"(*CompositeLit).End", Method, 0}, - {"(*CompositeLit).Pos", Method, 0}, - {"(*DeclStmt).End", Method, 0}, - {"(*DeclStmt).Pos", Method, 0}, - {"(*DeferStmt).End", Method, 0}, - {"(*DeferStmt).Pos", Method, 0}, - {"(*Ellipsis).End", Method, 0}, - {"(*Ellipsis).Pos", Method, 0}, - {"(*EmptyStmt).End", Method, 0}, - {"(*EmptyStmt).Pos", Method, 0}, - {"(*ExprStmt).End", Method, 0}, - {"(*ExprStmt).Pos", Method, 0}, - {"(*Field).End", Method, 0}, - {"(*Field).Pos", Method, 0}, - {"(*FieldList).End", Method, 0}, - {"(*FieldList).NumFields", Method, 0}, - {"(*FieldList).Pos", Method, 0}, - {"(*File).End", Method, 0}, - {"(*File).Pos", Method, 0}, - {"(*ForStmt).End", Method, 0}, - {"(*ForStmt).Pos", Method, 0}, - {"(*FuncDecl).End", Method, 0}, - {"(*FuncDecl).Pos", Method, 0}, - {"(*FuncLit).End", Method, 0}, - {"(*FuncLit).Pos", Method, 0}, - {"(*FuncType).End", Method, 0}, - {"(*FuncType).Pos", Method, 0}, - {"(*GenDecl).End", Method, 0}, - {"(*GenDecl).Pos", Method, 0}, - {"(*GoStmt).End", Method, 0}, - {"(*GoStmt).Pos", Method, 0}, - {"(*Ident).End", Method, 0}, - {"(*Ident).IsExported", Method, 0}, - {"(*Ident).Pos", Method, 0}, - {"(*Ident).String", Method, 0}, - {"(*IfStmt).End", Method, 0}, - {"(*IfStmt).Pos", Method, 0}, - {"(*ImportSpec).End", Method, 0}, - {"(*ImportSpec).Pos", Method, 0}, - {"(*IncDecStmt).End", Method, 0}, - {"(*IncDecStmt).Pos", Method, 0}, - {"(*IndexExpr).End", Method, 0}, - {"(*IndexExpr).Pos", Method, 0}, - {"(*IndexListExpr).End", Method, 18}, - {"(*IndexListExpr).Pos", Method, 18}, - {"(*InterfaceType).End", Method, 0}, - {"(*InterfaceType).Pos", Method, 0}, - {"(*KeyValueExpr).End", Method, 0}, - {"(*KeyValueExpr).Pos", Method, 0}, - {"(*LabeledStmt).End", Method, 0}, - {"(*LabeledStmt).Pos", Method, 0}, - {"(*MapType).End", Method, 0}, - {"(*MapType).Pos", Method, 0}, - {"(*Object).Pos", Method, 0}, - {"(*Package).End", Method, 0}, - {"(*Package).Pos", Method, 0}, - {"(*ParenExpr).End", Method, 0}, - {"(*ParenExpr).Pos", Method, 0}, - {"(*RangeStmt).End", Method, 0}, - {"(*RangeStmt).Pos", Method, 0}, - {"(*ReturnStmt).End", Method, 0}, - {"(*ReturnStmt).Pos", Method, 0}, - {"(*Scope).Insert", Method, 0}, - {"(*Scope).Lookup", Method, 0}, - {"(*Scope).String", Method, 0}, - {"(*SelectStmt).End", Method, 0}, - {"(*SelectStmt).Pos", Method, 0}, - {"(*SelectorExpr).End", Method, 0}, - {"(*SelectorExpr).Pos", Method, 0}, - {"(*SendStmt).End", Method, 0}, - {"(*SendStmt).Pos", Method, 0}, - {"(*SliceExpr).End", Method, 0}, - {"(*SliceExpr).Pos", Method, 0}, - {"(*StarExpr).End", Method, 0}, - {"(*StarExpr).Pos", Method, 0}, - {"(*StructType).End", Method, 0}, - {"(*StructType).Pos", Method, 0}, - {"(*SwitchStmt).End", Method, 0}, - {"(*SwitchStmt).Pos", Method, 0}, - {"(*TypeAssertExpr).End", Method, 0}, - {"(*TypeAssertExpr).Pos", Method, 0}, - {"(*TypeSpec).End", Method, 0}, - {"(*TypeSpec).Pos", Method, 0}, - {"(*TypeSwitchStmt).End", Method, 0}, - {"(*TypeSwitchStmt).Pos", Method, 0}, - {"(*UnaryExpr).End", Method, 0}, - {"(*UnaryExpr).Pos", Method, 0}, - {"(*ValueSpec).End", Method, 0}, - {"(*ValueSpec).Pos", Method, 0}, - {"(CommentMap).Comments", Method, 1}, - {"(CommentMap).Filter", Method, 1}, - {"(CommentMap).String", Method, 1}, - {"(CommentMap).Update", Method, 1}, - {"(ObjKind).String", Method, 0}, - {"ArrayType", Type, 0}, - {"ArrayType.Elt", Field, 0}, - {"ArrayType.Lbrack", Field, 0}, - {"ArrayType.Len", Field, 0}, - {"AssignStmt", Type, 0}, - {"AssignStmt.Lhs", Field, 0}, - {"AssignStmt.Rhs", Field, 0}, - {"AssignStmt.Tok", Field, 0}, - {"AssignStmt.TokPos", Field, 0}, - {"Bad", Const, 0}, - {"BadDecl", Type, 0}, - {"BadDecl.From", Field, 0}, - {"BadDecl.To", Field, 0}, - {"BadExpr", Type, 0}, - {"BadExpr.From", Field, 0}, - {"BadExpr.To", Field, 0}, - {"BadStmt", Type, 0}, - {"BadStmt.From", Field, 0}, - {"BadStmt.To", Field, 0}, - {"BasicLit", Type, 0}, - {"BasicLit.Kind", Field, 0}, - {"BasicLit.Value", Field, 0}, - {"BasicLit.ValuePos", Field, 0}, - {"BinaryExpr", Type, 0}, - {"BinaryExpr.Op", Field, 0}, - {"BinaryExpr.OpPos", Field, 0}, - {"BinaryExpr.X", Field, 0}, - {"BinaryExpr.Y", Field, 0}, - {"BlockStmt", Type, 0}, - {"BlockStmt.Lbrace", Field, 0}, - {"BlockStmt.List", Field, 0}, - {"BlockStmt.Rbrace", Field, 0}, - {"BranchStmt", Type, 0}, - {"BranchStmt.Label", Field, 0}, - {"BranchStmt.Tok", Field, 0}, - {"BranchStmt.TokPos", Field, 0}, - {"CallExpr", Type, 0}, - {"CallExpr.Args", Field, 0}, - {"CallExpr.Ellipsis", Field, 0}, - {"CallExpr.Fun", Field, 0}, - {"CallExpr.Lparen", Field, 0}, - {"CallExpr.Rparen", Field, 0}, - {"CaseClause", Type, 0}, - {"CaseClause.Body", Field, 0}, - {"CaseClause.Case", Field, 0}, - {"CaseClause.Colon", Field, 0}, - {"CaseClause.List", Field, 0}, - {"ChanDir", Type, 0}, - {"ChanType", Type, 0}, - {"ChanType.Arrow", Field, 1}, - {"ChanType.Begin", Field, 0}, - {"ChanType.Dir", Field, 0}, - {"ChanType.Value", Field, 0}, - {"CommClause", Type, 0}, - {"CommClause.Body", Field, 0}, - {"CommClause.Case", Field, 0}, - {"CommClause.Colon", Field, 0}, - {"CommClause.Comm", Field, 0}, - {"Comment", Type, 0}, - {"Comment.Slash", Field, 0}, - {"Comment.Text", Field, 0}, - {"CommentGroup", Type, 0}, - {"CommentGroup.List", Field, 0}, - {"CommentMap", Type, 1}, - {"CompositeLit", Type, 0}, - {"CompositeLit.Elts", Field, 0}, - {"CompositeLit.Incomplete", Field, 11}, - {"CompositeLit.Lbrace", Field, 0}, - {"CompositeLit.Rbrace", Field, 0}, - {"CompositeLit.Type", Field, 0}, - {"Con", Const, 0}, - {"Decl", Type, 0}, - {"DeclStmt", Type, 0}, - {"DeclStmt.Decl", Field, 0}, - {"DeferStmt", Type, 0}, - {"DeferStmt.Call", Field, 0}, - {"DeferStmt.Defer", Field, 0}, - {"Ellipsis", Type, 0}, - {"Ellipsis.Ellipsis", Field, 0}, - {"Ellipsis.Elt", Field, 0}, - {"EmptyStmt", Type, 0}, - {"EmptyStmt.Implicit", Field, 5}, - {"EmptyStmt.Semicolon", Field, 0}, - {"Expr", Type, 0}, - {"ExprStmt", Type, 0}, - {"ExprStmt.X", Field, 0}, - {"Field", Type, 0}, - {"Field.Comment", Field, 0}, - {"Field.Doc", Field, 0}, - {"Field.Names", Field, 0}, - {"Field.Tag", Field, 0}, - {"Field.Type", Field, 0}, - {"FieldFilter", Type, 0}, - {"FieldList", Type, 0}, - {"FieldList.Closing", Field, 0}, - {"FieldList.List", Field, 0}, - {"FieldList.Opening", Field, 0}, - {"File", Type, 0}, - {"File.Comments", Field, 0}, - {"File.Decls", Field, 0}, - {"File.Doc", Field, 0}, - {"File.FileEnd", Field, 20}, - {"File.FileStart", Field, 20}, - {"File.GoVersion", Field, 21}, - {"File.Imports", Field, 0}, - {"File.Name", Field, 0}, - {"File.Package", Field, 0}, - {"File.Scope", Field, 0}, - {"File.Unresolved", Field, 0}, - {"FileExports", Func, 0}, - {"Filter", Type, 0}, - {"FilterDecl", Func, 0}, - {"FilterFile", Func, 0}, - {"FilterFuncDuplicates", Const, 0}, - {"FilterImportDuplicates", Const, 0}, - {"FilterPackage", Func, 0}, - {"FilterUnassociatedComments", Const, 0}, - {"ForStmt", Type, 0}, - {"ForStmt.Body", Field, 0}, - {"ForStmt.Cond", Field, 0}, - {"ForStmt.For", Field, 0}, - {"ForStmt.Init", Field, 0}, - {"ForStmt.Post", Field, 0}, - {"Fprint", Func, 0}, - {"Fun", Const, 0}, - {"FuncDecl", Type, 0}, - {"FuncDecl.Body", Field, 0}, - {"FuncDecl.Doc", Field, 0}, - {"FuncDecl.Name", Field, 0}, - {"FuncDecl.Recv", Field, 0}, - {"FuncDecl.Type", Field, 0}, - {"FuncLit", Type, 0}, - {"FuncLit.Body", Field, 0}, - {"FuncLit.Type", Field, 0}, - {"FuncType", Type, 0}, - {"FuncType.Func", Field, 0}, - {"FuncType.Params", Field, 0}, - {"FuncType.Results", Field, 0}, - {"FuncType.TypeParams", Field, 18}, - {"GenDecl", Type, 0}, - {"GenDecl.Doc", Field, 0}, - {"GenDecl.Lparen", Field, 0}, - {"GenDecl.Rparen", Field, 0}, - {"GenDecl.Specs", Field, 0}, - {"GenDecl.Tok", Field, 0}, - {"GenDecl.TokPos", Field, 0}, - {"GoStmt", Type, 0}, - {"GoStmt.Call", Field, 0}, - {"GoStmt.Go", Field, 0}, - {"Ident", Type, 0}, - {"Ident.Name", Field, 0}, - {"Ident.NamePos", Field, 0}, - {"Ident.Obj", Field, 0}, - {"IfStmt", Type, 0}, - {"IfStmt.Body", Field, 0}, - {"IfStmt.Cond", Field, 0}, - {"IfStmt.Else", Field, 0}, - {"IfStmt.If", Field, 0}, - {"IfStmt.Init", Field, 0}, - {"ImportSpec", Type, 0}, - {"ImportSpec.Comment", Field, 0}, - {"ImportSpec.Doc", Field, 0}, - {"ImportSpec.EndPos", Field, 0}, - {"ImportSpec.Name", Field, 0}, - {"ImportSpec.Path", Field, 0}, - {"Importer", Type, 0}, - {"IncDecStmt", Type, 0}, - {"IncDecStmt.Tok", Field, 0}, - {"IncDecStmt.TokPos", Field, 0}, - {"IncDecStmt.X", Field, 0}, - {"IndexExpr", Type, 0}, - {"IndexExpr.Index", Field, 0}, - {"IndexExpr.Lbrack", Field, 0}, - {"IndexExpr.Rbrack", Field, 0}, - {"IndexExpr.X", Field, 0}, - {"IndexListExpr", Type, 18}, - {"IndexListExpr.Indices", Field, 18}, - {"IndexListExpr.Lbrack", Field, 18}, - {"IndexListExpr.Rbrack", Field, 18}, - {"IndexListExpr.X", Field, 18}, - {"Inspect", Func, 0}, - {"InterfaceType", Type, 0}, - {"InterfaceType.Incomplete", Field, 0}, - {"InterfaceType.Interface", Field, 0}, - {"InterfaceType.Methods", Field, 0}, - {"IsExported", Func, 0}, - {"IsGenerated", Func, 21}, - {"KeyValueExpr", Type, 0}, - {"KeyValueExpr.Colon", Field, 0}, - {"KeyValueExpr.Key", Field, 0}, - {"KeyValueExpr.Value", Field, 0}, - {"LabeledStmt", Type, 0}, - {"LabeledStmt.Colon", Field, 0}, - {"LabeledStmt.Label", Field, 0}, - {"LabeledStmt.Stmt", Field, 0}, - {"Lbl", Const, 0}, - {"MapType", Type, 0}, - {"MapType.Key", Field, 0}, - {"MapType.Map", Field, 0}, - {"MapType.Value", Field, 0}, - {"MergeMode", Type, 0}, - {"MergePackageFiles", Func, 0}, - {"NewCommentMap", Func, 1}, - {"NewIdent", Func, 0}, - {"NewObj", Func, 0}, - {"NewPackage", Func, 0}, - {"NewScope", Func, 0}, - {"Node", Type, 0}, - {"NotNilFilter", Func, 0}, - {"ObjKind", Type, 0}, - {"Object", Type, 0}, - {"Object.Data", Field, 0}, - {"Object.Decl", Field, 0}, - {"Object.Kind", Field, 0}, - {"Object.Name", Field, 0}, - {"Object.Type", Field, 0}, - {"Package", Type, 0}, - {"Package.Files", Field, 0}, - {"Package.Imports", Field, 0}, - {"Package.Name", Field, 0}, - {"Package.Scope", Field, 0}, - {"PackageExports", Func, 0}, - {"ParenExpr", Type, 0}, - {"ParenExpr.Lparen", Field, 0}, - {"ParenExpr.Rparen", Field, 0}, - {"ParenExpr.X", Field, 0}, - {"Pkg", Const, 0}, - {"Preorder", Func, 23}, - {"Print", Func, 0}, - {"RECV", Const, 0}, - {"RangeStmt", Type, 0}, - {"RangeStmt.Body", Field, 0}, - {"RangeStmt.For", Field, 0}, - {"RangeStmt.Key", Field, 0}, - {"RangeStmt.Range", Field, 20}, - {"RangeStmt.Tok", Field, 0}, - {"RangeStmt.TokPos", Field, 0}, - {"RangeStmt.Value", Field, 0}, - {"RangeStmt.X", Field, 0}, - {"ReturnStmt", Type, 0}, - {"ReturnStmt.Results", Field, 0}, - {"ReturnStmt.Return", Field, 0}, - {"SEND", Const, 0}, - {"Scope", Type, 0}, - {"Scope.Objects", Field, 0}, - {"Scope.Outer", Field, 0}, - {"SelectStmt", Type, 0}, - {"SelectStmt.Body", Field, 0}, - {"SelectStmt.Select", Field, 0}, - {"SelectorExpr", Type, 0}, - {"SelectorExpr.Sel", Field, 0}, - {"SelectorExpr.X", Field, 0}, - {"SendStmt", Type, 0}, - {"SendStmt.Arrow", Field, 0}, - {"SendStmt.Chan", Field, 0}, - {"SendStmt.Value", Field, 0}, - {"SliceExpr", Type, 0}, - {"SliceExpr.High", Field, 0}, - {"SliceExpr.Lbrack", Field, 0}, - {"SliceExpr.Low", Field, 0}, - {"SliceExpr.Max", Field, 2}, - {"SliceExpr.Rbrack", Field, 0}, - {"SliceExpr.Slice3", Field, 2}, - {"SliceExpr.X", Field, 0}, - {"SortImports", Func, 0}, - {"Spec", Type, 0}, - {"StarExpr", Type, 0}, - {"StarExpr.Star", Field, 0}, - {"StarExpr.X", Field, 0}, - {"Stmt", Type, 0}, - {"StructType", Type, 0}, - {"StructType.Fields", Field, 0}, - {"StructType.Incomplete", Field, 0}, - {"StructType.Struct", Field, 0}, - {"SwitchStmt", Type, 0}, - {"SwitchStmt.Body", Field, 0}, - {"SwitchStmt.Init", Field, 0}, - {"SwitchStmt.Switch", Field, 0}, - {"SwitchStmt.Tag", Field, 0}, - {"Typ", Const, 0}, - {"TypeAssertExpr", Type, 0}, - {"TypeAssertExpr.Lparen", Field, 2}, - {"TypeAssertExpr.Rparen", Field, 2}, - {"TypeAssertExpr.Type", Field, 0}, - {"TypeAssertExpr.X", Field, 0}, - {"TypeSpec", Type, 0}, - {"TypeSpec.Assign", Field, 9}, - {"TypeSpec.Comment", Field, 0}, - {"TypeSpec.Doc", Field, 0}, - {"TypeSpec.Name", Field, 0}, - {"TypeSpec.Type", Field, 0}, - {"TypeSpec.TypeParams", Field, 18}, - {"TypeSwitchStmt", Type, 0}, - {"TypeSwitchStmt.Assign", Field, 0}, - {"TypeSwitchStmt.Body", Field, 0}, - {"TypeSwitchStmt.Init", Field, 0}, - {"TypeSwitchStmt.Switch", Field, 0}, - {"UnaryExpr", Type, 0}, - {"UnaryExpr.Op", Field, 0}, - {"UnaryExpr.OpPos", Field, 0}, - {"UnaryExpr.X", Field, 0}, - {"Unparen", Func, 22}, - {"ValueSpec", Type, 0}, - {"ValueSpec.Comment", Field, 0}, - {"ValueSpec.Doc", Field, 0}, - {"ValueSpec.Names", Field, 0}, - {"ValueSpec.Type", Field, 0}, - {"ValueSpec.Values", Field, 0}, - {"Var", Const, 0}, - {"Visitor", Type, 0}, - {"Walk", Func, 0}, - }, - "go/build": { - {"(*Context).Import", Method, 0}, - {"(*Context).ImportDir", Method, 0}, - {"(*Context).MatchFile", Method, 2}, - {"(*Context).SrcDirs", Method, 0}, - {"(*MultiplePackageError).Error", Method, 4}, - {"(*NoGoError).Error", Method, 0}, - {"(*Package).IsCommand", Method, 0}, - {"AllowBinary", Const, 0}, - {"ArchChar", Func, 0}, - {"Context", Type, 0}, - {"Context.BuildTags", Field, 0}, - {"Context.CgoEnabled", Field, 0}, - {"Context.Compiler", Field, 0}, - {"Context.Dir", Field, 14}, - {"Context.GOARCH", Field, 0}, - {"Context.GOOS", Field, 0}, - {"Context.GOPATH", Field, 0}, - {"Context.GOROOT", Field, 0}, - {"Context.HasSubdir", Field, 0}, - {"Context.InstallSuffix", Field, 1}, - {"Context.IsAbsPath", Field, 0}, - {"Context.IsDir", Field, 0}, - {"Context.JoinPath", Field, 0}, - {"Context.OpenFile", Field, 0}, - {"Context.ReadDir", Field, 0}, - {"Context.ReleaseTags", Field, 1}, - {"Context.SplitPathList", Field, 0}, - {"Context.ToolTags", Field, 17}, - {"Context.UseAllFiles", Field, 0}, - {"Default", Var, 0}, - {"Directive", Type, 21}, - {"Directive.Pos", Field, 21}, - {"Directive.Text", Field, 21}, - {"FindOnly", Const, 0}, - {"IgnoreVendor", Const, 6}, - {"Import", Func, 0}, - {"ImportComment", Const, 4}, - {"ImportDir", Func, 0}, - {"ImportMode", Type, 0}, - {"IsLocalImport", Func, 0}, - {"MultiplePackageError", Type, 4}, - {"MultiplePackageError.Dir", Field, 4}, - {"MultiplePackageError.Files", Field, 4}, - {"MultiplePackageError.Packages", Field, 4}, - {"NoGoError", Type, 0}, - {"NoGoError.Dir", Field, 0}, - {"Package", Type, 0}, - {"Package.AllTags", Field, 2}, - {"Package.BinDir", Field, 0}, - {"Package.BinaryOnly", Field, 7}, - {"Package.CFiles", Field, 0}, - {"Package.CXXFiles", Field, 2}, - {"Package.CgoCFLAGS", Field, 0}, - {"Package.CgoCPPFLAGS", Field, 2}, - {"Package.CgoCXXFLAGS", Field, 2}, - {"Package.CgoFFLAGS", Field, 7}, - {"Package.CgoFiles", Field, 0}, - {"Package.CgoLDFLAGS", Field, 0}, - {"Package.CgoPkgConfig", Field, 0}, - {"Package.ConflictDir", Field, 2}, - {"Package.Dir", Field, 0}, - {"Package.Directives", Field, 21}, - {"Package.Doc", Field, 0}, - {"Package.EmbedPatternPos", Field, 16}, - {"Package.EmbedPatterns", Field, 16}, - {"Package.FFiles", Field, 7}, - {"Package.GoFiles", Field, 0}, - {"Package.Goroot", Field, 0}, - {"Package.HFiles", Field, 0}, - {"Package.IgnoredGoFiles", Field, 1}, - {"Package.IgnoredOtherFiles", Field, 16}, - {"Package.ImportComment", Field, 4}, - {"Package.ImportPath", Field, 0}, - {"Package.ImportPos", Field, 0}, - {"Package.Imports", Field, 0}, - {"Package.InvalidGoFiles", Field, 6}, - {"Package.MFiles", Field, 3}, - {"Package.Name", Field, 0}, - {"Package.PkgObj", Field, 0}, - {"Package.PkgRoot", Field, 0}, - {"Package.PkgTargetRoot", Field, 5}, - {"Package.Root", Field, 0}, - {"Package.SFiles", Field, 0}, - {"Package.SrcRoot", Field, 0}, - {"Package.SwigCXXFiles", Field, 1}, - {"Package.SwigFiles", Field, 1}, - {"Package.SysoFiles", Field, 0}, - {"Package.TestDirectives", Field, 21}, - {"Package.TestEmbedPatternPos", Field, 16}, - {"Package.TestEmbedPatterns", Field, 16}, - {"Package.TestGoFiles", Field, 0}, - {"Package.TestImportPos", Field, 0}, - {"Package.TestImports", Field, 0}, - {"Package.XTestDirectives", Field, 21}, - {"Package.XTestEmbedPatternPos", Field, 16}, - {"Package.XTestEmbedPatterns", Field, 16}, - {"Package.XTestGoFiles", Field, 0}, - {"Package.XTestImportPos", Field, 0}, - {"Package.XTestImports", Field, 0}, - {"ToolDir", Var, 0}, - }, - "go/build/constraint": { - {"(*AndExpr).Eval", Method, 16}, - {"(*AndExpr).String", Method, 16}, - {"(*NotExpr).Eval", Method, 16}, - {"(*NotExpr).String", Method, 16}, - {"(*OrExpr).Eval", Method, 16}, - {"(*OrExpr).String", Method, 16}, - {"(*SyntaxError).Error", Method, 16}, - {"(*TagExpr).Eval", Method, 16}, - {"(*TagExpr).String", Method, 16}, - {"AndExpr", Type, 16}, - {"AndExpr.X", Field, 16}, - {"AndExpr.Y", Field, 16}, - {"Expr", Type, 16}, - {"GoVersion", Func, 21}, - {"IsGoBuild", Func, 16}, - {"IsPlusBuild", Func, 16}, - {"NotExpr", Type, 16}, - {"NotExpr.X", Field, 16}, - {"OrExpr", Type, 16}, - {"OrExpr.X", Field, 16}, - {"OrExpr.Y", Field, 16}, - {"Parse", Func, 16}, - {"PlusBuildLines", Func, 16}, - {"SyntaxError", Type, 16}, - {"SyntaxError.Err", Field, 16}, - {"SyntaxError.Offset", Field, 16}, - {"TagExpr", Type, 16}, - {"TagExpr.Tag", Field, 16}, - }, - "go/constant": { - {"(Kind).String", Method, 18}, - {"BinaryOp", Func, 5}, - {"BitLen", Func, 5}, - {"Bool", Const, 5}, - {"BoolVal", Func, 5}, - {"Bytes", Func, 5}, - {"Compare", Func, 5}, - {"Complex", Const, 5}, - {"Denom", Func, 5}, - {"Float", Const, 5}, - {"Float32Val", Func, 5}, - {"Float64Val", Func, 5}, - {"Imag", Func, 5}, - {"Int", Const, 5}, - {"Int64Val", Func, 5}, - {"Kind", Type, 5}, - {"Make", Func, 13}, - {"MakeBool", Func, 5}, - {"MakeFloat64", Func, 5}, - {"MakeFromBytes", Func, 5}, - {"MakeFromLiteral", Func, 5}, - {"MakeImag", Func, 5}, - {"MakeInt64", Func, 5}, - {"MakeString", Func, 5}, - {"MakeUint64", Func, 5}, - {"MakeUnknown", Func, 5}, - {"Num", Func, 5}, - {"Real", Func, 5}, - {"Shift", Func, 5}, - {"Sign", Func, 5}, - {"String", Const, 5}, - {"StringVal", Func, 5}, - {"ToComplex", Func, 6}, - {"ToFloat", Func, 6}, - {"ToInt", Func, 6}, - {"Uint64Val", Func, 5}, - {"UnaryOp", Func, 5}, - {"Unknown", Const, 5}, - {"Val", Func, 13}, - {"Value", Type, 5}, - }, - "go/doc": { - {"(*Package).Filter", Method, 0}, - {"(*Package).HTML", Method, 19}, - {"(*Package).Markdown", Method, 19}, - {"(*Package).Parser", Method, 19}, - {"(*Package).Printer", Method, 19}, - {"(*Package).Synopsis", Method, 19}, - {"(*Package).Text", Method, 19}, - {"AllDecls", Const, 0}, - {"AllMethods", Const, 0}, - {"Example", Type, 0}, - {"Example.Code", Field, 0}, - {"Example.Comments", Field, 0}, - {"Example.Doc", Field, 0}, - {"Example.EmptyOutput", Field, 1}, - {"Example.Name", Field, 0}, - {"Example.Order", Field, 1}, - {"Example.Output", Field, 0}, - {"Example.Play", Field, 1}, - {"Example.Suffix", Field, 14}, - {"Example.Unordered", Field, 7}, - {"Examples", Func, 0}, - {"Filter", Type, 0}, - {"Func", Type, 0}, - {"Func.Decl", Field, 0}, - {"Func.Doc", Field, 0}, - {"Func.Examples", Field, 14}, - {"Func.Level", Field, 0}, - {"Func.Name", Field, 0}, - {"Func.Orig", Field, 0}, - {"Func.Recv", Field, 0}, - {"IllegalPrefixes", Var, 1}, - {"IsPredeclared", Func, 8}, - {"Mode", Type, 0}, - {"New", Func, 0}, - {"NewFromFiles", Func, 14}, - {"Note", Type, 1}, - {"Note.Body", Field, 1}, - {"Note.End", Field, 1}, - {"Note.Pos", Field, 1}, - {"Note.UID", Field, 1}, - {"Package", Type, 0}, - {"Package.Bugs", Field, 0}, - {"Package.Consts", Field, 0}, - {"Package.Doc", Field, 0}, - {"Package.Examples", Field, 14}, - {"Package.Filenames", Field, 0}, - {"Package.Funcs", Field, 0}, - {"Package.ImportPath", Field, 0}, - {"Package.Imports", Field, 0}, - {"Package.Name", Field, 0}, - {"Package.Notes", Field, 1}, - {"Package.Types", Field, 0}, - {"Package.Vars", Field, 0}, - {"PreserveAST", Const, 12}, - {"Synopsis", Func, 0}, - {"ToHTML", Func, 0}, - {"ToText", Func, 0}, - {"Type", Type, 0}, - {"Type.Consts", Field, 0}, - {"Type.Decl", Field, 0}, - {"Type.Doc", Field, 0}, - {"Type.Examples", Field, 14}, - {"Type.Funcs", Field, 0}, - {"Type.Methods", Field, 0}, - {"Type.Name", Field, 0}, - {"Type.Vars", Field, 0}, - {"Value", Type, 0}, - {"Value.Decl", Field, 0}, - {"Value.Doc", Field, 0}, - {"Value.Names", Field, 0}, - }, - "go/doc/comment": { - {"(*DocLink).DefaultURL", Method, 19}, - {"(*Heading).DefaultID", Method, 19}, - {"(*List).BlankBefore", Method, 19}, - {"(*List).BlankBetween", Method, 19}, - {"(*Parser).Parse", Method, 19}, - {"(*Printer).Comment", Method, 19}, - {"(*Printer).HTML", Method, 19}, - {"(*Printer).Markdown", Method, 19}, - {"(*Printer).Text", Method, 19}, - {"Block", Type, 19}, - {"Code", Type, 19}, - {"Code.Text", Field, 19}, - {"DefaultLookupPackage", Func, 19}, - {"Doc", Type, 19}, - {"Doc.Content", Field, 19}, - {"Doc.Links", Field, 19}, - {"DocLink", Type, 19}, - {"DocLink.ImportPath", Field, 19}, - {"DocLink.Name", Field, 19}, - {"DocLink.Recv", Field, 19}, - {"DocLink.Text", Field, 19}, - {"Heading", Type, 19}, - {"Heading.Text", Field, 19}, - {"Italic", Type, 19}, - {"Link", Type, 19}, - {"Link.Auto", Field, 19}, - {"Link.Text", Field, 19}, - {"Link.URL", Field, 19}, - {"LinkDef", Type, 19}, - {"LinkDef.Text", Field, 19}, - {"LinkDef.URL", Field, 19}, - {"LinkDef.Used", Field, 19}, - {"List", Type, 19}, - {"List.ForceBlankBefore", Field, 19}, - {"List.ForceBlankBetween", Field, 19}, - {"List.Items", Field, 19}, - {"ListItem", Type, 19}, - {"ListItem.Content", Field, 19}, - {"ListItem.Number", Field, 19}, - {"Paragraph", Type, 19}, - {"Paragraph.Text", Field, 19}, - {"Parser", Type, 19}, - {"Parser.LookupPackage", Field, 19}, - {"Parser.LookupSym", Field, 19}, - {"Parser.Words", Field, 19}, - {"Plain", Type, 19}, - {"Printer", Type, 19}, - {"Printer.DocLinkBaseURL", Field, 19}, - {"Printer.DocLinkURL", Field, 19}, - {"Printer.HeadingID", Field, 19}, - {"Printer.HeadingLevel", Field, 19}, - {"Printer.TextCodePrefix", Field, 19}, - {"Printer.TextPrefix", Field, 19}, - {"Printer.TextWidth", Field, 19}, - {"Text", Type, 19}, - }, - "go/format": { - {"Node", Func, 1}, - {"Source", Func, 1}, - }, - "go/importer": { - {"Default", Func, 5}, - {"For", Func, 5}, - {"ForCompiler", Func, 12}, - {"Lookup", Type, 5}, - }, - "go/parser": { - {"AllErrors", Const, 1}, - {"DeclarationErrors", Const, 0}, - {"ImportsOnly", Const, 0}, - {"Mode", Type, 0}, - {"PackageClauseOnly", Const, 0}, - {"ParseComments", Const, 0}, - {"ParseDir", Func, 0}, - {"ParseExpr", Func, 0}, - {"ParseExprFrom", Func, 5}, - {"ParseFile", Func, 0}, - {"SkipObjectResolution", Const, 17}, - {"SpuriousErrors", Const, 0}, - {"Trace", Const, 0}, - }, - "go/printer": { - {"(*Config).Fprint", Method, 0}, - {"CommentedNode", Type, 0}, - {"CommentedNode.Comments", Field, 0}, - {"CommentedNode.Node", Field, 0}, - {"Config", Type, 0}, - {"Config.Indent", Field, 1}, - {"Config.Mode", Field, 0}, - {"Config.Tabwidth", Field, 0}, - {"Fprint", Func, 0}, - {"Mode", Type, 0}, - {"RawFormat", Const, 0}, - {"SourcePos", Const, 0}, - {"TabIndent", Const, 0}, - {"UseSpaces", Const, 0}, - }, - "go/scanner": { - {"(*ErrorList).Add", Method, 0}, - {"(*ErrorList).RemoveMultiples", Method, 0}, - {"(*ErrorList).Reset", Method, 0}, - {"(*Scanner).Init", Method, 0}, - {"(*Scanner).Scan", Method, 0}, - {"(Error).Error", Method, 0}, - {"(ErrorList).Err", Method, 0}, - {"(ErrorList).Error", Method, 0}, - {"(ErrorList).Len", Method, 0}, - {"(ErrorList).Less", Method, 0}, - {"(ErrorList).Sort", Method, 0}, - {"(ErrorList).Swap", Method, 0}, - {"Error", Type, 0}, - {"Error.Msg", Field, 0}, - {"Error.Pos", Field, 0}, - {"ErrorHandler", Type, 0}, - {"ErrorList", Type, 0}, - {"Mode", Type, 0}, - {"PrintError", Func, 0}, - {"ScanComments", Const, 0}, - {"Scanner", Type, 0}, - {"Scanner.ErrorCount", Field, 0}, - }, - "go/token": { - {"(*File).AddLine", Method, 0}, - {"(*File).AddLineColumnInfo", Method, 11}, - {"(*File).AddLineInfo", Method, 0}, - {"(*File).Base", Method, 0}, - {"(*File).Line", Method, 0}, - {"(*File).LineCount", Method, 0}, - {"(*File).LineStart", Method, 12}, - {"(*File).Lines", Method, 21}, - {"(*File).MergeLine", Method, 2}, - {"(*File).Name", Method, 0}, - {"(*File).Offset", Method, 0}, - {"(*File).Pos", Method, 0}, - {"(*File).Position", Method, 0}, - {"(*File).PositionFor", Method, 4}, - {"(*File).SetLines", Method, 0}, - {"(*File).SetLinesForContent", Method, 0}, - {"(*File).Size", Method, 0}, - {"(*FileSet).AddFile", Method, 0}, - {"(*FileSet).Base", Method, 0}, - {"(*FileSet).File", Method, 0}, - {"(*FileSet).Iterate", Method, 0}, - {"(*FileSet).Position", Method, 0}, - {"(*FileSet).PositionFor", Method, 4}, - {"(*FileSet).Read", Method, 0}, - {"(*FileSet).RemoveFile", Method, 20}, - {"(*FileSet).Write", Method, 0}, - {"(*Position).IsValid", Method, 0}, - {"(Pos).IsValid", Method, 0}, - {"(Position).String", Method, 0}, - {"(Token).IsKeyword", Method, 0}, - {"(Token).IsLiteral", Method, 0}, - {"(Token).IsOperator", Method, 0}, - {"(Token).Precedence", Method, 0}, - {"(Token).String", Method, 0}, - {"ADD", Const, 0}, - {"ADD_ASSIGN", Const, 0}, - {"AND", Const, 0}, - {"AND_ASSIGN", Const, 0}, - {"AND_NOT", Const, 0}, - {"AND_NOT_ASSIGN", Const, 0}, - {"ARROW", Const, 0}, - {"ASSIGN", Const, 0}, - {"BREAK", Const, 0}, - {"CASE", Const, 0}, - {"CHAN", Const, 0}, - {"CHAR", Const, 0}, - {"COLON", Const, 0}, - {"COMMA", Const, 0}, - {"COMMENT", Const, 0}, - {"CONST", Const, 0}, - {"CONTINUE", Const, 0}, - {"DEC", Const, 0}, - {"DEFAULT", Const, 0}, - {"DEFER", Const, 0}, - {"DEFINE", Const, 0}, - {"ELLIPSIS", Const, 0}, - {"ELSE", Const, 0}, - {"EOF", Const, 0}, - {"EQL", Const, 0}, - {"FALLTHROUGH", Const, 0}, - {"FLOAT", Const, 0}, - {"FOR", Const, 0}, - {"FUNC", Const, 0}, - {"File", Type, 0}, - {"FileSet", Type, 0}, - {"GEQ", Const, 0}, - {"GO", Const, 0}, - {"GOTO", Const, 0}, - {"GTR", Const, 0}, - {"HighestPrec", Const, 0}, - {"IDENT", Const, 0}, - {"IF", Const, 0}, - {"ILLEGAL", Const, 0}, - {"IMAG", Const, 0}, - {"IMPORT", Const, 0}, - {"INC", Const, 0}, - {"INT", Const, 0}, - {"INTERFACE", Const, 0}, - {"IsExported", Func, 13}, - {"IsIdentifier", Func, 13}, - {"IsKeyword", Func, 13}, - {"LAND", Const, 0}, - {"LBRACE", Const, 0}, - {"LBRACK", Const, 0}, - {"LEQ", Const, 0}, - {"LOR", Const, 0}, - {"LPAREN", Const, 0}, - {"LSS", Const, 0}, - {"Lookup", Func, 0}, - {"LowestPrec", Const, 0}, - {"MAP", Const, 0}, - {"MUL", Const, 0}, - {"MUL_ASSIGN", Const, 0}, - {"NEQ", Const, 0}, - {"NOT", Const, 0}, - {"NewFileSet", Func, 0}, - {"NoPos", Const, 0}, - {"OR", Const, 0}, - {"OR_ASSIGN", Const, 0}, - {"PACKAGE", Const, 0}, - {"PERIOD", Const, 0}, - {"Pos", Type, 0}, - {"Position", Type, 0}, - {"Position.Column", Field, 0}, - {"Position.Filename", Field, 0}, - {"Position.Line", Field, 0}, - {"Position.Offset", Field, 0}, - {"QUO", Const, 0}, - {"QUO_ASSIGN", Const, 0}, - {"RANGE", Const, 0}, - {"RBRACE", Const, 0}, - {"RBRACK", Const, 0}, - {"REM", Const, 0}, - {"REM_ASSIGN", Const, 0}, - {"RETURN", Const, 0}, - {"RPAREN", Const, 0}, - {"SELECT", Const, 0}, - {"SEMICOLON", Const, 0}, - {"SHL", Const, 0}, - {"SHL_ASSIGN", Const, 0}, - {"SHR", Const, 0}, - {"SHR_ASSIGN", Const, 0}, - {"STRING", Const, 0}, - {"STRUCT", Const, 0}, - {"SUB", Const, 0}, - {"SUB_ASSIGN", Const, 0}, - {"SWITCH", Const, 0}, - {"TILDE", Const, 18}, - {"TYPE", Const, 0}, - {"Token", Type, 0}, - {"UnaryPrec", Const, 0}, - {"VAR", Const, 0}, - {"XOR", Const, 0}, - {"XOR_ASSIGN", Const, 0}, - }, - "go/types": { - {"(*Alias).Obj", Method, 22}, - {"(*Alias).Origin", Method, 23}, - {"(*Alias).Rhs", Method, 23}, - {"(*Alias).SetTypeParams", Method, 23}, - {"(*Alias).String", Method, 22}, - {"(*Alias).TypeArgs", Method, 23}, - {"(*Alias).TypeParams", Method, 23}, - {"(*Alias).Underlying", Method, 22}, - {"(*ArgumentError).Error", Method, 18}, - {"(*ArgumentError).Unwrap", Method, 18}, - {"(*Array).Elem", Method, 5}, - {"(*Array).Len", Method, 5}, - {"(*Array).String", Method, 5}, - {"(*Array).Underlying", Method, 5}, - {"(*Basic).Info", Method, 5}, - {"(*Basic).Kind", Method, 5}, - {"(*Basic).Name", Method, 5}, - {"(*Basic).String", Method, 5}, - {"(*Basic).Underlying", Method, 5}, - {"(*Builtin).Exported", Method, 5}, - {"(*Builtin).Id", Method, 5}, - {"(*Builtin).Name", Method, 5}, - {"(*Builtin).Parent", Method, 5}, - {"(*Builtin).Pkg", Method, 5}, - {"(*Builtin).Pos", Method, 5}, - {"(*Builtin).String", Method, 5}, - {"(*Builtin).Type", Method, 5}, - {"(*Chan).Dir", Method, 5}, - {"(*Chan).Elem", Method, 5}, - {"(*Chan).String", Method, 5}, - {"(*Chan).Underlying", Method, 5}, - {"(*Checker).Files", Method, 5}, - {"(*Config).Check", Method, 5}, - {"(*Const).Exported", Method, 5}, - {"(*Const).Id", Method, 5}, - {"(*Const).Name", Method, 5}, - {"(*Const).Parent", Method, 5}, - {"(*Const).Pkg", Method, 5}, - {"(*Const).Pos", Method, 5}, - {"(*Const).String", Method, 5}, - {"(*Const).Type", Method, 5}, - {"(*Const).Val", Method, 5}, - {"(*Func).Exported", Method, 5}, - {"(*Func).FullName", Method, 5}, - {"(*Func).Id", Method, 5}, - {"(*Func).Name", Method, 5}, - {"(*Func).Origin", Method, 19}, - {"(*Func).Parent", Method, 5}, - {"(*Func).Pkg", Method, 5}, - {"(*Func).Pos", Method, 5}, - {"(*Func).Scope", Method, 5}, - {"(*Func).Signature", Method, 23}, - {"(*Func).String", Method, 5}, - {"(*Func).Type", Method, 5}, - {"(*Info).ObjectOf", Method, 5}, - {"(*Info).PkgNameOf", Method, 22}, - {"(*Info).TypeOf", Method, 5}, - {"(*Initializer).String", Method, 5}, - {"(*Interface).Complete", Method, 5}, - {"(*Interface).Embedded", Method, 5}, - {"(*Interface).EmbeddedType", Method, 11}, - {"(*Interface).EmbeddedTypes", Method, 24}, - {"(*Interface).Empty", Method, 5}, - {"(*Interface).ExplicitMethod", Method, 5}, - {"(*Interface).ExplicitMethods", Method, 24}, - {"(*Interface).IsComparable", Method, 18}, - {"(*Interface).IsImplicit", Method, 18}, - {"(*Interface).IsMethodSet", Method, 18}, - {"(*Interface).MarkImplicit", Method, 18}, - {"(*Interface).Method", Method, 5}, - {"(*Interface).Methods", Method, 24}, - {"(*Interface).NumEmbeddeds", Method, 5}, - {"(*Interface).NumExplicitMethods", Method, 5}, - {"(*Interface).NumMethods", Method, 5}, - {"(*Interface).String", Method, 5}, - {"(*Interface).Underlying", Method, 5}, - {"(*Label).Exported", Method, 5}, - {"(*Label).Id", Method, 5}, - {"(*Label).Name", Method, 5}, - {"(*Label).Parent", Method, 5}, - {"(*Label).Pkg", Method, 5}, - {"(*Label).Pos", Method, 5}, - {"(*Label).String", Method, 5}, - {"(*Label).Type", Method, 5}, - {"(*Map).Elem", Method, 5}, - {"(*Map).Key", Method, 5}, - {"(*Map).String", Method, 5}, - {"(*Map).Underlying", Method, 5}, - {"(*MethodSet).At", Method, 5}, - {"(*MethodSet).Len", Method, 5}, - {"(*MethodSet).Lookup", Method, 5}, - {"(*MethodSet).Methods", Method, 24}, - {"(*MethodSet).String", Method, 5}, - {"(*Named).AddMethod", Method, 5}, - {"(*Named).Method", Method, 5}, - {"(*Named).Methods", Method, 24}, - {"(*Named).NumMethods", Method, 5}, - {"(*Named).Obj", Method, 5}, - {"(*Named).Origin", Method, 18}, - {"(*Named).SetTypeParams", Method, 18}, - {"(*Named).SetUnderlying", Method, 5}, - {"(*Named).String", Method, 5}, - {"(*Named).TypeArgs", Method, 18}, - {"(*Named).TypeParams", Method, 18}, - {"(*Named).Underlying", Method, 5}, - {"(*Nil).Exported", Method, 5}, - {"(*Nil).Id", Method, 5}, - {"(*Nil).Name", Method, 5}, - {"(*Nil).Parent", Method, 5}, - {"(*Nil).Pkg", Method, 5}, - {"(*Nil).Pos", Method, 5}, - {"(*Nil).String", Method, 5}, - {"(*Nil).Type", Method, 5}, - {"(*Package).Complete", Method, 5}, - {"(*Package).GoVersion", Method, 21}, - {"(*Package).Imports", Method, 5}, - {"(*Package).MarkComplete", Method, 5}, - {"(*Package).Name", Method, 5}, - {"(*Package).Path", Method, 5}, - {"(*Package).Scope", Method, 5}, - {"(*Package).SetImports", Method, 5}, - {"(*Package).SetName", Method, 6}, - {"(*Package).String", Method, 5}, - {"(*PkgName).Exported", Method, 5}, - {"(*PkgName).Id", Method, 5}, - {"(*PkgName).Imported", Method, 5}, - {"(*PkgName).Name", Method, 5}, - {"(*PkgName).Parent", Method, 5}, - {"(*PkgName).Pkg", Method, 5}, - {"(*PkgName).Pos", Method, 5}, - {"(*PkgName).String", Method, 5}, - {"(*PkgName).Type", Method, 5}, - {"(*Pointer).Elem", Method, 5}, - {"(*Pointer).String", Method, 5}, - {"(*Pointer).Underlying", Method, 5}, - {"(*Scope).Child", Method, 5}, - {"(*Scope).Children", Method, 24}, - {"(*Scope).Contains", Method, 5}, - {"(*Scope).End", Method, 5}, - {"(*Scope).Innermost", Method, 5}, - {"(*Scope).Insert", Method, 5}, - {"(*Scope).Len", Method, 5}, - {"(*Scope).Lookup", Method, 5}, - {"(*Scope).LookupParent", Method, 5}, - {"(*Scope).Names", Method, 5}, - {"(*Scope).NumChildren", Method, 5}, - {"(*Scope).Parent", Method, 5}, - {"(*Scope).Pos", Method, 5}, - {"(*Scope).String", Method, 5}, - {"(*Scope).WriteTo", Method, 5}, - {"(*Selection).Index", Method, 5}, - {"(*Selection).Indirect", Method, 5}, - {"(*Selection).Kind", Method, 5}, - {"(*Selection).Obj", Method, 5}, - {"(*Selection).Recv", Method, 5}, - {"(*Selection).String", Method, 5}, - {"(*Selection).Type", Method, 5}, - {"(*Signature).Params", Method, 5}, - {"(*Signature).Recv", Method, 5}, - {"(*Signature).RecvTypeParams", Method, 18}, - {"(*Signature).Results", Method, 5}, - {"(*Signature).String", Method, 5}, - {"(*Signature).TypeParams", Method, 18}, - {"(*Signature).Underlying", Method, 5}, - {"(*Signature).Variadic", Method, 5}, - {"(*Slice).Elem", Method, 5}, - {"(*Slice).String", Method, 5}, - {"(*Slice).Underlying", Method, 5}, - {"(*StdSizes).Alignof", Method, 5}, - {"(*StdSizes).Offsetsof", Method, 5}, - {"(*StdSizes).Sizeof", Method, 5}, - {"(*Struct).Field", Method, 5}, - {"(*Struct).Fields", Method, 24}, - {"(*Struct).NumFields", Method, 5}, - {"(*Struct).String", Method, 5}, - {"(*Struct).Tag", Method, 5}, - {"(*Struct).Underlying", Method, 5}, - {"(*Term).String", Method, 18}, - {"(*Term).Tilde", Method, 18}, - {"(*Term).Type", Method, 18}, - {"(*Tuple).At", Method, 5}, - {"(*Tuple).Len", Method, 5}, - {"(*Tuple).String", Method, 5}, - {"(*Tuple).Underlying", Method, 5}, - {"(*Tuple).Variables", Method, 24}, - {"(*TypeList).At", Method, 18}, - {"(*TypeList).Len", Method, 18}, - {"(*TypeList).Types", Method, 24}, - {"(*TypeName).Exported", Method, 5}, - {"(*TypeName).Id", Method, 5}, - {"(*TypeName).IsAlias", Method, 9}, - {"(*TypeName).Name", Method, 5}, - {"(*TypeName).Parent", Method, 5}, - {"(*TypeName).Pkg", Method, 5}, - {"(*TypeName).Pos", Method, 5}, - {"(*TypeName).String", Method, 5}, - {"(*TypeName).Type", Method, 5}, - {"(*TypeParam).Constraint", Method, 18}, - {"(*TypeParam).Index", Method, 18}, - {"(*TypeParam).Obj", Method, 18}, - {"(*TypeParam).SetConstraint", Method, 18}, - {"(*TypeParam).String", Method, 18}, - {"(*TypeParam).Underlying", Method, 18}, - {"(*TypeParamList).At", Method, 18}, - {"(*TypeParamList).Len", Method, 18}, - {"(*TypeParamList).TypeParams", Method, 24}, - {"(*Union).Len", Method, 18}, - {"(*Union).String", Method, 18}, - {"(*Union).Term", Method, 18}, - {"(*Union).Terms", Method, 24}, - {"(*Union).Underlying", Method, 18}, - {"(*Var).Anonymous", Method, 5}, - {"(*Var).Embedded", Method, 11}, - {"(*Var).Exported", Method, 5}, - {"(*Var).Id", Method, 5}, - {"(*Var).IsField", Method, 5}, - {"(*Var).Name", Method, 5}, - {"(*Var).Origin", Method, 19}, - {"(*Var).Parent", Method, 5}, - {"(*Var).Pkg", Method, 5}, - {"(*Var).Pos", Method, 5}, - {"(*Var).String", Method, 5}, - {"(*Var).Type", Method, 5}, - {"(Checker).ObjectOf", Method, 5}, - {"(Checker).PkgNameOf", Method, 22}, - {"(Checker).TypeOf", Method, 5}, - {"(Error).Error", Method, 5}, - {"(TypeAndValue).Addressable", Method, 5}, - {"(TypeAndValue).Assignable", Method, 5}, - {"(TypeAndValue).HasOk", Method, 5}, - {"(TypeAndValue).IsBuiltin", Method, 5}, - {"(TypeAndValue).IsNil", Method, 5}, - {"(TypeAndValue).IsType", Method, 5}, - {"(TypeAndValue).IsValue", Method, 5}, - {"(TypeAndValue).IsVoid", Method, 5}, - {"Alias", Type, 22}, - {"ArgumentError", Type, 18}, - {"ArgumentError.Err", Field, 18}, - {"ArgumentError.Index", Field, 18}, - {"Array", Type, 5}, - {"AssertableTo", Func, 5}, - {"AssignableTo", Func, 5}, - {"Basic", Type, 5}, - {"BasicInfo", Type, 5}, - {"BasicKind", Type, 5}, - {"Bool", Const, 5}, - {"Builtin", Type, 5}, - {"Byte", Const, 5}, - {"Chan", Type, 5}, - {"ChanDir", Type, 5}, - {"CheckExpr", Func, 13}, - {"Checker", Type, 5}, - {"Checker.Info", Field, 5}, - {"Comparable", Func, 5}, - {"Complex128", Const, 5}, - {"Complex64", Const, 5}, - {"Config", Type, 5}, - {"Config.Context", Field, 18}, - {"Config.DisableUnusedImportCheck", Field, 5}, - {"Config.Error", Field, 5}, - {"Config.FakeImportC", Field, 5}, - {"Config.GoVersion", Field, 18}, - {"Config.IgnoreFuncBodies", Field, 5}, - {"Config.Importer", Field, 5}, - {"Config.Sizes", Field, 5}, - {"Const", Type, 5}, - {"Context", Type, 18}, - {"ConvertibleTo", Func, 5}, - {"DefPredeclaredTestFuncs", Func, 5}, - {"Default", Func, 8}, - {"Error", Type, 5}, - {"Error.Fset", Field, 5}, - {"Error.Msg", Field, 5}, - {"Error.Pos", Field, 5}, - {"Error.Soft", Field, 5}, - {"Eval", Func, 5}, - {"ExprString", Func, 5}, - {"FieldVal", Const, 5}, - {"Float32", Const, 5}, - {"Float64", Const, 5}, - {"Func", Type, 5}, - {"Id", Func, 5}, - {"Identical", Func, 5}, - {"IdenticalIgnoreTags", Func, 8}, - {"Implements", Func, 5}, - {"ImportMode", Type, 6}, - {"Importer", Type, 5}, - {"ImporterFrom", Type, 6}, - {"Info", Type, 5}, - {"Info.Defs", Field, 5}, - {"Info.FileVersions", Field, 22}, - {"Info.Implicits", Field, 5}, - {"Info.InitOrder", Field, 5}, - {"Info.Instances", Field, 18}, - {"Info.Scopes", Field, 5}, - {"Info.Selections", Field, 5}, - {"Info.Types", Field, 5}, - {"Info.Uses", Field, 5}, - {"Initializer", Type, 5}, - {"Initializer.Lhs", Field, 5}, - {"Initializer.Rhs", Field, 5}, - {"Instance", Type, 18}, - {"Instance.Type", Field, 18}, - {"Instance.TypeArgs", Field, 18}, - {"Instantiate", Func, 18}, - {"Int", Const, 5}, - {"Int16", Const, 5}, - {"Int32", Const, 5}, - {"Int64", Const, 5}, - {"Int8", Const, 5}, - {"Interface", Type, 5}, - {"Invalid", Const, 5}, - {"IsBoolean", Const, 5}, - {"IsComplex", Const, 5}, - {"IsConstType", Const, 5}, - {"IsFloat", Const, 5}, - {"IsInteger", Const, 5}, - {"IsInterface", Func, 5}, - {"IsNumeric", Const, 5}, - {"IsOrdered", Const, 5}, - {"IsString", Const, 5}, - {"IsUnsigned", Const, 5}, - {"IsUntyped", Const, 5}, - {"Label", Type, 5}, - {"LookupFieldOrMethod", Func, 5}, - {"Map", Type, 5}, - {"MethodExpr", Const, 5}, - {"MethodSet", Type, 5}, - {"MethodVal", Const, 5}, - {"MissingMethod", Func, 5}, - {"Named", Type, 5}, - {"NewAlias", Func, 22}, - {"NewArray", Func, 5}, - {"NewChan", Func, 5}, - {"NewChecker", Func, 5}, - {"NewConst", Func, 5}, - {"NewContext", Func, 18}, - {"NewField", Func, 5}, - {"NewFunc", Func, 5}, - {"NewInterface", Func, 5}, - {"NewInterfaceType", Func, 11}, - {"NewLabel", Func, 5}, - {"NewMap", Func, 5}, - {"NewMethodSet", Func, 5}, - {"NewNamed", Func, 5}, - {"NewPackage", Func, 5}, - {"NewParam", Func, 5}, - {"NewPkgName", Func, 5}, - {"NewPointer", Func, 5}, - {"NewScope", Func, 5}, - {"NewSignature", Func, 5}, - {"NewSignatureType", Func, 18}, - {"NewSlice", Func, 5}, - {"NewStruct", Func, 5}, - {"NewTerm", Func, 18}, - {"NewTuple", Func, 5}, - {"NewTypeName", Func, 5}, - {"NewTypeParam", Func, 18}, - {"NewUnion", Func, 18}, - {"NewVar", Func, 5}, - {"Nil", Type, 5}, - {"Object", Type, 5}, - {"ObjectString", Func, 5}, - {"Package", Type, 5}, - {"PkgName", Type, 5}, - {"Pointer", Type, 5}, - {"Qualifier", Type, 5}, - {"RecvOnly", Const, 5}, - {"RelativeTo", Func, 5}, - {"Rune", Const, 5}, - {"Satisfies", Func, 20}, - {"Scope", Type, 5}, - {"Selection", Type, 5}, - {"SelectionKind", Type, 5}, - {"SelectionString", Func, 5}, - {"SendOnly", Const, 5}, - {"SendRecv", Const, 5}, - {"Signature", Type, 5}, - {"Sizes", Type, 5}, - {"SizesFor", Func, 9}, - {"Slice", Type, 5}, - {"StdSizes", Type, 5}, - {"StdSizes.MaxAlign", Field, 5}, - {"StdSizes.WordSize", Field, 5}, - {"String", Const, 5}, - {"Struct", Type, 5}, - {"Term", Type, 18}, - {"Tuple", Type, 5}, - {"Typ", Var, 5}, - {"Type", Type, 5}, - {"TypeAndValue", Type, 5}, - {"TypeAndValue.Type", Field, 5}, - {"TypeAndValue.Value", Field, 5}, - {"TypeList", Type, 18}, - {"TypeName", Type, 5}, - {"TypeParam", Type, 18}, - {"TypeParamList", Type, 18}, - {"TypeString", Func, 5}, - {"Uint", Const, 5}, - {"Uint16", Const, 5}, - {"Uint32", Const, 5}, - {"Uint64", Const, 5}, - {"Uint8", Const, 5}, - {"Uintptr", Const, 5}, - {"Unalias", Func, 22}, - {"Union", Type, 18}, - {"Universe", Var, 5}, - {"Unsafe", Var, 5}, - {"UnsafePointer", Const, 5}, - {"UntypedBool", Const, 5}, - {"UntypedComplex", Const, 5}, - {"UntypedFloat", Const, 5}, - {"UntypedInt", Const, 5}, - {"UntypedNil", Const, 5}, - {"UntypedRune", Const, 5}, - {"UntypedString", Const, 5}, - {"Var", Type, 5}, - {"WriteExpr", Func, 5}, - {"WriteSignature", Func, 5}, - {"WriteType", Func, 5}, - }, - "go/version": { - {"Compare", Func, 22}, - {"IsValid", Func, 22}, - {"Lang", Func, 22}, - }, - "hash": { - {"Hash", Type, 0}, - {"Hash32", Type, 0}, - {"Hash64", Type, 0}, - }, - "hash/adler32": { - {"Checksum", Func, 0}, - {"New", Func, 0}, - {"Size", Const, 0}, - }, - "hash/crc32": { - {"Castagnoli", Const, 0}, - {"Checksum", Func, 0}, - {"ChecksumIEEE", Func, 0}, - {"IEEE", Const, 0}, - {"IEEETable", Var, 0}, - {"Koopman", Const, 0}, - {"MakeTable", Func, 0}, - {"New", Func, 0}, - {"NewIEEE", Func, 0}, - {"Size", Const, 0}, - {"Table", Type, 0}, - {"Update", Func, 0}, - }, - "hash/crc64": { - {"Checksum", Func, 0}, - {"ECMA", Const, 0}, - {"ISO", Const, 0}, - {"MakeTable", Func, 0}, - {"New", Func, 0}, - {"Size", Const, 0}, - {"Table", Type, 0}, - {"Update", Func, 0}, - }, - "hash/fnv": { - {"New128", Func, 9}, - {"New128a", Func, 9}, - {"New32", Func, 0}, - {"New32a", Func, 0}, - {"New64", Func, 0}, - {"New64a", Func, 0}, - }, - "hash/maphash": { - {"(*Hash).BlockSize", Method, 14}, - {"(*Hash).Reset", Method, 14}, - {"(*Hash).Seed", Method, 14}, - {"(*Hash).SetSeed", Method, 14}, - {"(*Hash).Size", Method, 14}, - {"(*Hash).Sum", Method, 14}, - {"(*Hash).Sum64", Method, 14}, - {"(*Hash).Write", Method, 14}, - {"(*Hash).WriteByte", Method, 14}, - {"(*Hash).WriteString", Method, 14}, - {"Bytes", Func, 19}, - {"Comparable", Func, 24}, - {"Hash", Type, 14}, - {"MakeSeed", Func, 14}, - {"Seed", Type, 14}, - {"String", Func, 19}, - {"WriteComparable", Func, 24}, - }, - "html": { - {"EscapeString", Func, 0}, - {"UnescapeString", Func, 0}, - }, - "html/template": { - {"(*Error).Error", Method, 0}, - {"(*Template).AddParseTree", Method, 0}, - {"(*Template).Clone", Method, 0}, - {"(*Template).DefinedTemplates", Method, 6}, - {"(*Template).Delims", Method, 0}, - {"(*Template).Execute", Method, 0}, - {"(*Template).ExecuteTemplate", Method, 0}, - {"(*Template).Funcs", Method, 0}, - {"(*Template).Lookup", Method, 0}, - {"(*Template).Name", Method, 0}, - {"(*Template).New", Method, 0}, - {"(*Template).Option", Method, 5}, - {"(*Template).Parse", Method, 0}, - {"(*Template).ParseFS", Method, 16}, - {"(*Template).ParseFiles", Method, 0}, - {"(*Template).ParseGlob", Method, 0}, - {"(*Template).Templates", Method, 0}, - {"CSS", Type, 0}, - {"ErrAmbigContext", Const, 0}, - {"ErrBadHTML", Const, 0}, - {"ErrBranchEnd", Const, 0}, - {"ErrEndContext", Const, 0}, - {"ErrJSTemplate", Const, 21}, - {"ErrNoSuchTemplate", Const, 0}, - {"ErrOutputContext", Const, 0}, - {"ErrPartialCharset", Const, 0}, - {"ErrPartialEscape", Const, 0}, - {"ErrPredefinedEscaper", Const, 9}, - {"ErrRangeLoopReentry", Const, 0}, - {"ErrSlashAmbig", Const, 0}, - {"Error", Type, 0}, - {"Error.Description", Field, 0}, - {"Error.ErrorCode", Field, 0}, - {"Error.Line", Field, 0}, - {"Error.Name", Field, 0}, - {"Error.Node", Field, 4}, - {"ErrorCode", Type, 0}, - {"FuncMap", Type, 0}, - {"HTML", Type, 0}, - {"HTMLAttr", Type, 0}, - {"HTMLEscape", Func, 0}, - {"HTMLEscapeString", Func, 0}, - {"HTMLEscaper", Func, 0}, - {"IsTrue", Func, 6}, - {"JS", Type, 0}, - {"JSEscape", Func, 0}, - {"JSEscapeString", Func, 0}, - {"JSEscaper", Func, 0}, - {"JSStr", Type, 0}, - {"Must", Func, 0}, - {"New", Func, 0}, - {"OK", Const, 0}, - {"ParseFS", Func, 16}, - {"ParseFiles", Func, 0}, - {"ParseGlob", Func, 0}, - {"Srcset", Type, 10}, - {"Template", Type, 0}, - {"Template.Tree", Field, 2}, - {"URL", Type, 0}, - {"URLQueryEscaper", Func, 0}, - }, - "image": { - {"(*Alpha).AlphaAt", Method, 4}, - {"(*Alpha).At", Method, 0}, - {"(*Alpha).Bounds", Method, 0}, - {"(*Alpha).ColorModel", Method, 0}, - {"(*Alpha).Opaque", Method, 0}, - {"(*Alpha).PixOffset", Method, 0}, - {"(*Alpha).RGBA64At", Method, 17}, - {"(*Alpha).Set", Method, 0}, - {"(*Alpha).SetAlpha", Method, 0}, - {"(*Alpha).SetRGBA64", Method, 17}, - {"(*Alpha).SubImage", Method, 0}, - {"(*Alpha16).Alpha16At", Method, 4}, - {"(*Alpha16).At", Method, 0}, - {"(*Alpha16).Bounds", Method, 0}, - {"(*Alpha16).ColorModel", Method, 0}, - {"(*Alpha16).Opaque", Method, 0}, - {"(*Alpha16).PixOffset", Method, 0}, - {"(*Alpha16).RGBA64At", Method, 17}, - {"(*Alpha16).Set", Method, 0}, - {"(*Alpha16).SetAlpha16", Method, 0}, - {"(*Alpha16).SetRGBA64", Method, 17}, - {"(*Alpha16).SubImage", Method, 0}, - {"(*CMYK).At", Method, 5}, - {"(*CMYK).Bounds", Method, 5}, - {"(*CMYK).CMYKAt", Method, 5}, - {"(*CMYK).ColorModel", Method, 5}, - {"(*CMYK).Opaque", Method, 5}, - {"(*CMYK).PixOffset", Method, 5}, - {"(*CMYK).RGBA64At", Method, 17}, - {"(*CMYK).Set", Method, 5}, - {"(*CMYK).SetCMYK", Method, 5}, - {"(*CMYK).SetRGBA64", Method, 17}, - {"(*CMYK).SubImage", Method, 5}, - {"(*Gray).At", Method, 0}, - {"(*Gray).Bounds", Method, 0}, - {"(*Gray).ColorModel", Method, 0}, - {"(*Gray).GrayAt", Method, 4}, - {"(*Gray).Opaque", Method, 0}, - {"(*Gray).PixOffset", Method, 0}, - {"(*Gray).RGBA64At", Method, 17}, - {"(*Gray).Set", Method, 0}, - {"(*Gray).SetGray", Method, 0}, - {"(*Gray).SetRGBA64", Method, 17}, - {"(*Gray).SubImage", Method, 0}, - {"(*Gray16).At", Method, 0}, - {"(*Gray16).Bounds", Method, 0}, - {"(*Gray16).ColorModel", Method, 0}, - {"(*Gray16).Gray16At", Method, 4}, - {"(*Gray16).Opaque", Method, 0}, - {"(*Gray16).PixOffset", Method, 0}, - {"(*Gray16).RGBA64At", Method, 17}, - {"(*Gray16).Set", Method, 0}, - {"(*Gray16).SetGray16", Method, 0}, - {"(*Gray16).SetRGBA64", Method, 17}, - {"(*Gray16).SubImage", Method, 0}, - {"(*NRGBA).At", Method, 0}, - {"(*NRGBA).Bounds", Method, 0}, - {"(*NRGBA).ColorModel", Method, 0}, - {"(*NRGBA).NRGBAAt", Method, 4}, - {"(*NRGBA).Opaque", Method, 0}, - {"(*NRGBA).PixOffset", Method, 0}, - {"(*NRGBA).RGBA64At", Method, 17}, - {"(*NRGBA).Set", Method, 0}, - {"(*NRGBA).SetNRGBA", Method, 0}, - {"(*NRGBA).SetRGBA64", Method, 17}, - {"(*NRGBA).SubImage", Method, 0}, - {"(*NRGBA64).At", Method, 0}, - {"(*NRGBA64).Bounds", Method, 0}, - {"(*NRGBA64).ColorModel", Method, 0}, - {"(*NRGBA64).NRGBA64At", Method, 4}, - {"(*NRGBA64).Opaque", Method, 0}, - {"(*NRGBA64).PixOffset", Method, 0}, - {"(*NRGBA64).RGBA64At", Method, 17}, - {"(*NRGBA64).Set", Method, 0}, - {"(*NRGBA64).SetNRGBA64", Method, 0}, - {"(*NRGBA64).SetRGBA64", Method, 17}, - {"(*NRGBA64).SubImage", Method, 0}, - {"(*NYCbCrA).AOffset", Method, 6}, - {"(*NYCbCrA).At", Method, 6}, - {"(*NYCbCrA).Bounds", Method, 6}, - {"(*NYCbCrA).COffset", Method, 6}, - {"(*NYCbCrA).ColorModel", Method, 6}, - {"(*NYCbCrA).NYCbCrAAt", Method, 6}, - {"(*NYCbCrA).Opaque", Method, 6}, - {"(*NYCbCrA).RGBA64At", Method, 17}, - {"(*NYCbCrA).SubImage", Method, 6}, - {"(*NYCbCrA).YCbCrAt", Method, 6}, - {"(*NYCbCrA).YOffset", Method, 6}, - {"(*Paletted).At", Method, 0}, - {"(*Paletted).Bounds", Method, 0}, - {"(*Paletted).ColorIndexAt", Method, 0}, - {"(*Paletted).ColorModel", Method, 0}, - {"(*Paletted).Opaque", Method, 0}, - {"(*Paletted).PixOffset", Method, 0}, - {"(*Paletted).RGBA64At", Method, 17}, - {"(*Paletted).Set", Method, 0}, - {"(*Paletted).SetColorIndex", Method, 0}, - {"(*Paletted).SetRGBA64", Method, 17}, - {"(*Paletted).SubImage", Method, 0}, - {"(*RGBA).At", Method, 0}, - {"(*RGBA).Bounds", Method, 0}, - {"(*RGBA).ColorModel", Method, 0}, - {"(*RGBA).Opaque", Method, 0}, - {"(*RGBA).PixOffset", Method, 0}, - {"(*RGBA).RGBA64At", Method, 17}, - {"(*RGBA).RGBAAt", Method, 4}, - {"(*RGBA).Set", Method, 0}, - {"(*RGBA).SetRGBA", Method, 0}, - {"(*RGBA).SetRGBA64", Method, 17}, - {"(*RGBA).SubImage", Method, 0}, - {"(*RGBA64).At", Method, 0}, - {"(*RGBA64).Bounds", Method, 0}, - {"(*RGBA64).ColorModel", Method, 0}, - {"(*RGBA64).Opaque", Method, 0}, - {"(*RGBA64).PixOffset", Method, 0}, - {"(*RGBA64).RGBA64At", Method, 4}, - {"(*RGBA64).Set", Method, 0}, - {"(*RGBA64).SetRGBA64", Method, 0}, - {"(*RGBA64).SubImage", Method, 0}, - {"(*Uniform).At", Method, 0}, - {"(*Uniform).Bounds", Method, 0}, - {"(*Uniform).ColorModel", Method, 0}, - {"(*Uniform).Convert", Method, 0}, - {"(*Uniform).Opaque", Method, 0}, - {"(*Uniform).RGBA", Method, 0}, - {"(*Uniform).RGBA64At", Method, 17}, - {"(*YCbCr).At", Method, 0}, - {"(*YCbCr).Bounds", Method, 0}, - {"(*YCbCr).COffset", Method, 0}, - {"(*YCbCr).ColorModel", Method, 0}, - {"(*YCbCr).Opaque", Method, 0}, - {"(*YCbCr).RGBA64At", Method, 17}, - {"(*YCbCr).SubImage", Method, 0}, - {"(*YCbCr).YCbCrAt", Method, 4}, - {"(*YCbCr).YOffset", Method, 0}, - {"(Point).Add", Method, 0}, - {"(Point).Div", Method, 0}, - {"(Point).Eq", Method, 0}, - {"(Point).In", Method, 0}, - {"(Point).Mod", Method, 0}, - {"(Point).Mul", Method, 0}, - {"(Point).String", Method, 0}, - {"(Point).Sub", Method, 0}, - {"(Rectangle).Add", Method, 0}, - {"(Rectangle).At", Method, 5}, - {"(Rectangle).Bounds", Method, 5}, - {"(Rectangle).Canon", Method, 0}, - {"(Rectangle).ColorModel", Method, 5}, - {"(Rectangle).Dx", Method, 0}, - {"(Rectangle).Dy", Method, 0}, - {"(Rectangle).Empty", Method, 0}, - {"(Rectangle).Eq", Method, 0}, - {"(Rectangle).In", Method, 0}, - {"(Rectangle).Inset", Method, 0}, - {"(Rectangle).Intersect", Method, 0}, - {"(Rectangle).Overlaps", Method, 0}, - {"(Rectangle).RGBA64At", Method, 17}, - {"(Rectangle).Size", Method, 0}, - {"(Rectangle).String", Method, 0}, - {"(Rectangle).Sub", Method, 0}, - {"(Rectangle).Union", Method, 0}, - {"(YCbCrSubsampleRatio).String", Method, 0}, - {"Alpha", Type, 0}, - {"Alpha.Pix", Field, 0}, - {"Alpha.Rect", Field, 0}, - {"Alpha.Stride", Field, 0}, - {"Alpha16", Type, 0}, - {"Alpha16.Pix", Field, 0}, - {"Alpha16.Rect", Field, 0}, - {"Alpha16.Stride", Field, 0}, - {"Black", Var, 0}, - {"CMYK", Type, 5}, - {"CMYK.Pix", Field, 5}, - {"CMYK.Rect", Field, 5}, - {"CMYK.Stride", Field, 5}, - {"Config", Type, 0}, - {"Config.ColorModel", Field, 0}, - {"Config.Height", Field, 0}, - {"Config.Width", Field, 0}, - {"Decode", Func, 0}, - {"DecodeConfig", Func, 0}, - {"ErrFormat", Var, 0}, - {"Gray", Type, 0}, - {"Gray.Pix", Field, 0}, - {"Gray.Rect", Field, 0}, - {"Gray.Stride", Field, 0}, - {"Gray16", Type, 0}, - {"Gray16.Pix", Field, 0}, - {"Gray16.Rect", Field, 0}, - {"Gray16.Stride", Field, 0}, - {"Image", Type, 0}, - {"NRGBA", Type, 0}, - {"NRGBA.Pix", Field, 0}, - {"NRGBA.Rect", Field, 0}, - {"NRGBA.Stride", Field, 0}, - {"NRGBA64", Type, 0}, - {"NRGBA64.Pix", Field, 0}, - {"NRGBA64.Rect", Field, 0}, - {"NRGBA64.Stride", Field, 0}, - {"NYCbCrA", Type, 6}, - {"NYCbCrA.A", Field, 6}, - {"NYCbCrA.AStride", Field, 6}, - {"NYCbCrA.YCbCr", Field, 6}, - {"NewAlpha", Func, 0}, - {"NewAlpha16", Func, 0}, - {"NewCMYK", Func, 5}, - {"NewGray", Func, 0}, - {"NewGray16", Func, 0}, - {"NewNRGBA", Func, 0}, - {"NewNRGBA64", Func, 0}, - {"NewNYCbCrA", Func, 6}, - {"NewPaletted", Func, 0}, - {"NewRGBA", Func, 0}, - {"NewRGBA64", Func, 0}, - {"NewUniform", Func, 0}, - {"NewYCbCr", Func, 0}, - {"Opaque", Var, 0}, - {"Paletted", Type, 0}, - {"Paletted.Palette", Field, 0}, - {"Paletted.Pix", Field, 0}, - {"Paletted.Rect", Field, 0}, - {"Paletted.Stride", Field, 0}, - {"PalettedImage", Type, 0}, - {"Point", Type, 0}, - {"Point.X", Field, 0}, - {"Point.Y", Field, 0}, - {"Pt", Func, 0}, - {"RGBA", Type, 0}, - {"RGBA.Pix", Field, 0}, - {"RGBA.Rect", Field, 0}, - {"RGBA.Stride", Field, 0}, - {"RGBA64", Type, 0}, - {"RGBA64.Pix", Field, 0}, - {"RGBA64.Rect", Field, 0}, - {"RGBA64.Stride", Field, 0}, - {"RGBA64Image", Type, 17}, - {"Rect", Func, 0}, - {"Rectangle", Type, 0}, - {"Rectangle.Max", Field, 0}, - {"Rectangle.Min", Field, 0}, - {"RegisterFormat", Func, 0}, - {"Transparent", Var, 0}, - {"Uniform", Type, 0}, - {"Uniform.C", Field, 0}, - {"White", Var, 0}, - {"YCbCr", Type, 0}, - {"YCbCr.CStride", Field, 0}, - {"YCbCr.Cb", Field, 0}, - {"YCbCr.Cr", Field, 0}, - {"YCbCr.Rect", Field, 0}, - {"YCbCr.SubsampleRatio", Field, 0}, - {"YCbCr.Y", Field, 0}, - {"YCbCr.YStride", Field, 0}, - {"YCbCrSubsampleRatio", Type, 0}, - {"YCbCrSubsampleRatio410", Const, 5}, - {"YCbCrSubsampleRatio411", Const, 5}, - {"YCbCrSubsampleRatio420", Const, 0}, - {"YCbCrSubsampleRatio422", Const, 0}, - {"YCbCrSubsampleRatio440", Const, 1}, - {"YCbCrSubsampleRatio444", Const, 0}, - {"ZP", Var, 0}, - {"ZR", Var, 0}, - }, - "image/color": { - {"(Alpha).RGBA", Method, 0}, - {"(Alpha16).RGBA", Method, 0}, - {"(CMYK).RGBA", Method, 5}, - {"(Gray).RGBA", Method, 0}, - {"(Gray16).RGBA", Method, 0}, - {"(NRGBA).RGBA", Method, 0}, - {"(NRGBA64).RGBA", Method, 0}, - {"(NYCbCrA).RGBA", Method, 6}, - {"(Palette).Convert", Method, 0}, - {"(Palette).Index", Method, 0}, - {"(RGBA).RGBA", Method, 0}, - {"(RGBA64).RGBA", Method, 0}, - {"(YCbCr).RGBA", Method, 0}, - {"Alpha", Type, 0}, - {"Alpha.A", Field, 0}, - {"Alpha16", Type, 0}, - {"Alpha16.A", Field, 0}, - {"Alpha16Model", Var, 0}, - {"AlphaModel", Var, 0}, - {"Black", Var, 0}, - {"CMYK", Type, 5}, - {"CMYK.C", Field, 5}, - {"CMYK.K", Field, 5}, - {"CMYK.M", Field, 5}, - {"CMYK.Y", Field, 5}, - {"CMYKModel", Var, 5}, - {"CMYKToRGB", Func, 5}, - {"Color", Type, 0}, - {"Gray", Type, 0}, - {"Gray.Y", Field, 0}, - {"Gray16", Type, 0}, - {"Gray16.Y", Field, 0}, - {"Gray16Model", Var, 0}, - {"GrayModel", Var, 0}, - {"Model", Type, 0}, - {"ModelFunc", Func, 0}, - {"NRGBA", Type, 0}, - {"NRGBA.A", Field, 0}, - {"NRGBA.B", Field, 0}, - {"NRGBA.G", Field, 0}, - {"NRGBA.R", Field, 0}, - {"NRGBA64", Type, 0}, - {"NRGBA64.A", Field, 0}, - {"NRGBA64.B", Field, 0}, - {"NRGBA64.G", Field, 0}, - {"NRGBA64.R", Field, 0}, - {"NRGBA64Model", Var, 0}, - {"NRGBAModel", Var, 0}, - {"NYCbCrA", Type, 6}, - {"NYCbCrA.A", Field, 6}, - {"NYCbCrA.YCbCr", Field, 6}, - {"NYCbCrAModel", Var, 6}, - {"Opaque", Var, 0}, - {"Palette", Type, 0}, - {"RGBA", Type, 0}, - {"RGBA.A", Field, 0}, - {"RGBA.B", Field, 0}, - {"RGBA.G", Field, 0}, - {"RGBA.R", Field, 0}, - {"RGBA64", Type, 0}, - {"RGBA64.A", Field, 0}, - {"RGBA64.B", Field, 0}, - {"RGBA64.G", Field, 0}, - {"RGBA64.R", Field, 0}, - {"RGBA64Model", Var, 0}, - {"RGBAModel", Var, 0}, - {"RGBToCMYK", Func, 5}, - {"RGBToYCbCr", Func, 0}, - {"Transparent", Var, 0}, - {"White", Var, 0}, - {"YCbCr", Type, 0}, - {"YCbCr.Cb", Field, 0}, - {"YCbCr.Cr", Field, 0}, - {"YCbCr.Y", Field, 0}, - {"YCbCrModel", Var, 0}, - {"YCbCrToRGB", Func, 0}, - }, - "image/color/palette": { - {"Plan9", Var, 2}, - {"WebSafe", Var, 2}, - }, - "image/draw": { - {"(Op).Draw", Method, 2}, - {"Draw", Func, 0}, - {"DrawMask", Func, 0}, - {"Drawer", Type, 2}, - {"FloydSteinberg", Var, 2}, - {"Image", Type, 0}, - {"Op", Type, 0}, - {"Over", Const, 0}, - {"Quantizer", Type, 2}, - {"RGBA64Image", Type, 17}, - {"Src", Const, 0}, - }, - "image/gif": { - {"Decode", Func, 0}, - {"DecodeAll", Func, 0}, - {"DecodeConfig", Func, 0}, - {"DisposalBackground", Const, 5}, - {"DisposalNone", Const, 5}, - {"DisposalPrevious", Const, 5}, - {"Encode", Func, 2}, - {"EncodeAll", Func, 2}, - {"GIF", Type, 0}, - {"GIF.BackgroundIndex", Field, 5}, - {"GIF.Config", Field, 5}, - {"GIF.Delay", Field, 0}, - {"GIF.Disposal", Field, 5}, - {"GIF.Image", Field, 0}, - {"GIF.LoopCount", Field, 0}, - {"Options", Type, 2}, - {"Options.Drawer", Field, 2}, - {"Options.NumColors", Field, 2}, - {"Options.Quantizer", Field, 2}, - }, - "image/jpeg": { - {"(FormatError).Error", Method, 0}, - {"(UnsupportedError).Error", Method, 0}, - {"Decode", Func, 0}, - {"DecodeConfig", Func, 0}, - {"DefaultQuality", Const, 0}, - {"Encode", Func, 0}, - {"FormatError", Type, 0}, - {"Options", Type, 0}, - {"Options.Quality", Field, 0}, - {"Reader", Type, 0}, - {"UnsupportedError", Type, 0}, - }, - "image/png": { - {"(*Encoder).Encode", Method, 4}, - {"(FormatError).Error", Method, 0}, - {"(UnsupportedError).Error", Method, 0}, - {"BestCompression", Const, 4}, - {"BestSpeed", Const, 4}, - {"CompressionLevel", Type, 4}, - {"Decode", Func, 0}, - {"DecodeConfig", Func, 0}, - {"DefaultCompression", Const, 4}, - {"Encode", Func, 0}, - {"Encoder", Type, 4}, - {"Encoder.BufferPool", Field, 9}, - {"Encoder.CompressionLevel", Field, 4}, - {"EncoderBuffer", Type, 9}, - {"EncoderBufferPool", Type, 9}, - {"FormatError", Type, 0}, - {"NoCompression", Const, 4}, - {"UnsupportedError", Type, 0}, - }, - "index/suffixarray": { - {"(*Index).Bytes", Method, 0}, - {"(*Index).FindAllIndex", Method, 0}, - {"(*Index).Lookup", Method, 0}, - {"(*Index).Read", Method, 0}, - {"(*Index).Write", Method, 0}, - {"Index", Type, 0}, - {"New", Func, 0}, - }, - "io": { - {"(*LimitedReader).Read", Method, 0}, - {"(*OffsetWriter).Seek", Method, 20}, - {"(*OffsetWriter).Write", Method, 20}, - {"(*OffsetWriter).WriteAt", Method, 20}, - {"(*PipeReader).Close", Method, 0}, - {"(*PipeReader).CloseWithError", Method, 0}, - {"(*PipeReader).Read", Method, 0}, - {"(*PipeWriter).Close", Method, 0}, - {"(*PipeWriter).CloseWithError", Method, 0}, - {"(*PipeWriter).Write", Method, 0}, - {"(*SectionReader).Outer", Method, 22}, - {"(*SectionReader).Read", Method, 0}, - {"(*SectionReader).ReadAt", Method, 0}, - {"(*SectionReader).Seek", Method, 0}, - {"(*SectionReader).Size", Method, 0}, - {"ByteReader", Type, 0}, - {"ByteScanner", Type, 0}, - {"ByteWriter", Type, 1}, - {"Closer", Type, 0}, - {"Copy", Func, 0}, - {"CopyBuffer", Func, 5}, - {"CopyN", Func, 0}, - {"Discard", Var, 16}, - {"EOF", Var, 0}, - {"ErrClosedPipe", Var, 0}, - {"ErrNoProgress", Var, 1}, - {"ErrShortBuffer", Var, 0}, - {"ErrShortWrite", Var, 0}, - {"ErrUnexpectedEOF", Var, 0}, - {"LimitReader", Func, 0}, - {"LimitedReader", Type, 0}, - {"LimitedReader.N", Field, 0}, - {"LimitedReader.R", Field, 0}, - {"MultiReader", Func, 0}, - {"MultiWriter", Func, 0}, - {"NewOffsetWriter", Func, 20}, - {"NewSectionReader", Func, 0}, - {"NopCloser", Func, 16}, - {"OffsetWriter", Type, 20}, - {"Pipe", Func, 0}, - {"PipeReader", Type, 0}, - {"PipeWriter", Type, 0}, - {"ReadAll", Func, 16}, - {"ReadAtLeast", Func, 0}, - {"ReadCloser", Type, 0}, - {"ReadFull", Func, 0}, - {"ReadSeekCloser", Type, 16}, - {"ReadSeeker", Type, 0}, - {"ReadWriteCloser", Type, 0}, - {"ReadWriteSeeker", Type, 0}, - {"ReadWriter", Type, 0}, - {"Reader", Type, 0}, - {"ReaderAt", Type, 0}, - {"ReaderFrom", Type, 0}, - {"RuneReader", Type, 0}, - {"RuneScanner", Type, 0}, - {"SectionReader", Type, 0}, - {"SeekCurrent", Const, 7}, - {"SeekEnd", Const, 7}, - {"SeekStart", Const, 7}, - {"Seeker", Type, 0}, - {"StringWriter", Type, 12}, - {"TeeReader", Func, 0}, - {"WriteCloser", Type, 0}, - {"WriteSeeker", Type, 0}, - {"WriteString", Func, 0}, - {"Writer", Type, 0}, - {"WriterAt", Type, 0}, - {"WriterTo", Type, 0}, - }, - "io/fs": { - {"(*PathError).Error", Method, 16}, - {"(*PathError).Timeout", Method, 16}, - {"(*PathError).Unwrap", Method, 16}, - {"(FileMode).IsDir", Method, 16}, - {"(FileMode).IsRegular", Method, 16}, - {"(FileMode).Perm", Method, 16}, - {"(FileMode).String", Method, 16}, - {"(FileMode).Type", Method, 16}, - {"DirEntry", Type, 16}, - {"ErrClosed", Var, 16}, - {"ErrExist", Var, 16}, - {"ErrInvalid", Var, 16}, - {"ErrNotExist", Var, 16}, - {"ErrPermission", Var, 16}, - {"FS", Type, 16}, - {"File", Type, 16}, - {"FileInfo", Type, 16}, - {"FileInfoToDirEntry", Func, 17}, - {"FileMode", Type, 16}, - {"FormatDirEntry", Func, 21}, - {"FormatFileInfo", Func, 21}, - {"Glob", Func, 16}, - {"GlobFS", Type, 16}, - {"ModeAppend", Const, 16}, - {"ModeCharDevice", Const, 16}, - {"ModeDevice", Const, 16}, - {"ModeDir", Const, 16}, - {"ModeExclusive", Const, 16}, - {"ModeIrregular", Const, 16}, - {"ModeNamedPipe", Const, 16}, - {"ModePerm", Const, 16}, - {"ModeSetgid", Const, 16}, - {"ModeSetuid", Const, 16}, - {"ModeSocket", Const, 16}, - {"ModeSticky", Const, 16}, - {"ModeSymlink", Const, 16}, - {"ModeTemporary", Const, 16}, - {"ModeType", Const, 16}, - {"PathError", Type, 16}, - {"PathError.Err", Field, 16}, - {"PathError.Op", Field, 16}, - {"PathError.Path", Field, 16}, - {"ReadDir", Func, 16}, - {"ReadDirFS", Type, 16}, - {"ReadDirFile", Type, 16}, - {"ReadFile", Func, 16}, - {"ReadFileFS", Type, 16}, - {"SkipAll", Var, 20}, - {"SkipDir", Var, 16}, - {"Stat", Func, 16}, - {"StatFS", Type, 16}, - {"Sub", Func, 16}, - {"SubFS", Type, 16}, - {"ValidPath", Func, 16}, - {"WalkDir", Func, 16}, - {"WalkDirFunc", Type, 16}, - }, - "io/ioutil": { - {"Discard", Var, 0}, - {"NopCloser", Func, 0}, - {"ReadAll", Func, 0}, - {"ReadDir", Func, 0}, - {"ReadFile", Func, 0}, - {"TempDir", Func, 0}, - {"TempFile", Func, 0}, - {"WriteFile", Func, 0}, - }, - "iter": { - {"Pull", Func, 23}, - {"Pull2", Func, 23}, - {"Seq", Type, 23}, - {"Seq2", Type, 23}, - }, - "log": { - {"(*Logger).Fatal", Method, 0}, - {"(*Logger).Fatalf", Method, 0}, - {"(*Logger).Fatalln", Method, 0}, - {"(*Logger).Flags", Method, 0}, - {"(*Logger).Output", Method, 0}, - {"(*Logger).Panic", Method, 0}, - {"(*Logger).Panicf", Method, 0}, - {"(*Logger).Panicln", Method, 0}, - {"(*Logger).Prefix", Method, 0}, - {"(*Logger).Print", Method, 0}, - {"(*Logger).Printf", Method, 0}, - {"(*Logger).Println", Method, 0}, - {"(*Logger).SetFlags", Method, 0}, - {"(*Logger).SetOutput", Method, 5}, - {"(*Logger).SetPrefix", Method, 0}, - {"(*Logger).Writer", Method, 12}, - {"Default", Func, 16}, - {"Fatal", Func, 0}, - {"Fatalf", Func, 0}, - {"Fatalln", Func, 0}, - {"Flags", Func, 0}, - {"LUTC", Const, 5}, - {"Ldate", Const, 0}, - {"Llongfile", Const, 0}, - {"Lmicroseconds", Const, 0}, - {"Lmsgprefix", Const, 14}, - {"Logger", Type, 0}, - {"Lshortfile", Const, 0}, - {"LstdFlags", Const, 0}, - {"Ltime", Const, 0}, - {"New", Func, 0}, - {"Output", Func, 5}, - {"Panic", Func, 0}, - {"Panicf", Func, 0}, - {"Panicln", Func, 0}, - {"Prefix", Func, 0}, - {"Print", Func, 0}, - {"Printf", Func, 0}, - {"Println", Func, 0}, - {"SetFlags", Func, 0}, - {"SetOutput", Func, 0}, - {"SetPrefix", Func, 0}, - {"Writer", Func, 13}, - }, - "log/slog": { - {"(*JSONHandler).Enabled", Method, 21}, - {"(*JSONHandler).Handle", Method, 21}, - {"(*JSONHandler).WithAttrs", Method, 21}, - {"(*JSONHandler).WithGroup", Method, 21}, - {"(*Level).UnmarshalJSON", Method, 21}, - {"(*Level).UnmarshalText", Method, 21}, - {"(*LevelVar).AppendText", Method, 24}, - {"(*LevelVar).Level", Method, 21}, - {"(*LevelVar).MarshalText", Method, 21}, - {"(*LevelVar).Set", Method, 21}, - {"(*LevelVar).String", Method, 21}, - {"(*LevelVar).UnmarshalText", Method, 21}, - {"(*Logger).Debug", Method, 21}, - {"(*Logger).DebugContext", Method, 21}, - {"(*Logger).Enabled", Method, 21}, - {"(*Logger).Error", Method, 21}, - {"(*Logger).ErrorContext", Method, 21}, - {"(*Logger).Handler", Method, 21}, - {"(*Logger).Info", Method, 21}, - {"(*Logger).InfoContext", Method, 21}, - {"(*Logger).Log", Method, 21}, - {"(*Logger).LogAttrs", Method, 21}, - {"(*Logger).Warn", Method, 21}, - {"(*Logger).WarnContext", Method, 21}, - {"(*Logger).With", Method, 21}, - {"(*Logger).WithGroup", Method, 21}, - {"(*Record).Add", Method, 21}, - {"(*Record).AddAttrs", Method, 21}, - {"(*TextHandler).Enabled", Method, 21}, - {"(*TextHandler).Handle", Method, 21}, - {"(*TextHandler).WithAttrs", Method, 21}, - {"(*TextHandler).WithGroup", Method, 21}, - {"(Attr).Equal", Method, 21}, - {"(Attr).String", Method, 21}, - {"(Kind).String", Method, 21}, - {"(Level).AppendText", Method, 24}, - {"(Level).Level", Method, 21}, - {"(Level).MarshalJSON", Method, 21}, - {"(Level).MarshalText", Method, 21}, - {"(Level).String", Method, 21}, - {"(Record).Attrs", Method, 21}, - {"(Record).Clone", Method, 21}, - {"(Record).NumAttrs", Method, 21}, - {"(Value).Any", Method, 21}, - {"(Value).Bool", Method, 21}, - {"(Value).Duration", Method, 21}, - {"(Value).Equal", Method, 21}, - {"(Value).Float64", Method, 21}, - {"(Value).Group", Method, 21}, - {"(Value).Int64", Method, 21}, - {"(Value).Kind", Method, 21}, - {"(Value).LogValuer", Method, 21}, - {"(Value).Resolve", Method, 21}, - {"(Value).String", Method, 21}, - {"(Value).Time", Method, 21}, - {"(Value).Uint64", Method, 21}, - {"Any", Func, 21}, - {"AnyValue", Func, 21}, - {"Attr", Type, 21}, - {"Attr.Key", Field, 21}, - {"Attr.Value", Field, 21}, - {"Bool", Func, 21}, - {"BoolValue", Func, 21}, - {"Debug", Func, 21}, - {"DebugContext", Func, 21}, - {"Default", Func, 21}, - {"DiscardHandler", Var, 24}, - {"Duration", Func, 21}, - {"DurationValue", Func, 21}, - {"Error", Func, 21}, - {"ErrorContext", Func, 21}, - {"Float64", Func, 21}, - {"Float64Value", Func, 21}, - {"Group", Func, 21}, - {"GroupValue", Func, 21}, - {"Handler", Type, 21}, - {"HandlerOptions", Type, 21}, - {"HandlerOptions.AddSource", Field, 21}, - {"HandlerOptions.Level", Field, 21}, - {"HandlerOptions.ReplaceAttr", Field, 21}, - {"Info", Func, 21}, - {"InfoContext", Func, 21}, - {"Int", Func, 21}, - {"Int64", Func, 21}, - {"Int64Value", Func, 21}, - {"IntValue", Func, 21}, - {"JSONHandler", Type, 21}, - {"Kind", Type, 21}, - {"KindAny", Const, 21}, - {"KindBool", Const, 21}, - {"KindDuration", Const, 21}, - {"KindFloat64", Const, 21}, - {"KindGroup", Const, 21}, - {"KindInt64", Const, 21}, - {"KindLogValuer", Const, 21}, - {"KindString", Const, 21}, - {"KindTime", Const, 21}, - {"KindUint64", Const, 21}, - {"Level", Type, 21}, - {"LevelDebug", Const, 21}, - {"LevelError", Const, 21}, - {"LevelInfo", Const, 21}, - {"LevelKey", Const, 21}, - {"LevelVar", Type, 21}, - {"LevelWarn", Const, 21}, - {"Leveler", Type, 21}, - {"Log", Func, 21}, - {"LogAttrs", Func, 21}, - {"LogValuer", Type, 21}, - {"Logger", Type, 21}, - {"MessageKey", Const, 21}, - {"New", Func, 21}, - {"NewJSONHandler", Func, 21}, - {"NewLogLogger", Func, 21}, - {"NewRecord", Func, 21}, - {"NewTextHandler", Func, 21}, - {"Record", Type, 21}, - {"Record.Level", Field, 21}, - {"Record.Message", Field, 21}, - {"Record.PC", Field, 21}, - {"Record.Time", Field, 21}, - {"SetDefault", Func, 21}, - {"SetLogLoggerLevel", Func, 22}, - {"Source", Type, 21}, - {"Source.File", Field, 21}, - {"Source.Function", Field, 21}, - {"Source.Line", Field, 21}, - {"SourceKey", Const, 21}, - {"String", Func, 21}, - {"StringValue", Func, 21}, - {"TextHandler", Type, 21}, - {"Time", Func, 21}, - {"TimeKey", Const, 21}, - {"TimeValue", Func, 21}, - {"Uint64", Func, 21}, - {"Uint64Value", Func, 21}, - {"Value", Type, 21}, - {"Warn", Func, 21}, - {"WarnContext", Func, 21}, - {"With", Func, 21}, - }, - "log/syslog": { - {"(*Writer).Alert", Method, 0}, - {"(*Writer).Close", Method, 0}, - {"(*Writer).Crit", Method, 0}, - {"(*Writer).Debug", Method, 0}, - {"(*Writer).Emerg", Method, 0}, - {"(*Writer).Err", Method, 0}, - {"(*Writer).Info", Method, 0}, - {"(*Writer).Notice", Method, 0}, - {"(*Writer).Warning", Method, 0}, - {"(*Writer).Write", Method, 0}, - {"Dial", Func, 0}, - {"LOG_ALERT", Const, 0}, - {"LOG_AUTH", Const, 1}, - {"LOG_AUTHPRIV", Const, 1}, - {"LOG_CRIT", Const, 0}, - {"LOG_CRON", Const, 1}, - {"LOG_DAEMON", Const, 1}, - {"LOG_DEBUG", Const, 0}, - {"LOG_EMERG", Const, 0}, - {"LOG_ERR", Const, 0}, - {"LOG_FTP", Const, 1}, - {"LOG_INFO", Const, 0}, - {"LOG_KERN", Const, 1}, - {"LOG_LOCAL0", Const, 1}, - {"LOG_LOCAL1", Const, 1}, - {"LOG_LOCAL2", Const, 1}, - {"LOG_LOCAL3", Const, 1}, - {"LOG_LOCAL4", Const, 1}, - {"LOG_LOCAL5", Const, 1}, - {"LOG_LOCAL6", Const, 1}, - {"LOG_LOCAL7", Const, 1}, - {"LOG_LPR", Const, 1}, - {"LOG_MAIL", Const, 1}, - {"LOG_NEWS", Const, 1}, - {"LOG_NOTICE", Const, 0}, - {"LOG_SYSLOG", Const, 1}, - {"LOG_USER", Const, 1}, - {"LOG_UUCP", Const, 1}, - {"LOG_WARNING", Const, 0}, - {"New", Func, 0}, - {"NewLogger", Func, 0}, - {"Priority", Type, 0}, - {"Writer", Type, 0}, - }, - "maps": { - {"All", Func, 23}, - {"Clone", Func, 21}, - {"Collect", Func, 23}, - {"Copy", Func, 21}, - {"DeleteFunc", Func, 21}, - {"Equal", Func, 21}, - {"EqualFunc", Func, 21}, - {"Insert", Func, 23}, - {"Keys", Func, 23}, - {"Values", Func, 23}, - }, - "math": { - {"Abs", Func, 0}, - {"Acos", Func, 0}, - {"Acosh", Func, 0}, - {"Asin", Func, 0}, - {"Asinh", Func, 0}, - {"Atan", Func, 0}, - {"Atan2", Func, 0}, - {"Atanh", Func, 0}, - {"Cbrt", Func, 0}, - {"Ceil", Func, 0}, - {"Copysign", Func, 0}, - {"Cos", Func, 0}, - {"Cosh", Func, 0}, - {"Dim", Func, 0}, - {"E", Const, 0}, - {"Erf", Func, 0}, - {"Erfc", Func, 0}, - {"Erfcinv", Func, 10}, - {"Erfinv", Func, 10}, - {"Exp", Func, 0}, - {"Exp2", Func, 0}, - {"Expm1", Func, 0}, - {"FMA", Func, 14}, - {"Float32bits", Func, 0}, - {"Float32frombits", Func, 0}, - {"Float64bits", Func, 0}, - {"Float64frombits", Func, 0}, - {"Floor", Func, 0}, - {"Frexp", Func, 0}, - {"Gamma", Func, 0}, - {"Hypot", Func, 0}, - {"Ilogb", Func, 0}, - {"Inf", Func, 0}, - {"IsInf", Func, 0}, - {"IsNaN", Func, 0}, - {"J0", Func, 0}, - {"J1", Func, 0}, - {"Jn", Func, 0}, - {"Ldexp", Func, 0}, - {"Lgamma", Func, 0}, - {"Ln10", Const, 0}, - {"Ln2", Const, 0}, - {"Log", Func, 0}, - {"Log10", Func, 0}, - {"Log10E", Const, 0}, - {"Log1p", Func, 0}, - {"Log2", Func, 0}, - {"Log2E", Const, 0}, - {"Logb", Func, 0}, - {"Max", Func, 0}, - {"MaxFloat32", Const, 0}, - {"MaxFloat64", Const, 0}, - {"MaxInt", Const, 17}, - {"MaxInt16", Const, 0}, - {"MaxInt32", Const, 0}, - {"MaxInt64", Const, 0}, - {"MaxInt8", Const, 0}, - {"MaxUint", Const, 17}, - {"MaxUint16", Const, 0}, - {"MaxUint32", Const, 0}, - {"MaxUint64", Const, 0}, - {"MaxUint8", Const, 0}, - {"Min", Func, 0}, - {"MinInt", Const, 17}, - {"MinInt16", Const, 0}, - {"MinInt32", Const, 0}, - {"MinInt64", Const, 0}, - {"MinInt8", Const, 0}, - {"Mod", Func, 0}, - {"Modf", Func, 0}, - {"NaN", Func, 0}, - {"Nextafter", Func, 0}, - {"Nextafter32", Func, 4}, - {"Phi", Const, 0}, - {"Pi", Const, 0}, - {"Pow", Func, 0}, - {"Pow10", Func, 0}, - {"Remainder", Func, 0}, - {"Round", Func, 10}, - {"RoundToEven", Func, 10}, - {"Signbit", Func, 0}, - {"Sin", Func, 0}, - {"Sincos", Func, 0}, - {"Sinh", Func, 0}, - {"SmallestNonzeroFloat32", Const, 0}, - {"SmallestNonzeroFloat64", Const, 0}, - {"Sqrt", Func, 0}, - {"Sqrt2", Const, 0}, - {"SqrtE", Const, 0}, - {"SqrtPhi", Const, 0}, - {"SqrtPi", Const, 0}, - {"Tan", Func, 0}, - {"Tanh", Func, 0}, - {"Trunc", Func, 0}, - {"Y0", Func, 0}, - {"Y1", Func, 0}, - {"Yn", Func, 0}, - }, - "math/big": { - {"(*Float).Abs", Method, 5}, - {"(*Float).Acc", Method, 5}, - {"(*Float).Add", Method, 5}, - {"(*Float).Append", Method, 5}, - {"(*Float).AppendText", Method, 24}, - {"(*Float).Cmp", Method, 5}, - {"(*Float).Copy", Method, 5}, - {"(*Float).Float32", Method, 5}, - {"(*Float).Float64", Method, 5}, - {"(*Float).Format", Method, 5}, - {"(*Float).GobDecode", Method, 7}, - {"(*Float).GobEncode", Method, 7}, - {"(*Float).Int", Method, 5}, - {"(*Float).Int64", Method, 5}, - {"(*Float).IsInf", Method, 5}, - {"(*Float).IsInt", Method, 5}, - {"(*Float).MantExp", Method, 5}, - {"(*Float).MarshalText", Method, 6}, - {"(*Float).MinPrec", Method, 5}, - {"(*Float).Mode", Method, 5}, - {"(*Float).Mul", Method, 5}, - {"(*Float).Neg", Method, 5}, - {"(*Float).Parse", Method, 5}, - {"(*Float).Prec", Method, 5}, - {"(*Float).Quo", Method, 5}, - {"(*Float).Rat", Method, 5}, - {"(*Float).Scan", Method, 8}, - {"(*Float).Set", Method, 5}, - {"(*Float).SetFloat64", Method, 5}, - {"(*Float).SetInf", Method, 5}, - {"(*Float).SetInt", Method, 5}, - {"(*Float).SetInt64", Method, 5}, - {"(*Float).SetMantExp", Method, 5}, - {"(*Float).SetMode", Method, 5}, - {"(*Float).SetPrec", Method, 5}, - {"(*Float).SetRat", Method, 5}, - {"(*Float).SetString", Method, 5}, - {"(*Float).SetUint64", Method, 5}, - {"(*Float).Sign", Method, 5}, - {"(*Float).Signbit", Method, 5}, - {"(*Float).Sqrt", Method, 10}, - {"(*Float).String", Method, 5}, - {"(*Float).Sub", Method, 5}, - {"(*Float).Text", Method, 5}, - {"(*Float).Uint64", Method, 5}, - {"(*Float).UnmarshalText", Method, 6}, - {"(*Int).Abs", Method, 0}, - {"(*Int).Add", Method, 0}, - {"(*Int).And", Method, 0}, - {"(*Int).AndNot", Method, 0}, - {"(*Int).Append", Method, 6}, - {"(*Int).AppendText", Method, 24}, - {"(*Int).Binomial", Method, 0}, - {"(*Int).Bit", Method, 0}, - {"(*Int).BitLen", Method, 0}, - {"(*Int).Bits", Method, 0}, - {"(*Int).Bytes", Method, 0}, - {"(*Int).Cmp", Method, 0}, - {"(*Int).CmpAbs", Method, 10}, - {"(*Int).Div", Method, 0}, - {"(*Int).DivMod", Method, 0}, - {"(*Int).Exp", Method, 0}, - {"(*Int).FillBytes", Method, 15}, - {"(*Int).Float64", Method, 21}, - {"(*Int).Format", Method, 0}, - {"(*Int).GCD", Method, 0}, - {"(*Int).GobDecode", Method, 0}, - {"(*Int).GobEncode", Method, 0}, - {"(*Int).Int64", Method, 0}, - {"(*Int).IsInt64", Method, 9}, - {"(*Int).IsUint64", Method, 9}, - {"(*Int).Lsh", Method, 0}, - {"(*Int).MarshalJSON", Method, 1}, - {"(*Int).MarshalText", Method, 3}, - {"(*Int).Mod", Method, 0}, - {"(*Int).ModInverse", Method, 0}, - {"(*Int).ModSqrt", Method, 5}, - {"(*Int).Mul", Method, 0}, - {"(*Int).MulRange", Method, 0}, - {"(*Int).Neg", Method, 0}, - {"(*Int).Not", Method, 0}, - {"(*Int).Or", Method, 0}, - {"(*Int).ProbablyPrime", Method, 0}, - {"(*Int).Quo", Method, 0}, - {"(*Int).QuoRem", Method, 0}, - {"(*Int).Rand", Method, 0}, - {"(*Int).Rem", Method, 0}, - {"(*Int).Rsh", Method, 0}, - {"(*Int).Scan", Method, 0}, - {"(*Int).Set", Method, 0}, - {"(*Int).SetBit", Method, 0}, - {"(*Int).SetBits", Method, 0}, - {"(*Int).SetBytes", Method, 0}, - {"(*Int).SetInt64", Method, 0}, - {"(*Int).SetString", Method, 0}, - {"(*Int).SetUint64", Method, 1}, - {"(*Int).Sign", Method, 0}, - {"(*Int).Sqrt", Method, 8}, - {"(*Int).String", Method, 0}, - {"(*Int).Sub", Method, 0}, - {"(*Int).Text", Method, 6}, - {"(*Int).TrailingZeroBits", Method, 13}, - {"(*Int).Uint64", Method, 1}, - {"(*Int).UnmarshalJSON", Method, 1}, - {"(*Int).UnmarshalText", Method, 3}, - {"(*Int).Xor", Method, 0}, - {"(*Rat).Abs", Method, 0}, - {"(*Rat).Add", Method, 0}, - {"(*Rat).AppendText", Method, 24}, - {"(*Rat).Cmp", Method, 0}, - {"(*Rat).Denom", Method, 0}, - {"(*Rat).Float32", Method, 4}, - {"(*Rat).Float64", Method, 1}, - {"(*Rat).FloatPrec", Method, 22}, - {"(*Rat).FloatString", Method, 0}, - {"(*Rat).GobDecode", Method, 0}, - {"(*Rat).GobEncode", Method, 0}, - {"(*Rat).Inv", Method, 0}, - {"(*Rat).IsInt", Method, 0}, - {"(*Rat).MarshalText", Method, 3}, - {"(*Rat).Mul", Method, 0}, - {"(*Rat).Neg", Method, 0}, - {"(*Rat).Num", Method, 0}, - {"(*Rat).Quo", Method, 0}, - {"(*Rat).RatString", Method, 0}, - {"(*Rat).Scan", Method, 0}, - {"(*Rat).Set", Method, 0}, - {"(*Rat).SetFloat64", Method, 1}, - {"(*Rat).SetFrac", Method, 0}, - {"(*Rat).SetFrac64", Method, 0}, - {"(*Rat).SetInt", Method, 0}, - {"(*Rat).SetInt64", Method, 0}, - {"(*Rat).SetString", Method, 0}, - {"(*Rat).SetUint64", Method, 13}, - {"(*Rat).Sign", Method, 0}, - {"(*Rat).String", Method, 0}, - {"(*Rat).Sub", Method, 0}, - {"(*Rat).UnmarshalText", Method, 3}, - {"(Accuracy).String", Method, 5}, - {"(ErrNaN).Error", Method, 5}, - {"(RoundingMode).String", Method, 5}, - {"Above", Const, 5}, - {"Accuracy", Type, 5}, - {"AwayFromZero", Const, 5}, - {"Below", Const, 5}, - {"ErrNaN", Type, 5}, - {"Exact", Const, 5}, - {"Float", Type, 5}, - {"Int", Type, 0}, - {"Jacobi", Func, 5}, - {"MaxBase", Const, 0}, - {"MaxExp", Const, 5}, - {"MaxPrec", Const, 5}, - {"MinExp", Const, 5}, - {"NewFloat", Func, 5}, - {"NewInt", Func, 0}, - {"NewRat", Func, 0}, - {"ParseFloat", Func, 5}, - {"Rat", Type, 0}, - {"RoundingMode", Type, 5}, - {"ToNearestAway", Const, 5}, - {"ToNearestEven", Const, 5}, - {"ToNegativeInf", Const, 5}, - {"ToPositiveInf", Const, 5}, - {"ToZero", Const, 5}, - {"Word", Type, 0}, - }, - "math/bits": { - {"Add", Func, 12}, - {"Add32", Func, 12}, - {"Add64", Func, 12}, - {"Div", Func, 12}, - {"Div32", Func, 12}, - {"Div64", Func, 12}, - {"LeadingZeros", Func, 9}, - {"LeadingZeros16", Func, 9}, - {"LeadingZeros32", Func, 9}, - {"LeadingZeros64", Func, 9}, - {"LeadingZeros8", Func, 9}, - {"Len", Func, 9}, - {"Len16", Func, 9}, - {"Len32", Func, 9}, - {"Len64", Func, 9}, - {"Len8", Func, 9}, - {"Mul", Func, 12}, - {"Mul32", Func, 12}, - {"Mul64", Func, 12}, - {"OnesCount", Func, 9}, - {"OnesCount16", Func, 9}, - {"OnesCount32", Func, 9}, - {"OnesCount64", Func, 9}, - {"OnesCount8", Func, 9}, - {"Rem", Func, 14}, - {"Rem32", Func, 14}, - {"Rem64", Func, 14}, - {"Reverse", Func, 9}, - {"Reverse16", Func, 9}, - {"Reverse32", Func, 9}, - {"Reverse64", Func, 9}, - {"Reverse8", Func, 9}, - {"ReverseBytes", Func, 9}, - {"ReverseBytes16", Func, 9}, - {"ReverseBytes32", Func, 9}, - {"ReverseBytes64", Func, 9}, - {"RotateLeft", Func, 9}, - {"RotateLeft16", Func, 9}, - {"RotateLeft32", Func, 9}, - {"RotateLeft64", Func, 9}, - {"RotateLeft8", Func, 9}, - {"Sub", Func, 12}, - {"Sub32", Func, 12}, - {"Sub64", Func, 12}, - {"TrailingZeros", Func, 9}, - {"TrailingZeros16", Func, 9}, - {"TrailingZeros32", Func, 9}, - {"TrailingZeros64", Func, 9}, - {"TrailingZeros8", Func, 9}, - {"UintSize", Const, 9}, - }, - "math/cmplx": { - {"Abs", Func, 0}, - {"Acos", Func, 0}, - {"Acosh", Func, 0}, - {"Asin", Func, 0}, - {"Asinh", Func, 0}, - {"Atan", Func, 0}, - {"Atanh", Func, 0}, - {"Conj", Func, 0}, - {"Cos", Func, 0}, - {"Cosh", Func, 0}, - {"Cot", Func, 0}, - {"Exp", Func, 0}, - {"Inf", Func, 0}, - {"IsInf", Func, 0}, - {"IsNaN", Func, 0}, - {"Log", Func, 0}, - {"Log10", Func, 0}, - {"NaN", Func, 0}, - {"Phase", Func, 0}, - {"Polar", Func, 0}, - {"Pow", Func, 0}, - {"Rect", Func, 0}, - {"Sin", Func, 0}, - {"Sinh", Func, 0}, - {"Sqrt", Func, 0}, - {"Tan", Func, 0}, - {"Tanh", Func, 0}, - }, - "math/rand": { - {"(*Rand).ExpFloat64", Method, 0}, - {"(*Rand).Float32", Method, 0}, - {"(*Rand).Float64", Method, 0}, - {"(*Rand).Int", Method, 0}, - {"(*Rand).Int31", Method, 0}, - {"(*Rand).Int31n", Method, 0}, - {"(*Rand).Int63", Method, 0}, - {"(*Rand).Int63n", Method, 0}, - {"(*Rand).Intn", Method, 0}, - {"(*Rand).NormFloat64", Method, 0}, - {"(*Rand).Perm", Method, 0}, - {"(*Rand).Read", Method, 6}, - {"(*Rand).Seed", Method, 0}, - {"(*Rand).Shuffle", Method, 10}, - {"(*Rand).Uint32", Method, 0}, - {"(*Rand).Uint64", Method, 8}, - {"(*Zipf).Uint64", Method, 0}, - {"ExpFloat64", Func, 0}, - {"Float32", Func, 0}, - {"Float64", Func, 0}, - {"Int", Func, 0}, - {"Int31", Func, 0}, - {"Int31n", Func, 0}, - {"Int63", Func, 0}, - {"Int63n", Func, 0}, - {"Intn", Func, 0}, - {"New", Func, 0}, - {"NewSource", Func, 0}, - {"NewZipf", Func, 0}, - {"NormFloat64", Func, 0}, - {"Perm", Func, 0}, - {"Rand", Type, 0}, - {"Read", Func, 6}, - {"Seed", Func, 0}, - {"Shuffle", Func, 10}, - {"Source", Type, 0}, - {"Source64", Type, 8}, - {"Uint32", Func, 0}, - {"Uint64", Func, 8}, - {"Zipf", Type, 0}, - }, - "math/rand/v2": { - {"(*ChaCha8).AppendBinary", Method, 24}, - {"(*ChaCha8).MarshalBinary", Method, 22}, - {"(*ChaCha8).Read", Method, 23}, - {"(*ChaCha8).Seed", Method, 22}, - {"(*ChaCha8).Uint64", Method, 22}, - {"(*ChaCha8).UnmarshalBinary", Method, 22}, - {"(*PCG).AppendBinary", Method, 24}, - {"(*PCG).MarshalBinary", Method, 22}, - {"(*PCG).Seed", Method, 22}, - {"(*PCG).Uint64", Method, 22}, - {"(*PCG).UnmarshalBinary", Method, 22}, - {"(*Rand).ExpFloat64", Method, 22}, - {"(*Rand).Float32", Method, 22}, - {"(*Rand).Float64", Method, 22}, - {"(*Rand).Int", Method, 22}, - {"(*Rand).Int32", Method, 22}, - {"(*Rand).Int32N", Method, 22}, - {"(*Rand).Int64", Method, 22}, - {"(*Rand).Int64N", Method, 22}, - {"(*Rand).IntN", Method, 22}, - {"(*Rand).NormFloat64", Method, 22}, - {"(*Rand).Perm", Method, 22}, - {"(*Rand).Shuffle", Method, 22}, - {"(*Rand).Uint", Method, 23}, - {"(*Rand).Uint32", Method, 22}, - {"(*Rand).Uint32N", Method, 22}, - {"(*Rand).Uint64", Method, 22}, - {"(*Rand).Uint64N", Method, 22}, - {"(*Rand).UintN", Method, 22}, - {"(*Zipf).Uint64", Method, 22}, - {"ChaCha8", Type, 22}, - {"ExpFloat64", Func, 22}, - {"Float32", Func, 22}, - {"Float64", Func, 22}, - {"Int", Func, 22}, - {"Int32", Func, 22}, - {"Int32N", Func, 22}, - {"Int64", Func, 22}, - {"Int64N", Func, 22}, - {"IntN", Func, 22}, - {"N", Func, 22}, - {"New", Func, 22}, - {"NewChaCha8", Func, 22}, - {"NewPCG", Func, 22}, - {"NewZipf", Func, 22}, - {"NormFloat64", Func, 22}, - {"PCG", Type, 22}, - {"Perm", Func, 22}, - {"Rand", Type, 22}, - {"Shuffle", Func, 22}, - {"Source", Type, 22}, - {"Uint", Func, 23}, - {"Uint32", Func, 22}, - {"Uint32N", Func, 22}, - {"Uint64", Func, 22}, - {"Uint64N", Func, 22}, - {"UintN", Func, 22}, - {"Zipf", Type, 22}, - }, - "mime": { - {"(*WordDecoder).Decode", Method, 5}, - {"(*WordDecoder).DecodeHeader", Method, 5}, - {"(WordEncoder).Encode", Method, 5}, - {"AddExtensionType", Func, 0}, - {"BEncoding", Const, 5}, - {"ErrInvalidMediaParameter", Var, 9}, - {"ExtensionsByType", Func, 5}, - {"FormatMediaType", Func, 0}, - {"ParseMediaType", Func, 0}, - {"QEncoding", Const, 5}, - {"TypeByExtension", Func, 0}, - {"WordDecoder", Type, 5}, - {"WordDecoder.CharsetReader", Field, 5}, - {"WordEncoder", Type, 5}, - }, - "mime/multipart": { - {"(*FileHeader).Open", Method, 0}, - {"(*Form).RemoveAll", Method, 0}, - {"(*Part).Close", Method, 0}, - {"(*Part).FileName", Method, 0}, - {"(*Part).FormName", Method, 0}, - {"(*Part).Read", Method, 0}, - {"(*Reader).NextPart", Method, 0}, - {"(*Reader).NextRawPart", Method, 14}, - {"(*Reader).ReadForm", Method, 0}, - {"(*Writer).Boundary", Method, 0}, - {"(*Writer).Close", Method, 0}, - {"(*Writer).CreateFormField", Method, 0}, - {"(*Writer).CreateFormFile", Method, 0}, - {"(*Writer).CreatePart", Method, 0}, - {"(*Writer).FormDataContentType", Method, 0}, - {"(*Writer).SetBoundary", Method, 1}, - {"(*Writer).WriteField", Method, 0}, - {"ErrMessageTooLarge", Var, 9}, - {"File", Type, 0}, - {"FileHeader", Type, 0}, - {"FileHeader.Filename", Field, 0}, - {"FileHeader.Header", Field, 0}, - {"FileHeader.Size", Field, 9}, - {"Form", Type, 0}, - {"Form.File", Field, 0}, - {"Form.Value", Field, 0}, - {"NewReader", Func, 0}, - {"NewWriter", Func, 0}, - {"Part", Type, 0}, - {"Part.Header", Field, 0}, - {"Reader", Type, 0}, - {"Writer", Type, 0}, - }, - "mime/quotedprintable": { - {"(*Reader).Read", Method, 5}, - {"(*Writer).Close", Method, 5}, - {"(*Writer).Write", Method, 5}, - {"NewReader", Func, 5}, - {"NewWriter", Func, 5}, - {"Reader", Type, 5}, - {"Writer", Type, 5}, - {"Writer.Binary", Field, 5}, - }, - "net": { - {"(*AddrError).Error", Method, 0}, - {"(*AddrError).Temporary", Method, 0}, - {"(*AddrError).Timeout", Method, 0}, - {"(*Buffers).Read", Method, 8}, - {"(*Buffers).WriteTo", Method, 8}, - {"(*DNSConfigError).Error", Method, 0}, - {"(*DNSConfigError).Temporary", Method, 0}, - {"(*DNSConfigError).Timeout", Method, 0}, - {"(*DNSConfigError).Unwrap", Method, 13}, - {"(*DNSError).Error", Method, 0}, - {"(*DNSError).Temporary", Method, 0}, - {"(*DNSError).Timeout", Method, 0}, - {"(*DNSError).Unwrap", Method, 23}, - {"(*Dialer).Dial", Method, 1}, - {"(*Dialer).DialContext", Method, 7}, - {"(*Dialer).MultipathTCP", Method, 21}, - {"(*Dialer).SetMultipathTCP", Method, 21}, - {"(*IP).UnmarshalText", Method, 2}, - {"(*IPAddr).Network", Method, 0}, - {"(*IPAddr).String", Method, 0}, - {"(*IPConn).Close", Method, 0}, - {"(*IPConn).File", Method, 0}, - {"(*IPConn).LocalAddr", Method, 0}, - {"(*IPConn).Read", Method, 0}, - {"(*IPConn).ReadFrom", Method, 0}, - {"(*IPConn).ReadFromIP", Method, 0}, - {"(*IPConn).ReadMsgIP", Method, 1}, - {"(*IPConn).RemoteAddr", Method, 0}, - {"(*IPConn).SetDeadline", Method, 0}, - {"(*IPConn).SetReadBuffer", Method, 0}, - {"(*IPConn).SetReadDeadline", Method, 0}, - {"(*IPConn).SetWriteBuffer", Method, 0}, - {"(*IPConn).SetWriteDeadline", Method, 0}, - {"(*IPConn).SyscallConn", Method, 9}, - {"(*IPConn).Write", Method, 0}, - {"(*IPConn).WriteMsgIP", Method, 1}, - {"(*IPConn).WriteTo", Method, 0}, - {"(*IPConn).WriteToIP", Method, 0}, - {"(*IPNet).Contains", Method, 0}, - {"(*IPNet).Network", Method, 0}, - {"(*IPNet).String", Method, 0}, - {"(*Interface).Addrs", Method, 0}, - {"(*Interface).MulticastAddrs", Method, 0}, - {"(*ListenConfig).Listen", Method, 11}, - {"(*ListenConfig).ListenPacket", Method, 11}, - {"(*ListenConfig).MultipathTCP", Method, 21}, - {"(*ListenConfig).SetMultipathTCP", Method, 21}, - {"(*OpError).Error", Method, 0}, - {"(*OpError).Temporary", Method, 0}, - {"(*OpError).Timeout", Method, 0}, - {"(*OpError).Unwrap", Method, 13}, - {"(*ParseError).Error", Method, 0}, - {"(*ParseError).Temporary", Method, 17}, - {"(*ParseError).Timeout", Method, 17}, - {"(*Resolver).LookupAddr", Method, 8}, - {"(*Resolver).LookupCNAME", Method, 8}, - {"(*Resolver).LookupHost", Method, 8}, - {"(*Resolver).LookupIP", Method, 15}, - {"(*Resolver).LookupIPAddr", Method, 8}, - {"(*Resolver).LookupMX", Method, 8}, - {"(*Resolver).LookupNS", Method, 8}, - {"(*Resolver).LookupNetIP", Method, 18}, - {"(*Resolver).LookupPort", Method, 8}, - {"(*Resolver).LookupSRV", Method, 8}, - {"(*Resolver).LookupTXT", Method, 8}, - {"(*TCPAddr).AddrPort", Method, 18}, - {"(*TCPAddr).Network", Method, 0}, - {"(*TCPAddr).String", Method, 0}, - {"(*TCPConn).Close", Method, 0}, - {"(*TCPConn).CloseRead", Method, 0}, - {"(*TCPConn).CloseWrite", Method, 0}, - {"(*TCPConn).File", Method, 0}, - {"(*TCPConn).LocalAddr", Method, 0}, - {"(*TCPConn).MultipathTCP", Method, 21}, - {"(*TCPConn).Read", Method, 0}, - {"(*TCPConn).ReadFrom", Method, 0}, - {"(*TCPConn).RemoteAddr", Method, 0}, - {"(*TCPConn).SetDeadline", Method, 0}, - {"(*TCPConn).SetKeepAlive", Method, 0}, - {"(*TCPConn).SetKeepAliveConfig", Method, 23}, - {"(*TCPConn).SetKeepAlivePeriod", Method, 2}, - {"(*TCPConn).SetLinger", Method, 0}, - {"(*TCPConn).SetNoDelay", Method, 0}, - {"(*TCPConn).SetReadBuffer", Method, 0}, - {"(*TCPConn).SetReadDeadline", Method, 0}, - {"(*TCPConn).SetWriteBuffer", Method, 0}, - {"(*TCPConn).SetWriteDeadline", Method, 0}, - {"(*TCPConn).SyscallConn", Method, 9}, - {"(*TCPConn).Write", Method, 0}, - {"(*TCPConn).WriteTo", Method, 22}, - {"(*TCPListener).Accept", Method, 0}, - {"(*TCPListener).AcceptTCP", Method, 0}, - {"(*TCPListener).Addr", Method, 0}, - {"(*TCPListener).Close", Method, 0}, - {"(*TCPListener).File", Method, 0}, - {"(*TCPListener).SetDeadline", Method, 0}, - {"(*TCPListener).SyscallConn", Method, 10}, - {"(*UDPAddr).AddrPort", Method, 18}, - {"(*UDPAddr).Network", Method, 0}, - {"(*UDPAddr).String", Method, 0}, - {"(*UDPConn).Close", Method, 0}, - {"(*UDPConn).File", Method, 0}, - {"(*UDPConn).LocalAddr", Method, 0}, - {"(*UDPConn).Read", Method, 0}, - {"(*UDPConn).ReadFrom", Method, 0}, - {"(*UDPConn).ReadFromUDP", Method, 0}, - {"(*UDPConn).ReadFromUDPAddrPort", Method, 18}, - {"(*UDPConn).ReadMsgUDP", Method, 1}, - {"(*UDPConn).ReadMsgUDPAddrPort", Method, 18}, - {"(*UDPConn).RemoteAddr", Method, 0}, - {"(*UDPConn).SetDeadline", Method, 0}, - {"(*UDPConn).SetReadBuffer", Method, 0}, - {"(*UDPConn).SetReadDeadline", Method, 0}, - {"(*UDPConn).SetWriteBuffer", Method, 0}, - {"(*UDPConn).SetWriteDeadline", Method, 0}, - {"(*UDPConn).SyscallConn", Method, 9}, - {"(*UDPConn).Write", Method, 0}, - {"(*UDPConn).WriteMsgUDP", Method, 1}, - {"(*UDPConn).WriteMsgUDPAddrPort", Method, 18}, - {"(*UDPConn).WriteTo", Method, 0}, - {"(*UDPConn).WriteToUDP", Method, 0}, - {"(*UDPConn).WriteToUDPAddrPort", Method, 18}, - {"(*UnixAddr).Network", Method, 0}, - {"(*UnixAddr).String", Method, 0}, - {"(*UnixConn).Close", Method, 0}, - {"(*UnixConn).CloseRead", Method, 1}, - {"(*UnixConn).CloseWrite", Method, 1}, - {"(*UnixConn).File", Method, 0}, - {"(*UnixConn).LocalAddr", Method, 0}, - {"(*UnixConn).Read", Method, 0}, - {"(*UnixConn).ReadFrom", Method, 0}, - {"(*UnixConn).ReadFromUnix", Method, 0}, - {"(*UnixConn).ReadMsgUnix", Method, 0}, - {"(*UnixConn).RemoteAddr", Method, 0}, - {"(*UnixConn).SetDeadline", Method, 0}, - {"(*UnixConn).SetReadBuffer", Method, 0}, - {"(*UnixConn).SetReadDeadline", Method, 0}, - {"(*UnixConn).SetWriteBuffer", Method, 0}, - {"(*UnixConn).SetWriteDeadline", Method, 0}, - {"(*UnixConn).SyscallConn", Method, 9}, - {"(*UnixConn).Write", Method, 0}, - {"(*UnixConn).WriteMsgUnix", Method, 0}, - {"(*UnixConn).WriteTo", Method, 0}, - {"(*UnixConn).WriteToUnix", Method, 0}, - {"(*UnixListener).Accept", Method, 0}, - {"(*UnixListener).AcceptUnix", Method, 0}, - {"(*UnixListener).Addr", Method, 0}, - {"(*UnixListener).Close", Method, 0}, - {"(*UnixListener).File", Method, 0}, - {"(*UnixListener).SetDeadline", Method, 0}, - {"(*UnixListener).SetUnlinkOnClose", Method, 8}, - {"(*UnixListener).SyscallConn", Method, 10}, - {"(Flags).String", Method, 0}, - {"(HardwareAddr).String", Method, 0}, - {"(IP).AppendText", Method, 24}, - {"(IP).DefaultMask", Method, 0}, - {"(IP).Equal", Method, 0}, - {"(IP).IsGlobalUnicast", Method, 0}, - {"(IP).IsInterfaceLocalMulticast", Method, 0}, - {"(IP).IsLinkLocalMulticast", Method, 0}, - {"(IP).IsLinkLocalUnicast", Method, 0}, - {"(IP).IsLoopback", Method, 0}, - {"(IP).IsMulticast", Method, 0}, - {"(IP).IsPrivate", Method, 17}, - {"(IP).IsUnspecified", Method, 0}, - {"(IP).MarshalText", Method, 2}, - {"(IP).Mask", Method, 0}, - {"(IP).String", Method, 0}, - {"(IP).To16", Method, 0}, - {"(IP).To4", Method, 0}, - {"(IPMask).Size", Method, 0}, - {"(IPMask).String", Method, 0}, - {"(InvalidAddrError).Error", Method, 0}, - {"(InvalidAddrError).Temporary", Method, 0}, - {"(InvalidAddrError).Timeout", Method, 0}, - {"(UnknownNetworkError).Error", Method, 0}, - {"(UnknownNetworkError).Temporary", Method, 0}, - {"(UnknownNetworkError).Timeout", Method, 0}, - {"Addr", Type, 0}, - {"AddrError", Type, 0}, - {"AddrError.Addr", Field, 0}, - {"AddrError.Err", Field, 0}, - {"Buffers", Type, 8}, - {"CIDRMask", Func, 0}, - {"Conn", Type, 0}, - {"DNSConfigError", Type, 0}, - {"DNSConfigError.Err", Field, 0}, - {"DNSError", Type, 0}, - {"DNSError.Err", Field, 0}, - {"DNSError.IsNotFound", Field, 13}, - {"DNSError.IsTemporary", Field, 6}, - {"DNSError.IsTimeout", Field, 0}, - {"DNSError.Name", Field, 0}, - {"DNSError.Server", Field, 0}, - {"DNSError.UnwrapErr", Field, 23}, - {"DefaultResolver", Var, 8}, - {"Dial", Func, 0}, - {"DialIP", Func, 0}, - {"DialTCP", Func, 0}, - {"DialTimeout", Func, 0}, - {"DialUDP", Func, 0}, - {"DialUnix", Func, 0}, - {"Dialer", Type, 1}, - {"Dialer.Cancel", Field, 6}, - {"Dialer.Control", Field, 11}, - {"Dialer.ControlContext", Field, 20}, - {"Dialer.Deadline", Field, 1}, - {"Dialer.DualStack", Field, 2}, - {"Dialer.FallbackDelay", Field, 5}, - {"Dialer.KeepAlive", Field, 3}, - {"Dialer.KeepAliveConfig", Field, 23}, - {"Dialer.LocalAddr", Field, 1}, - {"Dialer.Resolver", Field, 8}, - {"Dialer.Timeout", Field, 1}, - {"ErrClosed", Var, 16}, - {"ErrWriteToConnected", Var, 0}, - {"Error", Type, 0}, - {"FileConn", Func, 0}, - {"FileListener", Func, 0}, - {"FilePacketConn", Func, 0}, - {"FlagBroadcast", Const, 0}, - {"FlagLoopback", Const, 0}, - {"FlagMulticast", Const, 0}, - {"FlagPointToPoint", Const, 0}, - {"FlagRunning", Const, 20}, - {"FlagUp", Const, 0}, - {"Flags", Type, 0}, - {"HardwareAddr", Type, 0}, - {"IP", Type, 0}, - {"IPAddr", Type, 0}, - {"IPAddr.IP", Field, 0}, - {"IPAddr.Zone", Field, 1}, - {"IPConn", Type, 0}, - {"IPMask", Type, 0}, - {"IPNet", Type, 0}, - {"IPNet.IP", Field, 0}, - {"IPNet.Mask", Field, 0}, - {"IPv4", Func, 0}, - {"IPv4Mask", Func, 0}, - {"IPv4allrouter", Var, 0}, - {"IPv4allsys", Var, 0}, - {"IPv4bcast", Var, 0}, - {"IPv4len", Const, 0}, - {"IPv4zero", Var, 0}, - {"IPv6interfacelocalallnodes", Var, 0}, - {"IPv6len", Const, 0}, - {"IPv6linklocalallnodes", Var, 0}, - {"IPv6linklocalallrouters", Var, 0}, - {"IPv6loopback", Var, 0}, - {"IPv6unspecified", Var, 0}, - {"IPv6zero", Var, 0}, - {"Interface", Type, 0}, - {"Interface.Flags", Field, 0}, - {"Interface.HardwareAddr", Field, 0}, - {"Interface.Index", Field, 0}, - {"Interface.MTU", Field, 0}, - {"Interface.Name", Field, 0}, - {"InterfaceAddrs", Func, 0}, - {"InterfaceByIndex", Func, 0}, - {"InterfaceByName", Func, 0}, - {"Interfaces", Func, 0}, - {"InvalidAddrError", Type, 0}, - {"JoinHostPort", Func, 0}, - {"KeepAliveConfig", Type, 23}, - {"KeepAliveConfig.Count", Field, 23}, - {"KeepAliveConfig.Enable", Field, 23}, - {"KeepAliveConfig.Idle", Field, 23}, - {"KeepAliveConfig.Interval", Field, 23}, - {"Listen", Func, 0}, - {"ListenConfig", Type, 11}, - {"ListenConfig.Control", Field, 11}, - {"ListenConfig.KeepAlive", Field, 13}, - {"ListenConfig.KeepAliveConfig", Field, 23}, - {"ListenIP", Func, 0}, - {"ListenMulticastUDP", Func, 0}, - {"ListenPacket", Func, 0}, - {"ListenTCP", Func, 0}, - {"ListenUDP", Func, 0}, - {"ListenUnix", Func, 0}, - {"ListenUnixgram", Func, 0}, - {"Listener", Type, 0}, - {"LookupAddr", Func, 0}, - {"LookupCNAME", Func, 0}, - {"LookupHost", Func, 0}, - {"LookupIP", Func, 0}, - {"LookupMX", Func, 0}, - {"LookupNS", Func, 1}, - {"LookupPort", Func, 0}, - {"LookupSRV", Func, 0}, - {"LookupTXT", Func, 0}, - {"MX", Type, 0}, - {"MX.Host", Field, 0}, - {"MX.Pref", Field, 0}, - {"NS", Type, 1}, - {"NS.Host", Field, 1}, - {"OpError", Type, 0}, - {"OpError.Addr", Field, 0}, - {"OpError.Err", Field, 0}, - {"OpError.Net", Field, 0}, - {"OpError.Op", Field, 0}, - {"OpError.Source", Field, 5}, - {"PacketConn", Type, 0}, - {"ParseCIDR", Func, 0}, - {"ParseError", Type, 0}, - {"ParseError.Text", Field, 0}, - {"ParseError.Type", Field, 0}, - {"ParseIP", Func, 0}, - {"ParseMAC", Func, 0}, - {"Pipe", Func, 0}, - {"ResolveIPAddr", Func, 0}, - {"ResolveTCPAddr", Func, 0}, - {"ResolveUDPAddr", Func, 0}, - {"ResolveUnixAddr", Func, 0}, - {"Resolver", Type, 8}, - {"Resolver.Dial", Field, 9}, - {"Resolver.PreferGo", Field, 8}, - {"Resolver.StrictErrors", Field, 9}, - {"SRV", Type, 0}, - {"SRV.Port", Field, 0}, - {"SRV.Priority", Field, 0}, - {"SRV.Target", Field, 0}, - {"SRV.Weight", Field, 0}, - {"SplitHostPort", Func, 0}, - {"TCPAddr", Type, 0}, - {"TCPAddr.IP", Field, 0}, - {"TCPAddr.Port", Field, 0}, - {"TCPAddr.Zone", Field, 1}, - {"TCPAddrFromAddrPort", Func, 18}, - {"TCPConn", Type, 0}, - {"TCPListener", Type, 0}, - {"UDPAddr", Type, 0}, - {"UDPAddr.IP", Field, 0}, - {"UDPAddr.Port", Field, 0}, - {"UDPAddr.Zone", Field, 1}, - {"UDPAddrFromAddrPort", Func, 18}, - {"UDPConn", Type, 0}, - {"UnixAddr", Type, 0}, - {"UnixAddr.Name", Field, 0}, - {"UnixAddr.Net", Field, 0}, - {"UnixConn", Type, 0}, - {"UnixListener", Type, 0}, - {"UnknownNetworkError", Type, 0}, - }, - "net/http": { - {"(*Client).CloseIdleConnections", Method, 12}, - {"(*Client).Do", Method, 0}, - {"(*Client).Get", Method, 0}, - {"(*Client).Head", Method, 0}, - {"(*Client).Post", Method, 0}, - {"(*Client).PostForm", Method, 0}, - {"(*Cookie).String", Method, 0}, - {"(*Cookie).Valid", Method, 18}, - {"(*MaxBytesError).Error", Method, 19}, - {"(*ProtocolError).Error", Method, 0}, - {"(*ProtocolError).Is", Method, 21}, - {"(*Protocols).SetHTTP1", Method, 24}, - {"(*Protocols).SetHTTP2", Method, 24}, - {"(*Protocols).SetUnencryptedHTTP2", Method, 24}, - {"(*Request).AddCookie", Method, 0}, - {"(*Request).BasicAuth", Method, 4}, - {"(*Request).Clone", Method, 13}, - {"(*Request).Context", Method, 7}, - {"(*Request).Cookie", Method, 0}, - {"(*Request).Cookies", Method, 0}, - {"(*Request).CookiesNamed", Method, 23}, - {"(*Request).FormFile", Method, 0}, - {"(*Request).FormValue", Method, 0}, - {"(*Request).MultipartReader", Method, 0}, - {"(*Request).ParseForm", Method, 0}, - {"(*Request).ParseMultipartForm", Method, 0}, - {"(*Request).PathValue", Method, 22}, - {"(*Request).PostFormValue", Method, 1}, - {"(*Request).ProtoAtLeast", Method, 0}, - {"(*Request).Referer", Method, 0}, - {"(*Request).SetBasicAuth", Method, 0}, - {"(*Request).SetPathValue", Method, 22}, - {"(*Request).UserAgent", Method, 0}, - {"(*Request).WithContext", Method, 7}, - {"(*Request).Write", Method, 0}, - {"(*Request).WriteProxy", Method, 0}, - {"(*Response).Cookies", Method, 0}, - {"(*Response).Location", Method, 0}, - {"(*Response).ProtoAtLeast", Method, 0}, - {"(*Response).Write", Method, 0}, - {"(*ResponseController).EnableFullDuplex", Method, 21}, - {"(*ResponseController).Flush", Method, 20}, - {"(*ResponseController).Hijack", Method, 20}, - {"(*ResponseController).SetReadDeadline", Method, 20}, - {"(*ResponseController).SetWriteDeadline", Method, 20}, - {"(*ServeMux).Handle", Method, 0}, - {"(*ServeMux).HandleFunc", Method, 0}, - {"(*ServeMux).Handler", Method, 1}, - {"(*ServeMux).ServeHTTP", Method, 0}, - {"(*Server).Close", Method, 8}, - {"(*Server).ListenAndServe", Method, 0}, - {"(*Server).ListenAndServeTLS", Method, 0}, - {"(*Server).RegisterOnShutdown", Method, 9}, - {"(*Server).Serve", Method, 0}, - {"(*Server).ServeTLS", Method, 9}, - {"(*Server).SetKeepAlivesEnabled", Method, 3}, - {"(*Server).Shutdown", Method, 8}, - {"(*Transport).CancelRequest", Method, 1}, - {"(*Transport).Clone", Method, 13}, - {"(*Transport).CloseIdleConnections", Method, 0}, - {"(*Transport).RegisterProtocol", Method, 0}, - {"(*Transport).RoundTrip", Method, 0}, - {"(ConnState).String", Method, 3}, - {"(Dir).Open", Method, 0}, - {"(HandlerFunc).ServeHTTP", Method, 0}, - {"(Header).Add", Method, 0}, - {"(Header).Clone", Method, 13}, - {"(Header).Del", Method, 0}, - {"(Header).Get", Method, 0}, - {"(Header).Set", Method, 0}, - {"(Header).Values", Method, 14}, - {"(Header).Write", Method, 0}, - {"(Header).WriteSubset", Method, 0}, - {"(Protocols).HTTP1", Method, 24}, - {"(Protocols).HTTP2", Method, 24}, - {"(Protocols).String", Method, 24}, - {"(Protocols).UnencryptedHTTP2", Method, 24}, - {"AllowQuerySemicolons", Func, 17}, - {"CanonicalHeaderKey", Func, 0}, - {"Client", Type, 0}, - {"Client.CheckRedirect", Field, 0}, - {"Client.Jar", Field, 0}, - {"Client.Timeout", Field, 3}, - {"Client.Transport", Field, 0}, - {"CloseNotifier", Type, 1}, - {"ConnState", Type, 3}, - {"Cookie", Type, 0}, - {"Cookie.Domain", Field, 0}, - {"Cookie.Expires", Field, 0}, - {"Cookie.HttpOnly", Field, 0}, - {"Cookie.MaxAge", Field, 0}, - {"Cookie.Name", Field, 0}, - {"Cookie.Partitioned", Field, 23}, - {"Cookie.Path", Field, 0}, - {"Cookie.Quoted", Field, 23}, - {"Cookie.Raw", Field, 0}, - {"Cookie.RawExpires", Field, 0}, - {"Cookie.SameSite", Field, 11}, - {"Cookie.Secure", Field, 0}, - {"Cookie.Unparsed", Field, 0}, - {"Cookie.Value", Field, 0}, - {"CookieJar", Type, 0}, - {"DefaultClient", Var, 0}, - {"DefaultMaxHeaderBytes", Const, 0}, - {"DefaultMaxIdleConnsPerHost", Const, 0}, - {"DefaultServeMux", Var, 0}, - {"DefaultTransport", Var, 0}, - {"DetectContentType", Func, 0}, - {"Dir", Type, 0}, - {"ErrAbortHandler", Var, 8}, - {"ErrBodyNotAllowed", Var, 0}, - {"ErrBodyReadAfterClose", Var, 0}, - {"ErrContentLength", Var, 0}, - {"ErrHandlerTimeout", Var, 0}, - {"ErrHeaderTooLong", Var, 0}, - {"ErrHijacked", Var, 0}, - {"ErrLineTooLong", Var, 0}, - {"ErrMissingBoundary", Var, 0}, - {"ErrMissingContentLength", Var, 0}, - {"ErrMissingFile", Var, 0}, - {"ErrNoCookie", Var, 0}, - {"ErrNoLocation", Var, 0}, - {"ErrNotMultipart", Var, 0}, - {"ErrNotSupported", Var, 0}, - {"ErrSchemeMismatch", Var, 21}, - {"ErrServerClosed", Var, 8}, - {"ErrShortBody", Var, 0}, - {"ErrSkipAltProtocol", Var, 6}, - {"ErrUnexpectedTrailer", Var, 0}, - {"ErrUseLastResponse", Var, 7}, - {"ErrWriteAfterFlush", Var, 0}, - {"Error", Func, 0}, - {"FS", Func, 16}, - {"File", Type, 0}, - {"FileServer", Func, 0}, - {"FileServerFS", Func, 22}, - {"FileSystem", Type, 0}, - {"Flusher", Type, 0}, - {"Get", Func, 0}, - {"HTTP2Config", Type, 24}, - {"HTTP2Config.CountError", Field, 24}, - {"HTTP2Config.MaxConcurrentStreams", Field, 24}, - {"HTTP2Config.MaxDecoderHeaderTableSize", Field, 24}, - {"HTTP2Config.MaxEncoderHeaderTableSize", Field, 24}, - {"HTTP2Config.MaxReadFrameSize", Field, 24}, - {"HTTP2Config.MaxReceiveBufferPerConnection", Field, 24}, - {"HTTP2Config.MaxReceiveBufferPerStream", Field, 24}, - {"HTTP2Config.PermitProhibitedCipherSuites", Field, 24}, - {"HTTP2Config.PingTimeout", Field, 24}, - {"HTTP2Config.SendPingTimeout", Field, 24}, - {"HTTP2Config.WriteByteTimeout", Field, 24}, - {"Handle", Func, 0}, - {"HandleFunc", Func, 0}, - {"Handler", Type, 0}, - {"HandlerFunc", Type, 0}, - {"Head", Func, 0}, - {"Header", Type, 0}, - {"Hijacker", Type, 0}, - {"ListenAndServe", Func, 0}, - {"ListenAndServeTLS", Func, 0}, - {"LocalAddrContextKey", Var, 7}, - {"MaxBytesError", Type, 19}, - {"MaxBytesError.Limit", Field, 19}, - {"MaxBytesHandler", Func, 18}, - {"MaxBytesReader", Func, 0}, - {"MethodConnect", Const, 6}, - {"MethodDelete", Const, 6}, - {"MethodGet", Const, 6}, - {"MethodHead", Const, 6}, - {"MethodOptions", Const, 6}, - {"MethodPatch", Const, 6}, - {"MethodPost", Const, 6}, - {"MethodPut", Const, 6}, - {"MethodTrace", Const, 6}, - {"NewFileTransport", Func, 0}, - {"NewFileTransportFS", Func, 22}, - {"NewRequest", Func, 0}, - {"NewRequestWithContext", Func, 13}, - {"NewResponseController", Func, 20}, - {"NewServeMux", Func, 0}, - {"NoBody", Var, 8}, - {"NotFound", Func, 0}, - {"NotFoundHandler", Func, 0}, - {"ParseCookie", Func, 23}, - {"ParseHTTPVersion", Func, 0}, - {"ParseSetCookie", Func, 23}, - {"ParseTime", Func, 1}, - {"Post", Func, 0}, - {"PostForm", Func, 0}, - {"ProtocolError", Type, 0}, - {"ProtocolError.ErrorString", Field, 0}, - {"Protocols", Type, 24}, - {"ProxyFromEnvironment", Func, 0}, - {"ProxyURL", Func, 0}, - {"PushOptions", Type, 8}, - {"PushOptions.Header", Field, 8}, - {"PushOptions.Method", Field, 8}, - {"Pusher", Type, 8}, - {"ReadRequest", Func, 0}, - {"ReadResponse", Func, 0}, - {"Redirect", Func, 0}, - {"RedirectHandler", Func, 0}, - {"Request", Type, 0}, - {"Request.Body", Field, 0}, - {"Request.Cancel", Field, 5}, - {"Request.Close", Field, 0}, - {"Request.ContentLength", Field, 0}, - {"Request.Form", Field, 0}, - {"Request.GetBody", Field, 8}, - {"Request.Header", Field, 0}, - {"Request.Host", Field, 0}, - {"Request.Method", Field, 0}, - {"Request.MultipartForm", Field, 0}, - {"Request.Pattern", Field, 23}, - {"Request.PostForm", Field, 1}, - {"Request.Proto", Field, 0}, - {"Request.ProtoMajor", Field, 0}, - {"Request.ProtoMinor", Field, 0}, - {"Request.RemoteAddr", Field, 0}, - {"Request.RequestURI", Field, 0}, - {"Request.Response", Field, 7}, - {"Request.TLS", Field, 0}, - {"Request.Trailer", Field, 0}, - {"Request.TransferEncoding", Field, 0}, - {"Request.URL", Field, 0}, - {"Response", Type, 0}, - {"Response.Body", Field, 0}, - {"Response.Close", Field, 0}, - {"Response.ContentLength", Field, 0}, - {"Response.Header", Field, 0}, - {"Response.Proto", Field, 0}, - {"Response.ProtoMajor", Field, 0}, - {"Response.ProtoMinor", Field, 0}, - {"Response.Request", Field, 0}, - {"Response.Status", Field, 0}, - {"Response.StatusCode", Field, 0}, - {"Response.TLS", Field, 3}, - {"Response.Trailer", Field, 0}, - {"Response.TransferEncoding", Field, 0}, - {"Response.Uncompressed", Field, 7}, - {"ResponseController", Type, 20}, - {"ResponseWriter", Type, 0}, - {"RoundTripper", Type, 0}, - {"SameSite", Type, 11}, - {"SameSiteDefaultMode", Const, 11}, - {"SameSiteLaxMode", Const, 11}, - {"SameSiteNoneMode", Const, 13}, - {"SameSiteStrictMode", Const, 11}, - {"Serve", Func, 0}, - {"ServeContent", Func, 0}, - {"ServeFile", Func, 0}, - {"ServeFileFS", Func, 22}, - {"ServeMux", Type, 0}, - {"ServeTLS", Func, 9}, - {"Server", Type, 0}, - {"Server.Addr", Field, 0}, - {"Server.BaseContext", Field, 13}, - {"Server.ConnContext", Field, 13}, - {"Server.ConnState", Field, 3}, - {"Server.DisableGeneralOptionsHandler", Field, 20}, - {"Server.ErrorLog", Field, 3}, - {"Server.HTTP2", Field, 24}, - {"Server.Handler", Field, 0}, - {"Server.IdleTimeout", Field, 8}, - {"Server.MaxHeaderBytes", Field, 0}, - {"Server.Protocols", Field, 24}, - {"Server.ReadHeaderTimeout", Field, 8}, - {"Server.ReadTimeout", Field, 0}, - {"Server.TLSConfig", Field, 0}, - {"Server.TLSNextProto", Field, 1}, - {"Server.WriteTimeout", Field, 0}, - {"ServerContextKey", Var, 7}, - {"SetCookie", Func, 0}, - {"StateActive", Const, 3}, - {"StateClosed", Const, 3}, - {"StateHijacked", Const, 3}, - {"StateIdle", Const, 3}, - {"StateNew", Const, 3}, - {"StatusAccepted", Const, 0}, - {"StatusAlreadyReported", Const, 7}, - {"StatusBadGateway", Const, 0}, - {"StatusBadRequest", Const, 0}, - {"StatusConflict", Const, 0}, - {"StatusContinue", Const, 0}, - {"StatusCreated", Const, 0}, - {"StatusEarlyHints", Const, 13}, - {"StatusExpectationFailed", Const, 0}, - {"StatusFailedDependency", Const, 7}, - {"StatusForbidden", Const, 0}, - {"StatusFound", Const, 0}, - {"StatusGatewayTimeout", Const, 0}, - {"StatusGone", Const, 0}, - {"StatusHTTPVersionNotSupported", Const, 0}, - {"StatusIMUsed", Const, 7}, - {"StatusInsufficientStorage", Const, 7}, - {"StatusInternalServerError", Const, 0}, - {"StatusLengthRequired", Const, 0}, - {"StatusLocked", Const, 7}, - {"StatusLoopDetected", Const, 7}, - {"StatusMethodNotAllowed", Const, 0}, - {"StatusMisdirectedRequest", Const, 11}, - {"StatusMovedPermanently", Const, 0}, - {"StatusMultiStatus", Const, 7}, - {"StatusMultipleChoices", Const, 0}, - {"StatusNetworkAuthenticationRequired", Const, 6}, - {"StatusNoContent", Const, 0}, - {"StatusNonAuthoritativeInfo", Const, 0}, - {"StatusNotAcceptable", Const, 0}, - {"StatusNotExtended", Const, 7}, - {"StatusNotFound", Const, 0}, - {"StatusNotImplemented", Const, 0}, - {"StatusNotModified", Const, 0}, - {"StatusOK", Const, 0}, - {"StatusPartialContent", Const, 0}, - {"StatusPaymentRequired", Const, 0}, - {"StatusPermanentRedirect", Const, 7}, - {"StatusPreconditionFailed", Const, 0}, - {"StatusPreconditionRequired", Const, 6}, - {"StatusProcessing", Const, 7}, - {"StatusProxyAuthRequired", Const, 0}, - {"StatusRequestEntityTooLarge", Const, 0}, - {"StatusRequestHeaderFieldsTooLarge", Const, 6}, - {"StatusRequestTimeout", Const, 0}, - {"StatusRequestURITooLong", Const, 0}, - {"StatusRequestedRangeNotSatisfiable", Const, 0}, - {"StatusResetContent", Const, 0}, - {"StatusSeeOther", Const, 0}, - {"StatusServiceUnavailable", Const, 0}, - {"StatusSwitchingProtocols", Const, 0}, - {"StatusTeapot", Const, 0}, - {"StatusTemporaryRedirect", Const, 0}, - {"StatusText", Func, 0}, - {"StatusTooEarly", Const, 12}, - {"StatusTooManyRequests", Const, 6}, - {"StatusUnauthorized", Const, 0}, - {"StatusUnavailableForLegalReasons", Const, 6}, - {"StatusUnprocessableEntity", Const, 7}, - {"StatusUnsupportedMediaType", Const, 0}, - {"StatusUpgradeRequired", Const, 7}, - {"StatusUseProxy", Const, 0}, - {"StatusVariantAlsoNegotiates", Const, 7}, - {"StripPrefix", Func, 0}, - {"TimeFormat", Const, 0}, - {"TimeoutHandler", Func, 0}, - {"TrailerPrefix", Const, 8}, - {"Transport", Type, 0}, - {"Transport.Dial", Field, 0}, - {"Transport.DialContext", Field, 7}, - {"Transport.DialTLS", Field, 4}, - {"Transport.DialTLSContext", Field, 14}, - {"Transport.DisableCompression", Field, 0}, - {"Transport.DisableKeepAlives", Field, 0}, - {"Transport.ExpectContinueTimeout", Field, 6}, - {"Transport.ForceAttemptHTTP2", Field, 13}, - {"Transport.GetProxyConnectHeader", Field, 16}, - {"Transport.HTTP2", Field, 24}, - {"Transport.IdleConnTimeout", Field, 7}, - {"Transport.MaxConnsPerHost", Field, 11}, - {"Transport.MaxIdleConns", Field, 7}, - {"Transport.MaxIdleConnsPerHost", Field, 0}, - {"Transport.MaxResponseHeaderBytes", Field, 7}, - {"Transport.OnProxyConnectResponse", Field, 20}, - {"Transport.Protocols", Field, 24}, - {"Transport.Proxy", Field, 0}, - {"Transport.ProxyConnectHeader", Field, 8}, - {"Transport.ReadBufferSize", Field, 13}, - {"Transport.ResponseHeaderTimeout", Field, 1}, - {"Transport.TLSClientConfig", Field, 0}, - {"Transport.TLSHandshakeTimeout", Field, 3}, - {"Transport.TLSNextProto", Field, 6}, - {"Transport.WriteBufferSize", Field, 13}, - }, - "net/http/cgi": { - {"(*Handler).ServeHTTP", Method, 0}, - {"Handler", Type, 0}, - {"Handler.Args", Field, 0}, - {"Handler.Dir", Field, 0}, - {"Handler.Env", Field, 0}, - {"Handler.InheritEnv", Field, 0}, - {"Handler.Logger", Field, 0}, - {"Handler.Path", Field, 0}, - {"Handler.PathLocationHandler", Field, 0}, - {"Handler.Root", Field, 0}, - {"Handler.Stderr", Field, 7}, - {"Request", Func, 0}, - {"RequestFromMap", Func, 0}, - {"Serve", Func, 0}, - }, - "net/http/cookiejar": { - {"(*Jar).Cookies", Method, 1}, - {"(*Jar).SetCookies", Method, 1}, - {"Jar", Type, 1}, - {"New", Func, 1}, - {"Options", Type, 1}, - {"Options.PublicSuffixList", Field, 1}, - {"PublicSuffixList", Type, 1}, - }, - "net/http/fcgi": { - {"ErrConnClosed", Var, 5}, - {"ErrRequestAborted", Var, 5}, - {"ProcessEnv", Func, 9}, - {"Serve", Func, 0}, - }, - "net/http/httptest": { - {"(*ResponseRecorder).Flush", Method, 0}, - {"(*ResponseRecorder).Header", Method, 0}, - {"(*ResponseRecorder).Result", Method, 7}, - {"(*ResponseRecorder).Write", Method, 0}, - {"(*ResponseRecorder).WriteHeader", Method, 0}, - {"(*ResponseRecorder).WriteString", Method, 6}, - {"(*Server).Certificate", Method, 9}, - {"(*Server).Client", Method, 9}, - {"(*Server).Close", Method, 0}, - {"(*Server).CloseClientConnections", Method, 0}, - {"(*Server).Start", Method, 0}, - {"(*Server).StartTLS", Method, 0}, - {"DefaultRemoteAddr", Const, 0}, - {"NewRecorder", Func, 0}, - {"NewRequest", Func, 7}, - {"NewRequestWithContext", Func, 23}, - {"NewServer", Func, 0}, - {"NewTLSServer", Func, 0}, - {"NewUnstartedServer", Func, 0}, - {"ResponseRecorder", Type, 0}, - {"ResponseRecorder.Body", Field, 0}, - {"ResponseRecorder.Code", Field, 0}, - {"ResponseRecorder.Flushed", Field, 0}, - {"ResponseRecorder.HeaderMap", Field, 0}, - {"Server", Type, 0}, - {"Server.Config", Field, 0}, - {"Server.EnableHTTP2", Field, 14}, - {"Server.Listener", Field, 0}, - {"Server.TLS", Field, 0}, - {"Server.URL", Field, 0}, - }, - "net/http/httptrace": { - {"ClientTrace", Type, 7}, - {"ClientTrace.ConnectDone", Field, 7}, - {"ClientTrace.ConnectStart", Field, 7}, - {"ClientTrace.DNSDone", Field, 7}, - {"ClientTrace.DNSStart", Field, 7}, - {"ClientTrace.GetConn", Field, 7}, - {"ClientTrace.Got100Continue", Field, 7}, - {"ClientTrace.Got1xxResponse", Field, 11}, - {"ClientTrace.GotConn", Field, 7}, - {"ClientTrace.GotFirstResponseByte", Field, 7}, - {"ClientTrace.PutIdleConn", Field, 7}, - {"ClientTrace.TLSHandshakeDone", Field, 8}, - {"ClientTrace.TLSHandshakeStart", Field, 8}, - {"ClientTrace.Wait100Continue", Field, 7}, - {"ClientTrace.WroteHeaderField", Field, 11}, - {"ClientTrace.WroteHeaders", Field, 7}, - {"ClientTrace.WroteRequest", Field, 7}, - {"ContextClientTrace", Func, 7}, - {"DNSDoneInfo", Type, 7}, - {"DNSDoneInfo.Addrs", Field, 7}, - {"DNSDoneInfo.Coalesced", Field, 7}, - {"DNSDoneInfo.Err", Field, 7}, - {"DNSStartInfo", Type, 7}, - {"DNSStartInfo.Host", Field, 7}, - {"GotConnInfo", Type, 7}, - {"GotConnInfo.Conn", Field, 7}, - {"GotConnInfo.IdleTime", Field, 7}, - {"GotConnInfo.Reused", Field, 7}, - {"GotConnInfo.WasIdle", Field, 7}, - {"WithClientTrace", Func, 7}, - {"WroteRequestInfo", Type, 7}, - {"WroteRequestInfo.Err", Field, 7}, - }, - "net/http/httputil": { - {"(*ClientConn).Close", Method, 0}, - {"(*ClientConn).Do", Method, 0}, - {"(*ClientConn).Hijack", Method, 0}, - {"(*ClientConn).Pending", Method, 0}, - {"(*ClientConn).Read", Method, 0}, - {"(*ClientConn).Write", Method, 0}, - {"(*ProxyRequest).SetURL", Method, 20}, - {"(*ProxyRequest).SetXForwarded", Method, 20}, - {"(*ReverseProxy).ServeHTTP", Method, 0}, - {"(*ServerConn).Close", Method, 0}, - {"(*ServerConn).Hijack", Method, 0}, - {"(*ServerConn).Pending", Method, 0}, - {"(*ServerConn).Read", Method, 0}, - {"(*ServerConn).Write", Method, 0}, - {"BufferPool", Type, 6}, - {"ClientConn", Type, 0}, - {"DumpRequest", Func, 0}, - {"DumpRequestOut", Func, 0}, - {"DumpResponse", Func, 0}, - {"ErrClosed", Var, 0}, - {"ErrLineTooLong", Var, 0}, - {"ErrPersistEOF", Var, 0}, - {"ErrPipeline", Var, 0}, - {"NewChunkedReader", Func, 0}, - {"NewChunkedWriter", Func, 0}, - {"NewClientConn", Func, 0}, - {"NewProxyClientConn", Func, 0}, - {"NewServerConn", Func, 0}, - {"NewSingleHostReverseProxy", Func, 0}, - {"ProxyRequest", Type, 20}, - {"ProxyRequest.In", Field, 20}, - {"ProxyRequest.Out", Field, 20}, - {"ReverseProxy", Type, 0}, - {"ReverseProxy.BufferPool", Field, 6}, - {"ReverseProxy.Director", Field, 0}, - {"ReverseProxy.ErrorHandler", Field, 11}, - {"ReverseProxy.ErrorLog", Field, 4}, - {"ReverseProxy.FlushInterval", Field, 0}, - {"ReverseProxy.ModifyResponse", Field, 8}, - {"ReverseProxy.Rewrite", Field, 20}, - {"ReverseProxy.Transport", Field, 0}, - {"ServerConn", Type, 0}, - }, - "net/http/pprof": { - {"Cmdline", Func, 0}, - {"Handler", Func, 0}, - {"Index", Func, 0}, - {"Profile", Func, 0}, - {"Symbol", Func, 0}, - {"Trace", Func, 5}, - }, - "net/mail": { - {"(*Address).String", Method, 0}, - {"(*AddressParser).Parse", Method, 5}, - {"(*AddressParser).ParseList", Method, 5}, - {"(Header).AddressList", Method, 0}, - {"(Header).Date", Method, 0}, - {"(Header).Get", Method, 0}, - {"Address", Type, 0}, - {"Address.Address", Field, 0}, - {"Address.Name", Field, 0}, - {"AddressParser", Type, 5}, - {"AddressParser.WordDecoder", Field, 5}, - {"ErrHeaderNotPresent", Var, 0}, - {"Header", Type, 0}, - {"Message", Type, 0}, - {"Message.Body", Field, 0}, - {"Message.Header", Field, 0}, - {"ParseAddress", Func, 1}, - {"ParseAddressList", Func, 1}, - {"ParseDate", Func, 8}, - {"ReadMessage", Func, 0}, - }, - "net/netip": { - {"(*Addr).UnmarshalBinary", Method, 18}, - {"(*Addr).UnmarshalText", Method, 18}, - {"(*AddrPort).UnmarshalBinary", Method, 18}, - {"(*AddrPort).UnmarshalText", Method, 18}, - {"(*Prefix).UnmarshalBinary", Method, 18}, - {"(*Prefix).UnmarshalText", Method, 18}, - {"(Addr).AppendBinary", Method, 24}, - {"(Addr).AppendText", Method, 24}, - {"(Addr).AppendTo", Method, 18}, - {"(Addr).As16", Method, 18}, - {"(Addr).As4", Method, 18}, - {"(Addr).AsSlice", Method, 18}, - {"(Addr).BitLen", Method, 18}, - {"(Addr).Compare", Method, 18}, - {"(Addr).Is4", Method, 18}, - {"(Addr).Is4In6", Method, 18}, - {"(Addr).Is6", Method, 18}, - {"(Addr).IsGlobalUnicast", Method, 18}, - {"(Addr).IsInterfaceLocalMulticast", Method, 18}, - {"(Addr).IsLinkLocalMulticast", Method, 18}, - {"(Addr).IsLinkLocalUnicast", Method, 18}, - {"(Addr).IsLoopback", Method, 18}, - {"(Addr).IsMulticast", Method, 18}, - {"(Addr).IsPrivate", Method, 18}, - {"(Addr).IsUnspecified", Method, 18}, - {"(Addr).IsValid", Method, 18}, - {"(Addr).Less", Method, 18}, - {"(Addr).MarshalBinary", Method, 18}, - {"(Addr).MarshalText", Method, 18}, - {"(Addr).Next", Method, 18}, - {"(Addr).Prefix", Method, 18}, - {"(Addr).Prev", Method, 18}, - {"(Addr).String", Method, 18}, - {"(Addr).StringExpanded", Method, 18}, - {"(Addr).Unmap", Method, 18}, - {"(Addr).WithZone", Method, 18}, - {"(Addr).Zone", Method, 18}, - {"(AddrPort).Addr", Method, 18}, - {"(AddrPort).AppendBinary", Method, 24}, - {"(AddrPort).AppendText", Method, 24}, - {"(AddrPort).AppendTo", Method, 18}, - {"(AddrPort).Compare", Method, 22}, - {"(AddrPort).IsValid", Method, 18}, - {"(AddrPort).MarshalBinary", Method, 18}, - {"(AddrPort).MarshalText", Method, 18}, - {"(AddrPort).Port", Method, 18}, - {"(AddrPort).String", Method, 18}, - {"(Prefix).Addr", Method, 18}, - {"(Prefix).AppendBinary", Method, 24}, - {"(Prefix).AppendText", Method, 24}, - {"(Prefix).AppendTo", Method, 18}, - {"(Prefix).Bits", Method, 18}, - {"(Prefix).Contains", Method, 18}, - {"(Prefix).IsSingleIP", Method, 18}, - {"(Prefix).IsValid", Method, 18}, - {"(Prefix).MarshalBinary", Method, 18}, - {"(Prefix).MarshalText", Method, 18}, - {"(Prefix).Masked", Method, 18}, - {"(Prefix).Overlaps", Method, 18}, - {"(Prefix).String", Method, 18}, - {"Addr", Type, 18}, - {"AddrFrom16", Func, 18}, - {"AddrFrom4", Func, 18}, - {"AddrFromSlice", Func, 18}, - {"AddrPort", Type, 18}, - {"AddrPortFrom", Func, 18}, - {"IPv4Unspecified", Func, 18}, - {"IPv6LinkLocalAllNodes", Func, 18}, - {"IPv6LinkLocalAllRouters", Func, 20}, - {"IPv6Loopback", Func, 20}, - {"IPv6Unspecified", Func, 18}, - {"MustParseAddr", Func, 18}, - {"MustParseAddrPort", Func, 18}, - {"MustParsePrefix", Func, 18}, - {"ParseAddr", Func, 18}, - {"ParseAddrPort", Func, 18}, - {"ParsePrefix", Func, 18}, - {"Prefix", Type, 18}, - {"PrefixFrom", Func, 18}, - }, - "net/rpc": { - {"(*Client).Call", Method, 0}, - {"(*Client).Close", Method, 0}, - {"(*Client).Go", Method, 0}, - {"(*Server).Accept", Method, 0}, - {"(*Server).HandleHTTP", Method, 0}, - {"(*Server).Register", Method, 0}, - {"(*Server).RegisterName", Method, 0}, - {"(*Server).ServeCodec", Method, 0}, - {"(*Server).ServeConn", Method, 0}, - {"(*Server).ServeHTTP", Method, 0}, - {"(*Server).ServeRequest", Method, 0}, - {"(ServerError).Error", Method, 0}, - {"Accept", Func, 0}, - {"Call", Type, 0}, - {"Call.Args", Field, 0}, - {"Call.Done", Field, 0}, - {"Call.Error", Field, 0}, - {"Call.Reply", Field, 0}, - {"Call.ServiceMethod", Field, 0}, - {"Client", Type, 0}, - {"ClientCodec", Type, 0}, - {"DefaultDebugPath", Const, 0}, - {"DefaultRPCPath", Const, 0}, - {"DefaultServer", Var, 0}, - {"Dial", Func, 0}, - {"DialHTTP", Func, 0}, - {"DialHTTPPath", Func, 0}, - {"ErrShutdown", Var, 0}, - {"HandleHTTP", Func, 0}, - {"NewClient", Func, 0}, - {"NewClientWithCodec", Func, 0}, - {"NewServer", Func, 0}, - {"Register", Func, 0}, - {"RegisterName", Func, 0}, - {"Request", Type, 0}, - {"Request.Seq", Field, 0}, - {"Request.ServiceMethod", Field, 0}, - {"Response", Type, 0}, - {"Response.Error", Field, 0}, - {"Response.Seq", Field, 0}, - {"Response.ServiceMethod", Field, 0}, - {"ServeCodec", Func, 0}, - {"ServeConn", Func, 0}, - {"ServeRequest", Func, 0}, - {"Server", Type, 0}, - {"ServerCodec", Type, 0}, - {"ServerError", Type, 0}, - }, - "net/rpc/jsonrpc": { - {"Dial", Func, 0}, - {"NewClient", Func, 0}, - {"NewClientCodec", Func, 0}, - {"NewServerCodec", Func, 0}, - {"ServeConn", Func, 0}, - }, - "net/smtp": { - {"(*Client).Auth", Method, 0}, - {"(*Client).Close", Method, 2}, - {"(*Client).Data", Method, 0}, - {"(*Client).Extension", Method, 0}, - {"(*Client).Hello", Method, 1}, - {"(*Client).Mail", Method, 0}, - {"(*Client).Noop", Method, 10}, - {"(*Client).Quit", Method, 0}, - {"(*Client).Rcpt", Method, 0}, - {"(*Client).Reset", Method, 0}, - {"(*Client).StartTLS", Method, 0}, - {"(*Client).TLSConnectionState", Method, 5}, - {"(*Client).Verify", Method, 0}, - {"Auth", Type, 0}, - {"CRAMMD5Auth", Func, 0}, - {"Client", Type, 0}, - {"Client.Text", Field, 0}, - {"Dial", Func, 0}, - {"NewClient", Func, 0}, - {"PlainAuth", Func, 0}, - {"SendMail", Func, 0}, - {"ServerInfo", Type, 0}, - {"ServerInfo.Auth", Field, 0}, - {"ServerInfo.Name", Field, 0}, - {"ServerInfo.TLS", Field, 0}, - }, - "net/textproto": { - {"(*Conn).Close", Method, 0}, - {"(*Conn).Cmd", Method, 0}, - {"(*Conn).DotReader", Method, 0}, - {"(*Conn).DotWriter", Method, 0}, - {"(*Conn).EndRequest", Method, 0}, - {"(*Conn).EndResponse", Method, 0}, - {"(*Conn).Next", Method, 0}, - {"(*Conn).PrintfLine", Method, 0}, - {"(*Conn).ReadCodeLine", Method, 0}, - {"(*Conn).ReadContinuedLine", Method, 0}, - {"(*Conn).ReadContinuedLineBytes", Method, 0}, - {"(*Conn).ReadDotBytes", Method, 0}, - {"(*Conn).ReadDotLines", Method, 0}, - {"(*Conn).ReadLine", Method, 0}, - {"(*Conn).ReadLineBytes", Method, 0}, - {"(*Conn).ReadMIMEHeader", Method, 0}, - {"(*Conn).ReadResponse", Method, 0}, - {"(*Conn).StartRequest", Method, 0}, - {"(*Conn).StartResponse", Method, 0}, - {"(*Error).Error", Method, 0}, - {"(*Pipeline).EndRequest", Method, 0}, - {"(*Pipeline).EndResponse", Method, 0}, - {"(*Pipeline).Next", Method, 0}, - {"(*Pipeline).StartRequest", Method, 0}, - {"(*Pipeline).StartResponse", Method, 0}, - {"(*Reader).DotReader", Method, 0}, - {"(*Reader).ReadCodeLine", Method, 0}, - {"(*Reader).ReadContinuedLine", Method, 0}, - {"(*Reader).ReadContinuedLineBytes", Method, 0}, - {"(*Reader).ReadDotBytes", Method, 0}, - {"(*Reader).ReadDotLines", Method, 0}, - {"(*Reader).ReadLine", Method, 0}, - {"(*Reader).ReadLineBytes", Method, 0}, - {"(*Reader).ReadMIMEHeader", Method, 0}, - {"(*Reader).ReadResponse", Method, 0}, - {"(*Writer).DotWriter", Method, 0}, - {"(*Writer).PrintfLine", Method, 0}, - {"(MIMEHeader).Add", Method, 0}, - {"(MIMEHeader).Del", Method, 0}, - {"(MIMEHeader).Get", Method, 0}, - {"(MIMEHeader).Set", Method, 0}, - {"(MIMEHeader).Values", Method, 14}, - {"(ProtocolError).Error", Method, 0}, - {"CanonicalMIMEHeaderKey", Func, 0}, - {"Conn", Type, 0}, - {"Conn.Pipeline", Field, 0}, - {"Conn.Reader", Field, 0}, - {"Conn.Writer", Field, 0}, - {"Dial", Func, 0}, - {"Error", Type, 0}, - {"Error.Code", Field, 0}, - {"Error.Msg", Field, 0}, - {"MIMEHeader", Type, 0}, - {"NewConn", Func, 0}, - {"NewReader", Func, 0}, - {"NewWriter", Func, 0}, - {"Pipeline", Type, 0}, - {"ProtocolError", Type, 0}, - {"Reader", Type, 0}, - {"Reader.R", Field, 0}, - {"TrimBytes", Func, 1}, - {"TrimString", Func, 1}, - {"Writer", Type, 0}, - {"Writer.W", Field, 0}, - }, - "net/url": { - {"(*Error).Error", Method, 0}, - {"(*Error).Temporary", Method, 6}, - {"(*Error).Timeout", Method, 6}, - {"(*Error).Unwrap", Method, 13}, - {"(*URL).AppendBinary", Method, 24}, - {"(*URL).EscapedFragment", Method, 15}, - {"(*URL).EscapedPath", Method, 5}, - {"(*URL).Hostname", Method, 8}, - {"(*URL).IsAbs", Method, 0}, - {"(*URL).JoinPath", Method, 19}, - {"(*URL).MarshalBinary", Method, 8}, - {"(*URL).Parse", Method, 0}, - {"(*URL).Port", Method, 8}, - {"(*URL).Query", Method, 0}, - {"(*URL).Redacted", Method, 15}, - {"(*URL).RequestURI", Method, 0}, - {"(*URL).ResolveReference", Method, 0}, - {"(*URL).String", Method, 0}, - {"(*URL).UnmarshalBinary", Method, 8}, - {"(*Userinfo).Password", Method, 0}, - {"(*Userinfo).String", Method, 0}, - {"(*Userinfo).Username", Method, 0}, - {"(EscapeError).Error", Method, 0}, - {"(InvalidHostError).Error", Method, 6}, - {"(Values).Add", Method, 0}, - {"(Values).Del", Method, 0}, - {"(Values).Encode", Method, 0}, - {"(Values).Get", Method, 0}, - {"(Values).Has", Method, 17}, - {"(Values).Set", Method, 0}, - {"Error", Type, 0}, - {"Error.Err", Field, 0}, - {"Error.Op", Field, 0}, - {"Error.URL", Field, 0}, - {"EscapeError", Type, 0}, - {"InvalidHostError", Type, 6}, - {"JoinPath", Func, 19}, - {"Parse", Func, 0}, - {"ParseQuery", Func, 0}, - {"ParseRequestURI", Func, 0}, - {"PathEscape", Func, 8}, - {"PathUnescape", Func, 8}, - {"QueryEscape", Func, 0}, - {"QueryUnescape", Func, 0}, - {"URL", Type, 0}, - {"URL.ForceQuery", Field, 7}, - {"URL.Fragment", Field, 0}, - {"URL.Host", Field, 0}, - {"URL.OmitHost", Field, 19}, - {"URL.Opaque", Field, 0}, - {"URL.Path", Field, 0}, - {"URL.RawFragment", Field, 15}, - {"URL.RawPath", Field, 5}, - {"URL.RawQuery", Field, 0}, - {"URL.Scheme", Field, 0}, - {"URL.User", Field, 0}, - {"User", Func, 0}, - {"UserPassword", Func, 0}, - {"Userinfo", Type, 0}, - {"Values", Type, 0}, - }, - "os": { - {"(*File).Chdir", Method, 0}, - {"(*File).Chmod", Method, 0}, - {"(*File).Chown", Method, 0}, - {"(*File).Close", Method, 0}, - {"(*File).Fd", Method, 0}, - {"(*File).Name", Method, 0}, - {"(*File).Read", Method, 0}, - {"(*File).ReadAt", Method, 0}, - {"(*File).ReadDir", Method, 16}, - {"(*File).ReadFrom", Method, 15}, - {"(*File).Readdir", Method, 0}, - {"(*File).Readdirnames", Method, 0}, - {"(*File).Seek", Method, 0}, - {"(*File).SetDeadline", Method, 10}, - {"(*File).SetReadDeadline", Method, 10}, - {"(*File).SetWriteDeadline", Method, 10}, - {"(*File).Stat", Method, 0}, - {"(*File).Sync", Method, 0}, - {"(*File).SyscallConn", Method, 12}, - {"(*File).Truncate", Method, 0}, - {"(*File).Write", Method, 0}, - {"(*File).WriteAt", Method, 0}, - {"(*File).WriteString", Method, 0}, - {"(*File).WriteTo", Method, 22}, - {"(*LinkError).Error", Method, 0}, - {"(*LinkError).Unwrap", Method, 13}, - {"(*PathError).Error", Method, 0}, - {"(*PathError).Timeout", Method, 10}, - {"(*PathError).Unwrap", Method, 13}, - {"(*Process).Kill", Method, 0}, - {"(*Process).Release", Method, 0}, - {"(*Process).Signal", Method, 0}, - {"(*Process).Wait", Method, 0}, - {"(*ProcessState).ExitCode", Method, 12}, - {"(*ProcessState).Exited", Method, 0}, - {"(*ProcessState).Pid", Method, 0}, - {"(*ProcessState).String", Method, 0}, - {"(*ProcessState).Success", Method, 0}, - {"(*ProcessState).Sys", Method, 0}, - {"(*ProcessState).SysUsage", Method, 0}, - {"(*ProcessState).SystemTime", Method, 0}, - {"(*ProcessState).UserTime", Method, 0}, - {"(*Root).Close", Method, 24}, - {"(*Root).Create", Method, 24}, - {"(*Root).FS", Method, 24}, - {"(*Root).Lstat", Method, 24}, - {"(*Root).Mkdir", Method, 24}, - {"(*Root).Name", Method, 24}, - {"(*Root).Open", Method, 24}, - {"(*Root).OpenFile", Method, 24}, - {"(*Root).OpenRoot", Method, 24}, - {"(*Root).Remove", Method, 24}, - {"(*Root).Stat", Method, 24}, - {"(*SyscallError).Error", Method, 0}, - {"(*SyscallError).Timeout", Method, 10}, - {"(*SyscallError).Unwrap", Method, 13}, - {"(FileMode).IsDir", Method, 0}, - {"(FileMode).IsRegular", Method, 1}, - {"(FileMode).Perm", Method, 0}, - {"(FileMode).String", Method, 0}, - {"Args", Var, 0}, - {"Chdir", Func, 0}, - {"Chmod", Func, 0}, - {"Chown", Func, 0}, - {"Chtimes", Func, 0}, - {"Clearenv", Func, 0}, - {"CopyFS", Func, 23}, - {"Create", Func, 0}, - {"CreateTemp", Func, 16}, - {"DevNull", Const, 0}, - {"DirEntry", Type, 16}, - {"DirFS", Func, 16}, - {"Environ", Func, 0}, - {"ErrClosed", Var, 8}, - {"ErrDeadlineExceeded", Var, 15}, - {"ErrExist", Var, 0}, - {"ErrInvalid", Var, 0}, - {"ErrNoDeadline", Var, 10}, - {"ErrNotExist", Var, 0}, - {"ErrPermission", Var, 0}, - {"ErrProcessDone", Var, 16}, - {"Executable", Func, 8}, - {"Exit", Func, 0}, - {"Expand", Func, 0}, - {"ExpandEnv", Func, 0}, - {"File", Type, 0}, - {"FileInfo", Type, 0}, - {"FileMode", Type, 0}, - {"FindProcess", Func, 0}, - {"Getegid", Func, 0}, - {"Getenv", Func, 0}, - {"Geteuid", Func, 0}, - {"Getgid", Func, 0}, - {"Getgroups", Func, 0}, - {"Getpagesize", Func, 0}, - {"Getpid", Func, 0}, - {"Getppid", Func, 0}, - {"Getuid", Func, 0}, - {"Getwd", Func, 0}, - {"Hostname", Func, 0}, - {"Interrupt", Var, 0}, - {"IsExist", Func, 0}, - {"IsNotExist", Func, 0}, - {"IsPathSeparator", Func, 0}, - {"IsPermission", Func, 0}, - {"IsTimeout", Func, 10}, - {"Kill", Var, 0}, - {"Lchown", Func, 0}, - {"Link", Func, 0}, - {"LinkError", Type, 0}, - {"LinkError.Err", Field, 0}, - {"LinkError.New", Field, 0}, - {"LinkError.Old", Field, 0}, - {"LinkError.Op", Field, 0}, - {"LookupEnv", Func, 5}, - {"Lstat", Func, 0}, - {"Mkdir", Func, 0}, - {"MkdirAll", Func, 0}, - {"MkdirTemp", Func, 16}, - {"ModeAppend", Const, 0}, - {"ModeCharDevice", Const, 0}, - {"ModeDevice", Const, 0}, - {"ModeDir", Const, 0}, - {"ModeExclusive", Const, 0}, - {"ModeIrregular", Const, 11}, - {"ModeNamedPipe", Const, 0}, - {"ModePerm", Const, 0}, - {"ModeSetgid", Const, 0}, - {"ModeSetuid", Const, 0}, - {"ModeSocket", Const, 0}, - {"ModeSticky", Const, 0}, - {"ModeSymlink", Const, 0}, - {"ModeTemporary", Const, 0}, - {"ModeType", Const, 0}, - {"NewFile", Func, 0}, - {"NewSyscallError", Func, 0}, - {"O_APPEND", Const, 0}, - {"O_CREATE", Const, 0}, - {"O_EXCL", Const, 0}, - {"O_RDONLY", Const, 0}, - {"O_RDWR", Const, 0}, - {"O_SYNC", Const, 0}, - {"O_TRUNC", Const, 0}, - {"O_WRONLY", Const, 0}, - {"Open", Func, 0}, - {"OpenFile", Func, 0}, - {"OpenInRoot", Func, 24}, - {"OpenRoot", Func, 24}, - {"PathError", Type, 0}, - {"PathError.Err", Field, 0}, - {"PathError.Op", Field, 0}, - {"PathError.Path", Field, 0}, - {"PathListSeparator", Const, 0}, - {"PathSeparator", Const, 0}, - {"Pipe", Func, 0}, - {"ProcAttr", Type, 0}, - {"ProcAttr.Dir", Field, 0}, - {"ProcAttr.Env", Field, 0}, - {"ProcAttr.Files", Field, 0}, - {"ProcAttr.Sys", Field, 0}, - {"Process", Type, 0}, - {"Process.Pid", Field, 0}, - {"ProcessState", Type, 0}, - {"ReadDir", Func, 16}, - {"ReadFile", Func, 16}, - {"Readlink", Func, 0}, - {"Remove", Func, 0}, - {"RemoveAll", Func, 0}, - {"Rename", Func, 0}, - {"Root", Type, 24}, - {"SEEK_CUR", Const, 0}, - {"SEEK_END", Const, 0}, - {"SEEK_SET", Const, 0}, - {"SameFile", Func, 0}, - {"Setenv", Func, 0}, - {"Signal", Type, 0}, - {"StartProcess", Func, 0}, - {"Stat", Func, 0}, - {"Stderr", Var, 0}, - {"Stdin", Var, 0}, - {"Stdout", Var, 0}, - {"Symlink", Func, 0}, - {"SyscallError", Type, 0}, - {"SyscallError.Err", Field, 0}, - {"SyscallError.Syscall", Field, 0}, - {"TempDir", Func, 0}, - {"Truncate", Func, 0}, - {"Unsetenv", Func, 4}, - {"UserCacheDir", Func, 11}, - {"UserConfigDir", Func, 13}, - {"UserHomeDir", Func, 12}, - {"WriteFile", Func, 16}, - }, - "os/exec": { - {"(*Cmd).CombinedOutput", Method, 0}, - {"(*Cmd).Environ", Method, 19}, - {"(*Cmd).Output", Method, 0}, - {"(*Cmd).Run", Method, 0}, - {"(*Cmd).Start", Method, 0}, - {"(*Cmd).StderrPipe", Method, 0}, - {"(*Cmd).StdinPipe", Method, 0}, - {"(*Cmd).StdoutPipe", Method, 0}, - {"(*Cmd).String", Method, 13}, - {"(*Cmd).Wait", Method, 0}, - {"(*Error).Error", Method, 0}, - {"(*Error).Unwrap", Method, 13}, - {"(*ExitError).Error", Method, 0}, - {"(ExitError).ExitCode", Method, 12}, - {"(ExitError).Exited", Method, 0}, - {"(ExitError).Pid", Method, 0}, - {"(ExitError).String", Method, 0}, - {"(ExitError).Success", Method, 0}, - {"(ExitError).Sys", Method, 0}, - {"(ExitError).SysUsage", Method, 0}, - {"(ExitError).SystemTime", Method, 0}, - {"(ExitError).UserTime", Method, 0}, - {"Cmd", Type, 0}, - {"Cmd.Args", Field, 0}, - {"Cmd.Cancel", Field, 20}, - {"Cmd.Dir", Field, 0}, - {"Cmd.Env", Field, 0}, - {"Cmd.Err", Field, 19}, - {"Cmd.ExtraFiles", Field, 0}, - {"Cmd.Path", Field, 0}, - {"Cmd.Process", Field, 0}, - {"Cmd.ProcessState", Field, 0}, - {"Cmd.Stderr", Field, 0}, - {"Cmd.Stdin", Field, 0}, - {"Cmd.Stdout", Field, 0}, - {"Cmd.SysProcAttr", Field, 0}, - {"Cmd.WaitDelay", Field, 20}, - {"Command", Func, 0}, - {"CommandContext", Func, 7}, - {"ErrDot", Var, 19}, - {"ErrNotFound", Var, 0}, - {"ErrWaitDelay", Var, 20}, - {"Error", Type, 0}, - {"Error.Err", Field, 0}, - {"Error.Name", Field, 0}, - {"ExitError", Type, 0}, - {"ExitError.ProcessState", Field, 0}, - {"ExitError.Stderr", Field, 6}, - {"LookPath", Func, 0}, - }, - "os/signal": { - {"Ignore", Func, 5}, - {"Ignored", Func, 11}, - {"Notify", Func, 0}, - {"NotifyContext", Func, 16}, - {"Reset", Func, 5}, - {"Stop", Func, 1}, - }, - "os/user": { - {"(*User).GroupIds", Method, 7}, - {"(UnknownGroupError).Error", Method, 7}, - {"(UnknownGroupIdError).Error", Method, 7}, - {"(UnknownUserError).Error", Method, 0}, - {"(UnknownUserIdError).Error", Method, 0}, - {"Current", Func, 0}, - {"Group", Type, 7}, - {"Group.Gid", Field, 7}, - {"Group.Name", Field, 7}, - {"Lookup", Func, 0}, - {"LookupGroup", Func, 7}, - {"LookupGroupId", Func, 7}, - {"LookupId", Func, 0}, - {"UnknownGroupError", Type, 7}, - {"UnknownGroupIdError", Type, 7}, - {"UnknownUserError", Type, 0}, - {"UnknownUserIdError", Type, 0}, - {"User", Type, 0}, - {"User.Gid", Field, 0}, - {"User.HomeDir", Field, 0}, - {"User.Name", Field, 0}, - {"User.Uid", Field, 0}, - {"User.Username", Field, 0}, - }, - "path": { - {"Base", Func, 0}, - {"Clean", Func, 0}, - {"Dir", Func, 0}, - {"ErrBadPattern", Var, 0}, - {"Ext", Func, 0}, - {"IsAbs", Func, 0}, - {"Join", Func, 0}, - {"Match", Func, 0}, - {"Split", Func, 0}, - }, - "path/filepath": { - {"Abs", Func, 0}, - {"Base", Func, 0}, - {"Clean", Func, 0}, - {"Dir", Func, 0}, - {"ErrBadPattern", Var, 0}, - {"EvalSymlinks", Func, 0}, - {"Ext", Func, 0}, - {"FromSlash", Func, 0}, - {"Glob", Func, 0}, - {"HasPrefix", Func, 0}, - {"IsAbs", Func, 0}, - {"IsLocal", Func, 20}, - {"Join", Func, 0}, - {"ListSeparator", Const, 0}, - {"Localize", Func, 23}, - {"Match", Func, 0}, - {"Rel", Func, 0}, - {"Separator", Const, 0}, - {"SkipAll", Var, 20}, - {"SkipDir", Var, 0}, - {"Split", Func, 0}, - {"SplitList", Func, 0}, - {"ToSlash", Func, 0}, - {"VolumeName", Func, 0}, - {"Walk", Func, 0}, - {"WalkDir", Func, 16}, - {"WalkFunc", Type, 0}, - }, - "plugin": { - {"(*Plugin).Lookup", Method, 8}, - {"Open", Func, 8}, - {"Plugin", Type, 8}, - {"Symbol", Type, 8}, - }, - "reflect": { - {"(*MapIter).Key", Method, 12}, - {"(*MapIter).Next", Method, 12}, - {"(*MapIter).Reset", Method, 18}, - {"(*MapIter).Value", Method, 12}, - {"(*ValueError).Error", Method, 0}, - {"(ChanDir).String", Method, 0}, - {"(Kind).String", Method, 0}, - {"(Method).IsExported", Method, 17}, - {"(StructField).IsExported", Method, 17}, - {"(StructTag).Get", Method, 0}, - {"(StructTag).Lookup", Method, 7}, - {"(Value).Addr", Method, 0}, - {"(Value).Bool", Method, 0}, - {"(Value).Bytes", Method, 0}, - {"(Value).Call", Method, 0}, - {"(Value).CallSlice", Method, 0}, - {"(Value).CanAddr", Method, 0}, - {"(Value).CanComplex", Method, 18}, - {"(Value).CanConvert", Method, 17}, - {"(Value).CanFloat", Method, 18}, - {"(Value).CanInt", Method, 18}, - {"(Value).CanInterface", Method, 0}, - {"(Value).CanSet", Method, 0}, - {"(Value).CanUint", Method, 18}, - {"(Value).Cap", Method, 0}, - {"(Value).Clear", Method, 21}, - {"(Value).Close", Method, 0}, - {"(Value).Comparable", Method, 20}, - {"(Value).Complex", Method, 0}, - {"(Value).Convert", Method, 1}, - {"(Value).Elem", Method, 0}, - {"(Value).Equal", Method, 20}, - {"(Value).Field", Method, 0}, - {"(Value).FieldByIndex", Method, 0}, - {"(Value).FieldByIndexErr", Method, 18}, - {"(Value).FieldByName", Method, 0}, - {"(Value).FieldByNameFunc", Method, 0}, - {"(Value).Float", Method, 0}, - {"(Value).Grow", Method, 20}, - {"(Value).Index", Method, 0}, - {"(Value).Int", Method, 0}, - {"(Value).Interface", Method, 0}, - {"(Value).InterfaceData", Method, 0}, - {"(Value).IsNil", Method, 0}, - {"(Value).IsValid", Method, 0}, - {"(Value).IsZero", Method, 13}, - {"(Value).Kind", Method, 0}, - {"(Value).Len", Method, 0}, - {"(Value).MapIndex", Method, 0}, - {"(Value).MapKeys", Method, 0}, - {"(Value).MapRange", Method, 12}, - {"(Value).Method", Method, 0}, - {"(Value).MethodByName", Method, 0}, - {"(Value).NumField", Method, 0}, - {"(Value).NumMethod", Method, 0}, - {"(Value).OverflowComplex", Method, 0}, - {"(Value).OverflowFloat", Method, 0}, - {"(Value).OverflowInt", Method, 0}, - {"(Value).OverflowUint", Method, 0}, - {"(Value).Pointer", Method, 0}, - {"(Value).Recv", Method, 0}, - {"(Value).Send", Method, 0}, - {"(Value).Seq", Method, 23}, - {"(Value).Seq2", Method, 23}, - {"(Value).Set", Method, 0}, - {"(Value).SetBool", Method, 0}, - {"(Value).SetBytes", Method, 0}, - {"(Value).SetCap", Method, 2}, - {"(Value).SetComplex", Method, 0}, - {"(Value).SetFloat", Method, 0}, - {"(Value).SetInt", Method, 0}, - {"(Value).SetIterKey", Method, 18}, - {"(Value).SetIterValue", Method, 18}, - {"(Value).SetLen", Method, 0}, - {"(Value).SetMapIndex", Method, 0}, - {"(Value).SetPointer", Method, 0}, - {"(Value).SetString", Method, 0}, - {"(Value).SetUint", Method, 0}, - {"(Value).SetZero", Method, 20}, - {"(Value).Slice", Method, 0}, - {"(Value).Slice3", Method, 2}, - {"(Value).String", Method, 0}, - {"(Value).TryRecv", Method, 0}, - {"(Value).TrySend", Method, 0}, - {"(Value).Type", Method, 0}, - {"(Value).Uint", Method, 0}, - {"(Value).UnsafeAddr", Method, 0}, - {"(Value).UnsafePointer", Method, 18}, - {"Append", Func, 0}, - {"AppendSlice", Func, 0}, - {"Array", Const, 0}, - {"ArrayOf", Func, 5}, - {"Bool", Const, 0}, - {"BothDir", Const, 0}, - {"Chan", Const, 0}, - {"ChanDir", Type, 0}, - {"ChanOf", Func, 1}, - {"Complex128", Const, 0}, - {"Complex64", Const, 0}, - {"Copy", Func, 0}, - {"DeepEqual", Func, 0}, - {"Float32", Const, 0}, - {"Float64", Const, 0}, - {"Func", Const, 0}, - {"FuncOf", Func, 5}, - {"Indirect", Func, 0}, - {"Int", Const, 0}, - {"Int16", Const, 0}, - {"Int32", Const, 0}, - {"Int64", Const, 0}, - {"Int8", Const, 0}, - {"Interface", Const, 0}, - {"Invalid", Const, 0}, - {"Kind", Type, 0}, - {"MakeChan", Func, 0}, - {"MakeFunc", Func, 1}, - {"MakeMap", Func, 0}, - {"MakeMapWithSize", Func, 9}, - {"MakeSlice", Func, 0}, - {"Map", Const, 0}, - {"MapIter", Type, 12}, - {"MapOf", Func, 1}, - {"Method", Type, 0}, - {"Method.Func", Field, 0}, - {"Method.Index", Field, 0}, - {"Method.Name", Field, 0}, - {"Method.PkgPath", Field, 0}, - {"Method.Type", Field, 0}, - {"New", Func, 0}, - {"NewAt", Func, 0}, - {"Pointer", Const, 18}, - {"PointerTo", Func, 18}, - {"Ptr", Const, 0}, - {"PtrTo", Func, 0}, - {"RecvDir", Const, 0}, - {"Select", Func, 1}, - {"SelectCase", Type, 1}, - {"SelectCase.Chan", Field, 1}, - {"SelectCase.Dir", Field, 1}, - {"SelectCase.Send", Field, 1}, - {"SelectDefault", Const, 1}, - {"SelectDir", Type, 1}, - {"SelectRecv", Const, 1}, - {"SelectSend", Const, 1}, - {"SendDir", Const, 0}, - {"Slice", Const, 0}, - {"SliceAt", Func, 23}, - {"SliceHeader", Type, 0}, - {"SliceHeader.Cap", Field, 0}, - {"SliceHeader.Data", Field, 0}, - {"SliceHeader.Len", Field, 0}, - {"SliceOf", Func, 1}, - {"String", Const, 0}, - {"StringHeader", Type, 0}, - {"StringHeader.Data", Field, 0}, - {"StringHeader.Len", Field, 0}, - {"Struct", Const, 0}, - {"StructField", Type, 0}, - {"StructField.Anonymous", Field, 0}, - {"StructField.Index", Field, 0}, - {"StructField.Name", Field, 0}, - {"StructField.Offset", Field, 0}, - {"StructField.PkgPath", Field, 0}, - {"StructField.Tag", Field, 0}, - {"StructField.Type", Field, 0}, - {"StructOf", Func, 7}, - {"StructTag", Type, 0}, - {"Swapper", Func, 8}, - {"Type", Type, 0}, - {"TypeFor", Func, 22}, - {"TypeOf", Func, 0}, - {"Uint", Const, 0}, - {"Uint16", Const, 0}, - {"Uint32", Const, 0}, - {"Uint64", Const, 0}, - {"Uint8", Const, 0}, - {"Uintptr", Const, 0}, - {"UnsafePointer", Const, 0}, - {"Value", Type, 0}, - {"ValueError", Type, 0}, - {"ValueError.Kind", Field, 0}, - {"ValueError.Method", Field, 0}, - {"ValueOf", Func, 0}, - {"VisibleFields", Func, 17}, - {"Zero", Func, 0}, - }, - "regexp": { - {"(*Regexp).AppendText", Method, 24}, - {"(*Regexp).Copy", Method, 6}, - {"(*Regexp).Expand", Method, 0}, - {"(*Regexp).ExpandString", Method, 0}, - {"(*Regexp).Find", Method, 0}, - {"(*Regexp).FindAll", Method, 0}, - {"(*Regexp).FindAllIndex", Method, 0}, - {"(*Regexp).FindAllString", Method, 0}, - {"(*Regexp).FindAllStringIndex", Method, 0}, - {"(*Regexp).FindAllStringSubmatch", Method, 0}, - {"(*Regexp).FindAllStringSubmatchIndex", Method, 0}, - {"(*Regexp).FindAllSubmatch", Method, 0}, - {"(*Regexp).FindAllSubmatchIndex", Method, 0}, - {"(*Regexp).FindIndex", Method, 0}, - {"(*Regexp).FindReaderIndex", Method, 0}, - {"(*Regexp).FindReaderSubmatchIndex", Method, 0}, - {"(*Regexp).FindString", Method, 0}, - {"(*Regexp).FindStringIndex", Method, 0}, - {"(*Regexp).FindStringSubmatch", Method, 0}, - {"(*Regexp).FindStringSubmatchIndex", Method, 0}, - {"(*Regexp).FindSubmatch", Method, 0}, - {"(*Regexp).FindSubmatchIndex", Method, 0}, - {"(*Regexp).LiteralPrefix", Method, 0}, - {"(*Regexp).Longest", Method, 1}, - {"(*Regexp).MarshalText", Method, 21}, - {"(*Regexp).Match", Method, 0}, - {"(*Regexp).MatchReader", Method, 0}, - {"(*Regexp).MatchString", Method, 0}, - {"(*Regexp).NumSubexp", Method, 0}, - {"(*Regexp).ReplaceAll", Method, 0}, - {"(*Regexp).ReplaceAllFunc", Method, 0}, - {"(*Regexp).ReplaceAllLiteral", Method, 0}, - {"(*Regexp).ReplaceAllLiteralString", Method, 0}, - {"(*Regexp).ReplaceAllString", Method, 0}, - {"(*Regexp).ReplaceAllStringFunc", Method, 0}, - {"(*Regexp).Split", Method, 1}, - {"(*Regexp).String", Method, 0}, - {"(*Regexp).SubexpIndex", Method, 15}, - {"(*Regexp).SubexpNames", Method, 0}, - {"(*Regexp).UnmarshalText", Method, 21}, - {"Compile", Func, 0}, - {"CompilePOSIX", Func, 0}, - {"Match", Func, 0}, - {"MatchReader", Func, 0}, - {"MatchString", Func, 0}, - {"MustCompile", Func, 0}, - {"MustCompilePOSIX", Func, 0}, - {"QuoteMeta", Func, 0}, - {"Regexp", Type, 0}, - }, - "regexp/syntax": { - {"(*Error).Error", Method, 0}, - {"(*Inst).MatchEmptyWidth", Method, 0}, - {"(*Inst).MatchRune", Method, 0}, - {"(*Inst).MatchRunePos", Method, 3}, - {"(*Inst).String", Method, 0}, - {"(*Prog).Prefix", Method, 0}, - {"(*Prog).StartCond", Method, 0}, - {"(*Prog).String", Method, 0}, - {"(*Regexp).CapNames", Method, 0}, - {"(*Regexp).Equal", Method, 0}, - {"(*Regexp).MaxCap", Method, 0}, - {"(*Regexp).Simplify", Method, 0}, - {"(*Regexp).String", Method, 0}, - {"(ErrorCode).String", Method, 0}, - {"(InstOp).String", Method, 3}, - {"(Op).String", Method, 11}, - {"ClassNL", Const, 0}, - {"Compile", Func, 0}, - {"DotNL", Const, 0}, - {"EmptyBeginLine", Const, 0}, - {"EmptyBeginText", Const, 0}, - {"EmptyEndLine", Const, 0}, - {"EmptyEndText", Const, 0}, - {"EmptyNoWordBoundary", Const, 0}, - {"EmptyOp", Type, 0}, - {"EmptyOpContext", Func, 0}, - {"EmptyWordBoundary", Const, 0}, - {"ErrInternalError", Const, 0}, - {"ErrInvalidCharClass", Const, 0}, - {"ErrInvalidCharRange", Const, 0}, - {"ErrInvalidEscape", Const, 0}, - {"ErrInvalidNamedCapture", Const, 0}, - {"ErrInvalidPerlOp", Const, 0}, - {"ErrInvalidRepeatOp", Const, 0}, - {"ErrInvalidRepeatSize", Const, 0}, - {"ErrInvalidUTF8", Const, 0}, - {"ErrLarge", Const, 20}, - {"ErrMissingBracket", Const, 0}, - {"ErrMissingParen", Const, 0}, - {"ErrMissingRepeatArgument", Const, 0}, - {"ErrNestingDepth", Const, 19}, - {"ErrTrailingBackslash", Const, 0}, - {"ErrUnexpectedParen", Const, 1}, - {"Error", Type, 0}, - {"Error.Code", Field, 0}, - {"Error.Expr", Field, 0}, - {"ErrorCode", Type, 0}, - {"Flags", Type, 0}, - {"FoldCase", Const, 0}, - {"Inst", Type, 0}, - {"Inst.Arg", Field, 0}, - {"Inst.Op", Field, 0}, - {"Inst.Out", Field, 0}, - {"Inst.Rune", Field, 0}, - {"InstAlt", Const, 0}, - {"InstAltMatch", Const, 0}, - {"InstCapture", Const, 0}, - {"InstEmptyWidth", Const, 0}, - {"InstFail", Const, 0}, - {"InstMatch", Const, 0}, - {"InstNop", Const, 0}, - {"InstOp", Type, 0}, - {"InstRune", Const, 0}, - {"InstRune1", Const, 0}, - {"InstRuneAny", Const, 0}, - {"InstRuneAnyNotNL", Const, 0}, - {"IsWordChar", Func, 0}, - {"Literal", Const, 0}, - {"MatchNL", Const, 0}, - {"NonGreedy", Const, 0}, - {"OneLine", Const, 0}, - {"Op", Type, 0}, - {"OpAlternate", Const, 0}, - {"OpAnyChar", Const, 0}, - {"OpAnyCharNotNL", Const, 0}, - {"OpBeginLine", Const, 0}, - {"OpBeginText", Const, 0}, - {"OpCapture", Const, 0}, - {"OpCharClass", Const, 0}, - {"OpConcat", Const, 0}, - {"OpEmptyMatch", Const, 0}, - {"OpEndLine", Const, 0}, - {"OpEndText", Const, 0}, - {"OpLiteral", Const, 0}, - {"OpNoMatch", Const, 0}, - {"OpNoWordBoundary", Const, 0}, - {"OpPlus", Const, 0}, - {"OpQuest", Const, 0}, - {"OpRepeat", Const, 0}, - {"OpStar", Const, 0}, - {"OpWordBoundary", Const, 0}, - {"POSIX", Const, 0}, - {"Parse", Func, 0}, - {"Perl", Const, 0}, - {"PerlX", Const, 0}, - {"Prog", Type, 0}, - {"Prog.Inst", Field, 0}, - {"Prog.NumCap", Field, 0}, - {"Prog.Start", Field, 0}, - {"Regexp", Type, 0}, - {"Regexp.Cap", Field, 0}, - {"Regexp.Flags", Field, 0}, - {"Regexp.Max", Field, 0}, - {"Regexp.Min", Field, 0}, - {"Regexp.Name", Field, 0}, - {"Regexp.Op", Field, 0}, - {"Regexp.Rune", Field, 0}, - {"Regexp.Rune0", Field, 0}, - {"Regexp.Sub", Field, 0}, - {"Regexp.Sub0", Field, 0}, - {"Simple", Const, 0}, - {"UnicodeGroups", Const, 0}, - {"WasDollar", Const, 0}, - }, - "runtime": { - {"(*BlockProfileRecord).Stack", Method, 1}, - {"(*Frames).Next", Method, 7}, - {"(*Func).Entry", Method, 0}, - {"(*Func).FileLine", Method, 0}, - {"(*Func).Name", Method, 0}, - {"(*MemProfileRecord).InUseBytes", Method, 0}, - {"(*MemProfileRecord).InUseObjects", Method, 0}, - {"(*MemProfileRecord).Stack", Method, 0}, - {"(*PanicNilError).Error", Method, 21}, - {"(*PanicNilError).RuntimeError", Method, 21}, - {"(*Pinner).Pin", Method, 21}, - {"(*Pinner).Unpin", Method, 21}, - {"(*StackRecord).Stack", Method, 0}, - {"(*TypeAssertionError).Error", Method, 0}, - {"(*TypeAssertionError).RuntimeError", Method, 0}, - {"(Cleanup).Stop", Method, 24}, - {"AddCleanup", Func, 24}, - {"BlockProfile", Func, 1}, - {"BlockProfileRecord", Type, 1}, - {"BlockProfileRecord.Count", Field, 1}, - {"BlockProfileRecord.Cycles", Field, 1}, - {"BlockProfileRecord.StackRecord", Field, 1}, - {"Breakpoint", Func, 0}, - {"CPUProfile", Func, 0}, - {"Caller", Func, 0}, - {"Callers", Func, 0}, - {"CallersFrames", Func, 7}, - {"Cleanup", Type, 24}, - {"Compiler", Const, 0}, - {"Error", Type, 0}, - {"Frame", Type, 7}, - {"Frame.Entry", Field, 7}, - {"Frame.File", Field, 7}, - {"Frame.Func", Field, 7}, - {"Frame.Function", Field, 7}, - {"Frame.Line", Field, 7}, - {"Frame.PC", Field, 7}, - {"Frames", Type, 7}, - {"Func", Type, 0}, - {"FuncForPC", Func, 0}, - {"GC", Func, 0}, - {"GOARCH", Const, 0}, - {"GOMAXPROCS", Func, 0}, - {"GOOS", Const, 0}, - {"GOROOT", Func, 0}, - {"Goexit", Func, 0}, - {"GoroutineProfile", Func, 0}, - {"Gosched", Func, 0}, - {"KeepAlive", Func, 7}, - {"LockOSThread", Func, 0}, - {"MemProfile", Func, 0}, - {"MemProfileRate", Var, 0}, - {"MemProfileRecord", Type, 0}, - {"MemProfileRecord.AllocBytes", Field, 0}, - {"MemProfileRecord.AllocObjects", Field, 0}, - {"MemProfileRecord.FreeBytes", Field, 0}, - {"MemProfileRecord.FreeObjects", Field, 0}, - {"MemProfileRecord.Stack0", Field, 0}, - {"MemStats", Type, 0}, - {"MemStats.Alloc", Field, 0}, - {"MemStats.BuckHashSys", Field, 0}, - {"MemStats.BySize", Field, 0}, - {"MemStats.DebugGC", Field, 0}, - {"MemStats.EnableGC", Field, 0}, - {"MemStats.Frees", Field, 0}, - {"MemStats.GCCPUFraction", Field, 5}, - {"MemStats.GCSys", Field, 2}, - {"MemStats.HeapAlloc", Field, 0}, - {"MemStats.HeapIdle", Field, 0}, - {"MemStats.HeapInuse", Field, 0}, - {"MemStats.HeapObjects", Field, 0}, - {"MemStats.HeapReleased", Field, 0}, - {"MemStats.HeapSys", Field, 0}, - {"MemStats.LastGC", Field, 0}, - {"MemStats.Lookups", Field, 0}, - {"MemStats.MCacheInuse", Field, 0}, - {"MemStats.MCacheSys", Field, 0}, - {"MemStats.MSpanInuse", Field, 0}, - {"MemStats.MSpanSys", Field, 0}, - {"MemStats.Mallocs", Field, 0}, - {"MemStats.NextGC", Field, 0}, - {"MemStats.NumForcedGC", Field, 8}, - {"MemStats.NumGC", Field, 0}, - {"MemStats.OtherSys", Field, 2}, - {"MemStats.PauseEnd", Field, 4}, - {"MemStats.PauseNs", Field, 0}, - {"MemStats.PauseTotalNs", Field, 0}, - {"MemStats.StackInuse", Field, 0}, - {"MemStats.StackSys", Field, 0}, - {"MemStats.Sys", Field, 0}, - {"MemStats.TotalAlloc", Field, 0}, - {"MutexProfile", Func, 8}, - {"NumCPU", Func, 0}, - {"NumCgoCall", Func, 0}, - {"NumGoroutine", Func, 0}, - {"PanicNilError", Type, 21}, - {"Pinner", Type, 21}, - {"ReadMemStats", Func, 0}, - {"ReadTrace", Func, 5}, - {"SetBlockProfileRate", Func, 1}, - {"SetCPUProfileRate", Func, 0}, - {"SetCgoTraceback", Func, 7}, - {"SetFinalizer", Func, 0}, - {"SetMutexProfileFraction", Func, 8}, - {"Stack", Func, 0}, - {"StackRecord", Type, 0}, - {"StackRecord.Stack0", Field, 0}, - {"StartTrace", Func, 5}, - {"StopTrace", Func, 5}, - {"ThreadCreateProfile", Func, 0}, - {"TypeAssertionError", Type, 0}, - {"UnlockOSThread", Func, 0}, - {"Version", Func, 0}, - }, - "runtime/cgo": { - {"(Handle).Delete", Method, 17}, - {"(Handle).Value", Method, 17}, - {"Handle", Type, 17}, - {"Incomplete", Type, 20}, - {"NewHandle", Func, 17}, - }, - "runtime/coverage": { - {"ClearCounters", Func, 20}, - {"WriteCounters", Func, 20}, - {"WriteCountersDir", Func, 20}, - {"WriteMeta", Func, 20}, - {"WriteMetaDir", Func, 20}, - }, - "runtime/debug": { - {"(*BuildInfo).String", Method, 18}, - {"BuildInfo", Type, 12}, - {"BuildInfo.Deps", Field, 12}, - {"BuildInfo.GoVersion", Field, 18}, - {"BuildInfo.Main", Field, 12}, - {"BuildInfo.Path", Field, 12}, - {"BuildInfo.Settings", Field, 18}, - {"BuildSetting", Type, 18}, - {"BuildSetting.Key", Field, 18}, - {"BuildSetting.Value", Field, 18}, - {"CrashOptions", Type, 23}, - {"FreeOSMemory", Func, 1}, - {"GCStats", Type, 1}, - {"GCStats.LastGC", Field, 1}, - {"GCStats.NumGC", Field, 1}, - {"GCStats.Pause", Field, 1}, - {"GCStats.PauseEnd", Field, 4}, - {"GCStats.PauseQuantiles", Field, 1}, - {"GCStats.PauseTotal", Field, 1}, - {"Module", Type, 12}, - {"Module.Path", Field, 12}, - {"Module.Replace", Field, 12}, - {"Module.Sum", Field, 12}, - {"Module.Version", Field, 12}, - {"ParseBuildInfo", Func, 18}, - {"PrintStack", Func, 0}, - {"ReadBuildInfo", Func, 12}, - {"ReadGCStats", Func, 1}, - {"SetCrashOutput", Func, 23}, - {"SetGCPercent", Func, 1}, - {"SetMaxStack", Func, 2}, - {"SetMaxThreads", Func, 2}, - {"SetMemoryLimit", Func, 19}, - {"SetPanicOnFault", Func, 3}, - {"SetTraceback", Func, 6}, - {"Stack", Func, 0}, - {"WriteHeapDump", Func, 3}, - }, - "runtime/metrics": { - {"(Value).Float64", Method, 16}, - {"(Value).Float64Histogram", Method, 16}, - {"(Value).Kind", Method, 16}, - {"(Value).Uint64", Method, 16}, - {"All", Func, 16}, - {"Description", Type, 16}, - {"Description.Cumulative", Field, 16}, - {"Description.Description", Field, 16}, - {"Description.Kind", Field, 16}, - {"Description.Name", Field, 16}, - {"Float64Histogram", Type, 16}, - {"Float64Histogram.Buckets", Field, 16}, - {"Float64Histogram.Counts", Field, 16}, - {"KindBad", Const, 16}, - {"KindFloat64", Const, 16}, - {"KindFloat64Histogram", Const, 16}, - {"KindUint64", Const, 16}, - {"Read", Func, 16}, - {"Sample", Type, 16}, - {"Sample.Name", Field, 16}, - {"Sample.Value", Field, 16}, - {"Value", Type, 16}, - {"ValueKind", Type, 16}, - }, - "runtime/pprof": { - {"(*Profile).Add", Method, 0}, - {"(*Profile).Count", Method, 0}, - {"(*Profile).Name", Method, 0}, - {"(*Profile).Remove", Method, 0}, - {"(*Profile).WriteTo", Method, 0}, - {"Do", Func, 9}, - {"ForLabels", Func, 9}, - {"Label", Func, 9}, - {"LabelSet", Type, 9}, - {"Labels", Func, 9}, - {"Lookup", Func, 0}, - {"NewProfile", Func, 0}, - {"Profile", Type, 0}, - {"Profiles", Func, 0}, - {"SetGoroutineLabels", Func, 9}, - {"StartCPUProfile", Func, 0}, - {"StopCPUProfile", Func, 0}, - {"WithLabels", Func, 9}, - {"WriteHeapProfile", Func, 0}, - }, - "runtime/trace": { - {"(*Region).End", Method, 11}, - {"(*Task).End", Method, 11}, - {"IsEnabled", Func, 11}, - {"Log", Func, 11}, - {"Logf", Func, 11}, - {"NewTask", Func, 11}, - {"Region", Type, 11}, - {"Start", Func, 5}, - {"StartRegion", Func, 11}, - {"Stop", Func, 5}, - {"Task", Type, 11}, - {"WithRegion", Func, 11}, - }, - "slices": { - {"All", Func, 23}, - {"AppendSeq", Func, 23}, - {"Backward", Func, 23}, - {"BinarySearch", Func, 21}, - {"BinarySearchFunc", Func, 21}, - {"Chunk", Func, 23}, - {"Clip", Func, 21}, - {"Clone", Func, 21}, - {"Collect", Func, 23}, - {"Compact", Func, 21}, - {"CompactFunc", Func, 21}, - {"Compare", Func, 21}, - {"CompareFunc", Func, 21}, - {"Concat", Func, 22}, - {"Contains", Func, 21}, - {"ContainsFunc", Func, 21}, - {"Delete", Func, 21}, - {"DeleteFunc", Func, 21}, - {"Equal", Func, 21}, - {"EqualFunc", Func, 21}, - {"Grow", Func, 21}, - {"Index", Func, 21}, - {"IndexFunc", Func, 21}, - {"Insert", Func, 21}, - {"IsSorted", Func, 21}, - {"IsSortedFunc", Func, 21}, - {"Max", Func, 21}, - {"MaxFunc", Func, 21}, - {"Min", Func, 21}, - {"MinFunc", Func, 21}, - {"Repeat", Func, 23}, - {"Replace", Func, 21}, - {"Reverse", Func, 21}, - {"Sort", Func, 21}, - {"SortFunc", Func, 21}, - {"SortStableFunc", Func, 21}, - {"Sorted", Func, 23}, - {"SortedFunc", Func, 23}, - {"SortedStableFunc", Func, 23}, - {"Values", Func, 23}, - }, - "sort": { - {"(Float64Slice).Len", Method, 0}, - {"(Float64Slice).Less", Method, 0}, - {"(Float64Slice).Search", Method, 0}, - {"(Float64Slice).Sort", Method, 0}, - {"(Float64Slice).Swap", Method, 0}, - {"(IntSlice).Len", Method, 0}, - {"(IntSlice).Less", Method, 0}, - {"(IntSlice).Search", Method, 0}, - {"(IntSlice).Sort", Method, 0}, - {"(IntSlice).Swap", Method, 0}, - {"(StringSlice).Len", Method, 0}, - {"(StringSlice).Less", Method, 0}, - {"(StringSlice).Search", Method, 0}, - {"(StringSlice).Sort", Method, 0}, - {"(StringSlice).Swap", Method, 0}, - {"Find", Func, 19}, - {"Float64Slice", Type, 0}, - {"Float64s", Func, 0}, - {"Float64sAreSorted", Func, 0}, - {"IntSlice", Type, 0}, - {"Interface", Type, 0}, - {"Ints", Func, 0}, - {"IntsAreSorted", Func, 0}, - {"IsSorted", Func, 0}, - {"Reverse", Func, 1}, - {"Search", Func, 0}, - {"SearchFloat64s", Func, 0}, - {"SearchInts", Func, 0}, - {"SearchStrings", Func, 0}, - {"Slice", Func, 8}, - {"SliceIsSorted", Func, 8}, - {"SliceStable", Func, 8}, - {"Sort", Func, 0}, - {"Stable", Func, 2}, - {"StringSlice", Type, 0}, - {"Strings", Func, 0}, - {"StringsAreSorted", Func, 0}, - }, - "strconv": { - {"(*NumError).Error", Method, 0}, - {"(*NumError).Unwrap", Method, 14}, - {"AppendBool", Func, 0}, - {"AppendFloat", Func, 0}, - {"AppendInt", Func, 0}, - {"AppendQuote", Func, 0}, - {"AppendQuoteRune", Func, 0}, - {"AppendQuoteRuneToASCII", Func, 0}, - {"AppendQuoteRuneToGraphic", Func, 6}, - {"AppendQuoteToASCII", Func, 0}, - {"AppendQuoteToGraphic", Func, 6}, - {"AppendUint", Func, 0}, - {"Atoi", Func, 0}, - {"CanBackquote", Func, 0}, - {"ErrRange", Var, 0}, - {"ErrSyntax", Var, 0}, - {"FormatBool", Func, 0}, - {"FormatComplex", Func, 15}, - {"FormatFloat", Func, 0}, - {"FormatInt", Func, 0}, - {"FormatUint", Func, 0}, - {"IntSize", Const, 0}, - {"IsGraphic", Func, 6}, - {"IsPrint", Func, 0}, - {"Itoa", Func, 0}, - {"NumError", Type, 0}, - {"NumError.Err", Field, 0}, - {"NumError.Func", Field, 0}, - {"NumError.Num", Field, 0}, - {"ParseBool", Func, 0}, - {"ParseComplex", Func, 15}, - {"ParseFloat", Func, 0}, - {"ParseInt", Func, 0}, - {"ParseUint", Func, 0}, - {"Quote", Func, 0}, - {"QuoteRune", Func, 0}, - {"QuoteRuneToASCII", Func, 0}, - {"QuoteRuneToGraphic", Func, 6}, - {"QuoteToASCII", Func, 0}, - {"QuoteToGraphic", Func, 6}, - {"QuotedPrefix", Func, 17}, - {"Unquote", Func, 0}, - {"UnquoteChar", Func, 0}, - }, - "strings": { - {"(*Builder).Cap", Method, 12}, - {"(*Builder).Grow", Method, 10}, - {"(*Builder).Len", Method, 10}, - {"(*Builder).Reset", Method, 10}, - {"(*Builder).String", Method, 10}, - {"(*Builder).Write", Method, 10}, - {"(*Builder).WriteByte", Method, 10}, - {"(*Builder).WriteRune", Method, 10}, - {"(*Builder).WriteString", Method, 10}, - {"(*Reader).Len", Method, 0}, - {"(*Reader).Read", Method, 0}, - {"(*Reader).ReadAt", Method, 0}, - {"(*Reader).ReadByte", Method, 0}, - {"(*Reader).ReadRune", Method, 0}, - {"(*Reader).Reset", Method, 7}, - {"(*Reader).Seek", Method, 0}, - {"(*Reader).Size", Method, 5}, - {"(*Reader).UnreadByte", Method, 0}, - {"(*Reader).UnreadRune", Method, 0}, - {"(*Reader).WriteTo", Method, 1}, - {"(*Replacer).Replace", Method, 0}, - {"(*Replacer).WriteString", Method, 0}, - {"Builder", Type, 10}, - {"Clone", Func, 18}, - {"Compare", Func, 5}, - {"Contains", Func, 0}, - {"ContainsAny", Func, 0}, - {"ContainsFunc", Func, 21}, - {"ContainsRune", Func, 0}, - {"Count", Func, 0}, - {"Cut", Func, 18}, - {"CutPrefix", Func, 20}, - {"CutSuffix", Func, 20}, - {"EqualFold", Func, 0}, - {"Fields", Func, 0}, - {"FieldsFunc", Func, 0}, - {"FieldsFuncSeq", Func, 24}, - {"FieldsSeq", Func, 24}, - {"HasPrefix", Func, 0}, - {"HasSuffix", Func, 0}, - {"Index", Func, 0}, - {"IndexAny", Func, 0}, - {"IndexByte", Func, 2}, - {"IndexFunc", Func, 0}, - {"IndexRune", Func, 0}, - {"Join", Func, 0}, - {"LastIndex", Func, 0}, - {"LastIndexAny", Func, 0}, - {"LastIndexByte", Func, 5}, - {"LastIndexFunc", Func, 0}, - {"Lines", Func, 24}, - {"Map", Func, 0}, - {"NewReader", Func, 0}, - {"NewReplacer", Func, 0}, - {"Reader", Type, 0}, - {"Repeat", Func, 0}, - {"Replace", Func, 0}, - {"ReplaceAll", Func, 12}, - {"Replacer", Type, 0}, - {"Split", Func, 0}, - {"SplitAfter", Func, 0}, - {"SplitAfterN", Func, 0}, - {"SplitAfterSeq", Func, 24}, - {"SplitN", Func, 0}, - {"SplitSeq", Func, 24}, - {"Title", Func, 0}, - {"ToLower", Func, 0}, - {"ToLowerSpecial", Func, 0}, - {"ToTitle", Func, 0}, - {"ToTitleSpecial", Func, 0}, - {"ToUpper", Func, 0}, - {"ToUpperSpecial", Func, 0}, - {"ToValidUTF8", Func, 13}, - {"Trim", Func, 0}, - {"TrimFunc", Func, 0}, - {"TrimLeft", Func, 0}, - {"TrimLeftFunc", Func, 0}, - {"TrimPrefix", Func, 1}, - {"TrimRight", Func, 0}, - {"TrimRightFunc", Func, 0}, - {"TrimSpace", Func, 0}, - {"TrimSuffix", Func, 1}, - }, - "structs": { - {"HostLayout", Type, 23}, - }, - "sync": { - {"(*Cond).Broadcast", Method, 0}, - {"(*Cond).Signal", Method, 0}, - {"(*Cond).Wait", Method, 0}, - {"(*Map).Clear", Method, 23}, - {"(*Map).CompareAndDelete", Method, 20}, - {"(*Map).CompareAndSwap", Method, 20}, - {"(*Map).Delete", Method, 9}, - {"(*Map).Load", Method, 9}, - {"(*Map).LoadAndDelete", Method, 15}, - {"(*Map).LoadOrStore", Method, 9}, - {"(*Map).Range", Method, 9}, - {"(*Map).Store", Method, 9}, - {"(*Map).Swap", Method, 20}, - {"(*Mutex).Lock", Method, 0}, - {"(*Mutex).TryLock", Method, 18}, - {"(*Mutex).Unlock", Method, 0}, - {"(*Once).Do", Method, 0}, - {"(*Pool).Get", Method, 3}, - {"(*Pool).Put", Method, 3}, - {"(*RWMutex).Lock", Method, 0}, - {"(*RWMutex).RLock", Method, 0}, - {"(*RWMutex).RLocker", Method, 0}, - {"(*RWMutex).RUnlock", Method, 0}, - {"(*RWMutex).TryLock", Method, 18}, - {"(*RWMutex).TryRLock", Method, 18}, - {"(*RWMutex).Unlock", Method, 0}, - {"(*WaitGroup).Add", Method, 0}, - {"(*WaitGroup).Done", Method, 0}, - {"(*WaitGroup).Wait", Method, 0}, - {"Cond", Type, 0}, - {"Cond.L", Field, 0}, - {"Locker", Type, 0}, - {"Map", Type, 9}, - {"Mutex", Type, 0}, - {"NewCond", Func, 0}, - {"Once", Type, 0}, - {"OnceFunc", Func, 21}, - {"OnceValue", Func, 21}, - {"OnceValues", Func, 21}, - {"Pool", Type, 3}, - {"Pool.New", Field, 3}, - {"RWMutex", Type, 0}, - {"WaitGroup", Type, 0}, - }, - "sync/atomic": { - {"(*Bool).CompareAndSwap", Method, 19}, - {"(*Bool).Load", Method, 19}, - {"(*Bool).Store", Method, 19}, - {"(*Bool).Swap", Method, 19}, - {"(*Int32).Add", Method, 19}, - {"(*Int32).And", Method, 23}, - {"(*Int32).CompareAndSwap", Method, 19}, - {"(*Int32).Load", Method, 19}, - {"(*Int32).Or", Method, 23}, - {"(*Int32).Store", Method, 19}, - {"(*Int32).Swap", Method, 19}, - {"(*Int64).Add", Method, 19}, - {"(*Int64).And", Method, 23}, - {"(*Int64).CompareAndSwap", Method, 19}, - {"(*Int64).Load", Method, 19}, - {"(*Int64).Or", Method, 23}, - {"(*Int64).Store", Method, 19}, - {"(*Int64).Swap", Method, 19}, - {"(*Pointer).CompareAndSwap", Method, 19}, - {"(*Pointer).Load", Method, 19}, - {"(*Pointer).Store", Method, 19}, - {"(*Pointer).Swap", Method, 19}, - {"(*Uint32).Add", Method, 19}, - {"(*Uint32).And", Method, 23}, - {"(*Uint32).CompareAndSwap", Method, 19}, - {"(*Uint32).Load", Method, 19}, - {"(*Uint32).Or", Method, 23}, - {"(*Uint32).Store", Method, 19}, - {"(*Uint32).Swap", Method, 19}, - {"(*Uint64).Add", Method, 19}, - {"(*Uint64).And", Method, 23}, - {"(*Uint64).CompareAndSwap", Method, 19}, - {"(*Uint64).Load", Method, 19}, - {"(*Uint64).Or", Method, 23}, - {"(*Uint64).Store", Method, 19}, - {"(*Uint64).Swap", Method, 19}, - {"(*Uintptr).Add", Method, 19}, - {"(*Uintptr).And", Method, 23}, - {"(*Uintptr).CompareAndSwap", Method, 19}, - {"(*Uintptr).Load", Method, 19}, - {"(*Uintptr).Or", Method, 23}, - {"(*Uintptr).Store", Method, 19}, - {"(*Uintptr).Swap", Method, 19}, - {"(*Value).CompareAndSwap", Method, 17}, - {"(*Value).Load", Method, 4}, - {"(*Value).Store", Method, 4}, - {"(*Value).Swap", Method, 17}, - {"AddInt32", Func, 0}, - {"AddInt64", Func, 0}, - {"AddUint32", Func, 0}, - {"AddUint64", Func, 0}, - {"AddUintptr", Func, 0}, - {"AndInt32", Func, 23}, - {"AndInt64", Func, 23}, - {"AndUint32", Func, 23}, - {"AndUint64", Func, 23}, - {"AndUintptr", Func, 23}, - {"Bool", Type, 19}, - {"CompareAndSwapInt32", Func, 0}, - {"CompareAndSwapInt64", Func, 0}, - {"CompareAndSwapPointer", Func, 0}, - {"CompareAndSwapUint32", Func, 0}, - {"CompareAndSwapUint64", Func, 0}, - {"CompareAndSwapUintptr", Func, 0}, - {"Int32", Type, 19}, - {"Int64", Type, 19}, - {"LoadInt32", Func, 0}, - {"LoadInt64", Func, 0}, - {"LoadPointer", Func, 0}, - {"LoadUint32", Func, 0}, - {"LoadUint64", Func, 0}, - {"LoadUintptr", Func, 0}, - {"OrInt32", Func, 23}, - {"OrInt64", Func, 23}, - {"OrUint32", Func, 23}, - {"OrUint64", Func, 23}, - {"OrUintptr", Func, 23}, - {"Pointer", Type, 19}, - {"StoreInt32", Func, 0}, - {"StoreInt64", Func, 0}, - {"StorePointer", Func, 0}, - {"StoreUint32", Func, 0}, - {"StoreUint64", Func, 0}, - {"StoreUintptr", Func, 0}, - {"SwapInt32", Func, 2}, - {"SwapInt64", Func, 2}, - {"SwapPointer", Func, 2}, - {"SwapUint32", Func, 2}, - {"SwapUint64", Func, 2}, - {"SwapUintptr", Func, 2}, - {"Uint32", Type, 19}, - {"Uint64", Type, 19}, - {"Uintptr", Type, 19}, - {"Value", Type, 4}, - }, - "syscall": { - {"(*Cmsghdr).SetLen", Method, 0}, - {"(*DLL).FindProc", Method, 0}, - {"(*DLL).MustFindProc", Method, 0}, - {"(*DLL).Release", Method, 0}, - {"(*DLLError).Error", Method, 0}, - {"(*DLLError).Unwrap", Method, 16}, - {"(*Filetime).Nanoseconds", Method, 0}, - {"(*Iovec).SetLen", Method, 0}, - {"(*LazyDLL).Handle", Method, 0}, - {"(*LazyDLL).Load", Method, 0}, - {"(*LazyDLL).NewProc", Method, 0}, - {"(*LazyProc).Addr", Method, 0}, - {"(*LazyProc).Call", Method, 0}, - {"(*LazyProc).Find", Method, 0}, - {"(*Msghdr).SetControllen", Method, 0}, - {"(*Proc).Addr", Method, 0}, - {"(*Proc).Call", Method, 0}, - {"(*PtraceRegs).PC", Method, 0}, - {"(*PtraceRegs).SetPC", Method, 0}, - {"(*RawSockaddrAny).Sockaddr", Method, 0}, - {"(*SID).Copy", Method, 0}, - {"(*SID).Len", Method, 0}, - {"(*SID).LookupAccount", Method, 0}, - {"(*SID).String", Method, 0}, - {"(*Timespec).Nano", Method, 0}, - {"(*Timespec).Unix", Method, 0}, - {"(*Timeval).Nano", Method, 0}, - {"(*Timeval).Nanoseconds", Method, 0}, - {"(*Timeval).Unix", Method, 0}, - {"(Errno).Error", Method, 0}, - {"(Errno).Is", Method, 13}, - {"(Errno).Temporary", Method, 0}, - {"(Errno).Timeout", Method, 0}, - {"(Signal).Signal", Method, 0}, - {"(Signal).String", Method, 0}, - {"(Token).Close", Method, 0}, - {"(Token).GetTokenPrimaryGroup", Method, 0}, - {"(Token).GetTokenUser", Method, 0}, - {"(Token).GetUserProfileDirectory", Method, 0}, - {"(WaitStatus).Continued", Method, 0}, - {"(WaitStatus).CoreDump", Method, 0}, - {"(WaitStatus).ExitStatus", Method, 0}, - {"(WaitStatus).Exited", Method, 0}, - {"(WaitStatus).Signal", Method, 0}, - {"(WaitStatus).Signaled", Method, 0}, - {"(WaitStatus).StopSignal", Method, 0}, - {"(WaitStatus).Stopped", Method, 0}, - {"(WaitStatus).TrapCause", Method, 0}, - {"AF_ALG", Const, 0}, - {"AF_APPLETALK", Const, 0}, - {"AF_ARP", Const, 0}, - {"AF_ASH", Const, 0}, - {"AF_ATM", Const, 0}, - {"AF_ATMPVC", Const, 0}, - {"AF_ATMSVC", Const, 0}, - {"AF_AX25", Const, 0}, - {"AF_BLUETOOTH", Const, 0}, - {"AF_BRIDGE", Const, 0}, - {"AF_CAIF", Const, 0}, - {"AF_CAN", Const, 0}, - {"AF_CCITT", Const, 0}, - {"AF_CHAOS", Const, 0}, - {"AF_CNT", Const, 0}, - {"AF_COIP", Const, 0}, - {"AF_DATAKIT", Const, 0}, - {"AF_DECnet", Const, 0}, - {"AF_DLI", Const, 0}, - {"AF_E164", Const, 0}, - {"AF_ECMA", Const, 0}, - {"AF_ECONET", Const, 0}, - {"AF_ENCAP", Const, 1}, - {"AF_FILE", Const, 0}, - {"AF_HYLINK", Const, 0}, - {"AF_IEEE80211", Const, 0}, - {"AF_IEEE802154", Const, 0}, - {"AF_IMPLINK", Const, 0}, - {"AF_INET", Const, 0}, - {"AF_INET6", Const, 0}, - {"AF_INET6_SDP", Const, 3}, - {"AF_INET_SDP", Const, 3}, - {"AF_IPX", Const, 0}, - {"AF_IRDA", Const, 0}, - {"AF_ISDN", Const, 0}, - {"AF_ISO", Const, 0}, - {"AF_IUCV", Const, 0}, - {"AF_KEY", Const, 0}, - {"AF_LAT", Const, 0}, - {"AF_LINK", Const, 0}, - {"AF_LLC", Const, 0}, - {"AF_LOCAL", Const, 0}, - {"AF_MAX", Const, 0}, - {"AF_MPLS", Const, 1}, - {"AF_NATM", Const, 0}, - {"AF_NDRV", Const, 0}, - {"AF_NETBEUI", Const, 0}, - {"AF_NETBIOS", Const, 0}, - {"AF_NETGRAPH", Const, 0}, - {"AF_NETLINK", Const, 0}, - {"AF_NETROM", Const, 0}, - {"AF_NS", Const, 0}, - {"AF_OROUTE", Const, 1}, - {"AF_OSI", Const, 0}, - {"AF_PACKET", Const, 0}, - {"AF_PHONET", Const, 0}, - {"AF_PPP", Const, 0}, - {"AF_PPPOX", Const, 0}, - {"AF_PUP", Const, 0}, - {"AF_RDS", Const, 0}, - {"AF_RESERVED_36", Const, 0}, - {"AF_ROSE", Const, 0}, - {"AF_ROUTE", Const, 0}, - {"AF_RXRPC", Const, 0}, - {"AF_SCLUSTER", Const, 0}, - {"AF_SECURITY", Const, 0}, - {"AF_SIP", Const, 0}, - {"AF_SLOW", Const, 0}, - {"AF_SNA", Const, 0}, - {"AF_SYSTEM", Const, 0}, - {"AF_TIPC", Const, 0}, - {"AF_UNIX", Const, 0}, - {"AF_UNSPEC", Const, 0}, - {"AF_UTUN", Const, 16}, - {"AF_VENDOR00", Const, 0}, - {"AF_VENDOR01", Const, 0}, - {"AF_VENDOR02", Const, 0}, - {"AF_VENDOR03", Const, 0}, - {"AF_VENDOR04", Const, 0}, - {"AF_VENDOR05", Const, 0}, - {"AF_VENDOR06", Const, 0}, - {"AF_VENDOR07", Const, 0}, - {"AF_VENDOR08", Const, 0}, - {"AF_VENDOR09", Const, 0}, - {"AF_VENDOR10", Const, 0}, - {"AF_VENDOR11", Const, 0}, - {"AF_VENDOR12", Const, 0}, - {"AF_VENDOR13", Const, 0}, - {"AF_VENDOR14", Const, 0}, - {"AF_VENDOR15", Const, 0}, - {"AF_VENDOR16", Const, 0}, - {"AF_VENDOR17", Const, 0}, - {"AF_VENDOR18", Const, 0}, - {"AF_VENDOR19", Const, 0}, - {"AF_VENDOR20", Const, 0}, - {"AF_VENDOR21", Const, 0}, - {"AF_VENDOR22", Const, 0}, - {"AF_VENDOR23", Const, 0}, - {"AF_VENDOR24", Const, 0}, - {"AF_VENDOR25", Const, 0}, - {"AF_VENDOR26", Const, 0}, - {"AF_VENDOR27", Const, 0}, - {"AF_VENDOR28", Const, 0}, - {"AF_VENDOR29", Const, 0}, - {"AF_VENDOR30", Const, 0}, - {"AF_VENDOR31", Const, 0}, - {"AF_VENDOR32", Const, 0}, - {"AF_VENDOR33", Const, 0}, - {"AF_VENDOR34", Const, 0}, - {"AF_VENDOR35", Const, 0}, - {"AF_VENDOR36", Const, 0}, - {"AF_VENDOR37", Const, 0}, - {"AF_VENDOR38", Const, 0}, - {"AF_VENDOR39", Const, 0}, - {"AF_VENDOR40", Const, 0}, - {"AF_VENDOR41", Const, 0}, - {"AF_VENDOR42", Const, 0}, - {"AF_VENDOR43", Const, 0}, - {"AF_VENDOR44", Const, 0}, - {"AF_VENDOR45", Const, 0}, - {"AF_VENDOR46", Const, 0}, - {"AF_VENDOR47", Const, 0}, - {"AF_WANPIPE", Const, 0}, - {"AF_X25", Const, 0}, - {"AI_CANONNAME", Const, 1}, - {"AI_NUMERICHOST", Const, 1}, - {"AI_PASSIVE", Const, 1}, - {"APPLICATION_ERROR", Const, 0}, - {"ARPHRD_ADAPT", Const, 0}, - {"ARPHRD_APPLETLK", Const, 0}, - {"ARPHRD_ARCNET", Const, 0}, - {"ARPHRD_ASH", Const, 0}, - {"ARPHRD_ATM", Const, 0}, - {"ARPHRD_AX25", Const, 0}, - {"ARPHRD_BIF", Const, 0}, - {"ARPHRD_CHAOS", Const, 0}, - {"ARPHRD_CISCO", Const, 0}, - {"ARPHRD_CSLIP", Const, 0}, - {"ARPHRD_CSLIP6", Const, 0}, - {"ARPHRD_DDCMP", Const, 0}, - {"ARPHRD_DLCI", Const, 0}, - {"ARPHRD_ECONET", Const, 0}, - {"ARPHRD_EETHER", Const, 0}, - {"ARPHRD_ETHER", Const, 0}, - {"ARPHRD_EUI64", Const, 0}, - {"ARPHRD_FCAL", Const, 0}, - {"ARPHRD_FCFABRIC", Const, 0}, - {"ARPHRD_FCPL", Const, 0}, - {"ARPHRD_FCPP", Const, 0}, - {"ARPHRD_FDDI", Const, 0}, - {"ARPHRD_FRAD", Const, 0}, - {"ARPHRD_FRELAY", Const, 1}, - {"ARPHRD_HDLC", Const, 0}, - {"ARPHRD_HIPPI", Const, 0}, - {"ARPHRD_HWX25", Const, 0}, - {"ARPHRD_IEEE1394", Const, 0}, - {"ARPHRD_IEEE802", Const, 0}, - {"ARPHRD_IEEE80211", Const, 0}, - {"ARPHRD_IEEE80211_PRISM", Const, 0}, - {"ARPHRD_IEEE80211_RADIOTAP", Const, 0}, - {"ARPHRD_IEEE802154", Const, 0}, - {"ARPHRD_IEEE802154_PHY", Const, 0}, - {"ARPHRD_IEEE802_TR", Const, 0}, - {"ARPHRD_INFINIBAND", Const, 0}, - {"ARPHRD_IPDDP", Const, 0}, - {"ARPHRD_IPGRE", Const, 0}, - {"ARPHRD_IRDA", Const, 0}, - {"ARPHRD_LAPB", Const, 0}, - {"ARPHRD_LOCALTLK", Const, 0}, - {"ARPHRD_LOOPBACK", Const, 0}, - {"ARPHRD_METRICOM", Const, 0}, - {"ARPHRD_NETROM", Const, 0}, - {"ARPHRD_NONE", Const, 0}, - {"ARPHRD_PIMREG", Const, 0}, - {"ARPHRD_PPP", Const, 0}, - {"ARPHRD_PRONET", Const, 0}, - {"ARPHRD_RAWHDLC", Const, 0}, - {"ARPHRD_ROSE", Const, 0}, - {"ARPHRD_RSRVD", Const, 0}, - {"ARPHRD_SIT", Const, 0}, - {"ARPHRD_SKIP", Const, 0}, - {"ARPHRD_SLIP", Const, 0}, - {"ARPHRD_SLIP6", Const, 0}, - {"ARPHRD_STRIP", Const, 1}, - {"ARPHRD_TUNNEL", Const, 0}, - {"ARPHRD_TUNNEL6", Const, 0}, - {"ARPHRD_VOID", Const, 0}, - {"ARPHRD_X25", Const, 0}, - {"AUTHTYPE_CLIENT", Const, 0}, - {"AUTHTYPE_SERVER", Const, 0}, - {"Accept", Func, 0}, - {"Accept4", Func, 1}, - {"AcceptEx", Func, 0}, - {"Access", Func, 0}, - {"Acct", Func, 0}, - {"AddrinfoW", Type, 1}, - {"AddrinfoW.Addr", Field, 1}, - {"AddrinfoW.Addrlen", Field, 1}, - {"AddrinfoW.Canonname", Field, 1}, - {"AddrinfoW.Family", Field, 1}, - {"AddrinfoW.Flags", Field, 1}, - {"AddrinfoW.Next", Field, 1}, - {"AddrinfoW.Protocol", Field, 1}, - {"AddrinfoW.Socktype", Field, 1}, - {"Adjtime", Func, 0}, - {"Adjtimex", Func, 0}, - {"AllThreadsSyscall", Func, 16}, - {"AllThreadsSyscall6", Func, 16}, - {"AttachLsf", Func, 0}, - {"B0", Const, 0}, - {"B1000000", Const, 0}, - {"B110", Const, 0}, - {"B115200", Const, 0}, - {"B1152000", Const, 0}, - {"B1200", Const, 0}, - {"B134", Const, 0}, - {"B14400", Const, 1}, - {"B150", Const, 0}, - {"B1500000", Const, 0}, - {"B1800", Const, 0}, - {"B19200", Const, 0}, - {"B200", Const, 0}, - {"B2000000", Const, 0}, - {"B230400", Const, 0}, - {"B2400", Const, 0}, - {"B2500000", Const, 0}, - {"B28800", Const, 1}, - {"B300", Const, 0}, - {"B3000000", Const, 0}, - {"B3500000", Const, 0}, - {"B38400", Const, 0}, - {"B4000000", Const, 0}, - {"B460800", Const, 0}, - {"B4800", Const, 0}, - {"B50", Const, 0}, - {"B500000", Const, 0}, - {"B57600", Const, 0}, - {"B576000", Const, 0}, - {"B600", Const, 0}, - {"B7200", Const, 1}, - {"B75", Const, 0}, - {"B76800", Const, 1}, - {"B921600", Const, 0}, - {"B9600", Const, 0}, - {"BASE_PROTOCOL", Const, 2}, - {"BIOCFEEDBACK", Const, 0}, - {"BIOCFLUSH", Const, 0}, - {"BIOCGBLEN", Const, 0}, - {"BIOCGDIRECTION", Const, 0}, - {"BIOCGDIRFILT", Const, 1}, - {"BIOCGDLT", Const, 0}, - {"BIOCGDLTLIST", Const, 0}, - {"BIOCGETBUFMODE", Const, 0}, - {"BIOCGETIF", Const, 0}, - {"BIOCGETZMAX", Const, 0}, - {"BIOCGFEEDBACK", Const, 1}, - {"BIOCGFILDROP", Const, 1}, - {"BIOCGHDRCMPLT", Const, 0}, - {"BIOCGRSIG", Const, 0}, - {"BIOCGRTIMEOUT", Const, 0}, - {"BIOCGSEESENT", Const, 0}, - {"BIOCGSTATS", Const, 0}, - {"BIOCGSTATSOLD", Const, 1}, - {"BIOCGTSTAMP", Const, 1}, - {"BIOCIMMEDIATE", Const, 0}, - {"BIOCLOCK", Const, 0}, - {"BIOCPROMISC", Const, 0}, - {"BIOCROTZBUF", Const, 0}, - {"BIOCSBLEN", Const, 0}, - {"BIOCSDIRECTION", Const, 0}, - {"BIOCSDIRFILT", Const, 1}, - {"BIOCSDLT", Const, 0}, - {"BIOCSETBUFMODE", Const, 0}, - {"BIOCSETF", Const, 0}, - {"BIOCSETFNR", Const, 0}, - {"BIOCSETIF", Const, 0}, - {"BIOCSETWF", Const, 0}, - {"BIOCSETZBUF", Const, 0}, - {"BIOCSFEEDBACK", Const, 1}, - {"BIOCSFILDROP", Const, 1}, - {"BIOCSHDRCMPLT", Const, 0}, - {"BIOCSRSIG", Const, 0}, - {"BIOCSRTIMEOUT", Const, 0}, - {"BIOCSSEESENT", Const, 0}, - {"BIOCSTCPF", Const, 1}, - {"BIOCSTSTAMP", Const, 1}, - {"BIOCSUDPF", Const, 1}, - {"BIOCVERSION", Const, 0}, - {"BPF_A", Const, 0}, - {"BPF_ABS", Const, 0}, - {"BPF_ADD", Const, 0}, - {"BPF_ALIGNMENT", Const, 0}, - {"BPF_ALIGNMENT32", Const, 1}, - {"BPF_ALU", Const, 0}, - {"BPF_AND", Const, 0}, - {"BPF_B", Const, 0}, - {"BPF_BUFMODE_BUFFER", Const, 0}, - {"BPF_BUFMODE_ZBUF", Const, 0}, - {"BPF_DFLTBUFSIZE", Const, 1}, - {"BPF_DIRECTION_IN", Const, 1}, - {"BPF_DIRECTION_OUT", Const, 1}, - {"BPF_DIV", Const, 0}, - {"BPF_H", Const, 0}, - {"BPF_IMM", Const, 0}, - {"BPF_IND", Const, 0}, - {"BPF_JA", Const, 0}, - {"BPF_JEQ", Const, 0}, - {"BPF_JGE", Const, 0}, - {"BPF_JGT", Const, 0}, - {"BPF_JMP", Const, 0}, - {"BPF_JSET", Const, 0}, - {"BPF_K", Const, 0}, - {"BPF_LD", Const, 0}, - {"BPF_LDX", Const, 0}, - {"BPF_LEN", Const, 0}, - {"BPF_LSH", Const, 0}, - {"BPF_MAJOR_VERSION", Const, 0}, - {"BPF_MAXBUFSIZE", Const, 0}, - {"BPF_MAXINSNS", Const, 0}, - {"BPF_MEM", Const, 0}, - {"BPF_MEMWORDS", Const, 0}, - {"BPF_MINBUFSIZE", Const, 0}, - {"BPF_MINOR_VERSION", Const, 0}, - {"BPF_MISC", Const, 0}, - {"BPF_MSH", Const, 0}, - {"BPF_MUL", Const, 0}, - {"BPF_NEG", Const, 0}, - {"BPF_OR", Const, 0}, - {"BPF_RELEASE", Const, 0}, - {"BPF_RET", Const, 0}, - {"BPF_RSH", Const, 0}, - {"BPF_ST", Const, 0}, - {"BPF_STX", Const, 0}, - {"BPF_SUB", Const, 0}, - {"BPF_TAX", Const, 0}, - {"BPF_TXA", Const, 0}, - {"BPF_T_BINTIME", Const, 1}, - {"BPF_T_BINTIME_FAST", Const, 1}, - {"BPF_T_BINTIME_MONOTONIC", Const, 1}, - {"BPF_T_BINTIME_MONOTONIC_FAST", Const, 1}, - {"BPF_T_FAST", Const, 1}, - {"BPF_T_FLAG_MASK", Const, 1}, - {"BPF_T_FORMAT_MASK", Const, 1}, - {"BPF_T_MICROTIME", Const, 1}, - {"BPF_T_MICROTIME_FAST", Const, 1}, - {"BPF_T_MICROTIME_MONOTONIC", Const, 1}, - {"BPF_T_MICROTIME_MONOTONIC_FAST", Const, 1}, - {"BPF_T_MONOTONIC", Const, 1}, - {"BPF_T_MONOTONIC_FAST", Const, 1}, - {"BPF_T_NANOTIME", Const, 1}, - {"BPF_T_NANOTIME_FAST", Const, 1}, - {"BPF_T_NANOTIME_MONOTONIC", Const, 1}, - {"BPF_T_NANOTIME_MONOTONIC_FAST", Const, 1}, - {"BPF_T_NONE", Const, 1}, - {"BPF_T_NORMAL", Const, 1}, - {"BPF_W", Const, 0}, - {"BPF_X", Const, 0}, - {"BRKINT", Const, 0}, - {"Bind", Func, 0}, - {"BindToDevice", Func, 0}, - {"BpfBuflen", Func, 0}, - {"BpfDatalink", Func, 0}, - {"BpfHdr", Type, 0}, - {"BpfHdr.Caplen", Field, 0}, - {"BpfHdr.Datalen", Field, 0}, - {"BpfHdr.Hdrlen", Field, 0}, - {"BpfHdr.Pad_cgo_0", Field, 0}, - {"BpfHdr.Tstamp", Field, 0}, - {"BpfHeadercmpl", Func, 0}, - {"BpfInsn", Type, 0}, - {"BpfInsn.Code", Field, 0}, - {"BpfInsn.Jf", Field, 0}, - {"BpfInsn.Jt", Field, 0}, - {"BpfInsn.K", Field, 0}, - {"BpfInterface", Func, 0}, - {"BpfJump", Func, 0}, - {"BpfProgram", Type, 0}, - {"BpfProgram.Insns", Field, 0}, - {"BpfProgram.Len", Field, 0}, - {"BpfProgram.Pad_cgo_0", Field, 0}, - {"BpfStat", Type, 0}, - {"BpfStat.Capt", Field, 2}, - {"BpfStat.Drop", Field, 0}, - {"BpfStat.Padding", Field, 2}, - {"BpfStat.Recv", Field, 0}, - {"BpfStats", Func, 0}, - {"BpfStmt", Func, 0}, - {"BpfTimeout", Func, 0}, - {"BpfTimeval", Type, 2}, - {"BpfTimeval.Sec", Field, 2}, - {"BpfTimeval.Usec", Field, 2}, - {"BpfVersion", Type, 0}, - {"BpfVersion.Major", Field, 0}, - {"BpfVersion.Minor", Field, 0}, - {"BpfZbuf", Type, 0}, - {"BpfZbuf.Bufa", Field, 0}, - {"BpfZbuf.Bufb", Field, 0}, - {"BpfZbuf.Buflen", Field, 0}, - {"BpfZbufHeader", Type, 0}, - {"BpfZbufHeader.Kernel_gen", Field, 0}, - {"BpfZbufHeader.Kernel_len", Field, 0}, - {"BpfZbufHeader.User_gen", Field, 0}, - {"BpfZbufHeader.X_bzh_pad", Field, 0}, - {"ByHandleFileInformation", Type, 0}, - {"ByHandleFileInformation.CreationTime", Field, 0}, - {"ByHandleFileInformation.FileAttributes", Field, 0}, - {"ByHandleFileInformation.FileIndexHigh", Field, 0}, - {"ByHandleFileInformation.FileIndexLow", Field, 0}, - {"ByHandleFileInformation.FileSizeHigh", Field, 0}, - {"ByHandleFileInformation.FileSizeLow", Field, 0}, - {"ByHandleFileInformation.LastAccessTime", Field, 0}, - {"ByHandleFileInformation.LastWriteTime", Field, 0}, - {"ByHandleFileInformation.NumberOfLinks", Field, 0}, - {"ByHandleFileInformation.VolumeSerialNumber", Field, 0}, - {"BytePtrFromString", Func, 1}, - {"ByteSliceFromString", Func, 1}, - {"CCR0_FLUSH", Const, 1}, - {"CERT_CHAIN_POLICY_AUTHENTICODE", Const, 0}, - {"CERT_CHAIN_POLICY_AUTHENTICODE_TS", Const, 0}, - {"CERT_CHAIN_POLICY_BASE", Const, 0}, - {"CERT_CHAIN_POLICY_BASIC_CONSTRAINTS", Const, 0}, - {"CERT_CHAIN_POLICY_EV", Const, 0}, - {"CERT_CHAIN_POLICY_MICROSOFT_ROOT", Const, 0}, - {"CERT_CHAIN_POLICY_NT_AUTH", Const, 0}, - {"CERT_CHAIN_POLICY_SSL", Const, 0}, - {"CERT_E_CN_NO_MATCH", Const, 0}, - {"CERT_E_EXPIRED", Const, 0}, - {"CERT_E_PURPOSE", Const, 0}, - {"CERT_E_ROLE", Const, 0}, - {"CERT_E_UNTRUSTEDROOT", Const, 0}, - {"CERT_STORE_ADD_ALWAYS", Const, 0}, - {"CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG", Const, 0}, - {"CERT_STORE_PROV_MEMORY", Const, 0}, - {"CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT", Const, 0}, - {"CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT", Const, 0}, - {"CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT", Const, 0}, - {"CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT", Const, 0}, - {"CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT", Const, 0}, - {"CERT_TRUST_INVALID_BASIC_CONSTRAINTS", Const, 0}, - {"CERT_TRUST_INVALID_EXTENSION", Const, 0}, - {"CERT_TRUST_INVALID_NAME_CONSTRAINTS", Const, 0}, - {"CERT_TRUST_INVALID_POLICY_CONSTRAINTS", Const, 0}, - {"CERT_TRUST_IS_CYCLIC", Const, 0}, - {"CERT_TRUST_IS_EXPLICIT_DISTRUST", Const, 0}, - {"CERT_TRUST_IS_NOT_SIGNATURE_VALID", Const, 0}, - {"CERT_TRUST_IS_NOT_TIME_VALID", Const, 0}, - {"CERT_TRUST_IS_NOT_VALID_FOR_USAGE", Const, 0}, - {"CERT_TRUST_IS_OFFLINE_REVOCATION", Const, 0}, - {"CERT_TRUST_IS_REVOKED", Const, 0}, - {"CERT_TRUST_IS_UNTRUSTED_ROOT", Const, 0}, - {"CERT_TRUST_NO_ERROR", Const, 0}, - {"CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY", Const, 0}, - {"CERT_TRUST_REVOCATION_STATUS_UNKNOWN", Const, 0}, - {"CFLUSH", Const, 1}, - {"CLOCAL", Const, 0}, - {"CLONE_CHILD_CLEARTID", Const, 2}, - {"CLONE_CHILD_SETTID", Const, 2}, - {"CLONE_CLEAR_SIGHAND", Const, 20}, - {"CLONE_CSIGNAL", Const, 3}, - {"CLONE_DETACHED", Const, 2}, - {"CLONE_FILES", Const, 2}, - {"CLONE_FS", Const, 2}, - {"CLONE_INTO_CGROUP", Const, 20}, - {"CLONE_IO", Const, 2}, - {"CLONE_NEWCGROUP", Const, 20}, - {"CLONE_NEWIPC", Const, 2}, - {"CLONE_NEWNET", Const, 2}, - {"CLONE_NEWNS", Const, 2}, - {"CLONE_NEWPID", Const, 2}, - {"CLONE_NEWTIME", Const, 20}, - {"CLONE_NEWUSER", Const, 2}, - {"CLONE_NEWUTS", Const, 2}, - {"CLONE_PARENT", Const, 2}, - {"CLONE_PARENT_SETTID", Const, 2}, - {"CLONE_PID", Const, 3}, - {"CLONE_PIDFD", Const, 20}, - {"CLONE_PTRACE", Const, 2}, - {"CLONE_SETTLS", Const, 2}, - {"CLONE_SIGHAND", Const, 2}, - {"CLONE_SYSVSEM", Const, 2}, - {"CLONE_THREAD", Const, 2}, - {"CLONE_UNTRACED", Const, 2}, - {"CLONE_VFORK", Const, 2}, - {"CLONE_VM", Const, 2}, - {"CPUID_CFLUSH", Const, 1}, - {"CREAD", Const, 0}, - {"CREATE_ALWAYS", Const, 0}, - {"CREATE_NEW", Const, 0}, - {"CREATE_NEW_PROCESS_GROUP", Const, 1}, - {"CREATE_UNICODE_ENVIRONMENT", Const, 0}, - {"CRYPT_DEFAULT_CONTAINER_OPTIONAL", Const, 0}, - {"CRYPT_DELETEKEYSET", Const, 0}, - {"CRYPT_MACHINE_KEYSET", Const, 0}, - {"CRYPT_NEWKEYSET", Const, 0}, - {"CRYPT_SILENT", Const, 0}, - {"CRYPT_VERIFYCONTEXT", Const, 0}, - {"CS5", Const, 0}, - {"CS6", Const, 0}, - {"CS7", Const, 0}, - {"CS8", Const, 0}, - {"CSIZE", Const, 0}, - {"CSTART", Const, 1}, - {"CSTATUS", Const, 1}, - {"CSTOP", Const, 1}, - {"CSTOPB", Const, 0}, - {"CSUSP", Const, 1}, - {"CTL_MAXNAME", Const, 0}, - {"CTL_NET", Const, 0}, - {"CTL_QUERY", Const, 1}, - {"CTRL_BREAK_EVENT", Const, 1}, - {"CTRL_CLOSE_EVENT", Const, 14}, - {"CTRL_C_EVENT", Const, 1}, - {"CTRL_LOGOFF_EVENT", Const, 14}, - {"CTRL_SHUTDOWN_EVENT", Const, 14}, - {"CancelIo", Func, 0}, - {"CancelIoEx", Func, 1}, - {"CertAddCertificateContextToStore", Func, 0}, - {"CertChainContext", Type, 0}, - {"CertChainContext.ChainCount", Field, 0}, - {"CertChainContext.Chains", Field, 0}, - {"CertChainContext.HasRevocationFreshnessTime", Field, 0}, - {"CertChainContext.LowerQualityChainCount", Field, 0}, - {"CertChainContext.LowerQualityChains", Field, 0}, - {"CertChainContext.RevocationFreshnessTime", Field, 0}, - {"CertChainContext.Size", Field, 0}, - {"CertChainContext.TrustStatus", Field, 0}, - {"CertChainElement", Type, 0}, - {"CertChainElement.ApplicationUsage", Field, 0}, - {"CertChainElement.CertContext", Field, 0}, - {"CertChainElement.ExtendedErrorInfo", Field, 0}, - {"CertChainElement.IssuanceUsage", Field, 0}, - {"CertChainElement.RevocationInfo", Field, 0}, - {"CertChainElement.Size", Field, 0}, - {"CertChainElement.TrustStatus", Field, 0}, - {"CertChainPara", Type, 0}, - {"CertChainPara.CacheResync", Field, 0}, - {"CertChainPara.CheckRevocationFreshnessTime", Field, 0}, - {"CertChainPara.RequestedUsage", Field, 0}, - {"CertChainPara.RequstedIssuancePolicy", Field, 0}, - {"CertChainPara.RevocationFreshnessTime", Field, 0}, - {"CertChainPara.Size", Field, 0}, - {"CertChainPara.URLRetrievalTimeout", Field, 0}, - {"CertChainPolicyPara", Type, 0}, - {"CertChainPolicyPara.ExtraPolicyPara", Field, 0}, - {"CertChainPolicyPara.Flags", Field, 0}, - {"CertChainPolicyPara.Size", Field, 0}, - {"CertChainPolicyStatus", Type, 0}, - {"CertChainPolicyStatus.ChainIndex", Field, 0}, - {"CertChainPolicyStatus.ElementIndex", Field, 0}, - {"CertChainPolicyStatus.Error", Field, 0}, - {"CertChainPolicyStatus.ExtraPolicyStatus", Field, 0}, - {"CertChainPolicyStatus.Size", Field, 0}, - {"CertCloseStore", Func, 0}, - {"CertContext", Type, 0}, - {"CertContext.CertInfo", Field, 0}, - {"CertContext.EncodedCert", Field, 0}, - {"CertContext.EncodingType", Field, 0}, - {"CertContext.Length", Field, 0}, - {"CertContext.Store", Field, 0}, - {"CertCreateCertificateContext", Func, 0}, - {"CertEnhKeyUsage", Type, 0}, - {"CertEnhKeyUsage.Length", Field, 0}, - {"CertEnhKeyUsage.UsageIdentifiers", Field, 0}, - {"CertEnumCertificatesInStore", Func, 0}, - {"CertFreeCertificateChain", Func, 0}, - {"CertFreeCertificateContext", Func, 0}, - {"CertGetCertificateChain", Func, 0}, - {"CertInfo", Type, 11}, - {"CertOpenStore", Func, 0}, - {"CertOpenSystemStore", Func, 0}, - {"CertRevocationCrlInfo", Type, 11}, - {"CertRevocationInfo", Type, 0}, - {"CertRevocationInfo.CrlInfo", Field, 0}, - {"CertRevocationInfo.FreshnessTime", Field, 0}, - {"CertRevocationInfo.HasFreshnessTime", Field, 0}, - {"CertRevocationInfo.OidSpecificInfo", Field, 0}, - {"CertRevocationInfo.RevocationOid", Field, 0}, - {"CertRevocationInfo.RevocationResult", Field, 0}, - {"CertRevocationInfo.Size", Field, 0}, - {"CertSimpleChain", Type, 0}, - {"CertSimpleChain.Elements", Field, 0}, - {"CertSimpleChain.HasRevocationFreshnessTime", Field, 0}, - {"CertSimpleChain.NumElements", Field, 0}, - {"CertSimpleChain.RevocationFreshnessTime", Field, 0}, - {"CertSimpleChain.Size", Field, 0}, - {"CertSimpleChain.TrustListInfo", Field, 0}, - {"CertSimpleChain.TrustStatus", Field, 0}, - {"CertTrustListInfo", Type, 11}, - {"CertTrustStatus", Type, 0}, - {"CertTrustStatus.ErrorStatus", Field, 0}, - {"CertTrustStatus.InfoStatus", Field, 0}, - {"CertUsageMatch", Type, 0}, - {"CertUsageMatch.Type", Field, 0}, - {"CertUsageMatch.Usage", Field, 0}, - {"CertVerifyCertificateChainPolicy", Func, 0}, - {"Chdir", Func, 0}, - {"CheckBpfVersion", Func, 0}, - {"Chflags", Func, 0}, - {"Chmod", Func, 0}, - {"Chown", Func, 0}, - {"Chroot", Func, 0}, - {"Clearenv", Func, 0}, - {"Close", Func, 0}, - {"CloseHandle", Func, 0}, - {"CloseOnExec", Func, 0}, - {"Closesocket", Func, 0}, - {"CmsgLen", Func, 0}, - {"CmsgSpace", Func, 0}, - {"Cmsghdr", Type, 0}, - {"Cmsghdr.Len", Field, 0}, - {"Cmsghdr.Level", Field, 0}, - {"Cmsghdr.Type", Field, 0}, - {"Cmsghdr.X__cmsg_data", Field, 0}, - {"CommandLineToArgv", Func, 0}, - {"ComputerName", Func, 0}, - {"Conn", Type, 9}, - {"Connect", Func, 0}, - {"ConnectEx", Func, 1}, - {"ConvertSidToStringSid", Func, 0}, - {"ConvertStringSidToSid", Func, 0}, - {"CopySid", Func, 0}, - {"Creat", Func, 0}, - {"CreateDirectory", Func, 0}, - {"CreateFile", Func, 0}, - {"CreateFileMapping", Func, 0}, - {"CreateHardLink", Func, 4}, - {"CreateIoCompletionPort", Func, 0}, - {"CreatePipe", Func, 0}, - {"CreateProcess", Func, 0}, - {"CreateProcessAsUser", Func, 10}, - {"CreateSymbolicLink", Func, 4}, - {"CreateToolhelp32Snapshot", Func, 4}, - {"Credential", Type, 0}, - {"Credential.Gid", Field, 0}, - {"Credential.Groups", Field, 0}, - {"Credential.NoSetGroups", Field, 9}, - {"Credential.Uid", Field, 0}, - {"CryptAcquireContext", Func, 0}, - {"CryptGenRandom", Func, 0}, - {"CryptReleaseContext", Func, 0}, - {"DIOCBSFLUSH", Const, 1}, - {"DIOCOSFPFLUSH", Const, 1}, - {"DLL", Type, 0}, - {"DLL.Handle", Field, 0}, - {"DLL.Name", Field, 0}, - {"DLLError", Type, 0}, - {"DLLError.Err", Field, 0}, - {"DLLError.Msg", Field, 0}, - {"DLLError.ObjName", Field, 0}, - {"DLT_A429", Const, 0}, - {"DLT_A653_ICM", Const, 0}, - {"DLT_AIRONET_HEADER", Const, 0}, - {"DLT_AOS", Const, 1}, - {"DLT_APPLE_IP_OVER_IEEE1394", Const, 0}, - {"DLT_ARCNET", Const, 0}, - {"DLT_ARCNET_LINUX", Const, 0}, - {"DLT_ATM_CLIP", Const, 0}, - {"DLT_ATM_RFC1483", Const, 0}, - {"DLT_AURORA", Const, 0}, - {"DLT_AX25", Const, 0}, - {"DLT_AX25_KISS", Const, 0}, - {"DLT_BACNET_MS_TP", Const, 0}, - {"DLT_BLUETOOTH_HCI_H4", Const, 0}, - {"DLT_BLUETOOTH_HCI_H4_WITH_PHDR", Const, 0}, - {"DLT_CAN20B", Const, 0}, - {"DLT_CAN_SOCKETCAN", Const, 1}, - {"DLT_CHAOS", Const, 0}, - {"DLT_CHDLC", Const, 0}, - {"DLT_CISCO_IOS", Const, 0}, - {"DLT_C_HDLC", Const, 0}, - {"DLT_C_HDLC_WITH_DIR", Const, 0}, - {"DLT_DBUS", Const, 1}, - {"DLT_DECT", Const, 1}, - {"DLT_DOCSIS", Const, 0}, - {"DLT_DVB_CI", Const, 1}, - {"DLT_ECONET", Const, 0}, - {"DLT_EN10MB", Const, 0}, - {"DLT_EN3MB", Const, 0}, - {"DLT_ENC", Const, 0}, - {"DLT_ERF", Const, 0}, - {"DLT_ERF_ETH", Const, 0}, - {"DLT_ERF_POS", Const, 0}, - {"DLT_FC_2", Const, 1}, - {"DLT_FC_2_WITH_FRAME_DELIMS", Const, 1}, - {"DLT_FDDI", Const, 0}, - {"DLT_FLEXRAY", Const, 0}, - {"DLT_FRELAY", Const, 0}, - {"DLT_FRELAY_WITH_DIR", Const, 0}, - {"DLT_GCOM_SERIAL", Const, 0}, - {"DLT_GCOM_T1E1", Const, 0}, - {"DLT_GPF_F", Const, 0}, - {"DLT_GPF_T", Const, 0}, - {"DLT_GPRS_LLC", Const, 0}, - {"DLT_GSMTAP_ABIS", Const, 1}, - {"DLT_GSMTAP_UM", Const, 1}, - {"DLT_HDLC", Const, 1}, - {"DLT_HHDLC", Const, 0}, - {"DLT_HIPPI", Const, 1}, - {"DLT_IBM_SN", Const, 0}, - {"DLT_IBM_SP", Const, 0}, - {"DLT_IEEE802", Const, 0}, - {"DLT_IEEE802_11", Const, 0}, - {"DLT_IEEE802_11_RADIO", Const, 0}, - {"DLT_IEEE802_11_RADIO_AVS", Const, 0}, - {"DLT_IEEE802_15_4", Const, 0}, - {"DLT_IEEE802_15_4_LINUX", Const, 0}, - {"DLT_IEEE802_15_4_NOFCS", Const, 1}, - {"DLT_IEEE802_15_4_NONASK_PHY", Const, 0}, - {"DLT_IEEE802_16_MAC_CPS", Const, 0}, - {"DLT_IEEE802_16_MAC_CPS_RADIO", Const, 0}, - {"DLT_IPFILTER", Const, 0}, - {"DLT_IPMB", Const, 0}, - {"DLT_IPMB_LINUX", Const, 0}, - {"DLT_IPNET", Const, 1}, - {"DLT_IPOIB", Const, 1}, - {"DLT_IPV4", Const, 1}, - {"DLT_IPV6", Const, 1}, - {"DLT_IP_OVER_FC", Const, 0}, - {"DLT_JUNIPER_ATM1", Const, 0}, - {"DLT_JUNIPER_ATM2", Const, 0}, - {"DLT_JUNIPER_ATM_CEMIC", Const, 1}, - {"DLT_JUNIPER_CHDLC", Const, 0}, - {"DLT_JUNIPER_ES", Const, 0}, - {"DLT_JUNIPER_ETHER", Const, 0}, - {"DLT_JUNIPER_FIBRECHANNEL", Const, 1}, - {"DLT_JUNIPER_FRELAY", Const, 0}, - {"DLT_JUNIPER_GGSN", Const, 0}, - {"DLT_JUNIPER_ISM", Const, 0}, - {"DLT_JUNIPER_MFR", Const, 0}, - {"DLT_JUNIPER_MLFR", Const, 0}, - {"DLT_JUNIPER_MLPPP", Const, 0}, - {"DLT_JUNIPER_MONITOR", Const, 0}, - {"DLT_JUNIPER_PIC_PEER", Const, 0}, - {"DLT_JUNIPER_PPP", Const, 0}, - {"DLT_JUNIPER_PPPOE", Const, 0}, - {"DLT_JUNIPER_PPPOE_ATM", Const, 0}, - {"DLT_JUNIPER_SERVICES", Const, 0}, - {"DLT_JUNIPER_SRX_E2E", Const, 1}, - {"DLT_JUNIPER_ST", Const, 0}, - {"DLT_JUNIPER_VP", Const, 0}, - {"DLT_JUNIPER_VS", Const, 1}, - {"DLT_LAPB_WITH_DIR", Const, 0}, - {"DLT_LAPD", Const, 0}, - {"DLT_LIN", Const, 0}, - {"DLT_LINUX_EVDEV", Const, 1}, - {"DLT_LINUX_IRDA", Const, 0}, - {"DLT_LINUX_LAPD", Const, 0}, - {"DLT_LINUX_PPP_WITHDIRECTION", Const, 0}, - {"DLT_LINUX_SLL", Const, 0}, - {"DLT_LOOP", Const, 0}, - {"DLT_LTALK", Const, 0}, - {"DLT_MATCHING_MAX", Const, 1}, - {"DLT_MATCHING_MIN", Const, 1}, - {"DLT_MFR", Const, 0}, - {"DLT_MOST", Const, 0}, - {"DLT_MPEG_2_TS", Const, 1}, - {"DLT_MPLS", Const, 1}, - {"DLT_MTP2", Const, 0}, - {"DLT_MTP2_WITH_PHDR", Const, 0}, - {"DLT_MTP3", Const, 0}, - {"DLT_MUX27010", Const, 1}, - {"DLT_NETANALYZER", Const, 1}, - {"DLT_NETANALYZER_TRANSPARENT", Const, 1}, - {"DLT_NFC_LLCP", Const, 1}, - {"DLT_NFLOG", Const, 1}, - {"DLT_NG40", Const, 1}, - {"DLT_NULL", Const, 0}, - {"DLT_PCI_EXP", Const, 0}, - {"DLT_PFLOG", Const, 0}, - {"DLT_PFSYNC", Const, 0}, - {"DLT_PPI", Const, 0}, - {"DLT_PPP", Const, 0}, - {"DLT_PPP_BSDOS", Const, 0}, - {"DLT_PPP_ETHER", Const, 0}, - {"DLT_PPP_PPPD", Const, 0}, - {"DLT_PPP_SERIAL", Const, 0}, - {"DLT_PPP_WITH_DIR", Const, 0}, - {"DLT_PPP_WITH_DIRECTION", Const, 0}, - {"DLT_PRISM_HEADER", Const, 0}, - {"DLT_PRONET", Const, 0}, - {"DLT_RAIF1", Const, 0}, - {"DLT_RAW", Const, 0}, - {"DLT_RAWAF_MASK", Const, 1}, - {"DLT_RIO", Const, 0}, - {"DLT_SCCP", Const, 0}, - {"DLT_SITA", Const, 0}, - {"DLT_SLIP", Const, 0}, - {"DLT_SLIP_BSDOS", Const, 0}, - {"DLT_STANAG_5066_D_PDU", Const, 1}, - {"DLT_SUNATM", Const, 0}, - {"DLT_SYMANTEC_FIREWALL", Const, 0}, - {"DLT_TZSP", Const, 0}, - {"DLT_USB", Const, 0}, - {"DLT_USB_LINUX", Const, 0}, - {"DLT_USB_LINUX_MMAPPED", Const, 1}, - {"DLT_USER0", Const, 0}, - {"DLT_USER1", Const, 0}, - {"DLT_USER10", Const, 0}, - {"DLT_USER11", Const, 0}, - {"DLT_USER12", Const, 0}, - {"DLT_USER13", Const, 0}, - {"DLT_USER14", Const, 0}, - {"DLT_USER15", Const, 0}, - {"DLT_USER2", Const, 0}, - {"DLT_USER3", Const, 0}, - {"DLT_USER4", Const, 0}, - {"DLT_USER5", Const, 0}, - {"DLT_USER6", Const, 0}, - {"DLT_USER7", Const, 0}, - {"DLT_USER8", Const, 0}, - {"DLT_USER9", Const, 0}, - {"DLT_WIHART", Const, 1}, - {"DLT_X2E_SERIAL", Const, 0}, - {"DLT_X2E_XORAYA", Const, 0}, - {"DNSMXData", Type, 0}, - {"DNSMXData.NameExchange", Field, 0}, - {"DNSMXData.Pad", Field, 0}, - {"DNSMXData.Preference", Field, 0}, - {"DNSPTRData", Type, 0}, - {"DNSPTRData.Host", Field, 0}, - {"DNSRecord", Type, 0}, - {"DNSRecord.Data", Field, 0}, - {"DNSRecord.Dw", Field, 0}, - {"DNSRecord.Length", Field, 0}, - {"DNSRecord.Name", Field, 0}, - {"DNSRecord.Next", Field, 0}, - {"DNSRecord.Reserved", Field, 0}, - {"DNSRecord.Ttl", Field, 0}, - {"DNSRecord.Type", Field, 0}, - {"DNSSRVData", Type, 0}, - {"DNSSRVData.Pad", Field, 0}, - {"DNSSRVData.Port", Field, 0}, - {"DNSSRVData.Priority", Field, 0}, - {"DNSSRVData.Target", Field, 0}, - {"DNSSRVData.Weight", Field, 0}, - {"DNSTXTData", Type, 0}, - {"DNSTXTData.StringArray", Field, 0}, - {"DNSTXTData.StringCount", Field, 0}, - {"DNS_INFO_NO_RECORDS", Const, 4}, - {"DNS_TYPE_A", Const, 0}, - {"DNS_TYPE_A6", Const, 0}, - {"DNS_TYPE_AAAA", Const, 0}, - {"DNS_TYPE_ADDRS", Const, 0}, - {"DNS_TYPE_AFSDB", Const, 0}, - {"DNS_TYPE_ALL", Const, 0}, - {"DNS_TYPE_ANY", Const, 0}, - {"DNS_TYPE_ATMA", Const, 0}, - {"DNS_TYPE_AXFR", Const, 0}, - {"DNS_TYPE_CERT", Const, 0}, - {"DNS_TYPE_CNAME", Const, 0}, - {"DNS_TYPE_DHCID", Const, 0}, - {"DNS_TYPE_DNAME", Const, 0}, - {"DNS_TYPE_DNSKEY", Const, 0}, - {"DNS_TYPE_DS", Const, 0}, - {"DNS_TYPE_EID", Const, 0}, - {"DNS_TYPE_GID", Const, 0}, - {"DNS_TYPE_GPOS", Const, 0}, - {"DNS_TYPE_HINFO", Const, 0}, - {"DNS_TYPE_ISDN", Const, 0}, - {"DNS_TYPE_IXFR", Const, 0}, - {"DNS_TYPE_KEY", Const, 0}, - {"DNS_TYPE_KX", Const, 0}, - {"DNS_TYPE_LOC", Const, 0}, - {"DNS_TYPE_MAILA", Const, 0}, - {"DNS_TYPE_MAILB", Const, 0}, - {"DNS_TYPE_MB", Const, 0}, - {"DNS_TYPE_MD", Const, 0}, - {"DNS_TYPE_MF", Const, 0}, - {"DNS_TYPE_MG", Const, 0}, - {"DNS_TYPE_MINFO", Const, 0}, - {"DNS_TYPE_MR", Const, 0}, - {"DNS_TYPE_MX", Const, 0}, - {"DNS_TYPE_NAPTR", Const, 0}, - {"DNS_TYPE_NBSTAT", Const, 0}, - {"DNS_TYPE_NIMLOC", Const, 0}, - {"DNS_TYPE_NS", Const, 0}, - {"DNS_TYPE_NSAP", Const, 0}, - {"DNS_TYPE_NSAPPTR", Const, 0}, - {"DNS_TYPE_NSEC", Const, 0}, - {"DNS_TYPE_NULL", Const, 0}, - {"DNS_TYPE_NXT", Const, 0}, - {"DNS_TYPE_OPT", Const, 0}, - {"DNS_TYPE_PTR", Const, 0}, - {"DNS_TYPE_PX", Const, 0}, - {"DNS_TYPE_RP", Const, 0}, - {"DNS_TYPE_RRSIG", Const, 0}, - {"DNS_TYPE_RT", Const, 0}, - {"DNS_TYPE_SIG", Const, 0}, - {"DNS_TYPE_SINK", Const, 0}, - {"DNS_TYPE_SOA", Const, 0}, - {"DNS_TYPE_SRV", Const, 0}, - {"DNS_TYPE_TEXT", Const, 0}, - {"DNS_TYPE_TKEY", Const, 0}, - {"DNS_TYPE_TSIG", Const, 0}, - {"DNS_TYPE_UID", Const, 0}, - {"DNS_TYPE_UINFO", Const, 0}, - {"DNS_TYPE_UNSPEC", Const, 0}, - {"DNS_TYPE_WINS", Const, 0}, - {"DNS_TYPE_WINSR", Const, 0}, - {"DNS_TYPE_WKS", Const, 0}, - {"DNS_TYPE_X25", Const, 0}, - {"DT_BLK", Const, 0}, - {"DT_CHR", Const, 0}, - {"DT_DIR", Const, 0}, - {"DT_FIFO", Const, 0}, - {"DT_LNK", Const, 0}, - {"DT_REG", Const, 0}, - {"DT_SOCK", Const, 0}, - {"DT_UNKNOWN", Const, 0}, - {"DT_WHT", Const, 0}, - {"DUPLICATE_CLOSE_SOURCE", Const, 0}, - {"DUPLICATE_SAME_ACCESS", Const, 0}, - {"DeleteFile", Func, 0}, - {"DetachLsf", Func, 0}, - {"DeviceIoControl", Func, 4}, - {"Dirent", Type, 0}, - {"Dirent.Fileno", Field, 0}, - {"Dirent.Ino", Field, 0}, - {"Dirent.Name", Field, 0}, - {"Dirent.Namlen", Field, 0}, - {"Dirent.Off", Field, 0}, - {"Dirent.Pad0", Field, 12}, - {"Dirent.Pad1", Field, 12}, - {"Dirent.Pad_cgo_0", Field, 0}, - {"Dirent.Reclen", Field, 0}, - {"Dirent.Seekoff", Field, 0}, - {"Dirent.Type", Field, 0}, - {"Dirent.X__d_padding", Field, 3}, - {"DnsNameCompare", Func, 4}, - {"DnsQuery", Func, 0}, - {"DnsRecordListFree", Func, 0}, - {"DnsSectionAdditional", Const, 4}, - {"DnsSectionAnswer", Const, 4}, - {"DnsSectionAuthority", Const, 4}, - {"DnsSectionQuestion", Const, 4}, - {"Dup", Func, 0}, - {"Dup2", Func, 0}, - {"Dup3", Func, 2}, - {"DuplicateHandle", Func, 0}, - {"E2BIG", Const, 0}, - {"EACCES", Const, 0}, - {"EADDRINUSE", Const, 0}, - {"EADDRNOTAVAIL", Const, 0}, - {"EADV", Const, 0}, - {"EAFNOSUPPORT", Const, 0}, - {"EAGAIN", Const, 0}, - {"EALREADY", Const, 0}, - {"EAUTH", Const, 0}, - {"EBADARCH", Const, 0}, - {"EBADE", Const, 0}, - {"EBADEXEC", Const, 0}, - {"EBADF", Const, 0}, - {"EBADFD", Const, 0}, - {"EBADMACHO", Const, 0}, - {"EBADMSG", Const, 0}, - {"EBADR", Const, 0}, - {"EBADRPC", Const, 0}, - {"EBADRQC", Const, 0}, - {"EBADSLT", Const, 0}, - {"EBFONT", Const, 0}, - {"EBUSY", Const, 0}, - {"ECANCELED", Const, 0}, - {"ECAPMODE", Const, 1}, - {"ECHILD", Const, 0}, - {"ECHO", Const, 0}, - {"ECHOCTL", Const, 0}, - {"ECHOE", Const, 0}, - {"ECHOK", Const, 0}, - {"ECHOKE", Const, 0}, - {"ECHONL", Const, 0}, - {"ECHOPRT", Const, 0}, - {"ECHRNG", Const, 0}, - {"ECOMM", Const, 0}, - {"ECONNABORTED", Const, 0}, - {"ECONNREFUSED", Const, 0}, - {"ECONNRESET", Const, 0}, - {"EDEADLK", Const, 0}, - {"EDEADLOCK", Const, 0}, - {"EDESTADDRREQ", Const, 0}, - {"EDEVERR", Const, 0}, - {"EDOM", Const, 0}, - {"EDOOFUS", Const, 0}, - {"EDOTDOT", Const, 0}, - {"EDQUOT", Const, 0}, - {"EEXIST", Const, 0}, - {"EFAULT", Const, 0}, - {"EFBIG", Const, 0}, - {"EFER_LMA", Const, 1}, - {"EFER_LME", Const, 1}, - {"EFER_NXE", Const, 1}, - {"EFER_SCE", Const, 1}, - {"EFTYPE", Const, 0}, - {"EHOSTDOWN", Const, 0}, - {"EHOSTUNREACH", Const, 0}, - {"EHWPOISON", Const, 0}, - {"EIDRM", Const, 0}, - {"EILSEQ", Const, 0}, - {"EINPROGRESS", Const, 0}, - {"EINTR", Const, 0}, - {"EINVAL", Const, 0}, - {"EIO", Const, 0}, - {"EIPSEC", Const, 1}, - {"EISCONN", Const, 0}, - {"EISDIR", Const, 0}, - {"EISNAM", Const, 0}, - {"EKEYEXPIRED", Const, 0}, - {"EKEYREJECTED", Const, 0}, - {"EKEYREVOKED", Const, 0}, - {"EL2HLT", Const, 0}, - {"EL2NSYNC", Const, 0}, - {"EL3HLT", Const, 0}, - {"EL3RST", Const, 0}, - {"ELAST", Const, 0}, - {"ELF_NGREG", Const, 0}, - {"ELF_PRARGSZ", Const, 0}, - {"ELIBACC", Const, 0}, - {"ELIBBAD", Const, 0}, - {"ELIBEXEC", Const, 0}, - {"ELIBMAX", Const, 0}, - {"ELIBSCN", Const, 0}, - {"ELNRNG", Const, 0}, - {"ELOOP", Const, 0}, - {"EMEDIUMTYPE", Const, 0}, - {"EMFILE", Const, 0}, - {"EMLINK", Const, 0}, - {"EMSGSIZE", Const, 0}, - {"EMT_TAGOVF", Const, 1}, - {"EMULTIHOP", Const, 0}, - {"EMUL_ENABLED", Const, 1}, - {"EMUL_LINUX", Const, 1}, - {"EMUL_LINUX32", Const, 1}, - {"EMUL_MAXID", Const, 1}, - {"EMUL_NATIVE", Const, 1}, - {"ENAMETOOLONG", Const, 0}, - {"ENAVAIL", Const, 0}, - {"ENDRUNDISC", Const, 1}, - {"ENEEDAUTH", Const, 0}, - {"ENETDOWN", Const, 0}, - {"ENETRESET", Const, 0}, - {"ENETUNREACH", Const, 0}, - {"ENFILE", Const, 0}, - {"ENOANO", Const, 0}, - {"ENOATTR", Const, 0}, - {"ENOBUFS", Const, 0}, - {"ENOCSI", Const, 0}, - {"ENODATA", Const, 0}, - {"ENODEV", Const, 0}, - {"ENOENT", Const, 0}, - {"ENOEXEC", Const, 0}, - {"ENOKEY", Const, 0}, - {"ENOLCK", Const, 0}, - {"ENOLINK", Const, 0}, - {"ENOMEDIUM", Const, 0}, - {"ENOMEM", Const, 0}, - {"ENOMSG", Const, 0}, - {"ENONET", Const, 0}, - {"ENOPKG", Const, 0}, - {"ENOPOLICY", Const, 0}, - {"ENOPROTOOPT", Const, 0}, - {"ENOSPC", Const, 0}, - {"ENOSR", Const, 0}, - {"ENOSTR", Const, 0}, - {"ENOSYS", Const, 0}, - {"ENOTBLK", Const, 0}, - {"ENOTCAPABLE", Const, 0}, - {"ENOTCONN", Const, 0}, - {"ENOTDIR", Const, 0}, - {"ENOTEMPTY", Const, 0}, - {"ENOTNAM", Const, 0}, - {"ENOTRECOVERABLE", Const, 0}, - {"ENOTSOCK", Const, 0}, - {"ENOTSUP", Const, 0}, - {"ENOTTY", Const, 0}, - {"ENOTUNIQ", Const, 0}, - {"ENXIO", Const, 0}, - {"EN_SW_CTL_INF", Const, 1}, - {"EN_SW_CTL_PREC", Const, 1}, - {"EN_SW_CTL_ROUND", Const, 1}, - {"EN_SW_DATACHAIN", Const, 1}, - {"EN_SW_DENORM", Const, 1}, - {"EN_SW_INVOP", Const, 1}, - {"EN_SW_OVERFLOW", Const, 1}, - {"EN_SW_PRECLOSS", Const, 1}, - {"EN_SW_UNDERFLOW", Const, 1}, - {"EN_SW_ZERODIV", Const, 1}, - {"EOPNOTSUPP", Const, 0}, - {"EOVERFLOW", Const, 0}, - {"EOWNERDEAD", Const, 0}, - {"EPERM", Const, 0}, - {"EPFNOSUPPORT", Const, 0}, - {"EPIPE", Const, 0}, - {"EPOLLERR", Const, 0}, - {"EPOLLET", Const, 0}, - {"EPOLLHUP", Const, 0}, - {"EPOLLIN", Const, 0}, - {"EPOLLMSG", Const, 0}, - {"EPOLLONESHOT", Const, 0}, - {"EPOLLOUT", Const, 0}, - {"EPOLLPRI", Const, 0}, - {"EPOLLRDBAND", Const, 0}, - {"EPOLLRDHUP", Const, 0}, - {"EPOLLRDNORM", Const, 0}, - {"EPOLLWRBAND", Const, 0}, - {"EPOLLWRNORM", Const, 0}, - {"EPOLL_CLOEXEC", Const, 0}, - {"EPOLL_CTL_ADD", Const, 0}, - {"EPOLL_CTL_DEL", Const, 0}, - {"EPOLL_CTL_MOD", Const, 0}, - {"EPOLL_NONBLOCK", Const, 0}, - {"EPROCLIM", Const, 0}, - {"EPROCUNAVAIL", Const, 0}, - {"EPROGMISMATCH", Const, 0}, - {"EPROGUNAVAIL", Const, 0}, - {"EPROTO", Const, 0}, - {"EPROTONOSUPPORT", Const, 0}, - {"EPROTOTYPE", Const, 0}, - {"EPWROFF", Const, 0}, - {"EQFULL", Const, 16}, - {"ERANGE", Const, 0}, - {"EREMCHG", Const, 0}, - {"EREMOTE", Const, 0}, - {"EREMOTEIO", Const, 0}, - {"ERESTART", Const, 0}, - {"ERFKILL", Const, 0}, - {"EROFS", Const, 0}, - {"ERPCMISMATCH", Const, 0}, - {"ERROR_ACCESS_DENIED", Const, 0}, - {"ERROR_ALREADY_EXISTS", Const, 0}, - {"ERROR_BROKEN_PIPE", Const, 0}, - {"ERROR_BUFFER_OVERFLOW", Const, 0}, - {"ERROR_DIR_NOT_EMPTY", Const, 8}, - {"ERROR_ENVVAR_NOT_FOUND", Const, 0}, - {"ERROR_FILE_EXISTS", Const, 0}, - {"ERROR_FILE_NOT_FOUND", Const, 0}, - {"ERROR_HANDLE_EOF", Const, 2}, - {"ERROR_INSUFFICIENT_BUFFER", Const, 0}, - {"ERROR_IO_PENDING", Const, 0}, - {"ERROR_MOD_NOT_FOUND", Const, 0}, - {"ERROR_MORE_DATA", Const, 3}, - {"ERROR_NETNAME_DELETED", Const, 3}, - {"ERROR_NOT_FOUND", Const, 1}, - {"ERROR_NO_MORE_FILES", Const, 0}, - {"ERROR_OPERATION_ABORTED", Const, 0}, - {"ERROR_PATH_NOT_FOUND", Const, 0}, - {"ERROR_PRIVILEGE_NOT_HELD", Const, 4}, - {"ERROR_PROC_NOT_FOUND", Const, 0}, - {"ESHLIBVERS", Const, 0}, - {"ESHUTDOWN", Const, 0}, - {"ESOCKTNOSUPPORT", Const, 0}, - {"ESPIPE", Const, 0}, - {"ESRCH", Const, 0}, - {"ESRMNT", Const, 0}, - {"ESTALE", Const, 0}, - {"ESTRPIPE", Const, 0}, - {"ETHERCAP_JUMBO_MTU", Const, 1}, - {"ETHERCAP_VLAN_HWTAGGING", Const, 1}, - {"ETHERCAP_VLAN_MTU", Const, 1}, - {"ETHERMIN", Const, 1}, - {"ETHERMTU", Const, 1}, - {"ETHERMTU_JUMBO", Const, 1}, - {"ETHERTYPE_8023", Const, 1}, - {"ETHERTYPE_AARP", Const, 1}, - {"ETHERTYPE_ACCTON", Const, 1}, - {"ETHERTYPE_AEONIC", Const, 1}, - {"ETHERTYPE_ALPHA", Const, 1}, - {"ETHERTYPE_AMBER", Const, 1}, - {"ETHERTYPE_AMOEBA", Const, 1}, - {"ETHERTYPE_AOE", Const, 1}, - {"ETHERTYPE_APOLLO", Const, 1}, - {"ETHERTYPE_APOLLODOMAIN", Const, 1}, - {"ETHERTYPE_APPLETALK", Const, 1}, - {"ETHERTYPE_APPLITEK", Const, 1}, - {"ETHERTYPE_ARGONAUT", Const, 1}, - {"ETHERTYPE_ARP", Const, 1}, - {"ETHERTYPE_AT", Const, 1}, - {"ETHERTYPE_ATALK", Const, 1}, - {"ETHERTYPE_ATOMIC", Const, 1}, - {"ETHERTYPE_ATT", Const, 1}, - {"ETHERTYPE_ATTSTANFORD", Const, 1}, - {"ETHERTYPE_AUTOPHON", Const, 1}, - {"ETHERTYPE_AXIS", Const, 1}, - {"ETHERTYPE_BCLOOP", Const, 1}, - {"ETHERTYPE_BOFL", Const, 1}, - {"ETHERTYPE_CABLETRON", Const, 1}, - {"ETHERTYPE_CHAOS", Const, 1}, - {"ETHERTYPE_COMDESIGN", Const, 1}, - {"ETHERTYPE_COMPUGRAPHIC", Const, 1}, - {"ETHERTYPE_COUNTERPOINT", Const, 1}, - {"ETHERTYPE_CRONUS", Const, 1}, - {"ETHERTYPE_CRONUSVLN", Const, 1}, - {"ETHERTYPE_DCA", Const, 1}, - {"ETHERTYPE_DDE", Const, 1}, - {"ETHERTYPE_DEBNI", Const, 1}, - {"ETHERTYPE_DECAM", Const, 1}, - {"ETHERTYPE_DECCUST", Const, 1}, - {"ETHERTYPE_DECDIAG", Const, 1}, - {"ETHERTYPE_DECDNS", Const, 1}, - {"ETHERTYPE_DECDTS", Const, 1}, - {"ETHERTYPE_DECEXPER", Const, 1}, - {"ETHERTYPE_DECLAST", Const, 1}, - {"ETHERTYPE_DECLTM", Const, 1}, - {"ETHERTYPE_DECMUMPS", Const, 1}, - {"ETHERTYPE_DECNETBIOS", Const, 1}, - {"ETHERTYPE_DELTACON", Const, 1}, - {"ETHERTYPE_DIDDLE", Const, 1}, - {"ETHERTYPE_DLOG1", Const, 1}, - {"ETHERTYPE_DLOG2", Const, 1}, - {"ETHERTYPE_DN", Const, 1}, - {"ETHERTYPE_DOGFIGHT", Const, 1}, - {"ETHERTYPE_DSMD", Const, 1}, - {"ETHERTYPE_ECMA", Const, 1}, - {"ETHERTYPE_ENCRYPT", Const, 1}, - {"ETHERTYPE_ES", Const, 1}, - {"ETHERTYPE_EXCELAN", Const, 1}, - {"ETHERTYPE_EXPERDATA", Const, 1}, - {"ETHERTYPE_FLIP", Const, 1}, - {"ETHERTYPE_FLOWCONTROL", Const, 1}, - {"ETHERTYPE_FRARP", Const, 1}, - {"ETHERTYPE_GENDYN", Const, 1}, - {"ETHERTYPE_HAYES", Const, 1}, - {"ETHERTYPE_HIPPI_FP", Const, 1}, - {"ETHERTYPE_HITACHI", Const, 1}, - {"ETHERTYPE_HP", Const, 1}, - {"ETHERTYPE_IEEEPUP", Const, 1}, - {"ETHERTYPE_IEEEPUPAT", Const, 1}, - {"ETHERTYPE_IMLBL", Const, 1}, - {"ETHERTYPE_IMLBLDIAG", Const, 1}, - {"ETHERTYPE_IP", Const, 1}, - {"ETHERTYPE_IPAS", Const, 1}, - {"ETHERTYPE_IPV6", Const, 1}, - {"ETHERTYPE_IPX", Const, 1}, - {"ETHERTYPE_IPXNEW", Const, 1}, - {"ETHERTYPE_KALPANA", Const, 1}, - {"ETHERTYPE_LANBRIDGE", Const, 1}, - {"ETHERTYPE_LANPROBE", Const, 1}, - {"ETHERTYPE_LAT", Const, 1}, - {"ETHERTYPE_LBACK", Const, 1}, - {"ETHERTYPE_LITTLE", Const, 1}, - {"ETHERTYPE_LLDP", Const, 1}, - {"ETHERTYPE_LOGICRAFT", Const, 1}, - {"ETHERTYPE_LOOPBACK", Const, 1}, - {"ETHERTYPE_MATRA", Const, 1}, - {"ETHERTYPE_MAX", Const, 1}, - {"ETHERTYPE_MERIT", Const, 1}, - {"ETHERTYPE_MICP", Const, 1}, - {"ETHERTYPE_MOPDL", Const, 1}, - {"ETHERTYPE_MOPRC", Const, 1}, - {"ETHERTYPE_MOTOROLA", Const, 1}, - {"ETHERTYPE_MPLS", Const, 1}, - {"ETHERTYPE_MPLS_MCAST", Const, 1}, - {"ETHERTYPE_MUMPS", Const, 1}, - {"ETHERTYPE_NBPCC", Const, 1}, - {"ETHERTYPE_NBPCLAIM", Const, 1}, - {"ETHERTYPE_NBPCLREQ", Const, 1}, - {"ETHERTYPE_NBPCLRSP", Const, 1}, - {"ETHERTYPE_NBPCREQ", Const, 1}, - {"ETHERTYPE_NBPCRSP", Const, 1}, - {"ETHERTYPE_NBPDG", Const, 1}, - {"ETHERTYPE_NBPDGB", Const, 1}, - {"ETHERTYPE_NBPDLTE", Const, 1}, - {"ETHERTYPE_NBPRAR", Const, 1}, - {"ETHERTYPE_NBPRAS", Const, 1}, - {"ETHERTYPE_NBPRST", Const, 1}, - {"ETHERTYPE_NBPSCD", Const, 1}, - {"ETHERTYPE_NBPVCD", Const, 1}, - {"ETHERTYPE_NBS", Const, 1}, - {"ETHERTYPE_NCD", Const, 1}, - {"ETHERTYPE_NESTAR", Const, 1}, - {"ETHERTYPE_NETBEUI", Const, 1}, - {"ETHERTYPE_NOVELL", Const, 1}, - {"ETHERTYPE_NS", Const, 1}, - {"ETHERTYPE_NSAT", Const, 1}, - {"ETHERTYPE_NSCOMPAT", Const, 1}, - {"ETHERTYPE_NTRAILER", Const, 1}, - {"ETHERTYPE_OS9", Const, 1}, - {"ETHERTYPE_OS9NET", Const, 1}, - {"ETHERTYPE_PACER", Const, 1}, - {"ETHERTYPE_PAE", Const, 1}, - {"ETHERTYPE_PCS", Const, 1}, - {"ETHERTYPE_PLANNING", Const, 1}, - {"ETHERTYPE_PPP", Const, 1}, - {"ETHERTYPE_PPPOE", Const, 1}, - {"ETHERTYPE_PPPOEDISC", Const, 1}, - {"ETHERTYPE_PRIMENTS", Const, 1}, - {"ETHERTYPE_PUP", Const, 1}, - {"ETHERTYPE_PUPAT", Const, 1}, - {"ETHERTYPE_QINQ", Const, 1}, - {"ETHERTYPE_RACAL", Const, 1}, - {"ETHERTYPE_RATIONAL", Const, 1}, - {"ETHERTYPE_RAWFR", Const, 1}, - {"ETHERTYPE_RCL", Const, 1}, - {"ETHERTYPE_RDP", Const, 1}, - {"ETHERTYPE_RETIX", Const, 1}, - {"ETHERTYPE_REVARP", Const, 1}, - {"ETHERTYPE_SCA", Const, 1}, - {"ETHERTYPE_SECTRA", Const, 1}, - {"ETHERTYPE_SECUREDATA", Const, 1}, - {"ETHERTYPE_SGITW", Const, 1}, - {"ETHERTYPE_SG_BOUNCE", Const, 1}, - {"ETHERTYPE_SG_DIAG", Const, 1}, - {"ETHERTYPE_SG_NETGAMES", Const, 1}, - {"ETHERTYPE_SG_RESV", Const, 1}, - {"ETHERTYPE_SIMNET", Const, 1}, - {"ETHERTYPE_SLOW", Const, 1}, - {"ETHERTYPE_SLOWPROTOCOLS", Const, 1}, - {"ETHERTYPE_SNA", Const, 1}, - {"ETHERTYPE_SNMP", Const, 1}, - {"ETHERTYPE_SONIX", Const, 1}, - {"ETHERTYPE_SPIDER", Const, 1}, - {"ETHERTYPE_SPRITE", Const, 1}, - {"ETHERTYPE_STP", Const, 1}, - {"ETHERTYPE_TALARIS", Const, 1}, - {"ETHERTYPE_TALARISMC", Const, 1}, - {"ETHERTYPE_TCPCOMP", Const, 1}, - {"ETHERTYPE_TCPSM", Const, 1}, - {"ETHERTYPE_TEC", Const, 1}, - {"ETHERTYPE_TIGAN", Const, 1}, - {"ETHERTYPE_TRAIL", Const, 1}, - {"ETHERTYPE_TRANSETHER", Const, 1}, - {"ETHERTYPE_TYMSHARE", Const, 1}, - {"ETHERTYPE_UBBST", Const, 1}, - {"ETHERTYPE_UBDEBUG", Const, 1}, - {"ETHERTYPE_UBDIAGLOOP", Const, 1}, - {"ETHERTYPE_UBDL", Const, 1}, - {"ETHERTYPE_UBNIU", Const, 1}, - {"ETHERTYPE_UBNMC", Const, 1}, - {"ETHERTYPE_VALID", Const, 1}, - {"ETHERTYPE_VARIAN", Const, 1}, - {"ETHERTYPE_VAXELN", Const, 1}, - {"ETHERTYPE_VEECO", Const, 1}, - {"ETHERTYPE_VEXP", Const, 1}, - {"ETHERTYPE_VGLAB", Const, 1}, - {"ETHERTYPE_VINES", Const, 1}, - {"ETHERTYPE_VINESECHO", Const, 1}, - {"ETHERTYPE_VINESLOOP", Const, 1}, - {"ETHERTYPE_VITAL", Const, 1}, - {"ETHERTYPE_VLAN", Const, 1}, - {"ETHERTYPE_VLTLMAN", Const, 1}, - {"ETHERTYPE_VPROD", Const, 1}, - {"ETHERTYPE_VURESERVED", Const, 1}, - {"ETHERTYPE_WATERLOO", Const, 1}, - {"ETHERTYPE_WELLFLEET", Const, 1}, - {"ETHERTYPE_X25", Const, 1}, - {"ETHERTYPE_X75", Const, 1}, - {"ETHERTYPE_XNSSM", Const, 1}, - {"ETHERTYPE_XTP", Const, 1}, - {"ETHER_ADDR_LEN", Const, 1}, - {"ETHER_ALIGN", Const, 1}, - {"ETHER_CRC_LEN", Const, 1}, - {"ETHER_CRC_POLY_BE", Const, 1}, - {"ETHER_CRC_POLY_LE", Const, 1}, - {"ETHER_HDR_LEN", Const, 1}, - {"ETHER_MAX_DIX_LEN", Const, 1}, - {"ETHER_MAX_LEN", Const, 1}, - {"ETHER_MAX_LEN_JUMBO", Const, 1}, - {"ETHER_MIN_LEN", Const, 1}, - {"ETHER_PPPOE_ENCAP_LEN", Const, 1}, - {"ETHER_TYPE_LEN", Const, 1}, - {"ETHER_VLAN_ENCAP_LEN", Const, 1}, - {"ETH_P_1588", Const, 0}, - {"ETH_P_8021Q", Const, 0}, - {"ETH_P_802_2", Const, 0}, - {"ETH_P_802_3", Const, 0}, - {"ETH_P_AARP", Const, 0}, - {"ETH_P_ALL", Const, 0}, - {"ETH_P_AOE", Const, 0}, - {"ETH_P_ARCNET", Const, 0}, - {"ETH_P_ARP", Const, 0}, - {"ETH_P_ATALK", Const, 0}, - {"ETH_P_ATMFATE", Const, 0}, - {"ETH_P_ATMMPOA", Const, 0}, - {"ETH_P_AX25", Const, 0}, - {"ETH_P_BPQ", Const, 0}, - {"ETH_P_CAIF", Const, 0}, - {"ETH_P_CAN", Const, 0}, - {"ETH_P_CONTROL", Const, 0}, - {"ETH_P_CUST", Const, 0}, - {"ETH_P_DDCMP", Const, 0}, - {"ETH_P_DEC", Const, 0}, - {"ETH_P_DIAG", Const, 0}, - {"ETH_P_DNA_DL", Const, 0}, - {"ETH_P_DNA_RC", Const, 0}, - {"ETH_P_DNA_RT", Const, 0}, - {"ETH_P_DSA", Const, 0}, - {"ETH_P_ECONET", Const, 0}, - {"ETH_P_EDSA", Const, 0}, - {"ETH_P_FCOE", Const, 0}, - {"ETH_P_FIP", Const, 0}, - {"ETH_P_HDLC", Const, 0}, - {"ETH_P_IEEE802154", Const, 0}, - {"ETH_P_IEEEPUP", Const, 0}, - {"ETH_P_IEEEPUPAT", Const, 0}, - {"ETH_P_IP", Const, 0}, - {"ETH_P_IPV6", Const, 0}, - {"ETH_P_IPX", Const, 0}, - {"ETH_P_IRDA", Const, 0}, - {"ETH_P_LAT", Const, 0}, - {"ETH_P_LINK_CTL", Const, 0}, - {"ETH_P_LOCALTALK", Const, 0}, - {"ETH_P_LOOP", Const, 0}, - {"ETH_P_MOBITEX", Const, 0}, - {"ETH_P_MPLS_MC", Const, 0}, - {"ETH_P_MPLS_UC", Const, 0}, - {"ETH_P_PAE", Const, 0}, - {"ETH_P_PAUSE", Const, 0}, - {"ETH_P_PHONET", Const, 0}, - {"ETH_P_PPPTALK", Const, 0}, - {"ETH_P_PPP_DISC", Const, 0}, - {"ETH_P_PPP_MP", Const, 0}, - {"ETH_P_PPP_SES", Const, 0}, - {"ETH_P_PUP", Const, 0}, - {"ETH_P_PUPAT", Const, 0}, - {"ETH_P_RARP", Const, 0}, - {"ETH_P_SCA", Const, 0}, - {"ETH_P_SLOW", Const, 0}, - {"ETH_P_SNAP", Const, 0}, - {"ETH_P_TEB", Const, 0}, - {"ETH_P_TIPC", Const, 0}, - {"ETH_P_TRAILER", Const, 0}, - {"ETH_P_TR_802_2", Const, 0}, - {"ETH_P_WAN_PPP", Const, 0}, - {"ETH_P_WCCP", Const, 0}, - {"ETH_P_X25", Const, 0}, - {"ETIME", Const, 0}, - {"ETIMEDOUT", Const, 0}, - {"ETOOMANYREFS", Const, 0}, - {"ETXTBSY", Const, 0}, - {"EUCLEAN", Const, 0}, - {"EUNATCH", Const, 0}, - {"EUSERS", Const, 0}, - {"EVFILT_AIO", Const, 0}, - {"EVFILT_FS", Const, 0}, - {"EVFILT_LIO", Const, 0}, - {"EVFILT_MACHPORT", Const, 0}, - {"EVFILT_PROC", Const, 0}, - {"EVFILT_READ", Const, 0}, - {"EVFILT_SIGNAL", Const, 0}, - {"EVFILT_SYSCOUNT", Const, 0}, - {"EVFILT_THREADMARKER", Const, 0}, - {"EVFILT_TIMER", Const, 0}, - {"EVFILT_USER", Const, 0}, - {"EVFILT_VM", Const, 0}, - {"EVFILT_VNODE", Const, 0}, - {"EVFILT_WRITE", Const, 0}, - {"EV_ADD", Const, 0}, - {"EV_CLEAR", Const, 0}, - {"EV_DELETE", Const, 0}, - {"EV_DISABLE", Const, 0}, - {"EV_DISPATCH", Const, 0}, - {"EV_DROP", Const, 3}, - {"EV_ENABLE", Const, 0}, - {"EV_EOF", Const, 0}, - {"EV_ERROR", Const, 0}, - {"EV_FLAG0", Const, 0}, - {"EV_FLAG1", Const, 0}, - {"EV_ONESHOT", Const, 0}, - {"EV_OOBAND", Const, 0}, - {"EV_POLL", Const, 0}, - {"EV_RECEIPT", Const, 0}, - {"EV_SYSFLAGS", Const, 0}, - {"EWINDOWS", Const, 0}, - {"EWOULDBLOCK", Const, 0}, - {"EXDEV", Const, 0}, - {"EXFULL", Const, 0}, - {"EXTA", Const, 0}, - {"EXTB", Const, 0}, - {"EXTPROC", Const, 0}, - {"Environ", Func, 0}, - {"EpollCreate", Func, 0}, - {"EpollCreate1", Func, 0}, - {"EpollCtl", Func, 0}, - {"EpollEvent", Type, 0}, - {"EpollEvent.Events", Field, 0}, - {"EpollEvent.Fd", Field, 0}, - {"EpollEvent.Pad", Field, 0}, - {"EpollEvent.PadFd", Field, 0}, - {"EpollWait", Func, 0}, - {"Errno", Type, 0}, - {"EscapeArg", Func, 0}, - {"Exchangedata", Func, 0}, - {"Exec", Func, 0}, - {"Exit", Func, 0}, - {"ExitProcess", Func, 0}, - {"FD_CLOEXEC", Const, 0}, - {"FD_SETSIZE", Const, 0}, - {"FILE_ACTION_ADDED", Const, 0}, - {"FILE_ACTION_MODIFIED", Const, 0}, - {"FILE_ACTION_REMOVED", Const, 0}, - {"FILE_ACTION_RENAMED_NEW_NAME", Const, 0}, - {"FILE_ACTION_RENAMED_OLD_NAME", Const, 0}, - {"FILE_APPEND_DATA", Const, 0}, - {"FILE_ATTRIBUTE_ARCHIVE", Const, 0}, - {"FILE_ATTRIBUTE_DIRECTORY", Const, 0}, - {"FILE_ATTRIBUTE_HIDDEN", Const, 0}, - {"FILE_ATTRIBUTE_NORMAL", Const, 0}, - {"FILE_ATTRIBUTE_READONLY", Const, 0}, - {"FILE_ATTRIBUTE_REPARSE_POINT", Const, 4}, - {"FILE_ATTRIBUTE_SYSTEM", Const, 0}, - {"FILE_BEGIN", Const, 0}, - {"FILE_CURRENT", Const, 0}, - {"FILE_END", Const, 0}, - {"FILE_FLAG_BACKUP_SEMANTICS", Const, 0}, - {"FILE_FLAG_OPEN_REPARSE_POINT", Const, 4}, - {"FILE_FLAG_OVERLAPPED", Const, 0}, - {"FILE_LIST_DIRECTORY", Const, 0}, - {"FILE_MAP_COPY", Const, 0}, - {"FILE_MAP_EXECUTE", Const, 0}, - {"FILE_MAP_READ", Const, 0}, - {"FILE_MAP_WRITE", Const, 0}, - {"FILE_NOTIFY_CHANGE_ATTRIBUTES", Const, 0}, - {"FILE_NOTIFY_CHANGE_CREATION", Const, 0}, - {"FILE_NOTIFY_CHANGE_DIR_NAME", Const, 0}, - {"FILE_NOTIFY_CHANGE_FILE_NAME", Const, 0}, - {"FILE_NOTIFY_CHANGE_LAST_ACCESS", Const, 0}, - {"FILE_NOTIFY_CHANGE_LAST_WRITE", Const, 0}, - {"FILE_NOTIFY_CHANGE_SIZE", Const, 0}, - {"FILE_SHARE_DELETE", Const, 0}, - {"FILE_SHARE_READ", Const, 0}, - {"FILE_SHARE_WRITE", Const, 0}, - {"FILE_SKIP_COMPLETION_PORT_ON_SUCCESS", Const, 2}, - {"FILE_SKIP_SET_EVENT_ON_HANDLE", Const, 2}, - {"FILE_TYPE_CHAR", Const, 0}, - {"FILE_TYPE_DISK", Const, 0}, - {"FILE_TYPE_PIPE", Const, 0}, - {"FILE_TYPE_REMOTE", Const, 0}, - {"FILE_TYPE_UNKNOWN", Const, 0}, - {"FILE_WRITE_ATTRIBUTES", Const, 0}, - {"FLUSHO", Const, 0}, - {"FORMAT_MESSAGE_ALLOCATE_BUFFER", Const, 0}, - {"FORMAT_MESSAGE_ARGUMENT_ARRAY", Const, 0}, - {"FORMAT_MESSAGE_FROM_HMODULE", Const, 0}, - {"FORMAT_MESSAGE_FROM_STRING", Const, 0}, - {"FORMAT_MESSAGE_FROM_SYSTEM", Const, 0}, - {"FORMAT_MESSAGE_IGNORE_INSERTS", Const, 0}, - {"FORMAT_MESSAGE_MAX_WIDTH_MASK", Const, 0}, - {"FSCTL_GET_REPARSE_POINT", Const, 4}, - {"F_ADDFILESIGS", Const, 0}, - {"F_ADDSIGS", Const, 0}, - {"F_ALLOCATEALL", Const, 0}, - {"F_ALLOCATECONTIG", Const, 0}, - {"F_CANCEL", Const, 0}, - {"F_CHKCLEAN", Const, 0}, - {"F_CLOSEM", Const, 1}, - {"F_DUP2FD", Const, 0}, - {"F_DUP2FD_CLOEXEC", Const, 1}, - {"F_DUPFD", Const, 0}, - {"F_DUPFD_CLOEXEC", Const, 0}, - {"F_EXLCK", Const, 0}, - {"F_FINDSIGS", Const, 16}, - {"F_FLUSH_DATA", Const, 0}, - {"F_FREEZE_FS", Const, 0}, - {"F_FSCTL", Const, 1}, - {"F_FSDIRMASK", Const, 1}, - {"F_FSIN", Const, 1}, - {"F_FSINOUT", Const, 1}, - {"F_FSOUT", Const, 1}, - {"F_FSPRIV", Const, 1}, - {"F_FSVOID", Const, 1}, - {"F_FULLFSYNC", Const, 0}, - {"F_GETCODEDIR", Const, 16}, - {"F_GETFD", Const, 0}, - {"F_GETFL", Const, 0}, - {"F_GETLEASE", Const, 0}, - {"F_GETLK", Const, 0}, - {"F_GETLK64", Const, 0}, - {"F_GETLKPID", Const, 0}, - {"F_GETNOSIGPIPE", Const, 0}, - {"F_GETOWN", Const, 0}, - {"F_GETOWN_EX", Const, 0}, - {"F_GETPATH", Const, 0}, - {"F_GETPATH_MTMINFO", Const, 0}, - {"F_GETPIPE_SZ", Const, 0}, - {"F_GETPROTECTIONCLASS", Const, 0}, - {"F_GETPROTECTIONLEVEL", Const, 16}, - {"F_GETSIG", Const, 0}, - {"F_GLOBAL_NOCACHE", Const, 0}, - {"F_LOCK", Const, 0}, - {"F_LOG2PHYS", Const, 0}, - {"F_LOG2PHYS_EXT", Const, 0}, - {"F_MARKDEPENDENCY", Const, 0}, - {"F_MAXFD", Const, 1}, - {"F_NOCACHE", Const, 0}, - {"F_NODIRECT", Const, 0}, - {"F_NOTIFY", Const, 0}, - {"F_OGETLK", Const, 0}, - {"F_OK", Const, 0}, - {"F_OSETLK", Const, 0}, - {"F_OSETLKW", Const, 0}, - {"F_PARAM_MASK", Const, 1}, - {"F_PARAM_MAX", Const, 1}, - {"F_PATHPKG_CHECK", Const, 0}, - {"F_PEOFPOSMODE", Const, 0}, - {"F_PREALLOCATE", Const, 0}, - {"F_RDADVISE", Const, 0}, - {"F_RDAHEAD", Const, 0}, - {"F_RDLCK", Const, 0}, - {"F_READAHEAD", Const, 0}, - {"F_READBOOTSTRAP", Const, 0}, - {"F_SETBACKINGSTORE", Const, 0}, - {"F_SETFD", Const, 0}, - {"F_SETFL", Const, 0}, - {"F_SETLEASE", Const, 0}, - {"F_SETLK", Const, 0}, - {"F_SETLK64", Const, 0}, - {"F_SETLKW", Const, 0}, - {"F_SETLKW64", Const, 0}, - {"F_SETLKWTIMEOUT", Const, 16}, - {"F_SETLK_REMOTE", Const, 0}, - {"F_SETNOSIGPIPE", Const, 0}, - {"F_SETOWN", Const, 0}, - {"F_SETOWN_EX", Const, 0}, - {"F_SETPIPE_SZ", Const, 0}, - {"F_SETPROTECTIONCLASS", Const, 0}, - {"F_SETSIG", Const, 0}, - {"F_SETSIZE", Const, 0}, - {"F_SHLCK", Const, 0}, - {"F_SINGLE_WRITER", Const, 16}, - {"F_TEST", Const, 0}, - {"F_THAW_FS", Const, 0}, - {"F_TLOCK", Const, 0}, - {"F_TRANSCODEKEY", Const, 16}, - {"F_ULOCK", Const, 0}, - {"F_UNLCK", Const, 0}, - {"F_UNLCKSYS", Const, 0}, - {"F_VOLPOSMODE", Const, 0}, - {"F_WRITEBOOTSTRAP", Const, 0}, - {"F_WRLCK", Const, 0}, - {"Faccessat", Func, 0}, - {"Fallocate", Func, 0}, - {"Fbootstraptransfer_t", Type, 0}, - {"Fbootstraptransfer_t.Buffer", Field, 0}, - {"Fbootstraptransfer_t.Length", Field, 0}, - {"Fbootstraptransfer_t.Offset", Field, 0}, - {"Fchdir", Func, 0}, - {"Fchflags", Func, 0}, - {"Fchmod", Func, 0}, - {"Fchmodat", Func, 0}, - {"Fchown", Func, 0}, - {"Fchownat", Func, 0}, - {"FcntlFlock", Func, 3}, - {"FdSet", Type, 0}, - {"FdSet.Bits", Field, 0}, - {"FdSet.X__fds_bits", Field, 0}, - {"Fdatasync", Func, 0}, - {"FileNotifyInformation", Type, 0}, - {"FileNotifyInformation.Action", Field, 0}, - {"FileNotifyInformation.FileName", Field, 0}, - {"FileNotifyInformation.FileNameLength", Field, 0}, - {"FileNotifyInformation.NextEntryOffset", Field, 0}, - {"Filetime", Type, 0}, - {"Filetime.HighDateTime", Field, 0}, - {"Filetime.LowDateTime", Field, 0}, - {"FindClose", Func, 0}, - {"FindFirstFile", Func, 0}, - {"FindNextFile", Func, 0}, - {"Flock", Func, 0}, - {"Flock_t", Type, 0}, - {"Flock_t.Len", Field, 0}, - {"Flock_t.Pad_cgo_0", Field, 0}, - {"Flock_t.Pad_cgo_1", Field, 3}, - {"Flock_t.Pid", Field, 0}, - {"Flock_t.Start", Field, 0}, - {"Flock_t.Sysid", Field, 0}, - {"Flock_t.Type", Field, 0}, - {"Flock_t.Whence", Field, 0}, - {"FlushBpf", Func, 0}, - {"FlushFileBuffers", Func, 0}, - {"FlushViewOfFile", Func, 0}, - {"ForkExec", Func, 0}, - {"ForkLock", Var, 0}, - {"FormatMessage", Func, 0}, - {"Fpathconf", Func, 0}, - {"FreeAddrInfoW", Func, 1}, - {"FreeEnvironmentStrings", Func, 0}, - {"FreeLibrary", Func, 0}, - {"Fsid", Type, 0}, - {"Fsid.Val", Field, 0}, - {"Fsid.X__fsid_val", Field, 2}, - {"Fsid.X__val", Field, 0}, - {"Fstat", Func, 0}, - {"Fstatat", Func, 12}, - {"Fstatfs", Func, 0}, - {"Fstore_t", Type, 0}, - {"Fstore_t.Bytesalloc", Field, 0}, - {"Fstore_t.Flags", Field, 0}, - {"Fstore_t.Length", Field, 0}, - {"Fstore_t.Offset", Field, 0}, - {"Fstore_t.Posmode", Field, 0}, - {"Fsync", Func, 0}, - {"Ftruncate", Func, 0}, - {"FullPath", Func, 4}, - {"Futimes", Func, 0}, - {"Futimesat", Func, 0}, - {"GENERIC_ALL", Const, 0}, - {"GENERIC_EXECUTE", Const, 0}, - {"GENERIC_READ", Const, 0}, - {"GENERIC_WRITE", Const, 0}, - {"GUID", Type, 1}, - {"GUID.Data1", Field, 1}, - {"GUID.Data2", Field, 1}, - {"GUID.Data3", Field, 1}, - {"GUID.Data4", Field, 1}, - {"GetAcceptExSockaddrs", Func, 0}, - {"GetAdaptersInfo", Func, 0}, - {"GetAddrInfoW", Func, 1}, - {"GetCommandLine", Func, 0}, - {"GetComputerName", Func, 0}, - {"GetConsoleMode", Func, 1}, - {"GetCurrentDirectory", Func, 0}, - {"GetCurrentProcess", Func, 0}, - {"GetEnvironmentStrings", Func, 0}, - {"GetEnvironmentVariable", Func, 0}, - {"GetExitCodeProcess", Func, 0}, - {"GetFileAttributes", Func, 0}, - {"GetFileAttributesEx", Func, 0}, - {"GetFileExInfoStandard", Const, 0}, - {"GetFileExMaxInfoLevel", Const, 0}, - {"GetFileInformationByHandle", Func, 0}, - {"GetFileType", Func, 0}, - {"GetFullPathName", Func, 0}, - {"GetHostByName", Func, 0}, - {"GetIfEntry", Func, 0}, - {"GetLastError", Func, 0}, - {"GetLengthSid", Func, 0}, - {"GetLongPathName", Func, 0}, - {"GetProcAddress", Func, 0}, - {"GetProcessTimes", Func, 0}, - {"GetProtoByName", Func, 0}, - {"GetQueuedCompletionStatus", Func, 0}, - {"GetServByName", Func, 0}, - {"GetShortPathName", Func, 0}, - {"GetStartupInfo", Func, 0}, - {"GetStdHandle", Func, 0}, - {"GetSystemTimeAsFileTime", Func, 0}, - {"GetTempPath", Func, 0}, - {"GetTimeZoneInformation", Func, 0}, - {"GetTokenInformation", Func, 0}, - {"GetUserNameEx", Func, 0}, - {"GetUserProfileDirectory", Func, 0}, - {"GetVersion", Func, 0}, - {"Getcwd", Func, 0}, - {"Getdents", Func, 0}, - {"Getdirentries", Func, 0}, - {"Getdtablesize", Func, 0}, - {"Getegid", Func, 0}, - {"Getenv", Func, 0}, - {"Geteuid", Func, 0}, - {"Getfsstat", Func, 0}, - {"Getgid", Func, 0}, - {"Getgroups", Func, 0}, - {"Getpagesize", Func, 0}, - {"Getpeername", Func, 0}, - {"Getpgid", Func, 0}, - {"Getpgrp", Func, 0}, - {"Getpid", Func, 0}, - {"Getppid", Func, 0}, - {"Getpriority", Func, 0}, - {"Getrlimit", Func, 0}, - {"Getrusage", Func, 0}, - {"Getsid", Func, 0}, - {"Getsockname", Func, 0}, - {"Getsockopt", Func, 1}, - {"GetsockoptByte", Func, 0}, - {"GetsockoptICMPv6Filter", Func, 2}, - {"GetsockoptIPMreq", Func, 0}, - {"GetsockoptIPMreqn", Func, 0}, - {"GetsockoptIPv6MTUInfo", Func, 2}, - {"GetsockoptIPv6Mreq", Func, 0}, - {"GetsockoptInet4Addr", Func, 0}, - {"GetsockoptInt", Func, 0}, - {"GetsockoptUcred", Func, 1}, - {"Gettid", Func, 0}, - {"Gettimeofday", Func, 0}, - {"Getuid", Func, 0}, - {"Getwd", Func, 0}, - {"Getxattr", Func, 1}, - {"HANDLE_FLAG_INHERIT", Const, 0}, - {"HKEY_CLASSES_ROOT", Const, 0}, - {"HKEY_CURRENT_CONFIG", Const, 0}, - {"HKEY_CURRENT_USER", Const, 0}, - {"HKEY_DYN_DATA", Const, 0}, - {"HKEY_LOCAL_MACHINE", Const, 0}, - {"HKEY_PERFORMANCE_DATA", Const, 0}, - {"HKEY_USERS", Const, 0}, - {"HUPCL", Const, 0}, - {"Handle", Type, 0}, - {"Hostent", Type, 0}, - {"Hostent.AddrList", Field, 0}, - {"Hostent.AddrType", Field, 0}, - {"Hostent.Aliases", Field, 0}, - {"Hostent.Length", Field, 0}, - {"Hostent.Name", Field, 0}, - {"ICANON", Const, 0}, - {"ICMP6_FILTER", Const, 2}, - {"ICMPV6_FILTER", Const, 2}, - {"ICMPv6Filter", Type, 2}, - {"ICMPv6Filter.Data", Field, 2}, - {"ICMPv6Filter.Filt", Field, 2}, - {"ICRNL", Const, 0}, - {"IEXTEN", Const, 0}, - {"IFAN_ARRIVAL", Const, 1}, - {"IFAN_DEPARTURE", Const, 1}, - {"IFA_ADDRESS", Const, 0}, - {"IFA_ANYCAST", Const, 0}, - {"IFA_BROADCAST", Const, 0}, - {"IFA_CACHEINFO", Const, 0}, - {"IFA_F_DADFAILED", Const, 0}, - {"IFA_F_DEPRECATED", Const, 0}, - {"IFA_F_HOMEADDRESS", Const, 0}, - {"IFA_F_NODAD", Const, 0}, - {"IFA_F_OPTIMISTIC", Const, 0}, - {"IFA_F_PERMANENT", Const, 0}, - {"IFA_F_SECONDARY", Const, 0}, - {"IFA_F_TEMPORARY", Const, 0}, - {"IFA_F_TENTATIVE", Const, 0}, - {"IFA_LABEL", Const, 0}, - {"IFA_LOCAL", Const, 0}, - {"IFA_MAX", Const, 0}, - {"IFA_MULTICAST", Const, 0}, - {"IFA_ROUTE", Const, 1}, - {"IFA_UNSPEC", Const, 0}, - {"IFF_ALLMULTI", Const, 0}, - {"IFF_ALTPHYS", Const, 0}, - {"IFF_AUTOMEDIA", Const, 0}, - {"IFF_BROADCAST", Const, 0}, - {"IFF_CANTCHANGE", Const, 0}, - {"IFF_CANTCONFIG", Const, 1}, - {"IFF_DEBUG", Const, 0}, - {"IFF_DRV_OACTIVE", Const, 0}, - {"IFF_DRV_RUNNING", Const, 0}, - {"IFF_DYING", Const, 0}, - {"IFF_DYNAMIC", Const, 0}, - {"IFF_LINK0", Const, 0}, - {"IFF_LINK1", Const, 0}, - {"IFF_LINK2", Const, 0}, - {"IFF_LOOPBACK", Const, 0}, - {"IFF_MASTER", Const, 0}, - {"IFF_MONITOR", Const, 0}, - {"IFF_MULTICAST", Const, 0}, - {"IFF_NOARP", Const, 0}, - {"IFF_NOTRAILERS", Const, 0}, - {"IFF_NO_PI", Const, 0}, - {"IFF_OACTIVE", Const, 0}, - {"IFF_ONE_QUEUE", Const, 0}, - {"IFF_POINTOPOINT", Const, 0}, - {"IFF_POINTTOPOINT", Const, 0}, - {"IFF_PORTSEL", Const, 0}, - {"IFF_PPROMISC", Const, 0}, - {"IFF_PROMISC", Const, 0}, - {"IFF_RENAMING", Const, 0}, - {"IFF_RUNNING", Const, 0}, - {"IFF_SIMPLEX", Const, 0}, - {"IFF_SLAVE", Const, 0}, - {"IFF_SMART", Const, 0}, - {"IFF_STATICARP", Const, 0}, - {"IFF_TAP", Const, 0}, - {"IFF_TUN", Const, 0}, - {"IFF_TUN_EXCL", Const, 0}, - {"IFF_UP", Const, 0}, - {"IFF_VNET_HDR", Const, 0}, - {"IFLA_ADDRESS", Const, 0}, - {"IFLA_BROADCAST", Const, 0}, - {"IFLA_COST", Const, 0}, - {"IFLA_IFALIAS", Const, 0}, - {"IFLA_IFNAME", Const, 0}, - {"IFLA_LINK", Const, 0}, - {"IFLA_LINKINFO", Const, 0}, - {"IFLA_LINKMODE", Const, 0}, - {"IFLA_MAP", Const, 0}, - {"IFLA_MASTER", Const, 0}, - {"IFLA_MAX", Const, 0}, - {"IFLA_MTU", Const, 0}, - {"IFLA_NET_NS_PID", Const, 0}, - {"IFLA_OPERSTATE", Const, 0}, - {"IFLA_PRIORITY", Const, 0}, - {"IFLA_PROTINFO", Const, 0}, - {"IFLA_QDISC", Const, 0}, - {"IFLA_STATS", Const, 0}, - {"IFLA_TXQLEN", Const, 0}, - {"IFLA_UNSPEC", Const, 0}, - {"IFLA_WEIGHT", Const, 0}, - {"IFLA_WIRELESS", Const, 0}, - {"IFNAMSIZ", Const, 0}, - {"IFT_1822", Const, 0}, - {"IFT_A12MPPSWITCH", Const, 0}, - {"IFT_AAL2", Const, 0}, - {"IFT_AAL5", Const, 0}, - {"IFT_ADSL", Const, 0}, - {"IFT_AFLANE8023", Const, 0}, - {"IFT_AFLANE8025", Const, 0}, - {"IFT_ARAP", Const, 0}, - {"IFT_ARCNET", Const, 0}, - {"IFT_ARCNETPLUS", Const, 0}, - {"IFT_ASYNC", Const, 0}, - {"IFT_ATM", Const, 0}, - {"IFT_ATMDXI", Const, 0}, - {"IFT_ATMFUNI", Const, 0}, - {"IFT_ATMIMA", Const, 0}, - {"IFT_ATMLOGICAL", Const, 0}, - {"IFT_ATMRADIO", Const, 0}, - {"IFT_ATMSUBINTERFACE", Const, 0}, - {"IFT_ATMVCIENDPT", Const, 0}, - {"IFT_ATMVIRTUAL", Const, 0}, - {"IFT_BGPPOLICYACCOUNTING", Const, 0}, - {"IFT_BLUETOOTH", Const, 1}, - {"IFT_BRIDGE", Const, 0}, - {"IFT_BSC", Const, 0}, - {"IFT_CARP", Const, 0}, - {"IFT_CCTEMUL", Const, 0}, - {"IFT_CELLULAR", Const, 0}, - {"IFT_CEPT", Const, 0}, - {"IFT_CES", Const, 0}, - {"IFT_CHANNEL", Const, 0}, - {"IFT_CNR", Const, 0}, - {"IFT_COFFEE", Const, 0}, - {"IFT_COMPOSITELINK", Const, 0}, - {"IFT_DCN", Const, 0}, - {"IFT_DIGITALPOWERLINE", Const, 0}, - {"IFT_DIGITALWRAPPEROVERHEADCHANNEL", Const, 0}, - {"IFT_DLSW", Const, 0}, - {"IFT_DOCSCABLEDOWNSTREAM", Const, 0}, - {"IFT_DOCSCABLEMACLAYER", Const, 0}, - {"IFT_DOCSCABLEUPSTREAM", Const, 0}, - {"IFT_DOCSCABLEUPSTREAMCHANNEL", Const, 1}, - {"IFT_DS0", Const, 0}, - {"IFT_DS0BUNDLE", Const, 0}, - {"IFT_DS1FDL", Const, 0}, - {"IFT_DS3", Const, 0}, - {"IFT_DTM", Const, 0}, - {"IFT_DUMMY", Const, 1}, - {"IFT_DVBASILN", Const, 0}, - {"IFT_DVBASIOUT", Const, 0}, - {"IFT_DVBRCCDOWNSTREAM", Const, 0}, - {"IFT_DVBRCCMACLAYER", Const, 0}, - {"IFT_DVBRCCUPSTREAM", Const, 0}, - {"IFT_ECONET", Const, 1}, - {"IFT_ENC", Const, 0}, - {"IFT_EON", Const, 0}, - {"IFT_EPLRS", Const, 0}, - {"IFT_ESCON", Const, 0}, - {"IFT_ETHER", Const, 0}, - {"IFT_FAITH", Const, 0}, - {"IFT_FAST", Const, 0}, - {"IFT_FASTETHER", Const, 0}, - {"IFT_FASTETHERFX", Const, 0}, - {"IFT_FDDI", Const, 0}, - {"IFT_FIBRECHANNEL", Const, 0}, - {"IFT_FRAMERELAYINTERCONNECT", Const, 0}, - {"IFT_FRAMERELAYMPI", Const, 0}, - {"IFT_FRDLCIENDPT", Const, 0}, - {"IFT_FRELAY", Const, 0}, - {"IFT_FRELAYDCE", Const, 0}, - {"IFT_FRF16MFRBUNDLE", Const, 0}, - {"IFT_FRFORWARD", Const, 0}, - {"IFT_G703AT2MB", Const, 0}, - {"IFT_G703AT64K", Const, 0}, - {"IFT_GIF", Const, 0}, - {"IFT_GIGABITETHERNET", Const, 0}, - {"IFT_GR303IDT", Const, 0}, - {"IFT_GR303RDT", Const, 0}, - {"IFT_H323GATEKEEPER", Const, 0}, - {"IFT_H323PROXY", Const, 0}, - {"IFT_HDH1822", Const, 0}, - {"IFT_HDLC", Const, 0}, - {"IFT_HDSL2", Const, 0}, - {"IFT_HIPERLAN2", Const, 0}, - {"IFT_HIPPI", Const, 0}, - {"IFT_HIPPIINTERFACE", Const, 0}, - {"IFT_HOSTPAD", Const, 0}, - {"IFT_HSSI", Const, 0}, - {"IFT_HY", Const, 0}, - {"IFT_IBM370PARCHAN", Const, 0}, - {"IFT_IDSL", Const, 0}, - {"IFT_IEEE1394", Const, 0}, - {"IFT_IEEE80211", Const, 0}, - {"IFT_IEEE80212", Const, 0}, - {"IFT_IEEE8023ADLAG", Const, 0}, - {"IFT_IFGSN", Const, 0}, - {"IFT_IMT", Const, 0}, - {"IFT_INFINIBAND", Const, 1}, - {"IFT_INTERLEAVE", Const, 0}, - {"IFT_IP", Const, 0}, - {"IFT_IPFORWARD", Const, 0}, - {"IFT_IPOVERATM", Const, 0}, - {"IFT_IPOVERCDLC", Const, 0}, - {"IFT_IPOVERCLAW", Const, 0}, - {"IFT_IPSWITCH", Const, 0}, - {"IFT_IPXIP", Const, 0}, - {"IFT_ISDN", Const, 0}, - {"IFT_ISDNBASIC", Const, 0}, - {"IFT_ISDNPRIMARY", Const, 0}, - {"IFT_ISDNS", Const, 0}, - {"IFT_ISDNU", Const, 0}, - {"IFT_ISO88022LLC", Const, 0}, - {"IFT_ISO88023", Const, 0}, - {"IFT_ISO88024", Const, 0}, - {"IFT_ISO88025", Const, 0}, - {"IFT_ISO88025CRFPINT", Const, 0}, - {"IFT_ISO88025DTR", Const, 0}, - {"IFT_ISO88025FIBER", Const, 0}, - {"IFT_ISO88026", Const, 0}, - {"IFT_ISUP", Const, 0}, - {"IFT_L2VLAN", Const, 0}, - {"IFT_L3IPVLAN", Const, 0}, - {"IFT_L3IPXVLAN", Const, 0}, - {"IFT_LAPB", Const, 0}, - {"IFT_LAPD", Const, 0}, - {"IFT_LAPF", Const, 0}, - {"IFT_LINEGROUP", Const, 1}, - {"IFT_LOCALTALK", Const, 0}, - {"IFT_LOOP", Const, 0}, - {"IFT_MEDIAMAILOVERIP", Const, 0}, - {"IFT_MFSIGLINK", Const, 0}, - {"IFT_MIOX25", Const, 0}, - {"IFT_MODEM", Const, 0}, - {"IFT_MPC", Const, 0}, - {"IFT_MPLS", Const, 0}, - {"IFT_MPLSTUNNEL", Const, 0}, - {"IFT_MSDSL", Const, 0}, - {"IFT_MVL", Const, 0}, - {"IFT_MYRINET", Const, 0}, - {"IFT_NFAS", Const, 0}, - {"IFT_NSIP", Const, 0}, - {"IFT_OPTICALCHANNEL", Const, 0}, - {"IFT_OPTICALTRANSPORT", Const, 0}, - {"IFT_OTHER", Const, 0}, - {"IFT_P10", Const, 0}, - {"IFT_P80", Const, 0}, - {"IFT_PARA", Const, 0}, - {"IFT_PDP", Const, 0}, - {"IFT_PFLOG", Const, 0}, - {"IFT_PFLOW", Const, 1}, - {"IFT_PFSYNC", Const, 0}, - {"IFT_PLC", Const, 0}, - {"IFT_PON155", Const, 1}, - {"IFT_PON622", Const, 1}, - {"IFT_POS", Const, 0}, - {"IFT_PPP", Const, 0}, - {"IFT_PPPMULTILINKBUNDLE", Const, 0}, - {"IFT_PROPATM", Const, 1}, - {"IFT_PROPBWAP2MP", Const, 0}, - {"IFT_PROPCNLS", Const, 0}, - {"IFT_PROPDOCSWIRELESSDOWNSTREAM", Const, 0}, - {"IFT_PROPDOCSWIRELESSMACLAYER", Const, 0}, - {"IFT_PROPDOCSWIRELESSUPSTREAM", Const, 0}, - {"IFT_PROPMUX", Const, 0}, - {"IFT_PROPVIRTUAL", Const, 0}, - {"IFT_PROPWIRELESSP2P", Const, 0}, - {"IFT_PTPSERIAL", Const, 0}, - {"IFT_PVC", Const, 0}, - {"IFT_Q2931", Const, 1}, - {"IFT_QLLC", Const, 0}, - {"IFT_RADIOMAC", Const, 0}, - {"IFT_RADSL", Const, 0}, - {"IFT_REACHDSL", Const, 0}, - {"IFT_RFC1483", Const, 0}, - {"IFT_RS232", Const, 0}, - {"IFT_RSRB", Const, 0}, - {"IFT_SDLC", Const, 0}, - {"IFT_SDSL", Const, 0}, - {"IFT_SHDSL", Const, 0}, - {"IFT_SIP", Const, 0}, - {"IFT_SIPSIG", Const, 1}, - {"IFT_SIPTG", Const, 1}, - {"IFT_SLIP", Const, 0}, - {"IFT_SMDSDXI", Const, 0}, - {"IFT_SMDSICIP", Const, 0}, - {"IFT_SONET", Const, 0}, - {"IFT_SONETOVERHEADCHANNEL", Const, 0}, - {"IFT_SONETPATH", Const, 0}, - {"IFT_SONETVT", Const, 0}, - {"IFT_SRP", Const, 0}, - {"IFT_SS7SIGLINK", Const, 0}, - {"IFT_STACKTOSTACK", Const, 0}, - {"IFT_STARLAN", Const, 0}, - {"IFT_STF", Const, 0}, - {"IFT_T1", Const, 0}, - {"IFT_TDLC", Const, 0}, - {"IFT_TELINK", Const, 1}, - {"IFT_TERMPAD", Const, 0}, - {"IFT_TR008", Const, 0}, - {"IFT_TRANSPHDLC", Const, 0}, - {"IFT_TUNNEL", Const, 0}, - {"IFT_ULTRA", Const, 0}, - {"IFT_USB", Const, 0}, - {"IFT_V11", Const, 0}, - {"IFT_V35", Const, 0}, - {"IFT_V36", Const, 0}, - {"IFT_V37", Const, 0}, - {"IFT_VDSL", Const, 0}, - {"IFT_VIRTUALIPADDRESS", Const, 0}, - {"IFT_VIRTUALTG", Const, 1}, - {"IFT_VOICEDID", Const, 1}, - {"IFT_VOICEEM", Const, 0}, - {"IFT_VOICEEMFGD", Const, 1}, - {"IFT_VOICEENCAP", Const, 0}, - {"IFT_VOICEFGDEANA", Const, 1}, - {"IFT_VOICEFXO", Const, 0}, - {"IFT_VOICEFXS", Const, 0}, - {"IFT_VOICEOVERATM", Const, 0}, - {"IFT_VOICEOVERCABLE", Const, 1}, - {"IFT_VOICEOVERFRAMERELAY", Const, 0}, - {"IFT_VOICEOVERIP", Const, 0}, - {"IFT_X213", Const, 0}, - {"IFT_X25", Const, 0}, - {"IFT_X25DDN", Const, 0}, - {"IFT_X25HUNTGROUP", Const, 0}, - {"IFT_X25MLP", Const, 0}, - {"IFT_X25PLE", Const, 0}, - {"IFT_XETHER", Const, 0}, - {"IGNBRK", Const, 0}, - {"IGNCR", Const, 0}, - {"IGNORE", Const, 0}, - {"IGNPAR", Const, 0}, - {"IMAXBEL", Const, 0}, - {"INFINITE", Const, 0}, - {"INLCR", Const, 0}, - {"INPCK", Const, 0}, - {"INVALID_FILE_ATTRIBUTES", Const, 0}, - {"IN_ACCESS", Const, 0}, - {"IN_ALL_EVENTS", Const, 0}, - {"IN_ATTRIB", Const, 0}, - {"IN_CLASSA_HOST", Const, 0}, - {"IN_CLASSA_MAX", Const, 0}, - {"IN_CLASSA_NET", Const, 0}, - {"IN_CLASSA_NSHIFT", Const, 0}, - {"IN_CLASSB_HOST", Const, 0}, - {"IN_CLASSB_MAX", Const, 0}, - {"IN_CLASSB_NET", Const, 0}, - {"IN_CLASSB_NSHIFT", Const, 0}, - {"IN_CLASSC_HOST", Const, 0}, - {"IN_CLASSC_NET", Const, 0}, - {"IN_CLASSC_NSHIFT", Const, 0}, - {"IN_CLASSD_HOST", Const, 0}, - {"IN_CLASSD_NET", Const, 0}, - {"IN_CLASSD_NSHIFT", Const, 0}, - {"IN_CLOEXEC", Const, 0}, - {"IN_CLOSE", Const, 0}, - {"IN_CLOSE_NOWRITE", Const, 0}, - {"IN_CLOSE_WRITE", Const, 0}, - {"IN_CREATE", Const, 0}, - {"IN_DELETE", Const, 0}, - {"IN_DELETE_SELF", Const, 0}, - {"IN_DONT_FOLLOW", Const, 0}, - {"IN_EXCL_UNLINK", Const, 0}, - {"IN_IGNORED", Const, 0}, - {"IN_ISDIR", Const, 0}, - {"IN_LINKLOCALNETNUM", Const, 0}, - {"IN_LOOPBACKNET", Const, 0}, - {"IN_MASK_ADD", Const, 0}, - {"IN_MODIFY", Const, 0}, - {"IN_MOVE", Const, 0}, - {"IN_MOVED_FROM", Const, 0}, - {"IN_MOVED_TO", Const, 0}, - {"IN_MOVE_SELF", Const, 0}, - {"IN_NONBLOCK", Const, 0}, - {"IN_ONESHOT", Const, 0}, - {"IN_ONLYDIR", Const, 0}, - {"IN_OPEN", Const, 0}, - {"IN_Q_OVERFLOW", Const, 0}, - {"IN_RFC3021_HOST", Const, 1}, - {"IN_RFC3021_MASK", Const, 1}, - {"IN_RFC3021_NET", Const, 1}, - {"IN_RFC3021_NSHIFT", Const, 1}, - {"IN_UNMOUNT", Const, 0}, - {"IOC_IN", Const, 1}, - {"IOC_INOUT", Const, 1}, - {"IOC_OUT", Const, 1}, - {"IOC_VENDOR", Const, 3}, - {"IOC_WS2", Const, 1}, - {"IO_REPARSE_TAG_SYMLINK", Const, 4}, - {"IPMreq", Type, 0}, - {"IPMreq.Interface", Field, 0}, - {"IPMreq.Multiaddr", Field, 0}, - {"IPMreqn", Type, 0}, - {"IPMreqn.Address", Field, 0}, - {"IPMreqn.Ifindex", Field, 0}, - {"IPMreqn.Multiaddr", Field, 0}, - {"IPPROTO_3PC", Const, 0}, - {"IPPROTO_ADFS", Const, 0}, - {"IPPROTO_AH", Const, 0}, - {"IPPROTO_AHIP", Const, 0}, - {"IPPROTO_APES", Const, 0}, - {"IPPROTO_ARGUS", Const, 0}, - {"IPPROTO_AX25", Const, 0}, - {"IPPROTO_BHA", Const, 0}, - {"IPPROTO_BLT", Const, 0}, - {"IPPROTO_BRSATMON", Const, 0}, - {"IPPROTO_CARP", Const, 0}, - {"IPPROTO_CFTP", Const, 0}, - {"IPPROTO_CHAOS", Const, 0}, - {"IPPROTO_CMTP", Const, 0}, - {"IPPROTO_COMP", Const, 0}, - {"IPPROTO_CPHB", Const, 0}, - {"IPPROTO_CPNX", Const, 0}, - {"IPPROTO_DCCP", Const, 0}, - {"IPPROTO_DDP", Const, 0}, - {"IPPROTO_DGP", Const, 0}, - {"IPPROTO_DIVERT", Const, 0}, - {"IPPROTO_DIVERT_INIT", Const, 3}, - {"IPPROTO_DIVERT_RESP", Const, 3}, - {"IPPROTO_DONE", Const, 0}, - {"IPPROTO_DSTOPTS", Const, 0}, - {"IPPROTO_EGP", Const, 0}, - {"IPPROTO_EMCON", Const, 0}, - {"IPPROTO_ENCAP", Const, 0}, - {"IPPROTO_EON", Const, 0}, - {"IPPROTO_ESP", Const, 0}, - {"IPPROTO_ETHERIP", Const, 0}, - {"IPPROTO_FRAGMENT", Const, 0}, - {"IPPROTO_GGP", Const, 0}, - {"IPPROTO_GMTP", Const, 0}, - {"IPPROTO_GRE", Const, 0}, - {"IPPROTO_HELLO", Const, 0}, - {"IPPROTO_HMP", Const, 0}, - {"IPPROTO_HOPOPTS", Const, 0}, - {"IPPROTO_ICMP", Const, 0}, - {"IPPROTO_ICMPV6", Const, 0}, - {"IPPROTO_IDP", Const, 0}, - {"IPPROTO_IDPR", Const, 0}, - {"IPPROTO_IDRP", Const, 0}, - {"IPPROTO_IGMP", Const, 0}, - {"IPPROTO_IGP", Const, 0}, - {"IPPROTO_IGRP", Const, 0}, - {"IPPROTO_IL", Const, 0}, - {"IPPROTO_INLSP", Const, 0}, - {"IPPROTO_INP", Const, 0}, - {"IPPROTO_IP", Const, 0}, - {"IPPROTO_IPCOMP", Const, 0}, - {"IPPROTO_IPCV", Const, 0}, - {"IPPROTO_IPEIP", Const, 0}, - {"IPPROTO_IPIP", Const, 0}, - {"IPPROTO_IPPC", Const, 0}, - {"IPPROTO_IPV4", Const, 0}, - {"IPPROTO_IPV6", Const, 0}, - {"IPPROTO_IPV6_ICMP", Const, 1}, - {"IPPROTO_IRTP", Const, 0}, - {"IPPROTO_KRYPTOLAN", Const, 0}, - {"IPPROTO_LARP", Const, 0}, - {"IPPROTO_LEAF1", Const, 0}, - {"IPPROTO_LEAF2", Const, 0}, - {"IPPROTO_MAX", Const, 0}, - {"IPPROTO_MAXID", Const, 0}, - {"IPPROTO_MEAS", Const, 0}, - {"IPPROTO_MH", Const, 1}, - {"IPPROTO_MHRP", Const, 0}, - {"IPPROTO_MICP", Const, 0}, - {"IPPROTO_MOBILE", Const, 0}, - {"IPPROTO_MPLS", Const, 1}, - {"IPPROTO_MTP", Const, 0}, - {"IPPROTO_MUX", Const, 0}, - {"IPPROTO_ND", Const, 0}, - {"IPPROTO_NHRP", Const, 0}, - {"IPPROTO_NONE", Const, 0}, - {"IPPROTO_NSP", Const, 0}, - {"IPPROTO_NVPII", Const, 0}, - {"IPPROTO_OLD_DIVERT", Const, 0}, - {"IPPROTO_OSPFIGP", Const, 0}, - {"IPPROTO_PFSYNC", Const, 0}, - {"IPPROTO_PGM", Const, 0}, - {"IPPROTO_PIGP", Const, 0}, - {"IPPROTO_PIM", Const, 0}, - {"IPPROTO_PRM", Const, 0}, - {"IPPROTO_PUP", Const, 0}, - {"IPPROTO_PVP", Const, 0}, - {"IPPROTO_RAW", Const, 0}, - {"IPPROTO_RCCMON", Const, 0}, - {"IPPROTO_RDP", Const, 0}, - {"IPPROTO_ROUTING", Const, 0}, - {"IPPROTO_RSVP", Const, 0}, - {"IPPROTO_RVD", Const, 0}, - {"IPPROTO_SATEXPAK", Const, 0}, - {"IPPROTO_SATMON", Const, 0}, - {"IPPROTO_SCCSP", Const, 0}, - {"IPPROTO_SCTP", Const, 0}, - {"IPPROTO_SDRP", Const, 0}, - {"IPPROTO_SEND", Const, 1}, - {"IPPROTO_SEP", Const, 0}, - {"IPPROTO_SKIP", Const, 0}, - {"IPPROTO_SPACER", Const, 0}, - {"IPPROTO_SRPC", Const, 0}, - {"IPPROTO_ST", Const, 0}, - {"IPPROTO_SVMTP", Const, 0}, - {"IPPROTO_SWIPE", Const, 0}, - {"IPPROTO_TCF", Const, 0}, - {"IPPROTO_TCP", Const, 0}, - {"IPPROTO_TLSP", Const, 0}, - {"IPPROTO_TP", Const, 0}, - {"IPPROTO_TPXX", Const, 0}, - {"IPPROTO_TRUNK1", Const, 0}, - {"IPPROTO_TRUNK2", Const, 0}, - {"IPPROTO_TTP", Const, 0}, - {"IPPROTO_UDP", Const, 0}, - {"IPPROTO_UDPLITE", Const, 0}, - {"IPPROTO_VINES", Const, 0}, - {"IPPROTO_VISA", Const, 0}, - {"IPPROTO_VMTP", Const, 0}, - {"IPPROTO_VRRP", Const, 1}, - {"IPPROTO_WBEXPAK", Const, 0}, - {"IPPROTO_WBMON", Const, 0}, - {"IPPROTO_WSN", Const, 0}, - {"IPPROTO_XNET", Const, 0}, - {"IPPROTO_XTP", Const, 0}, - {"IPV6_2292DSTOPTS", Const, 0}, - {"IPV6_2292HOPLIMIT", Const, 0}, - {"IPV6_2292HOPOPTS", Const, 0}, - {"IPV6_2292NEXTHOP", Const, 0}, - {"IPV6_2292PKTINFO", Const, 0}, - {"IPV6_2292PKTOPTIONS", Const, 0}, - {"IPV6_2292RTHDR", Const, 0}, - {"IPV6_ADDRFORM", Const, 0}, - {"IPV6_ADD_MEMBERSHIP", Const, 0}, - {"IPV6_AUTHHDR", Const, 0}, - {"IPV6_AUTH_LEVEL", Const, 1}, - {"IPV6_AUTOFLOWLABEL", Const, 0}, - {"IPV6_BINDANY", Const, 0}, - {"IPV6_BINDV6ONLY", Const, 0}, - {"IPV6_BOUND_IF", Const, 0}, - {"IPV6_CHECKSUM", Const, 0}, - {"IPV6_DEFAULT_MULTICAST_HOPS", Const, 0}, - {"IPV6_DEFAULT_MULTICAST_LOOP", Const, 0}, - {"IPV6_DEFHLIM", Const, 0}, - {"IPV6_DONTFRAG", Const, 0}, - {"IPV6_DROP_MEMBERSHIP", Const, 0}, - {"IPV6_DSTOPTS", Const, 0}, - {"IPV6_ESP_NETWORK_LEVEL", Const, 1}, - {"IPV6_ESP_TRANS_LEVEL", Const, 1}, - {"IPV6_FAITH", Const, 0}, - {"IPV6_FLOWINFO_MASK", Const, 0}, - {"IPV6_FLOWLABEL_MASK", Const, 0}, - {"IPV6_FRAGTTL", Const, 0}, - {"IPV6_FW_ADD", Const, 0}, - {"IPV6_FW_DEL", Const, 0}, - {"IPV6_FW_FLUSH", Const, 0}, - {"IPV6_FW_GET", Const, 0}, - {"IPV6_FW_ZERO", Const, 0}, - {"IPV6_HLIMDEC", Const, 0}, - {"IPV6_HOPLIMIT", Const, 0}, - {"IPV6_HOPOPTS", Const, 0}, - {"IPV6_IPCOMP_LEVEL", Const, 1}, - {"IPV6_IPSEC_POLICY", Const, 0}, - {"IPV6_JOIN_ANYCAST", Const, 0}, - {"IPV6_JOIN_GROUP", Const, 0}, - {"IPV6_LEAVE_ANYCAST", Const, 0}, - {"IPV6_LEAVE_GROUP", Const, 0}, - {"IPV6_MAXHLIM", Const, 0}, - {"IPV6_MAXOPTHDR", Const, 0}, - {"IPV6_MAXPACKET", Const, 0}, - {"IPV6_MAX_GROUP_SRC_FILTER", Const, 0}, - {"IPV6_MAX_MEMBERSHIPS", Const, 0}, - {"IPV6_MAX_SOCK_SRC_FILTER", Const, 0}, - {"IPV6_MIN_MEMBERSHIPS", Const, 0}, - {"IPV6_MMTU", Const, 0}, - {"IPV6_MSFILTER", Const, 0}, - {"IPV6_MTU", Const, 0}, - {"IPV6_MTU_DISCOVER", Const, 0}, - {"IPV6_MULTICAST_HOPS", Const, 0}, - {"IPV6_MULTICAST_IF", Const, 0}, - {"IPV6_MULTICAST_LOOP", Const, 0}, - {"IPV6_NEXTHOP", Const, 0}, - {"IPV6_OPTIONS", Const, 1}, - {"IPV6_PATHMTU", Const, 0}, - {"IPV6_PIPEX", Const, 1}, - {"IPV6_PKTINFO", Const, 0}, - {"IPV6_PMTUDISC_DO", Const, 0}, - {"IPV6_PMTUDISC_DONT", Const, 0}, - {"IPV6_PMTUDISC_PROBE", Const, 0}, - {"IPV6_PMTUDISC_WANT", Const, 0}, - {"IPV6_PORTRANGE", Const, 0}, - {"IPV6_PORTRANGE_DEFAULT", Const, 0}, - {"IPV6_PORTRANGE_HIGH", Const, 0}, - {"IPV6_PORTRANGE_LOW", Const, 0}, - {"IPV6_PREFER_TEMPADDR", Const, 0}, - {"IPV6_RECVDSTOPTS", Const, 0}, - {"IPV6_RECVDSTPORT", Const, 3}, - {"IPV6_RECVERR", Const, 0}, - {"IPV6_RECVHOPLIMIT", Const, 0}, - {"IPV6_RECVHOPOPTS", Const, 0}, - {"IPV6_RECVPATHMTU", Const, 0}, - {"IPV6_RECVPKTINFO", Const, 0}, - {"IPV6_RECVRTHDR", Const, 0}, - {"IPV6_RECVTCLASS", Const, 0}, - {"IPV6_ROUTER_ALERT", Const, 0}, - {"IPV6_RTABLE", Const, 1}, - {"IPV6_RTHDR", Const, 0}, - {"IPV6_RTHDRDSTOPTS", Const, 0}, - {"IPV6_RTHDR_LOOSE", Const, 0}, - {"IPV6_RTHDR_STRICT", Const, 0}, - {"IPV6_RTHDR_TYPE_0", Const, 0}, - {"IPV6_RXDSTOPTS", Const, 0}, - {"IPV6_RXHOPOPTS", Const, 0}, - {"IPV6_SOCKOPT_RESERVED1", Const, 0}, - {"IPV6_TCLASS", Const, 0}, - {"IPV6_UNICAST_HOPS", Const, 0}, - {"IPV6_USE_MIN_MTU", Const, 0}, - {"IPV6_V6ONLY", Const, 0}, - {"IPV6_VERSION", Const, 0}, - {"IPV6_VERSION_MASK", Const, 0}, - {"IPV6_XFRM_POLICY", Const, 0}, - {"IP_ADD_MEMBERSHIP", Const, 0}, - {"IP_ADD_SOURCE_MEMBERSHIP", Const, 0}, - {"IP_AUTH_LEVEL", Const, 1}, - {"IP_BINDANY", Const, 0}, - {"IP_BLOCK_SOURCE", Const, 0}, - {"IP_BOUND_IF", Const, 0}, - {"IP_DEFAULT_MULTICAST_LOOP", Const, 0}, - {"IP_DEFAULT_MULTICAST_TTL", Const, 0}, - {"IP_DF", Const, 0}, - {"IP_DIVERTFL", Const, 3}, - {"IP_DONTFRAG", Const, 0}, - {"IP_DROP_MEMBERSHIP", Const, 0}, - {"IP_DROP_SOURCE_MEMBERSHIP", Const, 0}, - {"IP_DUMMYNET3", Const, 0}, - {"IP_DUMMYNET_CONFIGURE", Const, 0}, - {"IP_DUMMYNET_DEL", Const, 0}, - {"IP_DUMMYNET_FLUSH", Const, 0}, - {"IP_DUMMYNET_GET", Const, 0}, - {"IP_EF", Const, 1}, - {"IP_ERRORMTU", Const, 1}, - {"IP_ESP_NETWORK_LEVEL", Const, 1}, - {"IP_ESP_TRANS_LEVEL", Const, 1}, - {"IP_FAITH", Const, 0}, - {"IP_FREEBIND", Const, 0}, - {"IP_FW3", Const, 0}, - {"IP_FW_ADD", Const, 0}, - {"IP_FW_DEL", Const, 0}, - {"IP_FW_FLUSH", Const, 0}, - {"IP_FW_GET", Const, 0}, - {"IP_FW_NAT_CFG", Const, 0}, - {"IP_FW_NAT_DEL", Const, 0}, - {"IP_FW_NAT_GET_CONFIG", Const, 0}, - {"IP_FW_NAT_GET_LOG", Const, 0}, - {"IP_FW_RESETLOG", Const, 0}, - {"IP_FW_TABLE_ADD", Const, 0}, - {"IP_FW_TABLE_DEL", Const, 0}, - {"IP_FW_TABLE_FLUSH", Const, 0}, - {"IP_FW_TABLE_GETSIZE", Const, 0}, - {"IP_FW_TABLE_LIST", Const, 0}, - {"IP_FW_ZERO", Const, 0}, - {"IP_HDRINCL", Const, 0}, - {"IP_IPCOMP_LEVEL", Const, 1}, - {"IP_IPSECFLOWINFO", Const, 1}, - {"IP_IPSEC_LOCAL_AUTH", Const, 1}, - {"IP_IPSEC_LOCAL_CRED", Const, 1}, - {"IP_IPSEC_LOCAL_ID", Const, 1}, - {"IP_IPSEC_POLICY", Const, 0}, - {"IP_IPSEC_REMOTE_AUTH", Const, 1}, - {"IP_IPSEC_REMOTE_CRED", Const, 1}, - {"IP_IPSEC_REMOTE_ID", Const, 1}, - {"IP_MAXPACKET", Const, 0}, - {"IP_MAX_GROUP_SRC_FILTER", Const, 0}, - {"IP_MAX_MEMBERSHIPS", Const, 0}, - {"IP_MAX_SOCK_MUTE_FILTER", Const, 0}, - {"IP_MAX_SOCK_SRC_FILTER", Const, 0}, - {"IP_MAX_SOURCE_FILTER", Const, 0}, - {"IP_MF", Const, 0}, - {"IP_MINFRAGSIZE", Const, 1}, - {"IP_MINTTL", Const, 0}, - {"IP_MIN_MEMBERSHIPS", Const, 0}, - {"IP_MSFILTER", Const, 0}, - {"IP_MSS", Const, 0}, - {"IP_MTU", Const, 0}, - {"IP_MTU_DISCOVER", Const, 0}, - {"IP_MULTICAST_IF", Const, 0}, - {"IP_MULTICAST_IFINDEX", Const, 0}, - {"IP_MULTICAST_LOOP", Const, 0}, - {"IP_MULTICAST_TTL", Const, 0}, - {"IP_MULTICAST_VIF", Const, 0}, - {"IP_NAT__XXX", Const, 0}, - {"IP_OFFMASK", Const, 0}, - {"IP_OLD_FW_ADD", Const, 0}, - {"IP_OLD_FW_DEL", Const, 0}, - {"IP_OLD_FW_FLUSH", Const, 0}, - {"IP_OLD_FW_GET", Const, 0}, - {"IP_OLD_FW_RESETLOG", Const, 0}, - {"IP_OLD_FW_ZERO", Const, 0}, - {"IP_ONESBCAST", Const, 0}, - {"IP_OPTIONS", Const, 0}, - {"IP_ORIGDSTADDR", Const, 0}, - {"IP_PASSSEC", Const, 0}, - {"IP_PIPEX", Const, 1}, - {"IP_PKTINFO", Const, 0}, - {"IP_PKTOPTIONS", Const, 0}, - {"IP_PMTUDISC", Const, 0}, - {"IP_PMTUDISC_DO", Const, 0}, - {"IP_PMTUDISC_DONT", Const, 0}, - {"IP_PMTUDISC_PROBE", Const, 0}, - {"IP_PMTUDISC_WANT", Const, 0}, - {"IP_PORTRANGE", Const, 0}, - {"IP_PORTRANGE_DEFAULT", Const, 0}, - {"IP_PORTRANGE_HIGH", Const, 0}, - {"IP_PORTRANGE_LOW", Const, 0}, - {"IP_RECVDSTADDR", Const, 0}, - {"IP_RECVDSTPORT", Const, 1}, - {"IP_RECVERR", Const, 0}, - {"IP_RECVIF", Const, 0}, - {"IP_RECVOPTS", Const, 0}, - {"IP_RECVORIGDSTADDR", Const, 0}, - {"IP_RECVPKTINFO", Const, 0}, - {"IP_RECVRETOPTS", Const, 0}, - {"IP_RECVRTABLE", Const, 1}, - {"IP_RECVTOS", Const, 0}, - {"IP_RECVTTL", Const, 0}, - {"IP_RETOPTS", Const, 0}, - {"IP_RF", Const, 0}, - {"IP_ROUTER_ALERT", Const, 0}, - {"IP_RSVP_OFF", Const, 0}, - {"IP_RSVP_ON", Const, 0}, - {"IP_RSVP_VIF_OFF", Const, 0}, - {"IP_RSVP_VIF_ON", Const, 0}, - {"IP_RTABLE", Const, 1}, - {"IP_SENDSRCADDR", Const, 0}, - {"IP_STRIPHDR", Const, 0}, - {"IP_TOS", Const, 0}, - {"IP_TRAFFIC_MGT_BACKGROUND", Const, 0}, - {"IP_TRANSPARENT", Const, 0}, - {"IP_TTL", Const, 0}, - {"IP_UNBLOCK_SOURCE", Const, 0}, - {"IP_XFRM_POLICY", Const, 0}, - {"IPv6MTUInfo", Type, 2}, - {"IPv6MTUInfo.Addr", Field, 2}, - {"IPv6MTUInfo.Mtu", Field, 2}, - {"IPv6Mreq", Type, 0}, - {"IPv6Mreq.Interface", Field, 0}, - {"IPv6Mreq.Multiaddr", Field, 0}, - {"ISIG", Const, 0}, - {"ISTRIP", Const, 0}, - {"IUCLC", Const, 0}, - {"IUTF8", Const, 0}, - {"IXANY", Const, 0}, - {"IXOFF", Const, 0}, - {"IXON", Const, 0}, - {"IfAddrmsg", Type, 0}, - {"IfAddrmsg.Family", Field, 0}, - {"IfAddrmsg.Flags", Field, 0}, - {"IfAddrmsg.Index", Field, 0}, - {"IfAddrmsg.Prefixlen", Field, 0}, - {"IfAddrmsg.Scope", Field, 0}, - {"IfAnnounceMsghdr", Type, 1}, - {"IfAnnounceMsghdr.Hdrlen", Field, 2}, - {"IfAnnounceMsghdr.Index", Field, 1}, - {"IfAnnounceMsghdr.Msglen", Field, 1}, - {"IfAnnounceMsghdr.Name", Field, 1}, - {"IfAnnounceMsghdr.Type", Field, 1}, - {"IfAnnounceMsghdr.Version", Field, 1}, - {"IfAnnounceMsghdr.What", Field, 1}, - {"IfData", Type, 0}, - {"IfData.Addrlen", Field, 0}, - {"IfData.Baudrate", Field, 0}, - {"IfData.Capabilities", Field, 2}, - {"IfData.Collisions", Field, 0}, - {"IfData.Datalen", Field, 0}, - {"IfData.Epoch", Field, 0}, - {"IfData.Hdrlen", Field, 0}, - {"IfData.Hwassist", Field, 0}, - {"IfData.Ibytes", Field, 0}, - {"IfData.Ierrors", Field, 0}, - {"IfData.Imcasts", Field, 0}, - {"IfData.Ipackets", Field, 0}, - {"IfData.Iqdrops", Field, 0}, - {"IfData.Lastchange", Field, 0}, - {"IfData.Link_state", Field, 0}, - {"IfData.Mclpool", Field, 2}, - {"IfData.Metric", Field, 0}, - {"IfData.Mtu", Field, 0}, - {"IfData.Noproto", Field, 0}, - {"IfData.Obytes", Field, 0}, - {"IfData.Oerrors", Field, 0}, - {"IfData.Omcasts", Field, 0}, - {"IfData.Opackets", Field, 0}, - {"IfData.Pad", Field, 2}, - {"IfData.Pad_cgo_0", Field, 2}, - {"IfData.Pad_cgo_1", Field, 2}, - {"IfData.Physical", Field, 0}, - {"IfData.Recvquota", Field, 0}, - {"IfData.Recvtiming", Field, 0}, - {"IfData.Reserved1", Field, 0}, - {"IfData.Reserved2", Field, 0}, - {"IfData.Spare_char1", Field, 0}, - {"IfData.Spare_char2", Field, 0}, - {"IfData.Type", Field, 0}, - {"IfData.Typelen", Field, 0}, - {"IfData.Unused1", Field, 0}, - {"IfData.Unused2", Field, 0}, - {"IfData.Xmitquota", Field, 0}, - {"IfData.Xmittiming", Field, 0}, - {"IfInfomsg", Type, 0}, - {"IfInfomsg.Change", Field, 0}, - {"IfInfomsg.Family", Field, 0}, - {"IfInfomsg.Flags", Field, 0}, - {"IfInfomsg.Index", Field, 0}, - {"IfInfomsg.Type", Field, 0}, - {"IfInfomsg.X__ifi_pad", Field, 0}, - {"IfMsghdr", Type, 0}, - {"IfMsghdr.Addrs", Field, 0}, - {"IfMsghdr.Data", Field, 0}, - {"IfMsghdr.Flags", Field, 0}, - {"IfMsghdr.Hdrlen", Field, 2}, - {"IfMsghdr.Index", Field, 0}, - {"IfMsghdr.Msglen", Field, 0}, - {"IfMsghdr.Pad1", Field, 2}, - {"IfMsghdr.Pad2", Field, 2}, - {"IfMsghdr.Pad_cgo_0", Field, 0}, - {"IfMsghdr.Pad_cgo_1", Field, 2}, - {"IfMsghdr.Tableid", Field, 2}, - {"IfMsghdr.Type", Field, 0}, - {"IfMsghdr.Version", Field, 0}, - {"IfMsghdr.Xflags", Field, 2}, - {"IfaMsghdr", Type, 0}, - {"IfaMsghdr.Addrs", Field, 0}, - {"IfaMsghdr.Flags", Field, 0}, - {"IfaMsghdr.Hdrlen", Field, 2}, - {"IfaMsghdr.Index", Field, 0}, - {"IfaMsghdr.Metric", Field, 0}, - {"IfaMsghdr.Msglen", Field, 0}, - {"IfaMsghdr.Pad1", Field, 2}, - {"IfaMsghdr.Pad2", Field, 2}, - {"IfaMsghdr.Pad_cgo_0", Field, 0}, - {"IfaMsghdr.Tableid", Field, 2}, - {"IfaMsghdr.Type", Field, 0}, - {"IfaMsghdr.Version", Field, 0}, - {"IfmaMsghdr", Type, 0}, - {"IfmaMsghdr.Addrs", Field, 0}, - {"IfmaMsghdr.Flags", Field, 0}, - {"IfmaMsghdr.Index", Field, 0}, - {"IfmaMsghdr.Msglen", Field, 0}, - {"IfmaMsghdr.Pad_cgo_0", Field, 0}, - {"IfmaMsghdr.Type", Field, 0}, - {"IfmaMsghdr.Version", Field, 0}, - {"IfmaMsghdr2", Type, 0}, - {"IfmaMsghdr2.Addrs", Field, 0}, - {"IfmaMsghdr2.Flags", Field, 0}, - {"IfmaMsghdr2.Index", Field, 0}, - {"IfmaMsghdr2.Msglen", Field, 0}, - {"IfmaMsghdr2.Pad_cgo_0", Field, 0}, - {"IfmaMsghdr2.Refcount", Field, 0}, - {"IfmaMsghdr2.Type", Field, 0}, - {"IfmaMsghdr2.Version", Field, 0}, - {"ImplementsGetwd", Const, 0}, - {"Inet4Pktinfo", Type, 0}, - {"Inet4Pktinfo.Addr", Field, 0}, - {"Inet4Pktinfo.Ifindex", Field, 0}, - {"Inet4Pktinfo.Spec_dst", Field, 0}, - {"Inet6Pktinfo", Type, 0}, - {"Inet6Pktinfo.Addr", Field, 0}, - {"Inet6Pktinfo.Ifindex", Field, 0}, - {"InotifyAddWatch", Func, 0}, - {"InotifyEvent", Type, 0}, - {"InotifyEvent.Cookie", Field, 0}, - {"InotifyEvent.Len", Field, 0}, - {"InotifyEvent.Mask", Field, 0}, - {"InotifyEvent.Name", Field, 0}, - {"InotifyEvent.Wd", Field, 0}, - {"InotifyInit", Func, 0}, - {"InotifyInit1", Func, 0}, - {"InotifyRmWatch", Func, 0}, - {"InterfaceAddrMessage", Type, 0}, - {"InterfaceAddrMessage.Data", Field, 0}, - {"InterfaceAddrMessage.Header", Field, 0}, - {"InterfaceAnnounceMessage", Type, 1}, - {"InterfaceAnnounceMessage.Header", Field, 1}, - {"InterfaceInfo", Type, 0}, - {"InterfaceInfo.Address", Field, 0}, - {"InterfaceInfo.BroadcastAddress", Field, 0}, - {"InterfaceInfo.Flags", Field, 0}, - {"InterfaceInfo.Netmask", Field, 0}, - {"InterfaceMessage", Type, 0}, - {"InterfaceMessage.Data", Field, 0}, - {"InterfaceMessage.Header", Field, 0}, - {"InterfaceMulticastAddrMessage", Type, 0}, - {"InterfaceMulticastAddrMessage.Data", Field, 0}, - {"InterfaceMulticastAddrMessage.Header", Field, 0}, - {"InvalidHandle", Const, 0}, - {"Ioperm", Func, 0}, - {"Iopl", Func, 0}, - {"Iovec", Type, 0}, - {"Iovec.Base", Field, 0}, - {"Iovec.Len", Field, 0}, - {"IpAdapterInfo", Type, 0}, - {"IpAdapterInfo.AdapterName", Field, 0}, - {"IpAdapterInfo.Address", Field, 0}, - {"IpAdapterInfo.AddressLength", Field, 0}, - {"IpAdapterInfo.ComboIndex", Field, 0}, - {"IpAdapterInfo.CurrentIpAddress", Field, 0}, - {"IpAdapterInfo.Description", Field, 0}, - {"IpAdapterInfo.DhcpEnabled", Field, 0}, - {"IpAdapterInfo.DhcpServer", Field, 0}, - {"IpAdapterInfo.GatewayList", Field, 0}, - {"IpAdapterInfo.HaveWins", Field, 0}, - {"IpAdapterInfo.Index", Field, 0}, - {"IpAdapterInfo.IpAddressList", Field, 0}, - {"IpAdapterInfo.LeaseExpires", Field, 0}, - {"IpAdapterInfo.LeaseObtained", Field, 0}, - {"IpAdapterInfo.Next", Field, 0}, - {"IpAdapterInfo.PrimaryWinsServer", Field, 0}, - {"IpAdapterInfo.SecondaryWinsServer", Field, 0}, - {"IpAdapterInfo.Type", Field, 0}, - {"IpAddrString", Type, 0}, - {"IpAddrString.Context", Field, 0}, - {"IpAddrString.IpAddress", Field, 0}, - {"IpAddrString.IpMask", Field, 0}, - {"IpAddrString.Next", Field, 0}, - {"IpAddressString", Type, 0}, - {"IpAddressString.String", Field, 0}, - {"IpMaskString", Type, 0}, - {"IpMaskString.String", Field, 2}, - {"Issetugid", Func, 0}, - {"KEY_ALL_ACCESS", Const, 0}, - {"KEY_CREATE_LINK", Const, 0}, - {"KEY_CREATE_SUB_KEY", Const, 0}, - {"KEY_ENUMERATE_SUB_KEYS", Const, 0}, - {"KEY_EXECUTE", Const, 0}, - {"KEY_NOTIFY", Const, 0}, - {"KEY_QUERY_VALUE", Const, 0}, - {"KEY_READ", Const, 0}, - {"KEY_SET_VALUE", Const, 0}, - {"KEY_WOW64_32KEY", Const, 0}, - {"KEY_WOW64_64KEY", Const, 0}, - {"KEY_WRITE", Const, 0}, - {"Kevent", Func, 0}, - {"Kevent_t", Type, 0}, - {"Kevent_t.Data", Field, 0}, - {"Kevent_t.Fflags", Field, 0}, - {"Kevent_t.Filter", Field, 0}, - {"Kevent_t.Flags", Field, 0}, - {"Kevent_t.Ident", Field, 0}, - {"Kevent_t.Pad_cgo_0", Field, 2}, - {"Kevent_t.Udata", Field, 0}, - {"Kill", Func, 0}, - {"Klogctl", Func, 0}, - {"Kqueue", Func, 0}, - {"LANG_ENGLISH", Const, 0}, - {"LAYERED_PROTOCOL", Const, 2}, - {"LCNT_OVERLOAD_FLUSH", Const, 1}, - {"LINUX_REBOOT_CMD_CAD_OFF", Const, 0}, - {"LINUX_REBOOT_CMD_CAD_ON", Const, 0}, - {"LINUX_REBOOT_CMD_HALT", Const, 0}, - {"LINUX_REBOOT_CMD_KEXEC", Const, 0}, - {"LINUX_REBOOT_CMD_POWER_OFF", Const, 0}, - {"LINUX_REBOOT_CMD_RESTART", Const, 0}, - {"LINUX_REBOOT_CMD_RESTART2", Const, 0}, - {"LINUX_REBOOT_CMD_SW_SUSPEND", Const, 0}, - {"LINUX_REBOOT_MAGIC1", Const, 0}, - {"LINUX_REBOOT_MAGIC2", Const, 0}, - {"LOCK_EX", Const, 0}, - {"LOCK_NB", Const, 0}, - {"LOCK_SH", Const, 0}, - {"LOCK_UN", Const, 0}, - {"LazyDLL", Type, 0}, - {"LazyDLL.Name", Field, 0}, - {"LazyProc", Type, 0}, - {"LazyProc.Name", Field, 0}, - {"Lchown", Func, 0}, - {"Linger", Type, 0}, - {"Linger.Linger", Field, 0}, - {"Linger.Onoff", Field, 0}, - {"Link", Func, 0}, - {"Listen", Func, 0}, - {"Listxattr", Func, 1}, - {"LoadCancelIoEx", Func, 1}, - {"LoadConnectEx", Func, 1}, - {"LoadCreateSymbolicLink", Func, 4}, - {"LoadDLL", Func, 0}, - {"LoadGetAddrInfo", Func, 1}, - {"LoadLibrary", Func, 0}, - {"LoadSetFileCompletionNotificationModes", Func, 2}, - {"LocalFree", Func, 0}, - {"Log2phys_t", Type, 0}, - {"Log2phys_t.Contigbytes", Field, 0}, - {"Log2phys_t.Devoffset", Field, 0}, - {"Log2phys_t.Flags", Field, 0}, - {"LookupAccountName", Func, 0}, - {"LookupAccountSid", Func, 0}, - {"LookupSID", Func, 0}, - {"LsfJump", Func, 0}, - {"LsfSocket", Func, 0}, - {"LsfStmt", Func, 0}, - {"Lstat", Func, 0}, - {"MADV_AUTOSYNC", Const, 1}, - {"MADV_CAN_REUSE", Const, 0}, - {"MADV_CORE", Const, 1}, - {"MADV_DOFORK", Const, 0}, - {"MADV_DONTFORK", Const, 0}, - {"MADV_DONTNEED", Const, 0}, - {"MADV_FREE", Const, 0}, - {"MADV_FREE_REUSABLE", Const, 0}, - {"MADV_FREE_REUSE", Const, 0}, - {"MADV_HUGEPAGE", Const, 0}, - {"MADV_HWPOISON", Const, 0}, - {"MADV_MERGEABLE", Const, 0}, - {"MADV_NOCORE", Const, 1}, - {"MADV_NOHUGEPAGE", Const, 0}, - {"MADV_NORMAL", Const, 0}, - {"MADV_NOSYNC", Const, 1}, - {"MADV_PROTECT", Const, 1}, - {"MADV_RANDOM", Const, 0}, - {"MADV_REMOVE", Const, 0}, - {"MADV_SEQUENTIAL", Const, 0}, - {"MADV_SPACEAVAIL", Const, 3}, - {"MADV_UNMERGEABLE", Const, 0}, - {"MADV_WILLNEED", Const, 0}, - {"MADV_ZERO_WIRED_PAGES", Const, 0}, - {"MAP_32BIT", Const, 0}, - {"MAP_ALIGNED_SUPER", Const, 3}, - {"MAP_ALIGNMENT_16MB", Const, 3}, - {"MAP_ALIGNMENT_1TB", Const, 3}, - {"MAP_ALIGNMENT_256TB", Const, 3}, - {"MAP_ALIGNMENT_4GB", Const, 3}, - {"MAP_ALIGNMENT_64KB", Const, 3}, - {"MAP_ALIGNMENT_64PB", Const, 3}, - {"MAP_ALIGNMENT_MASK", Const, 3}, - {"MAP_ALIGNMENT_SHIFT", Const, 3}, - {"MAP_ANON", Const, 0}, - {"MAP_ANONYMOUS", Const, 0}, - {"MAP_COPY", Const, 0}, - {"MAP_DENYWRITE", Const, 0}, - {"MAP_EXECUTABLE", Const, 0}, - {"MAP_FILE", Const, 0}, - {"MAP_FIXED", Const, 0}, - {"MAP_FLAGMASK", Const, 3}, - {"MAP_GROWSDOWN", Const, 0}, - {"MAP_HASSEMAPHORE", Const, 0}, - {"MAP_HUGETLB", Const, 0}, - {"MAP_INHERIT", Const, 3}, - {"MAP_INHERIT_COPY", Const, 3}, - {"MAP_INHERIT_DEFAULT", Const, 3}, - {"MAP_INHERIT_DONATE_COPY", Const, 3}, - {"MAP_INHERIT_NONE", Const, 3}, - {"MAP_INHERIT_SHARE", Const, 3}, - {"MAP_JIT", Const, 0}, - {"MAP_LOCKED", Const, 0}, - {"MAP_NOCACHE", Const, 0}, - {"MAP_NOCORE", Const, 1}, - {"MAP_NOEXTEND", Const, 0}, - {"MAP_NONBLOCK", Const, 0}, - {"MAP_NORESERVE", Const, 0}, - {"MAP_NOSYNC", Const, 1}, - {"MAP_POPULATE", Const, 0}, - {"MAP_PREFAULT_READ", Const, 1}, - {"MAP_PRIVATE", Const, 0}, - {"MAP_RENAME", Const, 0}, - {"MAP_RESERVED0080", Const, 0}, - {"MAP_RESERVED0100", Const, 1}, - {"MAP_SHARED", Const, 0}, - {"MAP_STACK", Const, 0}, - {"MAP_TRYFIXED", Const, 3}, - {"MAP_TYPE", Const, 0}, - {"MAP_WIRED", Const, 3}, - {"MAXIMUM_REPARSE_DATA_BUFFER_SIZE", Const, 4}, - {"MAXLEN_IFDESCR", Const, 0}, - {"MAXLEN_PHYSADDR", Const, 0}, - {"MAX_ADAPTER_ADDRESS_LENGTH", Const, 0}, - {"MAX_ADAPTER_DESCRIPTION_LENGTH", Const, 0}, - {"MAX_ADAPTER_NAME_LENGTH", Const, 0}, - {"MAX_COMPUTERNAME_LENGTH", Const, 0}, - {"MAX_INTERFACE_NAME_LEN", Const, 0}, - {"MAX_LONG_PATH", Const, 0}, - {"MAX_PATH", Const, 0}, - {"MAX_PROTOCOL_CHAIN", Const, 2}, - {"MCL_CURRENT", Const, 0}, - {"MCL_FUTURE", Const, 0}, - {"MNT_DETACH", Const, 0}, - {"MNT_EXPIRE", Const, 0}, - {"MNT_FORCE", Const, 0}, - {"MSG_BCAST", Const, 1}, - {"MSG_CMSG_CLOEXEC", Const, 0}, - {"MSG_COMPAT", Const, 0}, - {"MSG_CONFIRM", Const, 0}, - {"MSG_CONTROLMBUF", Const, 1}, - {"MSG_CTRUNC", Const, 0}, - {"MSG_DONTROUTE", Const, 0}, - {"MSG_DONTWAIT", Const, 0}, - {"MSG_EOF", Const, 0}, - {"MSG_EOR", Const, 0}, - {"MSG_ERRQUEUE", Const, 0}, - {"MSG_FASTOPEN", Const, 1}, - {"MSG_FIN", Const, 0}, - {"MSG_FLUSH", Const, 0}, - {"MSG_HAVEMORE", Const, 0}, - {"MSG_HOLD", Const, 0}, - {"MSG_IOVUSRSPACE", Const, 1}, - {"MSG_LENUSRSPACE", Const, 1}, - {"MSG_MCAST", Const, 1}, - {"MSG_MORE", Const, 0}, - {"MSG_NAMEMBUF", Const, 1}, - {"MSG_NBIO", Const, 0}, - {"MSG_NEEDSA", Const, 0}, - {"MSG_NOSIGNAL", Const, 0}, - {"MSG_NOTIFICATION", Const, 0}, - {"MSG_OOB", Const, 0}, - {"MSG_PEEK", Const, 0}, - {"MSG_PROXY", Const, 0}, - {"MSG_RCVMORE", Const, 0}, - {"MSG_RST", Const, 0}, - {"MSG_SEND", Const, 0}, - {"MSG_SYN", Const, 0}, - {"MSG_TRUNC", Const, 0}, - {"MSG_TRYHARD", Const, 0}, - {"MSG_USERFLAGS", Const, 1}, - {"MSG_WAITALL", Const, 0}, - {"MSG_WAITFORONE", Const, 0}, - {"MSG_WAITSTREAM", Const, 0}, - {"MS_ACTIVE", Const, 0}, - {"MS_ASYNC", Const, 0}, - {"MS_BIND", Const, 0}, - {"MS_DEACTIVATE", Const, 0}, - {"MS_DIRSYNC", Const, 0}, - {"MS_INVALIDATE", Const, 0}, - {"MS_I_VERSION", Const, 0}, - {"MS_KERNMOUNT", Const, 0}, - {"MS_KILLPAGES", Const, 0}, - {"MS_MANDLOCK", Const, 0}, - {"MS_MGC_MSK", Const, 0}, - {"MS_MGC_VAL", Const, 0}, - {"MS_MOVE", Const, 0}, - {"MS_NOATIME", Const, 0}, - {"MS_NODEV", Const, 0}, - {"MS_NODIRATIME", Const, 0}, - {"MS_NOEXEC", Const, 0}, - {"MS_NOSUID", Const, 0}, - {"MS_NOUSER", Const, 0}, - {"MS_POSIXACL", Const, 0}, - {"MS_PRIVATE", Const, 0}, - {"MS_RDONLY", Const, 0}, - {"MS_REC", Const, 0}, - {"MS_RELATIME", Const, 0}, - {"MS_REMOUNT", Const, 0}, - {"MS_RMT_MASK", Const, 0}, - {"MS_SHARED", Const, 0}, - {"MS_SILENT", Const, 0}, - {"MS_SLAVE", Const, 0}, - {"MS_STRICTATIME", Const, 0}, - {"MS_SYNC", Const, 0}, - {"MS_SYNCHRONOUS", Const, 0}, - {"MS_UNBINDABLE", Const, 0}, - {"Madvise", Func, 0}, - {"MapViewOfFile", Func, 0}, - {"MaxTokenInfoClass", Const, 0}, - {"Mclpool", Type, 2}, - {"Mclpool.Alive", Field, 2}, - {"Mclpool.Cwm", Field, 2}, - {"Mclpool.Grown", Field, 2}, - {"Mclpool.Hwm", Field, 2}, - {"Mclpool.Lwm", Field, 2}, - {"MibIfRow", Type, 0}, - {"MibIfRow.AdminStatus", Field, 0}, - {"MibIfRow.Descr", Field, 0}, - {"MibIfRow.DescrLen", Field, 0}, - {"MibIfRow.InDiscards", Field, 0}, - {"MibIfRow.InErrors", Field, 0}, - {"MibIfRow.InNUcastPkts", Field, 0}, - {"MibIfRow.InOctets", Field, 0}, - {"MibIfRow.InUcastPkts", Field, 0}, - {"MibIfRow.InUnknownProtos", Field, 0}, - {"MibIfRow.Index", Field, 0}, - {"MibIfRow.LastChange", Field, 0}, - {"MibIfRow.Mtu", Field, 0}, - {"MibIfRow.Name", Field, 0}, - {"MibIfRow.OperStatus", Field, 0}, - {"MibIfRow.OutDiscards", Field, 0}, - {"MibIfRow.OutErrors", Field, 0}, - {"MibIfRow.OutNUcastPkts", Field, 0}, - {"MibIfRow.OutOctets", Field, 0}, - {"MibIfRow.OutQLen", Field, 0}, - {"MibIfRow.OutUcastPkts", Field, 0}, - {"MibIfRow.PhysAddr", Field, 0}, - {"MibIfRow.PhysAddrLen", Field, 0}, - {"MibIfRow.Speed", Field, 0}, - {"MibIfRow.Type", Field, 0}, - {"Mkdir", Func, 0}, - {"Mkdirat", Func, 0}, - {"Mkfifo", Func, 0}, - {"Mknod", Func, 0}, - {"Mknodat", Func, 0}, - {"Mlock", Func, 0}, - {"Mlockall", Func, 0}, - {"Mmap", Func, 0}, - {"Mount", Func, 0}, - {"MoveFile", Func, 0}, - {"Mprotect", Func, 0}, - {"Msghdr", Type, 0}, - {"Msghdr.Control", Field, 0}, - {"Msghdr.Controllen", Field, 0}, - {"Msghdr.Flags", Field, 0}, - {"Msghdr.Iov", Field, 0}, - {"Msghdr.Iovlen", Field, 0}, - {"Msghdr.Name", Field, 0}, - {"Msghdr.Namelen", Field, 0}, - {"Msghdr.Pad_cgo_0", Field, 0}, - {"Msghdr.Pad_cgo_1", Field, 0}, - {"Munlock", Func, 0}, - {"Munlockall", Func, 0}, - {"Munmap", Func, 0}, - {"MustLoadDLL", Func, 0}, - {"NAME_MAX", Const, 0}, - {"NETLINK_ADD_MEMBERSHIP", Const, 0}, - {"NETLINK_AUDIT", Const, 0}, - {"NETLINK_BROADCAST_ERROR", Const, 0}, - {"NETLINK_CONNECTOR", Const, 0}, - {"NETLINK_DNRTMSG", Const, 0}, - {"NETLINK_DROP_MEMBERSHIP", Const, 0}, - {"NETLINK_ECRYPTFS", Const, 0}, - {"NETLINK_FIB_LOOKUP", Const, 0}, - {"NETLINK_FIREWALL", Const, 0}, - {"NETLINK_GENERIC", Const, 0}, - {"NETLINK_INET_DIAG", Const, 0}, - {"NETLINK_IP6_FW", Const, 0}, - {"NETLINK_ISCSI", Const, 0}, - {"NETLINK_KOBJECT_UEVENT", Const, 0}, - {"NETLINK_NETFILTER", Const, 0}, - {"NETLINK_NFLOG", Const, 0}, - {"NETLINK_NO_ENOBUFS", Const, 0}, - {"NETLINK_PKTINFO", Const, 0}, - {"NETLINK_RDMA", Const, 0}, - {"NETLINK_ROUTE", Const, 0}, - {"NETLINK_SCSITRANSPORT", Const, 0}, - {"NETLINK_SELINUX", Const, 0}, - {"NETLINK_UNUSED", Const, 0}, - {"NETLINK_USERSOCK", Const, 0}, - {"NETLINK_XFRM", Const, 0}, - {"NET_RT_DUMP", Const, 0}, - {"NET_RT_DUMP2", Const, 0}, - {"NET_RT_FLAGS", Const, 0}, - {"NET_RT_IFLIST", Const, 0}, - {"NET_RT_IFLIST2", Const, 0}, - {"NET_RT_IFLISTL", Const, 1}, - {"NET_RT_IFMALIST", Const, 0}, - {"NET_RT_MAXID", Const, 0}, - {"NET_RT_OIFLIST", Const, 1}, - {"NET_RT_OOIFLIST", Const, 1}, - {"NET_RT_STAT", Const, 0}, - {"NET_RT_STATS", Const, 1}, - {"NET_RT_TABLE", Const, 1}, - {"NET_RT_TRASH", Const, 0}, - {"NLA_ALIGNTO", Const, 0}, - {"NLA_F_NESTED", Const, 0}, - {"NLA_F_NET_BYTEORDER", Const, 0}, - {"NLA_HDRLEN", Const, 0}, - {"NLMSG_ALIGNTO", Const, 0}, - {"NLMSG_DONE", Const, 0}, - {"NLMSG_ERROR", Const, 0}, - {"NLMSG_HDRLEN", Const, 0}, - {"NLMSG_MIN_TYPE", Const, 0}, - {"NLMSG_NOOP", Const, 0}, - {"NLMSG_OVERRUN", Const, 0}, - {"NLM_F_ACK", Const, 0}, - {"NLM_F_APPEND", Const, 0}, - {"NLM_F_ATOMIC", Const, 0}, - {"NLM_F_CREATE", Const, 0}, - {"NLM_F_DUMP", Const, 0}, - {"NLM_F_ECHO", Const, 0}, - {"NLM_F_EXCL", Const, 0}, - {"NLM_F_MATCH", Const, 0}, - {"NLM_F_MULTI", Const, 0}, - {"NLM_F_REPLACE", Const, 0}, - {"NLM_F_REQUEST", Const, 0}, - {"NLM_F_ROOT", Const, 0}, - {"NOFLSH", Const, 0}, - {"NOTE_ABSOLUTE", Const, 0}, - {"NOTE_ATTRIB", Const, 0}, - {"NOTE_BACKGROUND", Const, 16}, - {"NOTE_CHILD", Const, 0}, - {"NOTE_CRITICAL", Const, 16}, - {"NOTE_DELETE", Const, 0}, - {"NOTE_EOF", Const, 1}, - {"NOTE_EXEC", Const, 0}, - {"NOTE_EXIT", Const, 0}, - {"NOTE_EXITSTATUS", Const, 0}, - {"NOTE_EXIT_CSERROR", Const, 16}, - {"NOTE_EXIT_DECRYPTFAIL", Const, 16}, - {"NOTE_EXIT_DETAIL", Const, 16}, - {"NOTE_EXIT_DETAIL_MASK", Const, 16}, - {"NOTE_EXIT_MEMORY", Const, 16}, - {"NOTE_EXIT_REPARENTED", Const, 16}, - {"NOTE_EXTEND", Const, 0}, - {"NOTE_FFAND", Const, 0}, - {"NOTE_FFCOPY", Const, 0}, - {"NOTE_FFCTRLMASK", Const, 0}, - {"NOTE_FFLAGSMASK", Const, 0}, - {"NOTE_FFNOP", Const, 0}, - {"NOTE_FFOR", Const, 0}, - {"NOTE_FORK", Const, 0}, - {"NOTE_LEEWAY", Const, 16}, - {"NOTE_LINK", Const, 0}, - {"NOTE_LOWAT", Const, 0}, - {"NOTE_NONE", Const, 0}, - {"NOTE_NSECONDS", Const, 0}, - {"NOTE_PCTRLMASK", Const, 0}, - {"NOTE_PDATAMASK", Const, 0}, - {"NOTE_REAP", Const, 0}, - {"NOTE_RENAME", Const, 0}, - {"NOTE_RESOURCEEND", Const, 0}, - {"NOTE_REVOKE", Const, 0}, - {"NOTE_SECONDS", Const, 0}, - {"NOTE_SIGNAL", Const, 0}, - {"NOTE_TRACK", Const, 0}, - {"NOTE_TRACKERR", Const, 0}, - {"NOTE_TRIGGER", Const, 0}, - {"NOTE_TRUNCATE", Const, 1}, - {"NOTE_USECONDS", Const, 0}, - {"NOTE_VM_ERROR", Const, 0}, - {"NOTE_VM_PRESSURE", Const, 0}, - {"NOTE_VM_PRESSURE_SUDDEN_TERMINATE", Const, 0}, - {"NOTE_VM_PRESSURE_TERMINATE", Const, 0}, - {"NOTE_WRITE", Const, 0}, - {"NameCanonical", Const, 0}, - {"NameCanonicalEx", Const, 0}, - {"NameDisplay", Const, 0}, - {"NameDnsDomain", Const, 0}, - {"NameFullyQualifiedDN", Const, 0}, - {"NameSamCompatible", Const, 0}, - {"NameServicePrincipal", Const, 0}, - {"NameUniqueId", Const, 0}, - {"NameUnknown", Const, 0}, - {"NameUserPrincipal", Const, 0}, - {"Nanosleep", Func, 0}, - {"NetApiBufferFree", Func, 0}, - {"NetGetJoinInformation", Func, 2}, - {"NetSetupDomainName", Const, 2}, - {"NetSetupUnjoined", Const, 2}, - {"NetSetupUnknownStatus", Const, 2}, - {"NetSetupWorkgroupName", Const, 2}, - {"NetUserGetInfo", Func, 0}, - {"NetlinkMessage", Type, 0}, - {"NetlinkMessage.Data", Field, 0}, - {"NetlinkMessage.Header", Field, 0}, - {"NetlinkRIB", Func, 0}, - {"NetlinkRouteAttr", Type, 0}, - {"NetlinkRouteAttr.Attr", Field, 0}, - {"NetlinkRouteAttr.Value", Field, 0}, - {"NetlinkRouteRequest", Type, 0}, - {"NetlinkRouteRequest.Data", Field, 0}, - {"NetlinkRouteRequest.Header", Field, 0}, - {"NewCallback", Func, 0}, - {"NewCallbackCDecl", Func, 3}, - {"NewLazyDLL", Func, 0}, - {"NlAttr", Type, 0}, - {"NlAttr.Len", Field, 0}, - {"NlAttr.Type", Field, 0}, - {"NlMsgerr", Type, 0}, - {"NlMsgerr.Error", Field, 0}, - {"NlMsgerr.Msg", Field, 0}, - {"NlMsghdr", Type, 0}, - {"NlMsghdr.Flags", Field, 0}, - {"NlMsghdr.Len", Field, 0}, - {"NlMsghdr.Pid", Field, 0}, - {"NlMsghdr.Seq", Field, 0}, - {"NlMsghdr.Type", Field, 0}, - {"NsecToFiletime", Func, 0}, - {"NsecToTimespec", Func, 0}, - {"NsecToTimeval", Func, 0}, - {"Ntohs", Func, 0}, - {"OCRNL", Const, 0}, - {"OFDEL", Const, 0}, - {"OFILL", Const, 0}, - {"OFIOGETBMAP", Const, 1}, - {"OID_PKIX_KP_SERVER_AUTH", Var, 0}, - {"OID_SERVER_GATED_CRYPTO", Var, 0}, - {"OID_SGC_NETSCAPE", Var, 0}, - {"OLCUC", Const, 0}, - {"ONLCR", Const, 0}, - {"ONLRET", Const, 0}, - {"ONOCR", Const, 0}, - {"ONOEOT", Const, 1}, - {"OPEN_ALWAYS", Const, 0}, - {"OPEN_EXISTING", Const, 0}, - {"OPOST", Const, 0}, - {"O_ACCMODE", Const, 0}, - {"O_ALERT", Const, 0}, - {"O_ALT_IO", Const, 1}, - {"O_APPEND", Const, 0}, - {"O_ASYNC", Const, 0}, - {"O_CLOEXEC", Const, 0}, - {"O_CREAT", Const, 0}, - {"O_DIRECT", Const, 0}, - {"O_DIRECTORY", Const, 0}, - {"O_DP_GETRAWENCRYPTED", Const, 16}, - {"O_DSYNC", Const, 0}, - {"O_EVTONLY", Const, 0}, - {"O_EXCL", Const, 0}, - {"O_EXEC", Const, 0}, - {"O_EXLOCK", Const, 0}, - {"O_FSYNC", Const, 0}, - {"O_LARGEFILE", Const, 0}, - {"O_NDELAY", Const, 0}, - {"O_NOATIME", Const, 0}, - {"O_NOCTTY", Const, 0}, - {"O_NOFOLLOW", Const, 0}, - {"O_NONBLOCK", Const, 0}, - {"O_NOSIGPIPE", Const, 1}, - {"O_POPUP", Const, 0}, - {"O_RDONLY", Const, 0}, - {"O_RDWR", Const, 0}, - {"O_RSYNC", Const, 0}, - {"O_SHLOCK", Const, 0}, - {"O_SYMLINK", Const, 0}, - {"O_SYNC", Const, 0}, - {"O_TRUNC", Const, 0}, - {"O_TTY_INIT", Const, 0}, - {"O_WRONLY", Const, 0}, - {"Open", Func, 0}, - {"OpenCurrentProcessToken", Func, 0}, - {"OpenProcess", Func, 0}, - {"OpenProcessToken", Func, 0}, - {"Openat", Func, 0}, - {"Overlapped", Type, 0}, - {"Overlapped.HEvent", Field, 0}, - {"Overlapped.Internal", Field, 0}, - {"Overlapped.InternalHigh", Field, 0}, - {"Overlapped.Offset", Field, 0}, - {"Overlapped.OffsetHigh", Field, 0}, - {"PACKET_ADD_MEMBERSHIP", Const, 0}, - {"PACKET_BROADCAST", Const, 0}, - {"PACKET_DROP_MEMBERSHIP", Const, 0}, - {"PACKET_FASTROUTE", Const, 0}, - {"PACKET_HOST", Const, 0}, - {"PACKET_LOOPBACK", Const, 0}, - {"PACKET_MR_ALLMULTI", Const, 0}, - {"PACKET_MR_MULTICAST", Const, 0}, - {"PACKET_MR_PROMISC", Const, 0}, - {"PACKET_MULTICAST", Const, 0}, - {"PACKET_OTHERHOST", Const, 0}, - {"PACKET_OUTGOING", Const, 0}, - {"PACKET_RECV_OUTPUT", Const, 0}, - {"PACKET_RX_RING", Const, 0}, - {"PACKET_STATISTICS", Const, 0}, - {"PAGE_EXECUTE_READ", Const, 0}, - {"PAGE_EXECUTE_READWRITE", Const, 0}, - {"PAGE_EXECUTE_WRITECOPY", Const, 0}, - {"PAGE_READONLY", Const, 0}, - {"PAGE_READWRITE", Const, 0}, - {"PAGE_WRITECOPY", Const, 0}, - {"PARENB", Const, 0}, - {"PARMRK", Const, 0}, - {"PARODD", Const, 0}, - {"PENDIN", Const, 0}, - {"PFL_HIDDEN", Const, 2}, - {"PFL_MATCHES_PROTOCOL_ZERO", Const, 2}, - {"PFL_MULTIPLE_PROTO_ENTRIES", Const, 2}, - {"PFL_NETWORKDIRECT_PROVIDER", Const, 2}, - {"PFL_RECOMMENDED_PROTO_ENTRY", Const, 2}, - {"PF_FLUSH", Const, 1}, - {"PKCS_7_ASN_ENCODING", Const, 0}, - {"PMC5_PIPELINE_FLUSH", Const, 1}, - {"PRIO_PGRP", Const, 2}, - {"PRIO_PROCESS", Const, 2}, - {"PRIO_USER", Const, 2}, - {"PRI_IOFLUSH", Const, 1}, - {"PROCESS_QUERY_INFORMATION", Const, 0}, - {"PROCESS_TERMINATE", Const, 2}, - {"PROT_EXEC", Const, 0}, - {"PROT_GROWSDOWN", Const, 0}, - {"PROT_GROWSUP", Const, 0}, - {"PROT_NONE", Const, 0}, - {"PROT_READ", Const, 0}, - {"PROT_WRITE", Const, 0}, - {"PROV_DH_SCHANNEL", Const, 0}, - {"PROV_DSS", Const, 0}, - {"PROV_DSS_DH", Const, 0}, - {"PROV_EC_ECDSA_FULL", Const, 0}, - {"PROV_EC_ECDSA_SIG", Const, 0}, - {"PROV_EC_ECNRA_FULL", Const, 0}, - {"PROV_EC_ECNRA_SIG", Const, 0}, - {"PROV_FORTEZZA", Const, 0}, - {"PROV_INTEL_SEC", Const, 0}, - {"PROV_MS_EXCHANGE", Const, 0}, - {"PROV_REPLACE_OWF", Const, 0}, - {"PROV_RNG", Const, 0}, - {"PROV_RSA_AES", Const, 0}, - {"PROV_RSA_FULL", Const, 0}, - {"PROV_RSA_SCHANNEL", Const, 0}, - {"PROV_RSA_SIG", Const, 0}, - {"PROV_SPYRUS_LYNKS", Const, 0}, - {"PROV_SSL", Const, 0}, - {"PR_CAPBSET_DROP", Const, 0}, - {"PR_CAPBSET_READ", Const, 0}, - {"PR_CLEAR_SECCOMP_FILTER", Const, 0}, - {"PR_ENDIAN_BIG", Const, 0}, - {"PR_ENDIAN_LITTLE", Const, 0}, - {"PR_ENDIAN_PPC_LITTLE", Const, 0}, - {"PR_FPEMU_NOPRINT", Const, 0}, - {"PR_FPEMU_SIGFPE", Const, 0}, - {"PR_FP_EXC_ASYNC", Const, 0}, - {"PR_FP_EXC_DISABLED", Const, 0}, - {"PR_FP_EXC_DIV", Const, 0}, - {"PR_FP_EXC_INV", Const, 0}, - {"PR_FP_EXC_NONRECOV", Const, 0}, - {"PR_FP_EXC_OVF", Const, 0}, - {"PR_FP_EXC_PRECISE", Const, 0}, - {"PR_FP_EXC_RES", Const, 0}, - {"PR_FP_EXC_SW_ENABLE", Const, 0}, - {"PR_FP_EXC_UND", Const, 0}, - {"PR_GET_DUMPABLE", Const, 0}, - {"PR_GET_ENDIAN", Const, 0}, - {"PR_GET_FPEMU", Const, 0}, - {"PR_GET_FPEXC", Const, 0}, - {"PR_GET_KEEPCAPS", Const, 0}, - {"PR_GET_NAME", Const, 0}, - {"PR_GET_PDEATHSIG", Const, 0}, - {"PR_GET_SECCOMP", Const, 0}, - {"PR_GET_SECCOMP_FILTER", Const, 0}, - {"PR_GET_SECUREBITS", Const, 0}, - {"PR_GET_TIMERSLACK", Const, 0}, - {"PR_GET_TIMING", Const, 0}, - {"PR_GET_TSC", Const, 0}, - {"PR_GET_UNALIGN", Const, 0}, - {"PR_MCE_KILL", Const, 0}, - {"PR_MCE_KILL_CLEAR", Const, 0}, - {"PR_MCE_KILL_DEFAULT", Const, 0}, - {"PR_MCE_KILL_EARLY", Const, 0}, - {"PR_MCE_KILL_GET", Const, 0}, - {"PR_MCE_KILL_LATE", Const, 0}, - {"PR_MCE_KILL_SET", Const, 0}, - {"PR_SECCOMP_FILTER_EVENT", Const, 0}, - {"PR_SECCOMP_FILTER_SYSCALL", Const, 0}, - {"PR_SET_DUMPABLE", Const, 0}, - {"PR_SET_ENDIAN", Const, 0}, - {"PR_SET_FPEMU", Const, 0}, - {"PR_SET_FPEXC", Const, 0}, - {"PR_SET_KEEPCAPS", Const, 0}, - {"PR_SET_NAME", Const, 0}, - {"PR_SET_PDEATHSIG", Const, 0}, - {"PR_SET_PTRACER", Const, 0}, - {"PR_SET_SECCOMP", Const, 0}, - {"PR_SET_SECCOMP_FILTER", Const, 0}, - {"PR_SET_SECUREBITS", Const, 0}, - {"PR_SET_TIMERSLACK", Const, 0}, - {"PR_SET_TIMING", Const, 0}, - {"PR_SET_TSC", Const, 0}, - {"PR_SET_UNALIGN", Const, 0}, - {"PR_TASK_PERF_EVENTS_DISABLE", Const, 0}, - {"PR_TASK_PERF_EVENTS_ENABLE", Const, 0}, - {"PR_TIMING_STATISTICAL", Const, 0}, - {"PR_TIMING_TIMESTAMP", Const, 0}, - {"PR_TSC_ENABLE", Const, 0}, - {"PR_TSC_SIGSEGV", Const, 0}, - {"PR_UNALIGN_NOPRINT", Const, 0}, - {"PR_UNALIGN_SIGBUS", Const, 0}, - {"PTRACE_ARCH_PRCTL", Const, 0}, - {"PTRACE_ATTACH", Const, 0}, - {"PTRACE_CONT", Const, 0}, - {"PTRACE_DETACH", Const, 0}, - {"PTRACE_EVENT_CLONE", Const, 0}, - {"PTRACE_EVENT_EXEC", Const, 0}, - {"PTRACE_EVENT_EXIT", Const, 0}, - {"PTRACE_EVENT_FORK", Const, 0}, - {"PTRACE_EVENT_VFORK", Const, 0}, - {"PTRACE_EVENT_VFORK_DONE", Const, 0}, - {"PTRACE_GETCRUNCHREGS", Const, 0}, - {"PTRACE_GETEVENTMSG", Const, 0}, - {"PTRACE_GETFPREGS", Const, 0}, - {"PTRACE_GETFPXREGS", Const, 0}, - {"PTRACE_GETHBPREGS", Const, 0}, - {"PTRACE_GETREGS", Const, 0}, - {"PTRACE_GETREGSET", Const, 0}, - {"PTRACE_GETSIGINFO", Const, 0}, - {"PTRACE_GETVFPREGS", Const, 0}, - {"PTRACE_GETWMMXREGS", Const, 0}, - {"PTRACE_GET_THREAD_AREA", Const, 0}, - {"PTRACE_KILL", Const, 0}, - {"PTRACE_OLDSETOPTIONS", Const, 0}, - {"PTRACE_O_MASK", Const, 0}, - {"PTRACE_O_TRACECLONE", Const, 0}, - {"PTRACE_O_TRACEEXEC", Const, 0}, - {"PTRACE_O_TRACEEXIT", Const, 0}, - {"PTRACE_O_TRACEFORK", Const, 0}, - {"PTRACE_O_TRACESYSGOOD", Const, 0}, - {"PTRACE_O_TRACEVFORK", Const, 0}, - {"PTRACE_O_TRACEVFORKDONE", Const, 0}, - {"PTRACE_PEEKDATA", Const, 0}, - {"PTRACE_PEEKTEXT", Const, 0}, - {"PTRACE_PEEKUSR", Const, 0}, - {"PTRACE_POKEDATA", Const, 0}, - {"PTRACE_POKETEXT", Const, 0}, - {"PTRACE_POKEUSR", Const, 0}, - {"PTRACE_SETCRUNCHREGS", Const, 0}, - {"PTRACE_SETFPREGS", Const, 0}, - {"PTRACE_SETFPXREGS", Const, 0}, - {"PTRACE_SETHBPREGS", Const, 0}, - {"PTRACE_SETOPTIONS", Const, 0}, - {"PTRACE_SETREGS", Const, 0}, - {"PTRACE_SETREGSET", Const, 0}, - {"PTRACE_SETSIGINFO", Const, 0}, - {"PTRACE_SETVFPREGS", Const, 0}, - {"PTRACE_SETWMMXREGS", Const, 0}, - {"PTRACE_SET_SYSCALL", Const, 0}, - {"PTRACE_SET_THREAD_AREA", Const, 0}, - {"PTRACE_SINGLEBLOCK", Const, 0}, - {"PTRACE_SINGLESTEP", Const, 0}, - {"PTRACE_SYSCALL", Const, 0}, - {"PTRACE_SYSEMU", Const, 0}, - {"PTRACE_SYSEMU_SINGLESTEP", Const, 0}, - {"PTRACE_TRACEME", Const, 0}, - {"PT_ATTACH", Const, 0}, - {"PT_ATTACHEXC", Const, 0}, - {"PT_CONTINUE", Const, 0}, - {"PT_DATA_ADDR", Const, 0}, - {"PT_DENY_ATTACH", Const, 0}, - {"PT_DETACH", Const, 0}, - {"PT_FIRSTMACH", Const, 0}, - {"PT_FORCEQUOTA", Const, 0}, - {"PT_KILL", Const, 0}, - {"PT_MASK", Const, 1}, - {"PT_READ_D", Const, 0}, - {"PT_READ_I", Const, 0}, - {"PT_READ_U", Const, 0}, - {"PT_SIGEXC", Const, 0}, - {"PT_STEP", Const, 0}, - {"PT_TEXT_ADDR", Const, 0}, - {"PT_TEXT_END_ADDR", Const, 0}, - {"PT_THUPDATE", Const, 0}, - {"PT_TRACE_ME", Const, 0}, - {"PT_WRITE_D", Const, 0}, - {"PT_WRITE_I", Const, 0}, - {"PT_WRITE_U", Const, 0}, - {"ParseDirent", Func, 0}, - {"ParseNetlinkMessage", Func, 0}, - {"ParseNetlinkRouteAttr", Func, 0}, - {"ParseRoutingMessage", Func, 0}, - {"ParseRoutingSockaddr", Func, 0}, - {"ParseSocketControlMessage", Func, 0}, - {"ParseUnixCredentials", Func, 0}, - {"ParseUnixRights", Func, 0}, - {"PathMax", Const, 0}, - {"Pathconf", Func, 0}, - {"Pause", Func, 0}, - {"Pipe", Func, 0}, - {"Pipe2", Func, 1}, - {"PivotRoot", Func, 0}, - {"Pointer", Type, 11}, - {"PostQueuedCompletionStatus", Func, 0}, - {"Pread", Func, 0}, - {"Proc", Type, 0}, - {"Proc.Dll", Field, 0}, - {"Proc.Name", Field, 0}, - {"ProcAttr", Type, 0}, - {"ProcAttr.Dir", Field, 0}, - {"ProcAttr.Env", Field, 0}, - {"ProcAttr.Files", Field, 0}, - {"ProcAttr.Sys", Field, 0}, - {"Process32First", Func, 4}, - {"Process32Next", Func, 4}, - {"ProcessEntry32", Type, 4}, - {"ProcessEntry32.DefaultHeapID", Field, 4}, - {"ProcessEntry32.ExeFile", Field, 4}, - {"ProcessEntry32.Flags", Field, 4}, - {"ProcessEntry32.ModuleID", Field, 4}, - {"ProcessEntry32.ParentProcessID", Field, 4}, - {"ProcessEntry32.PriClassBase", Field, 4}, - {"ProcessEntry32.ProcessID", Field, 4}, - {"ProcessEntry32.Size", Field, 4}, - {"ProcessEntry32.Threads", Field, 4}, - {"ProcessEntry32.Usage", Field, 4}, - {"ProcessInformation", Type, 0}, - {"ProcessInformation.Process", Field, 0}, - {"ProcessInformation.ProcessId", Field, 0}, - {"ProcessInformation.Thread", Field, 0}, - {"ProcessInformation.ThreadId", Field, 0}, - {"Protoent", Type, 0}, - {"Protoent.Aliases", Field, 0}, - {"Protoent.Name", Field, 0}, - {"Protoent.Proto", Field, 0}, - {"PtraceAttach", Func, 0}, - {"PtraceCont", Func, 0}, - {"PtraceDetach", Func, 0}, - {"PtraceGetEventMsg", Func, 0}, - {"PtraceGetRegs", Func, 0}, - {"PtracePeekData", Func, 0}, - {"PtracePeekText", Func, 0}, - {"PtracePokeData", Func, 0}, - {"PtracePokeText", Func, 0}, - {"PtraceRegs", Type, 0}, - {"PtraceRegs.Cs", Field, 0}, - {"PtraceRegs.Ds", Field, 0}, - {"PtraceRegs.Eax", Field, 0}, - {"PtraceRegs.Ebp", Field, 0}, - {"PtraceRegs.Ebx", Field, 0}, - {"PtraceRegs.Ecx", Field, 0}, - {"PtraceRegs.Edi", Field, 0}, - {"PtraceRegs.Edx", Field, 0}, - {"PtraceRegs.Eflags", Field, 0}, - {"PtraceRegs.Eip", Field, 0}, - {"PtraceRegs.Es", Field, 0}, - {"PtraceRegs.Esi", Field, 0}, - {"PtraceRegs.Esp", Field, 0}, - {"PtraceRegs.Fs", Field, 0}, - {"PtraceRegs.Fs_base", Field, 0}, - {"PtraceRegs.Gs", Field, 0}, - {"PtraceRegs.Gs_base", Field, 0}, - {"PtraceRegs.Orig_eax", Field, 0}, - {"PtraceRegs.Orig_rax", Field, 0}, - {"PtraceRegs.R10", Field, 0}, - {"PtraceRegs.R11", Field, 0}, - {"PtraceRegs.R12", Field, 0}, - {"PtraceRegs.R13", Field, 0}, - {"PtraceRegs.R14", Field, 0}, - {"PtraceRegs.R15", Field, 0}, - {"PtraceRegs.R8", Field, 0}, - {"PtraceRegs.R9", Field, 0}, - {"PtraceRegs.Rax", Field, 0}, - {"PtraceRegs.Rbp", Field, 0}, - {"PtraceRegs.Rbx", Field, 0}, - {"PtraceRegs.Rcx", Field, 0}, - {"PtraceRegs.Rdi", Field, 0}, - {"PtraceRegs.Rdx", Field, 0}, - {"PtraceRegs.Rip", Field, 0}, - {"PtraceRegs.Rsi", Field, 0}, - {"PtraceRegs.Rsp", Field, 0}, - {"PtraceRegs.Ss", Field, 0}, - {"PtraceRegs.Uregs", Field, 0}, - {"PtraceRegs.Xcs", Field, 0}, - {"PtraceRegs.Xds", Field, 0}, - {"PtraceRegs.Xes", Field, 0}, - {"PtraceRegs.Xfs", Field, 0}, - {"PtraceRegs.Xgs", Field, 0}, - {"PtraceRegs.Xss", Field, 0}, - {"PtraceSetOptions", Func, 0}, - {"PtraceSetRegs", Func, 0}, - {"PtraceSingleStep", Func, 0}, - {"PtraceSyscall", Func, 1}, - {"Pwrite", Func, 0}, - {"REG_BINARY", Const, 0}, - {"REG_DWORD", Const, 0}, - {"REG_DWORD_BIG_ENDIAN", Const, 0}, - {"REG_DWORD_LITTLE_ENDIAN", Const, 0}, - {"REG_EXPAND_SZ", Const, 0}, - {"REG_FULL_RESOURCE_DESCRIPTOR", Const, 0}, - {"REG_LINK", Const, 0}, - {"REG_MULTI_SZ", Const, 0}, - {"REG_NONE", Const, 0}, - {"REG_QWORD", Const, 0}, - {"REG_QWORD_LITTLE_ENDIAN", Const, 0}, - {"REG_RESOURCE_LIST", Const, 0}, - {"REG_RESOURCE_REQUIREMENTS_LIST", Const, 0}, - {"REG_SZ", Const, 0}, - {"RLIMIT_AS", Const, 0}, - {"RLIMIT_CORE", Const, 0}, - {"RLIMIT_CPU", Const, 0}, - {"RLIMIT_CPU_USAGE_MONITOR", Const, 16}, - {"RLIMIT_DATA", Const, 0}, - {"RLIMIT_FSIZE", Const, 0}, - {"RLIMIT_NOFILE", Const, 0}, - {"RLIMIT_STACK", Const, 0}, - {"RLIM_INFINITY", Const, 0}, - {"RTAX_ADVMSS", Const, 0}, - {"RTAX_AUTHOR", Const, 0}, - {"RTAX_BRD", Const, 0}, - {"RTAX_CWND", Const, 0}, - {"RTAX_DST", Const, 0}, - {"RTAX_FEATURES", Const, 0}, - {"RTAX_FEATURE_ALLFRAG", Const, 0}, - {"RTAX_FEATURE_ECN", Const, 0}, - {"RTAX_FEATURE_SACK", Const, 0}, - {"RTAX_FEATURE_TIMESTAMP", Const, 0}, - {"RTAX_GATEWAY", Const, 0}, - {"RTAX_GENMASK", Const, 0}, - {"RTAX_HOPLIMIT", Const, 0}, - {"RTAX_IFA", Const, 0}, - {"RTAX_IFP", Const, 0}, - {"RTAX_INITCWND", Const, 0}, - {"RTAX_INITRWND", Const, 0}, - {"RTAX_LABEL", Const, 1}, - {"RTAX_LOCK", Const, 0}, - {"RTAX_MAX", Const, 0}, - {"RTAX_MTU", Const, 0}, - {"RTAX_NETMASK", Const, 0}, - {"RTAX_REORDERING", Const, 0}, - {"RTAX_RTO_MIN", Const, 0}, - {"RTAX_RTT", Const, 0}, - {"RTAX_RTTVAR", Const, 0}, - {"RTAX_SRC", Const, 1}, - {"RTAX_SRCMASK", Const, 1}, - {"RTAX_SSTHRESH", Const, 0}, - {"RTAX_TAG", Const, 1}, - {"RTAX_UNSPEC", Const, 0}, - {"RTAX_WINDOW", Const, 0}, - {"RTA_ALIGNTO", Const, 0}, - {"RTA_AUTHOR", Const, 0}, - {"RTA_BRD", Const, 0}, - {"RTA_CACHEINFO", Const, 0}, - {"RTA_DST", Const, 0}, - {"RTA_FLOW", Const, 0}, - {"RTA_GATEWAY", Const, 0}, - {"RTA_GENMASK", Const, 0}, - {"RTA_IFA", Const, 0}, - {"RTA_IFP", Const, 0}, - {"RTA_IIF", Const, 0}, - {"RTA_LABEL", Const, 1}, - {"RTA_MAX", Const, 0}, - {"RTA_METRICS", Const, 0}, - {"RTA_MULTIPATH", Const, 0}, - {"RTA_NETMASK", Const, 0}, - {"RTA_OIF", Const, 0}, - {"RTA_PREFSRC", Const, 0}, - {"RTA_PRIORITY", Const, 0}, - {"RTA_SRC", Const, 0}, - {"RTA_SRCMASK", Const, 1}, - {"RTA_TABLE", Const, 0}, - {"RTA_TAG", Const, 1}, - {"RTA_UNSPEC", Const, 0}, - {"RTCF_DIRECTSRC", Const, 0}, - {"RTCF_DOREDIRECT", Const, 0}, - {"RTCF_LOG", Const, 0}, - {"RTCF_MASQ", Const, 0}, - {"RTCF_NAT", Const, 0}, - {"RTCF_VALVE", Const, 0}, - {"RTF_ADDRCLASSMASK", Const, 0}, - {"RTF_ADDRCONF", Const, 0}, - {"RTF_ALLONLINK", Const, 0}, - {"RTF_ANNOUNCE", Const, 1}, - {"RTF_BLACKHOLE", Const, 0}, - {"RTF_BROADCAST", Const, 0}, - {"RTF_CACHE", Const, 0}, - {"RTF_CLONED", Const, 1}, - {"RTF_CLONING", Const, 0}, - {"RTF_CONDEMNED", Const, 0}, - {"RTF_DEFAULT", Const, 0}, - {"RTF_DELCLONE", Const, 0}, - {"RTF_DONE", Const, 0}, - {"RTF_DYNAMIC", Const, 0}, - {"RTF_FLOW", Const, 0}, - {"RTF_FMASK", Const, 0}, - {"RTF_GATEWAY", Const, 0}, - {"RTF_GWFLAG_COMPAT", Const, 3}, - {"RTF_HOST", Const, 0}, - {"RTF_IFREF", Const, 0}, - {"RTF_IFSCOPE", Const, 0}, - {"RTF_INTERFACE", Const, 0}, - {"RTF_IRTT", Const, 0}, - {"RTF_LINKRT", Const, 0}, - {"RTF_LLDATA", Const, 0}, - {"RTF_LLINFO", Const, 0}, - {"RTF_LOCAL", Const, 0}, - {"RTF_MASK", Const, 1}, - {"RTF_MODIFIED", Const, 0}, - {"RTF_MPATH", Const, 1}, - {"RTF_MPLS", Const, 1}, - {"RTF_MSS", Const, 0}, - {"RTF_MTU", Const, 0}, - {"RTF_MULTICAST", Const, 0}, - {"RTF_NAT", Const, 0}, - {"RTF_NOFORWARD", Const, 0}, - {"RTF_NONEXTHOP", Const, 0}, - {"RTF_NOPMTUDISC", Const, 0}, - {"RTF_PERMANENT_ARP", Const, 1}, - {"RTF_PINNED", Const, 0}, - {"RTF_POLICY", Const, 0}, - {"RTF_PRCLONING", Const, 0}, - {"RTF_PROTO1", Const, 0}, - {"RTF_PROTO2", Const, 0}, - {"RTF_PROTO3", Const, 0}, - {"RTF_PROXY", Const, 16}, - {"RTF_REINSTATE", Const, 0}, - {"RTF_REJECT", Const, 0}, - {"RTF_RNH_LOCKED", Const, 0}, - {"RTF_ROUTER", Const, 16}, - {"RTF_SOURCE", Const, 1}, - {"RTF_SRC", Const, 1}, - {"RTF_STATIC", Const, 0}, - {"RTF_STICKY", Const, 0}, - {"RTF_THROW", Const, 0}, - {"RTF_TUNNEL", Const, 1}, - {"RTF_UP", Const, 0}, - {"RTF_USETRAILERS", Const, 1}, - {"RTF_WASCLONED", Const, 0}, - {"RTF_WINDOW", Const, 0}, - {"RTF_XRESOLVE", Const, 0}, - {"RTM_ADD", Const, 0}, - {"RTM_BASE", Const, 0}, - {"RTM_CHANGE", Const, 0}, - {"RTM_CHGADDR", Const, 1}, - {"RTM_DELACTION", Const, 0}, - {"RTM_DELADDR", Const, 0}, - {"RTM_DELADDRLABEL", Const, 0}, - {"RTM_DELETE", Const, 0}, - {"RTM_DELLINK", Const, 0}, - {"RTM_DELMADDR", Const, 0}, - {"RTM_DELNEIGH", Const, 0}, - {"RTM_DELQDISC", Const, 0}, - {"RTM_DELROUTE", Const, 0}, - {"RTM_DELRULE", Const, 0}, - {"RTM_DELTCLASS", Const, 0}, - {"RTM_DELTFILTER", Const, 0}, - {"RTM_DESYNC", Const, 1}, - {"RTM_F_CLONED", Const, 0}, - {"RTM_F_EQUALIZE", Const, 0}, - {"RTM_F_NOTIFY", Const, 0}, - {"RTM_F_PREFIX", Const, 0}, - {"RTM_GET", Const, 0}, - {"RTM_GET2", Const, 0}, - {"RTM_GETACTION", Const, 0}, - {"RTM_GETADDR", Const, 0}, - {"RTM_GETADDRLABEL", Const, 0}, - {"RTM_GETANYCAST", Const, 0}, - {"RTM_GETDCB", Const, 0}, - {"RTM_GETLINK", Const, 0}, - {"RTM_GETMULTICAST", Const, 0}, - {"RTM_GETNEIGH", Const, 0}, - {"RTM_GETNEIGHTBL", Const, 0}, - {"RTM_GETQDISC", Const, 0}, - {"RTM_GETROUTE", Const, 0}, - {"RTM_GETRULE", Const, 0}, - {"RTM_GETTCLASS", Const, 0}, - {"RTM_GETTFILTER", Const, 0}, - {"RTM_IEEE80211", Const, 0}, - {"RTM_IFANNOUNCE", Const, 0}, - {"RTM_IFINFO", Const, 0}, - {"RTM_IFINFO2", Const, 0}, - {"RTM_LLINFO_UPD", Const, 1}, - {"RTM_LOCK", Const, 0}, - {"RTM_LOSING", Const, 0}, - {"RTM_MAX", Const, 0}, - {"RTM_MAXSIZE", Const, 1}, - {"RTM_MISS", Const, 0}, - {"RTM_NEWACTION", Const, 0}, - {"RTM_NEWADDR", Const, 0}, - {"RTM_NEWADDRLABEL", Const, 0}, - {"RTM_NEWLINK", Const, 0}, - {"RTM_NEWMADDR", Const, 0}, - {"RTM_NEWMADDR2", Const, 0}, - {"RTM_NEWNDUSEROPT", Const, 0}, - {"RTM_NEWNEIGH", Const, 0}, - {"RTM_NEWNEIGHTBL", Const, 0}, - {"RTM_NEWPREFIX", Const, 0}, - {"RTM_NEWQDISC", Const, 0}, - {"RTM_NEWROUTE", Const, 0}, - {"RTM_NEWRULE", Const, 0}, - {"RTM_NEWTCLASS", Const, 0}, - {"RTM_NEWTFILTER", Const, 0}, - {"RTM_NR_FAMILIES", Const, 0}, - {"RTM_NR_MSGTYPES", Const, 0}, - {"RTM_OIFINFO", Const, 1}, - {"RTM_OLDADD", Const, 0}, - {"RTM_OLDDEL", Const, 0}, - {"RTM_OOIFINFO", Const, 1}, - {"RTM_REDIRECT", Const, 0}, - {"RTM_RESOLVE", Const, 0}, - {"RTM_RTTUNIT", Const, 0}, - {"RTM_SETDCB", Const, 0}, - {"RTM_SETGATE", Const, 1}, - {"RTM_SETLINK", Const, 0}, - {"RTM_SETNEIGHTBL", Const, 0}, - {"RTM_VERSION", Const, 0}, - {"RTNH_ALIGNTO", Const, 0}, - {"RTNH_F_DEAD", Const, 0}, - {"RTNH_F_ONLINK", Const, 0}, - {"RTNH_F_PERVASIVE", Const, 0}, - {"RTNLGRP_IPV4_IFADDR", Const, 1}, - {"RTNLGRP_IPV4_MROUTE", Const, 1}, - {"RTNLGRP_IPV4_ROUTE", Const, 1}, - {"RTNLGRP_IPV4_RULE", Const, 1}, - {"RTNLGRP_IPV6_IFADDR", Const, 1}, - {"RTNLGRP_IPV6_IFINFO", Const, 1}, - {"RTNLGRP_IPV6_MROUTE", Const, 1}, - {"RTNLGRP_IPV6_PREFIX", Const, 1}, - {"RTNLGRP_IPV6_ROUTE", Const, 1}, - {"RTNLGRP_IPV6_RULE", Const, 1}, - {"RTNLGRP_LINK", Const, 1}, - {"RTNLGRP_ND_USEROPT", Const, 1}, - {"RTNLGRP_NEIGH", Const, 1}, - {"RTNLGRP_NONE", Const, 1}, - {"RTNLGRP_NOTIFY", Const, 1}, - {"RTNLGRP_TC", Const, 1}, - {"RTN_ANYCAST", Const, 0}, - {"RTN_BLACKHOLE", Const, 0}, - {"RTN_BROADCAST", Const, 0}, - {"RTN_LOCAL", Const, 0}, - {"RTN_MAX", Const, 0}, - {"RTN_MULTICAST", Const, 0}, - {"RTN_NAT", Const, 0}, - {"RTN_PROHIBIT", Const, 0}, - {"RTN_THROW", Const, 0}, - {"RTN_UNICAST", Const, 0}, - {"RTN_UNREACHABLE", Const, 0}, - {"RTN_UNSPEC", Const, 0}, - {"RTN_XRESOLVE", Const, 0}, - {"RTPROT_BIRD", Const, 0}, - {"RTPROT_BOOT", Const, 0}, - {"RTPROT_DHCP", Const, 0}, - {"RTPROT_DNROUTED", Const, 0}, - {"RTPROT_GATED", Const, 0}, - {"RTPROT_KERNEL", Const, 0}, - {"RTPROT_MRT", Const, 0}, - {"RTPROT_NTK", Const, 0}, - {"RTPROT_RA", Const, 0}, - {"RTPROT_REDIRECT", Const, 0}, - {"RTPROT_STATIC", Const, 0}, - {"RTPROT_UNSPEC", Const, 0}, - {"RTPROT_XORP", Const, 0}, - {"RTPROT_ZEBRA", Const, 0}, - {"RTV_EXPIRE", Const, 0}, - {"RTV_HOPCOUNT", Const, 0}, - {"RTV_MTU", Const, 0}, - {"RTV_RPIPE", Const, 0}, - {"RTV_RTT", Const, 0}, - {"RTV_RTTVAR", Const, 0}, - {"RTV_SPIPE", Const, 0}, - {"RTV_SSTHRESH", Const, 0}, - {"RTV_WEIGHT", Const, 0}, - {"RT_CACHING_CONTEXT", Const, 1}, - {"RT_CLASS_DEFAULT", Const, 0}, - {"RT_CLASS_LOCAL", Const, 0}, - {"RT_CLASS_MAIN", Const, 0}, - {"RT_CLASS_MAX", Const, 0}, - {"RT_CLASS_UNSPEC", Const, 0}, - {"RT_DEFAULT_FIB", Const, 1}, - {"RT_NORTREF", Const, 1}, - {"RT_SCOPE_HOST", Const, 0}, - {"RT_SCOPE_LINK", Const, 0}, - {"RT_SCOPE_NOWHERE", Const, 0}, - {"RT_SCOPE_SITE", Const, 0}, - {"RT_SCOPE_UNIVERSE", Const, 0}, - {"RT_TABLEID_MAX", Const, 1}, - {"RT_TABLE_COMPAT", Const, 0}, - {"RT_TABLE_DEFAULT", Const, 0}, - {"RT_TABLE_LOCAL", Const, 0}, - {"RT_TABLE_MAIN", Const, 0}, - {"RT_TABLE_MAX", Const, 0}, - {"RT_TABLE_UNSPEC", Const, 0}, - {"RUSAGE_CHILDREN", Const, 0}, - {"RUSAGE_SELF", Const, 0}, - {"RUSAGE_THREAD", Const, 0}, - {"Radvisory_t", Type, 0}, - {"Radvisory_t.Count", Field, 0}, - {"Radvisory_t.Offset", Field, 0}, - {"Radvisory_t.Pad_cgo_0", Field, 0}, - {"RawConn", Type, 9}, - {"RawSockaddr", Type, 0}, - {"RawSockaddr.Data", Field, 0}, - {"RawSockaddr.Family", Field, 0}, - {"RawSockaddr.Len", Field, 0}, - {"RawSockaddrAny", Type, 0}, - {"RawSockaddrAny.Addr", Field, 0}, - {"RawSockaddrAny.Pad", Field, 0}, - {"RawSockaddrDatalink", Type, 0}, - {"RawSockaddrDatalink.Alen", Field, 0}, - {"RawSockaddrDatalink.Data", Field, 0}, - {"RawSockaddrDatalink.Family", Field, 0}, - {"RawSockaddrDatalink.Index", Field, 0}, - {"RawSockaddrDatalink.Len", Field, 0}, - {"RawSockaddrDatalink.Nlen", Field, 0}, - {"RawSockaddrDatalink.Pad_cgo_0", Field, 2}, - {"RawSockaddrDatalink.Slen", Field, 0}, - {"RawSockaddrDatalink.Type", Field, 0}, - {"RawSockaddrInet4", Type, 0}, - {"RawSockaddrInet4.Addr", Field, 0}, - {"RawSockaddrInet4.Family", Field, 0}, - {"RawSockaddrInet4.Len", Field, 0}, - {"RawSockaddrInet4.Port", Field, 0}, - {"RawSockaddrInet4.Zero", Field, 0}, - {"RawSockaddrInet6", Type, 0}, - {"RawSockaddrInet6.Addr", Field, 0}, - {"RawSockaddrInet6.Family", Field, 0}, - {"RawSockaddrInet6.Flowinfo", Field, 0}, - {"RawSockaddrInet6.Len", Field, 0}, - {"RawSockaddrInet6.Port", Field, 0}, - {"RawSockaddrInet6.Scope_id", Field, 0}, - {"RawSockaddrLinklayer", Type, 0}, - {"RawSockaddrLinklayer.Addr", Field, 0}, - {"RawSockaddrLinklayer.Family", Field, 0}, - {"RawSockaddrLinklayer.Halen", Field, 0}, - {"RawSockaddrLinklayer.Hatype", Field, 0}, - {"RawSockaddrLinklayer.Ifindex", Field, 0}, - {"RawSockaddrLinklayer.Pkttype", Field, 0}, - {"RawSockaddrLinklayer.Protocol", Field, 0}, - {"RawSockaddrNetlink", Type, 0}, - {"RawSockaddrNetlink.Family", Field, 0}, - {"RawSockaddrNetlink.Groups", Field, 0}, - {"RawSockaddrNetlink.Pad", Field, 0}, - {"RawSockaddrNetlink.Pid", Field, 0}, - {"RawSockaddrUnix", Type, 0}, - {"RawSockaddrUnix.Family", Field, 0}, - {"RawSockaddrUnix.Len", Field, 0}, - {"RawSockaddrUnix.Pad_cgo_0", Field, 2}, - {"RawSockaddrUnix.Path", Field, 0}, - {"RawSyscall", Func, 0}, - {"RawSyscall6", Func, 0}, - {"Read", Func, 0}, - {"ReadConsole", Func, 1}, - {"ReadDirectoryChanges", Func, 0}, - {"ReadDirent", Func, 0}, - {"ReadFile", Func, 0}, - {"Readlink", Func, 0}, - {"Reboot", Func, 0}, - {"Recvfrom", Func, 0}, - {"Recvmsg", Func, 0}, - {"RegCloseKey", Func, 0}, - {"RegEnumKeyEx", Func, 0}, - {"RegOpenKeyEx", Func, 0}, - {"RegQueryInfoKey", Func, 0}, - {"RegQueryValueEx", Func, 0}, - {"RemoveDirectory", Func, 0}, - {"Removexattr", Func, 1}, - {"Rename", Func, 0}, - {"Renameat", Func, 0}, - {"Revoke", Func, 0}, - {"Rlimit", Type, 0}, - {"Rlimit.Cur", Field, 0}, - {"Rlimit.Max", Field, 0}, - {"Rmdir", Func, 0}, - {"RouteMessage", Type, 0}, - {"RouteMessage.Data", Field, 0}, - {"RouteMessage.Header", Field, 0}, - {"RouteRIB", Func, 0}, - {"RoutingMessage", Type, 0}, - {"RtAttr", Type, 0}, - {"RtAttr.Len", Field, 0}, - {"RtAttr.Type", Field, 0}, - {"RtGenmsg", Type, 0}, - {"RtGenmsg.Family", Field, 0}, - {"RtMetrics", Type, 0}, - {"RtMetrics.Expire", Field, 0}, - {"RtMetrics.Filler", Field, 0}, - {"RtMetrics.Hopcount", Field, 0}, - {"RtMetrics.Locks", Field, 0}, - {"RtMetrics.Mtu", Field, 0}, - {"RtMetrics.Pad", Field, 3}, - {"RtMetrics.Pksent", Field, 0}, - {"RtMetrics.Recvpipe", Field, 0}, - {"RtMetrics.Refcnt", Field, 2}, - {"RtMetrics.Rtt", Field, 0}, - {"RtMetrics.Rttvar", Field, 0}, - {"RtMetrics.Sendpipe", Field, 0}, - {"RtMetrics.Ssthresh", Field, 0}, - {"RtMetrics.Weight", Field, 0}, - {"RtMsg", Type, 0}, - {"RtMsg.Dst_len", Field, 0}, - {"RtMsg.Family", Field, 0}, - {"RtMsg.Flags", Field, 0}, - {"RtMsg.Protocol", Field, 0}, - {"RtMsg.Scope", Field, 0}, - {"RtMsg.Src_len", Field, 0}, - {"RtMsg.Table", Field, 0}, - {"RtMsg.Tos", Field, 0}, - {"RtMsg.Type", Field, 0}, - {"RtMsghdr", Type, 0}, - {"RtMsghdr.Addrs", Field, 0}, - {"RtMsghdr.Errno", Field, 0}, - {"RtMsghdr.Flags", Field, 0}, - {"RtMsghdr.Fmask", Field, 0}, - {"RtMsghdr.Hdrlen", Field, 2}, - {"RtMsghdr.Index", Field, 0}, - {"RtMsghdr.Inits", Field, 0}, - {"RtMsghdr.Mpls", Field, 2}, - {"RtMsghdr.Msglen", Field, 0}, - {"RtMsghdr.Pad_cgo_0", Field, 0}, - {"RtMsghdr.Pad_cgo_1", Field, 2}, - {"RtMsghdr.Pid", Field, 0}, - {"RtMsghdr.Priority", Field, 2}, - {"RtMsghdr.Rmx", Field, 0}, - {"RtMsghdr.Seq", Field, 0}, - {"RtMsghdr.Tableid", Field, 2}, - {"RtMsghdr.Type", Field, 0}, - {"RtMsghdr.Use", Field, 0}, - {"RtMsghdr.Version", Field, 0}, - {"RtNexthop", Type, 0}, - {"RtNexthop.Flags", Field, 0}, - {"RtNexthop.Hops", Field, 0}, - {"RtNexthop.Ifindex", Field, 0}, - {"RtNexthop.Len", Field, 0}, - {"Rusage", Type, 0}, - {"Rusage.CreationTime", Field, 0}, - {"Rusage.ExitTime", Field, 0}, - {"Rusage.Idrss", Field, 0}, - {"Rusage.Inblock", Field, 0}, - {"Rusage.Isrss", Field, 0}, - {"Rusage.Ixrss", Field, 0}, - {"Rusage.KernelTime", Field, 0}, - {"Rusage.Majflt", Field, 0}, - {"Rusage.Maxrss", Field, 0}, - {"Rusage.Minflt", Field, 0}, - {"Rusage.Msgrcv", Field, 0}, - {"Rusage.Msgsnd", Field, 0}, - {"Rusage.Nivcsw", Field, 0}, - {"Rusage.Nsignals", Field, 0}, - {"Rusage.Nswap", Field, 0}, - {"Rusage.Nvcsw", Field, 0}, - {"Rusage.Oublock", Field, 0}, - {"Rusage.Stime", Field, 0}, - {"Rusage.UserTime", Field, 0}, - {"Rusage.Utime", Field, 0}, - {"SCM_BINTIME", Const, 0}, - {"SCM_CREDENTIALS", Const, 0}, - {"SCM_CREDS", Const, 0}, - {"SCM_RIGHTS", Const, 0}, - {"SCM_TIMESTAMP", Const, 0}, - {"SCM_TIMESTAMPING", Const, 0}, - {"SCM_TIMESTAMPNS", Const, 0}, - {"SCM_TIMESTAMP_MONOTONIC", Const, 0}, - {"SHUT_RD", Const, 0}, - {"SHUT_RDWR", Const, 0}, - {"SHUT_WR", Const, 0}, - {"SID", Type, 0}, - {"SIDAndAttributes", Type, 0}, - {"SIDAndAttributes.Attributes", Field, 0}, - {"SIDAndAttributes.Sid", Field, 0}, - {"SIGABRT", Const, 0}, - {"SIGALRM", Const, 0}, - {"SIGBUS", Const, 0}, - {"SIGCHLD", Const, 0}, - {"SIGCLD", Const, 0}, - {"SIGCONT", Const, 0}, - {"SIGEMT", Const, 0}, - {"SIGFPE", Const, 0}, - {"SIGHUP", Const, 0}, - {"SIGILL", Const, 0}, - {"SIGINFO", Const, 0}, - {"SIGINT", Const, 0}, - {"SIGIO", Const, 0}, - {"SIGIOT", Const, 0}, - {"SIGKILL", Const, 0}, - {"SIGLIBRT", Const, 1}, - {"SIGLWP", Const, 0}, - {"SIGPIPE", Const, 0}, - {"SIGPOLL", Const, 0}, - {"SIGPROF", Const, 0}, - {"SIGPWR", Const, 0}, - {"SIGQUIT", Const, 0}, - {"SIGSEGV", Const, 0}, - {"SIGSTKFLT", Const, 0}, - {"SIGSTOP", Const, 0}, - {"SIGSYS", Const, 0}, - {"SIGTERM", Const, 0}, - {"SIGTHR", Const, 0}, - {"SIGTRAP", Const, 0}, - {"SIGTSTP", Const, 0}, - {"SIGTTIN", Const, 0}, - {"SIGTTOU", Const, 0}, - {"SIGUNUSED", Const, 0}, - {"SIGURG", Const, 0}, - {"SIGUSR1", Const, 0}, - {"SIGUSR2", Const, 0}, - {"SIGVTALRM", Const, 0}, - {"SIGWINCH", Const, 0}, - {"SIGXCPU", Const, 0}, - {"SIGXFSZ", Const, 0}, - {"SIOCADDDLCI", Const, 0}, - {"SIOCADDMULTI", Const, 0}, - {"SIOCADDRT", Const, 0}, - {"SIOCAIFADDR", Const, 0}, - {"SIOCAIFGROUP", Const, 0}, - {"SIOCALIFADDR", Const, 0}, - {"SIOCARPIPLL", Const, 0}, - {"SIOCATMARK", Const, 0}, - {"SIOCAUTOADDR", Const, 0}, - {"SIOCAUTONETMASK", Const, 0}, - {"SIOCBRDGADD", Const, 1}, - {"SIOCBRDGADDS", Const, 1}, - {"SIOCBRDGARL", Const, 1}, - {"SIOCBRDGDADDR", Const, 1}, - {"SIOCBRDGDEL", Const, 1}, - {"SIOCBRDGDELS", Const, 1}, - {"SIOCBRDGFLUSH", Const, 1}, - {"SIOCBRDGFRL", Const, 1}, - {"SIOCBRDGGCACHE", Const, 1}, - {"SIOCBRDGGFD", Const, 1}, - {"SIOCBRDGGHT", Const, 1}, - {"SIOCBRDGGIFFLGS", Const, 1}, - {"SIOCBRDGGMA", Const, 1}, - {"SIOCBRDGGPARAM", Const, 1}, - {"SIOCBRDGGPRI", Const, 1}, - {"SIOCBRDGGRL", Const, 1}, - {"SIOCBRDGGSIFS", Const, 1}, - {"SIOCBRDGGTO", Const, 1}, - {"SIOCBRDGIFS", Const, 1}, - {"SIOCBRDGRTS", Const, 1}, - {"SIOCBRDGSADDR", Const, 1}, - {"SIOCBRDGSCACHE", Const, 1}, - {"SIOCBRDGSFD", Const, 1}, - {"SIOCBRDGSHT", Const, 1}, - {"SIOCBRDGSIFCOST", Const, 1}, - {"SIOCBRDGSIFFLGS", Const, 1}, - {"SIOCBRDGSIFPRIO", Const, 1}, - {"SIOCBRDGSMA", Const, 1}, - {"SIOCBRDGSPRI", Const, 1}, - {"SIOCBRDGSPROTO", Const, 1}, - {"SIOCBRDGSTO", Const, 1}, - {"SIOCBRDGSTXHC", Const, 1}, - {"SIOCDARP", Const, 0}, - {"SIOCDELDLCI", Const, 0}, - {"SIOCDELMULTI", Const, 0}, - {"SIOCDELRT", Const, 0}, - {"SIOCDEVPRIVATE", Const, 0}, - {"SIOCDIFADDR", Const, 0}, - {"SIOCDIFGROUP", Const, 0}, - {"SIOCDIFPHYADDR", Const, 0}, - {"SIOCDLIFADDR", Const, 0}, - {"SIOCDRARP", Const, 0}, - {"SIOCGARP", Const, 0}, - {"SIOCGDRVSPEC", Const, 0}, - {"SIOCGETKALIVE", Const, 1}, - {"SIOCGETLABEL", Const, 1}, - {"SIOCGETPFLOW", Const, 1}, - {"SIOCGETPFSYNC", Const, 1}, - {"SIOCGETSGCNT", Const, 0}, - {"SIOCGETVIFCNT", Const, 0}, - {"SIOCGETVLAN", Const, 0}, - {"SIOCGHIWAT", Const, 0}, - {"SIOCGIFADDR", Const, 0}, - {"SIOCGIFADDRPREF", Const, 1}, - {"SIOCGIFALIAS", Const, 1}, - {"SIOCGIFALTMTU", Const, 0}, - {"SIOCGIFASYNCMAP", Const, 0}, - {"SIOCGIFBOND", Const, 0}, - {"SIOCGIFBR", Const, 0}, - {"SIOCGIFBRDADDR", Const, 0}, - {"SIOCGIFCAP", Const, 0}, - {"SIOCGIFCONF", Const, 0}, - {"SIOCGIFCOUNT", Const, 0}, - {"SIOCGIFDATA", Const, 1}, - {"SIOCGIFDESCR", Const, 0}, - {"SIOCGIFDEVMTU", Const, 0}, - {"SIOCGIFDLT", Const, 1}, - {"SIOCGIFDSTADDR", Const, 0}, - {"SIOCGIFENCAP", Const, 0}, - {"SIOCGIFFIB", Const, 1}, - {"SIOCGIFFLAGS", Const, 0}, - {"SIOCGIFGATTR", Const, 1}, - {"SIOCGIFGENERIC", Const, 0}, - {"SIOCGIFGMEMB", Const, 0}, - {"SIOCGIFGROUP", Const, 0}, - {"SIOCGIFHARDMTU", Const, 3}, - {"SIOCGIFHWADDR", Const, 0}, - {"SIOCGIFINDEX", Const, 0}, - {"SIOCGIFKPI", Const, 0}, - {"SIOCGIFMAC", Const, 0}, - {"SIOCGIFMAP", Const, 0}, - {"SIOCGIFMEDIA", Const, 0}, - {"SIOCGIFMEM", Const, 0}, - {"SIOCGIFMETRIC", Const, 0}, - {"SIOCGIFMTU", Const, 0}, - {"SIOCGIFNAME", Const, 0}, - {"SIOCGIFNETMASK", Const, 0}, - {"SIOCGIFPDSTADDR", Const, 0}, - {"SIOCGIFPFLAGS", Const, 0}, - {"SIOCGIFPHYS", Const, 0}, - {"SIOCGIFPRIORITY", Const, 1}, - {"SIOCGIFPSRCADDR", Const, 0}, - {"SIOCGIFRDOMAIN", Const, 1}, - {"SIOCGIFRTLABEL", Const, 1}, - {"SIOCGIFSLAVE", Const, 0}, - {"SIOCGIFSTATUS", Const, 0}, - {"SIOCGIFTIMESLOT", Const, 1}, - {"SIOCGIFTXQLEN", Const, 0}, - {"SIOCGIFVLAN", Const, 0}, - {"SIOCGIFWAKEFLAGS", Const, 0}, - {"SIOCGIFXFLAGS", Const, 1}, - {"SIOCGLIFADDR", Const, 0}, - {"SIOCGLIFPHYADDR", Const, 0}, - {"SIOCGLIFPHYRTABLE", Const, 1}, - {"SIOCGLIFPHYTTL", Const, 3}, - {"SIOCGLINKSTR", Const, 1}, - {"SIOCGLOWAT", Const, 0}, - {"SIOCGPGRP", Const, 0}, - {"SIOCGPRIVATE_0", Const, 0}, - {"SIOCGPRIVATE_1", Const, 0}, - {"SIOCGRARP", Const, 0}, - {"SIOCGSPPPPARAMS", Const, 3}, - {"SIOCGSTAMP", Const, 0}, - {"SIOCGSTAMPNS", Const, 0}, - {"SIOCGVH", Const, 1}, - {"SIOCGVNETID", Const, 3}, - {"SIOCIFCREATE", Const, 0}, - {"SIOCIFCREATE2", Const, 0}, - {"SIOCIFDESTROY", Const, 0}, - {"SIOCIFGCLONERS", Const, 0}, - {"SIOCINITIFADDR", Const, 1}, - {"SIOCPROTOPRIVATE", Const, 0}, - {"SIOCRSLVMULTI", Const, 0}, - {"SIOCRTMSG", Const, 0}, - {"SIOCSARP", Const, 0}, - {"SIOCSDRVSPEC", Const, 0}, - {"SIOCSETKALIVE", Const, 1}, - {"SIOCSETLABEL", Const, 1}, - {"SIOCSETPFLOW", Const, 1}, - {"SIOCSETPFSYNC", Const, 1}, - {"SIOCSETVLAN", Const, 0}, - {"SIOCSHIWAT", Const, 0}, - {"SIOCSIFADDR", Const, 0}, - {"SIOCSIFADDRPREF", Const, 1}, - {"SIOCSIFALTMTU", Const, 0}, - {"SIOCSIFASYNCMAP", Const, 0}, - {"SIOCSIFBOND", Const, 0}, - {"SIOCSIFBR", Const, 0}, - {"SIOCSIFBRDADDR", Const, 0}, - {"SIOCSIFCAP", Const, 0}, - {"SIOCSIFDESCR", Const, 0}, - {"SIOCSIFDSTADDR", Const, 0}, - {"SIOCSIFENCAP", Const, 0}, - {"SIOCSIFFIB", Const, 1}, - {"SIOCSIFFLAGS", Const, 0}, - {"SIOCSIFGATTR", Const, 1}, - {"SIOCSIFGENERIC", Const, 0}, - {"SIOCSIFHWADDR", Const, 0}, - {"SIOCSIFHWBROADCAST", Const, 0}, - {"SIOCSIFKPI", Const, 0}, - {"SIOCSIFLINK", Const, 0}, - {"SIOCSIFLLADDR", Const, 0}, - {"SIOCSIFMAC", Const, 0}, - {"SIOCSIFMAP", Const, 0}, - {"SIOCSIFMEDIA", Const, 0}, - {"SIOCSIFMEM", Const, 0}, - {"SIOCSIFMETRIC", Const, 0}, - {"SIOCSIFMTU", Const, 0}, - {"SIOCSIFNAME", Const, 0}, - {"SIOCSIFNETMASK", Const, 0}, - {"SIOCSIFPFLAGS", Const, 0}, - {"SIOCSIFPHYADDR", Const, 0}, - {"SIOCSIFPHYS", Const, 0}, - {"SIOCSIFPRIORITY", Const, 1}, - {"SIOCSIFRDOMAIN", Const, 1}, - {"SIOCSIFRTLABEL", Const, 1}, - {"SIOCSIFRVNET", Const, 0}, - {"SIOCSIFSLAVE", Const, 0}, - {"SIOCSIFTIMESLOT", Const, 1}, - {"SIOCSIFTXQLEN", Const, 0}, - {"SIOCSIFVLAN", Const, 0}, - {"SIOCSIFVNET", Const, 0}, - {"SIOCSIFXFLAGS", Const, 1}, - {"SIOCSLIFPHYADDR", Const, 0}, - {"SIOCSLIFPHYRTABLE", Const, 1}, - {"SIOCSLIFPHYTTL", Const, 3}, - {"SIOCSLINKSTR", Const, 1}, - {"SIOCSLOWAT", Const, 0}, - {"SIOCSPGRP", Const, 0}, - {"SIOCSRARP", Const, 0}, - {"SIOCSSPPPPARAMS", Const, 3}, - {"SIOCSVH", Const, 1}, - {"SIOCSVNETID", Const, 3}, - {"SIOCZIFDATA", Const, 1}, - {"SIO_GET_EXTENSION_FUNCTION_POINTER", Const, 1}, - {"SIO_GET_INTERFACE_LIST", Const, 0}, - {"SIO_KEEPALIVE_VALS", Const, 3}, - {"SIO_UDP_CONNRESET", Const, 4}, - {"SOCK_CLOEXEC", Const, 0}, - {"SOCK_DCCP", Const, 0}, - {"SOCK_DGRAM", Const, 0}, - {"SOCK_FLAGS_MASK", Const, 1}, - {"SOCK_MAXADDRLEN", Const, 0}, - {"SOCK_NONBLOCK", Const, 0}, - {"SOCK_NOSIGPIPE", Const, 1}, - {"SOCK_PACKET", Const, 0}, - {"SOCK_RAW", Const, 0}, - {"SOCK_RDM", Const, 0}, - {"SOCK_SEQPACKET", Const, 0}, - {"SOCK_STREAM", Const, 0}, - {"SOL_AAL", Const, 0}, - {"SOL_ATM", Const, 0}, - {"SOL_DECNET", Const, 0}, - {"SOL_ICMPV6", Const, 0}, - {"SOL_IP", Const, 0}, - {"SOL_IPV6", Const, 0}, - {"SOL_IRDA", Const, 0}, - {"SOL_PACKET", Const, 0}, - {"SOL_RAW", Const, 0}, - {"SOL_SOCKET", Const, 0}, - {"SOL_TCP", Const, 0}, - {"SOL_X25", Const, 0}, - {"SOMAXCONN", Const, 0}, - {"SO_ACCEPTCONN", Const, 0}, - {"SO_ACCEPTFILTER", Const, 0}, - {"SO_ATTACH_FILTER", Const, 0}, - {"SO_BINDANY", Const, 1}, - {"SO_BINDTODEVICE", Const, 0}, - {"SO_BINTIME", Const, 0}, - {"SO_BROADCAST", Const, 0}, - {"SO_BSDCOMPAT", Const, 0}, - {"SO_DEBUG", Const, 0}, - {"SO_DETACH_FILTER", Const, 0}, - {"SO_DOMAIN", Const, 0}, - {"SO_DONTROUTE", Const, 0}, - {"SO_DONTTRUNC", Const, 0}, - {"SO_ERROR", Const, 0}, - {"SO_KEEPALIVE", Const, 0}, - {"SO_LABEL", Const, 0}, - {"SO_LINGER", Const, 0}, - {"SO_LINGER_SEC", Const, 0}, - {"SO_LISTENINCQLEN", Const, 0}, - {"SO_LISTENQLEN", Const, 0}, - {"SO_LISTENQLIMIT", Const, 0}, - {"SO_MARK", Const, 0}, - {"SO_NETPROC", Const, 1}, - {"SO_NKE", Const, 0}, - {"SO_NOADDRERR", Const, 0}, - {"SO_NOHEADER", Const, 1}, - {"SO_NOSIGPIPE", Const, 0}, - {"SO_NOTIFYCONFLICT", Const, 0}, - {"SO_NO_CHECK", Const, 0}, - {"SO_NO_DDP", Const, 0}, - {"SO_NO_OFFLOAD", Const, 0}, - {"SO_NP_EXTENSIONS", Const, 0}, - {"SO_NREAD", Const, 0}, - {"SO_NUMRCVPKT", Const, 16}, - {"SO_NWRITE", Const, 0}, - {"SO_OOBINLINE", Const, 0}, - {"SO_OVERFLOWED", Const, 1}, - {"SO_PASSCRED", Const, 0}, - {"SO_PASSSEC", Const, 0}, - {"SO_PEERCRED", Const, 0}, - {"SO_PEERLABEL", Const, 0}, - {"SO_PEERNAME", Const, 0}, - {"SO_PEERSEC", Const, 0}, - {"SO_PRIORITY", Const, 0}, - {"SO_PROTOCOL", Const, 0}, - {"SO_PROTOTYPE", Const, 1}, - {"SO_RANDOMPORT", Const, 0}, - {"SO_RCVBUF", Const, 0}, - {"SO_RCVBUFFORCE", Const, 0}, - {"SO_RCVLOWAT", Const, 0}, - {"SO_RCVTIMEO", Const, 0}, - {"SO_RESTRICTIONS", Const, 0}, - {"SO_RESTRICT_DENYIN", Const, 0}, - {"SO_RESTRICT_DENYOUT", Const, 0}, - {"SO_RESTRICT_DENYSET", Const, 0}, - {"SO_REUSEADDR", Const, 0}, - {"SO_REUSEPORT", Const, 0}, - {"SO_REUSESHAREUID", Const, 0}, - {"SO_RTABLE", Const, 1}, - {"SO_RXQ_OVFL", Const, 0}, - {"SO_SECURITY_AUTHENTICATION", Const, 0}, - {"SO_SECURITY_ENCRYPTION_NETWORK", Const, 0}, - {"SO_SECURITY_ENCRYPTION_TRANSPORT", Const, 0}, - {"SO_SETFIB", Const, 0}, - {"SO_SNDBUF", Const, 0}, - {"SO_SNDBUFFORCE", Const, 0}, - {"SO_SNDLOWAT", Const, 0}, - {"SO_SNDTIMEO", Const, 0}, - {"SO_SPLICE", Const, 1}, - {"SO_TIMESTAMP", Const, 0}, - {"SO_TIMESTAMPING", Const, 0}, - {"SO_TIMESTAMPNS", Const, 0}, - {"SO_TIMESTAMP_MONOTONIC", Const, 0}, - {"SO_TYPE", Const, 0}, - {"SO_UPCALLCLOSEWAIT", Const, 0}, - {"SO_UPDATE_ACCEPT_CONTEXT", Const, 0}, - {"SO_UPDATE_CONNECT_CONTEXT", Const, 1}, - {"SO_USELOOPBACK", Const, 0}, - {"SO_USER_COOKIE", Const, 1}, - {"SO_VENDOR", Const, 3}, - {"SO_WANTMORE", Const, 0}, - {"SO_WANTOOBFLAG", Const, 0}, - {"SSLExtraCertChainPolicyPara", Type, 0}, - {"SSLExtraCertChainPolicyPara.AuthType", Field, 0}, - {"SSLExtraCertChainPolicyPara.Checks", Field, 0}, - {"SSLExtraCertChainPolicyPara.ServerName", Field, 0}, - {"SSLExtraCertChainPolicyPara.Size", Field, 0}, - {"STANDARD_RIGHTS_ALL", Const, 0}, - {"STANDARD_RIGHTS_EXECUTE", Const, 0}, - {"STANDARD_RIGHTS_READ", Const, 0}, - {"STANDARD_RIGHTS_REQUIRED", Const, 0}, - {"STANDARD_RIGHTS_WRITE", Const, 0}, - {"STARTF_USESHOWWINDOW", Const, 0}, - {"STARTF_USESTDHANDLES", Const, 0}, - {"STD_ERROR_HANDLE", Const, 0}, - {"STD_INPUT_HANDLE", Const, 0}, - {"STD_OUTPUT_HANDLE", Const, 0}, - {"SUBLANG_ENGLISH_US", Const, 0}, - {"SW_FORCEMINIMIZE", Const, 0}, - {"SW_HIDE", Const, 0}, - {"SW_MAXIMIZE", Const, 0}, - {"SW_MINIMIZE", Const, 0}, - {"SW_NORMAL", Const, 0}, - {"SW_RESTORE", Const, 0}, - {"SW_SHOW", Const, 0}, - {"SW_SHOWDEFAULT", Const, 0}, - {"SW_SHOWMAXIMIZED", Const, 0}, - {"SW_SHOWMINIMIZED", Const, 0}, - {"SW_SHOWMINNOACTIVE", Const, 0}, - {"SW_SHOWNA", Const, 0}, - {"SW_SHOWNOACTIVATE", Const, 0}, - {"SW_SHOWNORMAL", Const, 0}, - {"SYMBOLIC_LINK_FLAG_DIRECTORY", Const, 4}, - {"SYNCHRONIZE", Const, 0}, - {"SYSCTL_VERSION", Const, 1}, - {"SYSCTL_VERS_0", Const, 1}, - {"SYSCTL_VERS_1", Const, 1}, - {"SYSCTL_VERS_MASK", Const, 1}, - {"SYS_ABORT2", Const, 0}, - {"SYS_ACCEPT", Const, 0}, - {"SYS_ACCEPT4", Const, 0}, - {"SYS_ACCEPT_NOCANCEL", Const, 0}, - {"SYS_ACCESS", Const, 0}, - {"SYS_ACCESS_EXTENDED", Const, 0}, - {"SYS_ACCT", Const, 0}, - {"SYS_ADD_KEY", Const, 0}, - {"SYS_ADD_PROFIL", Const, 0}, - {"SYS_ADJFREQ", Const, 1}, - {"SYS_ADJTIME", Const, 0}, - {"SYS_ADJTIMEX", Const, 0}, - {"SYS_AFS_SYSCALL", Const, 0}, - {"SYS_AIO_CANCEL", Const, 0}, - {"SYS_AIO_ERROR", Const, 0}, - {"SYS_AIO_FSYNC", Const, 0}, - {"SYS_AIO_MLOCK", Const, 14}, - {"SYS_AIO_READ", Const, 0}, - {"SYS_AIO_RETURN", Const, 0}, - {"SYS_AIO_SUSPEND", Const, 0}, - {"SYS_AIO_SUSPEND_NOCANCEL", Const, 0}, - {"SYS_AIO_WAITCOMPLETE", Const, 14}, - {"SYS_AIO_WRITE", Const, 0}, - {"SYS_ALARM", Const, 0}, - {"SYS_ARCH_PRCTL", Const, 0}, - {"SYS_ARM_FADVISE64_64", Const, 0}, - {"SYS_ARM_SYNC_FILE_RANGE", Const, 0}, - {"SYS_ATGETMSG", Const, 0}, - {"SYS_ATPGETREQ", Const, 0}, - {"SYS_ATPGETRSP", Const, 0}, - {"SYS_ATPSNDREQ", Const, 0}, - {"SYS_ATPSNDRSP", Const, 0}, - {"SYS_ATPUTMSG", Const, 0}, - {"SYS_ATSOCKET", Const, 0}, - {"SYS_AUDIT", Const, 0}, - {"SYS_AUDITCTL", Const, 0}, - {"SYS_AUDITON", Const, 0}, - {"SYS_AUDIT_SESSION_JOIN", Const, 0}, - {"SYS_AUDIT_SESSION_PORT", Const, 0}, - {"SYS_AUDIT_SESSION_SELF", Const, 0}, - {"SYS_BDFLUSH", Const, 0}, - {"SYS_BIND", Const, 0}, - {"SYS_BINDAT", Const, 3}, - {"SYS_BREAK", Const, 0}, - {"SYS_BRK", Const, 0}, - {"SYS_BSDTHREAD_CREATE", Const, 0}, - {"SYS_BSDTHREAD_REGISTER", Const, 0}, - {"SYS_BSDTHREAD_TERMINATE", Const, 0}, - {"SYS_CAPGET", Const, 0}, - {"SYS_CAPSET", Const, 0}, - {"SYS_CAP_ENTER", Const, 0}, - {"SYS_CAP_FCNTLS_GET", Const, 1}, - {"SYS_CAP_FCNTLS_LIMIT", Const, 1}, - {"SYS_CAP_GETMODE", Const, 0}, - {"SYS_CAP_GETRIGHTS", Const, 0}, - {"SYS_CAP_IOCTLS_GET", Const, 1}, - {"SYS_CAP_IOCTLS_LIMIT", Const, 1}, - {"SYS_CAP_NEW", Const, 0}, - {"SYS_CAP_RIGHTS_GET", Const, 1}, - {"SYS_CAP_RIGHTS_LIMIT", Const, 1}, - {"SYS_CHDIR", Const, 0}, - {"SYS_CHFLAGS", Const, 0}, - {"SYS_CHFLAGSAT", Const, 3}, - {"SYS_CHMOD", Const, 0}, - {"SYS_CHMOD_EXTENDED", Const, 0}, - {"SYS_CHOWN", Const, 0}, - {"SYS_CHOWN32", Const, 0}, - {"SYS_CHROOT", Const, 0}, - {"SYS_CHUD", Const, 0}, - {"SYS_CLOCK_ADJTIME", Const, 0}, - {"SYS_CLOCK_GETCPUCLOCKID2", Const, 1}, - {"SYS_CLOCK_GETRES", Const, 0}, - {"SYS_CLOCK_GETTIME", Const, 0}, - {"SYS_CLOCK_NANOSLEEP", Const, 0}, - {"SYS_CLOCK_SETTIME", Const, 0}, - {"SYS_CLONE", Const, 0}, - {"SYS_CLOSE", Const, 0}, - {"SYS_CLOSEFROM", Const, 0}, - {"SYS_CLOSE_NOCANCEL", Const, 0}, - {"SYS_CONNECT", Const, 0}, - {"SYS_CONNECTAT", Const, 3}, - {"SYS_CONNECT_NOCANCEL", Const, 0}, - {"SYS_COPYFILE", Const, 0}, - {"SYS_CPUSET", Const, 0}, - {"SYS_CPUSET_GETAFFINITY", Const, 0}, - {"SYS_CPUSET_GETID", Const, 0}, - {"SYS_CPUSET_SETAFFINITY", Const, 0}, - {"SYS_CPUSET_SETID", Const, 0}, - {"SYS_CREAT", Const, 0}, - {"SYS_CREATE_MODULE", Const, 0}, - {"SYS_CSOPS", Const, 0}, - {"SYS_CSOPS_AUDITTOKEN", Const, 16}, - {"SYS_DELETE", Const, 0}, - {"SYS_DELETE_MODULE", Const, 0}, - {"SYS_DUP", Const, 0}, - {"SYS_DUP2", Const, 0}, - {"SYS_DUP3", Const, 0}, - {"SYS_EACCESS", Const, 0}, - {"SYS_EPOLL_CREATE", Const, 0}, - {"SYS_EPOLL_CREATE1", Const, 0}, - {"SYS_EPOLL_CTL", Const, 0}, - {"SYS_EPOLL_CTL_OLD", Const, 0}, - {"SYS_EPOLL_PWAIT", Const, 0}, - {"SYS_EPOLL_WAIT", Const, 0}, - {"SYS_EPOLL_WAIT_OLD", Const, 0}, - {"SYS_EVENTFD", Const, 0}, - {"SYS_EVENTFD2", Const, 0}, - {"SYS_EXCHANGEDATA", Const, 0}, - {"SYS_EXECVE", Const, 0}, - {"SYS_EXIT", Const, 0}, - {"SYS_EXIT_GROUP", Const, 0}, - {"SYS_EXTATTRCTL", Const, 0}, - {"SYS_EXTATTR_DELETE_FD", Const, 0}, - {"SYS_EXTATTR_DELETE_FILE", Const, 0}, - {"SYS_EXTATTR_DELETE_LINK", Const, 0}, - {"SYS_EXTATTR_GET_FD", Const, 0}, - {"SYS_EXTATTR_GET_FILE", Const, 0}, - {"SYS_EXTATTR_GET_LINK", Const, 0}, - {"SYS_EXTATTR_LIST_FD", Const, 0}, - {"SYS_EXTATTR_LIST_FILE", Const, 0}, - {"SYS_EXTATTR_LIST_LINK", Const, 0}, - {"SYS_EXTATTR_SET_FD", Const, 0}, - {"SYS_EXTATTR_SET_FILE", Const, 0}, - {"SYS_EXTATTR_SET_LINK", Const, 0}, - {"SYS_FACCESSAT", Const, 0}, - {"SYS_FADVISE64", Const, 0}, - {"SYS_FADVISE64_64", Const, 0}, - {"SYS_FALLOCATE", Const, 0}, - {"SYS_FANOTIFY_INIT", Const, 0}, - {"SYS_FANOTIFY_MARK", Const, 0}, - {"SYS_FCHDIR", Const, 0}, - {"SYS_FCHFLAGS", Const, 0}, - {"SYS_FCHMOD", Const, 0}, - {"SYS_FCHMODAT", Const, 0}, - {"SYS_FCHMOD_EXTENDED", Const, 0}, - {"SYS_FCHOWN", Const, 0}, - {"SYS_FCHOWN32", Const, 0}, - {"SYS_FCHOWNAT", Const, 0}, - {"SYS_FCHROOT", Const, 1}, - {"SYS_FCNTL", Const, 0}, - {"SYS_FCNTL64", Const, 0}, - {"SYS_FCNTL_NOCANCEL", Const, 0}, - {"SYS_FDATASYNC", Const, 0}, - {"SYS_FEXECVE", Const, 0}, - {"SYS_FFCLOCK_GETCOUNTER", Const, 0}, - {"SYS_FFCLOCK_GETESTIMATE", Const, 0}, - {"SYS_FFCLOCK_SETESTIMATE", Const, 0}, - {"SYS_FFSCTL", Const, 0}, - {"SYS_FGETATTRLIST", Const, 0}, - {"SYS_FGETXATTR", Const, 0}, - {"SYS_FHOPEN", Const, 0}, - {"SYS_FHSTAT", Const, 0}, - {"SYS_FHSTATFS", Const, 0}, - {"SYS_FILEPORT_MAKEFD", Const, 0}, - {"SYS_FILEPORT_MAKEPORT", Const, 0}, - {"SYS_FKTRACE", Const, 1}, - {"SYS_FLISTXATTR", Const, 0}, - {"SYS_FLOCK", Const, 0}, - {"SYS_FORK", Const, 0}, - {"SYS_FPATHCONF", Const, 0}, - {"SYS_FREEBSD6_FTRUNCATE", Const, 0}, - {"SYS_FREEBSD6_LSEEK", Const, 0}, - {"SYS_FREEBSD6_MMAP", Const, 0}, - {"SYS_FREEBSD6_PREAD", Const, 0}, - {"SYS_FREEBSD6_PWRITE", Const, 0}, - {"SYS_FREEBSD6_TRUNCATE", Const, 0}, - {"SYS_FREMOVEXATTR", Const, 0}, - {"SYS_FSCTL", Const, 0}, - {"SYS_FSETATTRLIST", Const, 0}, - {"SYS_FSETXATTR", Const, 0}, - {"SYS_FSGETPATH", Const, 0}, - {"SYS_FSTAT", Const, 0}, - {"SYS_FSTAT64", Const, 0}, - {"SYS_FSTAT64_EXTENDED", Const, 0}, - {"SYS_FSTATAT", Const, 0}, - {"SYS_FSTATAT64", Const, 0}, - {"SYS_FSTATFS", Const, 0}, - {"SYS_FSTATFS64", Const, 0}, - {"SYS_FSTATV", Const, 0}, - {"SYS_FSTATVFS1", Const, 1}, - {"SYS_FSTAT_EXTENDED", Const, 0}, - {"SYS_FSYNC", Const, 0}, - {"SYS_FSYNC_NOCANCEL", Const, 0}, - {"SYS_FSYNC_RANGE", Const, 1}, - {"SYS_FTIME", Const, 0}, - {"SYS_FTRUNCATE", Const, 0}, - {"SYS_FTRUNCATE64", Const, 0}, - {"SYS_FUTEX", Const, 0}, - {"SYS_FUTIMENS", Const, 1}, - {"SYS_FUTIMES", Const, 0}, - {"SYS_FUTIMESAT", Const, 0}, - {"SYS_GETATTRLIST", Const, 0}, - {"SYS_GETAUDIT", Const, 0}, - {"SYS_GETAUDIT_ADDR", Const, 0}, - {"SYS_GETAUID", Const, 0}, - {"SYS_GETCONTEXT", Const, 0}, - {"SYS_GETCPU", Const, 0}, - {"SYS_GETCWD", Const, 0}, - {"SYS_GETDENTS", Const, 0}, - {"SYS_GETDENTS64", Const, 0}, - {"SYS_GETDIRENTRIES", Const, 0}, - {"SYS_GETDIRENTRIES64", Const, 0}, - {"SYS_GETDIRENTRIESATTR", Const, 0}, - {"SYS_GETDTABLECOUNT", Const, 1}, - {"SYS_GETDTABLESIZE", Const, 0}, - {"SYS_GETEGID", Const, 0}, - {"SYS_GETEGID32", Const, 0}, - {"SYS_GETEUID", Const, 0}, - {"SYS_GETEUID32", Const, 0}, - {"SYS_GETFH", Const, 0}, - {"SYS_GETFSSTAT", Const, 0}, - {"SYS_GETFSSTAT64", Const, 0}, - {"SYS_GETGID", Const, 0}, - {"SYS_GETGID32", Const, 0}, - {"SYS_GETGROUPS", Const, 0}, - {"SYS_GETGROUPS32", Const, 0}, - {"SYS_GETHOSTUUID", Const, 0}, - {"SYS_GETITIMER", Const, 0}, - {"SYS_GETLCID", Const, 0}, - {"SYS_GETLOGIN", Const, 0}, - {"SYS_GETLOGINCLASS", Const, 0}, - {"SYS_GETPEERNAME", Const, 0}, - {"SYS_GETPGID", Const, 0}, - {"SYS_GETPGRP", Const, 0}, - {"SYS_GETPID", Const, 0}, - {"SYS_GETPMSG", Const, 0}, - {"SYS_GETPPID", Const, 0}, - {"SYS_GETPRIORITY", Const, 0}, - {"SYS_GETRESGID", Const, 0}, - {"SYS_GETRESGID32", Const, 0}, - {"SYS_GETRESUID", Const, 0}, - {"SYS_GETRESUID32", Const, 0}, - {"SYS_GETRLIMIT", Const, 0}, - {"SYS_GETRTABLE", Const, 1}, - {"SYS_GETRUSAGE", Const, 0}, - {"SYS_GETSGROUPS", Const, 0}, - {"SYS_GETSID", Const, 0}, - {"SYS_GETSOCKNAME", Const, 0}, - {"SYS_GETSOCKOPT", Const, 0}, - {"SYS_GETTHRID", Const, 1}, - {"SYS_GETTID", Const, 0}, - {"SYS_GETTIMEOFDAY", Const, 0}, - {"SYS_GETUID", Const, 0}, - {"SYS_GETUID32", Const, 0}, - {"SYS_GETVFSSTAT", Const, 1}, - {"SYS_GETWGROUPS", Const, 0}, - {"SYS_GETXATTR", Const, 0}, - {"SYS_GET_KERNEL_SYMS", Const, 0}, - {"SYS_GET_MEMPOLICY", Const, 0}, - {"SYS_GET_ROBUST_LIST", Const, 0}, - {"SYS_GET_THREAD_AREA", Const, 0}, - {"SYS_GSSD_SYSCALL", Const, 14}, - {"SYS_GTTY", Const, 0}, - {"SYS_IDENTITYSVC", Const, 0}, - {"SYS_IDLE", Const, 0}, - {"SYS_INITGROUPS", Const, 0}, - {"SYS_INIT_MODULE", Const, 0}, - {"SYS_INOTIFY_ADD_WATCH", Const, 0}, - {"SYS_INOTIFY_INIT", Const, 0}, - {"SYS_INOTIFY_INIT1", Const, 0}, - {"SYS_INOTIFY_RM_WATCH", Const, 0}, - {"SYS_IOCTL", Const, 0}, - {"SYS_IOPERM", Const, 0}, - {"SYS_IOPL", Const, 0}, - {"SYS_IOPOLICYSYS", Const, 0}, - {"SYS_IOPRIO_GET", Const, 0}, - {"SYS_IOPRIO_SET", Const, 0}, - {"SYS_IO_CANCEL", Const, 0}, - {"SYS_IO_DESTROY", Const, 0}, - {"SYS_IO_GETEVENTS", Const, 0}, - {"SYS_IO_SETUP", Const, 0}, - {"SYS_IO_SUBMIT", Const, 0}, - {"SYS_IPC", Const, 0}, - {"SYS_ISSETUGID", Const, 0}, - {"SYS_JAIL", Const, 0}, - {"SYS_JAIL_ATTACH", Const, 0}, - {"SYS_JAIL_GET", Const, 0}, - {"SYS_JAIL_REMOVE", Const, 0}, - {"SYS_JAIL_SET", Const, 0}, - {"SYS_KAS_INFO", Const, 16}, - {"SYS_KDEBUG_TRACE", Const, 0}, - {"SYS_KENV", Const, 0}, - {"SYS_KEVENT", Const, 0}, - {"SYS_KEVENT64", Const, 0}, - {"SYS_KEXEC_LOAD", Const, 0}, - {"SYS_KEYCTL", Const, 0}, - {"SYS_KILL", Const, 0}, - {"SYS_KLDFIND", Const, 0}, - {"SYS_KLDFIRSTMOD", Const, 0}, - {"SYS_KLDLOAD", Const, 0}, - {"SYS_KLDNEXT", Const, 0}, - {"SYS_KLDSTAT", Const, 0}, - {"SYS_KLDSYM", Const, 0}, - {"SYS_KLDUNLOAD", Const, 0}, - {"SYS_KLDUNLOADF", Const, 0}, - {"SYS_KMQ_NOTIFY", Const, 14}, - {"SYS_KMQ_OPEN", Const, 14}, - {"SYS_KMQ_SETATTR", Const, 14}, - {"SYS_KMQ_TIMEDRECEIVE", Const, 14}, - {"SYS_KMQ_TIMEDSEND", Const, 14}, - {"SYS_KMQ_UNLINK", Const, 14}, - {"SYS_KQUEUE", Const, 0}, - {"SYS_KQUEUE1", Const, 1}, - {"SYS_KSEM_CLOSE", Const, 14}, - {"SYS_KSEM_DESTROY", Const, 14}, - {"SYS_KSEM_GETVALUE", Const, 14}, - {"SYS_KSEM_INIT", Const, 14}, - {"SYS_KSEM_OPEN", Const, 14}, - {"SYS_KSEM_POST", Const, 14}, - {"SYS_KSEM_TIMEDWAIT", Const, 14}, - {"SYS_KSEM_TRYWAIT", Const, 14}, - {"SYS_KSEM_UNLINK", Const, 14}, - {"SYS_KSEM_WAIT", Const, 14}, - {"SYS_KTIMER_CREATE", Const, 0}, - {"SYS_KTIMER_DELETE", Const, 0}, - {"SYS_KTIMER_GETOVERRUN", Const, 0}, - {"SYS_KTIMER_GETTIME", Const, 0}, - {"SYS_KTIMER_SETTIME", Const, 0}, - {"SYS_KTRACE", Const, 0}, - {"SYS_LCHFLAGS", Const, 0}, - {"SYS_LCHMOD", Const, 0}, - {"SYS_LCHOWN", Const, 0}, - {"SYS_LCHOWN32", Const, 0}, - {"SYS_LEDGER", Const, 16}, - {"SYS_LGETFH", Const, 0}, - {"SYS_LGETXATTR", Const, 0}, - {"SYS_LINK", Const, 0}, - {"SYS_LINKAT", Const, 0}, - {"SYS_LIO_LISTIO", Const, 0}, - {"SYS_LISTEN", Const, 0}, - {"SYS_LISTXATTR", Const, 0}, - {"SYS_LLISTXATTR", Const, 0}, - {"SYS_LOCK", Const, 0}, - {"SYS_LOOKUP_DCOOKIE", Const, 0}, - {"SYS_LPATHCONF", Const, 0}, - {"SYS_LREMOVEXATTR", Const, 0}, - {"SYS_LSEEK", Const, 0}, - {"SYS_LSETXATTR", Const, 0}, - {"SYS_LSTAT", Const, 0}, - {"SYS_LSTAT64", Const, 0}, - {"SYS_LSTAT64_EXTENDED", Const, 0}, - {"SYS_LSTATV", Const, 0}, - {"SYS_LSTAT_EXTENDED", Const, 0}, - {"SYS_LUTIMES", Const, 0}, - {"SYS_MAC_SYSCALL", Const, 0}, - {"SYS_MADVISE", Const, 0}, - {"SYS_MADVISE1", Const, 0}, - {"SYS_MAXSYSCALL", Const, 0}, - {"SYS_MBIND", Const, 0}, - {"SYS_MIGRATE_PAGES", Const, 0}, - {"SYS_MINCORE", Const, 0}, - {"SYS_MINHERIT", Const, 0}, - {"SYS_MKCOMPLEX", Const, 0}, - {"SYS_MKDIR", Const, 0}, - {"SYS_MKDIRAT", Const, 0}, - {"SYS_MKDIR_EXTENDED", Const, 0}, - {"SYS_MKFIFO", Const, 0}, - {"SYS_MKFIFOAT", Const, 0}, - {"SYS_MKFIFO_EXTENDED", Const, 0}, - {"SYS_MKNOD", Const, 0}, - {"SYS_MKNODAT", Const, 0}, - {"SYS_MLOCK", Const, 0}, - {"SYS_MLOCKALL", Const, 0}, - {"SYS_MMAP", Const, 0}, - {"SYS_MMAP2", Const, 0}, - {"SYS_MODCTL", Const, 1}, - {"SYS_MODFIND", Const, 0}, - {"SYS_MODFNEXT", Const, 0}, - {"SYS_MODIFY_LDT", Const, 0}, - {"SYS_MODNEXT", Const, 0}, - {"SYS_MODSTAT", Const, 0}, - {"SYS_MODWATCH", Const, 0}, - {"SYS_MOUNT", Const, 0}, - {"SYS_MOVE_PAGES", Const, 0}, - {"SYS_MPROTECT", Const, 0}, - {"SYS_MPX", Const, 0}, - {"SYS_MQUERY", Const, 1}, - {"SYS_MQ_GETSETATTR", Const, 0}, - {"SYS_MQ_NOTIFY", Const, 0}, - {"SYS_MQ_OPEN", Const, 0}, - {"SYS_MQ_TIMEDRECEIVE", Const, 0}, - {"SYS_MQ_TIMEDSEND", Const, 0}, - {"SYS_MQ_UNLINK", Const, 0}, - {"SYS_MREMAP", Const, 0}, - {"SYS_MSGCTL", Const, 0}, - {"SYS_MSGGET", Const, 0}, - {"SYS_MSGRCV", Const, 0}, - {"SYS_MSGRCV_NOCANCEL", Const, 0}, - {"SYS_MSGSND", Const, 0}, - {"SYS_MSGSND_NOCANCEL", Const, 0}, - {"SYS_MSGSYS", Const, 0}, - {"SYS_MSYNC", Const, 0}, - {"SYS_MSYNC_NOCANCEL", Const, 0}, - {"SYS_MUNLOCK", Const, 0}, - {"SYS_MUNLOCKALL", Const, 0}, - {"SYS_MUNMAP", Const, 0}, - {"SYS_NAME_TO_HANDLE_AT", Const, 0}, - {"SYS_NANOSLEEP", Const, 0}, - {"SYS_NEWFSTATAT", Const, 0}, - {"SYS_NFSCLNT", Const, 0}, - {"SYS_NFSSERVCTL", Const, 0}, - {"SYS_NFSSVC", Const, 0}, - {"SYS_NFSTAT", Const, 0}, - {"SYS_NICE", Const, 0}, - {"SYS_NLM_SYSCALL", Const, 14}, - {"SYS_NLSTAT", Const, 0}, - {"SYS_NMOUNT", Const, 0}, - {"SYS_NSTAT", Const, 0}, - {"SYS_NTP_ADJTIME", Const, 0}, - {"SYS_NTP_GETTIME", Const, 0}, - {"SYS_NUMA_GETAFFINITY", Const, 14}, - {"SYS_NUMA_SETAFFINITY", Const, 14}, - {"SYS_OABI_SYSCALL_BASE", Const, 0}, - {"SYS_OBREAK", Const, 0}, - {"SYS_OLDFSTAT", Const, 0}, - {"SYS_OLDLSTAT", Const, 0}, - {"SYS_OLDOLDUNAME", Const, 0}, - {"SYS_OLDSTAT", Const, 0}, - {"SYS_OLDUNAME", Const, 0}, - {"SYS_OPEN", Const, 0}, - {"SYS_OPENAT", Const, 0}, - {"SYS_OPENBSD_POLL", Const, 0}, - {"SYS_OPEN_BY_HANDLE_AT", Const, 0}, - {"SYS_OPEN_DPROTECTED_NP", Const, 16}, - {"SYS_OPEN_EXTENDED", Const, 0}, - {"SYS_OPEN_NOCANCEL", Const, 0}, - {"SYS_OVADVISE", Const, 0}, - {"SYS_PACCEPT", Const, 1}, - {"SYS_PATHCONF", Const, 0}, - {"SYS_PAUSE", Const, 0}, - {"SYS_PCICONFIG_IOBASE", Const, 0}, - {"SYS_PCICONFIG_READ", Const, 0}, - {"SYS_PCICONFIG_WRITE", Const, 0}, - {"SYS_PDFORK", Const, 0}, - {"SYS_PDGETPID", Const, 0}, - {"SYS_PDKILL", Const, 0}, - {"SYS_PERF_EVENT_OPEN", Const, 0}, - {"SYS_PERSONALITY", Const, 0}, - {"SYS_PID_HIBERNATE", Const, 0}, - {"SYS_PID_RESUME", Const, 0}, - {"SYS_PID_SHUTDOWN_SOCKETS", Const, 0}, - {"SYS_PID_SUSPEND", Const, 0}, - {"SYS_PIPE", Const, 0}, - {"SYS_PIPE2", Const, 0}, - {"SYS_PIVOT_ROOT", Const, 0}, - {"SYS_PMC_CONTROL", Const, 1}, - {"SYS_PMC_GET_INFO", Const, 1}, - {"SYS_POLL", Const, 0}, - {"SYS_POLLTS", Const, 1}, - {"SYS_POLL_NOCANCEL", Const, 0}, - {"SYS_POSIX_FADVISE", Const, 0}, - {"SYS_POSIX_FALLOCATE", Const, 0}, - {"SYS_POSIX_OPENPT", Const, 0}, - {"SYS_POSIX_SPAWN", Const, 0}, - {"SYS_PPOLL", Const, 0}, - {"SYS_PRCTL", Const, 0}, - {"SYS_PREAD", Const, 0}, - {"SYS_PREAD64", Const, 0}, - {"SYS_PREADV", Const, 0}, - {"SYS_PREAD_NOCANCEL", Const, 0}, - {"SYS_PRLIMIT64", Const, 0}, - {"SYS_PROCCTL", Const, 3}, - {"SYS_PROCESS_POLICY", Const, 0}, - {"SYS_PROCESS_VM_READV", Const, 0}, - {"SYS_PROCESS_VM_WRITEV", Const, 0}, - {"SYS_PROC_INFO", Const, 0}, - {"SYS_PROF", Const, 0}, - {"SYS_PROFIL", Const, 0}, - {"SYS_PSELECT", Const, 0}, - {"SYS_PSELECT6", Const, 0}, - {"SYS_PSET_ASSIGN", Const, 1}, - {"SYS_PSET_CREATE", Const, 1}, - {"SYS_PSET_DESTROY", Const, 1}, - {"SYS_PSYNCH_CVBROAD", Const, 0}, - {"SYS_PSYNCH_CVCLRPREPOST", Const, 0}, - {"SYS_PSYNCH_CVSIGNAL", Const, 0}, - {"SYS_PSYNCH_CVWAIT", Const, 0}, - {"SYS_PSYNCH_MUTEXDROP", Const, 0}, - {"SYS_PSYNCH_MUTEXWAIT", Const, 0}, - {"SYS_PSYNCH_RW_DOWNGRADE", Const, 0}, - {"SYS_PSYNCH_RW_LONGRDLOCK", Const, 0}, - {"SYS_PSYNCH_RW_RDLOCK", Const, 0}, - {"SYS_PSYNCH_RW_UNLOCK", Const, 0}, - {"SYS_PSYNCH_RW_UNLOCK2", Const, 0}, - {"SYS_PSYNCH_RW_UPGRADE", Const, 0}, - {"SYS_PSYNCH_RW_WRLOCK", Const, 0}, - {"SYS_PSYNCH_RW_YIELDWRLOCK", Const, 0}, - {"SYS_PTRACE", Const, 0}, - {"SYS_PUTPMSG", Const, 0}, - {"SYS_PWRITE", Const, 0}, - {"SYS_PWRITE64", Const, 0}, - {"SYS_PWRITEV", Const, 0}, - {"SYS_PWRITE_NOCANCEL", Const, 0}, - {"SYS_QUERY_MODULE", Const, 0}, - {"SYS_QUOTACTL", Const, 0}, - {"SYS_RASCTL", Const, 1}, - {"SYS_RCTL_ADD_RULE", Const, 0}, - {"SYS_RCTL_GET_LIMITS", Const, 0}, - {"SYS_RCTL_GET_RACCT", Const, 0}, - {"SYS_RCTL_GET_RULES", Const, 0}, - {"SYS_RCTL_REMOVE_RULE", Const, 0}, - {"SYS_READ", Const, 0}, - {"SYS_READAHEAD", Const, 0}, - {"SYS_READDIR", Const, 0}, - {"SYS_READLINK", Const, 0}, - {"SYS_READLINKAT", Const, 0}, - {"SYS_READV", Const, 0}, - {"SYS_READV_NOCANCEL", Const, 0}, - {"SYS_READ_NOCANCEL", Const, 0}, - {"SYS_REBOOT", Const, 0}, - {"SYS_RECV", Const, 0}, - {"SYS_RECVFROM", Const, 0}, - {"SYS_RECVFROM_NOCANCEL", Const, 0}, - {"SYS_RECVMMSG", Const, 0}, - {"SYS_RECVMSG", Const, 0}, - {"SYS_RECVMSG_NOCANCEL", Const, 0}, - {"SYS_REMAP_FILE_PAGES", Const, 0}, - {"SYS_REMOVEXATTR", Const, 0}, - {"SYS_RENAME", Const, 0}, - {"SYS_RENAMEAT", Const, 0}, - {"SYS_REQUEST_KEY", Const, 0}, - {"SYS_RESTART_SYSCALL", Const, 0}, - {"SYS_REVOKE", Const, 0}, - {"SYS_RFORK", Const, 0}, - {"SYS_RMDIR", Const, 0}, - {"SYS_RTPRIO", Const, 0}, - {"SYS_RTPRIO_THREAD", Const, 0}, - {"SYS_RT_SIGACTION", Const, 0}, - {"SYS_RT_SIGPENDING", Const, 0}, - {"SYS_RT_SIGPROCMASK", Const, 0}, - {"SYS_RT_SIGQUEUEINFO", Const, 0}, - {"SYS_RT_SIGRETURN", Const, 0}, - {"SYS_RT_SIGSUSPEND", Const, 0}, - {"SYS_RT_SIGTIMEDWAIT", Const, 0}, - {"SYS_RT_TGSIGQUEUEINFO", Const, 0}, - {"SYS_SBRK", Const, 0}, - {"SYS_SCHED_GETAFFINITY", Const, 0}, - {"SYS_SCHED_GETPARAM", Const, 0}, - {"SYS_SCHED_GETSCHEDULER", Const, 0}, - {"SYS_SCHED_GET_PRIORITY_MAX", Const, 0}, - {"SYS_SCHED_GET_PRIORITY_MIN", Const, 0}, - {"SYS_SCHED_RR_GET_INTERVAL", Const, 0}, - {"SYS_SCHED_SETAFFINITY", Const, 0}, - {"SYS_SCHED_SETPARAM", Const, 0}, - {"SYS_SCHED_SETSCHEDULER", Const, 0}, - {"SYS_SCHED_YIELD", Const, 0}, - {"SYS_SCTP_GENERIC_RECVMSG", Const, 0}, - {"SYS_SCTP_GENERIC_SENDMSG", Const, 0}, - {"SYS_SCTP_GENERIC_SENDMSG_IOV", Const, 0}, - {"SYS_SCTP_PEELOFF", Const, 0}, - {"SYS_SEARCHFS", Const, 0}, - {"SYS_SECURITY", Const, 0}, - {"SYS_SELECT", Const, 0}, - {"SYS_SELECT_NOCANCEL", Const, 0}, - {"SYS_SEMCONFIG", Const, 1}, - {"SYS_SEMCTL", Const, 0}, - {"SYS_SEMGET", Const, 0}, - {"SYS_SEMOP", Const, 0}, - {"SYS_SEMSYS", Const, 0}, - {"SYS_SEMTIMEDOP", Const, 0}, - {"SYS_SEM_CLOSE", Const, 0}, - {"SYS_SEM_DESTROY", Const, 0}, - {"SYS_SEM_GETVALUE", Const, 0}, - {"SYS_SEM_INIT", Const, 0}, - {"SYS_SEM_OPEN", Const, 0}, - {"SYS_SEM_POST", Const, 0}, - {"SYS_SEM_TRYWAIT", Const, 0}, - {"SYS_SEM_UNLINK", Const, 0}, - {"SYS_SEM_WAIT", Const, 0}, - {"SYS_SEM_WAIT_NOCANCEL", Const, 0}, - {"SYS_SEND", Const, 0}, - {"SYS_SENDFILE", Const, 0}, - {"SYS_SENDFILE64", Const, 0}, - {"SYS_SENDMMSG", Const, 0}, - {"SYS_SENDMSG", Const, 0}, - {"SYS_SENDMSG_NOCANCEL", Const, 0}, - {"SYS_SENDTO", Const, 0}, - {"SYS_SENDTO_NOCANCEL", Const, 0}, - {"SYS_SETATTRLIST", Const, 0}, - {"SYS_SETAUDIT", Const, 0}, - {"SYS_SETAUDIT_ADDR", Const, 0}, - {"SYS_SETAUID", Const, 0}, - {"SYS_SETCONTEXT", Const, 0}, - {"SYS_SETDOMAINNAME", Const, 0}, - {"SYS_SETEGID", Const, 0}, - {"SYS_SETEUID", Const, 0}, - {"SYS_SETFIB", Const, 0}, - {"SYS_SETFSGID", Const, 0}, - {"SYS_SETFSGID32", Const, 0}, - {"SYS_SETFSUID", Const, 0}, - {"SYS_SETFSUID32", Const, 0}, - {"SYS_SETGID", Const, 0}, - {"SYS_SETGID32", Const, 0}, - {"SYS_SETGROUPS", Const, 0}, - {"SYS_SETGROUPS32", Const, 0}, - {"SYS_SETHOSTNAME", Const, 0}, - {"SYS_SETITIMER", Const, 0}, - {"SYS_SETLCID", Const, 0}, - {"SYS_SETLOGIN", Const, 0}, - {"SYS_SETLOGINCLASS", Const, 0}, - {"SYS_SETNS", Const, 0}, - {"SYS_SETPGID", Const, 0}, - {"SYS_SETPRIORITY", Const, 0}, - {"SYS_SETPRIVEXEC", Const, 0}, - {"SYS_SETREGID", Const, 0}, - {"SYS_SETREGID32", Const, 0}, - {"SYS_SETRESGID", Const, 0}, - {"SYS_SETRESGID32", Const, 0}, - {"SYS_SETRESUID", Const, 0}, - {"SYS_SETRESUID32", Const, 0}, - {"SYS_SETREUID", Const, 0}, - {"SYS_SETREUID32", Const, 0}, - {"SYS_SETRLIMIT", Const, 0}, - {"SYS_SETRTABLE", Const, 1}, - {"SYS_SETSGROUPS", Const, 0}, - {"SYS_SETSID", Const, 0}, - {"SYS_SETSOCKOPT", Const, 0}, - {"SYS_SETTID", Const, 0}, - {"SYS_SETTID_WITH_PID", Const, 0}, - {"SYS_SETTIMEOFDAY", Const, 0}, - {"SYS_SETUID", Const, 0}, - {"SYS_SETUID32", Const, 0}, - {"SYS_SETWGROUPS", Const, 0}, - {"SYS_SETXATTR", Const, 0}, - {"SYS_SET_MEMPOLICY", Const, 0}, - {"SYS_SET_ROBUST_LIST", Const, 0}, - {"SYS_SET_THREAD_AREA", Const, 0}, - {"SYS_SET_TID_ADDRESS", Const, 0}, - {"SYS_SGETMASK", Const, 0}, - {"SYS_SHARED_REGION_CHECK_NP", Const, 0}, - {"SYS_SHARED_REGION_MAP_AND_SLIDE_NP", Const, 0}, - {"SYS_SHMAT", Const, 0}, - {"SYS_SHMCTL", Const, 0}, - {"SYS_SHMDT", Const, 0}, - {"SYS_SHMGET", Const, 0}, - {"SYS_SHMSYS", Const, 0}, - {"SYS_SHM_OPEN", Const, 0}, - {"SYS_SHM_UNLINK", Const, 0}, - {"SYS_SHUTDOWN", Const, 0}, - {"SYS_SIGACTION", Const, 0}, - {"SYS_SIGALTSTACK", Const, 0}, - {"SYS_SIGNAL", Const, 0}, - {"SYS_SIGNALFD", Const, 0}, - {"SYS_SIGNALFD4", Const, 0}, - {"SYS_SIGPENDING", Const, 0}, - {"SYS_SIGPROCMASK", Const, 0}, - {"SYS_SIGQUEUE", Const, 0}, - {"SYS_SIGQUEUEINFO", Const, 1}, - {"SYS_SIGRETURN", Const, 0}, - {"SYS_SIGSUSPEND", Const, 0}, - {"SYS_SIGSUSPEND_NOCANCEL", Const, 0}, - {"SYS_SIGTIMEDWAIT", Const, 0}, - {"SYS_SIGWAIT", Const, 0}, - {"SYS_SIGWAITINFO", Const, 0}, - {"SYS_SOCKET", Const, 0}, - {"SYS_SOCKETCALL", Const, 0}, - {"SYS_SOCKETPAIR", Const, 0}, - {"SYS_SPLICE", Const, 0}, - {"SYS_SSETMASK", Const, 0}, - {"SYS_SSTK", Const, 0}, - {"SYS_STACK_SNAPSHOT", Const, 0}, - {"SYS_STAT", Const, 0}, - {"SYS_STAT64", Const, 0}, - {"SYS_STAT64_EXTENDED", Const, 0}, - {"SYS_STATFS", Const, 0}, - {"SYS_STATFS64", Const, 0}, - {"SYS_STATV", Const, 0}, - {"SYS_STATVFS1", Const, 1}, - {"SYS_STAT_EXTENDED", Const, 0}, - {"SYS_STIME", Const, 0}, - {"SYS_STTY", Const, 0}, - {"SYS_SWAPCONTEXT", Const, 0}, - {"SYS_SWAPCTL", Const, 1}, - {"SYS_SWAPOFF", Const, 0}, - {"SYS_SWAPON", Const, 0}, - {"SYS_SYMLINK", Const, 0}, - {"SYS_SYMLINKAT", Const, 0}, - {"SYS_SYNC", Const, 0}, - {"SYS_SYNCFS", Const, 0}, - {"SYS_SYNC_FILE_RANGE", Const, 0}, - {"SYS_SYSARCH", Const, 0}, - {"SYS_SYSCALL", Const, 0}, - {"SYS_SYSCALL_BASE", Const, 0}, - {"SYS_SYSFS", Const, 0}, - {"SYS_SYSINFO", Const, 0}, - {"SYS_SYSLOG", Const, 0}, - {"SYS_TEE", Const, 0}, - {"SYS_TGKILL", Const, 0}, - {"SYS_THREAD_SELFID", Const, 0}, - {"SYS_THR_CREATE", Const, 0}, - {"SYS_THR_EXIT", Const, 0}, - {"SYS_THR_KILL", Const, 0}, - {"SYS_THR_KILL2", Const, 0}, - {"SYS_THR_NEW", Const, 0}, - {"SYS_THR_SELF", Const, 0}, - {"SYS_THR_SET_NAME", Const, 0}, - {"SYS_THR_SUSPEND", Const, 0}, - {"SYS_THR_WAKE", Const, 0}, - {"SYS_TIME", Const, 0}, - {"SYS_TIMERFD_CREATE", Const, 0}, - {"SYS_TIMERFD_GETTIME", Const, 0}, - {"SYS_TIMERFD_SETTIME", Const, 0}, - {"SYS_TIMER_CREATE", Const, 0}, - {"SYS_TIMER_DELETE", Const, 0}, - {"SYS_TIMER_GETOVERRUN", Const, 0}, - {"SYS_TIMER_GETTIME", Const, 0}, - {"SYS_TIMER_SETTIME", Const, 0}, - {"SYS_TIMES", Const, 0}, - {"SYS_TKILL", Const, 0}, - {"SYS_TRUNCATE", Const, 0}, - {"SYS_TRUNCATE64", Const, 0}, - {"SYS_TUXCALL", Const, 0}, - {"SYS_UGETRLIMIT", Const, 0}, - {"SYS_ULIMIT", Const, 0}, - {"SYS_UMASK", Const, 0}, - {"SYS_UMASK_EXTENDED", Const, 0}, - {"SYS_UMOUNT", Const, 0}, - {"SYS_UMOUNT2", Const, 0}, - {"SYS_UNAME", Const, 0}, - {"SYS_UNDELETE", Const, 0}, - {"SYS_UNLINK", Const, 0}, - {"SYS_UNLINKAT", Const, 0}, - {"SYS_UNMOUNT", Const, 0}, - {"SYS_UNSHARE", Const, 0}, - {"SYS_USELIB", Const, 0}, - {"SYS_USTAT", Const, 0}, - {"SYS_UTIME", Const, 0}, - {"SYS_UTIMENSAT", Const, 0}, - {"SYS_UTIMES", Const, 0}, - {"SYS_UTRACE", Const, 0}, - {"SYS_UUIDGEN", Const, 0}, - {"SYS_VADVISE", Const, 1}, - {"SYS_VFORK", Const, 0}, - {"SYS_VHANGUP", Const, 0}, - {"SYS_VM86", Const, 0}, - {"SYS_VM86OLD", Const, 0}, - {"SYS_VMSPLICE", Const, 0}, - {"SYS_VM_PRESSURE_MONITOR", Const, 0}, - {"SYS_VSERVER", Const, 0}, - {"SYS_WAIT4", Const, 0}, - {"SYS_WAIT4_NOCANCEL", Const, 0}, - {"SYS_WAIT6", Const, 1}, - {"SYS_WAITEVENT", Const, 0}, - {"SYS_WAITID", Const, 0}, - {"SYS_WAITID_NOCANCEL", Const, 0}, - {"SYS_WAITPID", Const, 0}, - {"SYS_WATCHEVENT", Const, 0}, - {"SYS_WORKQ_KERNRETURN", Const, 0}, - {"SYS_WORKQ_OPEN", Const, 0}, - {"SYS_WRITE", Const, 0}, - {"SYS_WRITEV", Const, 0}, - {"SYS_WRITEV_NOCANCEL", Const, 0}, - {"SYS_WRITE_NOCANCEL", Const, 0}, - {"SYS_YIELD", Const, 0}, - {"SYS__LLSEEK", Const, 0}, - {"SYS__LWP_CONTINUE", Const, 1}, - {"SYS__LWP_CREATE", Const, 1}, - {"SYS__LWP_CTL", Const, 1}, - {"SYS__LWP_DETACH", Const, 1}, - {"SYS__LWP_EXIT", Const, 1}, - {"SYS__LWP_GETNAME", Const, 1}, - {"SYS__LWP_GETPRIVATE", Const, 1}, - {"SYS__LWP_KILL", Const, 1}, - {"SYS__LWP_PARK", Const, 1}, - {"SYS__LWP_SELF", Const, 1}, - {"SYS__LWP_SETNAME", Const, 1}, - {"SYS__LWP_SETPRIVATE", Const, 1}, - {"SYS__LWP_SUSPEND", Const, 1}, - {"SYS__LWP_UNPARK", Const, 1}, - {"SYS__LWP_UNPARK_ALL", Const, 1}, - {"SYS__LWP_WAIT", Const, 1}, - {"SYS__LWP_WAKEUP", Const, 1}, - {"SYS__NEWSELECT", Const, 0}, - {"SYS__PSET_BIND", Const, 1}, - {"SYS__SCHED_GETAFFINITY", Const, 1}, - {"SYS__SCHED_GETPARAM", Const, 1}, - {"SYS__SCHED_SETAFFINITY", Const, 1}, - {"SYS__SCHED_SETPARAM", Const, 1}, - {"SYS__SYSCTL", Const, 0}, - {"SYS__UMTX_LOCK", Const, 0}, - {"SYS__UMTX_OP", Const, 0}, - {"SYS__UMTX_UNLOCK", Const, 0}, - {"SYS___ACL_ACLCHECK_FD", Const, 0}, - {"SYS___ACL_ACLCHECK_FILE", Const, 0}, - {"SYS___ACL_ACLCHECK_LINK", Const, 0}, - {"SYS___ACL_DELETE_FD", Const, 0}, - {"SYS___ACL_DELETE_FILE", Const, 0}, - {"SYS___ACL_DELETE_LINK", Const, 0}, - {"SYS___ACL_GET_FD", Const, 0}, - {"SYS___ACL_GET_FILE", Const, 0}, - {"SYS___ACL_GET_LINK", Const, 0}, - {"SYS___ACL_SET_FD", Const, 0}, - {"SYS___ACL_SET_FILE", Const, 0}, - {"SYS___ACL_SET_LINK", Const, 0}, - {"SYS___CAP_RIGHTS_GET", Const, 14}, - {"SYS___CLONE", Const, 1}, - {"SYS___DISABLE_THREADSIGNAL", Const, 0}, - {"SYS___GETCWD", Const, 0}, - {"SYS___GETLOGIN", Const, 1}, - {"SYS___GET_TCB", Const, 1}, - {"SYS___MAC_EXECVE", Const, 0}, - {"SYS___MAC_GETFSSTAT", Const, 0}, - {"SYS___MAC_GET_FD", Const, 0}, - {"SYS___MAC_GET_FILE", Const, 0}, - {"SYS___MAC_GET_LCID", Const, 0}, - {"SYS___MAC_GET_LCTX", Const, 0}, - {"SYS___MAC_GET_LINK", Const, 0}, - {"SYS___MAC_GET_MOUNT", Const, 0}, - {"SYS___MAC_GET_PID", Const, 0}, - {"SYS___MAC_GET_PROC", Const, 0}, - {"SYS___MAC_MOUNT", Const, 0}, - {"SYS___MAC_SET_FD", Const, 0}, - {"SYS___MAC_SET_FILE", Const, 0}, - {"SYS___MAC_SET_LCTX", Const, 0}, - {"SYS___MAC_SET_LINK", Const, 0}, - {"SYS___MAC_SET_PROC", Const, 0}, - {"SYS___MAC_SYSCALL", Const, 0}, - {"SYS___OLD_SEMWAIT_SIGNAL", Const, 0}, - {"SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL", Const, 0}, - {"SYS___POSIX_CHOWN", Const, 1}, - {"SYS___POSIX_FCHOWN", Const, 1}, - {"SYS___POSIX_LCHOWN", Const, 1}, - {"SYS___POSIX_RENAME", Const, 1}, - {"SYS___PTHREAD_CANCELED", Const, 0}, - {"SYS___PTHREAD_CHDIR", Const, 0}, - {"SYS___PTHREAD_FCHDIR", Const, 0}, - {"SYS___PTHREAD_KILL", Const, 0}, - {"SYS___PTHREAD_MARKCANCEL", Const, 0}, - {"SYS___PTHREAD_SIGMASK", Const, 0}, - {"SYS___QUOTACTL", Const, 1}, - {"SYS___SEMCTL", Const, 1}, - {"SYS___SEMWAIT_SIGNAL", Const, 0}, - {"SYS___SEMWAIT_SIGNAL_NOCANCEL", Const, 0}, - {"SYS___SETLOGIN", Const, 1}, - {"SYS___SETUGID", Const, 0}, - {"SYS___SET_TCB", Const, 1}, - {"SYS___SIGACTION_SIGTRAMP", Const, 1}, - {"SYS___SIGTIMEDWAIT", Const, 1}, - {"SYS___SIGWAIT", Const, 0}, - {"SYS___SIGWAIT_NOCANCEL", Const, 0}, - {"SYS___SYSCTL", Const, 0}, - {"SYS___TFORK", Const, 1}, - {"SYS___THREXIT", Const, 1}, - {"SYS___THRSIGDIVERT", Const, 1}, - {"SYS___THRSLEEP", Const, 1}, - {"SYS___THRWAKEUP", Const, 1}, - {"S_ARCH1", Const, 1}, - {"S_ARCH2", Const, 1}, - {"S_BLKSIZE", Const, 0}, - {"S_IEXEC", Const, 0}, - {"S_IFBLK", Const, 0}, - {"S_IFCHR", Const, 0}, - {"S_IFDIR", Const, 0}, - {"S_IFIFO", Const, 0}, - {"S_IFLNK", Const, 0}, - {"S_IFMT", Const, 0}, - {"S_IFREG", Const, 0}, - {"S_IFSOCK", Const, 0}, - {"S_IFWHT", Const, 0}, - {"S_IREAD", Const, 0}, - {"S_IRGRP", Const, 0}, - {"S_IROTH", Const, 0}, - {"S_IRUSR", Const, 0}, - {"S_IRWXG", Const, 0}, - {"S_IRWXO", Const, 0}, - {"S_IRWXU", Const, 0}, - {"S_ISGID", Const, 0}, - {"S_ISTXT", Const, 0}, - {"S_ISUID", Const, 0}, - {"S_ISVTX", Const, 0}, - {"S_IWGRP", Const, 0}, - {"S_IWOTH", Const, 0}, - {"S_IWRITE", Const, 0}, - {"S_IWUSR", Const, 0}, - {"S_IXGRP", Const, 0}, - {"S_IXOTH", Const, 0}, - {"S_IXUSR", Const, 0}, - {"S_LOGIN_SET", Const, 1}, - {"SecurityAttributes", Type, 0}, - {"SecurityAttributes.InheritHandle", Field, 0}, - {"SecurityAttributes.Length", Field, 0}, - {"SecurityAttributes.SecurityDescriptor", Field, 0}, - {"Seek", Func, 0}, - {"Select", Func, 0}, - {"Sendfile", Func, 0}, - {"Sendmsg", Func, 0}, - {"SendmsgN", Func, 3}, - {"Sendto", Func, 0}, - {"Servent", Type, 0}, - {"Servent.Aliases", Field, 0}, - {"Servent.Name", Field, 0}, - {"Servent.Port", Field, 0}, - {"Servent.Proto", Field, 0}, - {"SetBpf", Func, 0}, - {"SetBpfBuflen", Func, 0}, - {"SetBpfDatalink", Func, 0}, - {"SetBpfHeadercmpl", Func, 0}, - {"SetBpfImmediate", Func, 0}, - {"SetBpfInterface", Func, 0}, - {"SetBpfPromisc", Func, 0}, - {"SetBpfTimeout", Func, 0}, - {"SetCurrentDirectory", Func, 0}, - {"SetEndOfFile", Func, 0}, - {"SetEnvironmentVariable", Func, 0}, - {"SetFileAttributes", Func, 0}, - {"SetFileCompletionNotificationModes", Func, 2}, - {"SetFilePointer", Func, 0}, - {"SetFileTime", Func, 0}, - {"SetHandleInformation", Func, 0}, - {"SetKevent", Func, 0}, - {"SetLsfPromisc", Func, 0}, - {"SetNonblock", Func, 0}, - {"Setdomainname", Func, 0}, - {"Setegid", Func, 0}, - {"Setenv", Func, 0}, - {"Seteuid", Func, 0}, - {"Setfsgid", Func, 0}, - {"Setfsuid", Func, 0}, - {"Setgid", Func, 0}, - {"Setgroups", Func, 0}, - {"Sethostname", Func, 0}, - {"Setlogin", Func, 0}, - {"Setpgid", Func, 0}, - {"Setpriority", Func, 0}, - {"Setprivexec", Func, 0}, - {"Setregid", Func, 0}, - {"Setresgid", Func, 0}, - {"Setresuid", Func, 0}, - {"Setreuid", Func, 0}, - {"Setrlimit", Func, 0}, - {"Setsid", Func, 0}, - {"Setsockopt", Func, 0}, - {"SetsockoptByte", Func, 0}, - {"SetsockoptICMPv6Filter", Func, 2}, - {"SetsockoptIPMreq", Func, 0}, - {"SetsockoptIPMreqn", Func, 0}, - {"SetsockoptIPv6Mreq", Func, 0}, - {"SetsockoptInet4Addr", Func, 0}, - {"SetsockoptInt", Func, 0}, - {"SetsockoptLinger", Func, 0}, - {"SetsockoptString", Func, 0}, - {"SetsockoptTimeval", Func, 0}, - {"Settimeofday", Func, 0}, - {"Setuid", Func, 0}, - {"Setxattr", Func, 1}, - {"Shutdown", Func, 0}, - {"SidTypeAlias", Const, 0}, - {"SidTypeComputer", Const, 0}, - {"SidTypeDeletedAccount", Const, 0}, - {"SidTypeDomain", Const, 0}, - {"SidTypeGroup", Const, 0}, - {"SidTypeInvalid", Const, 0}, - {"SidTypeLabel", Const, 0}, - {"SidTypeUnknown", Const, 0}, - {"SidTypeUser", Const, 0}, - {"SidTypeWellKnownGroup", Const, 0}, - {"Signal", Type, 0}, - {"SizeofBpfHdr", Const, 0}, - {"SizeofBpfInsn", Const, 0}, - {"SizeofBpfProgram", Const, 0}, - {"SizeofBpfStat", Const, 0}, - {"SizeofBpfVersion", Const, 0}, - {"SizeofBpfZbuf", Const, 0}, - {"SizeofBpfZbufHeader", Const, 0}, - {"SizeofCmsghdr", Const, 0}, - {"SizeofICMPv6Filter", Const, 2}, - {"SizeofIPMreq", Const, 0}, - {"SizeofIPMreqn", Const, 0}, - {"SizeofIPv6MTUInfo", Const, 2}, - {"SizeofIPv6Mreq", Const, 0}, - {"SizeofIfAddrmsg", Const, 0}, - {"SizeofIfAnnounceMsghdr", Const, 1}, - {"SizeofIfData", Const, 0}, - {"SizeofIfInfomsg", Const, 0}, - {"SizeofIfMsghdr", Const, 0}, - {"SizeofIfaMsghdr", Const, 0}, - {"SizeofIfmaMsghdr", Const, 0}, - {"SizeofIfmaMsghdr2", Const, 0}, - {"SizeofInet4Pktinfo", Const, 0}, - {"SizeofInet6Pktinfo", Const, 0}, - {"SizeofInotifyEvent", Const, 0}, - {"SizeofLinger", Const, 0}, - {"SizeofMsghdr", Const, 0}, - {"SizeofNlAttr", Const, 0}, - {"SizeofNlMsgerr", Const, 0}, - {"SizeofNlMsghdr", Const, 0}, - {"SizeofRtAttr", Const, 0}, - {"SizeofRtGenmsg", Const, 0}, - {"SizeofRtMetrics", Const, 0}, - {"SizeofRtMsg", Const, 0}, - {"SizeofRtMsghdr", Const, 0}, - {"SizeofRtNexthop", Const, 0}, - {"SizeofSockFilter", Const, 0}, - {"SizeofSockFprog", Const, 0}, - {"SizeofSockaddrAny", Const, 0}, - {"SizeofSockaddrDatalink", Const, 0}, - {"SizeofSockaddrInet4", Const, 0}, - {"SizeofSockaddrInet6", Const, 0}, - {"SizeofSockaddrLinklayer", Const, 0}, - {"SizeofSockaddrNetlink", Const, 0}, - {"SizeofSockaddrUnix", Const, 0}, - {"SizeofTCPInfo", Const, 1}, - {"SizeofUcred", Const, 0}, - {"SlicePtrFromStrings", Func, 1}, - {"SockFilter", Type, 0}, - {"SockFilter.Code", Field, 0}, - {"SockFilter.Jf", Field, 0}, - {"SockFilter.Jt", Field, 0}, - {"SockFilter.K", Field, 0}, - {"SockFprog", Type, 0}, - {"SockFprog.Filter", Field, 0}, - {"SockFprog.Len", Field, 0}, - {"SockFprog.Pad_cgo_0", Field, 0}, - {"Sockaddr", Type, 0}, - {"SockaddrDatalink", Type, 0}, - {"SockaddrDatalink.Alen", Field, 0}, - {"SockaddrDatalink.Data", Field, 0}, - {"SockaddrDatalink.Family", Field, 0}, - {"SockaddrDatalink.Index", Field, 0}, - {"SockaddrDatalink.Len", Field, 0}, - {"SockaddrDatalink.Nlen", Field, 0}, - {"SockaddrDatalink.Slen", Field, 0}, - {"SockaddrDatalink.Type", Field, 0}, - {"SockaddrGen", Type, 0}, - {"SockaddrInet4", Type, 0}, - {"SockaddrInet4.Addr", Field, 0}, - {"SockaddrInet4.Port", Field, 0}, - {"SockaddrInet6", Type, 0}, - {"SockaddrInet6.Addr", Field, 0}, - {"SockaddrInet6.Port", Field, 0}, - {"SockaddrInet6.ZoneId", Field, 0}, - {"SockaddrLinklayer", Type, 0}, - {"SockaddrLinklayer.Addr", Field, 0}, - {"SockaddrLinklayer.Halen", Field, 0}, - {"SockaddrLinklayer.Hatype", Field, 0}, - {"SockaddrLinklayer.Ifindex", Field, 0}, - {"SockaddrLinklayer.Pkttype", Field, 0}, - {"SockaddrLinklayer.Protocol", Field, 0}, - {"SockaddrNetlink", Type, 0}, - {"SockaddrNetlink.Family", Field, 0}, - {"SockaddrNetlink.Groups", Field, 0}, - {"SockaddrNetlink.Pad", Field, 0}, - {"SockaddrNetlink.Pid", Field, 0}, - {"SockaddrUnix", Type, 0}, - {"SockaddrUnix.Name", Field, 0}, - {"Socket", Func, 0}, - {"SocketControlMessage", Type, 0}, - {"SocketControlMessage.Data", Field, 0}, - {"SocketControlMessage.Header", Field, 0}, - {"SocketDisableIPv6", Var, 0}, - {"Socketpair", Func, 0}, - {"Splice", Func, 0}, - {"StartProcess", Func, 0}, - {"StartupInfo", Type, 0}, - {"StartupInfo.Cb", Field, 0}, - {"StartupInfo.Desktop", Field, 0}, - {"StartupInfo.FillAttribute", Field, 0}, - {"StartupInfo.Flags", Field, 0}, - {"StartupInfo.ShowWindow", Field, 0}, - {"StartupInfo.StdErr", Field, 0}, - {"StartupInfo.StdInput", Field, 0}, - {"StartupInfo.StdOutput", Field, 0}, - {"StartupInfo.Title", Field, 0}, - {"StartupInfo.X", Field, 0}, - {"StartupInfo.XCountChars", Field, 0}, - {"StartupInfo.XSize", Field, 0}, - {"StartupInfo.Y", Field, 0}, - {"StartupInfo.YCountChars", Field, 0}, - {"StartupInfo.YSize", Field, 0}, - {"Stat", Func, 0}, - {"Stat_t", Type, 0}, - {"Stat_t.Atim", Field, 0}, - {"Stat_t.Atim_ext", Field, 12}, - {"Stat_t.Atimespec", Field, 0}, - {"Stat_t.Birthtimespec", Field, 0}, - {"Stat_t.Blksize", Field, 0}, - {"Stat_t.Blocks", Field, 0}, - {"Stat_t.Btim_ext", Field, 12}, - {"Stat_t.Ctim", Field, 0}, - {"Stat_t.Ctim_ext", Field, 12}, - {"Stat_t.Ctimespec", Field, 0}, - {"Stat_t.Dev", Field, 0}, - {"Stat_t.Flags", Field, 0}, - {"Stat_t.Gen", Field, 0}, - {"Stat_t.Gid", Field, 0}, - {"Stat_t.Ino", Field, 0}, - {"Stat_t.Lspare", Field, 0}, - {"Stat_t.Lspare0", Field, 2}, - {"Stat_t.Lspare1", Field, 2}, - {"Stat_t.Mode", Field, 0}, - {"Stat_t.Mtim", Field, 0}, - {"Stat_t.Mtim_ext", Field, 12}, - {"Stat_t.Mtimespec", Field, 0}, - {"Stat_t.Nlink", Field, 0}, - {"Stat_t.Pad_cgo_0", Field, 0}, - {"Stat_t.Pad_cgo_1", Field, 0}, - {"Stat_t.Pad_cgo_2", Field, 0}, - {"Stat_t.Padding0", Field, 12}, - {"Stat_t.Padding1", Field, 12}, - {"Stat_t.Qspare", Field, 0}, - {"Stat_t.Rdev", Field, 0}, - {"Stat_t.Size", Field, 0}, - {"Stat_t.Spare", Field, 2}, - {"Stat_t.Uid", Field, 0}, - {"Stat_t.X__pad0", Field, 0}, - {"Stat_t.X__pad1", Field, 0}, - {"Stat_t.X__pad2", Field, 0}, - {"Stat_t.X__st_birthtim", Field, 2}, - {"Stat_t.X__st_ino", Field, 0}, - {"Stat_t.X__unused", Field, 0}, - {"Statfs", Func, 0}, - {"Statfs_t", Type, 0}, - {"Statfs_t.Asyncreads", Field, 0}, - {"Statfs_t.Asyncwrites", Field, 0}, - {"Statfs_t.Bavail", Field, 0}, - {"Statfs_t.Bfree", Field, 0}, - {"Statfs_t.Blocks", Field, 0}, - {"Statfs_t.Bsize", Field, 0}, - {"Statfs_t.Charspare", Field, 0}, - {"Statfs_t.F_asyncreads", Field, 2}, - {"Statfs_t.F_asyncwrites", Field, 2}, - {"Statfs_t.F_bavail", Field, 2}, - {"Statfs_t.F_bfree", Field, 2}, - {"Statfs_t.F_blocks", Field, 2}, - {"Statfs_t.F_bsize", Field, 2}, - {"Statfs_t.F_ctime", Field, 2}, - {"Statfs_t.F_favail", Field, 2}, - {"Statfs_t.F_ffree", Field, 2}, - {"Statfs_t.F_files", Field, 2}, - {"Statfs_t.F_flags", Field, 2}, - {"Statfs_t.F_fsid", Field, 2}, - {"Statfs_t.F_fstypename", Field, 2}, - {"Statfs_t.F_iosize", Field, 2}, - {"Statfs_t.F_mntfromname", Field, 2}, - {"Statfs_t.F_mntfromspec", Field, 3}, - {"Statfs_t.F_mntonname", Field, 2}, - {"Statfs_t.F_namemax", Field, 2}, - {"Statfs_t.F_owner", Field, 2}, - {"Statfs_t.F_spare", Field, 2}, - {"Statfs_t.F_syncreads", Field, 2}, - {"Statfs_t.F_syncwrites", Field, 2}, - {"Statfs_t.Ffree", Field, 0}, - {"Statfs_t.Files", Field, 0}, - {"Statfs_t.Flags", Field, 0}, - {"Statfs_t.Frsize", Field, 0}, - {"Statfs_t.Fsid", Field, 0}, - {"Statfs_t.Fssubtype", Field, 0}, - {"Statfs_t.Fstypename", Field, 0}, - {"Statfs_t.Iosize", Field, 0}, - {"Statfs_t.Mntfromname", Field, 0}, - {"Statfs_t.Mntonname", Field, 0}, - {"Statfs_t.Mount_info", Field, 2}, - {"Statfs_t.Namelen", Field, 0}, - {"Statfs_t.Namemax", Field, 0}, - {"Statfs_t.Owner", Field, 0}, - {"Statfs_t.Pad_cgo_0", Field, 0}, - {"Statfs_t.Pad_cgo_1", Field, 2}, - {"Statfs_t.Reserved", Field, 0}, - {"Statfs_t.Spare", Field, 0}, - {"Statfs_t.Syncreads", Field, 0}, - {"Statfs_t.Syncwrites", Field, 0}, - {"Statfs_t.Type", Field, 0}, - {"Statfs_t.Version", Field, 0}, - {"Stderr", Var, 0}, - {"Stdin", Var, 0}, - {"Stdout", Var, 0}, - {"StringBytePtr", Func, 0}, - {"StringByteSlice", Func, 0}, - {"StringSlicePtr", Func, 0}, - {"StringToSid", Func, 0}, - {"StringToUTF16", Func, 0}, - {"StringToUTF16Ptr", Func, 0}, - {"Symlink", Func, 0}, - {"Sync", Func, 0}, - {"SyncFileRange", Func, 0}, - {"SysProcAttr", Type, 0}, - {"SysProcAttr.AdditionalInheritedHandles", Field, 17}, - {"SysProcAttr.AmbientCaps", Field, 9}, - {"SysProcAttr.CgroupFD", Field, 20}, - {"SysProcAttr.Chroot", Field, 0}, - {"SysProcAttr.Cloneflags", Field, 2}, - {"SysProcAttr.CmdLine", Field, 0}, - {"SysProcAttr.CreationFlags", Field, 1}, - {"SysProcAttr.Credential", Field, 0}, - {"SysProcAttr.Ctty", Field, 1}, - {"SysProcAttr.Foreground", Field, 5}, - {"SysProcAttr.GidMappings", Field, 4}, - {"SysProcAttr.GidMappingsEnableSetgroups", Field, 5}, - {"SysProcAttr.HideWindow", Field, 0}, - {"SysProcAttr.Jail", Field, 21}, - {"SysProcAttr.NoInheritHandles", Field, 16}, - {"SysProcAttr.Noctty", Field, 0}, - {"SysProcAttr.ParentProcess", Field, 17}, - {"SysProcAttr.Pdeathsig", Field, 0}, - {"SysProcAttr.Pgid", Field, 5}, - {"SysProcAttr.PidFD", Field, 22}, - {"SysProcAttr.ProcessAttributes", Field, 13}, - {"SysProcAttr.Ptrace", Field, 0}, - {"SysProcAttr.Setctty", Field, 0}, - {"SysProcAttr.Setpgid", Field, 0}, - {"SysProcAttr.Setsid", Field, 0}, - {"SysProcAttr.ThreadAttributes", Field, 13}, - {"SysProcAttr.Token", Field, 10}, - {"SysProcAttr.UidMappings", Field, 4}, - {"SysProcAttr.Unshareflags", Field, 7}, - {"SysProcAttr.UseCgroupFD", Field, 20}, - {"SysProcIDMap", Type, 4}, - {"SysProcIDMap.ContainerID", Field, 4}, - {"SysProcIDMap.HostID", Field, 4}, - {"SysProcIDMap.Size", Field, 4}, - {"Syscall", Func, 0}, - {"Syscall12", Func, 0}, - {"Syscall15", Func, 0}, - {"Syscall18", Func, 12}, - {"Syscall6", Func, 0}, - {"Syscall9", Func, 0}, - {"SyscallN", Func, 18}, - {"Sysctl", Func, 0}, - {"SysctlUint32", Func, 0}, - {"Sysctlnode", Type, 2}, - {"Sysctlnode.Flags", Field, 2}, - {"Sysctlnode.Name", Field, 2}, - {"Sysctlnode.Num", Field, 2}, - {"Sysctlnode.Un", Field, 2}, - {"Sysctlnode.Ver", Field, 2}, - {"Sysctlnode.X__rsvd", Field, 2}, - {"Sysctlnode.X_sysctl_desc", Field, 2}, - {"Sysctlnode.X_sysctl_func", Field, 2}, - {"Sysctlnode.X_sysctl_parent", Field, 2}, - {"Sysctlnode.X_sysctl_size", Field, 2}, - {"Sysinfo", Func, 0}, - {"Sysinfo_t", Type, 0}, - {"Sysinfo_t.Bufferram", Field, 0}, - {"Sysinfo_t.Freehigh", Field, 0}, - {"Sysinfo_t.Freeram", Field, 0}, - {"Sysinfo_t.Freeswap", Field, 0}, - {"Sysinfo_t.Loads", Field, 0}, - {"Sysinfo_t.Pad", Field, 0}, - {"Sysinfo_t.Pad_cgo_0", Field, 0}, - {"Sysinfo_t.Pad_cgo_1", Field, 0}, - {"Sysinfo_t.Procs", Field, 0}, - {"Sysinfo_t.Sharedram", Field, 0}, - {"Sysinfo_t.Totalhigh", Field, 0}, - {"Sysinfo_t.Totalram", Field, 0}, - {"Sysinfo_t.Totalswap", Field, 0}, - {"Sysinfo_t.Unit", Field, 0}, - {"Sysinfo_t.Uptime", Field, 0}, - {"Sysinfo_t.X_f", Field, 0}, - {"Systemtime", Type, 0}, - {"Systemtime.Day", Field, 0}, - {"Systemtime.DayOfWeek", Field, 0}, - {"Systemtime.Hour", Field, 0}, - {"Systemtime.Milliseconds", Field, 0}, - {"Systemtime.Minute", Field, 0}, - {"Systemtime.Month", Field, 0}, - {"Systemtime.Second", Field, 0}, - {"Systemtime.Year", Field, 0}, - {"TCGETS", Const, 0}, - {"TCIFLUSH", Const, 1}, - {"TCIOFLUSH", Const, 1}, - {"TCOFLUSH", Const, 1}, - {"TCPInfo", Type, 1}, - {"TCPInfo.Advmss", Field, 1}, - {"TCPInfo.Ato", Field, 1}, - {"TCPInfo.Backoff", Field, 1}, - {"TCPInfo.Ca_state", Field, 1}, - {"TCPInfo.Fackets", Field, 1}, - {"TCPInfo.Last_ack_recv", Field, 1}, - {"TCPInfo.Last_ack_sent", Field, 1}, - {"TCPInfo.Last_data_recv", Field, 1}, - {"TCPInfo.Last_data_sent", Field, 1}, - {"TCPInfo.Lost", Field, 1}, - {"TCPInfo.Options", Field, 1}, - {"TCPInfo.Pad_cgo_0", Field, 1}, - {"TCPInfo.Pmtu", Field, 1}, - {"TCPInfo.Probes", Field, 1}, - {"TCPInfo.Rcv_mss", Field, 1}, - {"TCPInfo.Rcv_rtt", Field, 1}, - {"TCPInfo.Rcv_space", Field, 1}, - {"TCPInfo.Rcv_ssthresh", Field, 1}, - {"TCPInfo.Reordering", Field, 1}, - {"TCPInfo.Retrans", Field, 1}, - {"TCPInfo.Retransmits", Field, 1}, - {"TCPInfo.Rto", Field, 1}, - {"TCPInfo.Rtt", Field, 1}, - {"TCPInfo.Rttvar", Field, 1}, - {"TCPInfo.Sacked", Field, 1}, - {"TCPInfo.Snd_cwnd", Field, 1}, - {"TCPInfo.Snd_mss", Field, 1}, - {"TCPInfo.Snd_ssthresh", Field, 1}, - {"TCPInfo.State", Field, 1}, - {"TCPInfo.Total_retrans", Field, 1}, - {"TCPInfo.Unacked", Field, 1}, - {"TCPKeepalive", Type, 3}, - {"TCPKeepalive.Interval", Field, 3}, - {"TCPKeepalive.OnOff", Field, 3}, - {"TCPKeepalive.Time", Field, 3}, - {"TCP_CA_NAME_MAX", Const, 0}, - {"TCP_CONGCTL", Const, 1}, - {"TCP_CONGESTION", Const, 0}, - {"TCP_CONNECTIONTIMEOUT", Const, 0}, - {"TCP_CORK", Const, 0}, - {"TCP_DEFER_ACCEPT", Const, 0}, - {"TCP_ENABLE_ECN", Const, 16}, - {"TCP_INFO", Const, 0}, - {"TCP_KEEPALIVE", Const, 0}, - {"TCP_KEEPCNT", Const, 0}, - {"TCP_KEEPIDLE", Const, 0}, - {"TCP_KEEPINIT", Const, 1}, - {"TCP_KEEPINTVL", Const, 0}, - {"TCP_LINGER2", Const, 0}, - {"TCP_MAXBURST", Const, 0}, - {"TCP_MAXHLEN", Const, 0}, - {"TCP_MAXOLEN", Const, 0}, - {"TCP_MAXSEG", Const, 0}, - {"TCP_MAXWIN", Const, 0}, - {"TCP_MAX_SACK", Const, 0}, - {"TCP_MAX_WINSHIFT", Const, 0}, - {"TCP_MD5SIG", Const, 0}, - {"TCP_MD5SIG_MAXKEYLEN", Const, 0}, - {"TCP_MINMSS", Const, 0}, - {"TCP_MINMSSOVERLOAD", Const, 0}, - {"TCP_MSS", Const, 0}, - {"TCP_NODELAY", Const, 0}, - {"TCP_NOOPT", Const, 0}, - {"TCP_NOPUSH", Const, 0}, - {"TCP_NOTSENT_LOWAT", Const, 16}, - {"TCP_NSTATES", Const, 1}, - {"TCP_QUICKACK", Const, 0}, - {"TCP_RXT_CONNDROPTIME", Const, 0}, - {"TCP_RXT_FINDROP", Const, 0}, - {"TCP_SACK_ENABLE", Const, 1}, - {"TCP_SENDMOREACKS", Const, 16}, - {"TCP_SYNCNT", Const, 0}, - {"TCP_VENDOR", Const, 3}, - {"TCP_WINDOW_CLAMP", Const, 0}, - {"TCSAFLUSH", Const, 1}, - {"TCSETS", Const, 0}, - {"TF_DISCONNECT", Const, 0}, - {"TF_REUSE_SOCKET", Const, 0}, - {"TF_USE_DEFAULT_WORKER", Const, 0}, - {"TF_USE_KERNEL_APC", Const, 0}, - {"TF_USE_SYSTEM_THREAD", Const, 0}, - {"TF_WRITE_BEHIND", Const, 0}, - {"TH32CS_INHERIT", Const, 4}, - {"TH32CS_SNAPALL", Const, 4}, - {"TH32CS_SNAPHEAPLIST", Const, 4}, - {"TH32CS_SNAPMODULE", Const, 4}, - {"TH32CS_SNAPMODULE32", Const, 4}, - {"TH32CS_SNAPPROCESS", Const, 4}, - {"TH32CS_SNAPTHREAD", Const, 4}, - {"TIME_ZONE_ID_DAYLIGHT", Const, 0}, - {"TIME_ZONE_ID_STANDARD", Const, 0}, - {"TIME_ZONE_ID_UNKNOWN", Const, 0}, - {"TIOCCBRK", Const, 0}, - {"TIOCCDTR", Const, 0}, - {"TIOCCONS", Const, 0}, - {"TIOCDCDTIMESTAMP", Const, 0}, - {"TIOCDRAIN", Const, 0}, - {"TIOCDSIMICROCODE", Const, 0}, - {"TIOCEXCL", Const, 0}, - {"TIOCEXT", Const, 0}, - {"TIOCFLAG_CDTRCTS", Const, 1}, - {"TIOCFLAG_CLOCAL", Const, 1}, - {"TIOCFLAG_CRTSCTS", Const, 1}, - {"TIOCFLAG_MDMBUF", Const, 1}, - {"TIOCFLAG_PPS", Const, 1}, - {"TIOCFLAG_SOFTCAR", Const, 1}, - {"TIOCFLUSH", Const, 0}, - {"TIOCGDEV", Const, 0}, - {"TIOCGDRAINWAIT", Const, 0}, - {"TIOCGETA", Const, 0}, - {"TIOCGETD", Const, 0}, - {"TIOCGFLAGS", Const, 1}, - {"TIOCGICOUNT", Const, 0}, - {"TIOCGLCKTRMIOS", Const, 0}, - {"TIOCGLINED", Const, 1}, - {"TIOCGPGRP", Const, 0}, - {"TIOCGPTN", Const, 0}, - {"TIOCGQSIZE", Const, 1}, - {"TIOCGRANTPT", Const, 1}, - {"TIOCGRS485", Const, 0}, - {"TIOCGSERIAL", Const, 0}, - {"TIOCGSID", Const, 0}, - {"TIOCGSIZE", Const, 1}, - {"TIOCGSOFTCAR", Const, 0}, - {"TIOCGTSTAMP", Const, 1}, - {"TIOCGWINSZ", Const, 0}, - {"TIOCINQ", Const, 0}, - {"TIOCIXOFF", Const, 0}, - {"TIOCIXON", Const, 0}, - {"TIOCLINUX", Const, 0}, - {"TIOCMBIC", Const, 0}, - {"TIOCMBIS", Const, 0}, - {"TIOCMGDTRWAIT", Const, 0}, - {"TIOCMGET", Const, 0}, - {"TIOCMIWAIT", Const, 0}, - {"TIOCMODG", Const, 0}, - {"TIOCMODS", Const, 0}, - {"TIOCMSDTRWAIT", Const, 0}, - {"TIOCMSET", Const, 0}, - {"TIOCM_CAR", Const, 0}, - {"TIOCM_CD", Const, 0}, - {"TIOCM_CTS", Const, 0}, - {"TIOCM_DCD", Const, 0}, - {"TIOCM_DSR", Const, 0}, - {"TIOCM_DTR", Const, 0}, - {"TIOCM_LE", Const, 0}, - {"TIOCM_RI", Const, 0}, - {"TIOCM_RNG", Const, 0}, - {"TIOCM_RTS", Const, 0}, - {"TIOCM_SR", Const, 0}, - {"TIOCM_ST", Const, 0}, - {"TIOCNOTTY", Const, 0}, - {"TIOCNXCL", Const, 0}, - {"TIOCOUTQ", Const, 0}, - {"TIOCPKT", Const, 0}, - {"TIOCPKT_DATA", Const, 0}, - {"TIOCPKT_DOSTOP", Const, 0}, - {"TIOCPKT_FLUSHREAD", Const, 0}, - {"TIOCPKT_FLUSHWRITE", Const, 0}, - {"TIOCPKT_IOCTL", Const, 0}, - {"TIOCPKT_NOSTOP", Const, 0}, - {"TIOCPKT_START", Const, 0}, - {"TIOCPKT_STOP", Const, 0}, - {"TIOCPTMASTER", Const, 0}, - {"TIOCPTMGET", Const, 1}, - {"TIOCPTSNAME", Const, 1}, - {"TIOCPTYGNAME", Const, 0}, - {"TIOCPTYGRANT", Const, 0}, - {"TIOCPTYUNLK", Const, 0}, - {"TIOCRCVFRAME", Const, 1}, - {"TIOCREMOTE", Const, 0}, - {"TIOCSBRK", Const, 0}, - {"TIOCSCONS", Const, 0}, - {"TIOCSCTTY", Const, 0}, - {"TIOCSDRAINWAIT", Const, 0}, - {"TIOCSDTR", Const, 0}, - {"TIOCSERCONFIG", Const, 0}, - {"TIOCSERGETLSR", Const, 0}, - {"TIOCSERGETMULTI", Const, 0}, - {"TIOCSERGSTRUCT", Const, 0}, - {"TIOCSERGWILD", Const, 0}, - {"TIOCSERSETMULTI", Const, 0}, - {"TIOCSERSWILD", Const, 0}, - {"TIOCSER_TEMT", Const, 0}, - {"TIOCSETA", Const, 0}, - {"TIOCSETAF", Const, 0}, - {"TIOCSETAW", Const, 0}, - {"TIOCSETD", Const, 0}, - {"TIOCSFLAGS", Const, 1}, - {"TIOCSIG", Const, 0}, - {"TIOCSLCKTRMIOS", Const, 0}, - {"TIOCSLINED", Const, 1}, - {"TIOCSPGRP", Const, 0}, - {"TIOCSPTLCK", Const, 0}, - {"TIOCSQSIZE", Const, 1}, - {"TIOCSRS485", Const, 0}, - {"TIOCSSERIAL", Const, 0}, - {"TIOCSSIZE", Const, 1}, - {"TIOCSSOFTCAR", Const, 0}, - {"TIOCSTART", Const, 0}, - {"TIOCSTAT", Const, 0}, - {"TIOCSTI", Const, 0}, - {"TIOCSTOP", Const, 0}, - {"TIOCSTSTAMP", Const, 1}, - {"TIOCSWINSZ", Const, 0}, - {"TIOCTIMESTAMP", Const, 0}, - {"TIOCUCNTL", Const, 0}, - {"TIOCVHANGUP", Const, 0}, - {"TIOCXMTFRAME", Const, 1}, - {"TOKEN_ADJUST_DEFAULT", Const, 0}, - {"TOKEN_ADJUST_GROUPS", Const, 0}, - {"TOKEN_ADJUST_PRIVILEGES", Const, 0}, - {"TOKEN_ADJUST_SESSIONID", Const, 11}, - {"TOKEN_ALL_ACCESS", Const, 0}, - {"TOKEN_ASSIGN_PRIMARY", Const, 0}, - {"TOKEN_DUPLICATE", Const, 0}, - {"TOKEN_EXECUTE", Const, 0}, - {"TOKEN_IMPERSONATE", Const, 0}, - {"TOKEN_QUERY", Const, 0}, - {"TOKEN_QUERY_SOURCE", Const, 0}, - {"TOKEN_READ", Const, 0}, - {"TOKEN_WRITE", Const, 0}, - {"TOSTOP", Const, 0}, - {"TRUNCATE_EXISTING", Const, 0}, - {"TUNATTACHFILTER", Const, 0}, - {"TUNDETACHFILTER", Const, 0}, - {"TUNGETFEATURES", Const, 0}, - {"TUNGETIFF", Const, 0}, - {"TUNGETSNDBUF", Const, 0}, - {"TUNGETVNETHDRSZ", Const, 0}, - {"TUNSETDEBUG", Const, 0}, - {"TUNSETGROUP", Const, 0}, - {"TUNSETIFF", Const, 0}, - {"TUNSETLINK", Const, 0}, - {"TUNSETNOCSUM", Const, 0}, - {"TUNSETOFFLOAD", Const, 0}, - {"TUNSETOWNER", Const, 0}, - {"TUNSETPERSIST", Const, 0}, - {"TUNSETSNDBUF", Const, 0}, - {"TUNSETTXFILTER", Const, 0}, - {"TUNSETVNETHDRSZ", Const, 0}, - {"Tee", Func, 0}, - {"TerminateProcess", Func, 0}, - {"Termios", Type, 0}, - {"Termios.Cc", Field, 0}, - {"Termios.Cflag", Field, 0}, - {"Termios.Iflag", Field, 0}, - {"Termios.Ispeed", Field, 0}, - {"Termios.Lflag", Field, 0}, - {"Termios.Line", Field, 0}, - {"Termios.Oflag", Field, 0}, - {"Termios.Ospeed", Field, 0}, - {"Termios.Pad_cgo_0", Field, 0}, - {"Tgkill", Func, 0}, - {"Time", Func, 0}, - {"Time_t", Type, 0}, - {"Times", Func, 0}, - {"Timespec", Type, 0}, - {"Timespec.Nsec", Field, 0}, - {"Timespec.Pad_cgo_0", Field, 2}, - {"Timespec.Sec", Field, 0}, - {"TimespecToNsec", Func, 0}, - {"Timeval", Type, 0}, - {"Timeval.Pad_cgo_0", Field, 0}, - {"Timeval.Sec", Field, 0}, - {"Timeval.Usec", Field, 0}, - {"Timeval32", Type, 0}, - {"Timeval32.Sec", Field, 0}, - {"Timeval32.Usec", Field, 0}, - {"TimevalToNsec", Func, 0}, - {"Timex", Type, 0}, - {"Timex.Calcnt", Field, 0}, - {"Timex.Constant", Field, 0}, - {"Timex.Errcnt", Field, 0}, - {"Timex.Esterror", Field, 0}, - {"Timex.Freq", Field, 0}, - {"Timex.Jitcnt", Field, 0}, - {"Timex.Jitter", Field, 0}, - {"Timex.Maxerror", Field, 0}, - {"Timex.Modes", Field, 0}, - {"Timex.Offset", Field, 0}, - {"Timex.Pad_cgo_0", Field, 0}, - {"Timex.Pad_cgo_1", Field, 0}, - {"Timex.Pad_cgo_2", Field, 0}, - {"Timex.Pad_cgo_3", Field, 0}, - {"Timex.Ppsfreq", Field, 0}, - {"Timex.Precision", Field, 0}, - {"Timex.Shift", Field, 0}, - {"Timex.Stabil", Field, 0}, - {"Timex.Status", Field, 0}, - {"Timex.Stbcnt", Field, 0}, - {"Timex.Tai", Field, 0}, - {"Timex.Tick", Field, 0}, - {"Timex.Time", Field, 0}, - {"Timex.Tolerance", Field, 0}, - {"Timezoneinformation", Type, 0}, - {"Timezoneinformation.Bias", Field, 0}, - {"Timezoneinformation.DaylightBias", Field, 0}, - {"Timezoneinformation.DaylightDate", Field, 0}, - {"Timezoneinformation.DaylightName", Field, 0}, - {"Timezoneinformation.StandardBias", Field, 0}, - {"Timezoneinformation.StandardDate", Field, 0}, - {"Timezoneinformation.StandardName", Field, 0}, - {"Tms", Type, 0}, - {"Tms.Cstime", Field, 0}, - {"Tms.Cutime", Field, 0}, - {"Tms.Stime", Field, 0}, - {"Tms.Utime", Field, 0}, - {"Token", Type, 0}, - {"TokenAccessInformation", Const, 0}, - {"TokenAuditPolicy", Const, 0}, - {"TokenDefaultDacl", Const, 0}, - {"TokenElevation", Const, 0}, - {"TokenElevationType", Const, 0}, - {"TokenGroups", Const, 0}, - {"TokenGroupsAndPrivileges", Const, 0}, - {"TokenHasRestrictions", Const, 0}, - {"TokenImpersonationLevel", Const, 0}, - {"TokenIntegrityLevel", Const, 0}, - {"TokenLinkedToken", Const, 0}, - {"TokenLogonSid", Const, 0}, - {"TokenMandatoryPolicy", Const, 0}, - {"TokenOrigin", Const, 0}, - {"TokenOwner", Const, 0}, - {"TokenPrimaryGroup", Const, 0}, - {"TokenPrivileges", Const, 0}, - {"TokenRestrictedSids", Const, 0}, - {"TokenSandBoxInert", Const, 0}, - {"TokenSessionId", Const, 0}, - {"TokenSessionReference", Const, 0}, - {"TokenSource", Const, 0}, - {"TokenStatistics", Const, 0}, - {"TokenType", Const, 0}, - {"TokenUIAccess", Const, 0}, - {"TokenUser", Const, 0}, - {"TokenVirtualizationAllowed", Const, 0}, - {"TokenVirtualizationEnabled", Const, 0}, - {"Tokenprimarygroup", Type, 0}, - {"Tokenprimarygroup.PrimaryGroup", Field, 0}, - {"Tokenuser", Type, 0}, - {"Tokenuser.User", Field, 0}, - {"TranslateAccountName", Func, 0}, - {"TranslateName", Func, 0}, - {"TransmitFile", Func, 0}, - {"TransmitFileBuffers", Type, 0}, - {"TransmitFileBuffers.Head", Field, 0}, - {"TransmitFileBuffers.HeadLength", Field, 0}, - {"TransmitFileBuffers.Tail", Field, 0}, - {"TransmitFileBuffers.TailLength", Field, 0}, - {"Truncate", Func, 0}, - {"UNIX_PATH_MAX", Const, 12}, - {"USAGE_MATCH_TYPE_AND", Const, 0}, - {"USAGE_MATCH_TYPE_OR", Const, 0}, - {"UTF16FromString", Func, 1}, - {"UTF16PtrFromString", Func, 1}, - {"UTF16ToString", Func, 0}, - {"Ucred", Type, 0}, - {"Ucred.Gid", Field, 0}, - {"Ucred.Pid", Field, 0}, - {"Ucred.Uid", Field, 0}, - {"Umask", Func, 0}, - {"Uname", Func, 0}, - {"Undelete", Func, 0}, - {"UnixCredentials", Func, 0}, - {"UnixRights", Func, 0}, - {"Unlink", Func, 0}, - {"Unlinkat", Func, 0}, - {"UnmapViewOfFile", Func, 0}, - {"Unmount", Func, 0}, - {"Unsetenv", Func, 4}, - {"Unshare", Func, 0}, - {"UserInfo10", Type, 0}, - {"UserInfo10.Comment", Field, 0}, - {"UserInfo10.FullName", Field, 0}, - {"UserInfo10.Name", Field, 0}, - {"UserInfo10.UsrComment", Field, 0}, - {"Ustat", Func, 0}, - {"Ustat_t", Type, 0}, - {"Ustat_t.Fname", Field, 0}, - {"Ustat_t.Fpack", Field, 0}, - {"Ustat_t.Pad_cgo_0", Field, 0}, - {"Ustat_t.Pad_cgo_1", Field, 0}, - {"Ustat_t.Tfree", Field, 0}, - {"Ustat_t.Tinode", Field, 0}, - {"Utimbuf", Type, 0}, - {"Utimbuf.Actime", Field, 0}, - {"Utimbuf.Modtime", Field, 0}, - {"Utime", Func, 0}, - {"Utimes", Func, 0}, - {"UtimesNano", Func, 1}, - {"Utsname", Type, 0}, - {"Utsname.Domainname", Field, 0}, - {"Utsname.Machine", Field, 0}, - {"Utsname.Nodename", Field, 0}, - {"Utsname.Release", Field, 0}, - {"Utsname.Sysname", Field, 0}, - {"Utsname.Version", Field, 0}, - {"VDISCARD", Const, 0}, - {"VDSUSP", Const, 1}, - {"VEOF", Const, 0}, - {"VEOL", Const, 0}, - {"VEOL2", Const, 0}, - {"VERASE", Const, 0}, - {"VERASE2", Const, 1}, - {"VINTR", Const, 0}, - {"VKILL", Const, 0}, - {"VLNEXT", Const, 0}, - {"VMIN", Const, 0}, - {"VQUIT", Const, 0}, - {"VREPRINT", Const, 0}, - {"VSTART", Const, 0}, - {"VSTATUS", Const, 1}, - {"VSTOP", Const, 0}, - {"VSUSP", Const, 0}, - {"VSWTC", Const, 0}, - {"VT0", Const, 1}, - {"VT1", Const, 1}, - {"VTDLY", Const, 1}, - {"VTIME", Const, 0}, - {"VWERASE", Const, 0}, - {"VirtualLock", Func, 0}, - {"VirtualUnlock", Func, 0}, - {"WAIT_ABANDONED", Const, 0}, - {"WAIT_FAILED", Const, 0}, - {"WAIT_OBJECT_0", Const, 0}, - {"WAIT_TIMEOUT", Const, 0}, - {"WALL", Const, 0}, - {"WALLSIG", Const, 1}, - {"WALTSIG", Const, 1}, - {"WCLONE", Const, 0}, - {"WCONTINUED", Const, 0}, - {"WCOREFLAG", Const, 0}, - {"WEXITED", Const, 0}, - {"WLINUXCLONE", Const, 0}, - {"WNOHANG", Const, 0}, - {"WNOTHREAD", Const, 0}, - {"WNOWAIT", Const, 0}, - {"WNOZOMBIE", Const, 1}, - {"WOPTSCHECKED", Const, 1}, - {"WORDSIZE", Const, 0}, - {"WSABuf", Type, 0}, - {"WSABuf.Buf", Field, 0}, - {"WSABuf.Len", Field, 0}, - {"WSACleanup", Func, 0}, - {"WSADESCRIPTION_LEN", Const, 0}, - {"WSAData", Type, 0}, - {"WSAData.Description", Field, 0}, - {"WSAData.HighVersion", Field, 0}, - {"WSAData.MaxSockets", Field, 0}, - {"WSAData.MaxUdpDg", Field, 0}, - {"WSAData.SystemStatus", Field, 0}, - {"WSAData.VendorInfo", Field, 0}, - {"WSAData.Version", Field, 0}, - {"WSAEACCES", Const, 2}, - {"WSAECONNABORTED", Const, 9}, - {"WSAECONNRESET", Const, 3}, - {"WSAENOPROTOOPT", Const, 23}, - {"WSAEnumProtocols", Func, 2}, - {"WSAID_CONNECTEX", Var, 1}, - {"WSAIoctl", Func, 0}, - {"WSAPROTOCOL_LEN", Const, 2}, - {"WSAProtocolChain", Type, 2}, - {"WSAProtocolChain.ChainEntries", Field, 2}, - {"WSAProtocolChain.ChainLen", Field, 2}, - {"WSAProtocolInfo", Type, 2}, - {"WSAProtocolInfo.AddressFamily", Field, 2}, - {"WSAProtocolInfo.CatalogEntryId", Field, 2}, - {"WSAProtocolInfo.MaxSockAddr", Field, 2}, - {"WSAProtocolInfo.MessageSize", Field, 2}, - {"WSAProtocolInfo.MinSockAddr", Field, 2}, - {"WSAProtocolInfo.NetworkByteOrder", Field, 2}, - {"WSAProtocolInfo.Protocol", Field, 2}, - {"WSAProtocolInfo.ProtocolChain", Field, 2}, - {"WSAProtocolInfo.ProtocolMaxOffset", Field, 2}, - {"WSAProtocolInfo.ProtocolName", Field, 2}, - {"WSAProtocolInfo.ProviderFlags", Field, 2}, - {"WSAProtocolInfo.ProviderId", Field, 2}, - {"WSAProtocolInfo.ProviderReserved", Field, 2}, - {"WSAProtocolInfo.SecurityScheme", Field, 2}, - {"WSAProtocolInfo.ServiceFlags1", Field, 2}, - {"WSAProtocolInfo.ServiceFlags2", Field, 2}, - {"WSAProtocolInfo.ServiceFlags3", Field, 2}, - {"WSAProtocolInfo.ServiceFlags4", Field, 2}, - {"WSAProtocolInfo.SocketType", Field, 2}, - {"WSAProtocolInfo.Version", Field, 2}, - {"WSARecv", Func, 0}, - {"WSARecvFrom", Func, 0}, - {"WSASYS_STATUS_LEN", Const, 0}, - {"WSASend", Func, 0}, - {"WSASendTo", Func, 0}, - {"WSASendto", Func, 0}, - {"WSAStartup", Func, 0}, - {"WSTOPPED", Const, 0}, - {"WTRAPPED", Const, 1}, - {"WUNTRACED", Const, 0}, - {"Wait4", Func, 0}, - {"WaitForSingleObject", Func, 0}, - {"WaitStatus", Type, 0}, - {"WaitStatus.ExitCode", Field, 0}, - {"Win32FileAttributeData", Type, 0}, - {"Win32FileAttributeData.CreationTime", Field, 0}, - {"Win32FileAttributeData.FileAttributes", Field, 0}, - {"Win32FileAttributeData.FileSizeHigh", Field, 0}, - {"Win32FileAttributeData.FileSizeLow", Field, 0}, - {"Win32FileAttributeData.LastAccessTime", Field, 0}, - {"Win32FileAttributeData.LastWriteTime", Field, 0}, - {"Win32finddata", Type, 0}, - {"Win32finddata.AlternateFileName", Field, 0}, - {"Win32finddata.CreationTime", Field, 0}, - {"Win32finddata.FileAttributes", Field, 0}, - {"Win32finddata.FileName", Field, 0}, - {"Win32finddata.FileSizeHigh", Field, 0}, - {"Win32finddata.FileSizeLow", Field, 0}, - {"Win32finddata.LastAccessTime", Field, 0}, - {"Win32finddata.LastWriteTime", Field, 0}, - {"Win32finddata.Reserved0", Field, 0}, - {"Win32finddata.Reserved1", Field, 0}, - {"Write", Func, 0}, - {"WriteConsole", Func, 1}, - {"WriteFile", Func, 0}, - {"X509_ASN_ENCODING", Const, 0}, - {"XCASE", Const, 0}, - {"XP1_CONNECTIONLESS", Const, 2}, - {"XP1_CONNECT_DATA", Const, 2}, - {"XP1_DISCONNECT_DATA", Const, 2}, - {"XP1_EXPEDITED_DATA", Const, 2}, - {"XP1_GRACEFUL_CLOSE", Const, 2}, - {"XP1_GUARANTEED_DELIVERY", Const, 2}, - {"XP1_GUARANTEED_ORDER", Const, 2}, - {"XP1_IFS_HANDLES", Const, 2}, - {"XP1_MESSAGE_ORIENTED", Const, 2}, - {"XP1_MULTIPOINT_CONTROL_PLANE", Const, 2}, - {"XP1_MULTIPOINT_DATA_PLANE", Const, 2}, - {"XP1_PARTIAL_MESSAGE", Const, 2}, - {"XP1_PSEUDO_STREAM", Const, 2}, - {"XP1_QOS_SUPPORTED", Const, 2}, - {"XP1_SAN_SUPPORT_SDP", Const, 2}, - {"XP1_SUPPORT_BROADCAST", Const, 2}, - {"XP1_SUPPORT_MULTIPOINT", Const, 2}, - {"XP1_UNI_RECV", Const, 2}, - {"XP1_UNI_SEND", Const, 2}, - }, - "syscall/js": { - {"CopyBytesToGo", Func, 0}, - {"CopyBytesToJS", Func, 0}, - {"Error", Type, 0}, - {"Func", Type, 0}, - {"FuncOf", Func, 0}, - {"Global", Func, 0}, - {"Null", Func, 0}, - {"Type", Type, 0}, - {"TypeBoolean", Const, 0}, - {"TypeFunction", Const, 0}, - {"TypeNull", Const, 0}, - {"TypeNumber", Const, 0}, - {"TypeObject", Const, 0}, - {"TypeString", Const, 0}, - {"TypeSymbol", Const, 0}, - {"TypeUndefined", Const, 0}, - {"Undefined", Func, 0}, - {"Value", Type, 0}, - {"ValueError", Type, 0}, - {"ValueOf", Func, 0}, - }, - "testing": { - {"(*B).Chdir", Method, 24}, - {"(*B).Cleanup", Method, 14}, - {"(*B).Context", Method, 24}, - {"(*B).Elapsed", Method, 20}, - {"(*B).Error", Method, 0}, - {"(*B).Errorf", Method, 0}, - {"(*B).Fail", Method, 0}, - {"(*B).FailNow", Method, 0}, - {"(*B).Failed", Method, 0}, - {"(*B).Fatal", Method, 0}, - {"(*B).Fatalf", Method, 0}, - {"(*B).Helper", Method, 9}, - {"(*B).Log", Method, 0}, - {"(*B).Logf", Method, 0}, - {"(*B).Loop", Method, 24}, - {"(*B).Name", Method, 8}, - {"(*B).ReportAllocs", Method, 1}, - {"(*B).ReportMetric", Method, 13}, - {"(*B).ResetTimer", Method, 0}, - {"(*B).Run", Method, 7}, - {"(*B).RunParallel", Method, 3}, - {"(*B).SetBytes", Method, 0}, - {"(*B).SetParallelism", Method, 3}, - {"(*B).Setenv", Method, 17}, - {"(*B).Skip", Method, 1}, - {"(*B).SkipNow", Method, 1}, - {"(*B).Skipf", Method, 1}, - {"(*B).Skipped", Method, 1}, - {"(*B).StartTimer", Method, 0}, - {"(*B).StopTimer", Method, 0}, - {"(*B).TempDir", Method, 15}, - {"(*F).Add", Method, 18}, - {"(*F).Chdir", Method, 24}, - {"(*F).Cleanup", Method, 18}, - {"(*F).Context", Method, 24}, - {"(*F).Error", Method, 18}, - {"(*F).Errorf", Method, 18}, - {"(*F).Fail", Method, 18}, - {"(*F).FailNow", Method, 18}, - {"(*F).Failed", Method, 18}, - {"(*F).Fatal", Method, 18}, - {"(*F).Fatalf", Method, 18}, - {"(*F).Fuzz", Method, 18}, - {"(*F).Helper", Method, 18}, - {"(*F).Log", Method, 18}, - {"(*F).Logf", Method, 18}, - {"(*F).Name", Method, 18}, - {"(*F).Setenv", Method, 18}, - {"(*F).Skip", Method, 18}, - {"(*F).SkipNow", Method, 18}, - {"(*F).Skipf", Method, 18}, - {"(*F).Skipped", Method, 18}, - {"(*F).TempDir", Method, 18}, - {"(*M).Run", Method, 4}, - {"(*PB).Next", Method, 3}, - {"(*T).Chdir", Method, 24}, - {"(*T).Cleanup", Method, 14}, - {"(*T).Context", Method, 24}, - {"(*T).Deadline", Method, 15}, - {"(*T).Error", Method, 0}, - {"(*T).Errorf", Method, 0}, - {"(*T).Fail", Method, 0}, - {"(*T).FailNow", Method, 0}, - {"(*T).Failed", Method, 0}, - {"(*T).Fatal", Method, 0}, - {"(*T).Fatalf", Method, 0}, - {"(*T).Helper", Method, 9}, - {"(*T).Log", Method, 0}, - {"(*T).Logf", Method, 0}, - {"(*T).Name", Method, 8}, - {"(*T).Parallel", Method, 0}, - {"(*T).Run", Method, 7}, - {"(*T).Setenv", Method, 17}, - {"(*T).Skip", Method, 1}, - {"(*T).SkipNow", Method, 1}, - {"(*T).Skipf", Method, 1}, - {"(*T).Skipped", Method, 1}, - {"(*T).TempDir", Method, 15}, - {"(BenchmarkResult).AllocedBytesPerOp", Method, 1}, - {"(BenchmarkResult).AllocsPerOp", Method, 1}, - {"(BenchmarkResult).MemString", Method, 1}, - {"(BenchmarkResult).NsPerOp", Method, 0}, - {"(BenchmarkResult).String", Method, 0}, - {"AllocsPerRun", Func, 1}, - {"B", Type, 0}, - {"B.N", Field, 0}, - {"Benchmark", Func, 0}, - {"BenchmarkResult", Type, 0}, - {"BenchmarkResult.Bytes", Field, 0}, - {"BenchmarkResult.Extra", Field, 13}, - {"BenchmarkResult.MemAllocs", Field, 1}, - {"BenchmarkResult.MemBytes", Field, 1}, - {"BenchmarkResult.N", Field, 0}, - {"BenchmarkResult.T", Field, 0}, - {"Cover", Type, 2}, - {"Cover.Blocks", Field, 2}, - {"Cover.Counters", Field, 2}, - {"Cover.CoveredPackages", Field, 2}, - {"Cover.Mode", Field, 2}, - {"CoverBlock", Type, 2}, - {"CoverBlock.Col0", Field, 2}, - {"CoverBlock.Col1", Field, 2}, - {"CoverBlock.Line0", Field, 2}, - {"CoverBlock.Line1", Field, 2}, - {"CoverBlock.Stmts", Field, 2}, - {"CoverMode", Func, 8}, - {"Coverage", Func, 4}, - {"F", Type, 18}, - {"Init", Func, 13}, - {"InternalBenchmark", Type, 0}, - {"InternalBenchmark.F", Field, 0}, - {"InternalBenchmark.Name", Field, 0}, - {"InternalExample", Type, 0}, - {"InternalExample.F", Field, 0}, - {"InternalExample.Name", Field, 0}, - {"InternalExample.Output", Field, 0}, - {"InternalExample.Unordered", Field, 7}, - {"InternalFuzzTarget", Type, 18}, - {"InternalFuzzTarget.Fn", Field, 18}, - {"InternalFuzzTarget.Name", Field, 18}, - {"InternalTest", Type, 0}, - {"InternalTest.F", Field, 0}, - {"InternalTest.Name", Field, 0}, - {"M", Type, 4}, - {"Main", Func, 0}, - {"MainStart", Func, 4}, - {"PB", Type, 3}, - {"RegisterCover", Func, 2}, - {"RunBenchmarks", Func, 0}, - {"RunExamples", Func, 0}, - {"RunTests", Func, 0}, - {"Short", Func, 0}, - {"T", Type, 0}, - {"TB", Type, 2}, - {"Testing", Func, 21}, - {"Verbose", Func, 1}, - }, - "testing/fstest": { - {"(MapFS).Glob", Method, 16}, - {"(MapFS).Open", Method, 16}, - {"(MapFS).ReadDir", Method, 16}, - {"(MapFS).ReadFile", Method, 16}, - {"(MapFS).Stat", Method, 16}, - {"(MapFS).Sub", Method, 16}, - {"MapFS", Type, 16}, - {"MapFile", Type, 16}, - {"MapFile.Data", Field, 16}, - {"MapFile.ModTime", Field, 16}, - {"MapFile.Mode", Field, 16}, - {"MapFile.Sys", Field, 16}, - {"TestFS", Func, 16}, - }, - "testing/iotest": { - {"DataErrReader", Func, 0}, - {"ErrReader", Func, 16}, - {"ErrTimeout", Var, 0}, - {"HalfReader", Func, 0}, - {"NewReadLogger", Func, 0}, - {"NewWriteLogger", Func, 0}, - {"OneByteReader", Func, 0}, - {"TestReader", Func, 16}, - {"TimeoutReader", Func, 0}, - {"TruncateWriter", Func, 0}, - }, - "testing/quick": { - {"(*CheckEqualError).Error", Method, 0}, - {"(*CheckError).Error", Method, 0}, - {"(SetupError).Error", Method, 0}, - {"Check", Func, 0}, - {"CheckEqual", Func, 0}, - {"CheckEqualError", Type, 0}, - {"CheckEqualError.CheckError", Field, 0}, - {"CheckEqualError.Out1", Field, 0}, - {"CheckEqualError.Out2", Field, 0}, - {"CheckError", Type, 0}, - {"CheckError.Count", Field, 0}, - {"CheckError.In", Field, 0}, - {"Config", Type, 0}, - {"Config.MaxCount", Field, 0}, - {"Config.MaxCountScale", Field, 0}, - {"Config.Rand", Field, 0}, - {"Config.Values", Field, 0}, - {"Generator", Type, 0}, - {"SetupError", Type, 0}, - {"Value", Func, 0}, - }, - "testing/slogtest": { - {"Run", Func, 22}, - {"TestHandler", Func, 21}, - }, - "text/scanner": { - {"(*Position).IsValid", Method, 0}, - {"(*Scanner).Init", Method, 0}, - {"(*Scanner).IsValid", Method, 0}, - {"(*Scanner).Next", Method, 0}, - {"(*Scanner).Peek", Method, 0}, - {"(*Scanner).Pos", Method, 0}, - {"(*Scanner).Scan", Method, 0}, - {"(*Scanner).TokenText", Method, 0}, - {"(Position).String", Method, 0}, - {"(Scanner).String", Method, 0}, - {"Char", Const, 0}, - {"Comment", Const, 0}, - {"EOF", Const, 0}, - {"Float", Const, 0}, - {"GoTokens", Const, 0}, - {"GoWhitespace", Const, 0}, - {"Ident", Const, 0}, - {"Int", Const, 0}, - {"Position", Type, 0}, - {"Position.Column", Field, 0}, - {"Position.Filename", Field, 0}, - {"Position.Line", Field, 0}, - {"Position.Offset", Field, 0}, - {"RawString", Const, 0}, - {"ScanChars", Const, 0}, - {"ScanComments", Const, 0}, - {"ScanFloats", Const, 0}, - {"ScanIdents", Const, 0}, - {"ScanInts", Const, 0}, - {"ScanRawStrings", Const, 0}, - {"ScanStrings", Const, 0}, - {"Scanner", Type, 0}, - {"Scanner.Error", Field, 0}, - {"Scanner.ErrorCount", Field, 0}, - {"Scanner.IsIdentRune", Field, 4}, - {"Scanner.Mode", Field, 0}, - {"Scanner.Position", Field, 0}, - {"Scanner.Whitespace", Field, 0}, - {"SkipComments", Const, 0}, - {"String", Const, 0}, - {"TokenString", Func, 0}, - }, - "text/tabwriter": { - {"(*Writer).Flush", Method, 0}, - {"(*Writer).Init", Method, 0}, - {"(*Writer).Write", Method, 0}, - {"AlignRight", Const, 0}, - {"Debug", Const, 0}, - {"DiscardEmptyColumns", Const, 0}, - {"Escape", Const, 0}, - {"FilterHTML", Const, 0}, - {"NewWriter", Func, 0}, - {"StripEscape", Const, 0}, - {"TabIndent", Const, 0}, - {"Writer", Type, 0}, - }, - "text/template": { - {"(*Template).AddParseTree", Method, 0}, - {"(*Template).Clone", Method, 0}, - {"(*Template).DefinedTemplates", Method, 5}, - {"(*Template).Delims", Method, 0}, - {"(*Template).Execute", Method, 0}, - {"(*Template).ExecuteTemplate", Method, 0}, - {"(*Template).Funcs", Method, 0}, - {"(*Template).Lookup", Method, 0}, - {"(*Template).Name", Method, 0}, - {"(*Template).New", Method, 0}, - {"(*Template).Option", Method, 5}, - {"(*Template).Parse", Method, 0}, - {"(*Template).ParseFS", Method, 16}, - {"(*Template).ParseFiles", Method, 0}, - {"(*Template).ParseGlob", Method, 0}, - {"(*Template).Templates", Method, 0}, - {"(ExecError).Error", Method, 6}, - {"(ExecError).Unwrap", Method, 13}, - {"(Template).Copy", Method, 2}, - {"(Template).ErrorContext", Method, 1}, - {"ExecError", Type, 6}, - {"ExecError.Err", Field, 6}, - {"ExecError.Name", Field, 6}, - {"FuncMap", Type, 0}, - {"HTMLEscape", Func, 0}, - {"HTMLEscapeString", Func, 0}, - {"HTMLEscaper", Func, 0}, - {"IsTrue", Func, 6}, - {"JSEscape", Func, 0}, - {"JSEscapeString", Func, 0}, - {"JSEscaper", Func, 0}, - {"Must", Func, 0}, - {"New", Func, 0}, - {"ParseFS", Func, 16}, - {"ParseFiles", Func, 0}, - {"ParseGlob", Func, 0}, - {"Template", Type, 0}, - {"Template.Tree", Field, 0}, - {"URLQueryEscaper", Func, 0}, - }, - "text/template/parse": { - {"(*ActionNode).Copy", Method, 0}, - {"(*ActionNode).String", Method, 0}, - {"(*BoolNode).Copy", Method, 0}, - {"(*BoolNode).String", Method, 0}, - {"(*BranchNode).Copy", Method, 4}, - {"(*BranchNode).String", Method, 0}, - {"(*BreakNode).Copy", Method, 18}, - {"(*BreakNode).String", Method, 18}, - {"(*ChainNode).Add", Method, 1}, - {"(*ChainNode).Copy", Method, 1}, - {"(*ChainNode).String", Method, 1}, - {"(*CommandNode).Copy", Method, 0}, - {"(*CommandNode).String", Method, 0}, - {"(*CommentNode).Copy", Method, 16}, - {"(*CommentNode).String", Method, 16}, - {"(*ContinueNode).Copy", Method, 18}, - {"(*ContinueNode).String", Method, 18}, - {"(*DotNode).Copy", Method, 0}, - {"(*DotNode).String", Method, 0}, - {"(*DotNode).Type", Method, 0}, - {"(*FieldNode).Copy", Method, 0}, - {"(*FieldNode).String", Method, 0}, - {"(*IdentifierNode).Copy", Method, 0}, - {"(*IdentifierNode).SetPos", Method, 1}, - {"(*IdentifierNode).SetTree", Method, 4}, - {"(*IdentifierNode).String", Method, 0}, - {"(*IfNode).Copy", Method, 0}, - {"(*IfNode).String", Method, 0}, - {"(*ListNode).Copy", Method, 0}, - {"(*ListNode).CopyList", Method, 0}, - {"(*ListNode).String", Method, 0}, - {"(*NilNode).Copy", Method, 1}, - {"(*NilNode).String", Method, 1}, - {"(*NilNode).Type", Method, 1}, - {"(*NumberNode).Copy", Method, 0}, - {"(*NumberNode).String", Method, 0}, - {"(*PipeNode).Copy", Method, 0}, - {"(*PipeNode).CopyPipe", Method, 0}, - {"(*PipeNode).String", Method, 0}, - {"(*RangeNode).Copy", Method, 0}, - {"(*RangeNode).String", Method, 0}, - {"(*StringNode).Copy", Method, 0}, - {"(*StringNode).String", Method, 0}, - {"(*TemplateNode).Copy", Method, 0}, - {"(*TemplateNode).String", Method, 0}, - {"(*TextNode).Copy", Method, 0}, - {"(*TextNode).String", Method, 0}, - {"(*Tree).Copy", Method, 2}, - {"(*Tree).ErrorContext", Method, 1}, - {"(*Tree).Parse", Method, 0}, - {"(*VariableNode).Copy", Method, 0}, - {"(*VariableNode).String", Method, 0}, - {"(*WithNode).Copy", Method, 0}, - {"(*WithNode).String", Method, 0}, - {"(ActionNode).Position", Method, 1}, - {"(ActionNode).Type", Method, 0}, - {"(BoolNode).Position", Method, 1}, - {"(BoolNode).Type", Method, 0}, - {"(BranchNode).Position", Method, 1}, - {"(BranchNode).Type", Method, 0}, - {"(BreakNode).Position", Method, 18}, - {"(BreakNode).Type", Method, 18}, - {"(ChainNode).Position", Method, 1}, - {"(ChainNode).Type", Method, 1}, - {"(CommandNode).Position", Method, 1}, - {"(CommandNode).Type", Method, 0}, - {"(CommentNode).Position", Method, 16}, - {"(CommentNode).Type", Method, 16}, - {"(ContinueNode).Position", Method, 18}, - {"(ContinueNode).Type", Method, 18}, - {"(DotNode).Position", Method, 1}, - {"(FieldNode).Position", Method, 1}, - {"(FieldNode).Type", Method, 0}, - {"(IdentifierNode).Position", Method, 1}, - {"(IdentifierNode).Type", Method, 0}, - {"(IfNode).Position", Method, 1}, - {"(IfNode).Type", Method, 0}, - {"(ListNode).Position", Method, 1}, - {"(ListNode).Type", Method, 0}, - {"(NilNode).Position", Method, 1}, - {"(NodeType).Type", Method, 0}, - {"(NumberNode).Position", Method, 1}, - {"(NumberNode).Type", Method, 0}, - {"(PipeNode).Position", Method, 1}, - {"(PipeNode).Type", Method, 0}, - {"(Pos).Position", Method, 1}, - {"(RangeNode).Position", Method, 1}, - {"(RangeNode).Type", Method, 0}, - {"(StringNode).Position", Method, 1}, - {"(StringNode).Type", Method, 0}, - {"(TemplateNode).Position", Method, 1}, - {"(TemplateNode).Type", Method, 0}, - {"(TextNode).Position", Method, 1}, - {"(TextNode).Type", Method, 0}, - {"(VariableNode).Position", Method, 1}, - {"(VariableNode).Type", Method, 0}, - {"(WithNode).Position", Method, 1}, - {"(WithNode).Type", Method, 0}, - {"ActionNode", Type, 0}, - {"ActionNode.Line", Field, 0}, - {"ActionNode.NodeType", Field, 0}, - {"ActionNode.Pipe", Field, 0}, - {"ActionNode.Pos", Field, 1}, - {"BoolNode", Type, 0}, - {"BoolNode.NodeType", Field, 0}, - {"BoolNode.Pos", Field, 1}, - {"BoolNode.True", Field, 0}, - {"BranchNode", Type, 0}, - {"BranchNode.ElseList", Field, 0}, - {"BranchNode.Line", Field, 0}, - {"BranchNode.List", Field, 0}, - {"BranchNode.NodeType", Field, 0}, - {"BranchNode.Pipe", Field, 0}, - {"BranchNode.Pos", Field, 1}, - {"BreakNode", Type, 18}, - {"BreakNode.Line", Field, 18}, - {"BreakNode.NodeType", Field, 18}, - {"BreakNode.Pos", Field, 18}, - {"ChainNode", Type, 1}, - {"ChainNode.Field", Field, 1}, - {"ChainNode.Node", Field, 1}, - {"ChainNode.NodeType", Field, 1}, - {"ChainNode.Pos", Field, 1}, - {"CommandNode", Type, 0}, - {"CommandNode.Args", Field, 0}, - {"CommandNode.NodeType", Field, 0}, - {"CommandNode.Pos", Field, 1}, - {"CommentNode", Type, 16}, - {"CommentNode.NodeType", Field, 16}, - {"CommentNode.Pos", Field, 16}, - {"CommentNode.Text", Field, 16}, - {"ContinueNode", Type, 18}, - {"ContinueNode.Line", Field, 18}, - {"ContinueNode.NodeType", Field, 18}, - {"ContinueNode.Pos", Field, 18}, - {"DotNode", Type, 0}, - {"DotNode.NodeType", Field, 4}, - {"DotNode.Pos", Field, 1}, - {"FieldNode", Type, 0}, - {"FieldNode.Ident", Field, 0}, - {"FieldNode.NodeType", Field, 0}, - {"FieldNode.Pos", Field, 1}, - {"IdentifierNode", Type, 0}, - {"IdentifierNode.Ident", Field, 0}, - {"IdentifierNode.NodeType", Field, 0}, - {"IdentifierNode.Pos", Field, 1}, - {"IfNode", Type, 0}, - {"IfNode.BranchNode", Field, 0}, - {"IsEmptyTree", Func, 0}, - {"ListNode", Type, 0}, - {"ListNode.NodeType", Field, 0}, - {"ListNode.Nodes", Field, 0}, - {"ListNode.Pos", Field, 1}, - {"Mode", Type, 16}, - {"New", Func, 0}, - {"NewIdentifier", Func, 0}, - {"NilNode", Type, 1}, - {"NilNode.NodeType", Field, 4}, - {"NilNode.Pos", Field, 1}, - {"Node", Type, 0}, - {"NodeAction", Const, 0}, - {"NodeBool", Const, 0}, - {"NodeBreak", Const, 18}, - {"NodeChain", Const, 1}, - {"NodeCommand", Const, 0}, - {"NodeComment", Const, 16}, - {"NodeContinue", Const, 18}, - {"NodeDot", Const, 0}, - {"NodeField", Const, 0}, - {"NodeIdentifier", Const, 0}, - {"NodeIf", Const, 0}, - {"NodeList", Const, 0}, - {"NodeNil", Const, 1}, - {"NodeNumber", Const, 0}, - {"NodePipe", Const, 0}, - {"NodeRange", Const, 0}, - {"NodeString", Const, 0}, - {"NodeTemplate", Const, 0}, - {"NodeText", Const, 0}, - {"NodeType", Type, 0}, - {"NodeVariable", Const, 0}, - {"NodeWith", Const, 0}, - {"NumberNode", Type, 0}, - {"NumberNode.Complex128", Field, 0}, - {"NumberNode.Float64", Field, 0}, - {"NumberNode.Int64", Field, 0}, - {"NumberNode.IsComplex", Field, 0}, - {"NumberNode.IsFloat", Field, 0}, - {"NumberNode.IsInt", Field, 0}, - {"NumberNode.IsUint", Field, 0}, - {"NumberNode.NodeType", Field, 0}, - {"NumberNode.Pos", Field, 1}, - {"NumberNode.Text", Field, 0}, - {"NumberNode.Uint64", Field, 0}, - {"Parse", Func, 0}, - {"ParseComments", Const, 16}, - {"PipeNode", Type, 0}, - {"PipeNode.Cmds", Field, 0}, - {"PipeNode.Decl", Field, 0}, - {"PipeNode.IsAssign", Field, 11}, - {"PipeNode.Line", Field, 0}, - {"PipeNode.NodeType", Field, 0}, - {"PipeNode.Pos", Field, 1}, - {"Pos", Type, 1}, - {"RangeNode", Type, 0}, - {"RangeNode.BranchNode", Field, 0}, - {"SkipFuncCheck", Const, 17}, - {"StringNode", Type, 0}, - {"StringNode.NodeType", Field, 0}, - {"StringNode.Pos", Field, 1}, - {"StringNode.Quoted", Field, 0}, - {"StringNode.Text", Field, 0}, - {"TemplateNode", Type, 0}, - {"TemplateNode.Line", Field, 0}, - {"TemplateNode.Name", Field, 0}, - {"TemplateNode.NodeType", Field, 0}, - {"TemplateNode.Pipe", Field, 0}, - {"TemplateNode.Pos", Field, 1}, - {"TextNode", Type, 0}, - {"TextNode.NodeType", Field, 0}, - {"TextNode.Pos", Field, 1}, - {"TextNode.Text", Field, 0}, - {"Tree", Type, 0}, - {"Tree.Mode", Field, 16}, - {"Tree.Name", Field, 0}, - {"Tree.ParseName", Field, 1}, - {"Tree.Root", Field, 0}, - {"VariableNode", Type, 0}, - {"VariableNode.Ident", Field, 0}, - {"VariableNode.NodeType", Field, 0}, - {"VariableNode.Pos", Field, 1}, - {"WithNode", Type, 0}, - {"WithNode.BranchNode", Field, 0}, - }, - "time": { - {"(*Location).String", Method, 0}, - {"(*ParseError).Error", Method, 0}, - {"(*Ticker).Reset", Method, 15}, - {"(*Ticker).Stop", Method, 0}, - {"(*Time).GobDecode", Method, 0}, - {"(*Time).UnmarshalBinary", Method, 2}, - {"(*Time).UnmarshalJSON", Method, 0}, - {"(*Time).UnmarshalText", Method, 2}, - {"(*Timer).Reset", Method, 1}, - {"(*Timer).Stop", Method, 0}, - {"(Duration).Abs", Method, 19}, - {"(Duration).Hours", Method, 0}, - {"(Duration).Microseconds", Method, 13}, - {"(Duration).Milliseconds", Method, 13}, - {"(Duration).Minutes", Method, 0}, - {"(Duration).Nanoseconds", Method, 0}, - {"(Duration).Round", Method, 9}, - {"(Duration).Seconds", Method, 0}, - {"(Duration).String", Method, 0}, - {"(Duration).Truncate", Method, 9}, - {"(Month).String", Method, 0}, - {"(Time).Add", Method, 0}, - {"(Time).AddDate", Method, 0}, - {"(Time).After", Method, 0}, - {"(Time).AppendBinary", Method, 24}, - {"(Time).AppendFormat", Method, 5}, - {"(Time).AppendText", Method, 24}, - {"(Time).Before", Method, 0}, - {"(Time).Clock", Method, 0}, - {"(Time).Compare", Method, 20}, - {"(Time).Date", Method, 0}, - {"(Time).Day", Method, 0}, - {"(Time).Equal", Method, 0}, - {"(Time).Format", Method, 0}, - {"(Time).GoString", Method, 17}, - {"(Time).GobEncode", Method, 0}, - {"(Time).Hour", Method, 0}, - {"(Time).ISOWeek", Method, 0}, - {"(Time).In", Method, 0}, - {"(Time).IsDST", Method, 17}, - {"(Time).IsZero", Method, 0}, - {"(Time).Local", Method, 0}, - {"(Time).Location", Method, 0}, - {"(Time).MarshalBinary", Method, 2}, - {"(Time).MarshalJSON", Method, 0}, - {"(Time).MarshalText", Method, 2}, - {"(Time).Minute", Method, 0}, - {"(Time).Month", Method, 0}, - {"(Time).Nanosecond", Method, 0}, - {"(Time).Round", Method, 1}, - {"(Time).Second", Method, 0}, - {"(Time).String", Method, 0}, - {"(Time).Sub", Method, 0}, - {"(Time).Truncate", Method, 1}, - {"(Time).UTC", Method, 0}, - {"(Time).Unix", Method, 0}, - {"(Time).UnixMicro", Method, 17}, - {"(Time).UnixMilli", Method, 17}, - {"(Time).UnixNano", Method, 0}, - {"(Time).Weekday", Method, 0}, - {"(Time).Year", Method, 0}, - {"(Time).YearDay", Method, 1}, - {"(Time).Zone", Method, 0}, - {"(Time).ZoneBounds", Method, 19}, - {"(Weekday).String", Method, 0}, - {"ANSIC", Const, 0}, - {"After", Func, 0}, - {"AfterFunc", Func, 0}, - {"April", Const, 0}, - {"August", Const, 0}, - {"Date", Func, 0}, - {"DateOnly", Const, 20}, - {"DateTime", Const, 20}, - {"December", Const, 0}, - {"Duration", Type, 0}, - {"February", Const, 0}, - {"FixedZone", Func, 0}, - {"Friday", Const, 0}, - {"Hour", Const, 0}, - {"January", Const, 0}, - {"July", Const, 0}, - {"June", Const, 0}, - {"Kitchen", Const, 0}, - {"Layout", Const, 17}, - {"LoadLocation", Func, 0}, - {"LoadLocationFromTZData", Func, 10}, - {"Local", Var, 0}, - {"Location", Type, 0}, - {"March", Const, 0}, - {"May", Const, 0}, - {"Microsecond", Const, 0}, - {"Millisecond", Const, 0}, - {"Minute", Const, 0}, - {"Monday", Const, 0}, - {"Month", Type, 0}, - {"Nanosecond", Const, 0}, - {"NewTicker", Func, 0}, - {"NewTimer", Func, 0}, - {"November", Const, 0}, - {"Now", Func, 0}, - {"October", Const, 0}, - {"Parse", Func, 0}, - {"ParseDuration", Func, 0}, - {"ParseError", Type, 0}, - {"ParseError.Layout", Field, 0}, - {"ParseError.LayoutElem", Field, 0}, - {"ParseError.Message", Field, 0}, - {"ParseError.Value", Field, 0}, - {"ParseError.ValueElem", Field, 0}, - {"ParseInLocation", Func, 1}, - {"RFC1123", Const, 0}, - {"RFC1123Z", Const, 0}, - {"RFC3339", Const, 0}, - {"RFC3339Nano", Const, 0}, - {"RFC822", Const, 0}, - {"RFC822Z", Const, 0}, - {"RFC850", Const, 0}, - {"RubyDate", Const, 0}, - {"Saturday", Const, 0}, - {"Second", Const, 0}, - {"September", Const, 0}, - {"Since", Func, 0}, - {"Sleep", Func, 0}, - {"Stamp", Const, 0}, - {"StampMicro", Const, 0}, - {"StampMilli", Const, 0}, - {"StampNano", Const, 0}, - {"Sunday", Const, 0}, - {"Thursday", Const, 0}, - {"Tick", Func, 0}, - {"Ticker", Type, 0}, - {"Ticker.C", Field, 0}, - {"Time", Type, 0}, - {"TimeOnly", Const, 20}, - {"Timer", Type, 0}, - {"Timer.C", Field, 0}, - {"Tuesday", Const, 0}, - {"UTC", Var, 0}, - {"Unix", Func, 0}, - {"UnixDate", Const, 0}, - {"UnixMicro", Func, 17}, - {"UnixMilli", Func, 17}, - {"Until", Func, 8}, - {"Wednesday", Const, 0}, - {"Weekday", Type, 0}, - }, - "unicode": { - {"(SpecialCase).ToLower", Method, 0}, - {"(SpecialCase).ToTitle", Method, 0}, - {"(SpecialCase).ToUpper", Method, 0}, - {"ASCII_Hex_Digit", Var, 0}, - {"Adlam", Var, 7}, - {"Ahom", Var, 5}, - {"Anatolian_Hieroglyphs", Var, 5}, - {"Arabic", Var, 0}, - {"Armenian", Var, 0}, - {"Avestan", Var, 0}, - {"AzeriCase", Var, 0}, - {"Balinese", Var, 0}, - {"Bamum", Var, 0}, - {"Bassa_Vah", Var, 4}, - {"Batak", Var, 0}, - {"Bengali", Var, 0}, - {"Bhaiksuki", Var, 7}, - {"Bidi_Control", Var, 0}, - {"Bopomofo", Var, 0}, - {"Brahmi", Var, 0}, - {"Braille", Var, 0}, - {"Buginese", Var, 0}, - {"Buhid", Var, 0}, - {"C", Var, 0}, - {"Canadian_Aboriginal", Var, 0}, - {"Carian", Var, 0}, - {"CaseRange", Type, 0}, - {"CaseRange.Delta", Field, 0}, - {"CaseRange.Hi", Field, 0}, - {"CaseRange.Lo", Field, 0}, - {"CaseRanges", Var, 0}, - {"Categories", Var, 0}, - {"Caucasian_Albanian", Var, 4}, - {"Cc", Var, 0}, - {"Cf", Var, 0}, - {"Chakma", Var, 1}, - {"Cham", Var, 0}, - {"Cherokee", Var, 0}, - {"Chorasmian", Var, 16}, - {"Co", Var, 0}, - {"Common", Var, 0}, - {"Coptic", Var, 0}, - {"Cs", Var, 0}, - {"Cuneiform", Var, 0}, - {"Cypriot", Var, 0}, - {"Cypro_Minoan", Var, 21}, - {"Cyrillic", Var, 0}, - {"Dash", Var, 0}, - {"Deprecated", Var, 0}, - {"Deseret", Var, 0}, - {"Devanagari", Var, 0}, - {"Diacritic", Var, 0}, - {"Digit", Var, 0}, - {"Dives_Akuru", Var, 16}, - {"Dogra", Var, 13}, - {"Duployan", Var, 4}, - {"Egyptian_Hieroglyphs", Var, 0}, - {"Elbasan", Var, 4}, - {"Elymaic", Var, 14}, - {"Ethiopic", Var, 0}, - {"Extender", Var, 0}, - {"FoldCategory", Var, 0}, - {"FoldScript", Var, 0}, - {"Georgian", Var, 0}, - {"Glagolitic", Var, 0}, - {"Gothic", Var, 0}, - {"Grantha", Var, 4}, - {"GraphicRanges", Var, 0}, - {"Greek", Var, 0}, - {"Gujarati", Var, 0}, - {"Gunjala_Gondi", Var, 13}, - {"Gurmukhi", Var, 0}, - {"Han", Var, 0}, - {"Hangul", Var, 0}, - {"Hanifi_Rohingya", Var, 13}, - {"Hanunoo", Var, 0}, - {"Hatran", Var, 5}, - {"Hebrew", Var, 0}, - {"Hex_Digit", Var, 0}, - {"Hiragana", Var, 0}, - {"Hyphen", Var, 0}, - {"IDS_Binary_Operator", Var, 0}, - {"IDS_Trinary_Operator", Var, 0}, - {"Ideographic", Var, 0}, - {"Imperial_Aramaic", Var, 0}, - {"In", Func, 2}, - {"Inherited", Var, 0}, - {"Inscriptional_Pahlavi", Var, 0}, - {"Inscriptional_Parthian", Var, 0}, - {"Is", Func, 0}, - {"IsControl", Func, 0}, - {"IsDigit", Func, 0}, - {"IsGraphic", Func, 0}, - {"IsLetter", Func, 0}, - {"IsLower", Func, 0}, - {"IsMark", Func, 0}, - {"IsNumber", Func, 0}, - {"IsOneOf", Func, 0}, - {"IsPrint", Func, 0}, - {"IsPunct", Func, 0}, - {"IsSpace", Func, 0}, - {"IsSymbol", Func, 0}, - {"IsTitle", Func, 0}, - {"IsUpper", Func, 0}, - {"Javanese", Var, 0}, - {"Join_Control", Var, 0}, - {"Kaithi", Var, 0}, - {"Kannada", Var, 0}, - {"Katakana", Var, 0}, - {"Kawi", Var, 21}, - {"Kayah_Li", Var, 0}, - {"Kharoshthi", Var, 0}, - {"Khitan_Small_Script", Var, 16}, - {"Khmer", Var, 0}, - {"Khojki", Var, 4}, - {"Khudawadi", Var, 4}, - {"L", Var, 0}, - {"Lao", Var, 0}, - {"Latin", Var, 0}, - {"Lepcha", Var, 0}, - {"Letter", Var, 0}, - {"Limbu", Var, 0}, - {"Linear_A", Var, 4}, - {"Linear_B", Var, 0}, - {"Lisu", Var, 0}, - {"Ll", Var, 0}, - {"Lm", Var, 0}, - {"Lo", Var, 0}, - {"Logical_Order_Exception", Var, 0}, - {"Lower", Var, 0}, - {"LowerCase", Const, 0}, - {"Lt", Var, 0}, - {"Lu", Var, 0}, - {"Lycian", Var, 0}, - {"Lydian", Var, 0}, - {"M", Var, 0}, - {"Mahajani", Var, 4}, - {"Makasar", Var, 13}, - {"Malayalam", Var, 0}, - {"Mandaic", Var, 0}, - {"Manichaean", Var, 4}, - {"Marchen", Var, 7}, - {"Mark", Var, 0}, - {"Masaram_Gondi", Var, 10}, - {"MaxASCII", Const, 0}, - {"MaxCase", Const, 0}, - {"MaxLatin1", Const, 0}, - {"MaxRune", Const, 0}, - {"Mc", Var, 0}, - {"Me", Var, 0}, - {"Medefaidrin", Var, 13}, - {"Meetei_Mayek", Var, 0}, - {"Mende_Kikakui", Var, 4}, - {"Meroitic_Cursive", Var, 1}, - {"Meroitic_Hieroglyphs", Var, 1}, - {"Miao", Var, 1}, - {"Mn", Var, 0}, - {"Modi", Var, 4}, - {"Mongolian", Var, 0}, - {"Mro", Var, 4}, - {"Multani", Var, 5}, - {"Myanmar", Var, 0}, - {"N", Var, 0}, - {"Nabataean", Var, 4}, - {"Nag_Mundari", Var, 21}, - {"Nandinagari", Var, 14}, - {"Nd", Var, 0}, - {"New_Tai_Lue", Var, 0}, - {"Newa", Var, 7}, - {"Nko", Var, 0}, - {"Nl", Var, 0}, - {"No", Var, 0}, - {"Noncharacter_Code_Point", Var, 0}, - {"Number", Var, 0}, - {"Nushu", Var, 10}, - {"Nyiakeng_Puachue_Hmong", Var, 14}, - {"Ogham", Var, 0}, - {"Ol_Chiki", Var, 0}, - {"Old_Hungarian", Var, 5}, - {"Old_Italic", Var, 0}, - {"Old_North_Arabian", Var, 4}, - {"Old_Permic", Var, 4}, - {"Old_Persian", Var, 0}, - {"Old_Sogdian", Var, 13}, - {"Old_South_Arabian", Var, 0}, - {"Old_Turkic", Var, 0}, - {"Old_Uyghur", Var, 21}, - {"Oriya", Var, 0}, - {"Osage", Var, 7}, - {"Osmanya", Var, 0}, - {"Other", Var, 0}, - {"Other_Alphabetic", Var, 0}, - {"Other_Default_Ignorable_Code_Point", Var, 0}, - {"Other_Grapheme_Extend", Var, 0}, - {"Other_ID_Continue", Var, 0}, - {"Other_ID_Start", Var, 0}, - {"Other_Lowercase", Var, 0}, - {"Other_Math", Var, 0}, - {"Other_Uppercase", Var, 0}, - {"P", Var, 0}, - {"Pahawh_Hmong", Var, 4}, - {"Palmyrene", Var, 4}, - {"Pattern_Syntax", Var, 0}, - {"Pattern_White_Space", Var, 0}, - {"Pau_Cin_Hau", Var, 4}, - {"Pc", Var, 0}, - {"Pd", Var, 0}, - {"Pe", Var, 0}, - {"Pf", Var, 0}, - {"Phags_Pa", Var, 0}, - {"Phoenician", Var, 0}, - {"Pi", Var, 0}, - {"Po", Var, 0}, - {"Prepended_Concatenation_Mark", Var, 7}, - {"PrintRanges", Var, 0}, - {"Properties", Var, 0}, - {"Ps", Var, 0}, - {"Psalter_Pahlavi", Var, 4}, - {"Punct", Var, 0}, - {"Quotation_Mark", Var, 0}, - {"Radical", Var, 0}, - {"Range16", Type, 0}, - {"Range16.Hi", Field, 0}, - {"Range16.Lo", Field, 0}, - {"Range16.Stride", Field, 0}, - {"Range32", Type, 0}, - {"Range32.Hi", Field, 0}, - {"Range32.Lo", Field, 0}, - {"Range32.Stride", Field, 0}, - {"RangeTable", Type, 0}, - {"RangeTable.LatinOffset", Field, 1}, - {"RangeTable.R16", Field, 0}, - {"RangeTable.R32", Field, 0}, - {"Regional_Indicator", Var, 10}, - {"Rejang", Var, 0}, - {"ReplacementChar", Const, 0}, - {"Runic", Var, 0}, - {"S", Var, 0}, - {"STerm", Var, 0}, - {"Samaritan", Var, 0}, - {"Saurashtra", Var, 0}, - {"Sc", Var, 0}, - {"Scripts", Var, 0}, - {"Sentence_Terminal", Var, 7}, - {"Sharada", Var, 1}, - {"Shavian", Var, 0}, - {"Siddham", Var, 4}, - {"SignWriting", Var, 5}, - {"SimpleFold", Func, 0}, - {"Sinhala", Var, 0}, - {"Sk", Var, 0}, - {"Sm", Var, 0}, - {"So", Var, 0}, - {"Soft_Dotted", Var, 0}, - {"Sogdian", Var, 13}, - {"Sora_Sompeng", Var, 1}, - {"Soyombo", Var, 10}, - {"Space", Var, 0}, - {"SpecialCase", Type, 0}, - {"Sundanese", Var, 0}, - {"Syloti_Nagri", Var, 0}, - {"Symbol", Var, 0}, - {"Syriac", Var, 0}, - {"Tagalog", Var, 0}, - {"Tagbanwa", Var, 0}, - {"Tai_Le", Var, 0}, - {"Tai_Tham", Var, 0}, - {"Tai_Viet", Var, 0}, - {"Takri", Var, 1}, - {"Tamil", Var, 0}, - {"Tangsa", Var, 21}, - {"Tangut", Var, 7}, - {"Telugu", Var, 0}, - {"Terminal_Punctuation", Var, 0}, - {"Thaana", Var, 0}, - {"Thai", Var, 0}, - {"Tibetan", Var, 0}, - {"Tifinagh", Var, 0}, - {"Tirhuta", Var, 4}, - {"Title", Var, 0}, - {"TitleCase", Const, 0}, - {"To", Func, 0}, - {"ToLower", Func, 0}, - {"ToTitle", Func, 0}, - {"ToUpper", Func, 0}, - {"Toto", Var, 21}, - {"TurkishCase", Var, 0}, - {"Ugaritic", Var, 0}, - {"Unified_Ideograph", Var, 0}, - {"Upper", Var, 0}, - {"UpperCase", Const, 0}, - {"UpperLower", Const, 0}, - {"Vai", Var, 0}, - {"Variation_Selector", Var, 0}, - {"Version", Const, 0}, - {"Vithkuqi", Var, 21}, - {"Wancho", Var, 14}, - {"Warang_Citi", Var, 4}, - {"White_Space", Var, 0}, - {"Yezidi", Var, 16}, - {"Yi", Var, 0}, - {"Z", Var, 0}, - {"Zanabazar_Square", Var, 10}, - {"Zl", Var, 0}, - {"Zp", Var, 0}, - {"Zs", Var, 0}, - }, - "unicode/utf16": { - {"AppendRune", Func, 20}, - {"Decode", Func, 0}, - {"DecodeRune", Func, 0}, - {"Encode", Func, 0}, - {"EncodeRune", Func, 0}, - {"IsSurrogate", Func, 0}, - {"RuneLen", Func, 23}, - }, - "unicode/utf8": { - {"AppendRune", Func, 18}, - {"DecodeLastRune", Func, 0}, - {"DecodeLastRuneInString", Func, 0}, - {"DecodeRune", Func, 0}, - {"DecodeRuneInString", Func, 0}, - {"EncodeRune", Func, 0}, - {"FullRune", Func, 0}, - {"FullRuneInString", Func, 0}, - {"MaxRune", Const, 0}, - {"RuneCount", Func, 0}, - {"RuneCountInString", Func, 0}, - {"RuneError", Const, 0}, - {"RuneLen", Func, 0}, - {"RuneSelf", Const, 0}, - {"RuneStart", Func, 0}, - {"UTFMax", Const, 0}, - {"Valid", Func, 0}, - {"ValidRune", Func, 1}, - {"ValidString", Func, 0}, - }, - "unique": { - {"(Handle).Value", Method, 23}, - {"Handle", Type, 23}, - {"Make", Func, 23}, - }, - "unsafe": { - {"Add", Func, 0}, - {"Alignof", Func, 0}, - {"Offsetof", Func, 0}, - {"Pointer", Type, 0}, - {"Sizeof", Func, 0}, - {"Slice", Func, 0}, - {"SliceData", Func, 0}, - {"String", Func, 0}, - {"StringData", Func, 0}, - }, - "weak": { - {"(Pointer).Value", Method, 24}, - {"Make", Func, 24}, - {"Pointer", Type, 24}, - }, -} diff --git a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go deleted file mode 100644 index 98904017..00000000 --- a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run generate.go - -// Package stdlib provides a table of all exported symbols in the -// standard library, along with the version at which they first -// appeared. -package stdlib - -import ( - "fmt" - "strings" -) - -type Symbol struct { - Name string - Kind Kind - Version Version // Go version that first included the symbol -} - -// A Kind indicates the kind of a symbol: -// function, variable, constant, type, and so on. -type Kind int8 - -const ( - Invalid Kind = iota // Example name: - Type // "Buffer" - Func // "Println" - Var // "EOF" - Const // "Pi" - Field // "Point.X" - Method // "(*Buffer).Grow" -) - -func (kind Kind) String() string { - return [...]string{ - Invalid: "invalid", - Type: "type", - Func: "func", - Var: "var", - Const: "const", - Field: "field", - Method: "method", - }[kind] -} - -// A Version represents a version of Go of the form "go1.%d". -type Version int8 - -// String returns a version string of the form "go1.23", without allocating. -func (v Version) String() string { return versions[v] } - -var versions [30]string // (increase constant as needed) - -func init() { - for i := range versions { - versions[i] = fmt.Sprintf("go1.%d", i) - } -} - -// HasPackage reports whether the specified package path is part of -// the standard library's public API. -func HasPackage(path string) bool { - _, ok := PackageSymbols[path] - return ok -} - -// SplitField splits the field symbol name into type and field -// components. It must be called only on Field symbols. -// -// Example: "File.Package" -> ("File", "Package") -func (sym *Symbol) SplitField() (typename, name string) { - if sym.Kind != Field { - panic("not a field") - } - typename, name, _ = strings.Cut(sym.Name, ".") - return -} - -// SplitMethod splits the method symbol name into pointer, receiver, -// and method components. It must be called only on Method symbols. -// -// Example: "(*Buffer).Grow" -> (true, "Buffer", "Grow") -func (sym *Symbol) SplitMethod() (ptr bool, recv, name string) { - if sym.Kind != Method { - panic("not a method") - } - recv, name, _ = strings.Cut(sym.Name, ".") - recv = recv[len("(") : len(recv)-len(")")] - ptr = recv[0] == '*' - if ptr { - recv = recv[len("*"):] - } - return -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go deleted file mode 100644 index cdae2b8e..00000000 --- a/vendor/golang.org/x/tools/internal/typeparams/common.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package typeparams contains common utilities for writing tools that -// interact with generic Go code, as introduced with Go 1.18. It -// supplements the standard library APIs. Notably, the StructuralTerms -// API computes a minimal representation of the structural -// restrictions on a type parameter. -// -// An external version of these APIs is available in the -// golang.org/x/exp/typeparams module. -package typeparams - -import ( - "go/ast" - "go/token" - "go/types" -) - -// UnpackIndexExpr extracts data from AST nodes that represent index -// expressions. -// -// For an ast.IndexExpr, the resulting indices slice will contain exactly one -// index expression. For an ast.IndexListExpr (go1.18+), it may have a variable -// number of index expressions. -// -// For nodes that don't represent index expressions, the first return value of -// UnpackIndexExpr will be nil. -func UnpackIndexExpr(n ast.Node) (x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) { - switch e := n.(type) { - case *ast.IndexExpr: - return e.X, e.Lbrack, []ast.Expr{e.Index}, e.Rbrack - case *ast.IndexListExpr: - return e.X, e.Lbrack, e.Indices, e.Rbrack - } - return nil, token.NoPos, nil, token.NoPos -} - -// PackIndexExpr returns an *ast.IndexExpr or *ast.IndexListExpr, depending on -// the cardinality of indices. Calling PackIndexExpr with len(indices) == 0 -// will panic. -func PackIndexExpr(x ast.Expr, lbrack token.Pos, indices []ast.Expr, rbrack token.Pos) ast.Expr { - switch len(indices) { - case 0: - panic("empty indices") - case 1: - return &ast.IndexExpr{ - X: x, - Lbrack: lbrack, - Index: indices[0], - Rbrack: rbrack, - } - default: - return &ast.IndexListExpr{ - X: x, - Lbrack: lbrack, - Indices: indices, - Rbrack: rbrack, - } - } -} - -// IsTypeParam reports whether t is a type parameter (or an alias of one). -func IsTypeParam(t types.Type) bool { - _, ok := types.Unalias(t).(*types.TypeParam) - return ok -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/vendor/golang.org/x/tools/internal/typeparams/coretype.go deleted file mode 100644 index 6e83c6fb..00000000 --- a/vendor/golang.org/x/tools/internal/typeparams/coretype.go +++ /dev/null @@ -1,150 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeparams - -import ( - "fmt" - "go/types" -) - -// CoreType returns the core type of T or nil if T does not have a core type. -// -// See https://go.dev/ref/spec#Core_types for the definition of a core type. -func CoreType(T types.Type) types.Type { - U := T.Underlying() - if _, ok := U.(*types.Interface); !ok { - return U // for non-interface types, - } - - terms, err := NormalTerms(U) - if len(terms) == 0 || err != nil { - // len(terms) -> empty type set of interface. - // err != nil => U is invalid, exceeds complexity bounds, or has an empty type set. - return nil // no core type. - } - - U = terms[0].Type().Underlying() - var identical int // i in [0,identical) => Identical(U, terms[i].Type().Underlying()) - for identical = 1; identical < len(terms); identical++ { - if !types.Identical(U, terms[identical].Type().Underlying()) { - break - } - } - - if identical == len(terms) { - // https://go.dev/ref/spec#Core_types - // "There is a single type U which is the underlying type of all types in the type set of T" - return U - } - ch, ok := U.(*types.Chan) - if !ok { - return nil // no core type as identical < len(terms) and U is not a channel. - } - // https://go.dev/ref/spec#Core_types - // "the type chan E if T contains only bidirectional channels, or the type chan<- E or - // <-chan E depending on the direction of the directional channels present." - for chans := identical; chans < len(terms); chans++ { - curr, ok := terms[chans].Type().Underlying().(*types.Chan) - if !ok { - return nil - } - if !types.Identical(ch.Elem(), curr.Elem()) { - return nil // channel elements are not identical. - } - if ch.Dir() == types.SendRecv { - // ch is bidirectional. We can safely always use curr's direction. - ch = curr - } else if curr.Dir() != types.SendRecv && ch.Dir() != curr.Dir() { - // ch and curr are not bidirectional and not the same direction. - return nil - } - } - return ch -} - -// NormalTerms returns a slice of terms representing the normalized structural -// type restrictions of a type, if any. -// -// For all types other than *types.TypeParam, *types.Interface, and -// *types.Union, this is just a single term with Tilde() == false and -// Type() == typ. For *types.TypeParam, *types.Interface, and *types.Union, see -// below. -// -// Structural type restrictions of a type parameter are created via -// non-interface types embedded in its constraint interface (directly, or via a -// chain of interface embeddings). For example, in the declaration type -// T[P interface{~int; m()}] int the structural restriction of the type -// parameter P is ~int. -// -// With interface embedding and unions, the specification of structural type -// restrictions may be arbitrarily complex. For example, consider the -// following: -// -// type A interface{ ~string|~[]byte } -// -// type B interface{ int|string } -// -// type C interface { ~string|~int } -// -// type T[P interface{ A|B; C }] int -// -// In this example, the structural type restriction of P is ~string|int: A|B -// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, -// which when intersected with C (~string|~int) yields ~string|int. -// -// NormalTerms computes these expansions and reductions, producing a -// "normalized" form of the embeddings. A structural restriction is normalized -// if it is a single union containing no interface terms, and is minimal in the -// sense that removing any term changes the set of types satisfying the -// constraint. It is left as a proof for the reader that, modulo sorting, there -// is exactly one such normalized form. -// -// Because the minimal representation always takes this form, NormalTerms -// returns a slice of tilde terms corresponding to the terms of the union in -// the normalized structural restriction. An error is returned if the type is -// invalid, exceeds complexity bounds, or has an empty type set. In the latter -// case, NormalTerms returns ErrEmptyTypeSet. -// -// NormalTerms makes no guarantees about the order of terms, except that it -// is deterministic. -func NormalTerms(typ types.Type) ([]*types.Term, error) { - switch typ := typ.Underlying().(type) { - case *types.TypeParam: - return StructuralTerms(typ) - case *types.Union: - return UnionTermSet(typ) - case *types.Interface: - return InterfaceTermSet(typ) - default: - return []*types.Term{types.NewTerm(false, typ)}, nil - } -} - -// Deref returns the type of the variable pointed to by t, -// if t's core type is a pointer; otherwise it returns t. -// -// Do not assume that Deref(T)==T implies T is not a pointer: -// consider "type T *T", for example. -// -// TODO(adonovan): ideally this would live in typesinternal, but that -// creates an import cycle. Move there when we melt this package down. -func Deref(t types.Type) types.Type { - if ptr, ok := CoreType(t).(*types.Pointer); ok { - return ptr.Elem() - } - return t -} - -// MustDeref returns the type of the variable pointed to by t. -// It panics if t's core type is not a pointer. -// -// TODO(adonovan): ideally this would live in typesinternal, but that -// creates an import cycle. Move there when we melt this package down. -func MustDeref(t types.Type) types.Type { - if ptr, ok := CoreType(t).(*types.Pointer); ok { - return ptr.Elem() - } - panic(fmt.Sprintf("%v is not a pointer", t)) -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/free.go b/vendor/golang.org/x/tools/internal/typeparams/free.go deleted file mode 100644 index 0ade5c29..00000000 --- a/vendor/golang.org/x/tools/internal/typeparams/free.go +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeparams - -import ( - "go/types" - - "golang.org/x/tools/internal/aliases" -) - -// Free is a memoization of the set of free type parameters within a -// type. It makes a sequence of calls to [Free.Has] for overlapping -// types more efficient. The zero value is ready for use. -// -// NOTE: Adapted from go/types/infer.go. If it is later exported, factor. -type Free struct { - seen map[types.Type]bool -} - -// Has reports whether the specified type has a free type parameter. -func (w *Free) Has(typ types.Type) (res bool) { - // detect cycles - if x, ok := w.seen[typ]; ok { - return x - } - if w.seen == nil { - w.seen = make(map[types.Type]bool) - } - w.seen[typ] = false - defer func() { - w.seen[typ] = res - }() - - switch t := typ.(type) { - case nil, *types.Basic: // TODO(gri) should nil be handled here? - break - - case *types.Alias: - if aliases.TypeParams(t).Len() > aliases.TypeArgs(t).Len() { - return true // This is an uninstantiated Alias. - } - // The expansion of an alias can have free type parameters, - // whether or not the alias itself has type parameters: - // - // func _[K comparable]() { - // type Set = map[K]bool // free(Set) = {K} - // type MapTo[V] = map[K]V // free(Map[foo]) = {V} - // } - // - // So, we must Unalias. - return w.Has(types.Unalias(t)) - - case *types.Array: - return w.Has(t.Elem()) - - case *types.Slice: - return w.Has(t.Elem()) - - case *types.Struct: - for i, n := 0, t.NumFields(); i < n; i++ { - if w.Has(t.Field(i).Type()) { - return true - } - } - - case *types.Pointer: - return w.Has(t.Elem()) - - case *types.Tuple: - n := t.Len() - for i := 0; i < n; i++ { - if w.Has(t.At(i).Type()) { - return true - } - } - - case *types.Signature: - // t.tparams may not be nil if we are looking at a signature - // of a generic function type (or an interface method) that is - // part of the type we're testing. We don't care about these type - // parameters. - // Similarly, the receiver of a method may declare (rather than - // use) type parameters, we don't care about those either. - // Thus, we only need to look at the input and result parameters. - return w.Has(t.Params()) || w.Has(t.Results()) - - case *types.Interface: - for i, n := 0, t.NumMethods(); i < n; i++ { - if w.Has(t.Method(i).Type()) { - return true - } - } - terms, err := InterfaceTermSet(t) - if err != nil { - return false // ill typed - } - for _, term := range terms { - if w.Has(term.Type()) { - return true - } - } - - case *types.Map: - return w.Has(t.Key()) || w.Has(t.Elem()) - - case *types.Chan: - return w.Has(t.Elem()) - - case *types.Named: - args := t.TypeArgs() - if params := t.TypeParams(); params.Len() > args.Len() { - return true // this is an uninstantiated named type. - } - for i, n := 0, args.Len(); i < n; i++ { - if w.Has(args.At(i)) { - return true - } - } - return w.Has(t.Underlying()) // recurse for types local to parameterized functions - - case *types.TypeParam: - return true - - default: - panic(t) // unreachable - } - - return false -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/normalize.go b/vendor/golang.org/x/tools/internal/typeparams/normalize.go deleted file mode 100644 index 93c80fdc..00000000 --- a/vendor/golang.org/x/tools/internal/typeparams/normalize.go +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeparams - -import ( - "errors" - "fmt" - "go/types" - "os" - "strings" -) - -//go:generate go run copytermlist.go - -const debug = false - -var ErrEmptyTypeSet = errors.New("empty type set") - -// StructuralTerms returns a slice of terms representing the normalized -// structural type restrictions of a type parameter, if any. -// -// Structural type restrictions of a type parameter are created via -// non-interface types embedded in its constraint interface (directly, or via a -// chain of interface embeddings). For example, in the declaration -// -// type T[P interface{~int; m()}] int -// -// the structural restriction of the type parameter P is ~int. -// -// With interface embedding and unions, the specification of structural type -// restrictions may be arbitrarily complex. For example, consider the -// following: -// -// type A interface{ ~string|~[]byte } -// -// type B interface{ int|string } -// -// type C interface { ~string|~int } -// -// type T[P interface{ A|B; C }] int -// -// In this example, the structural type restriction of P is ~string|int: A|B -// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, -// which when intersected with C (~string|~int) yields ~string|int. -// -// StructuralTerms computes these expansions and reductions, producing a -// "normalized" form of the embeddings. A structural restriction is normalized -// if it is a single union containing no interface terms, and is minimal in the -// sense that removing any term changes the set of types satisfying the -// constraint. It is left as a proof for the reader that, modulo sorting, there -// is exactly one such normalized form. -// -// Because the minimal representation always takes this form, StructuralTerms -// returns a slice of tilde terms corresponding to the terms of the union in -// the normalized structural restriction. An error is returned if the -// constraint interface is invalid, exceeds complexity bounds, or has an empty -// type set. In the latter case, StructuralTerms returns ErrEmptyTypeSet. -// -// StructuralTerms makes no guarantees about the order of terms, except that it -// is deterministic. -func StructuralTerms(tparam *types.TypeParam) ([]*types.Term, error) { - constraint := tparam.Constraint() - if constraint == nil { - return nil, fmt.Errorf("%s has nil constraint", tparam) - } - iface, _ := constraint.Underlying().(*types.Interface) - if iface == nil { - return nil, fmt.Errorf("constraint is %T, not *types.Interface", constraint.Underlying()) - } - return InterfaceTermSet(iface) -} - -// InterfaceTermSet computes the normalized terms for a constraint interface, -// returning an error if the term set cannot be computed or is empty. In the -// latter case, the error will be ErrEmptyTypeSet. -// -// See the documentation of StructuralTerms for more information on -// normalization. -func InterfaceTermSet(iface *types.Interface) ([]*types.Term, error) { - return computeTermSet(iface) -} - -// UnionTermSet computes the normalized terms for a union, returning an error -// if the term set cannot be computed or is empty. In the latter case, the -// error will be ErrEmptyTypeSet. -// -// See the documentation of StructuralTerms for more information on -// normalization. -func UnionTermSet(union *types.Union) ([]*types.Term, error) { - return computeTermSet(union) -} - -func computeTermSet(typ types.Type) ([]*types.Term, error) { - tset, err := computeTermSetInternal(typ, make(map[types.Type]*termSet), 0) - if err != nil { - return nil, err - } - if tset.terms.isEmpty() { - return nil, ErrEmptyTypeSet - } - if tset.terms.isAll() { - return nil, nil - } - var terms []*types.Term - for _, term := range tset.terms { - terms = append(terms, types.NewTerm(term.tilde, term.typ)) - } - return terms, nil -} - -// A termSet holds the normalized set of terms for a given type. -// -// The name termSet is intentionally distinct from 'type set': a type set is -// all types that implement a type (and includes method restrictions), whereas -// a term set just represents the structural restrictions on a type. -type termSet struct { - complete bool - terms termlist -} - -func indentf(depth int, format string, args ...interface{}) { - fmt.Fprintf(os.Stderr, strings.Repeat(".", depth)+format+"\n", args...) -} - -func computeTermSetInternal(t types.Type, seen map[types.Type]*termSet, depth int) (res *termSet, err error) { - if t == nil { - panic("nil type") - } - - if debug { - indentf(depth, "%s", t.String()) - defer func() { - if err != nil { - indentf(depth, "=> %s", err) - } else { - indentf(depth, "=> %s", res.terms.String()) - } - }() - } - - const maxTermCount = 100 - if tset, ok := seen[t]; ok { - if !tset.complete { - return nil, fmt.Errorf("cycle detected in the declaration of %s", t) - } - return tset, nil - } - - // Mark the current type as seen to avoid infinite recursion. - tset := new(termSet) - defer func() { - tset.complete = true - }() - seen[t] = tset - - switch u := t.Underlying().(type) { - case *types.Interface: - // The term set of an interface is the intersection of the term sets of its - // embedded types. - tset.terms = allTermlist - for i := 0; i < u.NumEmbeddeds(); i++ { - embedded := u.EmbeddedType(i) - if _, ok := embedded.Underlying().(*types.TypeParam); ok { - return nil, fmt.Errorf("invalid embedded type %T", embedded) - } - tset2, err := computeTermSetInternal(embedded, seen, depth+1) - if err != nil { - return nil, err - } - tset.terms = tset.terms.intersect(tset2.terms) - } - case *types.Union: - // The term set of a union is the union of term sets of its terms. - tset.terms = nil - for i := 0; i < u.Len(); i++ { - t := u.Term(i) - var terms termlist - switch t.Type().Underlying().(type) { - case *types.Interface: - tset2, err := computeTermSetInternal(t.Type(), seen, depth+1) - if err != nil { - return nil, err - } - terms = tset2.terms - case *types.TypeParam, *types.Union: - // A stand-alone type parameter or union is not permitted as union - // term. - return nil, fmt.Errorf("invalid union term %T", t) - default: - if t.Type() == types.Typ[types.Invalid] { - continue - } - terms = termlist{{t.Tilde(), t.Type()}} - } - tset.terms = tset.terms.union(terms) - if len(tset.terms) > maxTermCount { - return nil, fmt.Errorf("exceeded max term count %d", maxTermCount) - } - } - case *types.TypeParam: - panic("unreachable") - default: - // For all other types, the term set is just a single non-tilde term - // holding the type itself. - if u != types.Typ[types.Invalid] { - tset.terms = termlist{{false, t}} - } - } - return tset, nil -} - -// under is a facade for the go/types internal function of the same name. It is -// used by typeterm.go. -func under(t types.Type) types.Type { - return t.Underlying() -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/vendor/golang.org/x/tools/internal/typeparams/termlist.go deleted file mode 100644 index cbd12f80..00000000 --- a/vendor/golang.org/x/tools/internal/typeparams/termlist.go +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by copytermlist.go DO NOT EDIT. - -package typeparams - -import ( - "bytes" - "go/types" -) - -// A termlist represents the type set represented by the union -// t1 ∪ y2 ∪ ... tn of the type sets of the terms t1 to tn. -// A termlist is in normal form if all terms are disjoint. -// termlist operations don't require the operands to be in -// normal form. -type termlist []*term - -// allTermlist represents the set of all types. -// It is in normal form. -var allTermlist = termlist{new(term)} - -// String prints the termlist exactly (without normalization). -func (xl termlist) String() string { - if len(xl) == 0 { - return "∅" - } - var buf bytes.Buffer - for i, x := range xl { - if i > 0 { - buf.WriteString(" | ") - } - buf.WriteString(x.String()) - } - return buf.String() -} - -// isEmpty reports whether the termlist xl represents the empty set of types. -func (xl termlist) isEmpty() bool { - // If there's a non-nil term, the entire list is not empty. - // If the termlist is in normal form, this requires at most - // one iteration. - for _, x := range xl { - if x != nil { - return false - } - } - return true -} - -// isAll reports whether the termlist xl represents the set of all types. -func (xl termlist) isAll() bool { - // If there's a 𝓤 term, the entire list is 𝓤. - // If the termlist is in normal form, this requires at most - // one iteration. - for _, x := range xl { - if x != nil && x.typ == nil { - return true - } - } - return false -} - -// norm returns the normal form of xl. -func (xl termlist) norm() termlist { - // Quadratic algorithm, but good enough for now. - // TODO(gri) fix asymptotic performance - used := make([]bool, len(xl)) - var rl termlist - for i, xi := range xl { - if xi == nil || used[i] { - continue - } - for j := i + 1; j < len(xl); j++ { - xj := xl[j] - if xj == nil || used[j] { - continue - } - if u1, u2 := xi.union(xj); u2 == nil { - // If we encounter a 𝓤 term, the entire list is 𝓤. - // Exit early. - // (Note that this is not just an optimization; - // if we continue, we may end up with a 𝓤 term - // and other terms and the result would not be - // in normal form.) - if u1.typ == nil { - return allTermlist - } - xi = u1 - used[j] = true // xj is now unioned into xi - ignore it in future iterations - } - } - rl = append(rl, xi) - } - return rl -} - -// union returns the union xl ∪ yl. -func (xl termlist) union(yl termlist) termlist { - return append(xl, yl...).norm() -} - -// intersect returns the intersection xl ∩ yl. -func (xl termlist) intersect(yl termlist) termlist { - if xl.isEmpty() || yl.isEmpty() { - return nil - } - - // Quadratic algorithm, but good enough for now. - // TODO(gri) fix asymptotic performance - var rl termlist - for _, x := range xl { - for _, y := range yl { - if r := x.intersect(y); r != nil { - rl = append(rl, r) - } - } - } - return rl.norm() -} - -// equal reports whether xl and yl represent the same type set. -func (xl termlist) equal(yl termlist) bool { - // TODO(gri) this should be more efficient - return xl.subsetOf(yl) && yl.subsetOf(xl) -} - -// includes reports whether t ∈ xl. -func (xl termlist) includes(t types.Type) bool { - for _, x := range xl { - if x.includes(t) { - return true - } - } - return false -} - -// supersetOf reports whether y ⊆ xl. -func (xl termlist) supersetOf(y *term) bool { - for _, x := range xl { - if y.subsetOf(x) { - return true - } - } - return false -} - -// subsetOf reports whether xl ⊆ yl. -func (xl termlist) subsetOf(yl termlist) bool { - if yl.isEmpty() { - return xl.isEmpty() - } - - // each term x of xl must be a subset of yl - for _, x := range xl { - if !yl.supersetOf(x) { - return false // x is not a subset yl - } - } - return true -} diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go deleted file mode 100644 index 7350bb70..00000000 --- a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by copytermlist.go DO NOT EDIT. - -package typeparams - -import "go/types" - -// A term describes elementary type sets: -// -// ∅: (*term)(nil) == ∅ // set of no types (empty set) -// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) -// T: &term{false, T} == {T} // set of type T -// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t -type term struct { - tilde bool // valid if typ != nil - typ types.Type -} - -func (x *term) String() string { - switch { - case x == nil: - return "∅" - case x.typ == nil: - return "𝓤" - case x.tilde: - return "~" + x.typ.String() - default: - return x.typ.String() - } -} - -// equal reports whether x and y represent the same type set. -func (x *term) equal(y *term) bool { - // easy cases - switch { - case x == nil || y == nil: - return x == y - case x.typ == nil || y.typ == nil: - return x.typ == y.typ - } - // ∅ ⊂ x, y ⊂ 𝓤 - - return x.tilde == y.tilde && types.Identical(x.typ, y.typ) -} - -// union returns the union x ∪ y: zero, one, or two non-nil terms. -func (x *term) union(y *term) (_, _ *term) { - // easy cases - switch { - case x == nil && y == nil: - return nil, nil // ∅ ∪ ∅ == ∅ - case x == nil: - return y, nil // ∅ ∪ y == y - case y == nil: - return x, nil // x ∪ ∅ == x - case x.typ == nil: - return x, nil // 𝓤 ∪ y == 𝓤 - case y.typ == nil: - return y, nil // x ∪ 𝓤 == 𝓤 - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return x, y // x ∪ y == (x, y) if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ∪ ~t == ~t - // ~t ∪ T == ~t - // T ∪ ~t == ~t - // T ∪ T == T - if x.tilde || !y.tilde { - return x, nil - } - return y, nil -} - -// intersect returns the intersection x ∩ y. -func (x *term) intersect(y *term) *term { - // easy cases - switch { - case x == nil || y == nil: - return nil // ∅ ∩ y == ∅ and ∩ ∅ == ∅ - case x.typ == nil: - return y // 𝓤 ∩ y == y - case y.typ == nil: - return x // x ∩ 𝓤 == x - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return nil // x ∩ y == ∅ if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ∩ ~t == ~t - // ~t ∩ T == T - // T ∩ ~t == T - // T ∩ T == T - if !x.tilde || y.tilde { - return x - } - return y -} - -// includes reports whether t ∈ x. -func (x *term) includes(t types.Type) bool { - // easy cases - switch { - case x == nil: - return false // t ∈ ∅ == false - case x.typ == nil: - return true // t ∈ 𝓤 == true - } - // ∅ ⊂ x ⊂ 𝓤 - - u := t - if x.tilde { - u = under(u) - } - return types.Identical(x.typ, u) -} - -// subsetOf reports whether x ⊆ y. -func (x *term) subsetOf(y *term) bool { - // easy cases - switch { - case x == nil: - return true // ∅ ⊆ y == true - case y == nil: - return false // x ⊆ ∅ == false since x != ∅ - case y.typ == nil: - return true // x ⊆ 𝓤 == true - case x.typ == nil: - return false // 𝓤 ⊆ y == false since y != 𝓤 - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return false // x ⊆ y == false if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ⊆ ~t == true - // ~t ⊆ T == false - // T ⊆ ~t == true - // T ⊆ T == true - return !x.tilde || y.tilde -} - -// disjoint reports whether x ∩ y == ∅. -// x.typ and y.typ must not be nil. -func (x *term) disjoint(y *term) bool { - if debug && (x.typ == nil || y.typ == nil) { - panic("invalid argument(s)") - } - ux := x.typ - if y.tilde { - ux = under(ux) - } - uy := y.typ - if x.tilde { - uy = under(uy) - } - return !types.Identical(ux, uy) -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/element.go b/vendor/golang.org/x/tools/internal/typesinternal/element.go deleted file mode 100644 index 4957f021..00000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/element.go +++ /dev/null @@ -1,133 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "fmt" - "go/types" - - "golang.org/x/tools/go/types/typeutil" -) - -// ForEachElement calls f for type T and each type reachable from its -// type through reflection. It does this by recursively stripping off -// type constructors; in addition, for each named type N, the type *N -// is added to the result as it may have additional methods. -// -// The caller must provide an initially empty set used to de-duplicate -// identical types, potentially across multiple calls to ForEachElement. -// (Its final value holds all the elements seen, matching the arguments -// passed to f.) -// -// TODO(adonovan): share/harmonize with go/callgraph/rta. -func ForEachElement(rtypes *typeutil.Map, msets *typeutil.MethodSetCache, T types.Type, f func(types.Type)) { - var visit func(T types.Type, skip bool) - visit = func(T types.Type, skip bool) { - if !skip { - if seen, _ := rtypes.Set(T, true).(bool); seen { - return // de-dup - } - - f(T) // notify caller of new element type - } - - // Recursion over signatures of each method. - tmset := msets.MethodSet(T) - for i := 0; i < tmset.Len(); i++ { - sig := tmset.At(i).Type().(*types.Signature) - // It is tempting to call visit(sig, false) - // but, as noted in golang.org/cl/65450043, - // the Signature.Recv field is ignored by - // types.Identical and typeutil.Map, which - // is confusing at best. - // - // More importantly, the true signature rtype - // reachable from a method using reflection - // has no receiver but an extra ordinary parameter. - // For the Read method of io.Reader we want: - // func(Reader, []byte) (int, error) - // but here sig is: - // func([]byte) (int, error) - // with .Recv = Reader (though it is hard to - // notice because it doesn't affect Signature.String - // or types.Identical). - // - // TODO(adonovan): construct and visit the correct - // non-method signature with an extra parameter - // (though since unnamed func types have no methods - // there is essentially no actual demand for this). - // - // TODO(adonovan): document whether or not it is - // safe to skip non-exported methods (as RTA does). - visit(sig.Params(), true) // skip the Tuple - visit(sig.Results(), true) // skip the Tuple - } - - switch T := T.(type) { - case *types.Alias: - visit(types.Unalias(T), skip) // emulates the pre-Alias behavior - - case *types.Basic: - // nop - - case *types.Interface: - // nop---handled by recursion over method set. - - case *types.Pointer: - visit(T.Elem(), false) - - case *types.Slice: - visit(T.Elem(), false) - - case *types.Chan: - visit(T.Elem(), false) - - case *types.Map: - visit(T.Key(), false) - visit(T.Elem(), false) - - case *types.Signature: - if T.Recv() != nil { - panic(fmt.Sprintf("Signature %s has Recv %s", T, T.Recv())) - } - visit(T.Params(), true) // skip the Tuple - visit(T.Results(), true) // skip the Tuple - - case *types.Named: - // A pointer-to-named type can be derived from a named - // type via reflection. It may have methods too. - visit(types.NewPointer(T), false) - - // Consider 'type T struct{S}' where S has methods. - // Reflection provides no way to get from T to struct{S}, - // only to S, so the method set of struct{S} is unwanted, - // so set 'skip' flag during recursion. - visit(T.Underlying(), true) // skip the unnamed type - - case *types.Array: - visit(T.Elem(), false) - - case *types.Struct: - for i, n := 0, T.NumFields(); i < n; i++ { - // TODO(adonovan): document whether or not - // it is safe to skip non-exported fields. - visit(T.Field(i).Type(), false) - } - - case *types.Tuple: - for i, n := 0, T.Len(); i < n; i++ { - visit(T.At(i).Type(), false) - } - - case *types.TypeParam, *types.Union: - // forEachReachable must not be called on parameterized types. - panic(T) - - default: - panic(T) - } - } - visit(T, false) -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go deleted file mode 100644 index 131caab2..00000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go +++ /dev/null @@ -1,1560 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -//go:generate stringer -type=ErrorCode - -type ErrorCode int - -// This file defines the error codes that can be produced during type-checking. -// Collectively, these codes provide an identifier that may be used to -// implement special handling for certain types of errors. -// -// Error codes should be fine-grained enough that the exact nature of the error -// can be easily determined, but coarse enough that they are not an -// implementation detail of the type checking algorithm. As a rule-of-thumb, -// errors should be considered equivalent if there is a theoretical refactoring -// of the type checker in which they are emitted in exactly one place. For -// example, the type checker emits different error messages for "too many -// arguments" and "too few arguments", but one can imagine an alternative type -// checker where this check instead just emits a single "wrong number of -// arguments", so these errors should have the same code. -// -// Error code names should be as brief as possible while retaining accuracy and -// distinctiveness. In most cases names should start with an adjective -// describing the nature of the error (e.g. "invalid", "unused", "misplaced"), -// and end with a noun identifying the relevant language object. For example, -// "DuplicateDecl" or "InvalidSliceExpr". For brevity, naming follows the -// convention that "bad" implies a problem with syntax, and "invalid" implies a -// problem with types. - -const ( - // InvalidSyntaxTree occurs if an invalid syntax tree is provided - // to the type checker. It should never happen. - InvalidSyntaxTree ErrorCode = -1 -) - -const ( - _ ErrorCode = iota - - // Test is reserved for errors that only apply while in self-test mode. - Test - - /* package names */ - - // BlankPkgName occurs when a package name is the blank identifier "_". - // - // Per the spec: - // "The PackageName must not be the blank identifier." - BlankPkgName - - // MismatchedPkgName occurs when a file's package name doesn't match the - // package name already established by other files. - MismatchedPkgName - - // InvalidPkgUse occurs when a package identifier is used outside of a - // selector expression. - // - // Example: - // import "fmt" - // - // var _ = fmt - InvalidPkgUse - - /* imports */ - - // BadImportPath occurs when an import path is not valid. - BadImportPath - - // BrokenImport occurs when importing a package fails. - // - // Example: - // import "amissingpackage" - BrokenImport - - // ImportCRenamed occurs when the special import "C" is renamed. "C" is a - // pseudo-package, and must not be renamed. - // - // Example: - // import _ "C" - ImportCRenamed - - // UnusedImport occurs when an import is unused. - // - // Example: - // import "fmt" - // - // func main() {} - UnusedImport - - /* initialization */ - - // InvalidInitCycle occurs when an invalid cycle is detected within the - // initialization graph. - // - // Example: - // var x int = f() - // - // func f() int { return x } - InvalidInitCycle - - /* decls */ - - // DuplicateDecl occurs when an identifier is declared multiple times. - // - // Example: - // var x = 1 - // var x = 2 - DuplicateDecl - - // InvalidDeclCycle occurs when a declaration cycle is not valid. - // - // Example: - // import "unsafe" - // - // type T struct { - // a [n]int - // } - // - // var n = unsafe.Sizeof(T{}) - InvalidDeclCycle - - // InvalidTypeCycle occurs when a cycle in type definitions results in a - // type that is not well-defined. - // - // Example: - // import "unsafe" - // - // type T [unsafe.Sizeof(T{})]int - InvalidTypeCycle - - /* decls > const */ - - // InvalidConstInit occurs when a const declaration has a non-constant - // initializer. - // - // Example: - // var x int - // const _ = x - InvalidConstInit - - // InvalidConstVal occurs when a const value cannot be converted to its - // target type. - // - // TODO(findleyr): this error code and example are not very clear. Consider - // removing it. - // - // Example: - // const _ = 1 << "hello" - InvalidConstVal - - // InvalidConstType occurs when the underlying type in a const declaration - // is not a valid constant type. - // - // Example: - // const c *int = 4 - InvalidConstType - - /* decls > var (+ other variable assignment codes) */ - - // UntypedNilUse occurs when the predeclared (untyped) value nil is used to - // initialize a variable declared without an explicit type. - // - // Example: - // var x = nil - UntypedNilUse - - // WrongAssignCount occurs when the number of values on the right-hand side - // of an assignment or initialization expression does not match the number - // of variables on the left-hand side. - // - // Example: - // var x = 1, 2 - WrongAssignCount - - // UnassignableOperand occurs when the left-hand side of an assignment is - // not assignable. - // - // Example: - // func f() { - // const c = 1 - // c = 2 - // } - UnassignableOperand - - // NoNewVar occurs when a short variable declaration (':=') does not declare - // new variables. - // - // Example: - // func f() { - // x := 1 - // x := 2 - // } - NoNewVar - - // MultiValAssignOp occurs when an assignment operation (+=, *=, etc) does - // not have single-valued left-hand or right-hand side. - // - // Per the spec: - // "In assignment operations, both the left- and right-hand expression lists - // must contain exactly one single-valued expression" - // - // Example: - // func f() int { - // x, y := 1, 2 - // x, y += 1 - // return x + y - // } - MultiValAssignOp - - // InvalidIfaceAssign occurs when a value of type T is used as an - // interface, but T does not implement a method of the expected interface. - // - // Example: - // type I interface { - // f() - // } - // - // type T int - // - // var x I = T(1) - InvalidIfaceAssign - - // InvalidChanAssign occurs when a chan assignment is invalid. - // - // Per the spec, a value x is assignable to a channel type T if: - // "x is a bidirectional channel value, T is a channel type, x's type V and - // T have identical element types, and at least one of V or T is not a - // defined type." - // - // Example: - // type T1 chan int - // type T2 chan int - // - // var x T1 - // // Invalid assignment because both types are named - // var _ T2 = x - InvalidChanAssign - - // IncompatibleAssign occurs when the type of the right-hand side expression - // in an assignment cannot be assigned to the type of the variable being - // assigned. - // - // Example: - // var x []int - // var _ int = x - IncompatibleAssign - - // UnaddressableFieldAssign occurs when trying to assign to a struct field - // in a map value. - // - // Example: - // func f() { - // m := make(map[string]struct{i int}) - // m["foo"].i = 42 - // } - UnaddressableFieldAssign - - /* decls > type (+ other type expression codes) */ - - // NotAType occurs when the identifier used as the underlying type in a type - // declaration or the right-hand side of a type alias does not denote a type. - // - // Example: - // var S = 2 - // - // type T S - NotAType - - // InvalidArrayLen occurs when an array length is not a constant value. - // - // Example: - // var n = 3 - // var _ = [n]int{} - InvalidArrayLen - - // BlankIfaceMethod occurs when a method name is '_'. - // - // Per the spec: - // "The name of each explicitly specified method must be unique and not - // blank." - // - // Example: - // type T interface { - // _(int) - // } - BlankIfaceMethod - - // IncomparableMapKey occurs when a map key type does not support the == and - // != operators. - // - // Per the spec: - // "The comparison operators == and != must be fully defined for operands of - // the key type; thus the key type must not be a function, map, or slice." - // - // Example: - // var x map[T]int - // - // type T []int - IncomparableMapKey - - // InvalidIfaceEmbed occurs when a non-interface type is embedded in an - // interface. - // - // Example: - // type T struct {} - // - // func (T) m() - // - // type I interface { - // T - // } - InvalidIfaceEmbed - - // InvalidPtrEmbed occurs when an embedded field is of the pointer form *T, - // and T itself is itself a pointer, an unsafe.Pointer, or an interface. - // - // Per the spec: - // "An embedded field must be specified as a type name T or as a pointer to - // a non-interface type name *T, and T itself may not be a pointer type." - // - // Example: - // type T *int - // - // type S struct { - // *T - // } - InvalidPtrEmbed - - /* decls > func and method */ - - // BadRecv occurs when a method declaration does not have exactly one - // receiver parameter. - // - // Example: - // func () _() {} - BadRecv - - // InvalidRecv occurs when a receiver type expression is not of the form T - // or *T, or T is a pointer type. - // - // Example: - // type T struct {} - // - // func (**T) m() {} - InvalidRecv - - // DuplicateFieldAndMethod occurs when an identifier appears as both a field - // and method name. - // - // Example: - // type T struct { - // m int - // } - // - // func (T) m() {} - DuplicateFieldAndMethod - - // DuplicateMethod occurs when two methods on the same receiver type have - // the same name. - // - // Example: - // type T struct {} - // func (T) m() {} - // func (T) m(i int) int { return i } - DuplicateMethod - - /* decls > special */ - - // InvalidBlank occurs when a blank identifier is used as a value or type. - // - // Per the spec: - // "The blank identifier may appear as an operand only on the left-hand side - // of an assignment." - // - // Example: - // var x = _ - InvalidBlank - - // InvalidIota occurs when the predeclared identifier iota is used outside - // of a constant declaration. - // - // Example: - // var x = iota - InvalidIota - - // MissingInitBody occurs when an init function is missing its body. - // - // Example: - // func init() - MissingInitBody - - // InvalidInitSig occurs when an init function declares parameters or - // results. - // - // Example: - // func init() int { return 1 } - InvalidInitSig - - // InvalidInitDecl occurs when init is declared as anything other than a - // function. - // - // Example: - // var init = 1 - InvalidInitDecl - - // InvalidMainDecl occurs when main is declared as anything other than a - // function, in a main package. - InvalidMainDecl - - /* exprs */ - - // TooManyValues occurs when a function returns too many values for the - // expression context in which it is used. - // - // Example: - // func ReturnTwo() (int, int) { - // return 1, 2 - // } - // - // var x = ReturnTwo() - TooManyValues - - // NotAnExpr occurs when a type expression is used where a value expression - // is expected. - // - // Example: - // type T struct {} - // - // func f() { - // T - // } - NotAnExpr - - /* exprs > const */ - - // TruncatedFloat occurs when a float constant is truncated to an integer - // value. - // - // Example: - // var _ int = 98.6 - TruncatedFloat - - // NumericOverflow occurs when a numeric constant overflows its target type. - // - // Example: - // var x int8 = 1000 - NumericOverflow - - /* exprs > operation */ - - // UndefinedOp occurs when an operator is not defined for the type(s) used - // in an operation. - // - // Example: - // var c = "a" - "b" - UndefinedOp - - // MismatchedTypes occurs when operand types are incompatible in a binary - // operation. - // - // Example: - // var a = "hello" - // var b = 1 - // var c = a - b - MismatchedTypes - - // DivByZero occurs when a division operation is provable at compile - // time to be a division by zero. - // - // Example: - // const divisor = 0 - // var x int = 1/divisor - DivByZero - - // NonNumericIncDec occurs when an increment or decrement operator is - // applied to a non-numeric value. - // - // Example: - // func f() { - // var c = "c" - // c++ - // } - NonNumericIncDec - - /* exprs > ptr */ - - // UnaddressableOperand occurs when the & operator is applied to an - // unaddressable expression. - // - // Example: - // var x = &1 - UnaddressableOperand - - // InvalidIndirection occurs when a non-pointer value is indirected via the - // '*' operator. - // - // Example: - // var x int - // var y = *x - InvalidIndirection - - /* exprs > [] */ - - // NonIndexableOperand occurs when an index operation is applied to a value - // that cannot be indexed. - // - // Example: - // var x = 1 - // var y = x[1] - NonIndexableOperand - - // InvalidIndex occurs when an index argument is not of integer type, - // negative, or out-of-bounds. - // - // Example: - // var s = [...]int{1,2,3} - // var x = s[5] - // - // Example: - // var s = []int{1,2,3} - // var _ = s[-1] - // - // Example: - // var s = []int{1,2,3} - // var i string - // var _ = s[i] - InvalidIndex - - // SwappedSliceIndices occurs when constant indices in a slice expression - // are decreasing in value. - // - // Example: - // var _ = []int{1,2,3}[2:1] - SwappedSliceIndices - - /* operators > slice */ - - // NonSliceableOperand occurs when a slice operation is applied to a value - // whose type is not sliceable, or is unaddressable. - // - // Example: - // var x = [...]int{1, 2, 3}[:1] - // - // Example: - // var x = 1 - // var y = 1[:1] - NonSliceableOperand - - // InvalidSliceExpr occurs when a three-index slice expression (a[x:y:z]) is - // applied to a string. - // - // Example: - // var s = "hello" - // var x = s[1:2:3] - InvalidSliceExpr - - /* exprs > shift */ - - // InvalidShiftCount occurs when the right-hand side of a shift operation is - // either non-integer, negative, or too large. - // - // Example: - // var ( - // x string - // y int = 1 << x - // ) - InvalidShiftCount - - // InvalidShiftOperand occurs when the shifted operand is not an integer. - // - // Example: - // var s = "hello" - // var x = s << 2 - InvalidShiftOperand - - /* exprs > chan */ - - // InvalidReceive occurs when there is a channel receive from a value that - // is either not a channel, or is a send-only channel. - // - // Example: - // func f() { - // var x = 1 - // <-x - // } - InvalidReceive - - // InvalidSend occurs when there is a channel send to a value that is not a - // channel, or is a receive-only channel. - // - // Example: - // func f() { - // var x = 1 - // x <- "hello!" - // } - InvalidSend - - /* exprs > literal */ - - // DuplicateLitKey occurs when an index is duplicated in a slice, array, or - // map literal. - // - // Example: - // var _ = []int{0:1, 0:2} - // - // Example: - // var _ = map[string]int{"a": 1, "a": 2} - DuplicateLitKey - - // MissingLitKey occurs when a map literal is missing a key expression. - // - // Example: - // var _ = map[string]int{1} - MissingLitKey - - // InvalidLitIndex occurs when the key in a key-value element of a slice or - // array literal is not an integer constant. - // - // Example: - // var i = 0 - // var x = []string{i: "world"} - InvalidLitIndex - - // OversizeArrayLit occurs when an array literal exceeds its length. - // - // Example: - // var _ = [2]int{1,2,3} - OversizeArrayLit - - // MixedStructLit occurs when a struct literal contains a mix of positional - // and named elements. - // - // Example: - // var _ = struct{i, j int}{i: 1, 2} - MixedStructLit - - // InvalidStructLit occurs when a positional struct literal has an incorrect - // number of values. - // - // Example: - // var _ = struct{i, j int}{1,2,3} - InvalidStructLit - - // MissingLitField occurs when a struct literal refers to a field that does - // not exist on the struct type. - // - // Example: - // var _ = struct{i int}{j: 2} - MissingLitField - - // DuplicateLitField occurs when a struct literal contains duplicated - // fields. - // - // Example: - // var _ = struct{i int}{i: 1, i: 2} - DuplicateLitField - - // UnexportedLitField occurs when a positional struct literal implicitly - // assigns an unexported field of an imported type. - UnexportedLitField - - // InvalidLitField occurs when a field name is not a valid identifier. - // - // Example: - // var _ = struct{i int}{1: 1} - InvalidLitField - - // UntypedLit occurs when a composite literal omits a required type - // identifier. - // - // Example: - // type outer struct{ - // inner struct { i int } - // } - // - // var _ = outer{inner: {1}} - UntypedLit - - // InvalidLit occurs when a composite literal expression does not match its - // type. - // - // Example: - // type P *struct{ - // x int - // } - // var _ = P {} - InvalidLit - - /* exprs > selector */ - - // AmbiguousSelector occurs when a selector is ambiguous. - // - // Example: - // type E1 struct { i int } - // type E2 struct { i int } - // type T struct { E1; E2 } - // - // var x T - // var _ = x.i - AmbiguousSelector - - // UndeclaredImportedName occurs when a package-qualified identifier is - // undeclared by the imported package. - // - // Example: - // import "go/types" - // - // var _ = types.NotAnActualIdentifier - UndeclaredImportedName - - // UnexportedName occurs when a selector refers to an unexported identifier - // of an imported package. - // - // Example: - // import "reflect" - // - // type _ reflect.flag - UnexportedName - - // UndeclaredName occurs when an identifier is not declared in the current - // scope. - // - // Example: - // var x T - UndeclaredName - - // MissingFieldOrMethod occurs when a selector references a field or method - // that does not exist. - // - // Example: - // type T struct {} - // - // var x = T{}.f - MissingFieldOrMethod - - /* exprs > ... */ - - // BadDotDotDotSyntax occurs when a "..." occurs in a context where it is - // not valid. - // - // Example: - // var _ = map[int][...]int{0: {}} - BadDotDotDotSyntax - - // NonVariadicDotDotDot occurs when a "..." is used on the final argument to - // a non-variadic function. - // - // Example: - // func printArgs(s []string) { - // for _, a := range s { - // println(a) - // } - // } - // - // func f() { - // s := []string{"a", "b", "c"} - // printArgs(s...) - // } - NonVariadicDotDotDot - - // MisplacedDotDotDot occurs when a "..." is used somewhere other than the - // final argument to a function call. - // - // Example: - // func printArgs(args ...int) { - // for _, a := range args { - // println(a) - // } - // } - // - // func f() { - // a := []int{1,2,3} - // printArgs(0, a...) - // } - MisplacedDotDotDot - - // InvalidDotDotDotOperand occurs when a "..." operator is applied to a - // single-valued operand. - // - // Example: - // func printArgs(args ...int) { - // for _, a := range args { - // println(a) - // } - // } - // - // func f() { - // a := 1 - // printArgs(a...) - // } - // - // Example: - // func args() (int, int) { - // return 1, 2 - // } - // - // func printArgs(args ...int) { - // for _, a := range args { - // println(a) - // } - // } - // - // func g() { - // printArgs(args()...) - // } - InvalidDotDotDotOperand - - // InvalidDotDotDot occurs when a "..." is used in a non-variadic built-in - // function. - // - // Example: - // var s = []int{1, 2, 3} - // var l = len(s...) - InvalidDotDotDot - - /* exprs > built-in */ - - // UncalledBuiltin occurs when a built-in function is used as a - // function-valued expression, instead of being called. - // - // Per the spec: - // "The built-in functions do not have standard Go types, so they can only - // appear in call expressions; they cannot be used as function values." - // - // Example: - // var _ = copy - UncalledBuiltin - - // InvalidAppend occurs when append is called with a first argument that is - // not a slice. - // - // Example: - // var _ = append(1, 2) - InvalidAppend - - // InvalidCap occurs when an argument to the cap built-in function is not of - // supported type. - // - // See https://golang.org/ref/spec#Length_and_capacity for information on - // which underlying types are supported as arguments to cap and len. - // - // Example: - // var s = 2 - // var x = cap(s) - InvalidCap - - // InvalidClose occurs when close(...) is called with an argument that is - // not of channel type, or that is a receive-only channel. - // - // Example: - // func f() { - // var x int - // close(x) - // } - InvalidClose - - // InvalidCopy occurs when the arguments are not of slice type or do not - // have compatible type. - // - // See https://golang.org/ref/spec#Appending_and_copying_slices for more - // information on the type requirements for the copy built-in. - // - // Example: - // func f() { - // var x []int - // y := []int64{1,2,3} - // copy(x, y) - // } - InvalidCopy - - // InvalidComplex occurs when the complex built-in function is called with - // arguments with incompatible types. - // - // Example: - // var _ = complex(float32(1), float64(2)) - InvalidComplex - - // InvalidDelete occurs when the delete built-in function is called with a - // first argument that is not a map. - // - // Example: - // func f() { - // m := "hello" - // delete(m, "e") - // } - InvalidDelete - - // InvalidImag occurs when the imag built-in function is called with an - // argument that does not have complex type. - // - // Example: - // var _ = imag(int(1)) - InvalidImag - - // InvalidLen occurs when an argument to the len built-in function is not of - // supported type. - // - // See https://golang.org/ref/spec#Length_and_capacity for information on - // which underlying types are supported as arguments to cap and len. - // - // Example: - // var s = 2 - // var x = len(s) - InvalidLen - - // SwappedMakeArgs occurs when make is called with three arguments, and its - // length argument is larger than its capacity argument. - // - // Example: - // var x = make([]int, 3, 2) - SwappedMakeArgs - - // InvalidMake occurs when make is called with an unsupported type argument. - // - // See https://golang.org/ref/spec#Making_slices_maps_and_channels for - // information on the types that may be created using make. - // - // Example: - // var x = make(int) - InvalidMake - - // InvalidReal occurs when the real built-in function is called with an - // argument that does not have complex type. - // - // Example: - // var _ = real(int(1)) - InvalidReal - - /* exprs > assertion */ - - // InvalidAssert occurs when a type assertion is applied to a - // value that is not of interface type. - // - // Example: - // var x = 1 - // var _ = x.(float64) - InvalidAssert - - // ImpossibleAssert occurs for a type assertion x.(T) when the value x of - // interface cannot have dynamic type T, due to a missing or mismatching - // method on T. - // - // Example: - // type T int - // - // func (t *T) m() int { return int(*t) } - // - // type I interface { m() int } - // - // var x I - // var _ = x.(T) - ImpossibleAssert - - /* exprs > conversion */ - - // InvalidConversion occurs when the argument type cannot be converted to the - // target. - // - // See https://golang.org/ref/spec#Conversions for the rules of - // convertibility. - // - // Example: - // var x float64 - // var _ = string(x) - InvalidConversion - - // InvalidUntypedConversion occurs when an there is no valid implicit - // conversion from an untyped value satisfying the type constraints of the - // context in which it is used. - // - // Example: - // var _ = 1 + "" - InvalidUntypedConversion - - /* offsetof */ - - // BadOffsetofSyntax occurs when unsafe.Offsetof is called with an argument - // that is not a selector expression. - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Offsetof(x) - BadOffsetofSyntax - - // InvalidOffsetof occurs when unsafe.Offsetof is called with a method - // selector, rather than a field selector, or when the field is embedded via - // a pointer. - // - // Per the spec: - // - // "If f is an embedded field, it must be reachable without pointer - // indirections through fields of the struct. " - // - // Example: - // import "unsafe" - // - // type T struct { f int } - // type S struct { *T } - // var s S - // var _ = unsafe.Offsetof(s.f) - // - // Example: - // import "unsafe" - // - // type S struct{} - // - // func (S) m() {} - // - // var s S - // var _ = unsafe.Offsetof(s.m) - InvalidOffsetof - - /* control flow > scope */ - - // UnusedExpr occurs when a side-effect free expression is used as a - // statement. Such a statement has no effect. - // - // Example: - // func f(i int) { - // i*i - // } - UnusedExpr - - // UnusedVar occurs when a variable is declared but unused. - // - // Example: - // func f() { - // x := 1 - // } - UnusedVar - - // MissingReturn occurs when a function with results is missing a return - // statement. - // - // Example: - // func f() int {} - MissingReturn - - // WrongResultCount occurs when a return statement returns an incorrect - // number of values. - // - // Example: - // func ReturnOne() int { - // return 1, 2 - // } - WrongResultCount - - // OutOfScopeResult occurs when the name of a value implicitly returned by - // an empty return statement is shadowed in a nested scope. - // - // Example: - // func factor(n int) (i int) { - // for i := 2; i < n; i++ { - // if n%i == 0 { - // return - // } - // } - // return 0 - // } - OutOfScopeResult - - /* control flow > if */ - - // InvalidCond occurs when an if condition is not a boolean expression. - // - // Example: - // func checkReturn(i int) { - // if i { - // panic("non-zero return") - // } - // } - InvalidCond - - /* control flow > for */ - - // InvalidPostDecl occurs when there is a declaration in a for-loop post - // statement. - // - // Example: - // func f() { - // for i := 0; i < 10; j := 0 {} - // } - InvalidPostDecl - - // InvalidChanRange occurs when a send-only channel used in a range - // expression. - // - // Example: - // func sum(c chan<- int) { - // s := 0 - // for i := range c { - // s += i - // } - // } - InvalidChanRange - - // InvalidIterVar occurs when two iteration variables are used while ranging - // over a channel. - // - // Example: - // func f(c chan int) { - // for k, v := range c { - // println(k, v) - // } - // } - InvalidIterVar - - // InvalidRangeExpr occurs when the type of a range expression is not array, - // slice, string, map, or channel. - // - // Example: - // func f(i int) { - // for j := range i { - // println(j) - // } - // } - InvalidRangeExpr - - /* control flow > switch */ - - // MisplacedBreak occurs when a break statement is not within a for, switch, - // or select statement of the innermost function definition. - // - // Example: - // func f() { - // break - // } - MisplacedBreak - - // MisplacedContinue occurs when a continue statement is not within a for - // loop of the innermost function definition. - // - // Example: - // func sumeven(n int) int { - // proceed := func() { - // continue - // } - // sum := 0 - // for i := 1; i <= n; i++ { - // if i % 2 != 0 { - // proceed() - // } - // sum += i - // } - // return sum - // } - MisplacedContinue - - // MisplacedFallthrough occurs when a fallthrough statement is not within an - // expression switch. - // - // Example: - // func typename(i interface{}) string { - // switch i.(type) { - // case int64: - // fallthrough - // case int: - // return "int" - // } - // return "unsupported" - // } - MisplacedFallthrough - - // DuplicateCase occurs when a type or expression switch has duplicate - // cases. - // - // Example: - // func printInt(i int) { - // switch i { - // case 1: - // println("one") - // case 1: - // println("One") - // } - // } - DuplicateCase - - // DuplicateDefault occurs when a type or expression switch has multiple - // default clauses. - // - // Example: - // func printInt(i int) { - // switch i { - // case 1: - // println("one") - // default: - // println("One") - // default: - // println("1") - // } - // } - DuplicateDefault - - // BadTypeKeyword occurs when a .(type) expression is used anywhere other - // than a type switch. - // - // Example: - // type I interface { - // m() - // } - // var t I - // var _ = t.(type) - BadTypeKeyword - - // InvalidTypeSwitch occurs when .(type) is used on an expression that is - // not of interface type. - // - // Example: - // func f(i int) { - // switch x := i.(type) {} - // } - InvalidTypeSwitch - - // InvalidExprSwitch occurs when a switch expression is not comparable. - // - // Example: - // func _() { - // var a struct{ _ func() } - // switch a /* ERROR cannot switch on a */ { - // } - // } - InvalidExprSwitch - - /* control flow > select */ - - // InvalidSelectCase occurs when a select case is not a channel send or - // receive. - // - // Example: - // func checkChan(c <-chan int) bool { - // select { - // case c: - // return true - // default: - // return false - // } - // } - InvalidSelectCase - - /* control flow > labels and jumps */ - - // UndeclaredLabel occurs when an undeclared label is jumped to. - // - // Example: - // func f() { - // goto L - // } - UndeclaredLabel - - // DuplicateLabel occurs when a label is declared more than once. - // - // Example: - // func f() int { - // L: - // L: - // return 1 - // } - DuplicateLabel - - // MisplacedLabel occurs when a break or continue label is not on a for, - // switch, or select statement. - // - // Example: - // func f() { - // L: - // a := []int{1,2,3} - // for _, e := range a { - // if e > 10 { - // break L - // } - // println(a) - // } - // } - MisplacedLabel - - // UnusedLabel occurs when a label is declared but not used. - // - // Example: - // func f() { - // L: - // } - UnusedLabel - - // JumpOverDecl occurs when a label jumps over a variable declaration. - // - // Example: - // func f() int { - // goto L - // x := 2 - // L: - // x++ - // return x - // } - JumpOverDecl - - // JumpIntoBlock occurs when a forward jump goes to a label inside a nested - // block. - // - // Example: - // func f(x int) { - // goto L - // if x > 0 { - // L: - // print("inside block") - // } - // } - JumpIntoBlock - - /* control flow > calls */ - - // InvalidMethodExpr occurs when a pointer method is called but the argument - // is not addressable. - // - // Example: - // type T struct {} - // - // func (*T) m() int { return 1 } - // - // var _ = T.m(T{}) - InvalidMethodExpr - - // WrongArgCount occurs when too few or too many arguments are passed by a - // function call. - // - // Example: - // func f(i int) {} - // var x = f() - WrongArgCount - - // InvalidCall occurs when an expression is called that is not of function - // type. - // - // Example: - // var x = "x" - // var y = x() - InvalidCall - - /* control flow > suspended */ - - // UnusedResults occurs when a restricted expression-only built-in function - // is suspended via go or defer. Such a suspension discards the results of - // these side-effect free built-in functions, and therefore is ineffectual. - // - // Example: - // func f(a []int) int { - // defer len(a) - // return i - // } - UnusedResults - - // InvalidDefer occurs when a deferred expression is not a function call, - // for example if the expression is a type conversion. - // - // Example: - // func f(i int) int { - // defer int32(i) - // return i - // } - InvalidDefer - - // InvalidGo occurs when a go expression is not a function call, for example - // if the expression is a type conversion. - // - // Example: - // func f(i int) int { - // go int32(i) - // return i - // } - InvalidGo - - // All codes below were added in Go 1.17. - - /* decl */ - - // BadDecl occurs when a declaration has invalid syntax. - BadDecl - - // RepeatedDecl occurs when an identifier occurs more than once on the left - // hand side of a short variable declaration. - // - // Example: - // func _() { - // x, y, y := 1, 2, 3 - // } - RepeatedDecl - - /* unsafe */ - - // InvalidUnsafeAdd occurs when unsafe.Add is called with a - // length argument that is not of integer type. - // - // Example: - // import "unsafe" - // - // var p unsafe.Pointer - // var _ = unsafe.Add(p, float64(1)) - InvalidUnsafeAdd - - // InvalidUnsafeSlice occurs when unsafe.Slice is called with a - // pointer argument that is not of pointer type or a length argument - // that is not of integer type, negative, or out of bounds. - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(x, 1) - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(&x, float64(1)) - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(&x, -1) - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(&x, uint64(1) << 63) - InvalidUnsafeSlice - - // All codes below were added in Go 1.18. - - /* features */ - - // UnsupportedFeature occurs when a language feature is used that is not - // supported at this Go version. - UnsupportedFeature - - /* type params */ - - // NotAGenericType occurs when a non-generic type is used where a generic - // type is expected: in type or function instantiation. - // - // Example: - // type T int - // - // var _ T[int] - NotAGenericType - - // WrongTypeArgCount occurs when a type or function is instantiated with an - // incorrect number of type arguments, including when a generic type or - // function is used without instantiation. - // - // Errors involving failed type inference are assigned other error codes. - // - // Example: - // type T[p any] int - // - // var _ T[int, string] - // - // Example: - // func f[T any]() {} - // - // var x = f - WrongTypeArgCount - - // CannotInferTypeArgs occurs when type or function type argument inference - // fails to infer all type arguments. - // - // Example: - // func f[T any]() {} - // - // func _() { - // f() - // } - // - // Example: - // type N[P, Q any] struct{} - // - // var _ N[int] - CannotInferTypeArgs - - // InvalidTypeArg occurs when a type argument does not satisfy its - // corresponding type parameter constraints. - // - // Example: - // type T[P ~int] struct{} - // - // var _ T[string] - InvalidTypeArg // arguments? InferenceFailed - - // InvalidInstanceCycle occurs when an invalid cycle is detected - // within the instantiation graph. - // - // Example: - // func f[T any]() { f[*T]() } - InvalidInstanceCycle - - // InvalidUnion occurs when an embedded union or approximation element is - // not valid. - // - // Example: - // type _ interface { - // ~int | interface{ m() } - // } - InvalidUnion - - // MisplacedConstraintIface occurs when a constraint-type interface is used - // outside of constraint position. - // - // Example: - // type I interface { ~int } - // - // var _ I - MisplacedConstraintIface - - // InvalidMethodTypeParams occurs when methods have type parameters. - // - // It cannot be encountered with an AST parsed using go/parser. - InvalidMethodTypeParams - - // MisplacedTypeParam occurs when a type parameter is used in a place where - // it is not permitted. - // - // Example: - // type T[P any] P - // - // Example: - // type T[P any] struct{ *P } - MisplacedTypeParam - - // InvalidUnsafeSliceData occurs when unsafe.SliceData is called with - // an argument that is not of slice type. It also occurs if it is used - // in a package compiled for a language version before go1.20. - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.SliceData(x) - InvalidUnsafeSliceData - - // InvalidUnsafeString occurs when unsafe.String is called with - // a length argument that is not of integer type, negative, or - // out of bounds. It also occurs if it is used in a package - // compiled for a language version before go1.20. - // - // Example: - // import "unsafe" - // - // var b [10]byte - // var _ = unsafe.String(&b[0], -1) - InvalidUnsafeString - - // InvalidUnsafeStringData occurs if it is used in a package - // compiled for a language version before go1.20. - _ // not used anymore - -) diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go deleted file mode 100644 index 15ecf7c5..00000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go +++ /dev/null @@ -1,179 +0,0 @@ -// Code generated by "stringer -type=ErrorCode"; DO NOT EDIT. - -package typesinternal - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[InvalidSyntaxTree - -1] - _ = x[Test-1] - _ = x[BlankPkgName-2] - _ = x[MismatchedPkgName-3] - _ = x[InvalidPkgUse-4] - _ = x[BadImportPath-5] - _ = x[BrokenImport-6] - _ = x[ImportCRenamed-7] - _ = x[UnusedImport-8] - _ = x[InvalidInitCycle-9] - _ = x[DuplicateDecl-10] - _ = x[InvalidDeclCycle-11] - _ = x[InvalidTypeCycle-12] - _ = x[InvalidConstInit-13] - _ = x[InvalidConstVal-14] - _ = x[InvalidConstType-15] - _ = x[UntypedNilUse-16] - _ = x[WrongAssignCount-17] - _ = x[UnassignableOperand-18] - _ = x[NoNewVar-19] - _ = x[MultiValAssignOp-20] - _ = x[InvalidIfaceAssign-21] - _ = x[InvalidChanAssign-22] - _ = x[IncompatibleAssign-23] - _ = x[UnaddressableFieldAssign-24] - _ = x[NotAType-25] - _ = x[InvalidArrayLen-26] - _ = x[BlankIfaceMethod-27] - _ = x[IncomparableMapKey-28] - _ = x[InvalidIfaceEmbed-29] - _ = x[InvalidPtrEmbed-30] - _ = x[BadRecv-31] - _ = x[InvalidRecv-32] - _ = x[DuplicateFieldAndMethod-33] - _ = x[DuplicateMethod-34] - _ = x[InvalidBlank-35] - _ = x[InvalidIota-36] - _ = x[MissingInitBody-37] - _ = x[InvalidInitSig-38] - _ = x[InvalidInitDecl-39] - _ = x[InvalidMainDecl-40] - _ = x[TooManyValues-41] - _ = x[NotAnExpr-42] - _ = x[TruncatedFloat-43] - _ = x[NumericOverflow-44] - _ = x[UndefinedOp-45] - _ = x[MismatchedTypes-46] - _ = x[DivByZero-47] - _ = x[NonNumericIncDec-48] - _ = x[UnaddressableOperand-49] - _ = x[InvalidIndirection-50] - _ = x[NonIndexableOperand-51] - _ = x[InvalidIndex-52] - _ = x[SwappedSliceIndices-53] - _ = x[NonSliceableOperand-54] - _ = x[InvalidSliceExpr-55] - _ = x[InvalidShiftCount-56] - _ = x[InvalidShiftOperand-57] - _ = x[InvalidReceive-58] - _ = x[InvalidSend-59] - _ = x[DuplicateLitKey-60] - _ = x[MissingLitKey-61] - _ = x[InvalidLitIndex-62] - _ = x[OversizeArrayLit-63] - _ = x[MixedStructLit-64] - _ = x[InvalidStructLit-65] - _ = x[MissingLitField-66] - _ = x[DuplicateLitField-67] - _ = x[UnexportedLitField-68] - _ = x[InvalidLitField-69] - _ = x[UntypedLit-70] - _ = x[InvalidLit-71] - _ = x[AmbiguousSelector-72] - _ = x[UndeclaredImportedName-73] - _ = x[UnexportedName-74] - _ = x[UndeclaredName-75] - _ = x[MissingFieldOrMethod-76] - _ = x[BadDotDotDotSyntax-77] - _ = x[NonVariadicDotDotDot-78] - _ = x[MisplacedDotDotDot-79] - _ = x[InvalidDotDotDotOperand-80] - _ = x[InvalidDotDotDot-81] - _ = x[UncalledBuiltin-82] - _ = x[InvalidAppend-83] - _ = x[InvalidCap-84] - _ = x[InvalidClose-85] - _ = x[InvalidCopy-86] - _ = x[InvalidComplex-87] - _ = x[InvalidDelete-88] - _ = x[InvalidImag-89] - _ = x[InvalidLen-90] - _ = x[SwappedMakeArgs-91] - _ = x[InvalidMake-92] - _ = x[InvalidReal-93] - _ = x[InvalidAssert-94] - _ = x[ImpossibleAssert-95] - _ = x[InvalidConversion-96] - _ = x[InvalidUntypedConversion-97] - _ = x[BadOffsetofSyntax-98] - _ = x[InvalidOffsetof-99] - _ = x[UnusedExpr-100] - _ = x[UnusedVar-101] - _ = x[MissingReturn-102] - _ = x[WrongResultCount-103] - _ = x[OutOfScopeResult-104] - _ = x[InvalidCond-105] - _ = x[InvalidPostDecl-106] - _ = x[InvalidChanRange-107] - _ = x[InvalidIterVar-108] - _ = x[InvalidRangeExpr-109] - _ = x[MisplacedBreak-110] - _ = x[MisplacedContinue-111] - _ = x[MisplacedFallthrough-112] - _ = x[DuplicateCase-113] - _ = x[DuplicateDefault-114] - _ = x[BadTypeKeyword-115] - _ = x[InvalidTypeSwitch-116] - _ = x[InvalidExprSwitch-117] - _ = x[InvalidSelectCase-118] - _ = x[UndeclaredLabel-119] - _ = x[DuplicateLabel-120] - _ = x[MisplacedLabel-121] - _ = x[UnusedLabel-122] - _ = x[JumpOverDecl-123] - _ = x[JumpIntoBlock-124] - _ = x[InvalidMethodExpr-125] - _ = x[WrongArgCount-126] - _ = x[InvalidCall-127] - _ = x[UnusedResults-128] - _ = x[InvalidDefer-129] - _ = x[InvalidGo-130] - _ = x[BadDecl-131] - _ = x[RepeatedDecl-132] - _ = x[InvalidUnsafeAdd-133] - _ = x[InvalidUnsafeSlice-134] - _ = x[UnsupportedFeature-135] - _ = x[NotAGenericType-136] - _ = x[WrongTypeArgCount-137] - _ = x[CannotInferTypeArgs-138] - _ = x[InvalidTypeArg-139] - _ = x[InvalidInstanceCycle-140] - _ = x[InvalidUnion-141] - _ = x[MisplacedConstraintIface-142] - _ = x[InvalidMethodTypeParams-143] - _ = x[MisplacedTypeParam-144] - _ = x[InvalidUnsafeSliceData-145] - _ = x[InvalidUnsafeString-146] -} - -const ( - _ErrorCode_name_0 = "InvalidSyntaxTree" - _ErrorCode_name_1 = "TestBlankPkgNameMismatchedPkgNameInvalidPkgUseBadImportPathBrokenImportImportCRenamedUnusedImportInvalidInitCycleDuplicateDeclInvalidDeclCycleInvalidTypeCycleInvalidConstInitInvalidConstValInvalidConstTypeUntypedNilUseWrongAssignCountUnassignableOperandNoNewVarMultiValAssignOpInvalidIfaceAssignInvalidChanAssignIncompatibleAssignUnaddressableFieldAssignNotATypeInvalidArrayLenBlankIfaceMethodIncomparableMapKeyInvalidIfaceEmbedInvalidPtrEmbedBadRecvInvalidRecvDuplicateFieldAndMethodDuplicateMethodInvalidBlankInvalidIotaMissingInitBodyInvalidInitSigInvalidInitDeclInvalidMainDeclTooManyValuesNotAnExprTruncatedFloatNumericOverflowUndefinedOpMismatchedTypesDivByZeroNonNumericIncDecUnaddressableOperandInvalidIndirectionNonIndexableOperandInvalidIndexSwappedSliceIndicesNonSliceableOperandInvalidSliceExprInvalidShiftCountInvalidShiftOperandInvalidReceiveInvalidSendDuplicateLitKeyMissingLitKeyInvalidLitIndexOversizeArrayLitMixedStructLitInvalidStructLitMissingLitFieldDuplicateLitFieldUnexportedLitFieldInvalidLitFieldUntypedLitInvalidLitAmbiguousSelectorUndeclaredImportedNameUnexportedNameUndeclaredNameMissingFieldOrMethodBadDotDotDotSyntaxNonVariadicDotDotDotMisplacedDotDotDotInvalidDotDotDotOperandInvalidDotDotDotUncalledBuiltinInvalidAppendInvalidCapInvalidCloseInvalidCopyInvalidComplexInvalidDeleteInvalidImagInvalidLenSwappedMakeArgsInvalidMakeInvalidRealInvalidAssertImpossibleAssertInvalidConversionInvalidUntypedConversionBadOffsetofSyntaxInvalidOffsetofUnusedExprUnusedVarMissingReturnWrongResultCountOutOfScopeResultInvalidCondInvalidPostDeclInvalidChanRangeInvalidIterVarInvalidRangeExprMisplacedBreakMisplacedContinueMisplacedFallthroughDuplicateCaseDuplicateDefaultBadTypeKeywordInvalidTypeSwitchInvalidExprSwitchInvalidSelectCaseUndeclaredLabelDuplicateLabelMisplacedLabelUnusedLabelJumpOverDeclJumpIntoBlockInvalidMethodExprWrongArgCountInvalidCallUnusedResultsInvalidDeferInvalidGoBadDeclRepeatedDeclInvalidUnsafeAddInvalidUnsafeSliceUnsupportedFeatureNotAGenericTypeWrongTypeArgCountCannotInferTypeArgsInvalidTypeArgInvalidInstanceCycleInvalidUnionMisplacedConstraintIfaceInvalidMethodTypeParamsMisplacedTypeParamInvalidUnsafeSliceDataInvalidUnsafeString" -) - -var ( - _ErrorCode_index_1 = [...]uint16{0, 4, 16, 33, 46, 59, 71, 85, 97, 113, 126, 142, 158, 174, 189, 205, 218, 234, 253, 261, 277, 295, 312, 330, 354, 362, 377, 393, 411, 428, 443, 450, 461, 484, 499, 511, 522, 537, 551, 566, 581, 594, 603, 617, 632, 643, 658, 667, 683, 703, 721, 740, 752, 771, 790, 806, 823, 842, 856, 867, 882, 895, 910, 926, 940, 956, 971, 988, 1006, 1021, 1031, 1041, 1058, 1080, 1094, 1108, 1128, 1146, 1166, 1184, 1207, 1223, 1238, 1251, 1261, 1273, 1284, 1298, 1311, 1322, 1332, 1347, 1358, 1369, 1382, 1398, 1415, 1439, 1456, 1471, 1481, 1490, 1503, 1519, 1535, 1546, 1561, 1577, 1591, 1607, 1621, 1638, 1658, 1671, 1687, 1701, 1718, 1735, 1752, 1767, 1781, 1795, 1806, 1818, 1831, 1848, 1861, 1872, 1885, 1897, 1906, 1913, 1925, 1941, 1959, 1977, 1992, 2009, 2028, 2042, 2062, 2074, 2098, 2121, 2139, 2161, 2180} -) - -func (i ErrorCode) String() string { - switch { - case i == -1: - return _ErrorCode_name_0 - case 1 <= i && i <= 146: - i -= 1 - return _ErrorCode_name_1[_ErrorCode_index_1[i]:_ErrorCode_index_1[i+1]] - default: - return "ErrorCode(" + strconv.FormatInt(int64(i), 10) + ")" - } -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go deleted file mode 100644 index b64f714e..00000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "go/ast" - "go/types" - "strconv" -) - -// FileQualifier returns a [types.Qualifier] function that qualifies -// imported symbols appropriately based on the import environment of a given -// file. -// If the same package is imported multiple times, the last appearance is -// recorded. -func FileQualifier(f *ast.File, pkg *types.Package) types.Qualifier { - // Construct mapping of import paths to their defined names. - // It is only necessary to look at renaming imports. - imports := make(map[string]string) - for _, imp := range f.Imports { - if imp.Name != nil && imp.Name.Name != "_" { - path, _ := strconv.Unquote(imp.Path.Value) - imports[path] = imp.Name.Name - } - } - - // Define qualifier to replace full package paths with names of the imports. - return func(p *types.Package) string { - if p == nil || p == pkg { - return "" - } - - if name, ok := imports[p.Path()]; ok { - if name == "." { - return "" - } else { - return name - } - } - - // If there is no local renaming, fall back to the package name. - return p.Name() - } -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/recv.go b/vendor/golang.org/x/tools/internal/typesinternal/recv.go deleted file mode 100644 index e54accc6..00000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/recv.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "go/types" -) - -// ReceiverNamed returns the named type (if any) associated with the -// type of recv, which may be of the form N or *N, or aliases thereof. -// It also reports whether a Pointer was present. -// -// The named result may be nil in ill-typed code. -func ReceiverNamed(recv *types.Var) (isPtr bool, named *types.Named) { - t := recv.Type() - if ptr, ok := types.Unalias(t).(*types.Pointer); ok { - isPtr = true - t = ptr.Elem() - } - named, _ = types.Unalias(t).(*types.Named) - return -} - -// Unpointer returns T given *T or an alias thereof. -// For all other types it is the identity function. -// It does not look at underlying types. -// The result may be an alias. -// -// Use this function to strip off the optional pointer on a receiver -// in a field or method selection, without losing the named type -// (which is needed to compute the method set). -// -// See also [typeparams.MustDeref], which removes one level of -// indirection from the type, regardless of named types (analogous to -// a LOAD instruction). -func Unpointer(t types.Type) types.Type { - if ptr, ok := types.Unalias(t).(*types.Pointer); ok { - return ptr.Elem() - } - return t -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/toonew.go b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go deleted file mode 100644 index cc86487e..00000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/toonew.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "go/types" - - "golang.org/x/tools/internal/stdlib" - "golang.org/x/tools/internal/versions" -) - -// TooNewStdSymbols computes the set of package-level symbols -// exported by pkg that are not available at the specified version. -// The result maps each symbol to its minimum version. -// -// The pkg is allowed to contain type errors. -func TooNewStdSymbols(pkg *types.Package, version string) map[types.Object]string { - disallowed := make(map[types.Object]string) - - // Pass 1: package-level symbols. - symbols := stdlib.PackageSymbols[pkg.Path()] - for _, sym := range symbols { - symver := sym.Version.String() - if versions.Before(version, symver) { - switch sym.Kind { - case stdlib.Func, stdlib.Var, stdlib.Const, stdlib.Type: - disallowed[pkg.Scope().Lookup(sym.Name)] = symver - } - } - } - - // Pass 2: fields and methods. - // - // We allow fields and methods if their associated type is - // disallowed, as otherwise we would report false positives - // for compatibility shims. Consider: - // - // //go:build go1.22 - // type T struct { F std.Real } // correct new API - // - // //go:build !go1.22 - // type T struct { F fake } // shim - // type fake struct { ... } - // func (fake) M () {} - // - // These alternative declarations of T use either the std.Real - // type, introduced in go1.22, or a fake type, for the field - // F. (The fakery could be arbitrarily deep, involving more - // nested fields and methods than are shown here.) Clients - // that use the compatibility shim T will compile with any - // version of go, whether older or newer than go1.22, but only - // the newer version will use the std.Real implementation. - // - // Now consider a reference to method M in new(T).F.M() in a - // module that requires a minimum of go1.21. The analysis may - // occur using a version of Go higher than 1.21, selecting the - // first version of T, so the method M is Real.M. This would - // spuriously cause the analyzer to report a reference to a - // too-new symbol even though this expression compiles just - // fine (with the fake implementation) using go1.21. - for _, sym := range symbols { - symVersion := sym.Version.String() - if !versions.Before(version, symVersion) { - continue // allowed - } - - var obj types.Object - switch sym.Kind { - case stdlib.Field: - typename, name := sym.SplitField() - if t := pkg.Scope().Lookup(typename); t != nil && disallowed[t] == "" { - obj, _, _ = types.LookupFieldOrMethod(t.Type(), false, pkg, name) - } - - case stdlib.Method: - ptr, recvname, name := sym.SplitMethod() - if t := pkg.Scope().Lookup(recvname); t != nil && disallowed[t] == "" { - obj, _, _ = types.LookupFieldOrMethod(t.Type(), ptr, pkg, name) - } - } - if obj != nil { - disallowed[obj] = symVersion - } - } - - return disallowed -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go deleted file mode 100644 index a93d51f9..00000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/types.go +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package typesinternal provides access to internal go/types APIs that are not -// yet exported. -package typesinternal - -import ( - "go/token" - "go/types" - "reflect" - "unsafe" - - "golang.org/x/tools/internal/aliases" -) - -func SetUsesCgo(conf *types.Config) bool { - v := reflect.ValueOf(conf).Elem() - - f := v.FieldByName("go115UsesCgo") - if !f.IsValid() { - f = v.FieldByName("UsesCgo") - if !f.IsValid() { - return false - } - } - - addr := unsafe.Pointer(f.UnsafeAddr()) - *(*bool)(addr) = true - - return true -} - -// ReadGo116ErrorData extracts additional information from types.Error values -// generated by Go version 1.16 and later: the error code, start position, and -// end position. If all positions are valid, start <= err.Pos <= end. -// -// If the data could not be read, the final result parameter will be false. -func ReadGo116ErrorData(err types.Error) (code ErrorCode, start, end token.Pos, ok bool) { - var data [3]int - // By coincidence all of these fields are ints, which simplifies things. - v := reflect.ValueOf(err) - for i, name := range []string{"go116code", "go116start", "go116end"} { - f := v.FieldByName(name) - if !f.IsValid() { - return 0, 0, 0, false - } - data[i] = int(f.Int()) - } - return ErrorCode(data[0]), token.Pos(data[1]), token.Pos(data[2]), true -} - -// NameRelativeTo returns a types.Qualifier that qualifies members of -// all packages other than pkg, using only the package name. -// (By contrast, [types.RelativeTo] uses the complete package path, -// which is often excessive.) -// -// If pkg is nil, it is equivalent to [*types.Package.Name]. -func NameRelativeTo(pkg *types.Package) types.Qualifier { - return func(other *types.Package) string { - if pkg != nil && pkg == other { - return "" // same package; unqualified - } - return other.Name() - } -} - -// A NamedOrAlias is a [types.Type] that is named (as -// defined by the spec) and capable of bearing type parameters: it -// abstracts aliases ([types.Alias]) and defined types -// ([types.Named]). -// -// Every type declared by an explicit "type" declaration is a -// NamedOrAlias. (Built-in type symbols may additionally -// have type [types.Basic], which is not a NamedOrAlias, -// though the spec regards them as "named".) -// -// NamedOrAlias cannot expose the Origin method, because -// [types.Alias.Origin] and [types.Named.Origin] have different -// (covariant) result types; use [Origin] instead. -type NamedOrAlias interface { - types.Type - Obj() *types.TypeName - // TODO(hxjiang): add method TypeArgs() *types.TypeList after stop supporting go1.22. -} - -// TypeParams is a light shim around t.TypeParams(). -// (go/types.Alias).TypeParams requires >= 1.23. -func TypeParams(t NamedOrAlias) *types.TypeParamList { - switch t := t.(type) { - case *types.Alias: - return aliases.TypeParams(t) - case *types.Named: - return t.TypeParams() - } - return nil -} - -// TypeArgs is a light shim around t.TypeArgs(). -// (go/types.Alias).TypeArgs requires >= 1.23. -func TypeArgs(t NamedOrAlias) *types.TypeList { - switch t := t.(type) { - case *types.Alias: - return aliases.TypeArgs(t) - case *types.Named: - return t.TypeArgs() - } - return nil -} - -// Origin returns the generic type of the Named or Alias type t if it -// is instantiated, otherwise it returns t. -func Origin(t NamedOrAlias) NamedOrAlias { - switch t := t.(type) { - case *types.Alias: - return aliases.Origin(t) - case *types.Named: - return t.Origin() - } - return t -} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go deleted file mode 100644 index d272949c..00000000 --- a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go +++ /dev/null @@ -1,392 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -import ( - "fmt" - "go/ast" - "go/token" - "go/types" - "strings" -) - -// ZeroString returns the string representation of the zero value for any type t. -// The boolean result indicates whether the type is or contains an invalid type -// or a non-basic (constraint) interface type. -// -// Even for invalid input types, ZeroString may return a partially correct -// string representation. The caller should use the returned isValid boolean -// to determine the validity of the expression. -// -// When assigning to a wider type (such as 'any'), it's the caller's -// responsibility to handle any necessary type conversions. -// -// This string can be used on the right-hand side of an assignment where the -// left-hand side has that explicit type. -// References to named types are qualified by an appropriate (optional) -// qualifier function. -// Exception: This does not apply to tuples. Their string representation is -// informational only and cannot be used in an assignment. -// -// See [ZeroExpr] for a variant that returns an [ast.Expr]. -func ZeroString(t types.Type, qual types.Qualifier) (_ string, isValid bool) { - switch t := t.(type) { - case *types.Basic: - switch { - case t.Info()&types.IsBoolean != 0: - return "false", true - case t.Info()&types.IsNumeric != 0: - return "0", true - case t.Info()&types.IsString != 0: - return `""`, true - case t.Kind() == types.UnsafePointer: - fallthrough - case t.Kind() == types.UntypedNil: - return "nil", true - case t.Kind() == types.Invalid: - return "invalid", false - default: - panic(fmt.Sprintf("ZeroString for unexpected type %v", t)) - } - - case *types.Pointer, *types.Slice, *types.Chan, *types.Map, *types.Signature: - return "nil", true - - case *types.Interface: - if !t.IsMethodSet() { - return "invalid", false - } - return "nil", true - - case *types.Named: - switch under := t.Underlying().(type) { - case *types.Struct, *types.Array: - return types.TypeString(t, qual) + "{}", true - default: - return ZeroString(under, qual) - } - - case *types.Alias: - switch t.Underlying().(type) { - case *types.Struct, *types.Array: - return types.TypeString(t, qual) + "{}", true - default: - // A type parameter can have alias but alias type's underlying type - // can never be a type parameter. - // Use types.Unalias to preserve the info of type parameter instead - // of call Underlying() going right through and get the underlying - // type of the type parameter which is always an interface. - return ZeroString(types.Unalias(t), qual) - } - - case *types.Array, *types.Struct: - return types.TypeString(t, qual) + "{}", true - - case *types.TypeParam: - // Assumes func new is not shadowed. - return "*new(" + types.TypeString(t, qual) + ")", true - - case *types.Tuple: - // Tuples are not normal values. - // We are currently format as "(t[0], ..., t[n])". Could be something else. - isValid := true - components := make([]string, t.Len()) - for i := 0; i < t.Len(); i++ { - comp, ok := ZeroString(t.At(i).Type(), qual) - - components[i] = comp - isValid = isValid && ok - } - return "(" + strings.Join(components, ", ") + ")", isValid - - case *types.Union: - // Variables of these types cannot be created, so it makes - // no sense to ask for their zero value. - panic(fmt.Sprintf("invalid type for a variable: %v", t)) - - default: - panic(t) // unreachable. - } -} - -// ZeroExpr returns the ast.Expr representation of the zero value for any type t. -// The boolean result indicates whether the type is or contains an invalid type -// or a non-basic (constraint) interface type. -// -// Even for invalid input types, ZeroExpr may return a partially correct ast.Expr -// representation. The caller should use the returned isValid boolean to determine -// the validity of the expression. -// -// This function is designed for types suitable for variables and should not be -// used with Tuple or Union types.References to named types are qualified by an -// appropriate (optional) qualifier function. -// -// See [ZeroString] for a variant that returns a string. -func ZeroExpr(t types.Type, qual types.Qualifier) (_ ast.Expr, isValid bool) { - switch t := t.(type) { - case *types.Basic: - switch { - case t.Info()&types.IsBoolean != 0: - return &ast.Ident{Name: "false"}, true - case t.Info()&types.IsNumeric != 0: - return &ast.BasicLit{Kind: token.INT, Value: "0"}, true - case t.Info()&types.IsString != 0: - return &ast.BasicLit{Kind: token.STRING, Value: `""`}, true - case t.Kind() == types.UnsafePointer: - fallthrough - case t.Kind() == types.UntypedNil: - return ast.NewIdent("nil"), true - case t.Kind() == types.Invalid: - return &ast.BasicLit{Kind: token.STRING, Value: `"invalid"`}, false - default: - panic(fmt.Sprintf("ZeroExpr for unexpected type %v", t)) - } - - case *types.Pointer, *types.Slice, *types.Chan, *types.Map, *types.Signature: - return ast.NewIdent("nil"), true - - case *types.Interface: - if !t.IsMethodSet() { - return &ast.BasicLit{Kind: token.STRING, Value: `"invalid"`}, false - } - return ast.NewIdent("nil"), true - - case *types.Named: - switch under := t.Underlying().(type) { - case *types.Struct, *types.Array: - return &ast.CompositeLit{ - Type: TypeExpr(t, qual), - }, true - default: - return ZeroExpr(under, qual) - } - - case *types.Alias: - switch t.Underlying().(type) { - case *types.Struct, *types.Array: - return &ast.CompositeLit{ - Type: TypeExpr(t, qual), - }, true - default: - return ZeroExpr(types.Unalias(t), qual) - } - - case *types.Array, *types.Struct: - return &ast.CompositeLit{ - Type: TypeExpr(t, qual), - }, true - - case *types.TypeParam: - return &ast.StarExpr{ // *new(T) - X: &ast.CallExpr{ - // Assumes func new is not shadowed. - Fun: ast.NewIdent("new"), - Args: []ast.Expr{ - ast.NewIdent(t.Obj().Name()), - }, - }, - }, true - - case *types.Tuple: - // Unlike ZeroString, there is no ast.Expr can express tuple by - // "(t[0], ..., t[n])". - panic(fmt.Sprintf("invalid type for a variable: %v", t)) - - case *types.Union: - // Variables of these types cannot be created, so it makes - // no sense to ask for their zero value. - panic(fmt.Sprintf("invalid type for a variable: %v", t)) - - default: - panic(t) // unreachable. - } -} - -// IsZeroExpr uses simple syntactic heuristics to report whether expr -// is a obvious zero value, such as 0, "", nil, or false. -// It cannot do better without type information. -func IsZeroExpr(expr ast.Expr) bool { - switch e := expr.(type) { - case *ast.BasicLit: - return e.Value == "0" || e.Value == `""` - case *ast.Ident: - return e.Name == "nil" || e.Name == "false" - default: - return false - } -} - -// TypeExpr returns syntax for the specified type. References to named types -// are qualified by an appropriate (optional) qualifier function. -// It may panic for types such as Tuple or Union. -func TypeExpr(t types.Type, qual types.Qualifier) ast.Expr { - switch t := t.(type) { - case *types.Basic: - switch t.Kind() { - case types.UnsafePointer: - return &ast.SelectorExpr{X: ast.NewIdent(qual(types.NewPackage("unsafe", "unsafe"))), Sel: ast.NewIdent("Pointer")} - default: - return ast.NewIdent(t.Name()) - } - - case *types.Pointer: - return &ast.UnaryExpr{ - Op: token.MUL, - X: TypeExpr(t.Elem(), qual), - } - - case *types.Array: - return &ast.ArrayType{ - Len: &ast.BasicLit{ - Kind: token.INT, - Value: fmt.Sprintf("%d", t.Len()), - }, - Elt: TypeExpr(t.Elem(), qual), - } - - case *types.Slice: - return &ast.ArrayType{ - Elt: TypeExpr(t.Elem(), qual), - } - - case *types.Map: - return &ast.MapType{ - Key: TypeExpr(t.Key(), qual), - Value: TypeExpr(t.Elem(), qual), - } - - case *types.Chan: - dir := ast.ChanDir(t.Dir()) - if t.Dir() == types.SendRecv { - dir = ast.SEND | ast.RECV - } - return &ast.ChanType{ - Dir: dir, - Value: TypeExpr(t.Elem(), qual), - } - - case *types.Signature: - var params []*ast.Field - for i := 0; i < t.Params().Len(); i++ { - params = append(params, &ast.Field{ - Type: TypeExpr(t.Params().At(i).Type(), qual), - Names: []*ast.Ident{ - { - Name: t.Params().At(i).Name(), - }, - }, - }) - } - if t.Variadic() { - last := params[len(params)-1] - last.Type = &ast.Ellipsis{Elt: last.Type.(*ast.ArrayType).Elt} - } - var returns []*ast.Field - for i := 0; i < t.Results().Len(); i++ { - returns = append(returns, &ast.Field{ - Type: TypeExpr(t.Results().At(i).Type(), qual), - }) - } - return &ast.FuncType{ - Params: &ast.FieldList{ - List: params, - }, - Results: &ast.FieldList{ - List: returns, - }, - } - - case *types.TypeParam: - pkgName := qual(t.Obj().Pkg()) - if pkgName == "" || t.Obj().Pkg() == nil { - return ast.NewIdent(t.Obj().Name()) - } - return &ast.SelectorExpr{ - X: ast.NewIdent(pkgName), - Sel: ast.NewIdent(t.Obj().Name()), - } - - // types.TypeParam also implements interface NamedOrAlias. To differentiate, - // case TypeParam need to be present before case NamedOrAlias. - // TODO(hxjiang): remove this comment once TypeArgs() is added to interface - // NamedOrAlias. - case NamedOrAlias: - var expr ast.Expr = ast.NewIdent(t.Obj().Name()) - if pkgName := qual(t.Obj().Pkg()); pkgName != "." && pkgName != "" { - expr = &ast.SelectorExpr{ - X: ast.NewIdent(pkgName), - Sel: expr.(*ast.Ident), - } - } - - // TODO(hxjiang): call t.TypeArgs after adding method TypeArgs() to - // typesinternal.NamedOrAlias. - if hasTypeArgs, ok := t.(interface{ TypeArgs() *types.TypeList }); ok { - if typeArgs := hasTypeArgs.TypeArgs(); typeArgs != nil && typeArgs.Len() > 0 { - var indices []ast.Expr - for i := range typeArgs.Len() { - indices = append(indices, TypeExpr(typeArgs.At(i), qual)) - } - expr = &ast.IndexListExpr{ - X: expr, - Indices: indices, - } - } - } - - return expr - - case *types.Struct: - return ast.NewIdent(t.String()) - - case *types.Interface: - return ast.NewIdent(t.String()) - - case *types.Union: - if t.Len() == 0 { - panic("Union type should have at least one term") - } - // Same as go/ast, the return expression will put last term in the - // Y field at topmost level of BinaryExpr. - // For union of type "float32 | float64 | int64", the structure looks - // similar to: - // { - // X: { - // X: float32, - // Op: | - // Y: float64, - // } - // Op: |, - // Y: int64, - // } - var union ast.Expr - for i := range t.Len() { - term := t.Term(i) - termExpr := TypeExpr(term.Type(), qual) - if term.Tilde() { - termExpr = &ast.UnaryExpr{ - Op: token.TILDE, - X: termExpr, - } - } - if i == 0 { - union = termExpr - } else { - union = &ast.BinaryExpr{ - X: union, - Op: token.OR, - Y: termExpr, - } - } - } - return union - - case *types.Tuple: - panic("invalid input type types.Tuple") - - default: - panic("unreachable") - } -} diff --git a/vendor/golang.org/x/tools/internal/versions/features.go b/vendor/golang.org/x/tools/internal/versions/features.go deleted file mode 100644 index b53f1786..00000000 --- a/vendor/golang.org/x/tools/internal/versions/features.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package versions - -// This file contains predicates for working with file versions to -// decide when a tool should consider a language feature enabled. - -// GoVersions that features in x/tools can be gated to. -const ( - Go1_18 = "go1.18" - Go1_19 = "go1.19" - Go1_20 = "go1.20" - Go1_21 = "go1.21" - Go1_22 = "go1.22" -) - -// Future is an invalid unknown Go version sometime in the future. -// Do not use directly with Compare. -const Future = "" - -// AtLeast reports whether the file version v comes after a Go release. -// -// Use this predicate to enable a behavior once a certain Go release -// has happened (and stays enabled in the future). -func AtLeast(v, release string) bool { - if v == Future { - return true // an unknown future version is always after y. - } - return Compare(Lang(v), Lang(release)) >= 0 -} - -// Before reports whether the file version v is strictly before a Go release. -// -// Use this predicate to disable a behavior once a certain Go release -// has happened (and stays enabled in the future). -func Before(v, release string) bool { - if v == Future { - return false // an unknown future version happens after y. - } - return Compare(Lang(v), Lang(release)) < 0 -} diff --git a/vendor/golang.org/x/tools/internal/versions/gover.go b/vendor/golang.org/x/tools/internal/versions/gover.go deleted file mode 100644 index bbabcd22..00000000 --- a/vendor/golang.org/x/tools/internal/versions/gover.go +++ /dev/null @@ -1,172 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This is a fork of internal/gover for use by x/tools until -// go1.21 and earlier are no longer supported by x/tools. - -package versions - -import "strings" - -// A gover is a parsed Go gover: major[.Minor[.Patch]][kind[pre]] -// The numbers are the original decimal strings to avoid integer overflows -// and since there is very little actual math. (Probably overflow doesn't matter in practice, -// but at the time this code was written, there was an existing test that used -// go1.99999999999, which does not fit in an int on 32-bit platforms. -// The "big decimal" representation avoids the problem entirely.) -type gover struct { - major string // decimal - minor string // decimal or "" - patch string // decimal or "" - kind string // "", "alpha", "beta", "rc" - pre string // decimal or "" -} - -// compare returns -1, 0, or +1 depending on whether -// x < y, x == y, or x > y, interpreted as toolchain versions. -// The versions x and y must not begin with a "go" prefix: just "1.21" not "go1.21". -// Malformed versions compare less than well-formed versions and equal to each other. -// The language version "1.21" compares less than the release candidate and eventual releases "1.21rc1" and "1.21.0". -func compare(x, y string) int { - vx := parse(x) - vy := parse(y) - - if c := cmpInt(vx.major, vy.major); c != 0 { - return c - } - if c := cmpInt(vx.minor, vy.minor); c != 0 { - return c - } - if c := cmpInt(vx.patch, vy.patch); c != 0 { - return c - } - if c := strings.Compare(vx.kind, vy.kind); c != 0 { // "" < alpha < beta < rc - return c - } - if c := cmpInt(vx.pre, vy.pre); c != 0 { - return c - } - return 0 -} - -// lang returns the Go language version. For example, lang("1.2.3") == "1.2". -func lang(x string) string { - v := parse(x) - if v.minor == "" || v.major == "1" && v.minor == "0" { - return v.major - } - return v.major + "." + v.minor -} - -// isValid reports whether the version x is valid. -func isValid(x string) bool { - return parse(x) != gover{} -} - -// parse parses the Go version string x into a version. -// It returns the zero version if x is malformed. -func parse(x string) gover { - var v gover - - // Parse major version. - var ok bool - v.major, x, ok = cutInt(x) - if !ok { - return gover{} - } - if x == "" { - // Interpret "1" as "1.0.0". - v.minor = "0" - v.patch = "0" - return v - } - - // Parse . before minor version. - if x[0] != '.' { - return gover{} - } - - // Parse minor version. - v.minor, x, ok = cutInt(x[1:]) - if !ok { - return gover{} - } - if x == "" { - // Patch missing is same as "0" for older versions. - // Starting in Go 1.21, patch missing is different from explicit .0. - if cmpInt(v.minor, "21") < 0 { - v.patch = "0" - } - return v - } - - // Parse patch if present. - if x[0] == '.' { - v.patch, x, ok = cutInt(x[1:]) - if !ok || x != "" { - // Note that we are disallowing prereleases (alpha, beta, rc) for patch releases here (x != ""). - // Allowing them would be a bit confusing because we already have: - // 1.21 < 1.21rc1 - // But a prerelease of a patch would have the opposite effect: - // 1.21.3rc1 < 1.21.3 - // We've never needed them before, so let's not start now. - return gover{} - } - return v - } - - // Parse prerelease. - i := 0 - for i < len(x) && (x[i] < '0' || '9' < x[i]) { - if x[i] < 'a' || 'z' < x[i] { - return gover{} - } - i++ - } - if i == 0 { - return gover{} - } - v.kind, x = x[:i], x[i:] - if x == "" { - return v - } - v.pre, x, ok = cutInt(x) - if !ok || x != "" { - return gover{} - } - - return v -} - -// cutInt scans the leading decimal number at the start of x to an integer -// and returns that value and the rest of the string. -func cutInt(x string) (n, rest string, ok bool) { - i := 0 - for i < len(x) && '0' <= x[i] && x[i] <= '9' { - i++ - } - if i == 0 || x[0] == '0' && i != 1 { // no digits or unnecessary leading zero - return "", "", false - } - return x[:i], x[i:], true -} - -// cmpInt returns cmp.Compare(x, y) interpreting x and y as decimal numbers. -// (Copied from golang.org/x/mod/semver's compareInt.) -func cmpInt(x, y string) int { - if x == y { - return 0 - } - if len(x) < len(y) { - return -1 - } - if len(x) > len(y) { - return +1 - } - if x < y { - return -1 - } else { - return +1 - } -} diff --git a/vendor/golang.org/x/tools/internal/versions/types.go b/vendor/golang.org/x/tools/internal/versions/types.go deleted file mode 100644 index 0fc10ce4..00000000 --- a/vendor/golang.org/x/tools/internal/versions/types.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package versions - -import ( - "go/ast" - "go/types" -) - -// FileVersion returns a file's Go version. -// The reported version is an unknown Future version if a -// version cannot be determined. -func FileVersion(info *types.Info, file *ast.File) string { - // In tools built with Go >= 1.22, the Go version of a file - // follow a cascades of sources: - // 1) types.Info.FileVersion, which follows the cascade: - // 1.a) file version (ast.File.GoVersion), - // 1.b) the package version (types.Config.GoVersion), or - // 2) is some unknown Future version. - // - // File versions require a valid package version to be provided to types - // in Config.GoVersion. Config.GoVersion is either from the package's module - // or the toolchain (go run). This value should be provided by go/packages - // or unitchecker.Config.GoVersion. - if v := info.FileVersions[file]; IsValid(v) { - return v - } - // Note: we could instead return runtime.Version() [if valid]. - // This would act as a max version on what a tool can support. - return Future -} diff --git a/vendor/golang.org/x/tools/internal/versions/versions.go b/vendor/golang.org/x/tools/internal/versions/versions.go deleted file mode 100644 index 8d1f7453..00000000 --- a/vendor/golang.org/x/tools/internal/versions/versions.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package versions - -import ( - "strings" -) - -// Note: If we use build tags to use go/versions when go >=1.22, -// we run into go.dev/issue/53737. Under some operations users would see an -// import of "go/versions" even if they would not compile the file. -// For example, during `go get -u ./...` (go.dev/issue/64490) we do not try to include -// For this reason, this library just a clone of go/versions for the moment. - -// Lang returns the Go language version for version x. -// If x is not a valid version, Lang returns the empty string. -// For example: -// -// Lang("go1.21rc2") = "go1.21" -// Lang("go1.21.2") = "go1.21" -// Lang("go1.21") = "go1.21" -// Lang("go1") = "go1" -// Lang("bad") = "" -// Lang("1.21") = "" -func Lang(x string) string { - v := lang(stripGo(x)) - if v == "" { - return "" - } - return x[:2+len(v)] // "go"+v without allocation -} - -// Compare returns -1, 0, or +1 depending on whether -// x < y, x == y, or x > y, interpreted as Go versions. -// The versions x and y must begin with a "go" prefix: "go1.21" not "1.21". -// Invalid versions, including the empty string, compare less than -// valid versions and equal to each other. -// The language version "go1.21" compares less than the -// release candidate and eventual releases "go1.21rc1" and "go1.21.0". -// Custom toolchain suffixes are ignored during comparison: -// "go1.21.0" and "go1.21.0-bigcorp" are equal. -func Compare(x, y string) int { return compare(stripGo(x), stripGo(y)) } - -// IsValid reports whether the version x is valid. -func IsValid(x string) bool { return isValid(stripGo(x)) } - -// stripGo converts from a "go1.21" version to a "1.21" version. -// If v does not start with "go", stripGo returns the empty string (a known invalid version). -func stripGo(v string) string { - v, _, _ = strings.Cut(v, "-") // strip -bigcorp suffix. - if len(v) < 2 || v[:2] != "go" { - return "" - } - return v[2:] -} diff --git a/vendor/google.golang.org/genproto/googleapis/api/httpbody/httpbody.pb.go b/vendor/google.golang.org/genproto/googleapis/api/httpbody/httpbody.pb.go index f388426b..d083dde3 100644 --- a/vendor/google.golang.org/genproto/googleapis/api/httpbody/httpbody.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/api/httpbody/httpbody.pb.go @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go index 3cd9a5bb..bed9216d 100644 --- a/vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/rpc/errdetails/error_details.pb.go @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go index 6ad1b1c1..06a3f710 100644 --- a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/vendor/google.golang.org/grpc/balancer/balancer.go b/vendor/google.golang.org/grpc/balancer/balancer.go index 382ad694..c9b343c7 100644 --- a/vendor/google.golang.org/grpc/balancer/balancer.go +++ b/vendor/google.golang.org/grpc/balancer/balancer.go @@ -129,6 +129,13 @@ type State struct { // brand new implementation of this interface. For the situations like // testing, the new implementation should embed this interface. This allows // gRPC to add new methods to this interface. +// +// NOTICE: This interface is intended to be implemented by gRPC, or intercepted +// by custom load balancing polices. Users should not need their own complete +// implementation of this interface -- they should always delegate to a +// ClientConn passed to Builder.Build() by embedding it in their +// implementations. An embedded ClientConn must never be nil, or runtime panics +// will occur. type ClientConn interface { // NewSubConn is called by balancer to create a new SubConn. // It doesn't block and wait for the connections to be established. @@ -167,6 +174,17 @@ type ClientConn interface { // // Deprecated: Use the Target field in the BuildOptions instead. Target() string + + // MetricsRecorder provides the metrics recorder that balancers can use to + // record metrics. Balancer implementations which do not register metrics on + // metrics registry and record on them can ignore this method. The returned + // MetricsRecorder is guaranteed to never be nil. + MetricsRecorder() estats.MetricsRecorder + + // EnforceClientConnEmbedding is included to force implementers to embed + // another implementation of this interface, allowing gRPC to add methods + // without breaking users. + internal.EnforceClientConnEmbedding } // BuildOptions contains additional information for Build. @@ -198,10 +216,6 @@ type BuildOptions struct { // same resolver.Target as passed to the resolver. See the documentation for // the resolver.Target type for details about what it contains. Target resolver.Target - // MetricsRecorder is the metrics recorder that balancers can use to record - // metrics. Balancer implementations which do not register metrics on - // metrics registry and record on them can ignore this field. - MetricsRecorder estats.MetricsRecorder } // Builder creates a balancer. diff --git a/vendor/google.golang.org/grpc/balancer/endpointsharding/endpointsharding.go b/vendor/google.golang.org/grpc/balancer/endpointsharding/endpointsharding.go new file mode 100644 index 00000000..421c4fec --- /dev/null +++ b/vendor/google.golang.org/grpc/balancer/endpointsharding/endpointsharding.go @@ -0,0 +1,358 @@ +/* + * + * Copyright 2024 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package endpointsharding implements a load balancing policy that manages +// homogeneous child policies each owning a single endpoint. +// +// # Experimental +// +// Notice: This package is EXPERIMENTAL and may be changed or removed in a +// later release. +package endpointsharding + +import ( + "errors" + rand "math/rand/v2" + "sync" + "sync/atomic" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/balancer/base" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/resolver" +) + +// ChildState is the balancer state of a child along with the endpoint which +// identifies the child balancer. +type ChildState struct { + Endpoint resolver.Endpoint + State balancer.State + + // Balancer exposes only the ExitIdler interface of the child LB policy. + // Other methods of the child policy are called only by endpointsharding. + Balancer balancer.ExitIdler +} + +// Options are the options to configure the behaviour of the +// endpointsharding balancer. +type Options struct { + // DisableAutoReconnect allows the balancer to keep child balancer in the + // IDLE state until they are explicitly triggered to exit using the + // ChildState obtained from the endpointsharding picker. When set to false, + // the endpointsharding balancer will automatically call ExitIdle on child + // connections that report IDLE. + DisableAutoReconnect bool +} + +// ChildBuilderFunc creates a new balancer with the ClientConn. It has the same +// type as the balancer.Builder.Build method. +type ChildBuilderFunc func(cc balancer.ClientConn, opts balancer.BuildOptions) balancer.Balancer + +// NewBalancer returns a load balancing policy that manages homogeneous child +// policies each owning a single endpoint. The endpointsharding balancer +// forwards the LoadBalancingConfig in ClientConn state updates to its children. +func NewBalancer(cc balancer.ClientConn, opts balancer.BuildOptions, childBuilder ChildBuilderFunc, esOpts Options) balancer.Balancer { + es := &endpointSharding{ + cc: cc, + bOpts: opts, + esOpts: esOpts, + childBuilder: childBuilder, + } + es.children.Store(resolver.NewEndpointMap()) + return es +} + +// endpointSharding is a balancer that wraps child balancers. It creates a child +// balancer with child config for every unique Endpoint received. It updates the +// child states on any update from parent or child. +type endpointSharding struct { + cc balancer.ClientConn + bOpts balancer.BuildOptions + esOpts Options + childBuilder ChildBuilderFunc + + // childMu synchronizes calls to any single child. It must be held for all + // calls into a child. To avoid deadlocks, do not acquire childMu while + // holding mu. + childMu sync.Mutex + children atomic.Pointer[resolver.EndpointMap] // endpoint -> *balancerWrapper + + // inhibitChildUpdates is set during UpdateClientConnState/ResolverError + // calls (calls to children will each produce an update, only want one + // update). + inhibitChildUpdates atomic.Bool + + // mu synchronizes access to the state stored in balancerWrappers in the + // children field. mu must not be held during calls into a child since + // synchronous calls back from the child may require taking mu, causing a + // deadlock. To avoid deadlocks, do not acquire childMu while holding mu. + mu sync.Mutex +} + +// UpdateClientConnState creates a child for new endpoints and deletes children +// for endpoints that are no longer present. It also updates all the children, +// and sends a single synchronous update of the childrens' aggregated state at +// the end of the UpdateClientConnState operation. If any endpoint has no +// addresses it will ignore that endpoint. Otherwise, returns first error found +// from a child, but fully processes the new update. +func (es *endpointSharding) UpdateClientConnState(state balancer.ClientConnState) error { + es.childMu.Lock() + defer es.childMu.Unlock() + + es.inhibitChildUpdates.Store(true) + defer func() { + es.inhibitChildUpdates.Store(false) + es.updateState() + }() + var ret error + + children := es.children.Load() + newChildren := resolver.NewEndpointMap() + + // Update/Create new children. + for _, endpoint := range state.ResolverState.Endpoints { + if _, ok := newChildren.Get(endpoint); ok { + // Endpoint child was already created, continue to avoid duplicate + // update. + continue + } + var childBalancer *balancerWrapper + if val, ok := children.Get(endpoint); ok { + childBalancer = val.(*balancerWrapper) + // Endpoint attributes may have changed, update the stored endpoint. + es.mu.Lock() + childBalancer.childState.Endpoint = endpoint + es.mu.Unlock() + } else { + childBalancer = &balancerWrapper{ + childState: ChildState{Endpoint: endpoint}, + ClientConn: es.cc, + es: es, + } + childBalancer.childState.Balancer = childBalancer + childBalancer.child = es.childBuilder(childBalancer, es.bOpts) + } + newChildren.Set(endpoint, childBalancer) + if err := childBalancer.updateClientConnStateLocked(balancer.ClientConnState{ + BalancerConfig: state.BalancerConfig, + ResolverState: resolver.State{ + Endpoints: []resolver.Endpoint{endpoint}, + Attributes: state.ResolverState.Attributes, + }, + }); err != nil && ret == nil { + // Return first error found, and always commit full processing of + // updating children. If desired to process more specific errors + // across all endpoints, caller should make these specific + // validations, this is a current limitation for simplicity sake. + ret = err + } + } + // Delete old children that are no longer present. + for _, e := range children.Keys() { + child, _ := children.Get(e) + if _, ok := newChildren.Get(e); !ok { + child.(*balancerWrapper).closeLocked() + } + } + es.children.Store(newChildren) + if newChildren.Len() == 0 { + return balancer.ErrBadResolverState + } + return ret +} + +// ResolverError forwards the resolver error to all of the endpointSharding's +// children and sends a single synchronous update of the childStates at the end +// of the ResolverError operation. +func (es *endpointSharding) ResolverError(err error) { + es.childMu.Lock() + defer es.childMu.Unlock() + es.inhibitChildUpdates.Store(true) + defer func() { + es.inhibitChildUpdates.Store(false) + es.updateState() + }() + children := es.children.Load() + for _, child := range children.Values() { + child.(*balancerWrapper).resolverErrorLocked(err) + } +} + +func (es *endpointSharding) UpdateSubConnState(balancer.SubConn, balancer.SubConnState) { + // UpdateSubConnState is deprecated. +} + +func (es *endpointSharding) Close() { + es.childMu.Lock() + defer es.childMu.Unlock() + children := es.children.Load() + for _, child := range children.Values() { + child.(*balancerWrapper).closeLocked() + } +} + +// updateState updates this component's state. It sends the aggregated state, +// and a picker with round robin behavior with all the child states present if +// needed. +func (es *endpointSharding) updateState() { + if es.inhibitChildUpdates.Load() { + return + } + var readyPickers, connectingPickers, idlePickers, transientFailurePickers []balancer.Picker + + es.mu.Lock() + defer es.mu.Unlock() + + children := es.children.Load() + childStates := make([]ChildState, 0, children.Len()) + + for _, child := range children.Values() { + bw := child.(*balancerWrapper) + childState := bw.childState + childStates = append(childStates, childState) + childPicker := childState.State.Picker + switch childState.State.ConnectivityState { + case connectivity.Ready: + readyPickers = append(readyPickers, childPicker) + case connectivity.Connecting: + connectingPickers = append(connectingPickers, childPicker) + case connectivity.Idle: + idlePickers = append(idlePickers, childPicker) + case connectivity.TransientFailure: + transientFailurePickers = append(transientFailurePickers, childPicker) + // connectivity.Shutdown shouldn't appear. + } + } + + // Construct the round robin picker based off the aggregated state. Whatever + // the aggregated state, use the pickers present that are currently in that + // state only. + var aggState connectivity.State + var pickers []balancer.Picker + if len(readyPickers) >= 1 { + aggState = connectivity.Ready + pickers = readyPickers + } else if len(connectingPickers) >= 1 { + aggState = connectivity.Connecting + pickers = connectingPickers + } else if len(idlePickers) >= 1 { + aggState = connectivity.Idle + pickers = idlePickers + } else if len(transientFailurePickers) >= 1 { + aggState = connectivity.TransientFailure + pickers = transientFailurePickers + } else { + aggState = connectivity.TransientFailure + pickers = []balancer.Picker{base.NewErrPicker(errors.New("no children to pick from"))} + } // No children (resolver error before valid update). + p := &pickerWithChildStates{ + pickers: pickers, + childStates: childStates, + next: uint32(rand.IntN(len(pickers))), + } + es.cc.UpdateState(balancer.State{ + ConnectivityState: aggState, + Picker: p, + }) +} + +// pickerWithChildStates delegates to the pickers it holds in a round robin +// fashion. It also contains the childStates of all the endpointSharding's +// children. +type pickerWithChildStates struct { + pickers []balancer.Picker + childStates []ChildState + next uint32 +} + +func (p *pickerWithChildStates) Pick(info balancer.PickInfo) (balancer.PickResult, error) { + nextIndex := atomic.AddUint32(&p.next, 1) + picker := p.pickers[nextIndex%uint32(len(p.pickers))] + return picker.Pick(info) +} + +// ChildStatesFromPicker returns the state of all the children managed by the +// endpoint sharding balancer that created this picker. +func ChildStatesFromPicker(picker balancer.Picker) []ChildState { + p, ok := picker.(*pickerWithChildStates) + if !ok { + return nil + } + return p.childStates +} + +// balancerWrapper is a wrapper of a balancer. It ID's a child balancer by +// endpoint, and persists recent child balancer state. +type balancerWrapper struct { + // The following fields are initialized at build time and read-only after + // that and therefore do not need to be guarded by a mutex. + + // child contains the wrapped balancer. Access its methods only through + // methods on balancerWrapper to ensure proper synchronization + child balancer.Balancer + balancer.ClientConn // embed to intercept UpdateState, doesn't deal with SubConns + + es *endpointSharding + + // Access to the following fields is guarded by es.mu. + + childState ChildState + isClosed bool +} + +func (bw *balancerWrapper) UpdateState(state balancer.State) { + bw.es.mu.Lock() + bw.childState.State = state + bw.es.mu.Unlock() + if state.ConnectivityState == connectivity.Idle && !bw.es.esOpts.DisableAutoReconnect { + bw.ExitIdle() + } + bw.es.updateState() +} + +// ExitIdle pings an IDLE child balancer to exit idle in a new goroutine to +// avoid deadlocks due to synchronous balancer state updates. +func (bw *balancerWrapper) ExitIdle() { + if ei, ok := bw.child.(balancer.ExitIdler); ok { + go func() { + bw.es.childMu.Lock() + if !bw.isClosed { + ei.ExitIdle() + } + bw.es.childMu.Unlock() + }() + } +} + +// updateClientConnStateLocked delivers the ClientConnState to the child +// balancer. Callers must hold the child mutex of the parent endpointsharding +// balancer. +func (bw *balancerWrapper) updateClientConnStateLocked(ccs balancer.ClientConnState) error { + return bw.child.UpdateClientConnState(ccs) +} + +// closeLocked closes the child balancer. Callers must hold the child mutext of +// the parent endpointsharding balancer. +func (bw *balancerWrapper) closeLocked() { + bw.child.Close() + bw.isClosed = true +} + +func (bw *balancerWrapper) resolverErrorLocked(err error) { + bw.child.ResolverError(err) +} diff --git a/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go b/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go index 2fc0a71f..113181e6 100644 --- a/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go +++ b/vendor/google.golang.org/grpc/balancer/pickfirst/pickfirstleaf/pickfirstleaf.go @@ -54,9 +54,18 @@ func init() { balancer.Register(pickfirstBuilder{}) } -// enableHealthListenerKeyType is a unique key type used in resolver attributes -// to indicate whether the health listener usage is enabled. -type enableHealthListenerKeyType struct{} +type ( + // enableHealthListenerKeyType is a unique key type used in resolver + // attributes to indicate whether the health listener usage is enabled. + enableHealthListenerKeyType struct{} + // managedByPickfirstKeyType is an attribute key type to inform Outlier + // Detection that the generic health listener is being used. + // TODO: https://github.com/grpc/grpc-go/issues/7915 - Remove this when + // implementing the dualstack design. This is a hack. Once Dualstack is + // completed, outlier detection will stop sending ejection updates through + // the connectivity listener. + managedByPickfirstKeyType struct{} +) var ( logger = grpclog.Component("pick-first-leaf-lb") @@ -111,7 +120,7 @@ func (pickfirstBuilder) Build(cc balancer.ClientConn, bo balancer.BuildOptions) b := &pickfirstBalancer{ cc: cc, target: bo.Target.String(), - metricsRecorder: bo.MetricsRecorder, // ClientConn will always create a Metrics Recorder. + metricsRecorder: cc.MetricsRecorder(), subConns: resolver.NewAddressMap(), state: connectivity.Connecting, @@ -140,6 +149,17 @@ func EnableHealthListener(state resolver.State) resolver.State { return state } +// IsManagedByPickfirst returns whether an address belongs to a SubConn +// managed by the pickfirst LB policy. +// TODO: https://github.com/grpc/grpc-go/issues/7915 - This is a hack to disable +// outlier_detection via the with connectivity listener when using pick_first. +// Once Dualstack changes are complete, all SubConns will be created by +// pick_first and outlier detection will only use the health listener for +// ejection. This hack can then be removed. +func IsManagedByPickfirst(addr resolver.Address) bool { + return addr.BalancerAttributes.Value(managedByPickfirstKeyType{}) != nil +} + type pfConfig struct { serviceconfig.LoadBalancingConfig `json:"-"` @@ -166,6 +186,7 @@ type scData struct { } func (b *pickfirstBalancer) newSCData(addr resolver.Address) (*scData, error) { + addr.BalancerAttributes = addr.BalancerAttributes.WithValue(managedByPickfirstKeyType{}, true) sd := &scData{ rawConnectivityState: connectivity.Idle, effectiveState: connectivity.Idle, diff --git a/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go b/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go index 80a42d22..35da5d1e 100644 --- a/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go +++ b/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go @@ -22,12 +22,13 @@ package roundrobin import ( - rand "math/rand/v2" - "sync/atomic" + "fmt" "google.golang.org/grpc/balancer" - "google.golang.org/grpc/balancer/base" + "google.golang.org/grpc/balancer/endpointsharding" + "google.golang.org/grpc/balancer/pickfirst/pickfirstleaf" "google.golang.org/grpc/grpclog" + internalgrpclog "google.golang.org/grpc/internal/grpclog" ) // Name is the name of round_robin balancer. @@ -35,47 +36,44 @@ const Name = "round_robin" var logger = grpclog.Component("roundrobin") -// newBuilder creates a new roundrobin balancer builder. -func newBuilder() balancer.Builder { - return base.NewBalancerBuilder(Name, &rrPickerBuilder{}, base.Config{HealthCheck: true}) -} - func init() { - balancer.Register(newBuilder()) + balancer.Register(builder{}) } -type rrPickerBuilder struct{} +type builder struct{} -func (*rrPickerBuilder) Build(info base.PickerBuildInfo) balancer.Picker { - logger.Infof("roundrobinPicker: Build called with info: %v", info) - if len(info.ReadySCs) == 0 { - return base.NewErrPicker(balancer.ErrNoSubConnAvailable) +func (bb builder) Name() string { + return Name +} + +func (bb builder) Build(cc balancer.ClientConn, opts balancer.BuildOptions) balancer.Balancer { + childBuilder := balancer.Get(pickfirstleaf.Name).Build + bal := &rrBalancer{ + cc: cc, + Balancer: endpointsharding.NewBalancer(cc, opts, childBuilder, endpointsharding.Options{}), } - scs := make([]balancer.SubConn, 0, len(info.ReadySCs)) - for sc := range info.ReadySCs { - scs = append(scs, sc) - } - return &rrPicker{ - subConns: scs, - // Start at a random index, as the same RR balancer rebuilds a new - // picker when SubConn states change, and we don't want to apply excess - // load to the first server in the list. - next: uint32(rand.IntN(len(scs))), + bal.logger = internalgrpclog.NewPrefixLogger(logger, fmt.Sprintf("[%p] ", bal)) + bal.logger.Infof("Created") + return bal +} + +type rrBalancer struct { + balancer.Balancer + cc balancer.ClientConn + logger *internalgrpclog.PrefixLogger +} + +func (b *rrBalancer) UpdateClientConnState(ccs balancer.ClientConnState) error { + return b.Balancer.UpdateClientConnState(balancer.ClientConnState{ + // Enable the health listener in pickfirst children for client side health + // checks and outlier detection, if configured. + ResolverState: pickfirstleaf.EnableHealthListener(ccs.ResolverState), + }) +} + +func (b *rrBalancer) ExitIdle() { + // Should always be ok, as child is endpoint sharding. + if ei, ok := b.Balancer.(balancer.ExitIdler); ok { + ei.ExitIdle() } } - -type rrPicker struct { - // subConns is the snapshot of the roundrobin balancer when this picker was - // created. The slice is immutable. Each Get() will do a round robin - // selection from it and return the selected SubConn. - subConns []balancer.SubConn - next uint32 -} - -func (p *rrPicker) Pick(balancer.PickInfo) (balancer.PickResult, error) { - subConnsLen := uint32(len(p.subConns)) - nextIndex := atomic.AddUint32(&p.next, 1) - - sc := p.subConns[nextIndex%subConnsLen] - return balancer.PickResult{SubConn: sc}, nil -} diff --git a/vendor/google.golang.org/grpc/balancer/subconn.go b/vendor/google.golang.org/grpc/balancer/subconn.go index ea27c4fa..9ee44d4a 100644 --- a/vendor/google.golang.org/grpc/balancer/subconn.go +++ b/vendor/google.golang.org/grpc/balancer/subconn.go @@ -44,7 +44,7 @@ import ( // should only use a single address. // // NOTICE: This interface is intended to be implemented by gRPC, or intercepted -// by custom load balancing poilices. Users should not need their own complete +// by custom load balancing polices. Users should not need their own complete // implementation of this interface -- they should always delegate to a SubConn // returned by ClientConn.NewSubConn() by embedding it in their implementations. // An embedded SubConn must never be nil, or runtime panics will occur. diff --git a/vendor/google.golang.org/grpc/balancer_wrapper.go b/vendor/google.golang.org/grpc/balancer_wrapper.go index 905817b5..948a21ef 100644 --- a/vendor/google.golang.org/grpc/balancer_wrapper.go +++ b/vendor/google.golang.org/grpc/balancer_wrapper.go @@ -26,6 +26,7 @@ import ( "google.golang.org/grpc/balancer" "google.golang.org/grpc/codes" "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/experimental/stats" "google.golang.org/grpc/internal" "google.golang.org/grpc/internal/balancer/gracefulswitch" "google.golang.org/grpc/internal/channelz" @@ -34,7 +35,15 @@ import ( "google.golang.org/grpc/status" ) -var setConnectedAddress = internal.SetConnectedAddress.(func(*balancer.SubConnState, resolver.Address)) +var ( + setConnectedAddress = internal.SetConnectedAddress.(func(*balancer.SubConnState, resolver.Address)) + // noOpRegisterHealthListenerFn is used when client side health checking is + // disabled. It sends a single READY update on the registered listener. + noOpRegisterHealthListenerFn = func(_ context.Context, listener func(balancer.SubConnState)) func() { + listener(balancer.SubConnState{ConnectivityState: connectivity.Ready}) + return func() {} + } +) // ccBalancerWrapper sits between the ClientConn and the Balancer. // @@ -51,6 +60,7 @@ var setConnectedAddress = internal.SetConnectedAddress.(func(*balancer.SubConnSt // It uses the gracefulswitch.Balancer internally to ensure that balancer // switches happen in a graceful manner. type ccBalancerWrapper struct { + internal.EnforceClientConnEmbedding // The following fields are initialized when the wrapper is created and are // read-only afterwards, and therefore can be accessed without a mutex. cc *ClientConn @@ -84,7 +94,6 @@ func newCCBalancerWrapper(cc *ClientConn) *ccBalancerWrapper { CustomUserAgent: cc.dopts.copts.UserAgent, ChannelzParent: cc.channelz, Target: cc.parsedTarget, - MetricsRecorder: cc.metricsRecorderList, }, serializer: grpcsync.NewCallbackSerializer(ctx), serializerCancel: cancel, @@ -93,6 +102,10 @@ func newCCBalancerWrapper(cc *ClientConn) *ccBalancerWrapper { return ccb } +func (ccb *ccBalancerWrapper) MetricsRecorder() stats.MetricsRecorder { + return ccb.cc.metricsRecorderList +} + // updateClientConnState is invoked by grpc to push a ClientConnState update to // the underlying balancer. This is always executed from the serializer, so // it is safe to call into the balancer here. @@ -277,10 +290,17 @@ type healthData struct { // to the LB policy. This is stored to avoid sending updates when the // SubConn has already exited connectivity state READY. connectivityState connectivity.State + // closeHealthProducer stores function to close the ref counted health + // producer. The health producer is automatically closed when the SubConn + // state changes. + closeHealthProducer func() } func newHealthData(s connectivity.State) *healthData { - return &healthData{connectivityState: s} + return &healthData{ + connectivityState: s, + closeHealthProducer: func() {}, + } } // updateState is invoked by grpc to push a subConn state update to the @@ -400,7 +420,7 @@ func (acbw *acBalancerWrapper) GetOrBuildProducer(pb balancer.ProducerBuilder) ( } acbw.producersMu.Unlock() } - return pData.producer, grpcsync.OnceFunc(unref) + return pData.producer, sync.OnceFunc(unref) } func (acbw *acBalancerWrapper) closeProducers() { @@ -413,6 +433,37 @@ func (acbw *acBalancerWrapper) closeProducers() { } } +// healthProducerRegisterFn is a type alias for the health producer's function +// for registering listeners. +type healthProducerRegisterFn = func(context.Context, balancer.SubConn, string, func(balancer.SubConnState)) func() + +// healthListenerRegFn returns a function to register a listener for health +// updates. If client side health checks are disabled, the registered listener +// will get a single READY (raw connectivity state) update. +// +// Client side health checking is enabled when all the following +// conditions are satisfied: +// 1. Health checking is not disabled using the dial option. +// 2. The health package is imported. +// 3. The health check config is present in the service config. +func (acbw *acBalancerWrapper) healthListenerRegFn() func(context.Context, func(balancer.SubConnState)) func() { + if acbw.ccb.cc.dopts.disableHealthCheck { + return noOpRegisterHealthListenerFn + } + regHealthLisFn := internal.RegisterClientHealthCheckListener + if regHealthLisFn == nil { + // The health package is not imported. + return noOpRegisterHealthListenerFn + } + cfg := acbw.ac.cc.healthCheckConfig() + if cfg == nil { + return noOpRegisterHealthListenerFn + } + return func(ctx context.Context, listener func(balancer.SubConnState)) func() { + return regHealthLisFn.(healthProducerRegisterFn)(ctx, acbw, cfg.ServiceName, listener) + } +} + // RegisterHealthListener accepts a health listener from the LB policy. It sends // updates to the health listener as long as the SubConn's connectivity state // doesn't change and a new health listener is not registered. To invalidate @@ -421,6 +472,7 @@ func (acbw *acBalancerWrapper) closeProducers() { func (acbw *acBalancerWrapper) RegisterHealthListener(listener func(balancer.SubConnState)) { acbw.healthMu.Lock() defer acbw.healthMu.Unlock() + acbw.healthData.closeHealthProducer() // listeners should not be registered when the connectivity state // isn't Ready. This may happen when the balancer registers a listener // after the connectivityState is updated, but before it is notified @@ -436,6 +488,7 @@ func (acbw *acBalancerWrapper) RegisterHealthListener(listener func(balancer.Sub return } + registerFn := acbw.healthListenerRegFn() acbw.ccb.serializer.TrySchedule(func(ctx context.Context) { if ctx.Err() != nil || acbw.ccb.balancer == nil { return @@ -443,10 +496,25 @@ func (acbw *acBalancerWrapper) RegisterHealthListener(listener func(balancer.Sub // Don't send updates if a new listener is registered. acbw.healthMu.Lock() defer acbw.healthMu.Unlock() - curHD := acbw.healthData - if curHD != hd { + if acbw.healthData != hd { return } - listener(balancer.SubConnState{ConnectivityState: connectivity.Ready}) + // Serialize the health updates from the health producer with + // other calls into the LB policy. + listenerWrapper := func(scs balancer.SubConnState) { + acbw.ccb.serializer.TrySchedule(func(ctx context.Context) { + if ctx.Err() != nil || acbw.ccb.balancer == nil { + return + } + acbw.healthMu.Lock() + defer acbw.healthMu.Unlock() + if acbw.healthData != hd { + return + } + listener(scs) + }) + } + + hd.closeHealthProducer = registerFn(ctx, listenerWrapper) }) } diff --git a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go index 9e9d0806..b2f8fc7f 100644 --- a/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go +++ b/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.36.4 // protoc v5.27.1 // source: grpc/binlog/v1/binarylog.proto @@ -31,6 +31,7 @@ import ( timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -233,10 +234,7 @@ func (Address_Type) EnumDescriptor() ([]byte, []int) { // Log entry we store in binary logs type GrpcLogEntry struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // The timestamp of the binary log message Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Uniquely identifies a call. The value must not be 0 in order to disambiguate @@ -255,7 +253,7 @@ type GrpcLogEntry struct { // The logger uses one of the following fields to record the payload, // according to the type of the log entry. // - // Types that are assignable to Payload: + // Types that are valid to be assigned to Payload: // // *GrpcLogEntry_ClientHeader // *GrpcLogEntry_ServerHeader @@ -269,7 +267,9 @@ type GrpcLogEntry struct { // EVENT_TYPE_SERVER_HEADER normally or EVENT_TYPE_SERVER_TRAILER in // the case of trailers-only. On server side, peer is always // logged on EVENT_TYPE_CLIENT_HEADER. - Peer *Address `protobuf:"bytes,11,opt,name=peer,proto3" json:"peer,omitempty"` + Peer *Address `protobuf:"bytes,11,opt,name=peer,proto3" json:"peer,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GrpcLogEntry) Reset() { @@ -337,37 +337,45 @@ func (x *GrpcLogEntry) GetLogger() GrpcLogEntry_Logger { return GrpcLogEntry_LOGGER_UNKNOWN } -func (m *GrpcLogEntry) GetPayload() isGrpcLogEntry_Payload { - if m != nil { - return m.Payload +func (x *GrpcLogEntry) GetPayload() isGrpcLogEntry_Payload { + if x != nil { + return x.Payload } return nil } func (x *GrpcLogEntry) GetClientHeader() *ClientHeader { - if x, ok := x.GetPayload().(*GrpcLogEntry_ClientHeader); ok { - return x.ClientHeader + if x != nil { + if x, ok := x.Payload.(*GrpcLogEntry_ClientHeader); ok { + return x.ClientHeader + } } return nil } func (x *GrpcLogEntry) GetServerHeader() *ServerHeader { - if x, ok := x.GetPayload().(*GrpcLogEntry_ServerHeader); ok { - return x.ServerHeader + if x != nil { + if x, ok := x.Payload.(*GrpcLogEntry_ServerHeader); ok { + return x.ServerHeader + } } return nil } func (x *GrpcLogEntry) GetMessage() *Message { - if x, ok := x.GetPayload().(*GrpcLogEntry_Message); ok { - return x.Message + if x != nil { + if x, ok := x.Payload.(*GrpcLogEntry_Message); ok { + return x.Message + } } return nil } func (x *GrpcLogEntry) GetTrailer() *Trailer { - if x, ok := x.GetPayload().(*GrpcLogEntry_Trailer); ok { - return x.Trailer + if x != nil { + if x, ok := x.Payload.(*GrpcLogEntry_Trailer); ok { + return x.Trailer + } } return nil } @@ -416,10 +424,7 @@ func (*GrpcLogEntry_Message) isGrpcLogEntry_Payload() {} func (*GrpcLogEntry_Trailer) isGrpcLogEntry_Payload() {} type ClientHeader struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // This contains only the metadata from the application. Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` // The name of the RPC method, which looks something like: @@ -433,7 +438,9 @@ type ClientHeader struct { // or : . Authority string `protobuf:"bytes,3,opt,name=authority,proto3" json:"authority,omitempty"` // the RPC timeout - Timeout *durationpb.Duration `protobuf:"bytes,4,opt,name=timeout,proto3" json:"timeout,omitempty"` + Timeout *durationpb.Duration `protobuf:"bytes,4,opt,name=timeout,proto3" json:"timeout,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ClientHeader) Reset() { @@ -495,12 +502,11 @@ func (x *ClientHeader) GetTimeout() *durationpb.Duration { } type ServerHeader struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // This contains only the metadata from the application. - Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ServerHeader) Reset() { @@ -541,10 +547,7 @@ func (x *ServerHeader) GetMetadata() *Metadata { } type Trailer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // This contains only the metadata from the application. Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` // The gRPC status code. @@ -555,6 +558,8 @@ type Trailer struct { // The value of the 'grpc-status-details-bin' metadata key. If // present, this is always an encoded 'google.rpc.Status' message. StatusDetails []byte `protobuf:"bytes,4,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Trailer) Reset() { @@ -617,15 +622,14 @@ func (x *Trailer) GetStatusDetails() []byte { // Message payload, used by CLIENT_MESSAGE and SERVER_MESSAGE type Message struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` // Length of the message. It may not be the same as the length of the // data field, as the logging payload can be truncated or omitted. Length uint32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"` // May be truncated or omitted. - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Message) Reset() { @@ -694,11 +698,10 @@ func (x *Message) GetData() []byte { // header is just a normal metadata key. // The pair will not count towards the size limit. type Metadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Entry []*MetadataEntry `protobuf:"bytes,1,rep,name=entry,proto3" json:"entry,omitempty"` unknownFields protoimpl.UnknownFields - - Entry []*MetadataEntry `protobuf:"bytes,1,rep,name=entry,proto3" json:"entry,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Metadata) Reset() { @@ -740,12 +743,11 @@ func (x *Metadata) GetEntry() []*MetadataEntry { // A metadata key value pair type MetadataEntry struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields - - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + sizeCache protoimpl.SizeCache } func (x *MetadataEntry) Reset() { @@ -794,14 +796,13 @@ func (x *MetadataEntry) GetValue() []byte { // Address information type Address struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type Address_Type `protobuf:"varint,1,opt,name=type,proto3,enum=grpc.binarylog.v1.Address_Type" json:"type,omitempty"` - Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Type Address_Type `protobuf:"varint,1,opt,name=type,proto3,enum=grpc.binarylog.v1.Address_Type" json:"type,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // only for TYPE_IPV4 and TYPE_IPV6 - IpPort uint32 `protobuf:"varint,3,opt,name=ip_port,json=ipPort,proto3" json:"ip_port,omitempty"` + IpPort uint32 `protobuf:"varint,3,opt,name=ip_port,json=ipPort,proto3" json:"ip_port,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Address) Reset() { @@ -857,7 +858,7 @@ func (x *Address) GetIpPort() uint32 { var File_grpc_binlog_v1_binarylog_proto protoreflect.FileDescriptor -var file_grpc_binlog_v1_binarylog_proto_rawDesc = []byte{ +var file_grpc_binlog_v1_binarylog_proto_rawDesc = string([]byte{ 0x0a, 0x1e, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, @@ -983,16 +984,16 @@ var file_grpc_binlog_v1_binarylog_proto_rawDesc = []byte{ 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x5f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_grpc_binlog_v1_binarylog_proto_rawDescOnce sync.Once - file_grpc_binlog_v1_binarylog_proto_rawDescData = file_grpc_binlog_v1_binarylog_proto_rawDesc + file_grpc_binlog_v1_binarylog_proto_rawDescData []byte ) func file_grpc_binlog_v1_binarylog_proto_rawDescGZIP() []byte { file_grpc_binlog_v1_binarylog_proto_rawDescOnce.Do(func() { - file_grpc_binlog_v1_binarylog_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_binlog_v1_binarylog_proto_rawDescData) + file_grpc_binlog_v1_binarylog_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_grpc_binlog_v1_binarylog_proto_rawDesc), len(file_grpc_binlog_v1_binarylog_proto_rawDesc))) }) return file_grpc_binlog_v1_binarylog_proto_rawDescData } @@ -1051,7 +1052,7 @@ func file_grpc_binlog_v1_binarylog_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_grpc_binlog_v1_binarylog_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_grpc_binlog_v1_binarylog_proto_rawDesc), len(file_grpc_binlog_v1_binarylog_proto_rawDesc)), NumEnums: 3, NumMessages: 8, NumExtensions: 0, @@ -1063,7 +1064,6 @@ func file_grpc_binlog_v1_binarylog_proto_init() { MessageInfos: file_grpc_binlog_v1_binarylog_proto_msgTypes, }.Build() File_grpc_binlog_v1_binarylog_proto = out.File - file_grpc_binlog_v1_binarylog_proto_rawDesc = nil file_grpc_binlog_v1_binarylog_proto_goTypes = nil file_grpc_binlog_v1_binarylog_proto_depIdxs = nil } diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go index 4f57b554..a319ef97 100644 --- a/vendor/google.golang.org/grpc/clientconn.go +++ b/vendor/google.golang.org/grpc/clientconn.go @@ -118,12 +118,26 @@ func (dcs *defaultConfigSelector) SelectConfig(rpcInfo iresolver.RPCInfo) (*ires // NewClient creates a new gRPC "channel" for the target URI provided. No I/O // is performed. Use of the ClientConn for RPCs will automatically cause it to -// connect. Connect may be used to manually create a connection, but for most -// users this is unnecessary. +// connect. The Connect method may be called to manually create a connection, +// but for most users this should be unnecessary. // // The target name syntax is defined in -// https://github.com/grpc/grpc/blob/master/doc/naming.md. e.g. to use dns -// resolver, a "dns:///" prefix should be applied to the target. +// https://github.com/grpc/grpc/blob/master/doc/naming.md. E.g. to use the dns +// name resolver, a "dns:///" prefix may be applied to the target. The default +// name resolver will be used if no scheme is detected, or if the parsed scheme +// is not a registered name resolver. The default resolver is "dns" but can be +// overridden using the resolver package's SetDefaultScheme. +// +// Examples: +// +// - "foo.googleapis.com:8080" +// - "dns:///foo.googleapis.com:8080" +// - "dns:///foo.googleapis.com" +// - "dns:///10.0.0.213:8080" +// - "dns:///%5B2001:db8:85a3:8d3:1319:8a2e:370:7348%5D:443" +// - "dns://8.8.8.8/foo.googleapis.com:8080" +// - "dns://8.8.8.8/foo.googleapis.com" +// - "zookeeper://zk.example.com:9900/example_service" // // The DialOptions returned by WithBlock, WithTimeout, // WithReturnConnectionError, and FailOnNonTempDialError are ignored by this @@ -181,7 +195,7 @@ func NewClient(target string, opts ...DialOption) (conn *ClientConn, err error) } cc.dopts.defaultServiceConfig, _ = scpr.Config.(*ServiceConfig) } - cc.mkp = cc.dopts.copts.KeepaliveParams + cc.keepaliveParams = cc.dopts.copts.KeepaliveParams if err = cc.initAuthority(); err != nil { return nil, err @@ -225,7 +239,12 @@ func Dial(target string, opts ...DialOption) (*ClientConn, error) { func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *ClientConn, err error) { // At the end of this method, we kick the channel out of idle, rather than // waiting for the first rpc. - opts = append([]DialOption{withDefaultScheme("passthrough")}, opts...) + // + // WithLocalDNSResolution dial option in `grpc.Dial` ensures that it + // preserves behavior: when default scheme passthrough is used, skip + // hostname resolution, when "dns" is used for resolution, perform + // resolution on the client. + opts = append([]DialOption{withDefaultScheme("passthrough"), WithLocalDNSResolution()}, opts...) cc, err := NewClient(target, opts...) if err != nil { return nil, err @@ -618,7 +637,7 @@ type ClientConn struct { balancerWrapper *ccBalancerWrapper // Always recreated whenever entering idle to simplify Close. sc *ServiceConfig // Latest service config received from the resolver. conns map[*addrConn]struct{} // Set to nil on close. - mkp keepalive.ClientParameters // May be updated upon receipt of a GoAway. + keepaliveParams keepalive.ClientParameters // May be updated upon receipt of a GoAway. // firstResolveEvent is used to track whether the name resolver sent us at // least one update. RPCs block on this event. May be accessed without mu // if we know we cannot be asked to enter idle mode while accessing it (e.g. @@ -867,7 +886,13 @@ func (cc *ClientConn) Target() string { return cc.target } -// CanonicalTarget returns the canonical target string of the ClientConn. +// CanonicalTarget returns the canonical target string used when creating cc. +// +// This always has the form "://[authority]/". For example: +// +// - "dns:///example.com:42" +// - "dns://8.8.8.8/example.com:42" +// - "unix:///path/to/socket" func (cc *ClientConn) CanonicalTarget() string { return cc.parsedTarget.String() } @@ -1210,8 +1235,8 @@ func (ac *addrConn) adjustParams(r transport.GoAwayReason) { case transport.GoAwayTooManyPings: v := 2 * ac.dopts.copts.KeepaliveParams.Time ac.cc.mu.Lock() - if v > ac.cc.mkp.Time { - ac.cc.mkp.Time = v + if v > ac.cc.keepaliveParams.Time { + ac.cc.keepaliveParams.Time = v } ac.cc.mu.Unlock() } @@ -1307,7 +1332,7 @@ func (ac *addrConn) tryAllAddrs(ctx context.Context, addrs []resolver.Address, c ac.mu.Lock() ac.cc.mu.RLock() - ac.dopts.copts.KeepaliveParams = ac.cc.mkp + ac.dopts.copts.KeepaliveParams = ac.cc.keepaliveParams ac.cc.mu.RUnlock() copts := ac.dopts.copts diff --git a/vendor/google.golang.org/grpc/credentials/tls.go b/vendor/google.golang.org/grpc/credentials/tls.go index e163a473..bd5fe22b 100644 --- a/vendor/google.golang.org/grpc/credentials/tls.go +++ b/vendor/google.golang.org/grpc/credentials/tls.go @@ -32,6 +32,8 @@ import ( "google.golang.org/grpc/internal/envconfig" ) +const alpnFailureHelpMessage = "If you upgraded from a grpc-go version earlier than 1.67, your TLS connections may have stopped working due to ALPN enforcement. For more details, see: https://github.com/grpc/grpc-go/issues/434" + var logger = grpclog.Component("credentials") // TLSInfo contains the auth information for a TLS authenticated connection. @@ -128,7 +130,7 @@ func (c *tlsCreds) ClientHandshake(ctx context.Context, authority string, rawCon if np == "" { if envconfig.EnforceALPNEnabled { conn.Close() - return nil, nil, fmt.Errorf("credentials: cannot check peer: missing selected ALPN property") + return nil, nil, fmt.Errorf("credentials: cannot check peer: missing selected ALPN property. %s", alpnFailureHelpMessage) } logger.Warningf("Allowing TLS connection to server %q with ALPN disabled. TLS connections to servers with ALPN disabled will be disallowed in future grpc-go releases", cfg.ServerName) } @@ -158,7 +160,7 @@ func (c *tlsCreds) ServerHandshake(rawConn net.Conn) (net.Conn, AuthInfo, error) if cs.NegotiatedProtocol == "" { if envconfig.EnforceALPNEnabled { conn.Close() - return nil, nil, fmt.Errorf("credentials: cannot check peer: missing selected ALPN property") + return nil, nil, fmt.Errorf("credentials: cannot check peer: missing selected ALPN property. %s", alpnFailureHelpMessage) } else if logger.V(2) { logger.Info("Allowing TLS connection from client with ALPN disabled. TLS connections with ALPN disabled will be disallowed in future grpc-go releases") } diff --git a/vendor/google.golang.org/grpc/dialoptions.go b/vendor/google.golang.org/grpc/dialoptions.go index 7494ae59..405a2ffe 100644 --- a/vendor/google.golang.org/grpc/dialoptions.go +++ b/vendor/google.golang.org/grpc/dialoptions.go @@ -73,7 +73,7 @@ type dialOptions struct { chainUnaryInts []UnaryClientInterceptor chainStreamInts []StreamClientInterceptor - cp Compressor + compressorV0 Compressor dc Decompressor bs internalbackoff.Strategy block bool @@ -94,6 +94,8 @@ type dialOptions struct { idleTimeout time.Duration defaultScheme string maxCallAttempts int + enableLocalDNSResolution bool // Specifies if target hostnames should be resolved when proxying is enabled. + useProxy bool // Specifies if a server should be connected via proxy. } // DialOption configures how we set up the connection. @@ -256,7 +258,7 @@ func WithCodec(c Codec) DialOption { // Deprecated: use UseCompressor instead. Will be supported throughout 1.x. func WithCompressor(cp Compressor) DialOption { return newFuncDialOption(func(o *dialOptions) { - o.cp = cp + o.compressorV0 = cp }) } @@ -377,7 +379,22 @@ func WithInsecure() DialOption { // later release. func WithNoProxy() DialOption { return newFuncDialOption(func(o *dialOptions) { - o.copts.UseProxy = false + o.useProxy = false + }) +} + +// WithLocalDNSResolution forces local DNS name resolution even when a proxy is +// specified in the environment. By default, the server name is provided +// directly to the proxy as part of the CONNECT handshake. This is ignored if +// WithNoProxy is used. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithLocalDNSResolution() DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.enableLocalDNSResolution = true }) } @@ -428,6 +445,11 @@ func WithTimeout(d time.Duration) DialOption { // returned by f, gRPC checks the error's Temporary() method to decide if it // should try to reconnect to the network address. // +// Note that gRPC by default performs name resolution on the target passed to +// NewClient. To bypass name resolution and cause the target string to be +// passed directly to the dialer here instead, use the "passthrough" resolver +// by specifying it in the target string, e.g. "passthrough:target". +// // Note: All supported releases of Go (as of December 2023) override the OS // defaults for TCP keepalive time and interval to 15s. To enable TCP keepalive // with OS defaults for keepalive time and interval, use a net.Dialer that sets @@ -662,14 +684,15 @@ func defaultDialOptions() dialOptions { copts: transport.ConnectOptions{ ReadBufferSize: defaultReadBufSize, WriteBufferSize: defaultWriteBufSize, - UseProxy: true, UserAgent: grpcUA, BufferPool: mem.DefaultBufferPool(), }, - bs: internalbackoff.DefaultExponential, - idleTimeout: 30 * time.Minute, - defaultScheme: "dns", - maxCallAttempts: defaultMaxCallAttempts, + bs: internalbackoff.DefaultExponential, + idleTimeout: 30 * time.Minute, + defaultScheme: "dns", + maxCallAttempts: defaultMaxCallAttempts, + useProxy: true, + enableLocalDNSResolution: false, } } diff --git a/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go b/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go index 26e16d91..94177b05 100644 --- a/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go +++ b/vendor/google.golang.org/grpc/health/grpc_health_v1/health.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.36.4 // protoc v5.27.1 // source: grpc/health/v1/health.proto @@ -28,6 +28,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -90,11 +91,10 @@ func (HealthCheckResponse_ServingStatus) EnumDescriptor() ([]byte, []int) { } type HealthCheckRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` unknownFields protoimpl.UnknownFields - - Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HealthCheckRequest) Reset() { @@ -135,11 +135,10 @@ func (x *HealthCheckRequest) GetService() string { } type HealthCheckResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status HealthCheckResponse_ServingStatus `protobuf:"varint,1,opt,name=status,proto3,enum=grpc.health.v1.HealthCheckResponse_ServingStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Status HealthCheckResponse_ServingStatus `protobuf:"varint,1,opt,name=status,proto3,enum=grpc.health.v1.HealthCheckResponse_ServingStatus" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HealthCheckResponse) Reset() { @@ -181,7 +180,7 @@ func (x *HealthCheckResponse) GetStatus() HealthCheckResponse_ServingStatus { var File_grpc_health_v1_health_proto protoreflect.FileDescriptor -var file_grpc_health_v1_health_proto_rawDesc = []byte{ +var file_grpc_health_v1_health_proto_rawDesc = string([]byte{ 0x0a, 0x1b, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x22, 0x2e, 0x0a, @@ -210,23 +209,24 @@ var file_grpc_health_v1_health_proto_rawDesc = []byte{ 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x42, 0x61, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x68, 0x65, + 0x30, 0x01, 0x42, 0x70, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x5f, 0x76, 0x31, 0xaa, 0x02, 0x0e, 0x47, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2e, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} + 0x68, 0x5f, 0x76, 0x31, 0xa2, 0x02, 0x0c, 0x47, 0x72, 0x70, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x56, 0x31, 0xaa, 0x02, 0x0e, 0x47, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x2e, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +}) var ( file_grpc_health_v1_health_proto_rawDescOnce sync.Once - file_grpc_health_v1_health_proto_rawDescData = file_grpc_health_v1_health_proto_rawDesc + file_grpc_health_v1_health_proto_rawDescData []byte ) func file_grpc_health_v1_health_proto_rawDescGZIP() []byte { file_grpc_health_v1_health_proto_rawDescOnce.Do(func() { - file_grpc_health_v1_health_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_health_v1_health_proto_rawDescData) + file_grpc_health_v1_health_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_grpc_health_v1_health_proto_rawDesc), len(file_grpc_health_v1_health_proto_rawDesc))) }) return file_grpc_health_v1_health_proto_rawDescData } @@ -260,7 +260,7 @@ func file_grpc_health_v1_health_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_grpc_health_v1_health_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_grpc_health_v1_health_proto_rawDesc), len(file_grpc_health_v1_health_proto_rawDesc)), NumEnums: 1, NumMessages: 2, NumExtensions: 0, @@ -272,7 +272,6 @@ func file_grpc_health_v1_health_proto_init() { MessageInfos: file_grpc_health_v1_health_proto_msgTypes, }.Build() File_grpc_health_v1_health_proto = out.File - file_grpc_health_v1_health_proto_rawDesc = nil file_grpc_health_v1_health_proto_goTypes = nil file_grpc_health_v1_health_proto_depIdxs = nil } diff --git a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go index 73bb4c4e..fbc1ca35 100644 --- a/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go +++ b/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go @@ -109,8 +109,9 @@ func (gsb *Balancer) switchTo(builder balancer.Builder) (*balancerWrapper, error return nil, errBalancerClosed } bw := &balancerWrapper{ - builder: builder, - gsb: gsb, + ClientConn: gsb.cc, + builder: builder, + gsb: gsb, lastState: balancer.State{ ConnectivityState: connectivity.Connecting, Picker: base.NewErrPicker(balancer.ErrNoSubConnAvailable), @@ -293,6 +294,7 @@ func (gsb *Balancer) Close() { // State updates from the wrapped balancer can result in invocation of the // graceful switch logic. type balancerWrapper struct { + balancer.ClientConn balancer.Balancer gsb *Balancer builder balancer.Builder @@ -413,7 +415,3 @@ func (bw *balancerWrapper) UpdateAddresses(sc balancer.SubConn, addrs []resolver bw.gsb.mu.Unlock() bw.gsb.cc.UpdateAddresses(sc, addrs) } - -func (bw *balancerWrapper) Target() string { - return bw.gsb.cc.Target() -} diff --git a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go index 6e7dd6b7..1e42b6fd 100644 --- a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go +++ b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go @@ -49,7 +49,7 @@ var ( // XDSFallbackSupport is the env variable that controls whether support for // xDS fallback is turned on. If this is unset or is false, only the first // xDS server in the list of server configs will be used. - XDSFallbackSupport = boolFromEnv("GRPC_EXPERIMENTAL_XDS_FALLBACK", false) + XDSFallbackSupport = boolFromEnv("GRPC_EXPERIMENTAL_XDS_FALLBACK", true) // NewPickFirstEnabled is set if the new pickfirst leaf policy is to be used // instead of the exiting pickfirst implementation. This can be enabled by // setting the environment variable "GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST" diff --git a/vendor/google.golang.org/grpc/internal/envconfig/xds.go b/vendor/google.golang.org/grpc/internal/envconfig/xds.go index 29f234ac..2eb97f83 100644 --- a/vendor/google.golang.org/grpc/internal/envconfig/xds.go +++ b/vendor/google.golang.org/grpc/internal/envconfig/xds.go @@ -53,4 +53,14 @@ var ( // C2PResolverTestOnlyTrafficDirectorURI is the TD URI for testing. C2PResolverTestOnlyTrafficDirectorURI = os.Getenv("GRPC_TEST_ONLY_GOOGLE_C2P_RESOLVER_TRAFFIC_DIRECTOR_URI") + + // XDSDualstackEndpointsEnabled is true if gRPC should read the + // "additional addresses" in the xDS endpoint resource. + XDSDualstackEndpointsEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS", true) + + // XDSSystemRootCertsEnabled is true when xDS enabled gRPC clients can use + // the system's default root certificates for TLS certificate validation. + // For more details, see: + // https://github.com/grpc/proposal/blob/master/A82-xds-system-root-certs.md. + XDSSystemRootCertsEnabled = boolFromEnv("GRPC_EXPERIMENTAL_XDS_SYSTEM_ROOT_CERTS", false) ) diff --git a/vendor/google.golang.org/grpc/internal/grpcsync/oncefunc.go b/vendor/google.golang.org/grpc/internal/grpcsync/oncefunc.go deleted file mode 100644 index 6635f7bc..00000000 --- a/vendor/google.golang.org/grpc/internal/grpcsync/oncefunc.go +++ /dev/null @@ -1,32 +0,0 @@ -/* - * - * Copyright 2022 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package grpcsync - -import ( - "sync" -) - -// OnceFunc returns a function wrapping f which ensures f is only executed -// once even if the returned function is executed multiple times. -func OnceFunc(f func()) func() { - var once sync.Once - return func() { - once.Do(f) - } -} diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go index 3afc1813..13e1f386 100644 --- a/vendor/google.golang.org/grpc/internal/internal.go +++ b/vendor/google.golang.org/grpc/internal/internal.go @@ -31,6 +31,10 @@ import ( var ( // HealthCheckFunc is used to provide client-side LB channel health checking HealthCheckFunc HealthChecker + // RegisterClientHealthCheckListener is used to provide a listener for + // updates from the client-side health checking service. It returns a + // function that can be called to stop the health producer. + RegisterClientHealthCheckListener any // func(ctx context.Context, sc balancer.SubConn, serviceName string, listener func(balancer.SubConnState)) func() // BalancerUnregister is exported by package balancer to unregister a balancer. BalancerUnregister func(name string) // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by @@ -60,6 +64,9 @@ var ( // gRPC server. An xDS-enabled server needs to know what type of credentials // is configured on the underlying gRPC server. This is set by server.go. GetServerCredentials any // func (*grpc.Server) credentials.TransportCredentials + // MetricsRecorderForServer returns the MetricsRecorderList derived from a + // server's stats handlers. + MetricsRecorderForServer any // func (*grpc.Server) estats.MetricsRecorder // CanonicalString returns the canonical string of the code defined here: // https://github.com/grpc/grpc/blob/master/doc/statuscodes.md. // @@ -147,6 +154,20 @@ var ( // other features, including the CSDS service. NewXDSResolverWithConfigForTesting any // func([]byte) (resolver.Builder, error) + // NewXDSResolverWithPoolForTesting creates a new xDS resolver builder + // using the provided xDS pool instead of creating a new one using the + // bootstrap configuration specified by the supported environment variables. + // The resolver.Builder is meant to be used in conjunction with the + // grpc.WithResolvers DialOption. The resolver.Builder does not take + // ownership of the provided xDS client and it is the responsibility of the + // caller to close the client when no longer required. + // + // Testing Only + // + // This function should ONLY be used for testing and may not work with some + // other features, including the CSDS service. + NewXDSResolverWithPoolForTesting any // func(*xdsclient.Pool) (resolver.Builder, error) + // NewXDSResolverWithClientForTesting creates a new xDS resolver builder // using the provided xDS client instead of creating a new one using the // bootstrap configuration specified by the supported environment variables. @@ -273,3 +294,9 @@ const RLSLoadBalancingPolicyName = "rls_experimental" type EnforceSubConnEmbedding interface { enforceSubConnEmbedding() } + +// EnforceClientConnEmbedding is used to enforce proper ClientConn implementation +// embedding. +type EnforceClientConnEmbedding interface { + enforceClientConnEmbedding() +} diff --git a/vendor/google.golang.org/grpc/internal/proxyattributes/proxyattributes.go b/vendor/google.golang.org/grpc/internal/proxyattributes/proxyattributes.go new file mode 100644 index 00000000..1f61f1a4 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/proxyattributes/proxyattributes.go @@ -0,0 +1,54 @@ +/* + * + * Copyright 2024 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package proxyattributes contains functions for getting and setting proxy +// attributes like the CONNECT address and user info. +package proxyattributes + +import ( + "net/url" + + "google.golang.org/grpc/resolver" +) + +type keyType string + +const proxyOptionsKey = keyType("grpc.resolver.delegatingresolver.proxyOptions") + +// Options holds the proxy connection details needed during the CONNECT +// handshake. +type Options struct { + User *url.Userinfo + ConnectAddr string +} + +// Set returns a copy of addr with opts set in its attributes. +func Set(addr resolver.Address, opts Options) resolver.Address { + addr.Attributes = addr.Attributes.WithValue(proxyOptionsKey, opts) + return addr +} + +// Get returns the Options for the proxy [resolver.Address] and a boolean +// value representing if the attribute is present or not. The returned data +// should not be mutated. +func Get(addr resolver.Address) (Options, bool) { + if a := addr.Attributes.Value(proxyOptionsKey); a != nil { + return a.(Options), true + } + return Options{}, false +} diff --git a/vendor/google.golang.org/grpc/internal/resolver/delegatingresolver/delegatingresolver.go b/vendor/google.golang.org/grpc/internal/resolver/delegatingresolver/delegatingresolver.go new file mode 100644 index 00000000..a6c64701 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/resolver/delegatingresolver/delegatingresolver.go @@ -0,0 +1,329 @@ +/* + * + * Copyright 2024 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package delegatingresolver implements a resolver capable of resolving both +// target URIs and proxy addresses. +package delegatingresolver + +import ( + "fmt" + "net/http" + "net/url" + "sync" + + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal/proxyattributes" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/serviceconfig" +) + +var ( + logger = grpclog.Component("delegating-resolver") + // HTTPSProxyFromEnvironment will be overwritten in the tests + HTTPSProxyFromEnvironment = http.ProxyFromEnvironment +) + +// delegatingResolver manages both target URI and proxy address resolution by +// delegating these tasks to separate child resolvers. Essentially, it acts as +// a intermediary between the gRPC ClientConn and the child resolvers. +// +// It implements the [resolver.Resolver] interface. +type delegatingResolver struct { + target resolver.Target // parsed target URI to be resolved + cc resolver.ClientConn // gRPC ClientConn + targetResolver resolver.Resolver // resolver for the target URI, based on its scheme + proxyResolver resolver.Resolver // resolver for the proxy URI; nil if no proxy is configured + proxyURL *url.URL // proxy URL, derived from proxy environment and target + + mu sync.Mutex // protects all the fields below + targetResolverState *resolver.State // state of the target resolver + proxyAddrs []resolver.Address // resolved proxy addresses; empty if no proxy is configured +} + +// nopResolver is a resolver that does nothing. +type nopResolver struct{} + +func (nopResolver) ResolveNow(resolver.ResolveNowOptions) {} + +func (nopResolver) Close() {} + +// proxyURLForTarget determines the proxy URL for the given address based on +// the environment. It can return the following: +// - nil URL, nil error: No proxy is configured or the address is excluded +// using the `NO_PROXY` environment variable or if req.URL.Host is +// "localhost" (with or without // a port number) +// - nil URL, non-nil error: An error occurred while retrieving the proxy URL. +// - non-nil URL, nil error: A proxy is configured, and the proxy URL was +// retrieved successfully without any errors. +func proxyURLForTarget(address string) (*url.URL, error) { + req := &http.Request{URL: &url.URL{ + Scheme: "https", + Host: address, + }} + return HTTPSProxyFromEnvironment(req) +} + +// New creates a new delegating resolver that can create up to two child +// resolvers: +// - one to resolve the proxy address specified using the supported +// environment variables. This uses the registered resolver for the "dns" +// scheme. +// - one to resolve the target URI using the resolver specified by the scheme +// in the target URI or specified by the user using the WithResolvers dial +// option. As a special case, if the target URI's scheme is "dns" and a +// proxy is specified using the supported environment variables, the target +// URI's path portion is used as the resolved address unless target +// resolution is enabled using the dial option. +func New(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions, targetResolverBuilder resolver.Builder, targetResolutionEnabled bool) (resolver.Resolver, error) { + r := &delegatingResolver{ + target: target, + cc: cc, + } + + var err error + r.proxyURL, err = proxyURLForTarget(target.Endpoint()) + if err != nil { + return nil, fmt.Errorf("delegating_resolver: failed to determine proxy URL for target %s: %v", target, err) + } + + // proxy is not configured or proxy address excluded using `NO_PROXY` env + // var, so only target resolver is used. + if r.proxyURL == nil { + return targetResolverBuilder.Build(target, cc, opts) + } + + if logger.V(2) { + logger.Infof("Proxy URL detected : %s", r.proxyURL) + } + + // When the scheme is 'dns' and target resolution on client is not enabled, + // resolution should be handled by the proxy, not the client. Therefore, we + // bypass the target resolver and store the unresolved target address. + if target.URL.Scheme == "dns" && !targetResolutionEnabled { + state := resolver.State{ + Addresses: []resolver.Address{{Addr: target.Endpoint()}}, + Endpoints: []resolver.Endpoint{{Addresses: []resolver.Address{{Addr: target.Endpoint()}}}}, + } + r.targetResolverState = &state + } else { + wcc := &wrappingClientConn{ + stateListener: r.updateTargetResolverState, + parent: r, + } + if r.targetResolver, err = targetResolverBuilder.Build(target, wcc, opts); err != nil { + return nil, fmt.Errorf("delegating_resolver: unable to build the resolver for target %s: %v", target, err) + } + } + + if r.proxyResolver, err = r.proxyURIResolver(opts); err != nil { + return nil, fmt.Errorf("delegating_resolver: failed to build resolver for proxy URL %q: %v", r.proxyURL, err) + } + + if r.targetResolver == nil { + r.targetResolver = nopResolver{} + } + if r.proxyResolver == nil { + r.proxyResolver = nopResolver{} + } + return r, nil +} + +// proxyURIResolver creates a resolver for resolving proxy URIs using the +// "dns" scheme. It adjusts the proxyURL to conform to the "dns:///" format and +// builds a resolver with a wrappingClientConn to capture resolved addresses. +func (r *delegatingResolver) proxyURIResolver(opts resolver.BuildOptions) (resolver.Resolver, error) { + proxyBuilder := resolver.Get("dns") + if proxyBuilder == nil { + panic("delegating_resolver: resolver for proxy not found for scheme dns") + } + url := *r.proxyURL + url.Scheme = "dns" + url.Path = "/" + r.proxyURL.Host + url.Host = "" // Clear the Host field to conform to the "dns:///" format + + proxyTarget := resolver.Target{URL: url} + wcc := &wrappingClientConn{ + stateListener: r.updateProxyResolverState, + parent: r, + } + return proxyBuilder.Build(proxyTarget, wcc, opts) +} + +func (r *delegatingResolver) ResolveNow(o resolver.ResolveNowOptions) { + r.targetResolver.ResolveNow(o) + r.proxyResolver.ResolveNow(o) +} + +func (r *delegatingResolver) Close() { + r.targetResolver.Close() + r.targetResolver = nil + + r.proxyResolver.Close() + r.proxyResolver = nil +} + +// updateClientConnStateLocked creates a list of combined addresses by +// pairing each proxy address with every target address. For each pair, it +// generates a new [resolver.Address] using the proxy address, and adding the +// target address as the attribute along with user info. It returns nil if +// either resolver has not sent update even once and returns the error from +// ClientConn update once both resolvers have sent update atleast once. +func (r *delegatingResolver) updateClientConnStateLocked() error { + if r.targetResolverState == nil || r.proxyAddrs == nil { + return nil + } + + curState := *r.targetResolverState + // If multiple resolved proxy addresses are present, we send only the + // unresolved proxy host and let net.Dial handle the proxy host name + // resolution when creating the transport. Sending all resolved addresses + // would increase the number of addresses passed to the ClientConn and + // subsequently to load balancing (LB) policies like Round Robin, leading + // to additional TCP connections. However, if there's only one resolved + // proxy address, we send it directly, as it doesn't affect the address + // count returned by the target resolver and the address count sent to the + // ClientConn. + var proxyAddr resolver.Address + if len(r.proxyAddrs) == 1 { + proxyAddr = r.proxyAddrs[0] + } else { + proxyAddr = resolver.Address{Addr: r.proxyURL.Host} + } + var addresses []resolver.Address + for _, targetAddr := range (*r.targetResolverState).Addresses { + addresses = append(addresses, proxyattributes.Set(proxyAddr, proxyattributes.Options{ + User: r.proxyURL.User, + ConnectAddr: targetAddr.Addr, + })) + } + + // Create a list of combined endpoints by pairing all proxy endpoints + // with every target endpoint. Each time, it constructs a new + // [resolver.Endpoint] using the all addresses from all the proxy endpoint + // and the target addresses from one endpoint. The target address and user + // information from the proxy URL are added as attributes to the proxy + // address.The resulting list of addresses is then grouped into endpoints, + // covering all combinations of proxy and target endpoints. + var endpoints []resolver.Endpoint + for _, endpt := range (*r.targetResolverState).Endpoints { + var addrs []resolver.Address + for _, proxyAddr := range r.proxyAddrs { + for _, targetAddr := range endpt.Addresses { + addrs = append(addrs, proxyattributes.Set(proxyAddr, proxyattributes.Options{ + User: r.proxyURL.User, + ConnectAddr: targetAddr.Addr, + })) + } + } + endpoints = append(endpoints, resolver.Endpoint{Addresses: addrs}) + } + // Use the targetResolverState for its service config and attributes + // contents. The state update is only sent after both the target and proxy + // resolvers have sent their updates, and curState has been updated with + // the combined addresses. + curState.Addresses = addresses + curState.Endpoints = endpoints + return r.cc.UpdateState(curState) +} + +// updateProxyResolverState updates the proxy resolver state by storing proxy +// addresses and endpoints, marking the resolver as ready, and triggering a +// state update if both proxy and target resolvers are ready. If the ClientConn +// returns a non-nil error, it calls `ResolveNow()` on the target resolver. It +// is a StateListener function of wrappingClientConn passed to the proxy resolver. +func (r *delegatingResolver) updateProxyResolverState(state resolver.State) error { + r.mu.Lock() + defer r.mu.Unlock() + if logger.V(2) { + logger.Infof("Addresses received from proxy resolver: %s", state.Addresses) + } + if len(state.Endpoints) > 0 { + // We expect exactly one address per endpoint because the proxy + // resolver uses "dns" resolution. + r.proxyAddrs = make([]resolver.Address, 0, len(state.Endpoints)) + for _, endpoint := range state.Endpoints { + r.proxyAddrs = append(r.proxyAddrs, endpoint.Addresses...) + } + } else if state.Addresses != nil { + r.proxyAddrs = state.Addresses + } else { + r.proxyAddrs = []resolver.Address{} // ensure proxyAddrs is non-nil to indicate an update has been received + } + err := r.updateClientConnStateLocked() + // Another possible approach was to block until updates are received from + // both resolvers. But this is not used because calling `New()` triggers + // `Build()` for the first resolver, which calls `UpdateState()`. And the + // second resolver hasn't sent an update yet, so it would cause `New()` to + // block indefinitely. + if err != nil { + r.targetResolver.ResolveNow(resolver.ResolveNowOptions{}) + } + return err +} + +// updateTargetResolverState updates the target resolver state by storing target +// addresses, endpoints, and service config, marking the resolver as ready, and +// triggering a state update if both resolvers are ready. If the ClientConn +// returns a non-nil error, it calls `ResolveNow()` on the proxy resolver. It +// is a StateListener function of wrappingClientConn passed to the target resolver. +func (r *delegatingResolver) updateTargetResolverState(state resolver.State) error { + r.mu.Lock() + defer r.mu.Unlock() + + if logger.V(2) { + logger.Infof("Addresses received from target resolver: %v", state.Addresses) + } + r.targetResolverState = &state + err := r.updateClientConnStateLocked() + if err != nil { + r.proxyResolver.ResolveNow(resolver.ResolveNowOptions{}) + } + return nil +} + +// wrappingClientConn serves as an intermediary between the parent ClientConn +// and the child resolvers created here. It implements the resolver.ClientConn +// interface and is passed in that capacity to the child resolvers. +type wrappingClientConn struct { + // Callback to deliver resolver state updates + stateListener func(state resolver.State) error + parent *delegatingResolver +} + +// UpdateState receives resolver state updates and forwards them to the +// appropriate listener function (either for the proxy or target resolver). +func (wcc *wrappingClientConn) UpdateState(state resolver.State) error { + return wcc.stateListener(state) +} + +// ReportError intercepts errors from the child resolvers and passes them to ClientConn. +func (wcc *wrappingClientConn) ReportError(err error) { + wcc.parent.cc.ReportError(err) +} + +// NewAddress intercepts the new resolved address from the child resolvers and +// passes them to ClientConn. +func (wcc *wrappingClientConn) NewAddress(addrs []resolver.Address) { + wcc.UpdateState(resolver.State{Addresses: addrs}) +} + +// ParseServiceConfig parses the provided service config and returns an +// object that provides the parsed config. +func (wcc *wrappingClientConn) ParseServiceConfig(serviceConfigJSON string) *serviceconfig.ParseResult { + return wcc.parent.cc.ParseServiceConfig(serviceConfigJSON) +} diff --git a/vendor/google.golang.org/grpc/internal/transport/handler_server.go b/vendor/google.golang.org/grpc/internal/transport/handler_server.go index d9305a65..3dea2357 100644 --- a/vendor/google.golang.org/grpc/internal/transport/handler_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/handler_server.go @@ -498,5 +498,5 @@ func mapRecvMsgError(err error) error { if strings.Contains(err.Error(), "body closed by handler") { return status.Error(codes.Canceled, err.Error()) } - return connectionErrorf(true, err, err.Error()) + return connectionErrorf(true, err, "%s", err.Error()) } diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go index f323ab7f..513dbb93 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go @@ -43,6 +43,7 @@ import ( "google.golang.org/grpc/internal/grpcsync" "google.golang.org/grpc/internal/grpcutil" imetadata "google.golang.org/grpc/internal/metadata" + "google.golang.org/grpc/internal/proxyattributes" istatus "google.golang.org/grpc/internal/status" isyscall "google.golang.org/grpc/internal/syscall" "google.golang.org/grpc/internal/transport/networktype" @@ -153,7 +154,7 @@ type http2Client struct { logger *grpclog.PrefixLogger } -func dial(ctx context.Context, fn func(context.Context, string) (net.Conn, error), addr resolver.Address, useProxy bool, grpcUA string) (net.Conn, error) { +func dial(ctx context.Context, fn func(context.Context, string) (net.Conn, error), addr resolver.Address, grpcUA string) (net.Conn, error) { address := addr.Addr networkType, ok := networktype.Get(addr) if fn != nil { @@ -177,8 +178,8 @@ func dial(ctx context.Context, fn func(context.Context, string) (net.Conn, error if !ok { networkType, address = parseDialTarget(address) } - if networkType == "tcp" && useProxy { - return proxyDial(ctx, address, grpcUA) + if opts, present := proxyattributes.Get(addr); present { + return proxyDial(ctx, addr, grpcUA, opts) } return internal.NetDialerWithTCPKeepalive().DialContext(ctx, networkType, address) } @@ -217,7 +218,7 @@ func NewHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts // address specific arbitrary data to reach custom dialers and credential handshakers. connectCtx = icredentials.NewClientHandshakeInfoContext(connectCtx, credentials.ClientHandshakeInfo{Attributes: addr.Attributes}) - conn, err := dial(connectCtx, opts.Dialer, addr, opts.UseProxy, opts.UserAgent) + conn, err := dial(connectCtx, opts.Dialer, addr, opts.UserAgent) if err != nil { if opts.FailOnNonTempDialError { return nil, connectionErrorf(isTemporary(err), err, "transport: error while dialing: %v", err) diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_server.go b/vendor/google.golang.org/grpc/internal/transport/http2_server.go index 0055fddd..997b0a59 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_server.go @@ -564,7 +564,7 @@ func (t *http2Server) operateHeaders(ctx context.Context, frame *http2.MetaHeade t.logger.Infof("Aborting the stream early: %v", errMsg) } t.controlBuf.put(&earlyAbortStream{ - httpStatus: 405, + httpStatus: http.StatusMethodNotAllowed, streamID: streamID, contentSubtype: s.contentSubtype, status: status.New(codes.Internal, errMsg), @@ -585,7 +585,7 @@ func (t *http2Server) operateHeaders(ctx context.Context, frame *http2.MetaHeade stat = status.New(codes.PermissionDenied, err.Error()) } t.controlBuf.put(&earlyAbortStream{ - httpStatus: 200, + httpStatus: http.StatusOK, streamID: s.id, contentSubtype: s.contentSubtype, status: stat, diff --git a/vendor/google.golang.org/grpc/internal/transport/proxy.go b/vendor/google.golang.org/grpc/internal/transport/proxy.go index 54b22443..d7738459 100644 --- a/vendor/google.golang.org/grpc/internal/transport/proxy.go +++ b/vendor/google.golang.org/grpc/internal/transport/proxy.go @@ -30,34 +30,16 @@ import ( "net/url" "google.golang.org/grpc/internal" + "google.golang.org/grpc/internal/proxyattributes" + "google.golang.org/grpc/resolver" ) const proxyAuthHeaderKey = "Proxy-Authorization" -var ( - // The following variable will be overwritten in the tests. - httpProxyFromEnvironment = http.ProxyFromEnvironment -) - -func mapAddress(address string) (*url.URL, error) { - req := &http.Request{ - URL: &url.URL{ - Scheme: "https", - Host: address, - }, - } - url, err := httpProxyFromEnvironment(req) - if err != nil { - return nil, err - } - return url, nil -} - // To read a response from a net.Conn, http.ReadResponse() takes a bufio.Reader. -// It's possible that this reader reads more than what's need for the response and stores -// those bytes in the buffer. -// bufConn wraps the original net.Conn and the bufio.Reader to make sure we don't lose the -// bytes in the buffer. +// It's possible that this reader reads more than what's need for the response +// and stores those bytes in the buffer. bufConn wraps the original net.Conn +// and the bufio.Reader to make sure we don't lose the bytes in the buffer. type bufConn struct { net.Conn r io.Reader @@ -72,7 +54,7 @@ func basicAuth(username, password string) string { return base64.StdEncoding.EncodeToString([]byte(auth)) } -func doHTTPConnectHandshake(ctx context.Context, conn net.Conn, backendAddr string, proxyURL *url.URL, grpcUA string) (_ net.Conn, err error) { +func doHTTPConnectHandshake(ctx context.Context, conn net.Conn, grpcUA string, opts proxyattributes.Options) (_ net.Conn, err error) { defer func() { if err != nil { conn.Close() @@ -81,15 +63,14 @@ func doHTTPConnectHandshake(ctx context.Context, conn net.Conn, backendAddr stri req := &http.Request{ Method: http.MethodConnect, - URL: &url.URL{Host: backendAddr}, + URL: &url.URL{Host: opts.ConnectAddr}, Header: map[string][]string{"User-Agent": {grpcUA}}, } - if t := proxyURL.User; t != nil { - u := t.Username() - p, _ := t.Password() + if user := opts.User; user != nil { + u := user.Username() + p, _ := user.Password() req.Header.Add(proxyAuthHeaderKey, "Basic "+basicAuth(u, p)) } - if err := sendHTTPRequest(ctx, req, conn); err != nil { return nil, fmt.Errorf("failed to write the HTTP request: %v", err) } @@ -117,28 +98,13 @@ func doHTTPConnectHandshake(ctx context.Context, conn net.Conn, backendAddr stri return conn, nil } -// proxyDial dials, connecting to a proxy first if necessary. Checks if a proxy -// is necessary, dials, does the HTTP CONNECT handshake, and returns the -// connection. -func proxyDial(ctx context.Context, addr string, grpcUA string) (net.Conn, error) { - newAddr := addr - proxyURL, err := mapAddress(addr) +// proxyDial establishes a TCP connection to the specified address and performs an HTTP CONNECT handshake. +func proxyDial(ctx context.Context, addr resolver.Address, grpcUA string, opts proxyattributes.Options) (net.Conn, error) { + conn, err := internal.NetDialerWithTCPKeepalive().DialContext(ctx, "tcp", addr.Addr) if err != nil { return nil, err } - if proxyURL != nil { - newAddr = proxyURL.Host - } - - conn, err := internal.NetDialerWithTCPKeepalive().DialContext(ctx, "tcp", newAddr) - if err != nil { - return nil, err - } - if proxyURL == nil { - // proxy is disabled if proxyURL is nil. - return conn, err - } - return doHTTPConnectHandshake(ctx, conn, addr, proxyURL, grpcUA) + return doHTTPConnectHandshake(ctx, conn, grpcUA, opts) } func sendHTTPRequest(ctx context.Context, req *http.Request, conn net.Conn) error { diff --git a/vendor/google.golang.org/grpc/internal/transport/transport.go b/vendor/google.golang.org/grpc/internal/transport/transport.go index 2859b877..af4a4aea 100644 --- a/vendor/google.golang.org/grpc/internal/transport/transport.go +++ b/vendor/google.golang.org/grpc/internal/transport/transport.go @@ -502,8 +502,6 @@ type ConnectOptions struct { ChannelzParent *channelz.SubChannel // MaxHeaderListSize sets the max (uncompressed) size of header list that is prepared to be received. MaxHeaderListSize *uint32 - // UseProxy specifies if a proxy should be used. - UseProxy bool // The mem.BufferPool to use when reading/writing to the wire. BufferPool mem.BufferPool } diff --git a/vendor/google.golang.org/grpc/picker_wrapper.go b/vendor/google.golang.org/grpc/picker_wrapper.go index bdaa2130..a2d2a798 100644 --- a/vendor/google.golang.org/grpc/picker_wrapper.go +++ b/vendor/google.golang.org/grpc/picker_wrapper.go @@ -123,7 +123,7 @@ func (pw *pickerWrapper) pick(ctx context.Context, failfast bool, info balancer. if lastPickErr != nil { errStr = "latest balancer error: " + lastPickErr.Error() } else { - errStr = fmt.Sprintf("received context error while waiting for new LB policy update: %s", ctx.Err().Error()) + errStr = fmt.Sprintf("%v while waiting for connections to become ready", ctx.Err()) } switch ctx.Err() { case context.DeadlineExceeded: diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go index 8eb1cf3b..b84ef26d 100644 --- a/vendor/google.golang.org/grpc/resolver/resolver.go +++ b/vendor/google.golang.org/grpc/resolver/resolver.go @@ -30,6 +30,7 @@ import ( "google.golang.org/grpc/attributes" "google.golang.org/grpc/credentials" + "google.golang.org/grpc/experimental/stats" "google.golang.org/grpc/internal" "google.golang.org/grpc/serviceconfig" ) @@ -175,6 +176,8 @@ type BuildOptions struct { // Authority is the effective authority of the clientconn for which the // resolver is built. Authority string + // MetricsRecorder is the metrics recorder to do recording. + MetricsRecorder stats.MetricsRecorder } // An Endpoint is one network endpoint, or server, which may have multiple diff --git a/vendor/google.golang.org/grpc/resolver_wrapper.go b/vendor/google.golang.org/grpc/resolver_wrapper.go index 23bb3fb2..945e24ff 100644 --- a/vendor/google.golang.org/grpc/resolver_wrapper.go +++ b/vendor/google.golang.org/grpc/resolver_wrapper.go @@ -26,6 +26,7 @@ import ( "google.golang.org/grpc/internal/channelz" "google.golang.org/grpc/internal/grpcsync" "google.golang.org/grpc/internal/pretty" + "google.golang.org/grpc/internal/resolver/delegatingresolver" "google.golang.org/grpc/resolver" "google.golang.org/grpc/serviceconfig" ) @@ -76,9 +77,19 @@ func (ccr *ccResolverWrapper) start() error { CredsBundle: ccr.cc.dopts.copts.CredsBundle, Dialer: ccr.cc.dopts.copts.Dialer, Authority: ccr.cc.authority, + MetricsRecorder: ccr.cc.metricsRecorderList, } var err error - ccr.resolver, err = ccr.cc.resolverBuilder.Build(ccr.cc.parsedTarget, ccr, opts) + // The delegating resolver is used unless: + // - A custom dialer is provided via WithContextDialer dialoption or + // - Proxy usage is disabled through WithNoProxy dialoption. + // In these cases, the resolver is built based on the scheme of target, + // using the appropriate resolver builder. + if ccr.cc.dopts.copts.Dialer != nil || !ccr.cc.dopts.useProxy { + ccr.resolver, err = ccr.cc.resolverBuilder.Build(ccr.cc.parsedTarget, ccr, opts) + } else { + ccr.resolver, err = delegatingresolver.New(ccr.cc.parsedTarget, ccr, opts, ccr.cc.resolverBuilder, ccr.cc.dopts.enableLocalDNSResolution) + } errCh <- err }) return <-errCh diff --git a/vendor/google.golang.org/grpc/rpc_util.go b/vendor/google.golang.org/grpc/rpc_util.go index 9fac2b08..a8ddb0af 100644 --- a/vendor/google.golang.org/grpc/rpc_util.go +++ b/vendor/google.golang.org/grpc/rpc_util.go @@ -151,7 +151,7 @@ func (d *gzipDecompressor) Type() string { // callInfo contains all related configuration and information about an RPC. type callInfo struct { - compressorType string + compressorName string failFast bool maxReceiveMessageSize *int maxSendMessageSize *int @@ -222,7 +222,7 @@ type HeaderCallOption struct { func (o HeaderCallOption) before(*callInfo) error { return nil } func (o HeaderCallOption) after(_ *callInfo, attempt *csAttempt) { - *o.HeaderAddr, _ = attempt.s.Header() + *o.HeaderAddr, _ = attempt.transportStream.Header() } // Trailer returns a CallOptions that retrieves the trailer metadata @@ -244,7 +244,7 @@ type TrailerCallOption struct { func (o TrailerCallOption) before(*callInfo) error { return nil } func (o TrailerCallOption) after(_ *callInfo, attempt *csAttempt) { - *o.TrailerAddr = attempt.s.Trailer() + *o.TrailerAddr = attempt.transportStream.Trailer() } // Peer returns a CallOption that retrieves peer information for a unary RPC. @@ -266,7 +266,7 @@ type PeerCallOption struct { func (o PeerCallOption) before(*callInfo) error { return nil } func (o PeerCallOption) after(_ *callInfo, attempt *csAttempt) { - if x, ok := peer.FromContext(attempt.s.Context()); ok { + if x, ok := peer.FromContext(attempt.transportStream.Context()); ok { *o.PeerAddr = *x } } @@ -435,7 +435,7 @@ type CompressorCallOption struct { } func (o CompressorCallOption) before(c *callInfo) error { - c.compressorType = o.CompressorType + c.compressorName = o.CompressorType return nil } func (o CompressorCallOption) after(*callInfo, *csAttempt) {} @@ -692,9 +692,9 @@ func encode(c baseCodec, msg any) (mem.BufferSlice, error) { if err != nil { return nil, status.Errorf(codes.Internal, "grpc: error while marshaling: %v", err.Error()) } - if uint(b.Len()) > math.MaxUint32 { + if bufSize := uint(b.Len()); bufSize > math.MaxUint32 { b.Free() - return nil, status.Errorf(codes.ResourceExhausted, "grpc: message too large (%d bytes)", len(b)) + return nil, status.Errorf(codes.ResourceExhausted, "grpc: message too large (%d bytes)", bufSize) } return b, nil } @@ -828,30 +828,13 @@ func recvAndDecompress(p *parser, s recvCompressor, dc Decompressor, maxReceiveM return nil, st.Err() } - var size int if pf.isCompressed() { defer compressed.Free() - // To match legacy behavior, if the decompressor is set by WithDecompressor or RPCDecompressor, // use this decompressor as the default. - if dc != nil { - var uncompressedBuf []byte - uncompressedBuf, err = dc.Do(compressed.Reader()) - if err == nil { - out = mem.BufferSlice{mem.SliceBuffer(uncompressedBuf)} - } - size = len(uncompressedBuf) - } else { - out, size, err = decompress(compressor, compressed, maxReceiveMessageSize, p.bufferPool) - } + out, err = decompress(compressor, compressed, dc, maxReceiveMessageSize, p.bufferPool) if err != nil { - return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the received message: %v", err) - } - if size > maxReceiveMessageSize { - out.Free() - // TODO: Revisit the error code. Currently keep it consistent with java - // implementation. - return nil, status.Errorf(codes.ResourceExhausted, "grpc: received message after decompression larger than max (%d vs. %d)", size, maxReceiveMessageSize) + return nil, err } } else { out = compressed @@ -866,20 +849,46 @@ func recvAndDecompress(p *parser, s recvCompressor, dc Decompressor, maxReceiveM return out, nil } -// Using compressor, decompress d, returning data and size. -// Optionally, if data will be over maxReceiveMessageSize, just return the size. -func decompress(compressor encoding.Compressor, d mem.BufferSlice, maxReceiveMessageSize int, pool mem.BufferPool) (mem.BufferSlice, int, error) { - dcReader, err := compressor.Decompress(d.Reader()) - if err != nil { - return nil, 0, err +// decompress processes the given data by decompressing it using either a custom decompressor or a standard compressor. +// If a custom decompressor is provided, it takes precedence. The function validates that the decompressed data +// does not exceed the specified maximum size and returns an error if this limit is exceeded. +// On success, it returns the decompressed data. Otherwise, it returns an error if decompression fails or the data exceeds the size limit. +func decompress(compressor encoding.Compressor, d mem.BufferSlice, dc Decompressor, maxReceiveMessageSize int, pool mem.BufferPool) (mem.BufferSlice, error) { + if dc != nil { + uncompressed, err := dc.Do(d.Reader()) + if err != nil { + return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the received message: %v", err) + } + if len(uncompressed) > maxReceiveMessageSize { + return nil, status.Errorf(codes.ResourceExhausted, "grpc: message after decompression larger than max (%d vs. %d)", len(uncompressed), maxReceiveMessageSize) + } + return mem.BufferSlice{mem.SliceBuffer(uncompressed)}, nil } + if compressor != nil { + dcReader, err := compressor.Decompress(d.Reader()) + if err != nil { + return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the message: %v", err) + } - out, err := mem.ReadAll(io.LimitReader(dcReader, int64(maxReceiveMessageSize)+1), pool) - if err != nil { - out.Free() - return nil, 0, err + out, err := mem.ReadAll(io.LimitReader(dcReader, int64(maxReceiveMessageSize)), pool) + if err != nil { + out.Free() + return nil, status.Errorf(codes.Internal, "grpc: failed to read decompressed data: %v", err) + } + + if out.Len() == maxReceiveMessageSize && !atEOF(dcReader) { + out.Free() + return nil, status.Errorf(codes.ResourceExhausted, "grpc: received message after decompression larger than max %d", maxReceiveMessageSize) + } + return out, nil } - return out, out.Len(), nil + return nil, status.Errorf(codes.Internal, "grpc: no decompressor available for compressed payload") +} + +// atEOF reads data from r and returns true if zero bytes could be read and r.Read returns EOF. +func atEOF(dcReader io.Reader) bool { + n, err := dcReader.Read(make([]byte, 1)) + return n == 0 && err == io.EOF } type recvCompressor interface { diff --git a/vendor/google.golang.org/grpc/server.go b/vendor/google.golang.org/grpc/server.go index 16065a02..976e70ae 100644 --- a/vendor/google.golang.org/grpc/server.go +++ b/vendor/google.golang.org/grpc/server.go @@ -37,12 +37,14 @@ import ( "google.golang.org/grpc/credentials" "google.golang.org/grpc/encoding" "google.golang.org/grpc/encoding/proto" + estats "google.golang.org/grpc/experimental/stats" "google.golang.org/grpc/grpclog" "google.golang.org/grpc/internal" "google.golang.org/grpc/internal/binarylog" "google.golang.org/grpc/internal/channelz" "google.golang.org/grpc/internal/grpcsync" "google.golang.org/grpc/internal/grpcutil" + istats "google.golang.org/grpc/internal/stats" "google.golang.org/grpc/internal/transport" "google.golang.org/grpc/keepalive" "google.golang.org/grpc/mem" @@ -82,6 +84,9 @@ func init() { internal.BinaryLogger = binaryLogger internal.JoinServerOptions = newJoinServerOption internal.BufferPool = bufferPool + internal.MetricsRecorderForServer = func(srv *Server) estats.MetricsRecorder { + return istats.NewMetricsRecorderList(srv.opts.statsHandlers) + } } var statusOK = status.New(codes.OK, "") @@ -643,7 +648,7 @@ func (s *Server) serverWorker() { // connections to reduce the time spent overall on runtime.morestack. func (s *Server) initServerWorkers() { s.serverWorkerChannel = make(chan func()) - s.serverWorkerChannelClose = grpcsync.OnceFunc(func() { + s.serverWorkerChannelClose = sync.OnceFunc(func() { close(s.serverWorkerChannel) }) for i := uint32(0); i < s.opts.numServerWorkers; i++ { @@ -1360,8 +1365,16 @@ func (s *Server) processUnaryRPC(ctx context.Context, stream *transport.ServerSt } return err } - defer d.Free() + freed := false + dataFree := func() { + if !freed { + d.Free() + freed = true + } + } + defer dataFree() df := func(v any) error { + defer dataFree() if err := s.getCodec(stream.ContentSubtype()).Unmarshal(d, v); err != nil { return status.Errorf(codes.Internal, "grpc: error unmarshalling request: %v", err) } @@ -1637,10 +1650,10 @@ func (s *Server) processStreamingRPC(ctx context.Context, stream *transport.Serv // If dc is set and matches the stream's compression, use it. Otherwise, try // to find a matching registered compressor for decomp. if rc := stream.RecvCompress(); s.opts.dc != nil && s.opts.dc.Type() == rc { - ss.dc = s.opts.dc + ss.decompressorV0 = s.opts.dc } else if rc != "" && rc != encoding.Identity { - ss.decomp = encoding.GetCompressor(rc) - if ss.decomp == nil { + ss.decompressorV1 = encoding.GetCompressor(rc) + if ss.decompressorV1 == nil { st := status.Newf(codes.Unimplemented, "grpc: Decompressor is not installed for grpc-encoding %q", rc) ss.s.WriteStatus(st) return st.Err() @@ -1652,12 +1665,12 @@ func (s *Server) processStreamingRPC(ctx context.Context, stream *transport.Serv // // NOTE: this needs to be ahead of all handling, https://github.com/grpc/grpc-go/issues/686. if s.opts.cp != nil { - ss.cp = s.opts.cp + ss.compressorV0 = s.opts.cp ss.sendCompressorName = s.opts.cp.Type() } else if rc := stream.RecvCompress(); rc != "" && rc != encoding.Identity { // Legacy compressor not specified; attempt to respond with same encoding. - ss.comp = encoding.GetCompressor(rc) - if ss.comp != nil { + ss.compressorV1 = encoding.GetCompressor(rc) + if ss.compressorV1 != nil { ss.sendCompressorName = rc } } @@ -1668,7 +1681,7 @@ func (s *Server) processStreamingRPC(ctx context.Context, stream *transport.Serv } } - ss.ctx = newContextWithRPCInfo(ss.ctx, false, ss.codec, ss.cp, ss.comp) + ss.ctx = newContextWithRPCInfo(ss.ctx, false, ss.codec, ss.compressorV0, ss.compressorV1) if trInfo != nil { trInfo.tr.LazyLog(&trInfo.firstLine, false) @@ -1922,7 +1935,7 @@ func (s *Server) stop(graceful bool) { s.conns = nil if s.opts.numServerWorkers > 0 { - // Closing the channel (only once, via grpcsync.OnceFunc) after all the + // Closing the channel (only once, via sync.OnceFunc) after all the // connections have been closed above ensures that there are no // goroutines executing the callback passed to st.HandleStreams (where // the channel is written to). diff --git a/vendor/google.golang.org/grpc/service_config.go b/vendor/google.golang.org/grpc/service_config.go index 7e83027d..8d451e07 100644 --- a/vendor/google.golang.org/grpc/service_config.go +++ b/vendor/google.golang.org/grpc/service_config.go @@ -268,18 +268,21 @@ func parseServiceConfig(js string, maxAttempts int) *serviceconfig.ParseResult { return &serviceconfig.ParseResult{Config: &sc} } +func isValidRetryPolicy(jrp *jsonRetryPolicy) bool { + return jrp.MaxAttempts > 1 && + jrp.InitialBackoff > 0 && + jrp.MaxBackoff > 0 && + jrp.BackoffMultiplier > 0 && + len(jrp.RetryableStatusCodes) > 0 +} + func convertRetryPolicy(jrp *jsonRetryPolicy, maxAttempts int) (p *internalserviceconfig.RetryPolicy, err error) { if jrp == nil { return nil, nil } - if jrp.MaxAttempts <= 1 || - jrp.InitialBackoff <= 0 || - jrp.MaxBackoff <= 0 || - jrp.BackoffMultiplier <= 0 || - len(jrp.RetryableStatusCodes) == 0 { - logger.Warningf("grpc: ignoring retry policy %v due to illegal configuration", jrp) - return nil, nil + if !isValidRetryPolicy(jrp) { + return nil, fmt.Errorf("invalid retry policy (%+v): ", jrp) } if jrp.MaxAttempts < maxAttempts { diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go index 17e2267b..12163150 100644 --- a/vendor/google.golang.org/grpc/stream.go +++ b/vendor/google.golang.org/grpc/stream.go @@ -258,9 +258,9 @@ func newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, meth } func newClientStreamWithParams(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, mc serviceconfig.MethodConfig, onCommit, doneFunc func(), opts ...CallOption) (_ iresolver.ClientStream, err error) { - c := defaultCallInfo() + callInfo := defaultCallInfo() if mc.WaitForReady != nil { - c.failFast = !*mc.WaitForReady + callInfo.failFast = !*mc.WaitForReady } // Possible context leak: @@ -281,20 +281,20 @@ func newClientStreamWithParams(ctx context.Context, desc *StreamDesc, cc *Client }() for _, o := range opts { - if err := o.before(c); err != nil { + if err := o.before(callInfo); err != nil { return nil, toRPCErr(err) } } - c.maxSendMessageSize = getMaxSize(mc.MaxReqSize, c.maxSendMessageSize, defaultClientMaxSendMessageSize) - c.maxReceiveMessageSize = getMaxSize(mc.MaxRespSize, c.maxReceiveMessageSize, defaultClientMaxReceiveMessageSize) - if err := setCallInfoCodec(c); err != nil { + callInfo.maxSendMessageSize = getMaxSize(mc.MaxReqSize, callInfo.maxSendMessageSize, defaultClientMaxSendMessageSize) + callInfo.maxReceiveMessageSize = getMaxSize(mc.MaxRespSize, callInfo.maxReceiveMessageSize, defaultClientMaxReceiveMessageSize) + if err := setCallInfoCodec(callInfo); err != nil { return nil, err } callHdr := &transport.CallHdr{ Host: cc.authority, Method: method, - ContentSubtype: c.contentSubtype, + ContentSubtype: callInfo.contentSubtype, DoneFunc: doneFunc, } @@ -302,22 +302,22 @@ func newClientStreamWithParams(ctx context.Context, desc *StreamDesc, cc *Client // set. In that case, also find the compressor from the encoding package. // Otherwise, use the compressor configured by the WithCompressor DialOption, // if set. - var cp Compressor - var comp encoding.Compressor - if ct := c.compressorType; ct != "" { + var compressorV0 Compressor + var compressorV1 encoding.Compressor + if ct := callInfo.compressorName; ct != "" { callHdr.SendCompress = ct if ct != encoding.Identity { - comp = encoding.GetCompressor(ct) - if comp == nil { + compressorV1 = encoding.GetCompressor(ct) + if compressorV1 == nil { return nil, status.Errorf(codes.Internal, "grpc: Compressor is not installed for requested grpc-encoding %q", ct) } } - } else if cc.dopts.cp != nil { - callHdr.SendCompress = cc.dopts.cp.Type() - cp = cc.dopts.cp + } else if cc.dopts.compressorV0 != nil { + callHdr.SendCompress = cc.dopts.compressorV0.Type() + compressorV0 = cc.dopts.compressorV0 } - if c.creds != nil { - callHdr.Creds = c.creds + if callInfo.creds != nil { + callHdr.Creds = callInfo.creds } cs := &clientStream{ @@ -325,12 +325,12 @@ func newClientStreamWithParams(ctx context.Context, desc *StreamDesc, cc *Client ctx: ctx, methodConfig: &mc, opts: opts, - callInfo: c, + callInfo: callInfo, cc: cc, desc: desc, - codec: c.codec, - cp: cp, - comp: comp, + codec: callInfo.codec, + compressorV0: compressorV0, + compressorV1: compressorV1, cancel: cancel, firstAttempt: true, onCommit: onCommit, @@ -412,7 +412,7 @@ func (cs *clientStream) newAttemptLocked(isTransparent bool) (*csAttempt, error) return nil, ErrClientConnClosing } - ctx := newContextWithRPCInfo(cs.ctx, cs.callInfo.failFast, cs.callInfo.codec, cs.cp, cs.comp) + ctx := newContextWithRPCInfo(cs.ctx, cs.callInfo.failFast, cs.callInfo.codec, cs.compressorV0, cs.compressorV1) method := cs.callHdr.Method var beginTime time.Time shs := cs.cc.dopts.copts.StatsHandlers @@ -454,12 +454,12 @@ func (cs *clientStream) newAttemptLocked(isTransparent bool) (*csAttempt, error) } return &csAttempt{ - ctx: ctx, - beginTime: beginTime, - cs: cs, - dc: cs.cc.dopts.dc, - statsHandlers: shs, - trInfo: trInfo, + ctx: ctx, + beginTime: beginTime, + cs: cs, + decompressorV0: cs.cc.dopts.dc, + statsHandlers: shs, + trInfo: trInfo, }, nil } @@ -467,7 +467,7 @@ func (a *csAttempt) getTransport() error { cs := a.cs var err error - a.t, a.pickResult, err = cs.cc.getTransport(a.ctx, cs.callInfo.failFast, cs.callHdr.Method) + a.transport, a.pickResult, err = cs.cc.getTransport(a.ctx, cs.callInfo.failFast, cs.callHdr.Method) if err != nil { if de, ok := err.(dropError); ok { err = de.error @@ -476,7 +476,7 @@ func (a *csAttempt) getTransport() error { return err } if a.trInfo != nil { - a.trInfo.firstLine.SetRemoteAddr(a.t.RemoteAddr()) + a.trInfo.firstLine.SetRemoteAddr(a.transport.RemoteAddr()) } return nil } @@ -503,7 +503,7 @@ func (a *csAttempt) newStream() error { a.ctx = metadata.NewOutgoingContext(a.ctx, md) } - s, err := a.t.NewStream(a.ctx, cs.callHdr) + s, err := a.transport.NewStream(a.ctx, cs.callHdr) if err != nil { nse, ok := err.(*transport.NewStreamError) if !ok { @@ -518,9 +518,9 @@ func (a *csAttempt) newStream() error { // Unwrap and convert error. return toRPCErr(nse.Err) } - a.s = s + a.transportStream = s a.ctx = s.Context() - a.p = &parser{r: s, bufferPool: a.cs.cc.dopts.copts.BufferPool} + a.parser = &parser{r: s, bufferPool: a.cs.cc.dopts.copts.BufferPool} return nil } @@ -532,9 +532,9 @@ type clientStream struct { cc *ClientConn desc *StreamDesc - codec baseCodec - cp Compressor - comp encoding.Compressor + codec baseCodec + compressorV0 Compressor + compressorV1 encoding.Compressor cancel context.CancelFunc // cancels all attempts @@ -583,17 +583,17 @@ type replayOp struct { // csAttempt implements a single transport stream attempt within a // clientStream. type csAttempt struct { - ctx context.Context - cs *clientStream - t transport.ClientTransport - s *transport.ClientStream - p *parser - pickResult balancer.PickResult + ctx context.Context + cs *clientStream + transport transport.ClientTransport + transportStream *transport.ClientStream + parser *parser + pickResult balancer.PickResult - finished bool - dc Decompressor - decomp encoding.Compressor - decompSet bool + finished bool + decompressorV0 Decompressor + decompressorV1 encoding.Compressor + decompressorSet bool mu sync.Mutex // guards trInfo.tr // trInfo may be nil (if EnableTracing is false). @@ -639,14 +639,14 @@ func (a *csAttempt) shouldRetry(err error) (bool, error) { // RPC is finished or committed or was dropped by the picker; cannot retry. return false, err } - if a.s == nil && a.allowTransparentRetry { + if a.transportStream == nil && a.allowTransparentRetry { return true, nil } // Wait for the trailers. unprocessed := false - if a.s != nil { - <-a.s.Done() - unprocessed = a.s.Unprocessed() + if a.transportStream != nil { + <-a.transportStream.Done() + unprocessed = a.transportStream.Unprocessed() } if cs.firstAttempt && unprocessed { // First attempt, stream unprocessed: transparently retry. @@ -658,14 +658,14 @@ func (a *csAttempt) shouldRetry(err error) (bool, error) { pushback := 0 hasPushback := false - if a.s != nil { - if !a.s.TrailersOnly() { + if a.transportStream != nil { + if !a.transportStream.TrailersOnly() { return false, err } // TODO(retry): Move down if the spec changes to not check server pushback // before considering this a failure for throttling. - sps := a.s.Trailer()["grpc-retry-pushback-ms"] + sps := a.transportStream.Trailer()["grpc-retry-pushback-ms"] if len(sps) == 1 { var e error if pushback, e = strconv.Atoi(sps[0]); e != nil || pushback < 0 { @@ -682,8 +682,8 @@ func (a *csAttempt) shouldRetry(err error) (bool, error) { } var code codes.Code - if a.s != nil { - code = a.s.Status().Code() + if a.transportStream != nil { + code = a.transportStream.Status().Code() } else { code = status.Code(err) } @@ -756,8 +756,8 @@ func (cs *clientStream) Context() context.Context { cs.commitAttempt() // No need to lock before using attempt, since we know it is committed and // cannot change. - if cs.attempt.s != nil { - return cs.attempt.s.Context() + if cs.attempt.transportStream != nil { + return cs.attempt.transportStream.Context() } return cs.ctx } @@ -794,9 +794,9 @@ func (cs *clientStream) withRetry(op func(a *csAttempt) error, onSuccess func()) continue } if err == io.EOF { - <-a.s.Done() + <-a.transportStream.Done() } - if err == nil || (err == io.EOF && a.s.Status().Code() == codes.OK) { + if err == nil || (err == io.EOF && a.transportStream.Status().Code() == codes.OK) { onSuccess() cs.mu.Unlock() return err @@ -812,7 +812,7 @@ func (cs *clientStream) Header() (metadata.MD, error) { var m metadata.MD err := cs.withRetry(func(a *csAttempt) error { var err error - m, err = a.s.Header() + m, err = a.transportStream.Header() return toRPCErr(err) }, cs.commitAttemptLocked) @@ -856,10 +856,10 @@ func (cs *clientStream) Trailer() metadata.MD { // directions -- it will prevent races and should not meaningfully impact // performance. cs.commitAttempt() - if cs.attempt.s == nil { + if cs.attempt.transportStream == nil { return nil } - return cs.attempt.s.Trailer() + return cs.attempt.transportStream.Trailer() } func (cs *clientStream) replayBufferLocked(attempt *csAttempt) error { @@ -904,7 +904,7 @@ func (cs *clientStream) SendMsg(m any) (err error) { } // load hdr, payload, data - hdr, data, payload, pf, err := prepareMsg(m, cs.codec, cs.cp, cs.comp, cs.cc.dopts.copts.BufferPool) + hdr, data, payload, pf, err := prepareMsg(m, cs.codec, cs.compressorV0, cs.compressorV1, cs.cc.dopts.copts.BufferPool) if err != nil { return err } @@ -992,7 +992,7 @@ func (cs *clientStream) CloseSend() error { } cs.sentLast = true op := func(a *csAttempt) error { - a.s.Write(nil, nil, &transport.WriteOptions{Last: true}) + a.transportStream.Write(nil, nil, &transport.WriteOptions{Last: true}) // Always return nil; io.EOF is the only error that might make sense // instead, but there is no need to signal the client to call RecvMsg // as the only use left for the stream after CloseSend is to call @@ -1030,7 +1030,7 @@ func (cs *clientStream) finish(err error) { if cs.attempt != nil { cs.attempt.finish(err) // after functions all rely upon having a stream. - if cs.attempt.s != nil { + if cs.attempt.transportStream != nil { for _, o := range cs.opts { o.after(cs.callInfo, cs.attempt) } @@ -1084,7 +1084,7 @@ func (a *csAttempt) sendMsg(m any, hdr []byte, payld mem.BufferSlice, dataLength } a.mu.Unlock() } - if err := a.s.Write(hdr, payld, &transport.WriteOptions{Last: !cs.desc.ClientStreams}); err != nil { + if err := a.transportStream.Write(hdr, payld, &transport.WriteOptions{Last: !cs.desc.ClientStreams}); err != nil { if !cs.desc.ClientStreams { // For non-client-streaming RPCs, we return nil instead of EOF on error // because the generated code requires it. finish is not called; RecvMsg() @@ -1108,25 +1108,25 @@ func (a *csAttempt) recvMsg(m any, payInfo *payloadInfo) (err error) { defer payInfo.free() } - if !a.decompSet { + if !a.decompressorSet { // Block until we receive headers containing received message encoding. - if ct := a.s.RecvCompress(); ct != "" && ct != encoding.Identity { - if a.dc == nil || a.dc.Type() != ct { + if ct := a.transportStream.RecvCompress(); ct != "" && ct != encoding.Identity { + if a.decompressorV0 == nil || a.decompressorV0.Type() != ct { // No configured decompressor, or it does not match the incoming // message encoding; attempt to find a registered compressor that does. - a.dc = nil - a.decomp = encoding.GetCompressor(ct) + a.decompressorV0 = nil + a.decompressorV1 = encoding.GetCompressor(ct) } } else { // No compression is used; disable our decompressor. - a.dc = nil + a.decompressorV0 = nil } // Only initialize this state once per stream. - a.decompSet = true + a.decompressorSet = true } - if err := recv(a.p, cs.codec, a.s, a.dc, m, *cs.callInfo.maxReceiveMessageSize, payInfo, a.decomp, false); err != nil { + if err := recv(a.parser, cs.codec, a.transportStream, a.decompressorV0, m, *cs.callInfo.maxReceiveMessageSize, payInfo, a.decompressorV1, false); err != nil { if err == io.EOF { - if statusErr := a.s.Status().Err(); statusErr != nil { + if statusErr := a.transportStream.Status().Err(); statusErr != nil { return statusErr } return io.EOF // indicates successful end of stream. @@ -1157,8 +1157,8 @@ func (a *csAttempt) recvMsg(m any, payInfo *payloadInfo) (err error) { } // Special handling for non-server-stream rpcs. // This recv expects EOF or errors, so we don't collect inPayload. - if err := recv(a.p, cs.codec, a.s, a.dc, m, *cs.callInfo.maxReceiveMessageSize, nil, a.decomp, false); err == io.EOF { - return a.s.Status().Err() // non-server streaming Recv returns nil on success + if err := recv(a.parser, cs.codec, a.transportStream, a.decompressorV0, m, *cs.callInfo.maxReceiveMessageSize, nil, a.decompressorV1, false); err == io.EOF { + return a.transportStream.Status().Err() // non-server streaming Recv returns nil on success } else if err != nil { return toRPCErr(err) } @@ -1177,20 +1177,20 @@ func (a *csAttempt) finish(err error) { err = nil } var tr metadata.MD - if a.s != nil { - a.s.Close(err) - tr = a.s.Trailer() + if a.transportStream != nil { + a.transportStream.Close(err) + tr = a.transportStream.Trailer() } if a.pickResult.Done != nil { br := false - if a.s != nil { - br = a.s.BytesReceived() + if a.transportStream != nil { + br = a.transportStream.BytesReceived() } a.pickResult.Done(balancer.DoneInfo{ Err: err, Trailer: tr, - BytesSent: a.s != nil, + BytesSent: a.transportStream != nil, BytesReceived: br, ServerLoad: balancerload.Parse(tr), }) @@ -1272,7 +1272,7 @@ func newNonRetryClientStream(ctx context.Context, desc *StreamDesc, method strin // if set. var cp Compressor var comp encoding.Compressor - if ct := c.compressorType; ct != "" { + if ct := c.compressorName; ct != "" { callHdr.SendCompress = ct if ct != encoding.Identity { comp = encoding.GetCompressor(ct) @@ -1280,9 +1280,9 @@ func newNonRetryClientStream(ctx context.Context, desc *StreamDesc, method strin return nil, status.Errorf(codes.Internal, "grpc: Compressor is not installed for requested grpc-encoding %q", ct) } } - } else if ac.cc.dopts.cp != nil { - callHdr.SendCompress = ac.cc.dopts.cp.Type() - cp = ac.cc.dopts.cp + } else if ac.cc.dopts.compressorV0 != nil { + callHdr.SendCompress = ac.cc.dopts.compressorV0.Type() + cp = ac.cc.dopts.compressorV0 } if c.creds != nil { callHdr.Creds = c.creds @@ -1290,26 +1290,26 @@ func newNonRetryClientStream(ctx context.Context, desc *StreamDesc, method strin // Use a special addrConnStream to avoid retry. as := &addrConnStream{ - callHdr: callHdr, - ac: ac, - ctx: ctx, - cancel: cancel, - opts: opts, - callInfo: c, - desc: desc, - codec: c.codec, - cp: cp, - comp: comp, - t: t, + callHdr: callHdr, + ac: ac, + ctx: ctx, + cancel: cancel, + opts: opts, + callInfo: c, + desc: desc, + codec: c.codec, + sendCompressorV0: cp, + sendCompressorV1: comp, + transport: t, } - s, err := as.t.NewStream(as.ctx, as.callHdr) + s, err := as.transport.NewStream(as.ctx, as.callHdr) if err != nil { err = toRPCErr(err) return nil, err } - as.s = s - as.p = &parser{r: s, bufferPool: ac.dopts.copts.BufferPool} + as.transportStream = s + as.parser = &parser{r: s, bufferPool: ac.dopts.copts.BufferPool} ac.incrCallsStarted() if desc != unaryStreamDesc { // Listen on stream context to cleanup when the stream context is @@ -1335,29 +1335,31 @@ func newNonRetryClientStream(ctx context.Context, desc *StreamDesc, method strin } type addrConnStream struct { - s *transport.ClientStream - ac *addrConn - callHdr *transport.CallHdr - cancel context.CancelFunc - opts []CallOption - callInfo *callInfo - t transport.ClientTransport - ctx context.Context - sentLast bool - desc *StreamDesc - codec baseCodec - cp Compressor - comp encoding.Compressor - decompSet bool - dc Decompressor - decomp encoding.Compressor - p *parser - mu sync.Mutex - finished bool + transportStream *transport.ClientStream + ac *addrConn + callHdr *transport.CallHdr + cancel context.CancelFunc + opts []CallOption + callInfo *callInfo + transport transport.ClientTransport + ctx context.Context + sentLast bool + desc *StreamDesc + codec baseCodec + sendCompressorV0 Compressor + sendCompressorV1 encoding.Compressor + decompressorSet bool + decompressorV0 Decompressor + decompressorV1 encoding.Compressor + parser *parser + + // mu guards finished and is held for the entire finish method. + mu sync.Mutex + finished bool } func (as *addrConnStream) Header() (metadata.MD, error) { - m, err := as.s.Header() + m, err := as.transportStream.Header() if err != nil { as.finish(toRPCErr(err)) } @@ -1365,7 +1367,7 @@ func (as *addrConnStream) Header() (metadata.MD, error) { } func (as *addrConnStream) Trailer() metadata.MD { - return as.s.Trailer() + return as.transportStream.Trailer() } func (as *addrConnStream) CloseSend() error { @@ -1375,7 +1377,7 @@ func (as *addrConnStream) CloseSend() error { } as.sentLast = true - as.s.Write(nil, nil, &transport.WriteOptions{Last: true}) + as.transportStream.Write(nil, nil, &transport.WriteOptions{Last: true}) // Always return nil; io.EOF is the only error that might make sense // instead, but there is no need to signal the client to call RecvMsg // as the only use left for the stream after CloseSend is to call @@ -1384,7 +1386,7 @@ func (as *addrConnStream) CloseSend() error { } func (as *addrConnStream) Context() context.Context { - return as.s.Context() + return as.transportStream.Context() } func (as *addrConnStream) SendMsg(m any) (err error) { @@ -1406,7 +1408,7 @@ func (as *addrConnStream) SendMsg(m any) (err error) { } // load hdr, payload, data - hdr, data, payload, pf, err := prepareMsg(m, as.codec, as.cp, as.comp, as.ac.dopts.copts.BufferPool) + hdr, data, payload, pf, err := prepareMsg(m, as.codec, as.sendCompressorV0, as.sendCompressorV1, as.ac.dopts.copts.BufferPool) if err != nil { return err } @@ -1425,7 +1427,7 @@ func (as *addrConnStream) SendMsg(m any) (err error) { return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", payload.Len(), *as.callInfo.maxSendMessageSize) } - if err := as.s.Write(hdr, payload, &transport.WriteOptions{Last: !as.desc.ClientStreams}); err != nil { + if err := as.transportStream.Write(hdr, payload, &transport.WriteOptions{Last: !as.desc.ClientStreams}); err != nil { if !as.desc.ClientStreams { // For non-client-streaming RPCs, we return nil instead of EOF on error // because the generated code requires it. finish is not called; RecvMsg() @@ -1446,25 +1448,25 @@ func (as *addrConnStream) RecvMsg(m any) (err error) { } }() - if !as.decompSet { + if !as.decompressorSet { // Block until we receive headers containing received message encoding. - if ct := as.s.RecvCompress(); ct != "" && ct != encoding.Identity { - if as.dc == nil || as.dc.Type() != ct { + if ct := as.transportStream.RecvCompress(); ct != "" && ct != encoding.Identity { + if as.decompressorV0 == nil || as.decompressorV0.Type() != ct { // No configured decompressor, or it does not match the incoming // message encoding; attempt to find a registered compressor that does. - as.dc = nil - as.decomp = encoding.GetCompressor(ct) + as.decompressorV0 = nil + as.decompressorV1 = encoding.GetCompressor(ct) } } else { // No compression is used; disable our decompressor. - as.dc = nil + as.decompressorV0 = nil } // Only initialize this state once per stream. - as.decompSet = true + as.decompressorSet = true } - if err := recv(as.p, as.codec, as.s, as.dc, m, *as.callInfo.maxReceiveMessageSize, nil, as.decomp, false); err != nil { + if err := recv(as.parser, as.codec, as.transportStream, as.decompressorV0, m, *as.callInfo.maxReceiveMessageSize, nil, as.decompressorV1, false); err != nil { if err == io.EOF { - if statusErr := as.s.Status().Err(); statusErr != nil { + if statusErr := as.transportStream.Status().Err(); statusErr != nil { return statusErr } return io.EOF // indicates successful end of stream. @@ -1479,8 +1481,8 @@ func (as *addrConnStream) RecvMsg(m any) (err error) { // Special handling for non-server-stream rpcs. // This recv expects EOF or errors, so we don't collect inPayload. - if err := recv(as.p, as.codec, as.s, as.dc, m, *as.callInfo.maxReceiveMessageSize, nil, as.decomp, false); err == io.EOF { - return as.s.Status().Err() // non-server streaming Recv returns nil on success + if err := recv(as.parser, as.codec, as.transportStream, as.decompressorV0, m, *as.callInfo.maxReceiveMessageSize, nil, as.decompressorV1, false); err == io.EOF { + return as.transportStream.Status().Err() // non-server streaming Recv returns nil on success } else if err != nil { return toRPCErr(err) } @@ -1498,8 +1500,8 @@ func (as *addrConnStream) finish(err error) { // Ending a stream with EOF indicates a success. err = nil } - if as.s != nil { - as.s.Close(err) + if as.transportStream != nil { + as.transportStream.Close(err) } if err != nil { @@ -1570,10 +1572,10 @@ type serverStream struct { p *parser codec baseCodec - cp Compressor - dc Decompressor - comp encoding.Compressor - decomp encoding.Compressor + compressorV0 Compressor + compressorV1 encoding.Compressor + decompressorV0 Decompressor + decompressorV1 encoding.Compressor sendCompressorName string @@ -1669,12 +1671,12 @@ func (ss *serverStream) SendMsg(m any) (err error) { // Server handler could have set new compressor by calling SetSendCompressor. // In case it is set, we need to use it for compressing outbound message. if sendCompressorsName := ss.s.SendCompress(); sendCompressorsName != ss.sendCompressorName { - ss.comp = encoding.GetCompressor(sendCompressorsName) + ss.compressorV1 = encoding.GetCompressor(sendCompressorsName) ss.sendCompressorName = sendCompressorsName } // load hdr, payload, data - hdr, data, payload, pf, err := prepareMsg(m, ss.codec, ss.cp, ss.comp, ss.p.bufferPool) + hdr, data, payload, pf, err := prepareMsg(m, ss.codec, ss.compressorV0, ss.compressorV1, ss.p.bufferPool) if err != nil { return err } @@ -1755,7 +1757,7 @@ func (ss *serverStream) RecvMsg(m any) (err error) { payInfo = &payloadInfo{} defer payInfo.free() } - if err := recv(ss.p, ss.codec, ss.s, ss.dc, m, ss.maxReceiveMessageSize, payInfo, ss.decomp, true); err != nil { + if err := recv(ss.p, ss.codec, ss.s, ss.decompressorV0, m, ss.maxReceiveMessageSize, payInfo, ss.decompressorV1, true); err != nil { if err == io.EOF { if len(ss.binlogs) != 0 { chc := &binarylog.ClientHalfClose{} @@ -1766,7 +1768,7 @@ func (ss *serverStream) RecvMsg(m any) (err error) { return err } if err == io.ErrUnexpectedEOF { - err = status.Errorf(codes.Internal, io.ErrUnexpectedEOF.Error()) + err = status.Error(codes.Internal, io.ErrUnexpectedEOF.Error()) } return toRPCErr(err) } diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go index 6cbe116f..783c41f7 100644 --- a/vendor/google.golang.org/grpc/version.go +++ b/vendor/google.golang.org/grpc/version.go @@ -19,4 +19,4 @@ package grpc // Version is the current grpc version. -const Version = "1.69.2" +const Version = "1.71.0" diff --git a/vendor/google.golang.org/protobuf/encoding/protojson/decode.go b/vendor/google.golang.org/protobuf/encoding/protojson/decode.go index 8f9e592f..737d6876 100644 --- a/vendor/google.golang.org/protobuf/encoding/protojson/decode.go +++ b/vendor/google.golang.org/protobuf/encoding/protojson/decode.go @@ -192,11 +192,6 @@ func (d decoder) unmarshalMessage(m protoreflect.Message, skipTypeURL bool) erro fd = fieldDescs.ByTextName(name) } } - if flags.ProtoLegacy { - if fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() { - fd = nil // reset since the weak reference is not linked in - } - } if fd == nil { // Field is unknown. diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go index 24bc98ac..b5380505 100644 --- a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +++ b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go @@ -185,11 +185,6 @@ func (d decoder) unmarshalMessage(m protoreflect.Message, checkDelims bool) erro } else if xtErr != nil && xtErr != protoregistry.NotFound { return d.newError(tok.Pos(), "unable to resolve [%s]: %v", tok.RawString(), xtErr) } - if flags.ProtoLegacy { - if fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() { - fd = nil // reset since the weak reference is not linked in - } - } // Handle unknown fields. if fd == nil { diff --git a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go index 7e87c760..669133d0 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go @@ -26,7 +26,7 @@ var byteType = reflect.TypeOf(byte(0)) // The type is the underlying field type (e.g., a repeated field may be // represented by []T, but the Go type passed in is just T). // A list of enum value descriptors must be provided for enum fields. -// This does not populate the Enum or Message (except for weak message). +// This does not populate the Enum or Message. // // This function is a best effort attempt; parsing errors are ignored. func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor { @@ -109,9 +109,6 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri } case s == "packed": f.L1.EditionFeatures.IsPacked = true - case strings.HasPrefix(s, "weak="): - f.L1.IsWeak = true - f.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len("weak="):])) case strings.HasPrefix(s, "def="): // The default tag is special in that everything afterwards is the // default regardless of the presence of commas. @@ -183,9 +180,6 @@ func Marshal(fd protoreflect.FieldDescriptor, enumName string) string { // the exact same semantics from the previous generator. tag = append(tag, "json="+jsonName) } - if fd.IsWeak() { - tag = append(tag, "weak="+string(fd.Message().FullName())) - } // The previous implementation does not tag extension fields as proto3, // even when the field is defined in a proto3 file. Match that behavior // for consistency. diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go index 378b826f..688aabe4 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go @@ -19,7 +19,6 @@ import ( "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" ) // Edition is an Enum for proto2.Edition @@ -275,7 +274,6 @@ type ( Kind protoreflect.Kind StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto - IsWeak bool // promoted from google.protobuf.FieldOptions IsLazy bool // promoted from google.protobuf.FieldOptions Default defaultValue ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields @@ -369,7 +367,7 @@ func (fd *Field) IsPacked() bool { return fd.L1.EditionFeatures.IsPacked } func (fd *Field) IsExtension() bool { return false } -func (fd *Field) IsWeak() bool { return fd.L1.IsWeak } +func (fd *Field) IsWeak() bool { return false } func (fd *Field) IsLazy() bool { return fd.L1.IsLazy } func (fd *Field) IsList() bool { return fd.Cardinality() == protoreflect.Repeated && !fd.IsMap() } func (fd *Field) IsMap() bool { return fd.Message() != nil && fd.Message().IsMapEntry() } @@ -396,11 +394,6 @@ func (fd *Field) Enum() protoreflect.EnumDescriptor { return fd.L1.Enum } func (fd *Field) Message() protoreflect.MessageDescriptor { - if fd.L1.IsWeak { - if d, _ := protoregistry.GlobalFiles.FindDescriptorByName(fd.L1.Message.FullName()); d != nil { - return d.(protoreflect.MessageDescriptor) - } - } return fd.L1.Message } func (fd *Field) IsMapEntry() bool { diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go index 67a51b32..d4c94458 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go @@ -32,11 +32,6 @@ func (file *File) resolveMessages() { for j := range md.L2.Fields.List { fd := &md.L2.Fields.List[j] - // Weak fields are resolved upon actual use. - if fd.L1.IsWeak { - continue - } - // Resolve message field dependency. switch fd.L1.Kind { case protoreflect.EnumKind: @@ -150,8 +145,6 @@ func (fd *File) unmarshalFull(b []byte) { switch num { case genid.FileDescriptorProto_PublicDependency_field_number: fd.L2.Imports[v].IsPublic = true - case genid.FileDescriptorProto_WeakDependency_field_number: - fd.L2.Imports[v].IsWeak = true } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) @@ -502,8 +495,6 @@ func (fd *Field) unmarshalOptions(b []byte) { switch num { case genid.FieldOptions_Packed_field_number: fd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v) - case genid.FieldOptions_Weak_field_number: - fd.L1.IsWeak = protowire.DecodeBool(v) case genid.FieldOptions_Lazy_field_number: fd.L1.IsLazy = protowire.DecodeBool(v) case FieldOptions_EnforceUTF8: diff --git a/vendor/google.golang.org/protobuf/internal/filetype/build.go b/vendor/google.golang.org/protobuf/internal/filetype/build.go index ba83fea4..e1b4130b 100644 --- a/vendor/google.golang.org/protobuf/internal/filetype/build.go +++ b/vendor/google.golang.org/protobuf/internal/filetype/build.go @@ -63,7 +63,7 @@ type Builder struct { // message declarations in "flattened ordering". // // Dependencies are Go types for enums or messages referenced by - // message fields (excluding weak fields), for parent extended messages of + // message fields, for parent extended messages of // extension fields, for enums or messages referenced by extension fields, // and for input and output messages referenced by service methods. // Dependencies must come after declarations, but the ordering of diff --git a/vendor/google.golang.org/protobuf/internal/flags/flags.go b/vendor/google.golang.org/protobuf/internal/flags/flags.go index 58372dd3..a06ccabc 100644 --- a/vendor/google.golang.org/protobuf/internal/flags/flags.go +++ b/vendor/google.golang.org/protobuf/internal/flags/flags.go @@ -6,7 +6,7 @@ package flags // ProtoLegacy specifies whether to enable support for legacy functionality -// such as MessageSets, weak fields, and various other obscure behavior +// such as MessageSets, and various other obscure behavior // that is necessary to maintain backwards compatibility with proto1 or // the pre-release variants of proto2 and proto3. // diff --git a/vendor/google.golang.org/protobuf/internal/genid/goname.go b/vendor/google.golang.org/protobuf/internal/genid/goname.go index 693d2e9e..99bb95ba 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/goname.go +++ b/vendor/google.golang.org/protobuf/internal/genid/goname.go @@ -11,15 +11,10 @@ const ( SizeCache_goname = "sizeCache" SizeCacheA_goname = "XXX_sizecache" - WeakFields_goname = "weakFields" - WeakFieldsA_goname = "XXX_weak" - UnknownFields_goname = "unknownFields" UnknownFieldsA_goname = "XXX_unrecognized" ExtensionFields_goname = "extensionFields" ExtensionFieldsA_goname = "XXX_InternalExtensions" ExtensionFieldsB_goname = "XXX_extensions" - - WeakFieldPrefix_goname = "XXX_weak_" ) diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_field.go b/vendor/google.golang.org/protobuf/internal/impl/codec_field.go index 7c1f66c8..d14d7d93 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_field.go @@ -5,15 +5,12 @@ package impl import ( - "fmt" "reflect" - "sync" "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/runtime/protoiface" ) @@ -121,78 +118,6 @@ func (mi *MessageInfo) initOneofFieldCoders(od protoreflect.OneofDescriptor, si } } -func makeWeakMessageFieldCoder(fd protoreflect.FieldDescriptor) pointerCoderFuncs { - var once sync.Once - var messageType protoreflect.MessageType - lazyInit := func() { - once.Do(func() { - messageName := fd.Message().FullName() - messageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName) - }) - } - - return pointerCoderFuncs{ - size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { - m, ok := p.WeakFields().get(f.num) - if !ok { - return 0 - } - lazyInit() - if messageType == nil { - panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName())) - } - return sizeMessage(m, f.tagsize, opts) - }, - marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { - m, ok := p.WeakFields().get(f.num) - if !ok { - return b, nil - } - lazyInit() - if messageType == nil { - panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName())) - } - return appendMessage(b, m, f.wiretag, opts) - }, - unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { - fs := p.WeakFields() - m, ok := fs.get(f.num) - if !ok { - lazyInit() - if messageType == nil { - return unmarshalOutput{}, errUnknown - } - m = messageType.New().Interface() - fs.set(f.num, m) - } - return consumeMessage(b, m, wtyp, opts) - }, - isInit: func(p pointer, f *coderFieldInfo) error { - m, ok := p.WeakFields().get(f.num) - if !ok { - return nil - } - return proto.CheckInitialized(m) - }, - merge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { - sm, ok := src.WeakFields().get(f.num) - if !ok { - return - } - dm, ok := dst.WeakFields().get(f.num) - if !ok { - lazyInit() - if messageType == nil { - panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName())) - } - dm = messageType.New().Interface() - dst.WeakFields().set(f.num, dm) - } - opts.Merge(dm, sm) - }, - } -} - func makeMessageFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { if mi := getMessageInfo(ft); mi != nil { funcs := pointerCoderFuncs{ diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_map.go b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go index fb35f0ba..229c6980 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go @@ -94,7 +94,7 @@ func sizeMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalO return 0 } n := 0 - iter := mapRange(mapv) + iter := mapv.MapRange() for iter.Next() { key := mapi.conv.keyConv.PBValueOf(iter.Key()).MapKey() keySize := mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts) @@ -281,7 +281,7 @@ func appendMap(b []byte, mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, o if opts.Deterministic() { return appendMapDeterministic(b, mapv, mapi, f, opts) } - iter := mapRange(mapv) + iter := mapv.MapRange() for iter.Next() { var err error b = protowire.AppendVarint(b, f.wiretag) @@ -328,7 +328,7 @@ func isInitMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo) error { if !mi.needsInitCheck { return nil } - iter := mapRange(mapv) + iter := mapv.MapRange() for iter.Next() { val := pointerOfValue(iter.Value()) if err := mi.checkInitializedPointer(val); err != nil { @@ -336,7 +336,7 @@ func isInitMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo) error { } } } else { - iter := mapRange(mapv) + iter := mapv.MapRange() for iter.Next() { val := mapi.conv.valConv.PBValueOf(iter.Value()) if err := mapi.valFuncs.isInit(val); err != nil { @@ -356,7 +356,7 @@ func mergeMap(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { if dstm.IsNil() { dstm.Set(reflect.MakeMap(f.ft)) } - iter := mapRange(srcm) + iter := srcm.MapRange() for iter.Next() { dstm.SetMapIndex(iter.Key(), iter.Value()) } @@ -371,7 +371,7 @@ func mergeMapOfBytes(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { if dstm.IsNil() { dstm.Set(reflect.MakeMap(f.ft)) } - iter := mapRange(srcm) + iter := srcm.MapRange() for iter.Next() { dstm.SetMapIndex(iter.Key(), reflect.ValueOf(append(emptyBuf[:], iter.Value().Bytes()...))) } @@ -386,7 +386,7 @@ func mergeMapOfMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { if dstm.IsNil() { dstm.Set(reflect.MakeMap(f.ft)) } - iter := mapRange(srcm) + iter := srcm.MapRange() for iter.Next() { val := reflect.New(f.ft.Elem().Elem()) if f.mi != nil { diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go b/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go deleted file mode 100644 index 4b15493f..00000000 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.12 -// +build !go1.12 - -package impl - -import "reflect" - -type mapIter struct { - v reflect.Value - keys []reflect.Value -} - -// mapRange provides a less-efficient equivalent to -// the Go 1.12 reflect.Value.MapRange method. -func mapRange(v reflect.Value) *mapIter { - return &mapIter{v: v} -} - -func (i *mapIter) Next() bool { - if i.keys == nil { - i.keys = i.v.MapKeys() - } else { - i.keys = i.keys[1:] - } - return len(i.keys) > 0 -} - -func (i *mapIter) Key() reflect.Value { - return i.keys[0] -} - -func (i *mapIter) Value() reflect.Value { - return i.v.MapIndex(i.keys[0]) -} diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go b/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go deleted file mode 100644 index 0b31b66e..00000000 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.12 -// +build go1.12 - -package impl - -import "reflect" - -func mapRange(v reflect.Value) *reflect.MapIter { return v.MapRange() } diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_message.go b/vendor/google.golang.org/protobuf/internal/impl/codec_message.go index 2f7b363e..f78b57b0 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_message.go @@ -118,12 +118,9 @@ func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) { }, } case isOneof: - fieldOffset = offsetOf(fs, mi.Exporter) - case fd.IsWeak(): - fieldOffset = si.weakOffset - funcs = makeWeakMessageFieldCoder(fd) + fieldOffset = offsetOf(fs) default: - fieldOffset = offsetOf(fs, mi.Exporter) + fieldOffset = offsetOf(fs) childMessage, funcs = fieldCoder(fd, ft) } cf := &preallocFields[i] diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go b/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go index 88c16ae5..41c1f74e 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go @@ -45,19 +45,16 @@ func (mi *MessageInfo) makeOpaqueCoderMethods(t reflect.Type, si opaqueStructInf var childMessage *MessageInfo switch { case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic(): - fieldOffset = offsetOf(fs, mi.Exporter) - case fd.IsWeak(): - fieldOffset = si.weakOffset - funcs = makeWeakMessageFieldCoder(fd) + fieldOffset = offsetOf(fs) case fd.Message() != nil && !fd.IsMap(): - fieldOffset = offsetOf(fs, mi.Exporter) + fieldOffset = offsetOf(fs) if fd.IsList() { childMessage, funcs = makeOpaqueRepeatedMessageFieldCoder(fd, ft) } else { childMessage, funcs = makeOpaqueMessageFieldCoder(fd, ft) } default: - fieldOffset = offsetOf(fs, mi.Exporter) + fieldOffset = offsetOf(fs) childMessage, funcs = fieldCoder(fd, ft) } cf := &coderFieldInfo{ diff --git a/vendor/google.golang.org/protobuf/internal/impl/convert_map.go b/vendor/google.golang.org/protobuf/internal/impl/convert_map.go index 304244a6..e4580b3a 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +++ b/vendor/google.golang.org/protobuf/internal/impl/convert_map.go @@ -101,7 +101,7 @@ func (ms *mapReflect) Mutable(k protoreflect.MapKey) protoreflect.Value { return v } func (ms *mapReflect) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) { - iter := mapRange(ms.v) + iter := ms.v.MapRange() for iter.Next() { k := ms.keyConv.PBValueOf(iter.Key()).MapKey() v := ms.valConv.PBValueOf(iter.Value()) diff --git a/vendor/google.golang.org/protobuf/internal/impl/lazy.go b/vendor/google.golang.org/protobuf/internal/impl/lazy.go index e8fb6c35..c7de31e2 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/lazy.go +++ b/vendor/google.golang.org/protobuf/internal/impl/lazy.go @@ -131,7 +131,7 @@ func (mi *MessageInfo) skipField(b []byte, f *coderFieldInfo, wtyp protowire.Typ fmi := f.validation.mi if fmi == nil { fd := mi.Desc.Fields().ByNumber(f.num) - if fd == nil || !fd.IsWeak() { + if fd == nil { return out, ValidationUnknown } messageName := fd.Message().FullName() diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go index bf0b6049..a51dffbe 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go @@ -310,12 +310,9 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, fd.L0.Parent = md fd.L0.Index = n - if fd.L1.IsWeak || fd.L1.EditionFeatures.IsPacked { + if fd.L1.EditionFeatures.IsPacked { fd.L1.Options = func() protoreflect.ProtoMessage { opts := descopts.Field.ProtoReflect().New() - if fd.L1.IsWeak { - opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true)) - } if fd.L1.EditionFeatures.IsPacked { opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.EditionFeatures.IsPacked)) } diff --git a/vendor/google.golang.org/protobuf/internal/impl/message.go b/vendor/google.golang.org/protobuf/internal/impl/message.go index fa10a0f5..d50423dc 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message.go @@ -14,7 +14,6 @@ import ( "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" ) // MessageInfo provides protobuf related functionality for a given Go type @@ -120,7 +119,6 @@ type ( var ( sizecacheType = reflect.TypeOf(SizeCache(0)) - weakFieldsType = reflect.TypeOf(WeakFields(nil)) unknownFieldsAType = reflect.TypeOf(unknownFieldsA(nil)) unknownFieldsBType = reflect.TypeOf(unknownFieldsB(nil)) extensionFieldsType = reflect.TypeOf(ExtensionFields(nil)) @@ -129,8 +127,6 @@ var ( type structInfo struct { sizecacheOffset offset sizecacheType reflect.Type - weakOffset offset - weakType reflect.Type unknownOffset offset unknownType reflect.Type extensionOffset offset @@ -148,7 +144,6 @@ type structInfo struct { func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo { si := structInfo{ sizecacheOffset: invalidOffset, - weakOffset: invalidOffset, unknownOffset: invalidOffset, extensionOffset: invalidOffset, lazyOffset: invalidOffset, @@ -165,28 +160,23 @@ fieldLoop: switch f := t.Field(i); f.Name { case genid.SizeCache_goname, genid.SizeCacheA_goname: if f.Type == sizecacheType { - si.sizecacheOffset = offsetOf(f, mi.Exporter) + si.sizecacheOffset = offsetOf(f) si.sizecacheType = f.Type } - case genid.WeakFields_goname, genid.WeakFieldsA_goname: - if f.Type == weakFieldsType { - si.weakOffset = offsetOf(f, mi.Exporter) - si.weakType = f.Type - } case genid.UnknownFields_goname, genid.UnknownFieldsA_goname: if f.Type == unknownFieldsAType || f.Type == unknownFieldsBType { - si.unknownOffset = offsetOf(f, mi.Exporter) + si.unknownOffset = offsetOf(f) si.unknownType = f.Type } case genid.ExtensionFields_goname, genid.ExtensionFieldsA_goname, genid.ExtensionFieldsB_goname: if f.Type == extensionFieldsType { - si.extensionOffset = offsetOf(f, mi.Exporter) + si.extensionOffset = offsetOf(f) si.extensionType = f.Type } case "lazyFields", "XXX_lazyUnmarshalInfo": - si.lazyOffset = offsetOf(f, mi.Exporter) + si.lazyOffset = offsetOf(f) case "XXX_presence": - si.presenceOffset = offsetOf(f, mi.Exporter) + si.presenceOffset = offsetOf(f) default: for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") { if len(s) > 0 && strings.Trim(s, "0123456789") == "" { @@ -256,9 +246,6 @@ func (mi *MessageInfo) Message(i int) protoreflect.MessageType { mi.init() fd := mi.Desc.Fields().Get(i) switch { - case fd.IsWeak(): - mt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName()) - return mt case fd.IsMap(): return mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]} default: diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go b/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go index d7ec53f0..dd55e8e0 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go @@ -56,9 +56,6 @@ func opaqueInitHook(mi *MessageInfo) bool { usePresence, _ := usePresenceForField(si, fd) switch { - case fd.IsWeak(): - // Weak fields are no different for opaque. - fi = fieldInfoForWeakMessage(fd, si.weakOffset) case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic(): // Oneofs are no different for opaque. fi = fieldInfoForOneof(fd, si.oneofsByName[fd.ContainingOneof().Name()], mi.Exporter, si.oneofWrappersByNumber[fd.Number()]) @@ -142,7 +139,7 @@ func (mi *MessageInfo) fieldInfoForMapOpaque(si opaqueStructInfo, fd protoreflec if ft.Kind() != reflect.Map { panic(fmt.Sprintf("invalid type: got %v, want map kind", ft)) } - fieldOffset := offsetOf(fs, mi.Exporter) + fieldOffset := offsetOf(fs) conv := NewConverter(ft, fd) return fieldInfo{ fieldDesc: fd, @@ -196,7 +193,7 @@ func (mi *MessageInfo) fieldInfoForScalarListOpaque(si opaqueStructInfo, fd prot panic(fmt.Sprintf("invalid type: got %v, want slice kind", ft)) } conv := NewConverter(reflect.PtrTo(ft), fd) - fieldOffset := offsetOf(fs, mi.Exporter) + fieldOffset := offsetOf(fs) index, _ := presenceIndex(mi.Desc, fd) return fieldInfo{ fieldDesc: fd, @@ -246,7 +243,7 @@ func (mi *MessageInfo) fieldInfoForMessageListOpaque(si opaqueStructInfo, fd pro panic(fmt.Sprintf("invalid type: got %v, want slice kind", ft)) } conv := NewConverter(ft, fd) - fieldOffset := offsetOf(fs, mi.Exporter) + fieldOffset := offsetOf(fs) index, _ := presenceIndex(mi.Desc, fd) fieldNumber := fd.Number() return fieldInfo{ @@ -339,7 +336,7 @@ func (mi *MessageInfo) fieldInfoForMessageListOpaqueNoPresence(si opaqueStructIn panic(fmt.Sprintf("invalid type: got %v, want slice kind", ft)) } conv := NewConverter(ft, fd) - fieldOffset := offsetOf(fs, mi.Exporter) + fieldOffset := offsetOf(fs) return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { @@ -411,7 +408,7 @@ func (mi *MessageInfo) fieldInfoForScalarOpaque(si opaqueStructInfo, fd protoref deref = true } conv := NewConverter(ft, fd) - fieldOffset := offsetOf(fs, mi.Exporter) + fieldOffset := offsetOf(fs) index, _ := presenceIndex(mi.Desc, fd) var getter func(p pointer) protoreflect.Value if !nullable { @@ -480,7 +477,7 @@ func (mi *MessageInfo) fieldInfoForScalarOpaque(si opaqueStructInfo, fd protoref func (mi *MessageInfo) fieldInfoForMessageOpaque(si opaqueStructInfo, fd protoreflect.FieldDescriptor, fs reflect.StructField) fieldInfo { ft := fs.Type conv := NewConverter(ft, fd) - fieldOffset := offsetOf(fs, mi.Exporter) + fieldOffset := offsetOf(fs) index, _ := presenceIndex(mi.Desc, fd) fieldNumber := fd.Number() elemType := fs.Type.Elem() @@ -620,8 +617,6 @@ func usePresenceForField(si opaqueStructInfo, fd protoreflect.FieldDescriptor) ( switch { case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic(): return false, false - case fd.IsWeak(): - return false, false case fd.IsMap(): return false, false case fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind: diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go index 31c19b54..0d20132f 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go @@ -72,8 +72,6 @@ func (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) { fi = fieldInfoForMap(fd, fs, mi.Exporter) case fd.IsList(): fi = fieldInfoForList(fd, fs, mi.Exporter) - case fd.IsWeak(): - fi = fieldInfoForWeakMessage(fd, si.weakOffset) case fd.Message() != nil: fi = fieldInfoForMessage(fd, fs, mi.Exporter) default: @@ -219,9 +217,6 @@ func (mi *MessageInfo) makeFieldTypes(si structInfo) { } case fd.Message() != nil: ft = fs.Type - if fd.IsWeak() { - ft = nil - } isMessage = true } if isMessage && ft != nil && ft.Kind() != reflect.Ptr { diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go index a7406462..68d4ae32 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go @@ -8,11 +8,8 @@ import ( "fmt" "math" "reflect" - "sync" - "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" ) type fieldInfo struct { @@ -76,7 +73,7 @@ func fieldInfoForOneof(fd protoreflect.FieldDescriptor, fs reflect.StructField, isMessage := fd.Message() != nil // TODO: Implement unsafe fast path? - fieldOffset := offsetOf(fs, x) + fieldOffset := offsetOf(fs) return fieldInfo{ // NOTE: The logic below intentionally assumes that oneof fields are // well-formatted. That is, the oneof interface never contains a @@ -152,7 +149,7 @@ func fieldInfoForMap(fd protoreflect.FieldDescriptor, fs reflect.StructField, x conv := NewConverter(ft, fd) // TODO: Implement unsafe fast path? - fieldOffset := offsetOf(fs, x) + fieldOffset := offsetOf(fs) return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { @@ -205,7 +202,7 @@ func fieldInfoForList(fd protoreflect.FieldDescriptor, fs reflect.StructField, x conv := NewConverter(reflect.PtrTo(ft), fd) // TODO: Implement unsafe fast path? - fieldOffset := offsetOf(fs, x) + fieldOffset := offsetOf(fs) return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { @@ -269,7 +266,7 @@ func fieldInfoForScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, } } conv := NewConverter(ft, fd) - fieldOffset := offsetOf(fs, x) + fieldOffset := offsetOf(fs) // Generate specialized getter functions to avoid going through reflect.Value if nullable { @@ -332,85 +329,12 @@ func fieldInfoForScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, } } -func fieldInfoForWeakMessage(fd protoreflect.FieldDescriptor, weakOffset offset) fieldInfo { - if !flags.ProtoLegacy { - panic("no support for proto1 weak fields") - } - - var once sync.Once - var messageType protoreflect.MessageType - lazyInit := func() { - once.Do(func() { - messageName := fd.Message().FullName() - messageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName) - if messageType == nil { - panic(fmt.Sprintf("weak message %v for field %v is not linked in", messageName, fd.FullName())) - } - }) - } - - num := fd.Number() - return fieldInfo{ - fieldDesc: fd, - has: func(p pointer) bool { - if p.IsNil() { - return false - } - _, ok := p.Apply(weakOffset).WeakFields().get(num) - return ok - }, - clear: func(p pointer) { - p.Apply(weakOffset).WeakFields().clear(num) - }, - get: func(p pointer) protoreflect.Value { - lazyInit() - if p.IsNil() { - return protoreflect.ValueOfMessage(messageType.Zero()) - } - m, ok := p.Apply(weakOffset).WeakFields().get(num) - if !ok { - return protoreflect.ValueOfMessage(messageType.Zero()) - } - return protoreflect.ValueOfMessage(m.ProtoReflect()) - }, - set: func(p pointer, v protoreflect.Value) { - lazyInit() - m := v.Message() - if m.Descriptor() != messageType.Descriptor() { - if got, want := m.Descriptor().FullName(), messageType.Descriptor().FullName(); got != want { - panic(fmt.Sprintf("field %v has mismatching message descriptor: got %v, want %v", fd.FullName(), got, want)) - } - panic(fmt.Sprintf("field %v has mismatching message descriptor: %v", fd.FullName(), m.Descriptor().FullName())) - } - p.Apply(weakOffset).WeakFields().set(num, m.Interface()) - }, - mutable: func(p pointer) protoreflect.Value { - lazyInit() - fs := p.Apply(weakOffset).WeakFields() - m, ok := fs.get(num) - if !ok { - m = messageType.New().Interface() - fs.set(num, m) - } - return protoreflect.ValueOfMessage(m.ProtoReflect()) - }, - newMessage: func() protoreflect.Message { - lazyInit() - return messageType.New() - }, - newField: func() protoreflect.Value { - lazyInit() - return protoreflect.ValueOfMessage(messageType.New()) - }, - } -} - func fieldInfoForMessage(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { ft := fs.Type conv := NewConverter(ft, fd) // TODO: Implement unsafe fast path? - fieldOffset := offsetOf(fs, x) + fieldOffset := offsetOf(fs) return fieldInfo{ fieldDesc: fd, has: func(p pointer) bool { @@ -419,7 +343,7 @@ func fieldInfoForMessage(fd protoreflect.FieldDescriptor, fs reflect.StructField } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if fs.Type.Kind() != reflect.Ptr { - return !isZero(rv) + return !rv.IsZero() } return !rv.IsNil() }, @@ -466,7 +390,7 @@ func makeOneofInfo(od protoreflect.OneofDescriptor, si structInfo, x exporter) * oi := &oneofInfo{oneofDesc: od} if od.IsSynthetic() { fs := si.fieldsByNumber[od.Fields().Get(0).Number()] - fieldOffset := offsetOf(fs, x) + fieldOffset := offsetOf(fs) oi.which = func(p pointer) protoreflect.FieldNumber { if p.IsNil() { return 0 @@ -479,7 +403,7 @@ func makeOneofInfo(od protoreflect.OneofDescriptor, si structInfo, x exporter) * } } else { fs := si.oneofsByName[od.Name()] - fieldOffset := offsetOf(fs, x) + fieldOffset := offsetOf(fs) oi.which = func(p pointer) protoreflect.FieldNumber { if p.IsNil() { return 0 @@ -497,41 +421,3 @@ func makeOneofInfo(od protoreflect.OneofDescriptor, si structInfo, x exporter) * } return oi } - -// isZero is identical to reflect.Value.IsZero. -// TODO: Remove this when Go1.13 is the minimally supported Go version. -func isZero(v reflect.Value) bool { - switch v.Kind() { - case reflect.Bool: - return !v.Bool() - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: - return v.Int() == 0 - case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: - return v.Uint() == 0 - case reflect.Float32, reflect.Float64: - return math.Float64bits(v.Float()) == 0 - case reflect.Complex64, reflect.Complex128: - c := v.Complex() - return math.Float64bits(real(c)) == 0 && math.Float64bits(imag(c)) == 0 - case reflect.Array: - for i := 0; i < v.Len(); i++ { - if !isZero(v.Index(i)) { - return false - } - } - return true - case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice, reflect.UnsafePointer: - return v.IsNil() - case reflect.String: - return v.Len() == 0 - case reflect.Struct: - for i := 0; i < v.NumField(); i++ { - if !isZero(v.Field(i)) { - return false - } - } - return true - default: - panic(&reflect.ValueError{Method: "reflect.Value.IsZero", Kind: v.Kind()}) - } -} diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go index 041ebde2..62f8bf66 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go @@ -22,7 +22,7 @@ type Pointer unsafe.Pointer type offset uintptr // offsetOf returns a field offset for the struct field. -func offsetOf(f reflect.StructField, x exporter) offset { +func offsetOf(f reflect.StructField) offset { return offset(f.Offset) } @@ -111,7 +111,6 @@ func (p pointer) StringSlice() *[]string { return (*[]string)(p.p func (p pointer) Bytes() *[]byte { return (*[]byte)(p.p) } func (p pointer) BytesPtr() **[]byte { return (**[]byte)(p.p) } func (p pointer) BytesSlice() *[][]byte { return (*[][]byte)(p.p) } -func (p pointer) WeakFields() *weakFields { return (*weakFields)(p.p) } func (p pointer) Extensions() *map[int32]ExtensionField { return (*map[int32]ExtensionField)(p.p) } func (p pointer) LazyInfoPtr() **protolazy.XXX_lazyUnmarshalInfo { return (**protolazy.XXX_lazyUnmarshalInfo)(p.p) diff --git a/vendor/google.golang.org/protobuf/internal/impl/validate.go b/vendor/google.golang.org/protobuf/internal/impl/validate.go index b534a3d6..7b2995dd 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/validate.go +++ b/vendor/google.golang.org/protobuf/internal/impl/validate.go @@ -211,9 +211,7 @@ func newValidationInfo(fd protoreflect.FieldDescriptor, ft reflect.Type) validat switch fd.Kind() { case protoreflect.MessageKind: vi.typ = validationTypeMessage - if !fd.IsWeak() { - vi.mi = getMessageInfo(ft) - } + vi.mi = getMessageInfo(ft) case protoreflect.GroupKind: vi.typ = validationTypeGroup vi.mi = getMessageInfo(ft) @@ -320,26 +318,6 @@ State: } if f != nil { vi = f.validation - if vi.typ == validationTypeMessage && vi.mi == nil { - // Probable weak field. - // - // TODO: Consider storing the results of this lookup somewhere - // rather than recomputing it on every validation. - fd := st.mi.Desc.Fields().ByNumber(num) - if fd == nil || !fd.IsWeak() { - break - } - messageName := fd.Message().FullName() - messageType, err := protoregistry.GlobalTypes.FindMessageByName(messageName) - switch err { - case nil: - vi.mi, _ = messageType.(*MessageInfo) - case protoregistry.NotFound: - vi.typ = validationTypeBytes - default: - return out, ValidationUnknown - } - } break } // Possible extension field. diff --git a/vendor/google.golang.org/protobuf/internal/impl/weak.go b/vendor/google.golang.org/protobuf/internal/impl/weak.go deleted file mode 100644 index eb79a7ba..00000000 --- a/vendor/google.golang.org/protobuf/internal/impl/weak.go +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package impl - -import ( - "fmt" - - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" -) - -// weakFields adds methods to the exported WeakFields type for internal use. -// -// The exported type is an alias to an unnamed type, so methods can't be -// defined directly on it. -type weakFields WeakFields - -func (w weakFields) get(num protoreflect.FieldNumber) (protoreflect.ProtoMessage, bool) { - m, ok := w[int32(num)] - return m, ok -} - -func (w *weakFields) set(num protoreflect.FieldNumber, m protoreflect.ProtoMessage) { - if *w == nil { - *w = make(weakFields) - } - (*w)[int32(num)] = m -} - -func (w *weakFields) clear(num protoreflect.FieldNumber) { - delete(*w, int32(num)) -} - -func (Export) HasWeak(w WeakFields, num protoreflect.FieldNumber) bool { - _, ok := w[int32(num)] - return ok -} - -func (Export) ClearWeak(w *WeakFields, num protoreflect.FieldNumber) { - delete(*w, int32(num)) -} - -func (Export) GetWeak(w WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName) protoreflect.ProtoMessage { - if m, ok := w[int32(num)]; ok { - return m - } - mt, _ := protoregistry.GlobalTypes.FindMessageByName(name) - if mt == nil { - panic(fmt.Sprintf("message %v for weak field is not linked in", name)) - } - return mt.Zero().Interface() -} - -func (Export) SetWeak(w *WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName, m protoreflect.ProtoMessage) { - if m != nil { - mt, _ := protoregistry.GlobalTypes.FindMessageByName(name) - if mt == nil { - panic(fmt.Sprintf("message %v for weak field is not linked in", name)) - } - if mt != m.ProtoReflect().Type() { - panic(fmt.Sprintf("invalid message type for weak field: got %T, want %T", m, mt.Zero().Interface())) - } - } - if m == nil || !m.ProtoReflect().IsValid() { - delete(*w, int32(num)) - return - } - if *w == nil { - *w = make(weakFields) - } - (*w)[int32(num)] = m -} diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go index 386c823a..01efc330 100644 --- a/vendor/google.golang.org/protobuf/internal/version/version.go +++ b/vendor/google.golang.org/protobuf/internal/version/version.go @@ -52,7 +52,7 @@ import ( const ( Major = 1 Minor = 36 - Patch = 2 + Patch = 5 PreRelease = "" ) diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go index a3b5e142..4cbf1aea 100644 --- a/vendor/google.golang.org/protobuf/proto/decode.go +++ b/vendor/google.golang.org/protobuf/proto/decode.go @@ -8,7 +8,6 @@ import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" @@ -172,10 +171,6 @@ func (o UnmarshalOptions) unmarshalMessageSlow(b []byte, m protoreflect.Message) var err error if fd == nil { err = errUnknown - } else if flags.ProtoLegacy { - if fd.IsWeak() && fd.Message().IsPlaceholder() { - err = errUnknown // weak referent is not linked in - } } // Parse the field value. diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go index cd8fadba..cd7fbc87 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go @@ -68,7 +68,7 @@ type Descriptor interface { // dependency is not resolved, in which case only name information is known. // // Placeholder types may only be returned by the following accessors - // as a result of unresolved dependencies or weak imports: + // as a result of unresolved dependencies: // // ╔═══════════════════════════════════╤═════════════════════╗ // ║ Accessor │ Descriptor ║ @@ -168,11 +168,7 @@ type FileImport struct { // The current file and the imported file must be within proto package. IsPublic bool - // IsWeak reports whether this is a weak import, which does not impose - // a direct dependency on the target file. - // - // Weak imports are a legacy proto1 feature. Equivalent behavior is - // achieved using proto2 extension fields or proto3 Any messages. + // Deprecated: support for weak fields has been removed. IsWeak bool } @@ -325,9 +321,7 @@ type FieldDescriptor interface { // specified in the source .proto file. HasOptionalKeyword() bool - // IsWeak reports whether this is a weak field, which does not impose a - // direct dependency on the target type. - // If true, then Message returns a placeholder type. + // Deprecated: support for weak fields has been removed. IsWeak() bool // IsPacked reports whether repeated primitive numeric kinds should be diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go index 191552cc..497da66e 100644 --- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go @@ -122,6 +122,7 @@ import ( reflect "reflect" strings "strings" sync "sync" + unsafe "unsafe" ) // `Any` contains an arbitrary serialized protocol buffer message along with a @@ -411,7 +412,7 @@ func (x *Any) GetValue() []byte { var File_google_protobuf_any_proto protoreflect.FileDescriptor -var file_google_protobuf_any_proto_rawDesc = []byte{ +var file_google_protobuf_any_proto_rawDesc = string([]byte{ 0x0a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x36, 0x0a, 0x03, @@ -427,16 +428,16 @@ var file_google_protobuf_any_proto_rawDesc = []byte{ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_google_protobuf_any_proto_rawDescOnce sync.Once - file_google_protobuf_any_proto_rawDescData = file_google_protobuf_any_proto_rawDesc + file_google_protobuf_any_proto_rawDescData []byte ) func file_google_protobuf_any_proto_rawDescGZIP() []byte { file_google_protobuf_any_proto_rawDescOnce.Do(func() { - file_google_protobuf_any_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_any_proto_rawDescData) + file_google_protobuf_any_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_any_proto_rawDesc), len(file_google_protobuf_any_proto_rawDesc))) }) return file_google_protobuf_any_proto_rawDescData } @@ -462,7 +463,7 @@ func file_google_protobuf_any_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_any_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_any_proto_rawDesc), len(file_google_protobuf_any_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -473,7 +474,6 @@ func file_google_protobuf_any_proto_init() { MessageInfos: file_google_protobuf_any_proto_msgTypes, }.Build() File_google_protobuf_any_proto = out.File - file_google_protobuf_any_proto_rawDesc = nil file_google_protobuf_any_proto_goTypes = nil file_google_protobuf_any_proto_depIdxs = nil } diff --git a/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go b/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go index 34d76e6c..193880d1 100644 --- a/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go @@ -80,6 +80,7 @@ import ( reflect "reflect" sync "sync" time "time" + unsafe "unsafe" ) // A Duration represents a signed, fixed-length span of time represented @@ -288,7 +289,7 @@ func (x *Duration) GetNanos() int32 { var File_google_protobuf_duration_proto protoreflect.FileDescriptor -var file_google_protobuf_duration_proto_rawDesc = []byte{ +var file_google_protobuf_duration_proto_rawDesc = string([]byte{ 0x0a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, @@ -305,16 +306,16 @@ var file_google_protobuf_duration_proto_rawDesc = []byte{ 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_google_protobuf_duration_proto_rawDescOnce sync.Once - file_google_protobuf_duration_proto_rawDescData = file_google_protobuf_duration_proto_rawDesc + file_google_protobuf_duration_proto_rawDescData []byte ) func file_google_protobuf_duration_proto_rawDescGZIP() []byte { file_google_protobuf_duration_proto_rawDescOnce.Do(func() { - file_google_protobuf_duration_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_duration_proto_rawDescData) + file_google_protobuf_duration_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_duration_proto_rawDesc), len(file_google_protobuf_duration_proto_rawDesc))) }) return file_google_protobuf_duration_proto_rawDescData } @@ -340,7 +341,7 @@ func file_google_protobuf_duration_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_duration_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_duration_proto_rawDesc), len(file_google_protobuf_duration_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -351,7 +352,6 @@ func file_google_protobuf_duration_proto_init() { MessageInfos: file_google_protobuf_duration_proto_msgTypes, }.Build() File_google_protobuf_duration_proto = out.File - file_google_protobuf_duration_proto_rawDesc = nil file_google_protobuf_duration_proto_goTypes = nil file_google_protobuf_duration_proto_depIdxs = nil } diff --git a/vendor/google.golang.org/protobuf/types/known/fieldmaskpb/field_mask.pb.go b/vendor/google.golang.org/protobuf/types/known/fieldmaskpb/field_mask.pb.go index e5d7da38..041feb0f 100644 --- a/vendor/google.golang.org/protobuf/types/known/fieldmaskpb/field_mask.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/fieldmaskpb/field_mask.pb.go @@ -83,6 +83,7 @@ import ( sort "sort" strings "strings" sync "sync" + unsafe "unsafe" ) // `FieldMask` represents a set of symbolic field paths, for example: @@ -503,7 +504,7 @@ func (x *FieldMask) GetPaths() []string { var File_google_protobuf_field_mask_proto protoreflect.FileDescriptor -var file_google_protobuf_field_mask_proto_rawDesc = []byte{ +var file_google_protobuf_field_mask_proto_rawDesc = string([]byte{ 0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, @@ -519,16 +520,16 @@ var file_google_protobuf_field_mask_proto_rawDesc = []byte{ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_google_protobuf_field_mask_proto_rawDescOnce sync.Once - file_google_protobuf_field_mask_proto_rawDescData = file_google_protobuf_field_mask_proto_rawDesc + file_google_protobuf_field_mask_proto_rawDescData []byte ) func file_google_protobuf_field_mask_proto_rawDescGZIP() []byte { file_google_protobuf_field_mask_proto_rawDescOnce.Do(func() { - file_google_protobuf_field_mask_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_field_mask_proto_rawDescData) + file_google_protobuf_field_mask_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_field_mask_proto_rawDesc), len(file_google_protobuf_field_mask_proto_rawDesc))) }) return file_google_protobuf_field_mask_proto_rawDescData } @@ -554,7 +555,7 @@ func file_google_protobuf_field_mask_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_field_mask_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_field_mask_proto_rawDesc), len(file_google_protobuf_field_mask_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -565,7 +566,6 @@ func file_google_protobuf_field_mask_proto_init() { MessageInfos: file_google_protobuf_field_mask_proto_msgTypes, }.Build() File_google_protobuf_field_mask_proto = out.File - file_google_protobuf_field_mask_proto_rawDesc = nil file_google_protobuf_field_mask_proto_goTypes = nil file_google_protobuf_field_mask_proto_depIdxs = nil } diff --git a/vendor/google.golang.org/protobuf/types/known/structpb/struct.pb.go b/vendor/google.golang.org/protobuf/types/known/structpb/struct.pb.go index f2c53ea3..ecdd31ab 100644 --- a/vendor/google.golang.org/protobuf/types/known/structpb/struct.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/structpb/struct.pb.go @@ -128,6 +128,7 @@ import ( reflect "reflect" sync "sync" utf8 "unicode/utf8" + unsafe "unsafe" ) // `NullValue` is a singleton enumeration to represent the null value for the @@ -671,7 +672,7 @@ func (x *ListValue) GetValues() []*Value { var File_google_protobuf_struct_proto protoreflect.FileDescriptor -var file_google_protobuf_struct_proto_rawDesc = []byte{ +var file_google_protobuf_struct_proto_rawDesc = string([]byte{ 0x0a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, @@ -719,16 +720,16 @@ var file_google_protobuf_struct_proto_rawDesc = []byte{ 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_google_protobuf_struct_proto_rawDescOnce sync.Once - file_google_protobuf_struct_proto_rawDescData = file_google_protobuf_struct_proto_rawDesc + file_google_protobuf_struct_proto_rawDescData []byte ) func file_google_protobuf_struct_proto_rawDescGZIP() []byte { file_google_protobuf_struct_proto_rawDescOnce.Do(func() { - file_google_protobuf_struct_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_struct_proto_rawDescData) + file_google_protobuf_struct_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_struct_proto_rawDesc), len(file_google_protobuf_struct_proto_rawDesc))) }) return file_google_protobuf_struct_proto_rawDescData } @@ -773,7 +774,7 @@ func file_google_protobuf_struct_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_struct_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_struct_proto_rawDesc), len(file_google_protobuf_struct_proto_rawDesc)), NumEnums: 1, NumMessages: 4, NumExtensions: 0, @@ -785,7 +786,6 @@ func file_google_protobuf_struct_proto_init() { MessageInfos: file_google_protobuf_struct_proto_msgTypes, }.Build() File_google_protobuf_struct_proto = out.File - file_google_protobuf_struct_proto_rawDesc = nil file_google_protobuf_struct_proto_goTypes = nil file_google_protobuf_struct_proto_depIdxs = nil } diff --git a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go index 9550109a..00ac835c 100644 --- a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go @@ -78,6 +78,7 @@ import ( reflect "reflect" sync "sync" time "time" + unsafe "unsafe" ) // A Timestamp represents a point in time independent of any time zone or local @@ -297,7 +298,7 @@ func (x *Timestamp) GetNanos() int32 { var File_google_protobuf_timestamp_proto protoreflect.FileDescriptor -var file_google_protobuf_timestamp_proto_rawDesc = []byte{ +var file_google_protobuf_timestamp_proto_rawDesc = string([]byte{ 0x0a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, @@ -314,16 +315,16 @@ var file_google_protobuf_timestamp_proto_rawDesc = []byte{ 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_google_protobuf_timestamp_proto_rawDescOnce sync.Once - file_google_protobuf_timestamp_proto_rawDescData = file_google_protobuf_timestamp_proto_rawDesc + file_google_protobuf_timestamp_proto_rawDescData []byte ) func file_google_protobuf_timestamp_proto_rawDescGZIP() []byte { file_google_protobuf_timestamp_proto_rawDescOnce.Do(func() { - file_google_protobuf_timestamp_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_timestamp_proto_rawDescData) + file_google_protobuf_timestamp_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_timestamp_proto_rawDesc), len(file_google_protobuf_timestamp_proto_rawDesc))) }) return file_google_protobuf_timestamp_proto_rawDescData } @@ -349,7 +350,7 @@ func file_google_protobuf_timestamp_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_timestamp_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_timestamp_proto_rawDesc), len(file_google_protobuf_timestamp_proto_rawDesc)), NumEnums: 0, NumMessages: 1, NumExtensions: 0, @@ -360,7 +361,6 @@ func file_google_protobuf_timestamp_proto_init() { MessageInfos: file_google_protobuf_timestamp_proto_msgTypes, }.Build() File_google_protobuf_timestamp_proto = out.File - file_google_protobuf_timestamp_proto_rawDesc = nil file_google_protobuf_timestamp_proto_goTypes = nil file_google_protobuf_timestamp_proto_depIdxs = nil } diff --git a/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go b/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go index 15b424ec..5de53010 100644 --- a/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go +++ b/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go @@ -48,6 +48,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) // Wrapper message for `double`. @@ -529,7 +530,7 @@ func (x *BytesValue) GetValue() []byte { var File_google_protobuf_wrappers_proto protoreflect.FileDescriptor -var file_google_protobuf_wrappers_proto_rawDesc = []byte{ +var file_google_protobuf_wrappers_proto_rawDesc = string([]byte{ 0x0a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, @@ -563,16 +564,16 @@ var file_google_protobuf_wrappers_proto_rawDesc = []byte{ 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +}) var ( file_google_protobuf_wrappers_proto_rawDescOnce sync.Once - file_google_protobuf_wrappers_proto_rawDescData = file_google_protobuf_wrappers_proto_rawDesc + file_google_protobuf_wrappers_proto_rawDescData []byte ) func file_google_protobuf_wrappers_proto_rawDescGZIP() []byte { file_google_protobuf_wrappers_proto_rawDescOnce.Do(func() { - file_google_protobuf_wrappers_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_wrappers_proto_rawDescData) + file_google_protobuf_wrappers_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_protobuf_wrappers_proto_rawDesc), len(file_google_protobuf_wrappers_proto_rawDesc))) }) return file_google_protobuf_wrappers_proto_rawDescData } @@ -606,7 +607,7 @@ func file_google_protobuf_wrappers_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_wrappers_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_wrappers_proto_rawDesc), len(file_google_protobuf_wrappers_proto_rawDesc)), NumEnums: 0, NumMessages: 9, NumExtensions: 0, @@ -617,7 +618,6 @@ func file_google_protobuf_wrappers_proto_init() { MessageInfos: file_google_protobuf_wrappers_proto_msgTypes, }.Build() File_google_protobuf_wrappers_proto = out.File - file_google_protobuf_wrappers_proto_rawDesc = nil file_google_protobuf_wrappers_proto_goTypes = nil file_google_protobuf_wrappers_proto_depIdxs = nil } diff --git a/vendor/gotest.tools/v3/assert/assert.go b/vendor/gotest.tools/v3/assert/assert.go index c418bd07..ae62cefe 100644 --- a/vendor/gotest.tools/v3/assert/assert.go +++ b/vendor/gotest.tools/v3/assert/assert.go @@ -284,8 +284,6 @@ func ErrorContains(t TestingT, err error, substring string, msgAndArgs ...interf // must be called from the goroutine running the test function, not from other // goroutines created during the test. Use [Check] with [cmp.ErrorType] from other // goroutines. -// -// Deprecated: Use [ErrorIs] func ErrorType(t TestingT, err error, expected interface{}, msgAndArgs ...interface{}) { if ht, ok := t.(helperT); ok { ht.Helper() diff --git a/vendor/gotest.tools/v3/assert/cmp/compare.go b/vendor/gotest.tools/v3/assert/cmp/compare.go index 118844f3..a7507e65 100644 --- a/vendor/gotest.tools/v3/assert/cmp/compare.go +++ b/vendor/gotest.tools/v3/assert/cmp/compare.go @@ -248,7 +248,7 @@ type causer interface { } func formatErrorMessage(err error) string { - //nolint:errorlint // unwrapping is not appropriate here + //nolint:errorlint,nolintlint // unwrapping is not appropriate here if _, ok := err.(causer); ok { return fmt.Sprintf("%q\n%+v", err, err) } @@ -286,6 +286,7 @@ func isNil(obj interface{}, msgFunc func(reflect.Value) string) Comparison { } // ErrorType succeeds if err is not nil and is of the expected type. +// New code should use [ErrorIs] instead. // // Expected can be one of: // @@ -306,8 +307,6 @@ func isNil(obj interface{}, msgFunc func(reflect.Value) string) Comparison { // reflect.Type // // Fails if err does not implement the [reflect.Type]. -// -// Deprecated: Use [ErrorIs] func ErrorType(err error, expected interface{}) Comparison { return func() Result { switch expectedType := expected.(type) { diff --git a/vendor/gotest.tools/v3/fs/report.go b/vendor/gotest.tools/v3/fs/report.go index 952aa26a..773df21c 100644 --- a/vendor/gotest.tools/v3/fs/report.go +++ b/vendor/gotest.tools/v3/fs/report.go @@ -50,8 +50,8 @@ func errProblem(reason string, err error) problem { return problem(fmt.Sprintf("%s: %s", reason, err)) } -func existenceProblem(filename, reason string, args ...interface{}) problem { - return problem(filename + ": " + fmt.Sprintf(reason, args...)) +func existenceProblem(filename string, msgAndArgs ...interface{}) problem { + return problem(filename + ": " + format.Message(msgAndArgs...)) } func eqResource(x, y resource) []problem { diff --git a/vendor/gotest.tools/v3/internal/assert/assert.go b/vendor/gotest.tools/v3/internal/assert/assert.go index 2dd80255..1e872768 100644 --- a/vendor/gotest.tools/v3/internal/assert/assert.go +++ b/vendor/gotest.tools/v3/internal/assert/assert.go @@ -87,19 +87,18 @@ func logFailureFromBool(t LogT, msgAndArgs ...interface{}) { args, err := source.CallExprArgs(stackIndex) if err != nil { t.Log(err.Error()) - return } + var msg string const comparisonArgIndex = 1 // Assert(t, comparison) if len(args) <= comparisonArgIndex { - t.Log(failureMessage + "but assert failed to find the expression to print") - return - } - - msg, err := boolFailureMessage(args[comparisonArgIndex]) - if err != nil { - t.Log(err.Error()) - msg = "expression is false" + msg = "but assert failed to find the expression to print" + } else { + msg, err = boolFailureMessage(args[comparisonArgIndex]) + if err != nil { + t.Log(err.Error()) + msg = "expression is false" + } } t.Log(format.WithCustomMessage(failureMessage+msg, msgAndArgs...)) diff --git a/vendor/gotest.tools/v3/internal/difflib/difflib.go b/vendor/gotest.tools/v3/internal/difflib/difflib.go index 9bf506b6..bedacca3 100644 --- a/vendor/gotest.tools/v3/internal/difflib/difflib.go +++ b/vendor/gotest.tools/v3/internal/difflib/difflib.go @@ -1,4 +1,5 @@ -/*Package difflib is a partial port of Python difflib module. +/* +Package difflib is a partial port of Python difflib module. Original source: https://github.com/pmezard/go-difflib @@ -6,14 +7,14 @@ This file is trimmed to only the parts used by this repository. */ package difflib // import "gotest.tools/v3/internal/difflib" -func min(a, b int) int { +func minInt(a, b int) int { if a < b { return a } return b } -func max(a, b int) int { +func maxInt(a, b int) int { if a > b { return a } @@ -170,12 +171,15 @@ func (m *SequenceMatcher) isBJunk(s string) bool { // If IsJunk is not defined: // // Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where -// alo <= i <= i+k <= ahi -// blo <= j <= j+k <= bhi +// +// alo <= i <= i+k <= ahi +// blo <= j <= j+k <= bhi +// // and for all (i',j',k') meeting those conditions, -// k >= k' -// i <= i' -// and if i == i', j <= j' +// +// k >= k' +// i <= i' +// and if i == i', j <= j' // // In other words, of all maximal matching blocks, return one that // starts earliest in a, and of all those maximal matching blocks that @@ -393,12 +397,12 @@ func (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode { if codes[0].Tag == 'e' { c := codes[0] i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2} + codes[0] = OpCode{c.Tag, maxInt(i1, i2-n), i2, maxInt(j1, j2-n), j2} } if codes[len(codes)-1].Tag == 'e' { c := codes[len(codes)-1] i1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2 - codes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)} + codes[len(codes)-1] = OpCode{c.Tag, i1, minInt(i2, i1+n), j1, minInt(j2, j1+n)} } nn := n + n groups := [][]OpCode{} @@ -408,11 +412,11 @@ func (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode { // End the current group and start a new one whenever // there is a large range with no changes. if c.Tag == 'e' && i2-i1 > nn { - group = append(group, OpCode{c.Tag, i1, min(i2, i1+n), - j1, min(j2, j1+n)}) + group = append(group, OpCode{c.Tag, i1, minInt(i2, i1+n), + j1, minInt(j2, j1+n)}) groups = append(groups, group) group = []OpCode{} - i1, j1 = max(i1, i2-n), max(j1, j2-n) + i1, j1 = maxInt(i1, i2-n), maxInt(j1, j2-n) } group = append(group, OpCode{c.Tag, i1, i2, j1, j2}) } diff --git a/vendor/gotest.tools/v3/internal/source/bazel.go b/vendor/gotest.tools/v3/internal/source/bazel.go new file mode 100644 index 00000000..1f5197dd --- /dev/null +++ b/vendor/gotest.tools/v3/internal/source/bazel.go @@ -0,0 +1,51 @@ +package source + +import ( + "fmt" + "os" + "path/filepath" +) + +// These Bazel env vars are documented here: +// https://bazel.build/reference/test-encyclopedia + +// Signifies test executable is being driven by `bazel test`. +// +// Due to Bazel's compilation and sandboxing strategy, +// some care is required to handle resolving the original *.go source file. +var inBazelTest = os.Getenv("BAZEL_TEST") == "1" + +// The name of the target being tested (ex: //some_package:some_package_test) +var bazelTestTarget = os.Getenv("TEST_TARGET") + +// Absolute path to the base of the runfiles tree +var bazelTestSrcdir = os.Getenv("TEST_SRCDIR") + +// The local repository's workspace name (ex: __main__) +var bazelTestWorkspace = os.Getenv("TEST_WORKSPACE") + +func bazelSourcePath(filename string) (string, error) { + // Use the env vars to resolve the test source files, + // which must be provided as test data in the respective go_test target. + filename = filepath.Join(bazelTestSrcdir, bazelTestWorkspace, filename) + + _, err := os.Stat(filename) + if os.IsNotExist(err) { + return "", fmt.Errorf(bazelMissingSourceMsg, filename, bazelTestTarget) + } + return filename, nil +} + +var bazelMissingSourceMsg = ` +the test source file does not exist: %s +It appears that you are running this test under Bazel (target: %s). +Check that your test source files are added as test data in your go_test targets. + +Example: + go_test( + name = "your_package_test", + srcs = ["your_test.go"], + deps = ["@tools_gotest_v3//assert"], + data = glob(["*_test.go"]) + )" +` diff --git a/vendor/gotest.tools/v3/internal/source/source.go b/vendor/gotest.tools/v3/internal/source/source.go index a4fc24ee..9ac4bfa7 100644 --- a/vendor/gotest.tools/v3/internal/source/source.go +++ b/vendor/gotest.tools/v3/internal/source/source.go @@ -10,6 +10,7 @@ import ( "go/parser" "go/token" "os" + "path/filepath" "runtime" ) @@ -35,6 +36,19 @@ func CallExprArgs(stackIndex int) ([]ast.Expr, error) { } debug("call stack position: %s:%d", filename, line) + // Normally, `go` will compile programs with absolute paths in + // the debug metadata. However, in the name of reproducibility, + // Bazel uses a compilation strategy that results in relative paths + // (otherwise, since Bazel uses a random tmp dir for compile and sandboxing, + // the resulting binaries would change across compiles/test runs). + if inBazelTest && !filepath.IsAbs(filename) { + var err error + filename, err = bazelSourcePath(filename) + if err != nil { + return nil, err + } + } + fileset := token.NewFileSet() astFile, err := parser.ParseFile(fileset, filename, nil, parser.AllErrors) if err != nil { @@ -58,7 +72,7 @@ func getNodeAtLine(fileset *token.FileSet, astFile ast.Node, lineNum int) (ast.N return node, err } } - return nil, nil + return nil, errors.New("failed to find expression") } func scanToLine(fileset *token.FileSet, node ast.Node, lineNum int) ast.Node { @@ -78,11 +92,8 @@ func scanToLine(fileset *token.FileSet, node ast.Node, lineNum int) ast.Node { func getCallExprArgs(fileset *token.FileSet, astFile ast.Node, line int) ([]ast.Expr, error) { node, err := getNodeAtLine(fileset, astFile, line) - switch { - case err != nil: + if err != nil { return nil, err - case node == nil: - return nil, fmt.Errorf("failed to find an expression") } debug("found node: %s", debugFormatNode{node}) @@ -90,7 +101,7 @@ func getCallExprArgs(fileset *token.FileSet, astFile ast.Node, line int) ([]ast. visitor := &callExprVisitor{} ast.Walk(visitor, node) if visitor.expr == nil { - return nil, errors.New("failed to find call expression") + return nil, errors.New("failed to find an expression") } debug("callExpr: %s", debugFormatNode{visitor.expr}) return visitor.expr.Args, nil diff --git a/vendor/modules.txt b/vendor/modules.txt index d9e52784..5cd2177d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -29,7 +29,7 @@ github.com/Microsoft/go-winio/internal/fs github.com/Microsoft/go-winio/internal/socket github.com/Microsoft/go-winio/internal/stringbuffer github.com/Microsoft/go-winio/pkg/guid -# github.com/ProtonMail/go-crypto v1.1.3 +# github.com/ProtonMail/go-crypto v1.1.6 ## explicit; go 1.17 github.com/ProtonMail/go-crypto/bitcurves github.com/ProtonMail/go-crypto/brainpool @@ -65,18 +65,28 @@ github.com/cenkalti/backoff/v4 # github.com/cespare/xxhash/v2 v2.3.0 ## explicit; go 1.11 github.com/cespare/xxhash/v2 -# github.com/charmbracelet/lipgloss v1.0.0 +# github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc +## explicit; go 1.18 +github.com/charmbracelet/colorprofile +# github.com/charmbracelet/lipgloss v1.1.0 ## explicit; go 1.18 github.com/charmbracelet/lipgloss github.com/charmbracelet/lipgloss/table -# github.com/charmbracelet/log v0.4.0 +# github.com/charmbracelet/log v0.4.1 ## explicit; go 1.19 github.com/charmbracelet/log -# github.com/charmbracelet/x/ansi v0.6.0 +# github.com/charmbracelet/x/ansi v0.8.0 ## explicit; go 1.18 github.com/charmbracelet/x/ansi +github.com/charmbracelet/x/ansi/kitty github.com/charmbracelet/x/ansi/parser -# github.com/cloudflare/circl v1.5.0 +# github.com/charmbracelet/x/cellbuf v0.0.13 +## explicit; go 1.18 +github.com/charmbracelet/x/cellbuf +# github.com/charmbracelet/x/term v0.2.1 +## explicit; go 1.18 +github.com/charmbracelet/x/term +# github.com/cloudflare/circl v1.6.0 ## explicit; go 1.22.0 github.com/cloudflare/circl/dh/x25519 github.com/cloudflare/circl/dh/x448 @@ -113,7 +123,7 @@ github.com/containers/image/types # github.com/cpuguy83/go-md2man/v2 v2.0.6 ## explicit; go 1.12 github.com/cpuguy83/go-md2man/v2/md2man -# github.com/cyphar/filepath-securejoin v0.3.6 +# github.com/cyphar/filepath-securejoin v0.4.1 ## explicit; go 1.18 github.com/cyphar/filepath-securejoin # github.com/davecgh/go-spew v1.1.1 @@ -125,7 +135,7 @@ github.com/decentral1se/passgen # github.com/distribution/reference v0.6.0 ## explicit; go 1.20 github.com/distribution/reference -# github.com/docker/cli v27.4.1+incompatible +# github.com/docker/cli v28.0.1+incompatible ## explicit github.com/docker/cli/cli github.com/docker/cli/cli-plugins/hooks @@ -159,6 +169,7 @@ github.com/docker/cli/cli/registry/client github.com/docker/cli/cli/streams github.com/docker/cli/cli/trust github.com/docker/cli/cli/version +github.com/docker/cli/internal/tui github.com/docker/cli/opts github.com/docker/cli/pkg/kvfile github.com/docker/cli/templates @@ -179,12 +190,13 @@ github.com/docker/distribution/registry/client/transport github.com/docker/distribution/registry/storage/cache github.com/docker/distribution/registry/storage/cache/memory github.com/docker/distribution/uuid -# github.com/docker/docker v27.4.1+incompatible +# github.com/docker/docker v28.0.1+incompatible ## explicit github.com/docker/docker/api github.com/docker/docker/api/types github.com/docker/docker/api/types/blkiodev github.com/docker/docker/api/types/checkpoint +github.com/docker/docker/api/types/common github.com/docker/docker/api/types/container github.com/docker/docker/api/types/events github.com/docker/docker/api/types/filters @@ -192,6 +204,7 @@ github.com/docker/docker/api/types/image github.com/docker/docker/api/types/mount github.com/docker/docker/api/types/network github.com/docker/docker/api/types/registry +github.com/docker/docker/api/types/storage github.com/docker/docker/api/types/strslice github.com/docker/docker/api/types/swarm github.com/docker/docker/api/types/swarm/runtime @@ -201,21 +214,21 @@ github.com/docker/docker/api/types/versions github.com/docker/docker/api/types/volume github.com/docker/docker/client github.com/docker/docker/errdefs +github.com/docker/docker/internal/lazyregexp github.com/docker/docker/internal/multierror github.com/docker/docker/pkg/archive +github.com/docker/docker/pkg/atomicwriter github.com/docker/docker/pkg/homedir github.com/docker/docker/pkg/idtools github.com/docker/docker/pkg/ioutils github.com/docker/docker/pkg/jsonmessage -github.com/docker/docker/pkg/pools github.com/docker/docker/pkg/progress github.com/docker/docker/pkg/stdcopy github.com/docker/docker/pkg/streamformatter github.com/docker/docker/pkg/stringid -github.com/docker/docker/pkg/system github.com/docker/docker/registry -# github.com/docker/docker-credential-helpers v0.8.2 -## explicit; go 1.19 +# github.com/docker/docker-credential-helpers v0.9.3 +## explicit; go 1.21 github.com/docker/docker-credential-helpers/client github.com/docker/docker-credential-helpers/credentials # github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c @@ -260,7 +273,7 @@ github.com/go-git/gcfg github.com/go-git/gcfg/scanner github.com/go-git/gcfg/token github.com/go-git/gcfg/types -# github.com/go-git/go-billy/v5 v5.6.1 +# github.com/go-git/go-billy/v5 v5.6.2 ## explicit; go 1.21 github.com/go-git/go-billy/v5 github.com/go-git/go-billy/v5/helper/chroot @@ -268,8 +281,8 @@ github.com/go-git/go-billy/v5/helper/polyfill github.com/go-git/go-billy/v5/memfs github.com/go-git/go-billy/v5/osfs github.com/go-git/go-billy/v5/util -# github.com/go-git/go-git/v5 v5.13.1 -## explicit; go 1.21 +# github.com/go-git/go-git/v5 v5.14.0 +## explicit; go 1.23.0 github.com/go-git/go-git/v5 github.com/go-git/go-git/v5/config github.com/go-git/go-git/v5/internal/path_util @@ -336,8 +349,8 @@ github.com/gogo/protobuf/proto # github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 ## explicit; go 1.20 github.com/golang/groupcache/lru -# github.com/google/go-cmp v0.6.0 -## explicit; go 1.13 +# github.com/google/go-cmp v0.7.0 +## explicit; go 1.21 github.com/google/go-cmp/cmp github.com/google/go-cmp/cmp/internal/diff github.com/google/go-cmp/cmp/internal/flags @@ -352,8 +365,8 @@ github.com/google/uuid # github.com/gorilla/mux v1.8.1 ## explicit; go 1.20 github.com/gorilla/mux -# github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 -## explicit; go 1.22.0 +# github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 +## explicit; go 1.23.0 github.com/grpc-ecosystem/grpc-gateway/v2/internal/httprule github.com/grpc-ecosystem/grpc-gateway/v2/runtime github.com/grpc-ecosystem/grpc-gateway/v2/utilities @@ -375,20 +388,21 @@ github.com/kballard/go-shellquote # github.com/kevinburke/ssh_config v1.2.0 ## explicit github.com/kevinburke/ssh_config -# github.com/klauspost/compress v1.17.11 -## explicit; go 1.21 +# github.com/klauspost/compress v1.18.0 +## explicit; go 1.22 github.com/klauspost/compress github.com/klauspost/compress/fse github.com/klauspost/compress/huff0 github.com/klauspost/compress/internal/cpuinfo +github.com/klauspost/compress/internal/le github.com/klauspost/compress/internal/snapref github.com/klauspost/compress/zstd github.com/klauspost/compress/zstd/internal/xxhash # github.com/lucasb-eyer/go-colorful v1.2.0 ## explicit; go 1.12 github.com/lucasb-eyer/go-colorful -# github.com/mattn/go-colorable v0.1.13 -## explicit; go 1.15 +# github.com/mattn/go-colorable v0.1.14 +## explicit; go 1.18 github.com/mattn/go-colorable # github.com/mattn/go-isatty v0.0.20 ## explicit; go 1.15 @@ -409,19 +423,6 @@ github.com/mitchellh/colorstring ## explicit; go 1.14 # github.com/mmcloughlin/avo v0.6.0 ## explicit; go 1.18 -github.com/mmcloughlin/avo/attr -github.com/mmcloughlin/avo/build -github.com/mmcloughlin/avo/buildtags -github.com/mmcloughlin/avo/gotypes -github.com/mmcloughlin/avo/internal/prnt -github.com/mmcloughlin/avo/internal/stack -github.com/mmcloughlin/avo/ir -github.com/mmcloughlin/avo/operand -github.com/mmcloughlin/avo/pass -github.com/mmcloughlin/avo/printer -github.com/mmcloughlin/avo/reg -github.com/mmcloughlin/avo/src -github.com/mmcloughlin/avo/x86 # github.com/moby/docker-image-spec v1.3.1 ## explicit; go 1.18 github.com/moby/docker-image-spec/specs-go/v1 @@ -449,7 +450,7 @@ github.com/moby/term/windows # github.com/morikuni/aec v1.0.0 ## explicit github.com/morikuni/aec -# github.com/muesli/termenv v0.15.2 +# github.com/muesli/termenv v0.16.0 ## explicit; go 1.17 github.com/muesli/termenv # github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 @@ -458,7 +459,7 @@ github.com/munnerz/goautoneg # github.com/opencontainers/go-digest v1.0.0 ## explicit; go 1.13 github.com/opencontainers/go-digest -# github.com/opencontainers/image-spec v1.1.0 +# github.com/opencontainers/image-spec v1.1.1 ## explicit; go 1.18 github.com/opencontainers/image-spec/specs-go github.com/opencontainers/image-spec/specs-go/v1 @@ -468,7 +469,7 @@ github.com/opencontainers/image-spec/specs-go/v1 ## explicit # github.com/pelletier/go-toml v1.9.5 ## explicit; go 1.12 -# github.com/pjbgf/sha1cd v0.3.1 +# github.com/pjbgf/sha1cd v0.3.2 ## explicit; go 1.21 github.com/pjbgf/sha1cd github.com/pjbgf/sha1cd/internal @@ -479,8 +480,8 @@ github.com/pkg/errors # github.com/pmezard/go-difflib v1.0.0 ## explicit github.com/pmezard/go-difflib/difflib -# github.com/prometheus/client_golang v1.20.5 -## explicit; go 1.20 +# github.com/prometheus/client_golang v1.21.1 +## explicit; go 1.21 github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/header github.com/prometheus/client_golang/prometheus @@ -489,7 +490,7 @@ github.com/prometheus/client_golang/prometheus/promhttp # github.com/prometheus/client_model v0.6.1 ## explicit; go 1.19 github.com/prometheus/client_model/go -# github.com/prometheus/common v0.61.0 +# github.com/prometheus/common v0.63.0 ## explicit; go 1.21 github.com/prometheus/common/expfmt github.com/prometheus/common/model @@ -504,7 +505,7 @@ github.com/rivo/uniseg # github.com/russross/blackfriday/v2 v2.1.0 ## explicit github.com/russross/blackfriday/v2 -# github.com/schollz/progressbar/v3 v3.17.1 +# github.com/schollz/progressbar/v3 v3.18.0 ## explicit; go 1.22 github.com/schollz/progressbar/v3 # github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 @@ -513,14 +514,14 @@ github.com/sergi/go-diff/diffmatchpatch # github.com/sirupsen/logrus v1.9.3 ## explicit; go 1.13 github.com/sirupsen/logrus -# github.com/skeema/knownhosts v1.3.0 -## explicit; go 1.17 +# github.com/skeema/knownhosts v1.3.1 +## explicit; go 1.22 github.com/skeema/knownhosts -# github.com/spf13/cobra v1.8.1 +# github.com/spf13/cobra v1.9.1 ## explicit; go 1.15 github.com/spf13/cobra github.com/spf13/cobra/doc -# github.com/spf13/pflag v1.0.5 +# github.com/spf13/pflag v1.0.6 ## explicit; go 1.12 github.com/spf13/pflag # github.com/stretchr/testify v1.10.0 @@ -555,17 +556,20 @@ github.com/xeipuuv/gojsonreference # github.com/xeipuuv/gojsonschema v1.2.0 ## explicit github.com/xeipuuv/gojsonschema +# github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e +## explicit; go 1.19 +github.com/xo/terminfo # go.opentelemetry.io/auto/sdk v1.1.0 ## explicit; go 1.22.0 go.opentelemetry.io/auto/sdk go.opentelemetry.io/auto/sdk/internal/telemetry -# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 +# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 ## explicit; go 1.22.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil -# go.opentelemetry.io/otel v1.33.0 +# go.opentelemetry.io/otel v1.35.0 ## explicit; go 1.22.0 go.opentelemetry.io/otel go.opentelemetry.io/otel/attribute @@ -577,22 +581,21 @@ go.opentelemetry.io/otel/internal/baggage go.opentelemetry.io/otel/internal/global go.opentelemetry.io/otel/propagation go.opentelemetry.io/otel/semconv/v1.20.0 -go.opentelemetry.io/otel/semconv/v1.21.0 go.opentelemetry.io/otel/semconv/v1.26.0 -# go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 -## explicit; go 1.22.7 +# go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 +## explicit; go 1.22.0 go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/envconfig go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/oconf go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/retry go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal/transform -# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 -## explicit; go 1.22.7 +# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 +## explicit; go 1.22.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform -# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 -## explicit; go 1.22.7 +# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 +## explicit; go 1.22.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/envconfig @@ -600,12 +603,12 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/otlpcon go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal/retry # go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 ## explicit; go 1.20 -# go.opentelemetry.io/otel/metric v1.33.0 +# go.opentelemetry.io/otel/metric v1.35.0 ## explicit; go 1.22.0 go.opentelemetry.io/otel/metric go.opentelemetry.io/otel/metric/embedded go.opentelemetry.io/otel/metric/noop -# go.opentelemetry.io/otel/sdk v1.33.0 +# go.opentelemetry.io/otel/sdk v1.35.0 ## explicit; go 1.22.0 go.opentelemetry.io/otel/sdk go.opentelemetry.io/otel/sdk/instrumentation @@ -613,7 +616,7 @@ go.opentelemetry.io/otel/sdk/internal/env go.opentelemetry.io/otel/sdk/internal/x go.opentelemetry.io/otel/sdk/resource go.opentelemetry.io/otel/sdk/trace -# go.opentelemetry.io/otel/sdk/metric v1.33.0 +# go.opentelemetry.io/otel/sdk/metric v1.35.0 ## explicit; go 1.22.0 go.opentelemetry.io/otel/sdk/metric go.opentelemetry.io/otel/sdk/metric/exemplar @@ -621,10 +624,11 @@ go.opentelemetry.io/otel/sdk/metric/internal go.opentelemetry.io/otel/sdk/metric/internal/aggregate go.opentelemetry.io/otel/sdk/metric/internal/x go.opentelemetry.io/otel/sdk/metric/metricdata -# go.opentelemetry.io/otel/trace v1.33.0 +# go.opentelemetry.io/otel/trace v1.35.0 ## explicit; go 1.22.0 go.opentelemetry.io/otel/trace go.opentelemetry.io/otel/trace/embedded +go.opentelemetry.io/otel/trace/internal/telemetry go.opentelemetry.io/otel/trace/noop # go.opentelemetry.io/proto/otlp v1.5.0 ## explicit; go 1.22.0 @@ -634,13 +638,15 @@ go.opentelemetry.io/proto/otlp/common/v1 go.opentelemetry.io/proto/otlp/metrics/v1 go.opentelemetry.io/proto/otlp/resource/v1 go.opentelemetry.io/proto/otlp/trace/v1 -# golang.org/x/crypto v0.32.0 -## explicit; go 1.20 +# golang.org/x/crypto v0.36.0 +## explicit; go 1.23.0 golang.org/x/crypto/argon2 golang.org/x/crypto/blake2b golang.org/x/crypto/blowfish golang.org/x/crypto/cast5 golang.org/x/crypto/chacha20 +golang.org/x/crypto/cryptobyte +golang.org/x/crypto/cryptobyte/asn1 golang.org/x/crypto/curve25519 golang.org/x/crypto/ed25519 golang.org/x/crypto/hkdf @@ -652,42 +658,42 @@ golang.org/x/crypto/ssh golang.org/x/crypto/ssh/agent golang.org/x/crypto/ssh/internal/bcrypt_pbkdf golang.org/x/crypto/ssh/knownhosts -# golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 -## explicit; go 1.22.0 +# golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 +## explicit; go 1.23.0 golang.org/x/exp/slices golang.org/x/exp/slog golang.org/x/exp/slog/internal golang.org/x/exp/slog/internal/buffer -# golang.org/x/mod v0.22.0 -## explicit; go 1.22.0 -golang.org/x/mod/semver -# golang.org/x/net v0.34.0 -## explicit; go 1.18 +# golang.org/x/mod v0.24.0 +## explicit; go 1.23.0 +# golang.org/x/net v0.37.0 +## explicit; go 1.23.0 golang.org/x/net/context golang.org/x/net/http/httpguts golang.org/x/net/http2 golang.org/x/net/http2/hpack golang.org/x/net/idna +golang.org/x/net/internal/httpcommon golang.org/x/net/internal/socks golang.org/x/net/internal/timeseries golang.org/x/net/proxy golang.org/x/net/trace -# golang.org/x/sync v0.10.0 -## explicit; go 1.18 +# golang.org/x/sync v0.12.0 +## explicit; go 1.23.0 golang.org/x/sync/errgroup -# golang.org/x/sys v0.29.0 -## explicit; go 1.18 +# golang.org/x/sys v0.31.0 +## explicit; go 1.23.0 golang.org/x/sys/cpu golang.org/x/sys/execabs golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry -# golang.org/x/term v0.28.0 -## explicit; go 1.18 +# golang.org/x/term v0.30.0 +## explicit; go 1.23.0 golang.org/x/term -# golang.org/x/text v0.21.0 -## explicit; go 1.18 +# golang.org/x/text v0.23.0 +## explicit; go 1.23.0 golang.org/x/text/cases golang.org/x/text/internal golang.org/x/text/internal/language @@ -699,42 +705,26 @@ golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm golang.org/x/text/width -# golang.org/x/time v0.9.0 -## explicit; go 1.18 +# golang.org/x/time v0.11.0 +## explicit; go 1.23.0 golang.org/x/time/rate -# golang.org/x/tools v0.29.0 -## explicit; go 1.22.0 -golang.org/x/tools/go/gcexportdata -golang.org/x/tools/go/packages -golang.org/x/tools/go/types/objectpath -golang.org/x/tools/go/types/typeutil -golang.org/x/tools/internal/aliases -golang.org/x/tools/internal/event -golang.org/x/tools/internal/event/core -golang.org/x/tools/internal/event/keys -golang.org/x/tools/internal/event/label -golang.org/x/tools/internal/gcimporter -golang.org/x/tools/internal/gocommand -golang.org/x/tools/internal/packagesinternal -golang.org/x/tools/internal/pkgbits -golang.org/x/tools/internal/stdlib -golang.org/x/tools/internal/typeparams -golang.org/x/tools/internal/typesinternal -golang.org/x/tools/internal/versions -# google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 -## explicit; go 1.22 +# golang.org/x/tools v0.31.0 +## explicit; go 1.23.0 +# google.golang.org/genproto/googleapis/api v0.0.0-20250313205543-e70fdf4c4cb4 +## explicit; go 1.23.0 google.golang.org/genproto/googleapis/api/httpbody -# google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 -## explicit; go 1.22 +# google.golang.org/genproto/googleapis/rpc v0.0.0-20250313205543-e70fdf4c4cb4 +## explicit; go 1.23.0 google.golang.org/genproto/googleapis/rpc/errdetails google.golang.org/genproto/googleapis/rpc/status -# google.golang.org/grpc v1.69.2 -## explicit; go 1.22 +# google.golang.org/grpc v1.71.0 +## explicit; go 1.22.0 google.golang.org/grpc google.golang.org/grpc/attributes google.golang.org/grpc/backoff google.golang.org/grpc/balancer google.golang.org/grpc/balancer/base +google.golang.org/grpc/balancer/endpointsharding google.golang.org/grpc/balancer/grpclb/state google.golang.org/grpc/balancer/pickfirst google.golang.org/grpc/balancer/pickfirst/internal @@ -768,7 +758,9 @@ google.golang.org/grpc/internal/grpcutil google.golang.org/grpc/internal/idle google.golang.org/grpc/internal/metadata google.golang.org/grpc/internal/pretty +google.golang.org/grpc/internal/proxyattributes google.golang.org/grpc/internal/resolver +google.golang.org/grpc/internal/resolver/delegatingresolver google.golang.org/grpc/internal/resolver/dns google.golang.org/grpc/internal/resolver/dns/internal google.golang.org/grpc/internal/resolver/passthrough @@ -789,7 +781,7 @@ google.golang.org/grpc/serviceconfig google.golang.org/grpc/stats google.golang.org/grpc/status google.golang.org/grpc/tap -# google.golang.org/protobuf v1.36.2 +# google.golang.org/protobuf v1.36.5 ## explicit; go 1.21 google.golang.org/protobuf/encoding/protodelim google.golang.org/protobuf/encoding/protojson @@ -837,7 +829,7 @@ gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 -# gotest.tools/v3 v3.5.1 +# gotest.tools/v3 v3.5.2 ## explicit; go 1.17 gotest.tools/v3/assert gotest.tools/v3/assert/cmp